@dereekb/dbx-web 13.32.0 → 13.34.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.
@@ -4,7 +4,7 @@ import * as _angular_core from '@angular/core';
4
4
  import { Signal, ElementRef, AfterViewInit, InjectionToken, Type, OnInit, OnDestroy, ViewContainerRef, Provider, Injector, TrackByFunction, OutputEmitterRef, OutputRef, EnvironmentProviders, TemplateRef, ComponentRef } from '@angular/core';
5
5
  import { ProgressBarMode } from '@angular/material/progress-bar';
6
6
  import * as _dereekb_util from '@dereekb/util';
7
- import { Maybe, ErrorInput, Milliseconds, GetterOrValue, Getter, CssClass, CharacterPrefixSuffixCleanString, DashPrefixString, CssStyleObject, CssToken, CssTokenVar, WebsiteUrlWithPrefix, WebsitePath, Pixels, PixelsString, DecisionFunction, ModifierMap, ArrayOrValue, Modifier, ModifierFunction, UniqueModel, CssClassesArray, PrimativeKey, SortCompareFunction, ModelKeyRef, HtmlHeaderLevel, Destroyable, UnitedStatesAddressWithContact, LabeledValue, GetterOrValueWithInput, Seconds, DestroyFunction, ReadableError, ReadableErrorWithCode, ServerError, ServerErrorResponseData, ServerErrorResponse, PromiseOrValue, SpaceSeparatedCssClasses, StringErrorCode, ModelKeyTypeNamePair, UnixDateTimeSecondsNumber, ModelKey, ModelTypeString, MimeTypeWithoutParameters, ContentTypeMimeType, ModelTypeDataPair, MapFunction, SlashPathDirectoryTreeNode, SlashPathDirectoryTreeNodeValue, SlashPathDirectoryTreeRoot, FileSize, MimeTypeWildcard, MimeTypeWithSubtypeWildcardWithoutParameters, SlashPathTypedFileSuffix, ModelIdFactory } from '@dereekb/util';
7
+ import { Maybe, ErrorInput, Milliseconds, GetterOrValue, Getter, CssClass, CharacterPrefixSuffixCleanString, DashPrefixString, CssStyleObject, CssToken, CssTokenVar, WebsiteUrlWithPrefix, WebsitePath, ArrayOrValue, Pixels, PixelsString, DecisionFunction, ModifierMap, Modifier, ModifierFunction, UniqueModel, CssClassesArray, PrimativeKey, SortCompareFunction, ModelKeyRef, HtmlHeaderLevel, Destroyable, UnitedStatesAddressWithContact, LabeledValue, GetterOrValueWithInput, Seconds, DestroyFunction, ReadableError, ReadableErrorWithCode, ServerError, ServerErrorResponseData, ServerErrorResponse, PromiseOrValue, SpaceSeparatedCssClasses, StringErrorCode, ModelKeyTypeNamePair, UnixDateTimeSecondsNumber, ModelKey, ModelTypeString, MimeTypeWithoutParameters, ContentTypeMimeType, ModelTypeDataPair, MapFunction, SlashPathDirectoryTreeNode, SlashPathDirectoryTreeNodeValue, SlashPathDirectoryTreeRoot, FileSize, MimeTypeWildcard, MimeTypeWithSubtypeWildcardWithoutParameters, SlashPathTypedFileSuffix, ISO8601DateString, ModelIdFactory } from '@dereekb/util';
8
8
  import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
9
9
  import * as dist_packages_dbx_core_types_dereekb_dbx_core from 'dist/packages/dbx-core/types/dereekb-dbx-core';
10
10
  import * as rxjs from 'rxjs';
@@ -25,6 +25,7 @@ import * as _angular_platform_browser from '@angular/platform-browser';
25
25
  import { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';
26
26
  import { Clipboard } from '@angular/cdk/clipboard';
27
27
  import { Entry, ZipReader, FileEntry } from '@zip.js/zip.js';
28
+ import { PDFDocument, PDFPage } from '@cantoo/pdf-lib';
28
29
  import { ComponentStore } from '@ngrx/component-store';
29
30
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
30
31
  import { HorizontalConnectionPos, Overlay, FlexibleConnectedPositionStrategy, GlobalPositionStrategy } from '@angular/cdk/overlay';
@@ -733,11 +734,23 @@ interface DbxActionConfirmConfig<T = unknown> extends DbxPromptConfirmConfig {
733
734
  * Value to pass to the action's ready state when the user confirms.
734
735
  */
735
736
  readonly readyValue?: T;
737
+ /**
738
+ * Whether to confirm the action immediately instead of showing the dialog.
739
+ *
740
+ * Useful for actions that need no confirmation but are rendered by the same template as actions that do,
741
+ * and for passing a readyValue through without prompting.
742
+ *
743
+ * Defaults to false.
744
+ */
745
+ readonly autoConfirm?: boolean;
736
746
  }
737
747
  /**
738
748
  * Displays a confirmation dialog when the action is triggered. If the user confirms,
739
749
  * the configured ready value is passed to the action. If the user cancels, the action is rejected.
740
750
  *
751
+ * A config with `autoConfirm` true shows no dialog and marks the action ready immediately. This lets a
752
+ * template bind the same input for actions that need confirmation and actions that do not.
753
+ *
741
754
  * This directive works with action triggering only, not button clicks.
742
755
  * For button-based confirmation, use an appPromptConfirmButton directive instead.
743
756
  *
@@ -1245,6 +1258,13 @@ type DbxAvatarStyle = 'circle' | 'square';
1245
1258
  * Size variant for the avatar display. Controls the rendered dimensions of the avatar.
1246
1259
  */
1247
1260
  type DbxAvatarSize = 'small' | 'normal' | 'large';
1261
+ /**
1262
+ * How an avatar image is fitted into the avatar box.
1263
+ *
1264
+ * `'cover'` fills the box and crops (the right choice for a photo); `'contain'` fits the whole image
1265
+ * inside the box (the right choice for a brand logo, which must never be cropped).
1266
+ */
1267
+ type DbxAvatarImageFit = 'cover' | 'contain';
1248
1268
  /**
1249
1269
  * Contextual information for displaying an avatar, including its image URL, fallback icon, style, and user association.
1250
1270
  *
@@ -1287,6 +1307,37 @@ interface DbxAvatarContext {
1287
1307
  * If true, when the image cannot be loaded then the entire avatar view should be hidden.
1288
1308
  */
1289
1309
  readonly hideOnError?: Maybe<boolean>;
1310
+ /**
1311
+ * If true, the avatar renders with the `<dbx-icon-tile>` presentation: the avatar view takes the
1312
+ * `dbx-icon-tile` class, so the `--dbx-icon-tile-*` customizations and the tile's `[dbxColor]`
1313
+ * surface apply. Use it for a branded/iconographic avatar rather than a person's photo.
1314
+ */
1315
+ readonly tile?: Maybe<boolean>;
1316
+ /**
1317
+ * Color painted behind the avatar. Pair with {@link colorTone} for a tonal (muted) surface.
1318
+ */
1319
+ readonly color?: Maybe<DbxColorInput>;
1320
+ /**
1321
+ * Background tone level (0-100) for {@link color}.
1322
+ */
1323
+ readonly colorTone?: Maybe<DbxColorTone>;
1324
+ /**
1325
+ * How the avatar image fills the avatar box. Defaults to `'contain'` in {@link tile} mode (a logo
1326
+ * must not be cropped) and `'cover'` otherwise.
1327
+ */
1328
+ readonly imageFit?: Maybe<DbxAvatarImageFit>;
1329
+ /**
1330
+ * Optional CSS filter applied to the avatar image (e.g. `'brightness(0) invert(1)'` to force a
1331
+ * single-color logo to render white).
1332
+ */
1333
+ readonly imageFilter?: Maybe<string>;
1334
+ /**
1335
+ * If true, `DbxAvatarViewService.defaultAvatarUrl` is not used when no url is available.
1336
+ *
1337
+ * That default is an app-wide *person* placeholder; an avatar that means to fall through to its
1338
+ * {@link icon} (a provider tile, say) has to be able to opt out of it.
1339
+ */
1340
+ readonly ignoreDefaultUrl?: Maybe<boolean>;
1290
1341
  }
1291
1342
  /**
1292
1343
  * Injection token for the avatar context data.
@@ -1393,6 +1444,19 @@ declare class DbxAvatarViewService {
1393
1444
  * Merges individual input properties with the optional `context` input and delegates rendering
1394
1445
  * to the component resolved by {@link DbxAvatarViewService}. Supports size variants via CSS classes.
1395
1446
  *
1447
+ * Renders an image when one is available, then name initials on a curated color, then a Material icon.
1448
+ * With `[avatarTile]` the avatar takes the `<dbx-icon-tile>` presentation — every `--dbx-icon-tile-*`
1449
+ * customization applies and `[avatarColor]` / `[avatarColorTone]` paint the tile surface — which makes
1450
+ * it the right choice for a branded row (a connected app, an integration) rather than a person.
1451
+ *
1452
+ * @dbxWebComponent
1453
+ * @dbxWebSlug avatar
1454
+ * @dbxWebCategory layout
1455
+ * @dbxWebRelated icon-tile, dbx-color, avatar-view
1456
+ * @dbxWebMinimalExample ```html
1457
+ * <dbx-avatar [avatarUrl]="user.photoUrl"></dbx-avatar>
1458
+ * ```
1459
+ *
1396
1460
  * @example
1397
1461
  * ```html
1398
1462
  * <dbx-avatar [avatarUrl]="user.photoUrl" [avatarStyle]="'circle'" [avatarSize]="'large'"></dbx-avatar>
@@ -1400,6 +1464,12 @@ declare class DbxAvatarViewService {
1400
1464
  *
1401
1465
  * @example
1402
1466
  * ```html
1467
+ * <!-- branded tile: logo image when there is one, Material icon otherwise -->
1468
+ * <dbx-avatar [avatarTile]="true" avatarStyle="square" [avatarUrl]="provider.logoUrl" avatarIcon="link" [avatarIgnoreDefaultUrl]="true" avatarColor="success" [avatarColorTone]="18"></dbx-avatar>
1469
+ * ```
1470
+ *
1471
+ * @example
1472
+ * ```html
1403
1473
  * <dbx-avatar [context]="avatarContext"></dbx-avatar>
1404
1474
  * ```
1405
1475
  */
@@ -1416,19 +1486,283 @@ declare class DbxAvatarComponent {
1416
1486
  readonly avatarStyle: _angular_core.InputSignal<Maybe<DbxAvatarStyle>>;
1417
1487
  readonly avatarSize: _angular_core.InputSignal<Maybe<DbxAvatarSize>>;
1418
1488
  readonly avatarHideOnError: _angular_core.InputSignal<Maybe<boolean>>;
1419
- readonly contextSignal: _angular_core.Signal<{
1420
- selector: Maybe<string>;
1421
- uid: Maybe<string>;
1422
- url: Maybe<string>;
1423
- name: Maybe<string>;
1424
- key: Maybe<string>;
1425
- icon: Maybe<string>;
1426
- style: DbxAvatarStyle | undefined;
1427
- hideOnError: Maybe<boolean>;
1428
- }>;
1489
+ readonly avatarTile: _angular_core.InputSignal<Maybe<boolean>>;
1490
+ readonly avatarColor: _angular_core.InputSignal<Maybe<DbxColorInput>>;
1491
+ readonly avatarColorTone: _angular_core.InputSignal<Maybe<number>>;
1492
+ readonly avatarImageFit: _angular_core.InputSignal<Maybe<DbxAvatarImageFit>>;
1493
+ readonly avatarImageFilter: _angular_core.InputSignal<Maybe<string>>;
1494
+ readonly avatarIgnoreDefaultUrl: _angular_core.InputSignal<Maybe<boolean>>;
1495
+ readonly contextSignal: _angular_core.Signal<DbxAvatarContext>;
1429
1496
  readonly configSignal: _angular_core.Signal<DbxInjectionComponentConfig<unknown>>;
1430
1497
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxAvatarComponent, never>;
1431
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxAvatarComponent, "dbx-avatar", never, { "context": { "alias": "context"; "required": false; "isSignal": true; }; "avatarSelector": { "alias": "avatarSelector"; "required": false; "isSignal": true; }; "avatarUid": { "alias": "avatarUid"; "required": false; "isSignal": true; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; "isSignal": true; }; "avatarName": { "alias": "avatarName"; "required": false; "isSignal": true; }; "avatarKey": { "alias": "avatarKey"; "required": false; "isSignal": true; }; "avatarIcon": { "alias": "avatarIcon"; "required": false; "isSignal": true; }; "avatarStyle": { "alias": "avatarStyle"; "required": false; "isSignal": true; }; "avatarSize": { "alias": "avatarSize"; "required": false; "isSignal": true; }; "avatarHideOnError": { "alias": "avatarHideOnError"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1498
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxAvatarComponent, "dbx-avatar", never, { "context": { "alias": "context"; "required": false; "isSignal": true; }; "avatarSelector": { "alias": "avatarSelector"; "required": false; "isSignal": true; }; "avatarUid": { "alias": "avatarUid"; "required": false; "isSignal": true; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; "isSignal": true; }; "avatarName": { "alias": "avatarName"; "required": false; "isSignal": true; }; "avatarKey": { "alias": "avatarKey"; "required": false; "isSignal": true; }; "avatarIcon": { "alias": "avatarIcon"; "required": false; "isSignal": true; }; "avatarStyle": { "alias": "avatarStyle"; "required": false; "isSignal": true; }; "avatarSize": { "alias": "avatarSize"; "required": false; "isSignal": true; }; "avatarHideOnError": { "alias": "avatarHideOnError"; "required": false; "isSignal": true; }; "avatarTile": { "alias": "avatarTile"; "required": false; "isSignal": true; }; "avatarColor": { "alias": "avatarColor"; "required": false; "isSignal": true; }; "avatarColorTone": { "alias": "avatarColorTone"; "required": false; "isSignal": true; }; "avatarImageFit": { "alias": "avatarImageFit"; "required": false; "isSignal": true; }; "avatarImageFilter": { "alias": "avatarImageFilter"; "required": false; "isSignal": true; }; "avatarIgnoreDefaultUrl": { "alias": "avatarIgnoreDefaultUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1499
+ }
1500
+
1501
+ /**
1502
+ * Configuration provided in the root module/environment for seeding {@link DbxColorService} with initial templates.
1503
+ */
1504
+ declare abstract class DbxColorServiceConfig {
1505
+ /**
1506
+ * Templates to register at service construction time.
1507
+ */
1508
+ abstract readonly templates?: Maybe<DbxColorConfigTemplate[]>;
1509
+ }
1510
+ /**
1511
+ * Service that registers named {@link DbxColorConfigTemplate} entries and expands
1512
+ * {@link DbxColorConfig} values that reference a template by key.
1513
+ *
1514
+ * Seeded via `provideDbxStyleService({ dbxColorServiceConfig: { templates: [...] } })`,
1515
+ * then injected by {@link DbxColorDirective} and {@link DbxTextColorDirective} to resolve
1516
+ * template references at render time.
1517
+ *
1518
+ * @dbxWebComponent
1519
+ * @dbxWebSlug color-service
1520
+ * @dbxWebCategory layout
1521
+ * @dbxWebRelated color, text-color, style-service
1522
+ *
1523
+ * @example
1524
+ * ```ts
1525
+ * const colorService = inject(DbxColorService);
1526
+ * colorService.register({ key: 'brand-positive', config: { color: '#1f9b59', contrast: 'white', tone: 18 } });
1527
+ * colorService.expandColorConfig({ template: 'brand-positive' });
1528
+ * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 18 }
1529
+ * ```
1530
+ */
1531
+ declare class DbxColorService {
1532
+ private readonly _templates;
1533
+ constructor();
1534
+ /**
1535
+ * Registers one or more {@link DbxColorConfigTemplate} entries.
1536
+ *
1537
+ * @param templates - The template(s) to register.
1538
+ * @param override - Whether existing entries with the same key should be replaced (default true)
1539
+ */
1540
+ register(templates: ArrayOrValue<DbxColorConfigTemplate>, override?: boolean): void;
1541
+ /**
1542
+ * Returns whether a template with the given key has been registered.
1543
+ *
1544
+ * @param key - The template key to check.
1545
+ * @returns True when a template is registered under the given key.
1546
+ */
1547
+ hasTemplate(key: DbxColorConfigTemplateKey): boolean;
1548
+ /**
1549
+ * Returns the {@link DbxColorConfigTemplate} registered under the given key, or undefined if none.
1550
+ *
1551
+ * @param key - The template key to look up.
1552
+ * @returns The registered template, or undefined when no template matches.
1553
+ */
1554
+ getTemplate(key: DbxColorConfigTemplateKey): Maybe<DbxColorConfigTemplate>;
1555
+ /**
1556
+ * Returns all currently registered template keys.
1557
+ *
1558
+ * @returns Array of all registered template keys.
1559
+ */
1560
+ getAllRegisteredTemplateKeys(): DbxColorConfigTemplateKey[];
1561
+ /**
1562
+ * Returns all registered templates flagged as part of the curated color set, in registration order.
1563
+ *
1564
+ * Includes the default {@link DBX_CURATED_COLOR_TEMPLATES} plus any app-registered curated templates.
1565
+ *
1566
+ * @returns The curated templates in insertion order.
1567
+ */
1568
+ getCuratedColorTemplates(): DbxColorConfigTemplate[];
1569
+ /**
1570
+ * Deterministically selects a curated {@link DbxColorConfig} for the given string from the registered curated set.
1571
+ *
1572
+ * The same input always maps to the same curated color, making it suitable for stable, name-derived
1573
+ * colors such as avatar initials backgrounds.
1574
+ *
1575
+ * @param value - The string to derive a curated color from (e.g. a person's name).
1576
+ * @returns The selected curated config, or `null` when the value is blank or no curated templates are registered.
1577
+ */
1578
+ getCuratedColorForValue(value: Maybe<string>): Maybe<DbxColorConfig>;
1579
+ /**
1580
+ * Resolves the {@link DbxColorConfig.template} reference (if any) and merges the template's
1581
+ * fields beneath the input config. Input config fields override the template's fields.
1582
+ *
1583
+ * Returns the input unchanged when no template is set or when the template key is unknown.
1584
+ *
1585
+ * @param config - The input config to expand.
1586
+ * @returns An expanded config, or the input unchanged when no expansion applies.
1587
+ *
1588
+ * @example
1589
+ * ```ts
1590
+ * service.register({ key: 'brand-positive', config: { color: '#1f9b59', contrast: 'white', tone: 18 } });
1591
+ * service.expandColorConfig({ template: 'brand-positive' });
1592
+ * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 18 }
1593
+ * service.expandColorConfig({ template: 'brand-positive', tone: 60 });
1594
+ * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 60 }
1595
+ * ```
1596
+ */
1597
+ expandColorConfig(config: Maybe<DbxColorConfig>): Maybe<DbxColorConfig>;
1598
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxColorService, never>;
1599
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DbxColorService>;
1600
+ }
1601
+
1602
+ /**
1603
+ * Provides themed color *tokens* to the host element — it never paints a background itself.
1604
+ *
1605
+ * Accepts either a {@link DbxThemeColor} string (e.g. `'primary'`, `'success'`) or a {@link DbxColorConfig}
1606
+ * object carrying arbitrary CSS color values (any hex, `rgb()`, `hsl()`, `var(...)`, `color-mix(...)`, etc.).
1607
+ * The directive sets the `--dbx-bg-color-current` / `--dbx-color-current` (and tone) custom properties and adds the
1608
+ * `.dbx-color` marker class, leaving the actual painting to either the explicit `.dbx-color-bg` utility on the same
1609
+ * element or a colored-surface component's own `.dbx-color`-scoped SCSS (e.g. `<dbx-bar>`, `<dbx-button>`, `<dbx-loading>`,
1610
+ * `<dbx-icon-tile>`, `<mat-card>`) that reads the inherited tokens.
1611
+ *
1612
+ * Optionally set {@link dbxColorTone} (0-100) to control background opacity for a tonal/muted appearance.
1613
+ * When tonal mode is active, the `dbx-color-tonal` CSS class is added and a CSS rule overrides the text
1614
+ * color to the vibrant color (via `--dbx-bg-color-current`).
1615
+ *
1616
+ * The standalone `[dbxColorTone]` input wins over `config.tone` when both are set; the same precedence
1617
+ * applies to tonal mode.
1618
+ *
1619
+ * @dbxWebComponent
1620
+ * @dbxWebSlug color
1621
+ * @dbxWebCategory layout
1622
+ * @dbxWebRelated text-color, color-service
1623
+ * @dbxWebMinimalExample ```html
1624
+ * <div dbxColor="primary" class="dbx-color-bg"></div>
1625
+ * ```
1626
+ *
1627
+ * @example
1628
+ * ```html
1629
+ * <!-- pair with .dbx-color-bg to paint a plain element -->
1630
+ * <div dbxColor="primary" class="dbx-color-bg">Themed background</div>
1631
+ * <div dbxColor="primary" [dbxColorTone]="18" class="dbx-color-bg">Tonal themed</div>
1632
+ * <div [dbxColor]="{ color: '#ff0066', contrast: 'white' }" class="dbx-color-bg">Custom hex</div>
1633
+ *
1634
+ * <!-- a colored-surface component paints itself from the tokens; no .dbx-color-bg needed -->
1635
+ * <dbx-bar dbxColor="primary">Bar paints itself</dbx-bar>
1636
+ * <dbx-button color="warn" raised text="Delete"></dbx-button>
1637
+ * ```
1638
+ */
1639
+ declare class DbxColorDirective {
1640
+ private readonly _colorService;
1641
+ /**
1642
+ * The color to provide tokens for. Declared as a `model` so a colored-surface component on the same host (e.g.
1643
+ * `dbx-button`) can push its resolved color into the directive, keeping it the single token provider on the element.
1644
+ */
1645
+ readonly dbxColor: _angular_core.ModelSignal<Maybe<DbxColorInput>>;
1646
+ /**
1647
+ * Background tone level (0-100). When set, the background becomes semi-transparent
1648
+ * and text color switches to the vibrant theme color for a tonal appearance.
1649
+ *
1650
+ * Declared as a `model` for the same reason as {@link dbxColor}: a colored-surface component on the same host (e.g.
1651
+ * `dbx-avatar-view`) resolves its tone from its own inputs/context and pushes it here, keeping this directive the
1652
+ * single token provider on the element.
1653
+ */
1654
+ readonly dbxColorTone: _angular_core.ModelSignal<Maybe<number>>;
1655
+ /**
1656
+ * Whether a color is currently bound. When nothing is bound the directive is fully inert — it adds no marker class
1657
+ * and no token class — so color tokens inherited from a `[dbxColor]` ancestor pass through untouched (important for
1658
+ * components that host this directive unconditionally, e.g. `dbx-button` inside a tonal `[dbxColor]` card).
1659
+ */
1660
+ readonly hasColorSignal: _angular_core.Signal<boolean>;
1661
+ /**
1662
+ * Applies the named `dbx-{color}-bg` token class for a {@link DbxThemeColor} string, or `''` both for a
1663
+ * {@link DbxColorConfig} (whose tokens are supplied by the inline `--dbx-bg-color-current` / `--dbx-color-current`
1664
+ * style bindings instead) and when no color is bound (inert; inherited tokens pass through). The directive is a pure
1665
+ * token provider — none of these classes paint a background; painting is done by the `.dbx-color-bg` utility or a
1666
+ * component's own `.dbx-color`-scoped SCSS.
1667
+ */
1668
+ readonly cssClassSignal: _angular_core.Signal<string>;
1669
+ private readonly _configSignal;
1670
+ /**
1671
+ * Inline `--dbx-bg-color-current` value applied when a {@link DbxColorConfig} is bound. Resolves to `null` in string mode so the named `.dbx-{color}-bg` class supplies the variable instead.
1672
+ */
1673
+ readonly bgColorStyleSignal: _angular_core.Signal<string | null>;
1674
+ /**
1675
+ * Inline `--dbx-color-current` value applied when a {@link DbxColorConfig} is bound. Resolves to `null` (and inherits from the named bg class) when omitted or in string mode.
1676
+ */
1677
+ readonly colorStyleSignal: _angular_core.Signal<string | null>;
1678
+ /**
1679
+ * Effective tone used for opacity. The standalone `[dbxColorTone]` input wins when set; otherwise `config.tone` applies.
1680
+ */
1681
+ readonly effectiveToneSignal: _angular_core.Signal<Maybe<number>>;
1682
+ /**
1683
+ * Whether tonal mode is active. Adds the `dbx-color-tonal` CSS class which
1684
+ * overrides the text color to the vibrant theme color via CSS rather than
1685
+ * an inline style binding (which would conflict with `[ngStyle]`).
1686
+ *
1687
+ * Precedence: an input-tone always implies tonal (existing behavior); otherwise
1688
+ * `config.tonal` wins when explicitly set, then falls back to inferring tonal mode
1689
+ * from `config.tone`.
1690
+ */
1691
+ readonly isTonalSignal: _angular_core.Signal<boolean>;
1692
+ /**
1693
+ * Sets `--dbx-color-bg-tone` on the host to control the background opacity via `color-mix` in the `-bg` class mixin.
1694
+ */
1695
+ readonly bgToneStyleSignal: _angular_core.Signal<string | null>;
1696
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxColorDirective, never>;
1697
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DbxColorDirective, "[dbxColor]", never, { "dbxColor": { "alias": "dbxColor"; "required": false; "isSignal": true; }; "dbxColorTone": { "alias": "dbxColorTone"; "required": false; "isSignal": true; }; }, { "dbxColor": "dbxColorChange"; "dbxColorTone": "dbxColorToneChange"; }, never, never, true, never>;
1698
+ }
1699
+
1700
+ /**
1701
+ * Displays an avatar image with automatic fallback to name initials and then a Material icon when no image is
1702
+ * available or when the image fails to load.
1703
+ *
1704
+ * Supports circle and square styles, and can optionally hide entirely on image error.
1705
+ * Receives context via the {@link DBX_AVATAR_CONTEXT_DATA_TOKEN} injection token or direct inputs.
1706
+ *
1707
+ * In tile mode the host also takes the `dbx-icon-tile` class, so the `--dbx-icon-tile-*` customizations and the
1708
+ * tile's own `.dbx-color` surface rule apply to the avatar. The color is pushed into the host
1709
+ * {@link DbxColorDirective} rather than bound by the caller, since the avatar view is usually created dynamically
1710
+ * by {@link DbxAvatarComponent} and has no template bindings of its own.
1711
+ *
1712
+ * @example
1713
+ * ```html
1714
+ * <dbx-avatar-view [avatarUrl]="user.photoUrl" [avatarStyle]="'circle'" [avatarIcon]="'account_circle'"></dbx-avatar-view>
1715
+ * ```
1716
+ */
1717
+ declare class DbxAvatarViewComponent {
1718
+ readonly defaultContext: Maybe<DbxAvatarContext>;
1719
+ readonly avatarService: DbxAvatarViewService;
1720
+ readonly colorService: DbxColorService | null;
1721
+ readonly defaultAvatarUrl: Maybe<string>;
1722
+ readonly avatarUrl: _angular_core.InputSignal<Maybe<string>>;
1723
+ readonly avatarErrorUrlSignal: _angular_core.WritableSignal<Maybe<string | boolean>>;
1724
+ readonly avatarName: _angular_core.InputSignal<Maybe<string>>;
1725
+ readonly avatarStyle: _angular_core.InputSignal<Maybe<DbxAvatarStyle>>;
1726
+ readonly avatarIcon: _angular_core.InputSignal<Maybe<string>>;
1727
+ readonly avatarHideOnError: _angular_core.InputSignal<Maybe<boolean>>;
1728
+ readonly avatarTile: _angular_core.InputSignal<Maybe<boolean>>;
1729
+ readonly avatarColor: _angular_core.InputSignal<Maybe<DbxColorInput>>;
1730
+ readonly avatarColorTone: _angular_core.InputSignal<Maybe<number>>;
1731
+ readonly avatarImageFit: _angular_core.InputSignal<Maybe<DbxAvatarImageFit>>;
1732
+ readonly avatarImageFilter: _angular_core.InputSignal<Maybe<string>>;
1733
+ readonly avatarIgnoreDefaultUrl: _angular_core.InputSignal<Maybe<boolean>>;
1734
+ constructor();
1735
+ readonly avatarHideOnErrorSignal: _angular_core.Signal<boolean>;
1736
+ readonly avatarTileSignal: _angular_core.Signal<boolean>;
1737
+ readonly avatarColorSignal: _angular_core.Signal<Maybe<DbxColorInput>>;
1738
+ readonly avatarColorToneSignal: _angular_core.Signal<Maybe<number>>;
1739
+ readonly avatarImageFilterSignal: _angular_core.Signal<Maybe<string>>;
1740
+ /**
1741
+ * A tile is a branded surface, so its image defaults to `'contain'` — cropping a logo is never right.
1742
+ */
1743
+ readonly avatarImageFitSignal: _angular_core.Signal<DbxAvatarImageFit>;
1744
+ readonly avatarIgnoreDefaultUrlSignal: _angular_core.Signal<boolean>;
1745
+ readonly currentAvatarUrlSignal: _angular_core.Signal<Maybe<string>>;
1746
+ readonly hasAvatarErrorSignal: _angular_core.Signal<boolean>;
1747
+ readonly avatarUrlSignal: _angular_core.Signal<Maybe<string>>;
1748
+ readonly hasAvatarSignal: _angular_core.Signal<boolean>;
1749
+ readonly missingAvatarSignal: _angular_core.Signal<boolean>;
1750
+ readonly avatarStyleClassSignal: _angular_core.Signal<"circle" | "square">;
1751
+ readonly hideAvatarSignal: _angular_core.Signal<boolean>;
1752
+ readonly avatarIconSignal: _angular_core.Signal<string>;
1753
+ readonly nameSignal: _angular_core.Signal<Maybe<string>>;
1754
+ readonly initialsSignal: _angular_core.Signal<Maybe<string>>;
1755
+ readonly hasInitialsSignal: _angular_core.Signal<boolean>;
1756
+ /**
1757
+ * The curated color the initials are painted on.
1758
+ *
1759
+ * Null when an explicit color is set: the initials surface is 100% of the avatar box, so a curated color would
1760
+ * cover the host's painted surface entirely, and the host's inherited `--dbx-color-bg-tone` would wash it out.
1761
+ */
1762
+ readonly curatedColorSignal: _angular_core.Signal<Maybe<DbxColorConfig>>;
1763
+ onAvatarImageError(event: Event): void;
1764
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxAvatarViewComponent, never>;
1765
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxAvatarViewComponent, "dbx-avatar-view", never, { "avatarUrl": { "alias": "avatarUrl"; "required": false; "isSignal": true; }; "avatarName": { "alias": "avatarName"; "required": false; "isSignal": true; }; "avatarStyle": { "alias": "avatarStyle"; "required": false; "isSignal": true; }; "avatarIcon": { "alias": "avatarIcon"; "required": false; "isSignal": true; }; "avatarHideOnError": { "alias": "avatarHideOnError"; "required": false; "isSignal": true; }; "avatarTile": { "alias": "avatarTile"; "required": false; "isSignal": true; }; "avatarColor": { "alias": "avatarColor"; "required": false; "isSignal": true; }; "avatarColorTone": { "alias": "avatarColorTone"; "required": false; "isSignal": true; }; "avatarImageFit": { "alias": "avatarImageFit"; "required": false; "isSignal": true; }; "avatarImageFilter": { "alias": "avatarImageFilter"; "required": false; "isSignal": true; }; "avatarIgnoreDefaultUrl": { "alias": "avatarIgnoreDefaultUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof DbxColorDirective; inputs: {}; outputs: {}; }]>;
1432
1766
  }
1433
1767
 
1434
1768
  /**
@@ -4330,101 +4664,7 @@ declare class DbxSectionLayoutModule {
4330
4664
  }
4331
4665
 
4332
4666
  /**
4333
- * Provides themed color *tokens* to the host element — it never paints a background itself.
4334
- *
4335
- * Accepts either a {@link DbxThemeColor} string (e.g. `'primary'`, `'success'`) or a {@link DbxColorConfig}
4336
- * object carrying arbitrary CSS color values (any hex, `rgb()`, `hsl()`, `var(...)`, `color-mix(...)`, etc.).
4337
- * The directive sets the `--dbx-bg-color-current` / `--dbx-color-current` (and tone) custom properties and adds the
4338
- * `.dbx-color` marker class, leaving the actual painting to either the explicit `.dbx-color-bg` utility on the same
4339
- * element or a colored-surface component's own `.dbx-color`-scoped SCSS (e.g. `<dbx-bar>`, `<dbx-button>`, `<dbx-loading>`,
4340
- * `<dbx-icon-tile>`, `<mat-card>`) that reads the inherited tokens.
4341
- *
4342
- * Optionally set {@link dbxColorTone} (0-100) to control background opacity for a tonal/muted appearance.
4343
- * When tonal mode is active, the `dbx-color-tonal` CSS class is added and a CSS rule overrides the text
4344
- * color to the vibrant color (via `--dbx-bg-color-current`).
4345
- *
4346
- * The standalone `[dbxColorTone]` input wins over `config.tone` when both are set; the same precedence
4347
- * applies to tonal mode.
4348
- *
4349
- * @dbxWebComponent
4350
- * @dbxWebSlug color
4351
- * @dbxWebCategory layout
4352
- * @dbxWebRelated text-color, color-service
4353
- * @dbxWebMinimalExample ```html
4354
- * <div dbxColor="primary" class="dbx-color-bg"></div>
4355
- * ```
4356
- *
4357
- * @example
4358
- * ```html
4359
- * <!-- pair with .dbx-color-bg to paint a plain element -->
4360
- * <div dbxColor="primary" class="dbx-color-bg">Themed background</div>
4361
- * <div dbxColor="primary" [dbxColorTone]="18" class="dbx-color-bg">Tonal themed</div>
4362
- * <div [dbxColor]="{ color: '#ff0066', contrast: 'white' }" class="dbx-color-bg">Custom hex</div>
4363
- *
4364
- * <!-- a colored-surface component paints itself from the tokens; no .dbx-color-bg needed -->
4365
- * <dbx-bar dbxColor="primary">Bar paints itself</dbx-bar>
4366
- * <dbx-button color="warn" raised text="Delete"></dbx-button>
4367
- * ```
4368
- */
4369
- declare class DbxColorDirective {
4370
- private readonly _colorService;
4371
- /**
4372
- * The color to provide tokens for. Declared as a `model` so a colored-surface component on the same host (e.g.
4373
- * `dbx-button`) can push its resolved color into the directive, keeping it the single token provider on the element.
4374
- */
4375
- readonly dbxColor: _angular_core.ModelSignal<Maybe<DbxColorInput>>;
4376
- /**
4377
- * Background tone level (0-100). When set, the background becomes semi-transparent
4378
- * and text color switches to the vibrant theme color for a tonal appearance.
4379
- */
4380
- readonly dbxColorTone: _angular_core.InputSignal<Maybe<number>>;
4381
- /**
4382
- * Whether a color is currently bound. When nothing is bound the directive is fully inert — it adds no marker class
4383
- * and no token class — so color tokens inherited from a `[dbxColor]` ancestor pass through untouched (important for
4384
- * components that host this directive unconditionally, e.g. `dbx-button` inside a tonal `[dbxColor]` card).
4385
- */
4386
- readonly hasColorSignal: _angular_core.Signal<boolean>;
4387
- /**
4388
- * Applies the named `dbx-{color}-bg` token class for a {@link DbxThemeColor} string, or `''` both for a
4389
- * {@link DbxColorConfig} (whose tokens are supplied by the inline `--dbx-bg-color-current` / `--dbx-color-current`
4390
- * style bindings instead) and when no color is bound (inert; inherited tokens pass through). The directive is a pure
4391
- * token provider — none of these classes paint a background; painting is done by the `.dbx-color-bg` utility or a
4392
- * component's own `.dbx-color`-scoped SCSS.
4393
- */
4394
- readonly cssClassSignal: _angular_core.Signal<string>;
4395
- private readonly _configSignal;
4396
- /**
4397
- * Inline `--dbx-bg-color-current` value applied when a {@link DbxColorConfig} is bound. Resolves to `null` in string mode so the named `.dbx-{color}-bg` class supplies the variable instead.
4398
- */
4399
- readonly bgColorStyleSignal: _angular_core.Signal<string | null>;
4400
- /**
4401
- * Inline `--dbx-color-current` value applied when a {@link DbxColorConfig} is bound. Resolves to `null` (and inherits from the named bg class) when omitted or in string mode.
4402
- */
4403
- readonly colorStyleSignal: _angular_core.Signal<string | null>;
4404
- /**
4405
- * Effective tone used for opacity. The standalone `[dbxColorTone]` input wins when set; otherwise `config.tone` applies.
4406
- */
4407
- readonly effectiveToneSignal: _angular_core.Signal<Maybe<number>>;
4408
- /**
4409
- * Whether tonal mode is active. Adds the `dbx-color-tonal` CSS class which
4410
- * overrides the text color to the vibrant theme color via CSS rather than
4411
- * an inline style binding (which would conflict with `[ngStyle]`).
4412
- *
4413
- * Precedence: an input-tone always implies tonal (existing behavior); otherwise
4414
- * `config.tonal` wins when explicitly set, then falls back to inferring tonal mode
4415
- * from `config.tone`.
4416
- */
4417
- readonly isTonalSignal: _angular_core.Signal<boolean>;
4418
- /**
4419
- * Sets `--dbx-color-bg-tone` on the host to control the background opacity via `color-mix` in the `-bg` class mixin.
4420
- */
4421
- readonly bgToneStyleSignal: _angular_core.Signal<string | null>;
4422
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxColorDirective, never>;
4423
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DbxColorDirective, "[dbxColor]", never, { "dbxColor": { "alias": "dbxColor"; "required": false; "isSignal": true; }; "dbxColorTone": { "alias": "dbxColorTone"; "required": false; "isSignal": true; }; }, { "dbxColor": "dbxColorChange"; }, never, never, true, never>;
4424
- }
4425
-
4426
- /**
4427
- * Adds flexible spacing between sibling elements in a flex container.
4667
+ * Adds flexible spacing between sibling elements in a flex container.
4428
4668
  *
4429
4669
  * @dbxWebComponent
4430
4670
  * @dbxWebSlug spacer
@@ -4682,107 +4922,6 @@ declare class DbxStyleService implements Destroyable {
4682
4922
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DbxStyleService>;
4683
4923
  }
4684
4924
 
4685
- /**
4686
- * Configuration provided in the root module/environment for seeding {@link DbxColorService} with initial templates.
4687
- */
4688
- declare abstract class DbxColorServiceConfig {
4689
- /**
4690
- * Templates to register at service construction time.
4691
- */
4692
- abstract readonly templates?: Maybe<DbxColorConfigTemplate[]>;
4693
- }
4694
- /**
4695
- * Service that registers named {@link DbxColorConfigTemplate} entries and expands
4696
- * {@link DbxColorConfig} values that reference a template by key.
4697
- *
4698
- * Seeded via `provideDbxStyleService({ dbxColorServiceConfig: { templates: [...] } })`,
4699
- * then injected by {@link DbxColorDirective} and {@link DbxTextColorDirective} to resolve
4700
- * template references at render time.
4701
- *
4702
- * @dbxWebComponent
4703
- * @dbxWebSlug color-service
4704
- * @dbxWebCategory layout
4705
- * @dbxWebRelated color, text-color, style-service
4706
- *
4707
- * @example
4708
- * ```ts
4709
- * const colorService = inject(DbxColorService);
4710
- * colorService.register({ key: 'brand-positive', config: { color: '#1f9b59', contrast: 'white', tone: 18 } });
4711
- * colorService.expandColorConfig({ template: 'brand-positive' });
4712
- * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 18 }
4713
- * ```
4714
- */
4715
- declare class DbxColorService {
4716
- private readonly _templates;
4717
- constructor();
4718
- /**
4719
- * Registers one or more {@link DbxColorConfigTemplate} entries.
4720
- *
4721
- * @param templates - The template(s) to register.
4722
- * @param override - Whether existing entries with the same key should be replaced (default true)
4723
- */
4724
- register(templates: ArrayOrValue<DbxColorConfigTemplate>, override?: boolean): void;
4725
- /**
4726
- * Returns whether a template with the given key has been registered.
4727
- *
4728
- * @param key - The template key to check.
4729
- * @returns True when a template is registered under the given key.
4730
- */
4731
- hasTemplate(key: DbxColorConfigTemplateKey): boolean;
4732
- /**
4733
- * Returns the {@link DbxColorConfigTemplate} registered under the given key, or undefined if none.
4734
- *
4735
- * @param key - The template key to look up.
4736
- * @returns The registered template, or undefined when no template matches.
4737
- */
4738
- getTemplate(key: DbxColorConfigTemplateKey): Maybe<DbxColorConfigTemplate>;
4739
- /**
4740
- * Returns all currently registered template keys.
4741
- *
4742
- * @returns Array of all registered template keys.
4743
- */
4744
- getAllRegisteredTemplateKeys(): DbxColorConfigTemplateKey[];
4745
- /**
4746
- * Returns all registered templates flagged as part of the curated color set, in registration order.
4747
- *
4748
- * Includes the default {@link DBX_CURATED_COLOR_TEMPLATES} plus any app-registered curated templates.
4749
- *
4750
- * @returns The curated templates in insertion order.
4751
- */
4752
- getCuratedColorTemplates(): DbxColorConfigTemplate[];
4753
- /**
4754
- * Deterministically selects a curated {@link DbxColorConfig} for the given string from the registered curated set.
4755
- *
4756
- * The same input always maps to the same curated color, making it suitable for stable, name-derived
4757
- * colors such as avatar initials backgrounds.
4758
- *
4759
- * @param value - The string to derive a curated color from (e.g. a person's name).
4760
- * @returns The selected curated config, or `null` when the value is blank or no curated templates are registered.
4761
- */
4762
- getCuratedColorForValue(value: Maybe<string>): Maybe<DbxColorConfig>;
4763
- /**
4764
- * Resolves the {@link DbxColorConfig.template} reference (if any) and merges the template's
4765
- * fields beneath the input config. Input config fields override the template's fields.
4766
- *
4767
- * Returns the input unchanged when no template is set or when the template key is unknown.
4768
- *
4769
- * @param config - The input config to expand.
4770
- * @returns An expanded config, or the input unchanged when no expansion applies.
4771
- *
4772
- * @example
4773
- * ```ts
4774
- * service.register({ key: 'brand-positive', config: { color: '#1f9b59', contrast: 'white', tone: 18 } });
4775
- * service.expandColorConfig({ template: 'brand-positive' });
4776
- * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 18 }
4777
- * service.expandColorConfig({ template: 'brand-positive', tone: 60 });
4778
- * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 60 }
4779
- * ```
4780
- */
4781
- expandColorConfig(config: Maybe<DbxColorConfig>): Maybe<DbxColorConfig>;
4782
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxColorService, never>;
4783
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<DbxColorService>;
4784
- }
4785
-
4786
4925
  /**
4787
4926
  * Configuration for provideDbxStyleService().
4788
4927
  */
@@ -9803,6 +9942,18 @@ declare const DEFAULT_DBX_PDF_MERGE_ENCRYPTED_HANDLING: DbxPdfMergeEncryptedHand
9803
9942
  * Error message used when an encrypted entry is projected to the `error` status under {@link DbxPdfMergeEncryptedHandling} `'error'` mode.
9804
9943
  */
9805
9944
  declare const DBX_PDF_MERGE_ENCRYPTED_ERROR_MESSAGE = "Password-protected PDFs cannot be merged.";
9945
+ /**
9946
+ * Default value for {@link DbxPdfMergeEditorConfig.pageEditing}. Off, so the editor's default behavior is unchanged.
9947
+ */
9948
+ declare const DEFAULT_DBX_PDF_MERGE_PAGE_EDITING = false;
9949
+ /**
9950
+ * Default value for {@link DbxPdfMergeEditorConfig.sidecar}. Off, so merged output bytes are unchanged.
9951
+ */
9952
+ declare const DEFAULT_DBX_PDF_MERGE_SIDECAR = false;
9953
+ /**
9954
+ * Message shown on an encrypted entry's row while page editing is enabled. Encrypted documents cannot be opened by `pdf-lib`, so their pages cannot be listed or edited — the entry stays a single opaque row.
9955
+ */
9956
+ declare const DBX_PDF_MERGE_ENCRYPTED_NOT_EDITABLE_MESSAGE = "Encrypted \u2014 pages cannot be edited.";
9806
9957
  /**
9807
9958
  * MIME types accepted by the PDF merge editor by default: PDF documents and PNG/JPEG images.
9808
9959
  */
@@ -9874,75 +10025,236 @@ interface PdfMergeEntryView extends PdfMergeEntry {
9874
10025
  readonly ignored: boolean;
9875
10026
  }
9876
10027
  /**
9877
- * Validation delegate registered on the {@link DbxPdfMergeEditorStore}. Receives the live {@link PdfMergeEntry} stream and returns a stream of `boolean` values controlling whether the store may emit a merge result. Emitting `false` causes {@link DbxPdfMergeEditorStore.currentMergeOutput$} to emit `undefined` and prevents {@link DbxPdfMergeEditorStore.mergeOutput$} from emitting.
10028
+ * Rotation the user has applied to a page, in degrees clockwise.
9878
10029
  */
9879
- type DbxPdfMergeEditorValidator = (entries$: Observable<PdfMergeEntry[]>) => Observable<boolean>;
10030
+ type PdfMergePageRotation = 0 | 90 | 180 | 270;
9880
10031
  /**
9881
- * Minimal interface that a slot upload component exposes to {@link DbxPdfMergeEditorFileUploadValidatorDirective}. Implemented by {@link DbxPdfMergeEditorFileUploadComponent}.
10032
+ * Group key used for pages whose source entry has no slot id.
9882
10033
  */
9883
- interface DbxPdfMergeEditorFileUploadValidatorSlot {
10034
+ declare const DEFAULT_PDF_MERGE_PAGE_GROUP_KEY = "_";
10035
+ /**
10036
+ * Returns the group key a page reorders within — its entry's slot id, or {@link DEFAULT_PDF_MERGE_PAGE_GROUP_KEY} when the entry is unslotted.
10037
+ *
10038
+ * @param slotId - Slot id of the owning entry, if any.
10039
+ * @returns The group key.
10040
+ * @__NO_SIDE_EFFECTS__
10041
+ */
10042
+ declare function pdfMergePageGroupKeyForSlotId(slotId: Maybe<string>): string;
10043
+ /**
10044
+ * Separator between the entry id and the page index inside a page id.
10045
+ */
10046
+ declare const PDF_MERGE_PAGE_ID_SEPARATOR = ":";
10047
+ /**
10048
+ * Builds the stable identifier for a page within the editor.
10049
+ *
10050
+ * @param entryId - Id of the owning {@link PdfMergeEntry}.
10051
+ * @param sourceIndex - Zero-based page index within that entry's source document.
10052
+ * @returns The page id.
10053
+ * @__NO_SIDE_EFFECTS__
10054
+ */
10055
+ declare function makePdfMergePageId(entryId: string, sourceIndex: number): string;
10056
+ /**
10057
+ * Returns the id of the entry a page id belongs to. Used to prune page state when an entry leaves the list.
10058
+ *
10059
+ * @param pageId - Page id produced by {@link makePdfMergePageId}.
10060
+ * @returns The owning entry's id.
10061
+ * @__NO_SIDE_EFFECTS__
10062
+ */
10063
+ declare function entryIdForPdfMergePageId(pageId: string): string;
10064
+ /**
10065
+ * Per-page metadata captured when a {@link PdfMergeEntry} is expanded for page editing. Read once per entry by the store's hydration pass and cached for as long as the entry stays in the list.
10066
+ */
10067
+ interface PdfMergePageMeta {
9884
10068
  /**
9885
- * Identifies the slot. Used by the validator directive only for diagnostics — the directive aggregates by reference, not by id.
10069
+ * Zero-based index of this page within its source document.
9886
10070
  */
9887
- readonly slotId: () => string;
10071
+ readonly sourceIndex: number;
9888
10072
  /**
9889
- * Stream that emits `true` while this slot is satisfied (per its own config and the validator's required/optional rules) and `false` otherwise.
10073
+ * Page width in PDF points.
9890
10074
  */
9891
- readonly isValid$: Observable<boolean>;
9892
- }
9893
- /**
9894
- * State managed by the PDF merge editor's component store.
9895
- */
9896
- interface PdfMergeEditorState {
10075
+ readonly width: number;
9897
10076
  /**
9898
- * Ordered list of entries the user has added. Order determines page order in the merged output.
10077
+ * Page height in PDF points.
9899
10078
  */
9900
- readonly rawEntries: PdfMergeEntry[];
10079
+ readonly height: number;
10080
+ /**
10081
+ * Rotation already baked into the source page, in degrees. User rotation composes on top of this at merge time rather than replacing it, so rotating an already-sideways scan behaves as the user expects.
10082
+ */
10083
+ readonly sourceRotation: number;
9901
10084
  }
9902
10085
  /**
9903
- * Index movement payload used by the editor's reorder updater.
10086
+ * A user's edits to a single page, held sparsely in {@link PdfMergeEditorState.pageOverrides}. Only pages the user has actually touched appear, so adding or removing an entry needs no page bookkeeping.
9904
10087
  */
9905
- interface PdfMergeEntryMove {
9906
- readonly previousIndex: number;
9907
- readonly currentIndex: number;
10088
+ interface PdfMergePageOverride {
10089
+ readonly rotation: PdfMergePageRotation;
10090
+ readonly removed: boolean;
9908
10091
  }
9909
10092
  /**
9910
- * Output size limits enforced by {@link DbxPdfMergeEditorComponent} on its merged blob.
10093
+ * A single page in the editor's page plan, derived by the store from the current entries plus any {@link PdfMergePageOverride}. Only produced while page editing is enabled.
9911
10094
  */
9912
- interface DbxPdfMergeOutputSizeLimitsConfig {
10095
+ interface PdfMergePageView {
9913
10096
  /**
9914
- * Soft cap in bytes. Above this the editor surfaces a warning banner but Preview/Download stay enabled.
10097
+ * Stable identifier — see {@link makePdfMergePageId}.
9915
10098
  */
9916
- readonly warnBytes?: Maybe<FileSize>;
10099
+ readonly id: string;
9917
10100
  /**
9918
- * Hard cap in bytes. Above this the editor blocks Preview/Download via the store's validity pipeline.
10101
+ * Id of the {@link PdfMergeEntry} this page came from.
9919
10102
  */
9920
- readonly errorBytes?: Maybe<FileSize>;
9921
- }
9922
- /**
9923
- * Top-level configuration object accepted by {@link DbxPdfMergeEditorComponent} (via input) and by {@link DBX_PDF_MERGE_EDITOR_CONFIG} (via dependency injection).
9924
- */
9925
- interface DbxPdfMergeEditorConfig {
10103
+ readonly entryId: string;
9926
10104
  /**
9927
- * Image compression to run on uploads. When omitted, files enter the entry list unchanged.
10105
+ * Slot that owns the source entry, or `null` when unslotted.
9928
10106
  */
9929
- readonly imageCompression?: Maybe<DbxImageCompressionConfig>;
10107
+ readonly slotId: Maybe<string>;
9930
10108
  /**
9931
- * Soft/hard output-size limits surfaced via warning/error banners and (for `errorBytes`) the store's validity gate.
10109
+ * Key of the group this page reorders within — see {@link pdfMergePageGroupKeyForSlotId}.
9932
10110
  */
9933
- readonly outputSizeLimits?: Maybe<DbxPdfMergeOutputSizeLimitsConfig>;
10111
+ readonly groupKey: string;
9934
10112
  /**
9935
- * Accept filter for the editor's default "Add files" upload area. Defaults to {@link DEFAULT_PDF_MERGE_ACCEPT}.
10113
+ * Name of the source file the page came from.
9936
10114
  */
9937
- readonly accept?: Maybe<FileArrayAcceptMatchConfig['accept']>;
10115
+ readonly sourceName: string;
9938
10116
  /**
9939
- * Whether the default upload area accepts multiple files. Defaults to `true`.
10117
+ * Whether the page came from a PDF or from an embedded image. Also determines how {@link PdfMergePageMeta} dimensions should be read — PDF pages are measured in points, image pages in pixels.
9940
10118
  */
9941
- readonly multiple?: Maybe<boolean>;
10119
+ readonly kind: PdfMergeEntryKind;
9942
10120
  /**
9943
- * File name used for the merged output (download + preview). Defaults to `merged.pdf`.
10121
+ * Zero-based index of this page within its source document.
9944
10122
  */
9945
- readonly fileName?: Maybe<string>;
10123
+ readonly sourceIndex: number;
10124
+ /**
10125
+ * Total page count of the source document. Drives the "page 2 of 3" label.
10126
+ */
10127
+ readonly sourcePageCount: number;
10128
+ /**
10129
+ * Metadata read from the source page.
10130
+ */
10131
+ readonly meta: PdfMergePageMeta;
10132
+ /**
10133
+ * User-applied rotation, composed with {@link PdfMergePageMeta.sourceRotation} at merge time.
10134
+ */
10135
+ readonly rotation: PdfMergePageRotation;
10136
+ /**
10137
+ * Whether the user marked this page for deletion. Marked pages stay visible in the list (struck through, restorable) but are excluded from the merge output.
10138
+ */
10139
+ readonly removed: boolean;
10140
+ }
10141
+ /**
10142
+ * A set of pages that reorder together — every page contributed by one slot's entries, or every unslotted page. Pages never move between groups: the page list renders one CDK drop list per group, and unconnected drop lists cannot accept each other's drags, so the rule is enforced by construction rather than by a guard.
10143
+ */
10144
+ interface PdfMergePageGroup {
10145
+ readonly groupKey: string;
10146
+ /**
10147
+ * Slot the group belongs to, or `null` for the unslotted group.
10148
+ */
10149
+ readonly slotId: Maybe<string>;
10150
+ readonly pages: readonly PdfMergePageView[];
10151
+ }
10152
+ /**
10153
+ * Validation delegate registered on the {@link DbxPdfMergeEditorStore}. Receives the live {@link PdfMergeEntry} stream and returns a stream of `boolean` values controlling whether the store may emit a merge result. Emitting `false` causes {@link DbxPdfMergeEditorStore.currentMergeOutput$} to emit `undefined` and prevents {@link DbxPdfMergeEditorStore.mergeOutput$} from emitting.
10154
+ */
10155
+ type DbxPdfMergeEditorValidator = (entries$: Observable<PdfMergeEntry[]>) => Observable<boolean>;
10156
+ /**
10157
+ * Minimal interface that a slot upload component exposes to {@link DbxPdfMergeEditorFileUploadValidatorDirective}. Implemented by {@link DbxPdfMergeEditorFileUploadComponent}.
10158
+ */
10159
+ interface DbxPdfMergeEditorFileUploadValidatorSlot {
10160
+ /**
10161
+ * Identifies the slot. Used by the validator directive only for diagnostics — the directive aggregates by reference, not by id.
10162
+ */
10163
+ readonly slotId: () => string;
10164
+ /**
10165
+ * Stream that emits `true` while this slot is satisfied (per its own config and the validator's required/optional rules) and `false` otherwise.
10166
+ */
10167
+ readonly isValid$: Observable<boolean>;
10168
+ }
10169
+ /**
10170
+ * State managed by the PDF merge editor's component store.
10171
+ */
10172
+ interface PdfMergeEditorState {
10173
+ /**
10174
+ * Ordered list of entries the user has added. Order determines page order in the merged output.
10175
+ */
10176
+ readonly rawEntries: PdfMergeEntry[];
10177
+ /**
10178
+ * Sparse per-page edit overrides keyed by {@link PdfMergePageView.id}. Only pages the user has touched appear here. Overrides for pages that no longer resolve are ignored by the derived page stream and pruned when their owning entry leaves the list. Stays empty while page editing is disabled.
10179
+ */
10180
+ readonly pageOverrides: Record<string, PdfMergePageOverride>;
10181
+ /**
10182
+ * Explicit page ordering per group key, holding {@link PdfMergePageView.id} values. A group absent from this record uses natural order. Ids that no longer resolve are ignored, and pages missing from a stored list are appended in natural order — so the ordering self-heals as entries come and go. Stays empty while page editing is disabled.
10183
+ */
10184
+ readonly pageOrder: Record<string, string[]>;
10185
+ }
10186
+ /**
10187
+ * Index movement payload used by the editor's reorder updater.
10188
+ */
10189
+ interface PdfMergeEntryMove {
10190
+ readonly previousIndex: number;
10191
+ readonly currentIndex: number;
10192
+ }
10193
+ /**
10194
+ * Index movement payload used by the editor's page reorder updater. Indices are group-local — the positions the group's CDK drop list sees, not positions in the overall page plan.
10195
+ */
10196
+ interface PdfMergePageMove {
10197
+ readonly groupKey: string;
10198
+ /**
10199
+ * The group's page ids in the order they were rendered when the drag started.
10200
+ *
10201
+ * Supplied by the caller rather than recomputed by the store: the plan is derived state, so the store cannot see the exact order the user was looking at. Rewriting the array the component rendered keeps the stored order and the visible order in step.
10202
+ */
10203
+ readonly pageIds: readonly string[];
10204
+ readonly previousIndex: number;
10205
+ readonly currentIndex: number;
10206
+ }
10207
+ /**
10208
+ * Payload for setting a page's rotation.
10209
+ */
10210
+ interface PdfMergePageRotationChange {
10211
+ readonly pageId: string;
10212
+ readonly rotation: PdfMergePageRotation;
10213
+ }
10214
+ /**
10215
+ * Payload for marking a page as removed or restoring it.
10216
+ */
10217
+ interface PdfMergePageRemovedChange {
10218
+ readonly pageId: string;
10219
+ readonly removed: boolean;
10220
+ }
10221
+ /**
10222
+ * Output size limits enforced by {@link DbxPdfMergeEditorComponent} on its merged blob.
10223
+ */
10224
+ interface DbxPdfMergeOutputSizeLimitsConfig {
10225
+ /**
10226
+ * Soft cap in bytes. Above this the editor surfaces a warning banner but Preview/Download stay enabled.
10227
+ */
10228
+ readonly warnBytes?: Maybe<FileSize>;
10229
+ /**
10230
+ * Hard cap in bytes. Above this the editor blocks Preview/Download via the store's validity pipeline.
10231
+ */
10232
+ readonly errorBytes?: Maybe<FileSize>;
10233
+ }
10234
+ /**
10235
+ * Top-level configuration object accepted by {@link DbxPdfMergeEditorComponent} (via input) and by {@link DBX_PDF_MERGE_EDITOR_CONFIG} (via dependency injection).
10236
+ */
10237
+ interface DbxPdfMergeEditorConfig {
10238
+ /**
10239
+ * Image compression to run on uploads. When omitted, files enter the entry list unchanged.
10240
+ */
10241
+ readonly imageCompression?: Maybe<DbxImageCompressionConfig>;
10242
+ /**
10243
+ * Soft/hard output-size limits surfaced via warning/error banners and (for `errorBytes`) the store's validity gate.
10244
+ */
10245
+ readonly outputSizeLimits?: Maybe<DbxPdfMergeOutputSizeLimitsConfig>;
10246
+ /**
10247
+ * Accept filter for the editor's default "Add files" upload area. Defaults to {@link DEFAULT_PDF_MERGE_ACCEPT}.
10248
+ */
10249
+ readonly accept?: Maybe<FileArrayAcceptMatchConfig['accept']>;
10250
+ /**
10251
+ * Whether the default upload area accepts multiple files. Defaults to `true`.
10252
+ */
10253
+ readonly multiple?: Maybe<boolean>;
10254
+ /**
10255
+ * File name used for the merged output (download + preview). Defaults to `merged.pdf`.
10256
+ */
10257
+ readonly fileName?: Maybe<string>;
9946
10258
  /**
9947
10259
  * Whether to show the embedded download button. Defaults to `false`.
9948
10260
  */
@@ -9967,6 +10279,20 @@ interface DbxPdfMergeEditorConfig {
9967
10279
  * Strategy for how encrypted PDFs are handled — see {@link DbxPdfMergeEncryptedHandling}. Defaults to {@link DEFAULT_DBX_PDF_MERGE_ENCRYPTED_HANDLING} (`'focus'`).
9968
10280
  */
9969
10281
  readonly encryptedHandling?: Maybe<DbxPdfMergeEncryptedHandling>;
10282
+ /**
10283
+ * Enables page editing mode. When `true`, the editor's list shows the individual pages of each uploaded PDF instead of one row per file, letting the user reorder, rotate, and mark pages for deletion with the merged output updating live.
10284
+ *
10285
+ * Pages reorder only within their own slot — a slot is one logical document, so letting a page cross slots would silently move content between documents.
10286
+ *
10287
+ * Defaults to {@link DEFAULT_DBX_PDF_MERGE_PAGE_EDITING} (`false`), in which case the editor behaves exactly as it does without this option: the page list is never instantiated and no source document is parsed.
10288
+ */
10289
+ readonly pageEditing?: Maybe<boolean>;
10290
+ /**
10291
+ * Embeds a sidecar manifest and per-page tags into the merged output, recording which pages came from which slot so downstream code can target them later via `readPdfMergeSidecar`. Independent of {@link pageEditing} — a plain slot merge benefits from the record too.
10292
+ *
10293
+ * Defaults to {@link DEFAULT_DBX_PDF_MERGE_SIDECAR} (`false`), in which case the output bytes are unchanged.
10294
+ */
10295
+ readonly sidecar?: Maybe<boolean>;
9970
10296
  }
9971
10297
  /**
9972
10298
  * Injection token for a workspace-wide default {@link DbxPdfMergeEditorConfig}. Use {@link provideDbxPdfMergeEditorConfig} to register a value.
@@ -9991,6 +10317,204 @@ declare const DBX_PDF_MERGE_EDITOR_PRESERVE_ENTRIES_ON_SLOT_DESTROY: InjectionTo
9991
10317
  */
9992
10318
  declare function provideDbxPdfMergeEditorPreserveEntriesOnSlotDestroy(preserve?: boolean): Provider;
9993
10319
 
10320
+ /**
10321
+ * Name of the JSON manifest attached to a merged PDF that records which pages came from which slot.
10322
+ */
10323
+ declare const PDF_MERGE_SIDECAR_FILE_NAME = "dbx-pdf-merge.json";
10324
+ /**
10325
+ * Key set on each output page's dictionary holding that page's {@link PdfMergeSidecarPage.tag}.
10326
+ *
10327
+ * Custom page-dictionary keys travel with the page: they survive `copyPages` (including subsetting and reordering), a save/load round trip, and further edits. That is what makes tags — rather than the manifest's recorded indices — the authoritative record of which document a page belongs to.
10328
+ */
10329
+ declare const PDF_MERGE_PAGE_TAG_KEY = "DbxPageTag";
10330
+ /**
10331
+ * Schema version of the emitted {@link PdfMergeSidecar}.
10332
+ */
10333
+ declare const PDF_MERGE_SIDECAR_VERSION = 1;
10334
+ /**
10335
+ * Description recorded on the attached manifest.
10336
+ */
10337
+ declare const PDF_MERGE_SIDECAR_DESCRIPTION = "dbx-pdf-merge page manifest";
10338
+ /**
10339
+ * Record of a single page in the merged output.
10340
+ */
10341
+ interface PdfMergeSidecarPage {
10342
+ /**
10343
+ * Identifier written onto the page's own dictionary. Unique within the output document.
10344
+ */
10345
+ readonly tag: string;
10346
+ /**
10347
+ * Slot the page's source file was uploaded into, or `null` when unslotted.
10348
+ */
10349
+ readonly slotId: Maybe<string>;
10350
+ /**
10351
+ * Name of the source file the page came from.
10352
+ */
10353
+ readonly sourceName: string;
10354
+ /**
10355
+ * Zero-based index of the page within its source document.
10356
+ */
10357
+ readonly sourceIndex: number;
10358
+ /**
10359
+ * Total rotation applied to the page in the output, in degrees.
10360
+ */
10361
+ readonly rotation: number;
10362
+ /**
10363
+ * Position of the page in the output at the time the manifest was written.
10364
+ *
10365
+ * A hint only. Anything that reorders the document afterwards leaves this stale, so {@link readPdfMergeSidecar} resolves positions from page tags and falls back to this value only when a tag is missing.
10366
+ */
10367
+ readonly outputIndex: number;
10368
+ }
10369
+ /**
10370
+ * One logical document within the merged output — in practice, one editor slot.
10371
+ */
10372
+ interface PdfMergeSidecarDocument {
10373
+ /**
10374
+ * Slot id, or `null` for the unslotted group.
10375
+ */
10376
+ readonly slotId: Maybe<string>;
10377
+ /**
10378
+ * Tags of the pages belonging to this document, in output order at write time. This membership list is authoritative and survives reordering; resolve each tag to a current page index rather than trusting positions.
10379
+ */
10380
+ readonly pageTags: readonly string[];
10381
+ }
10382
+ /**
10383
+ * Manifest embedded in a merged PDF describing which pages came from which document.
10384
+ */
10385
+ interface PdfMergeSidecar {
10386
+ readonly version: number;
10387
+ readonly createdAt: ISO8601DateString;
10388
+ readonly documents: readonly PdfMergeSidecarDocument[];
10389
+ readonly pages: readonly PdfMergeSidecarPage[];
10390
+ }
10391
+ /**
10392
+ * A manifest page resolved against the document actually being read.
10393
+ */
10394
+ interface PdfMergeSidecarResolvedPage extends PdfMergeSidecarPage {
10395
+ /**
10396
+ * Current zero-based index of the page in the document being read.
10397
+ */
10398
+ readonly pageIndex: number;
10399
+ /**
10400
+ * Whether {@link pageIndex} came from the page's own tag (`true`) or fell back to the manifest's recorded {@link PdfMergeSidecarPage.outputIndex} because the tag was missing (`false`). A `false` here means something stripped the page tags — treat the position as best-effort.
10401
+ */
10402
+ readonly resolvedByTag: boolean;
10403
+ }
10404
+ /**
10405
+ * A manifest document resolved against the document actually being read.
10406
+ */
10407
+ interface PdfMergeSidecarResolvedDocument {
10408
+ readonly slotId: Maybe<string>;
10409
+ readonly pages: readonly PdfMergeSidecarResolvedPage[];
10410
+ }
10411
+ /**
10412
+ * Result of reading a merged PDF's embedded manifest.
10413
+ */
10414
+ interface PdfMergeSidecarReadResult {
10415
+ /**
10416
+ * The manifest exactly as it was embedded.
10417
+ */
10418
+ readonly sidecar: PdfMergeSidecar;
10419
+ /**
10420
+ * Documents with each page resolved to its current index in the file that was read.
10421
+ */
10422
+ readonly documents: readonly PdfMergeSidecarResolvedDocument[];
10423
+ /**
10424
+ * Tags listed in the manifest that could not be resolved to any page — the page was removed after the manifest was written, or its tag was stripped and no fallback index was usable.
10425
+ */
10426
+ readonly missingTags: readonly string[];
10427
+ /**
10428
+ * Number of pages in the document that carry no tag. Non-zero means pages were added outside the merge editor, or a third-party tool dropped the tags.
10429
+ */
10430
+ readonly untaggedPageCount: number;
10431
+ }
10432
+ /**
10433
+ * Builds the tag written onto an output page.
10434
+ *
10435
+ * @param slotId - Slot the page's source entry belongs to, or `null` when unslotted.
10436
+ * @param ordinal - Zero-based position of the page within its own slot's pages.
10437
+ * @returns A tag unique within the output document.
10438
+ * @__NO_SIDE_EFFECTS__
10439
+ */
10440
+ declare function makePdfMergeSidecarPageTag(slotId: Maybe<string>, ordinal: number): string;
10441
+ /**
10442
+ * Writes a page's tag onto its page dictionary so the association survives later reordering.
10443
+ *
10444
+ * @param page - Page in the output document.
10445
+ * @param tag - Tag to record.
10446
+ */
10447
+ declare function writePdfMergePageTag(page: PDFPage, tag: string): void;
10448
+ /**
10449
+ * Reads the tag previously written onto a page, if any.
10450
+ *
10451
+ * Uses `get` plus an instance check rather than a typed `lookup`, because `PDFDict.lookup(key, PDFString)` throws when the key is absent — which is the normal case for any PDF that did not come out of this editor.
10452
+ *
10453
+ * @param page - Page to inspect.
10454
+ * @returns The tag, or `null` when the page carries none.
10455
+ */
10456
+ declare function readPdfMergePageTag(page: PDFPage): Maybe<string>;
10457
+ /**
10458
+ * Attaches a manifest to the output document as an embedded JSON file.
10459
+ *
10460
+ * @param document - Output document being saved.
10461
+ * @param sidecar - Manifest to embed.
10462
+ */
10463
+ declare function attachPdfMergeSidecar(document: PDFDocument, sidecar: PdfMergeSidecar): Promise<void>;
10464
+ /**
10465
+ * Builds a {@link PdfMergeSidecar} from the pages written to an output document.
10466
+ *
10467
+ * @param pages - Page records in output order.
10468
+ * @returns The manifest, with one document per distinct slot in first-appearance order.
10469
+ * @__NO_SIDE_EFFECTS__
10470
+ */
10471
+ declare function makePdfMergeSidecar(pages: readonly PdfMergeSidecarPage[]): PdfMergeSidecar;
10472
+ /**
10473
+ * Source bytes accepted by {@link readPdfMergeSidecar}.
10474
+ */
10475
+ type PdfMergeSidecarReadInput = Blob | ArrayBuffer | Uint8Array;
10476
+ /**
10477
+ * Reads the manifest embedded in a merged PDF and resolves each recorded page to its current position in that file.
10478
+ *
10479
+ * Resolution prefers each page's own tag, which follows the page through reordering. The manifest's {@link PdfMergeSidecarPage.outputIndex} is used only as a fallback for pages whose tag has been stripped, and any index that no longer exists is reported through {@link PdfMergeSidecarReadResult.missingTags} instead.
10480
+ *
10481
+ * @param input - The merged PDF's bytes.
10482
+ * @returns The manifest and its resolved documents, or `null` when the file carries no manifest, is unreadable, or is encrypted.
10483
+ */
10484
+ declare function readPdfMergeSidecar(input: PdfMergeSidecarReadInput): Promise<Maybe<PdfMergeSidecarReadResult>>;
10485
+ /**
10486
+ * One logical document reconstructed out of a merged PDF as a standalone file.
10487
+ */
10488
+ interface PdfMergeSidecarDocumentFile {
10489
+ /**
10490
+ * Slot the document belongs to, or `null` for the unslotted group.
10491
+ */
10492
+ readonly slotId: Maybe<string>;
10493
+ /**
10494
+ * The document's pages extracted into their own PDF, in manifest order. Named after the source file recorded in the manifest so the original file name is restored.
10495
+ */
10496
+ readonly file: File;
10497
+ readonly pageCount: number;
10498
+ }
10499
+ /**
10500
+ * Result of splitting a merged PDF back into its constituent documents.
10501
+ */
10502
+ interface SplitPdfMergeSidecarResult {
10503
+ readonly sidecar: PdfMergeSidecar;
10504
+ readonly documents: readonly PdfMergeSidecarDocumentFile[];
10505
+ readonly missingTags: readonly string[];
10506
+ readonly untaggedPageCount: number;
10507
+ }
10508
+ /**
10509
+ * Splits a previously-merged PDF back into one file per document, using the embedded manifest to decide which pages belong to which slot.
10510
+ *
10511
+ * This is the inverse of a merge with `sidecar: true`, and is what lets a completed document be re-imported into the editor with its slots repopulated instead of arriving as one opaque file. Page order and any rotation baked in at merge time are preserved, and each document's pages are resolved by tag so a document that was reordered after export still splits correctly.
10512
+ *
10513
+ * @param input - Bytes of a merged PDF.
10514
+ * @returns One file per document plus the manifest, or `null` when the input carries no manifest, is unreadable, or is encrypted.
10515
+ */
10516
+ declare function splitPdfMergeSidecarDocuments(input: PdfMergeSidecarReadInput): Promise<Maybe<SplitPdfMergeSidecarResult>>;
10517
+
9994
10518
  /**
9995
10519
  * Formats a byte count as a short human-readable string (`B` / `KB` / `MB`). Used by the merge editor banner and entry rows.
9996
10520
  *
@@ -9999,6 +10523,16 @@ declare function provideDbxPdfMergeEditorPreserveEntriesOnSlotDestroy(preserve?:
9999
10523
  * @__NO_SIDE_EFFECTS__
10000
10524
  */
10001
10525
  declare function formatPdfMergeEntrySize(size: FileSize): string;
10526
+ /**
10527
+ * Normalizes a {@link Blob} into a {@link File} so it can become a {@link PdfMergeEntry}, which needs a name to display.
10528
+ *
10529
+ * A {@link File} passes through untouched unless an explicit `fileName` overrides it. A bare {@link Blob} is named from `fileName`, else from its MIME type (`document.pdf` / `image.png` / `image.jpg`), else `document.pdf` — the name only has to be plausible and correctly suffixed, since {@link classifyPdfMergeFile} falls back to the extension when a blob carries no type.
10530
+ *
10531
+ * @param input - Blob or File to normalize.
10532
+ * @param fileName - Optional name, overriding a File's own name and naming a bare Blob.
10533
+ * @returns A File carrying the resolved name.
10534
+ */
10535
+ declare function asPdfMergeFile(input: Blob | File, fileName?: Maybe<string>): File;
10002
10536
  /**
10003
10537
  * Returns the {@link PdfMergeEntryKind} for a file based on its MIME type, with a small fallback to file-extension matching when the browser provided no MIME type.
10004
10538
  *
@@ -10047,22 +10581,221 @@ declare function buildPdfMergeEntry(file: File, config?: Maybe<BuildPdfMergeEntr
10047
10581
  * @returns Result indicating whether the entry can be merged, optional error message when validation fails, and whether the entry is encrypted.
10048
10582
  */
10049
10583
  declare function validatePdfMergeEntry(entry: Omit<PdfMergeEntry, 'validation'>): Promise<PdfMergeEntryValidationResult>;
10584
+ /**
10585
+ * Reads per-page metadata from an entry's source document so the editor can list its pages individually.
10586
+ *
10587
+ * Only called while page editing is enabled — the normal upload path never parses the document, it only scans for the PDF header and markers (see {@link validatePdfMergeEntry}).
10588
+ *
10589
+ * @param entry - Entry to inspect.
10590
+ * @returns One {@link PdfMergePageMeta} per source page, or `null` when the entry is encrypted or cannot be parsed. Image entries report a single synthetic page.
10591
+ */
10592
+ declare function readPdfMergeEntryPageMetas(entry: PdfMergeEntry): Promise<Maybe<PdfMergePageMeta[]>>;
10593
+ /**
10594
+ * Why a call to {@link buildPdfMergeEntriesFromSidecar} could not produce entries.
10595
+ *
10596
+ * - `unreadable` — the bytes are not a PDF this library can open (corrupt, or encrypted).
10597
+ * - `no_sidecar` — a readable PDF that carries no manifest, so there is nothing to attribute its pages to. This is the expected outcome for any PDF that did not come out of a merge with `sidecar: true`.
10598
+ * - `no_documents` — a manifest is present but resolved to no pages at all.
10599
+ */
10600
+ type PdfMergeSidecarImportErrorReason = 'unreadable' | 'no_sidecar' | 'no_documents';
10601
+ /**
10602
+ * Outcome of importing a previously-exported merged PDF.
10603
+ */
10604
+ interface PdfMergeSidecarImportResult {
10605
+ /**
10606
+ * Entries reconstructed from the file, one per document, each tagged with the slot recorded in the manifest.
10607
+ */
10608
+ readonly entries: readonly PdfMergeEntry[];
10609
+ /**
10610
+ * The manifest that was read, or `null` when the file carried none and was imported through the {@link BuildPdfMergeEntriesFromSidecarConfig.allowWithoutSidecar} fallback. Check {@link fromSidecar} rather than testing this for null when the distinction matters.
10611
+ */
10612
+ readonly sidecar: Maybe<PdfMergeSidecar>;
10613
+ /**
10614
+ * Whether the entries came from an embedded manifest (`true`) or from the whole-file fallback (`false`). Everything derived from a manifest — per-slot attribution, {@link missingTags}, {@link untaggedPageCount} — is meaningless when this is `false`.
10615
+ */
10616
+ readonly fromSidecar: boolean;
10617
+ /**
10618
+ * Slot ids present in the imported file, in manifest order. `null` represents the unslotted group.
10619
+ */
10620
+ readonly slotIds: readonly Maybe<string>[];
10621
+ /**
10622
+ * Manifest tags that no longer resolve to a page — pages removed from the file after it was exported.
10623
+ */
10624
+ readonly missingTags: readonly string[];
10625
+ /**
10626
+ * Pages in the file carrying no tag, i.e. added outside the editor after export.
10627
+ */
10628
+ readonly untaggedPageCount: number;
10629
+ }
10630
+ /**
10631
+ * Config for {@link buildPdfMergeEntriesFromSidecar}.
10632
+ */
10633
+ interface BuildPdfMergeEntriesFromSidecarConfig extends BuildPdfMergeEntryConfig {
10634
+ /**
10635
+ * When `true`, a readable PDF carrying no manifest is imported as a single unslotted entry instead of failing with `no_sidecar`. Defaults to `false`.
10636
+ *
10637
+ * Intended for documents stored before the manifest existed: loading one as a whole still lets the user page-edit it (rotate or drop a bad page) rather than being turned away. It cannot recover per-slot attribution — there is nothing recorded to attribute.
10638
+ */
10639
+ readonly allowWithoutSidecar?: Maybe<boolean>;
10640
+ /**
10641
+ * File name given to the entry built by the {@link allowWithoutSidecar} fallback when `input` is a bare {@link Blob}. Ignored when `input` is a {@link File} (its own name wins) or when a manifest is present.
10642
+ */
10643
+ readonly fileName?: Maybe<string>;
10644
+ }
10645
+ /**
10646
+ * Reconstructs editor entries from a PDF previously exported with an embedded manifest.
10647
+ *
10648
+ * Each document recorded in the manifest becomes one entry carrying its original slot id, so dropping the result into the store repopulates the same slots the file was built from. This is the re-import half of the sidecar: without it a completed document can only come back as a single opaque file.
10649
+ *
10650
+ * @param input - Bytes of a merged PDF, typically the file the user just chose.
10651
+ * @param config - Optional entry-building config (id factory override, and the sidecar-less fallback).
10652
+ * @returns The reconstructed entries and manifest, or a reason when the file cannot be imported.
10653
+ */
10654
+ declare function buildPdfMergeEntriesFromSidecar(input: Blob, config?: Maybe<BuildPdfMergeEntriesFromSidecarConfig>): Promise<PdfMergeSidecarImportResult | {
10655
+ readonly error: PdfMergeSidecarImportErrorReason;
10656
+ }>;
10657
+ /**
10658
+ * Input for {@link buildPdfMergePagePlan}.
10659
+ */
10660
+ interface BuildPdfMergePagePlanInput {
10661
+ /**
10662
+ * Current entries, already projected by the store's encryption handling. Only `ready`, non-`ignored` entries contribute pages.
10663
+ */
10664
+ readonly entries: readonly PdfMergeEntryView[];
10665
+ /**
10666
+ * Hydrated page metadata keyed by entry id. A `null` value means the entry could not be expanded (encrypted, or unparseable) and contributes no pages.
10667
+ */
10668
+ readonly pageMetas: Record<string, Maybe<PdfMergePageMeta[]>>;
10669
+ /**
10670
+ * Sparse per-page edits keyed by page id.
10671
+ */
10672
+ readonly pageOverrides: Record<string, PdfMergePageOverride>;
10673
+ /**
10674
+ * Stored page ordering per group key.
10675
+ */
10676
+ readonly pageOrder: Record<string, string[]>;
10677
+ }
10678
+ /**
10679
+ * Builds the editor's page plan from the current entries plus the user's sparse edits.
10680
+ *
10681
+ * The result is self-healing: stored ordering ids that no longer resolve are dropped, pages the stored ordering does not mention are appended in natural order, and overrides for departed pages are ignored. That means entries can be added and removed without any page-level bookkeeping.
10682
+ *
10683
+ * Entries whose metadata is `null` contribute no pages — they are encrypted (which `pdf-lib` cannot open) or unparseable. Callers should surface those separately rather than letting them disappear silently.
10684
+ *
10685
+ * @param input - Entries, hydrated metadata, and the stored edits.
10686
+ * @returns The ordered page plan across every group.
10687
+ * @__NO_SIDE_EFFECTS__
10688
+ */
10689
+ declare function buildPdfMergePagePlan(input: BuildPdfMergePagePlanInput): PdfMergePageView[];
10690
+ /**
10691
+ * Options for {@link mergePdfMergeEntries}. Both are optional, and omitting them reproduces the original every-page-of-every-entry merge byte for byte.
10692
+ */
10693
+ interface MergePdfMergeEntriesOptions {
10694
+ /**
10695
+ * Explicit page plan driving the output. When supplied, only the plan's non-removed pages are emitted, in plan order, with each page's rotation composed onto its source rotation. When omitted, every page of every entry is emitted in entry order.
10696
+ */
10697
+ readonly pages?: Maybe<readonly PdfMergePageView[]>;
10698
+ /**
10699
+ * Whether to tag each output page and embed a manifest recording which pages came from which slot. See `readPdfMergeSidecar`.
10700
+ */
10701
+ readonly sidecar?: Maybe<boolean>;
10702
+ }
10050
10703
  /**
10051
10704
  * Merges every `ready` entry in the provided array order into a single PDF and returns it as a `Blob`. PDF entries contribute their full set of pages in order; image entries contribute one page sized to the image.
10052
10705
  *
10053
- * Special case: when the only `ready` entry is a single encrypted PDF, returns a passthrough `Blob` of its original bytes — `pdf-lib` cannot read encrypted PDFs even with `ignoreEncryption: true`, and downstream upload flows still need a usable blob.
10706
+ * Supplying {@link MergePdfMergeEntriesOptions.pages} replaces that default with an explicit page plan, so pages can be subsetted, reordered, and rotated. Supplying {@link MergePdfMergeEntriesOptions.sidecar} additionally embeds a manifest of which pages came from which slot.
10707
+ *
10708
+ * Special case: when the only `ready` entry is a single encrypted PDF, returns a passthrough `Blob` of its original bytes — `pdf-lib` cannot read encrypted PDFs even with `ignoreEncryption: true`, and downstream upload flows still need a usable blob. Neither the page plan nor the sidecar applies on that path, since the document cannot be opened.
10054
10709
  *
10055
- * Throws if no `ready` entries are provided, or if multiple encrypted entries are passed in (the editor only routes here under focus mode where it has narrowed to one).
10710
+ * Throws if no `ready` entries are provided, if multiple encrypted entries are passed in (the editor only routes here under focus mode where it has narrowed to one), or if the page plan leaves no pages to emit.
10056
10711
  *
10057
10712
  * @param entries - Ordered entries to merge.
10713
+ * @param options - Optional page plan and sidecar switch.
10058
10714
  * @returns A Blob with `application/pdf` MIME type.
10059
10715
  */
10060
- declare function mergePdfMergeEntries(entries: readonly PdfMergeEntry[]): Promise<Blob>;
10716
+ declare function mergePdfMergeEntries(entries: readonly PdfMergeEntry[], options?: Maybe<MergePdfMergeEntriesOptions>): Promise<Blob>;
10061
10717
 
10062
10718
  /**
10063
- * Initial state used by {@link DbxPdfMergeEditorStore} — no entries.
10719
+ * Initial state used by {@link DbxPdfMergeEditorStore} — no entries and no page edits.
10064
10720
  */
10065
10721
  declare const DBX_PDF_MERGE_EDITOR_INITIAL_STATE: PdfMergeEditorState;
10722
+ /**
10723
+ * Why a store-level import failed. Extends the parse-level reasons from {@link buildPdfMergeEntriesFromSidecar} with the store's own slot check.
10724
+ *
10725
+ * - `unexpected_slots` — the file's manifest names a section the caller said this editor does not have. The offending ids are on {@link DbxPdfMergeEditorImportState.unexpectedSlotIds}.
10726
+ */
10727
+ type DbxPdfMergeEditorImportErrorReason = PdfMergeSidecarImportErrorReason | 'unexpected_slots';
10728
+ /**
10729
+ * Result of a successful store-level import — the sidecar result plus what the caller's expectation did not cover.
10730
+ */
10731
+ interface DbxPdfMergeEditorImportResult extends PdfMergeSidecarImportResult {
10732
+ /**
10733
+ * Expected sections the imported file did not fill. Always empty when no `expectedSlotIds` was supplied. A non-empty list is informational, not a failure — the import still replaced the store's entries.
10734
+ */
10735
+ readonly missingSlotIds: readonly string[];
10736
+ }
10737
+ /**
10738
+ * Lifecycle of the most recent {@link DbxPdfMergeEditorStore.importMergedPdf} call, exposed via {@link DbxPdfMergeEditorStore.importState$}.
10739
+ */
10740
+ interface DbxPdfMergeEditorImportState {
10741
+ readonly status: 'importing' | 'imported' | 'failed';
10742
+ /**
10743
+ * Present with status `imported`.
10744
+ */
10745
+ readonly result?: Maybe<DbxPdfMergeEditorImportResult>;
10746
+ /**
10747
+ * Present with status `failed`.
10748
+ */
10749
+ readonly error?: Maybe<DbxPdfMergeEditorImportErrorReason>;
10750
+ /**
10751
+ * Sections the file named that the caller's `expectedSlotIds` did not allow. Present with error `unexpected_slots`; `null` entries represent unsectioned documents.
10752
+ */
10753
+ readonly unexpectedSlotIds?: readonly Maybe<string>[];
10754
+ }
10755
+ /**
10756
+ * Input for {@link DbxPdfMergeEditorStore.importMergedPdf}.
10757
+ */
10758
+ interface DbxPdfMergeEditorImportMergedPdfInput {
10759
+ /**
10760
+ * Bytes of a merged PDF previously exported from the editor.
10761
+ */
10762
+ readonly source: Blob;
10763
+ /**
10764
+ * Sections the file is allowed to name. **Omit to skip the check entirely** — the default for a programmatic import.
10765
+ *
10766
+ * The check is opt-in here rather than derived from {@link DbxPdfMergeEditorStore.registeredSlotIds$} because a programmatic import routinely runs before any slot exists (a store mounted on an `<ng-container>` whose editor only opens later in a dialog), where the registry is legitimately empty. Entries land in the store regardless and slots pick them up on mount, so importing early is safe; it is the caller who knows whether the document is trusted. {@link DbxPdfMergeImportComponent} passes its own resolved list, preserving the picker's behavior.
10767
+ */
10768
+ readonly expectedSlotIds?: Maybe<readonly string[]>;
10769
+ /**
10770
+ * When `true`, a readable PDF with no manifest is imported as one unslotted entry rather than failing with `no_sidecar`. Defaults to `false`. See {@link BuildPdfMergeEntriesFromSidecarConfig.allowWithoutSidecar}.
10771
+ */
10772
+ readonly allowWithoutSidecar?: Maybe<boolean>;
10773
+ /**
10774
+ * File name for the entry built by the `allowWithoutSidecar` fallback when `source` is a bare {@link Blob}.
10775
+ */
10776
+ readonly fileName?: Maybe<string>;
10777
+ }
10778
+ /**
10779
+ * Input for {@link DbxPdfMergeEditorStore.addFileToSlot}.
10780
+ */
10781
+ interface DbxPdfMergeEditorAddFileToSlotInput {
10782
+ /**
10783
+ * The document to add. A bare {@link Blob} is named via {@link fileName}.
10784
+ */
10785
+ readonly file: Blob | File;
10786
+ /**
10787
+ * Slot to attribute the entry to. Omit for an unslotted entry.
10788
+ */
10789
+ readonly slotId?: Maybe<string>;
10790
+ /**
10791
+ * Name for a bare {@link Blob}, or an override for a {@link File}'s own name.
10792
+ */
10793
+ readonly fileName?: Maybe<string>;
10794
+ /**
10795
+ * Image-compression override. Defaults to the store-level config set via {@link DbxPdfMergeEditorStore.setImageCompression}, matching what a slot uploader would apply to the same file.
10796
+ */
10797
+ readonly imageCompression?: Maybe<DbxImageCompressionConfig>;
10798
+ }
10066
10799
  /**
10067
10800
  * Input accepted by {@link DbxPdfMergeEditorStore.addFiles}: either a bare list of files (treated as unscoped, synchronously wrapped into entries) or `{ files, slotId }` to attribute the new entries to a slot. Callers that need client-side compression should construct entries via the async `buildPdfMergeEntry` and pass `{ entries }` instead.
10068
10801
  */
@@ -10080,6 +10813,18 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
10080
10813
  private readonly _outputSizeLimit$;
10081
10814
  private readonly _imageCompression$;
10082
10815
  private readonly _encryptedHandling$;
10816
+ private readonly _pageEditing$;
10817
+ private readonly _sidecar$;
10818
+ /**
10819
+ * Per-entry page metadata, parsed at most once per entry. Keyed by entry id; a resolved `null` means the entry could not be expanded. Only populated while page editing is enabled.
10820
+ */
10821
+ private readonly _pageMetaCache;
10822
+ /**
10823
+ * Mount count per registered slot id. See {@link registerSlotId} for why this is a count rather than a set.
10824
+ */
10825
+ private readonly _slotIdCounts;
10826
+ private readonly _registeredSlotIds$;
10827
+ private readonly _importState$;
10083
10828
  constructor();
10084
10829
  /**
10085
10830
  * Live entry list. Each raw entry's {@link PdfMergeEntry.validation} promise is mapped onto its status: while pending, the entry is emitted with status `validating`; once resolved, the entry is mutated to `ready`/`error` and re-emitted. Subsequent emissions of the underlying state pass already-resolved entries through unchanged.
@@ -10103,6 +10848,55 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
10103
10848
  */
10104
10849
  readonly encryptedEntries$: Observable<PdfMergeEntry[]>;
10105
10850
  readonly hasReadyEntries$: Observable<boolean>;
10851
+ /**
10852
+ * Raw {@link DbxPdfMergeEditorConfig.pageEditing} value pushed onto the store, before defaulting. Consumed by the editor as the middle tier of its resolution chain (own `[config]` input → store → {@link DBX_PDF_MERGE_EDITOR_CONFIG} token), so a store-level default does not shadow the token.
10853
+ */
10854
+ readonly pageEditingSetting$: Observable<Maybe<boolean>>;
10855
+ /**
10856
+ * Whether page editing is active, defaulted to {@link DEFAULT_DBX_PDF_MERGE_PAGE_EDITING}. Every page-related stream is inert while this is `false`.
10857
+ */
10858
+ readonly pageEditing$: Observable<boolean>;
10859
+ /**
10860
+ * Raw {@link DbxPdfMergeEditorConfig.sidecar} value pushed onto the store, before defaulting.
10861
+ */
10862
+ readonly sidecarSetting$: Observable<Maybe<boolean>>;
10863
+ /**
10864
+ * Whether the merged output should carry an embedded manifest, defaulted to {@link DEFAULT_DBX_PDF_MERGE_SIDECAR}. Independent of {@link pageEditing$}.
10865
+ */
10866
+ readonly sidecar$: Observable<boolean>;
10867
+ /**
10868
+ * Hydrated page metadata keyed by entry id.
10869
+ *
10870
+ * Short-circuits to an empty record while page editing is off, so the default configuration never parses a source document — the upload path's cheap header scan stays the only inspection performed. Each entry is parsed at most once thanks to {@link _pageMetaCache}, and metadata for departed entries is pruned on each pass.
10871
+ */
10872
+ readonly pageMetas$: Observable<Record<string, Maybe<PdfMergePageMeta[]>>>;
10873
+ /**
10874
+ * The editor's ordered page plan, or `null` while page editing is disabled. Passing `null` through to the merge is what makes the default path emit every page of every entry exactly as it did before page editing existed.
10875
+ */
10876
+ readonly pages$: Observable<Maybe<PdfMergePageView[]>>;
10877
+ /**
10878
+ * The page plan split into the groups the UI renders, one per slot plus one for unslotted entries. Empty while page editing is disabled.
10879
+ */
10880
+ readonly pageGroups$: Observable<PdfMergePageGroup[]>;
10881
+ /**
10882
+ * Entries that are ready to merge but whose pages could not be listed — encrypted documents (which `pdf-lib` cannot open) and anything unparseable. Surfaced so the UI can explain why those rows are not expandable instead of letting them silently vanish from the page list. Always empty while page editing is disabled.
10883
+ */
10884
+ readonly unexpandableEntries$: Observable<PdfMergeEntryView[]>;
10885
+ /**
10886
+ * Number of pages that will reach the merged output — the plan minus anything marked for removal. Zero while page editing is disabled, where the count is not meaningful.
10887
+ */
10888
+ readonly mergeablePageCount$: Observable<number>;
10889
+ /**
10890
+ * Whether at least one page survives the user's edits. Emits `true` while page editing is disabled so it never gates the default path.
10891
+ */
10892
+ readonly hasMergeablePages$: Observable<boolean>;
10893
+ /**
10894
+ * Returns the pages belonging to one group, for a slot rendering its own pages inline.
10895
+ *
10896
+ * @param slotId - Slot identifier, or `null` for the unslotted group.
10897
+ * @returns Observable of that group's ordered pages.
10898
+ */
10899
+ pagesForSlotId$(slotId: Maybe<string>): Observable<PdfMergePageView[]>;
10106
10900
  /**
10107
10901
  * Emits `true` while any entry's validation promise has not yet resolved (i.e. one or more entries are still in `validating` status). Reads from {@link entries$} (not {@link displayEntries$}) so validation gating ignores the `ignored`/`error` projection done by encryption handling.
10108
10902
  */
@@ -10124,7 +10918,9 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
10124
10918
  */
10125
10919
  readonly sizeLimitValid$: Observable<boolean>;
10126
10920
  /**
10127
- * Emits `true` while both the registered {@link DbxPdfMergeEditorValidator} delegate (if any) and the optional output-size limit are satisfied. {@link currentMergeOutput$} gates merge emissions on this stream.
10921
+ * Emits `true` while the registered {@link DbxPdfMergeEditorValidator} delegate (if any), the optional output-size limit, and the page plan are all satisfied. {@link currentMergeOutput$} gates merge emissions on this stream.
10922
+ *
10923
+ * The page-plan term is `true` whenever page editing is disabled, so this stream is unchanged on the default path. With page editing on it blocks the merge once the user has marked every page for deletion.
10128
10924
  */
10129
10925
  readonly isValid$: Observable<boolean>;
10130
10926
  /**
@@ -10143,6 +10939,67 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
10143
10939
  * @returns Observable of entries whose `slotId` matches, enriched with the `ignored` flag.
10144
10940
  */
10145
10941
  entriesForSlotId$(slotId: string): Observable<PdfMergeEntryView[]>;
10942
+ /**
10943
+ * Slot ids currently mounted against this store, i.e. the sections this editor declares.
10944
+ *
10945
+ * This is what makes `<dbx-pdf-merge-import>` a zero-configuration drop-in: it derives the set of sections a re-imported file is allowed to name (and whether it renders at all) from the slots actually on screen, rather than from a hand-maintained list duplicating them.
10946
+ *
10947
+ * Emitted **sorted ascending**, which is deterministic but is NOT declaration order. Sorting is what lets the guard below collapse slot churn: a set cycling through `@if` (`['a','b']` → `['b']` → `['b','a']`) ends up equal to the array it started with, where registration order would emit a spuriously different array for an identical set.
10948
+ *
10949
+ * Registered by {@link DbxPdfMergeEditorFileUploadComponent} from its own lifecycle. Kept here rather than on the optional {@link DbxPdfMergeEditorFileUploadValidatorDirective} because it must be available whether or not a validator is present — and because a separately-provided registry could be provided at a different level than the store, letting slots register with one instance while a reader sees another.
10950
+ */
10951
+ readonly registeredSlotIds$: Observable<readonly string[]>;
10952
+ /**
10953
+ * Registers a slot id as mounted, adding it to {@link registeredSlotIds$}.
10954
+ *
10955
+ * Reference-counted rather than a set: the same `slotId` can legitimately be mounted twice at once — the PDF merge upload dialog hosts its slots against an ancestor store while inline slots may still exist under {@link DBX_PDF_MERGE_EDITOR_PRESERVE_ENTRIES_ON_SLOT_DESTROY} — and one unmount must not deregister a still-mounted id.
10956
+ *
10957
+ * @param slotId - Slot identifier being mounted.
10958
+ */
10959
+ registerSlotId(slotId: string): void;
10960
+ /**
10961
+ * Deregisters one mount of a slot id, removing it from {@link registeredSlotIds$} once the last mount is gone. Unknown ids are ignored.
10962
+ *
10963
+ * Callers must pair this with their own {@link registerSlotId} exactly once. The store frequently outlives its slots (a dialog-hosted slot is destroyed on every close while the page-level store lives on), so a missed call leaves the editor permanently claiming a section that is not on screen.
10964
+ *
10965
+ * @param slotId - Slot identifier being unmounted.
10966
+ */
10967
+ unregisterSlotId(slotId: string): void;
10968
+ private _emitRegisteredSlotIds;
10969
+ /**
10970
+ * Lifecycle of the most recent {@link importMergedPdf} call, or `undefined` before the first. Lets a consumer that triggered a programmatic import observe its outcome — the picker component is not the only entry point.
10971
+ */
10972
+ readonly importState$: Observable<Maybe<DbxPdfMergeEditorImportState>>;
10973
+ /**
10974
+ * The most recent successful import, or `null` while none has succeeded.
10975
+ */
10976
+ readonly importResult$: Observable<Maybe<DbxPdfMergeEditorImportResult>>;
10977
+ /**
10978
+ * Why the most recent import failed, or `null` when it did not.
10979
+ */
10980
+ readonly importError$: Observable<Maybe<DbxPdfMergeEditorImportErrorReason>>;
10981
+ /**
10982
+ * Emits `true` while an import is in flight.
10983
+ */
10984
+ readonly isImporting$: Observable<boolean>;
10985
+ /**
10986
+ * Imports a previously-exported merged PDF, replacing every entry currently in the store with the per-slot documents recorded in its manifest.
10987
+ *
10988
+ * This is the programmatic equivalent of what {@link DbxPdfMergeImportComponent} does with a picked file, and that component delegates here — so a stored document loaded by an app and a file chosen by a user go through one implementation with one set of error semantics. Progress and outcome are published on {@link importState$} as well as returned.
10989
+ *
10990
+ * @param input - The source blob plus the optional slot check and sidecar-less fallback.
10991
+ * @returns The terminal state of this import.
10992
+ */
10993
+ importMergedPdf(input: DbxPdfMergeEditorImportMergedPdfInput): Promise<DbxPdfMergeEditorImportState>;
10994
+ /**
10995
+ * Adds a single document to a slot, without any sidecar involvement — the programmatic equivalent of a user dropping one file onto a slot uploader. Existing entries are left alone.
10996
+ *
10997
+ * Unlike {@link importMergedPdf} this neither reads nor requires a manifest; it is the plain "put this file in that slot" primitive, for e.g. an admin appending one document to an existing set. The entry can be added before its slot mounts — {@link entriesForSlotId$} picks it up when the slot renders.
10998
+ *
10999
+ * @param input - The blob or file, its target slot, and an optional name for a bare blob.
11000
+ * @returns The entry that was added, or `null` when the file is not a supported PDF/PNG/JPEG (in which case nothing was added).
11001
+ */
11002
+ addFileToSlot(input: DbxPdfMergeEditorAddFileToSlotInput): Promise<Maybe<PdfMergeEntry>>;
10146
11003
  /**
10147
11004
  * Registers a {@link DbxPdfMergeEditorValidator} delegate that gates merge emissions. Only one delegate is active at a time — calling this replaces any previously registered delegate.
10148
11005
  *
@@ -10171,6 +11028,18 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
10171
11028
  * @param handling - Encryption handling mode, or a falsy value to clear.
10172
11029
  */
10173
11030
  setEncryptedHandling(handling: Maybe<DbxPdfMergeEncryptedHandling>): void;
11031
+ /**
11032
+ * Enables or disables page editing, exposed via {@link pageEditing$}. Turning it on expands each ready entry into its individual pages; turning it off returns the editor to its file-granular behavior while preserving any page edits in state, so toggling back on restores them.
11033
+ *
11034
+ * @param pageEditing - Whether page editing is active, or a falsy value to clear and fall back to {@link DEFAULT_DBX_PDF_MERGE_PAGE_EDITING}.
11035
+ */
11036
+ setPageEditing(pageEditing: Maybe<boolean>): void;
11037
+ /**
11038
+ * Enables or disables the embedded manifest, exposed via {@link sidecar$}.
11039
+ *
11040
+ * @param sidecar - Whether to embed the manifest, or a falsy value to clear and fall back to {@link DEFAULT_DBX_PDF_MERGE_SIDECAR}.
11041
+ */
11042
+ setSidecar(sidecar: Maybe<boolean>): void;
10174
11043
  /**
10175
11044
  * Appends entries (already constructed) or builds them from raw files and appends them to state. Each entry's validation promise starts when the entry is built; {@link entries$} reflects each result as it resolves. When `input` is an object with `files` and `slotId`, the resulting entries are tagged with that slot id. When `input` is `{ entries }`, the entries are appended as-is — use this shape for entries that went through async client-side compression upstream.
10176
11045
  */
@@ -10194,10 +11063,51 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
10194
11063
  readonly currentIndex: number;
10195
11064
  }>) => rxjs.Subscription;
10196
11065
  readonly clearAll: () => void;
11066
+ /**
11067
+ * Replaces the entire entry list, discarding any page edits.
11068
+ *
11069
+ * Used by the sidecar import path, which reconstructs a fresh set of slot-tagged entries from a previously-exported file. Done as a single state change so subscribers never observe an intermediate empty list.
11070
+ */
11071
+ readonly replaceEntries: (observableOrValue: readonly PdfMergeEntry[] | Observable<readonly PdfMergeEntry[]>) => rxjs.Subscription;
11072
+ /**
11073
+ * Reorders a page inside its own group. Groups never exchange pages — the page list renders one CDK drop list per group, so a cross-group drag is impossible to express.
11074
+ *
11075
+ * The move rewrites the id array the caller rendered rather than recomputing it from state, keeping the stored order aligned with what the user saw.
11076
+ */
11077
+ readonly movePageWithinGroup: (observableOrValue: PdfMergePageMove | Observable<PdfMergePageMove>) => rxjs.Subscription;
11078
+ /**
11079
+ * Sets a page's rotation. The value is composed onto the page's own source rotation at merge time, so this is the rotation the user applied rather than the page's absolute orientation.
11080
+ */
11081
+ readonly setPageRotation: (observableOrValue: PdfMergePageRotationChange | Observable<PdfMergePageRotationChange>) => rxjs.Subscription;
11082
+ /**
11083
+ * Marks a page for deletion or restores it. Marked pages stay in the list so the choice can be undone, but are excluded from the merged output.
11084
+ */
11085
+ readonly setPageRemoved: (observableOrValue: PdfMergePageRemovedChange | Observable<PdfMergePageRemovedChange>) => rxjs.Subscription;
11086
+ /**
11087
+ * Discards every page edit, returning the plan to natural order with no rotations or deletions. Leaves the entries themselves untouched.
11088
+ */
11089
+ readonly clearPageEdits: () => void;
10197
11090
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxPdfMergeEditorStore, never>;
10198
11091
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DbxPdfMergeEditorStore>;
10199
11092
  }
10200
11093
 
11094
+ /**
11095
+ * Options applied to the blob bound to {@link DbxPdfMergeEditorStoreDirective.source}. Mirrors the tail of {@link DbxPdfMergeEditorImportMergedPdfInput}.
11096
+ */
11097
+ interface DbxPdfMergeEditorSourceConfig {
11098
+ /**
11099
+ * Sections the source is allowed to name. Omit to skip the check — the default, since a bound source usually arrives before any slot has mounted.
11100
+ */
11101
+ readonly expectedSlotIds?: Maybe<readonly string[]>;
11102
+ /**
11103
+ * When `true`, a readable PDF with no manifest loads as one unslotted entry instead of failing. Defaults to `false`.
11104
+ */
11105
+ readonly allowWithoutSidecar?: Maybe<boolean>;
11106
+ /**
11107
+ * File name to give a bare {@link Blob} loaded through the sidecar-less fallback.
11108
+ */
11109
+ readonly fileName?: Maybe<string>;
11110
+ }
10201
11111
  /**
10202
11112
  * Provides a {@link DbxPdfMergeEditorStore} on its host element so descendant components (including {@link DbxPdfMergeUploadButtonComponent} and any dialog opened with the host's injector) share the same store instance. Optionally pushes configuration onto the store via inputs.
10203
11113
  *
@@ -10215,10 +11125,23 @@ declare class DbxPdfMergeEditorStoreDirective {
10215
11125
  private readonly _injectedConfig;
10216
11126
  readonly config: _angular_core.InputSignal<Maybe<DbxPdfMergeEditorConfig>>;
10217
11127
  readonly outputSizeLimit: _angular_core.InputSignal<Maybe<number>>;
11128
+ /**
11129
+ * A previously-exported merged PDF to load into the store, for an app that fetches a stored document itself and wants the editor to open already populated — no picker involved.
11130
+ *
11131
+ * Imported once per distinct blob instance: re-emitting the same object does nothing, so a template re-render or an unrelated input change cannot re-import. Emitting a *different* blob imports again and replaces the entries, even if the bytes are identical.
11132
+ *
11133
+ * Watch {@link DbxPdfMergeEditorStore.importState$} for the outcome — a failure surfaces there rather than throwing.
11134
+ */
11135
+ readonly source: _angular_core.InputSignal<Maybe<Blob>>;
11136
+ readonly sourceConfig: _angular_core.InputSignal<Maybe<DbxPdfMergeEditorSourceConfig>>;
11137
+ /**
11138
+ * The blob instance most recently handed to the store, so the same one is never imported twice.
11139
+ */
11140
+ private _importedSource;
10218
11141
  readonly effectiveErrorBytesSignal: _angular_core.Signal<Maybe<number>>;
10219
11142
  constructor();
10220
11143
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxPdfMergeEditorStoreDirective, never>;
10221
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DbxPdfMergeEditorStoreDirective, "[dbxPdfMergeEditorStore]", ["dbxPdfMergeEditorStore"], { "config": { "alias": "config"; "required": false; "isSignal": true; }; "outputSizeLimit": { "alias": "outputSizeLimit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11144
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DbxPdfMergeEditorStoreDirective, "[dbxPdfMergeEditorStore]", ["dbxPdfMergeEditorStore"], { "config": { "alias": "config"; "required": false; "isSignal": true; }; "outputSizeLimit": { "alias": "outputSizeLimit"; "required": false; "isSignal": true; }; "source": { "alias": "source"; "required": false; "isSignal": true; }; "sourceConfig": { "alias": "sourceConfig"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10222
11145
  }
10223
11146
 
10224
11147
  /**
@@ -10339,6 +11262,8 @@ declare class DbxPdfMergeEditorComponent {
10339
11262
  readonly downloadButton: _angular_core.InputSignal<Maybe<DbxButtonDisplayStylePair>>;
10340
11263
  readonly showAddFiles: _angular_core.InputSignal<Maybe<boolean>>;
10341
11264
  readonly showFileList: _angular_core.InputSignal<Maybe<boolean>>;
11265
+ readonly pageEditing: _angular_core.InputSignal<Maybe<boolean>>;
11266
+ readonly sidecar: _angular_core.InputSignal<Maybe<boolean>>;
10342
11267
  /**
10343
11268
  * Bundles every editor option into one object (see {@link DbxPdfMergeEditorConfig}). Individual inputs override the matching field here, which in turn overrides the workspace-wide {@link DBX_PDF_MERGE_EDITOR_CONFIG} token.
10344
11269
  */
@@ -10352,11 +11277,21 @@ declare class DbxPdfMergeEditorComponent {
10352
11277
  * Store-level encryption handling default pushed by {@link DbxPdfMergeEditorStoreDirective}. Resolved between the editor's own `config` input and the workspace-wide token in {@link effectiveConfigSignal}.
10353
11278
  */
10354
11279
  readonly storeEncryptedHandlingSignal: _angular_core.Signal<DbxPdfMergeEncryptedHandling | undefined>;
11280
+ /**
11281
+ * Store-level page-editing and sidecar defaults pushed by {@link DbxPdfMergeEditorStoreDirective}. These read the store's raw (undefaulted) settings so an unset store value still falls through to the workspace-wide token in {@link effectiveConfigSignal}.
11282
+ */
11283
+ readonly storePageEditingSignal: _angular_core.Signal<Maybe<boolean>>;
11284
+ readonly storeSidecarSignal: _angular_core.Signal<Maybe<boolean>>;
10355
11285
  /**
10356
11286
  * Merged config — the editor's own `config` input wins over the store-level default (for `imageCompression`), which in turn wins over the workspace-wide token. The individual inputs are resolved on top of this object in the per-field `*Signal` computeds below.
10357
11287
  */
10358
11288
  readonly effectiveConfigSignal: _angular_core.Signal<DbxPdfMergeEditorConfig>;
10359
11289
  readonly encryptedHandlingSignal: _angular_core.Signal<DbxPdfMergeEncryptedHandling>;
11290
+ /**
11291
+ * Whether page editing is active. When `false` the editor renders its original file list and no page machinery is instantiated at all.
11292
+ */
11293
+ readonly pageEditingSignal: _angular_core.Signal<boolean>;
11294
+ readonly sidecarSignal: _angular_core.Signal<boolean>;
10360
11295
  readonly imageCompressionConfigSignal: _angular_core.Signal<Maybe<DbxImageCompressionConfig>>;
10361
11296
  readonly outputSizeLimitsSignal: _angular_core.Signal<Maybe<DbxPdfMergeOutputSizeLimitsConfig>>;
10362
11297
  readonly acceptSignal: _angular_core.Signal<string | _dereekb_dbx_web.FileAcceptFilterTypeStringArray | _dereekb_dbx_web.FileAcceptFunction>;
@@ -10371,6 +11306,10 @@ declare class DbxPdfMergeEditorComponent {
10371
11306
  readonly errorBytesSignal: _angular_core.Signal<Maybe<number>>;
10372
11307
  readonly hasReadyEntriesSignal: _angular_core.Signal<boolean>;
10373
11308
  readonly entryCountSignal: _angular_core.Signal<number>;
11309
+ /**
11310
+ * Number of pages that will actually reach the output — the page plan minus anything marked for removal. Only surfaced while page editing is enabled.
11311
+ */
11312
+ readonly mergeablePageCountSignal: _angular_core.Signal<number>;
10374
11313
  /**
10375
11314
  * Mirrors {@link DbxPdfMergeEditorStore.focusActive$} — `true` while `encryptedHandling === 'focus'` and at least one ready encrypted entry exists. Drives the encrypted-PDF focus banner.
10376
11315
  */
@@ -10402,7 +11341,7 @@ declare class DbxPdfMergeEditorComponent {
10402
11341
  onPreview(): void;
10403
11342
  private openPreviewDialog;
10404
11343
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxPdfMergeEditorComponent, never>;
10405
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxPdfMergeEditorComponent, "dbx-pdf-merge-editor", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; "isSignal": true; }; "showPreviewButton": { "alias": "showPreviewButton"; "required": false; "isSignal": true; }; "downloadButton": { "alias": "downloadButton"; "required": false; "isSignal": true; }; "showAddFiles": { "alias": "showAddFiles"; "required": false; "isSignal": true; }; "showFileList": { "alias": "showFileList"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; }, { "entriesChanged": "entriesChanged"; }, never, ["*"], true, never>;
11344
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxPdfMergeEditorComponent, "dbx-pdf-merge-editor", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; "isSignal": true; }; "showPreviewButton": { "alias": "showPreviewButton"; "required": false; "isSignal": true; }; "downloadButton": { "alias": "downloadButton"; "required": false; "isSignal": true; }; "showAddFiles": { "alias": "showAddFiles"; "required": false; "isSignal": true; }; "showFileList": { "alias": "showFileList"; "required": false; "isSignal": true; }; "pageEditing": { "alias": "pageEditing"; "required": false; "isSignal": true; }; "sidecar": { "alias": "sidecar"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; }, { "entriesChanged": "entriesChanged"; }, never, ["*"], true, never>;
10406
11345
  }
10407
11346
 
10408
11347
  /**
@@ -10616,6 +11555,10 @@ declare class DbxPdfMergeEditorFileUploadComponent implements OnInit, OnDestroy,
10616
11555
  private readonly _validator;
10617
11556
  private readonly _injectedConfig;
10618
11557
  private readonly _preserveEntriesOnDestroy;
11558
+ /**
11559
+ * The slot id this component registered with the store, captured at registration time so destroy deregisters the same key. `null` before {@link ngOnInit} and after teardown.
11560
+ */
11561
+ private _registeredSlotId;
10619
11562
  readonly slotId: _angular_core.InputSignal<string>;
10620
11563
  readonly config: _angular_core.InputSignal<Maybe<DbxPdfMergeEditorFileUploadConfig>>;
10621
11564
  readonly acceptSignal: _angular_core.Signal<string | _dereekb_dbx_web.FileAcceptFilterTypeStringArray | _dereekb_dbx_web.FileAcceptFunction>;
@@ -10637,6 +11580,14 @@ declare class DbxPdfMergeEditorFileUploadComponent implements OnInit, OnDestroy,
10637
11580
  */
10638
11581
  readonly ownedEntries$: Observable<PdfMergeEntryView[]>;
10639
11582
  readonly ownedEntriesSignal: _angular_core.Signal<PdfMergeEntryView[]>;
11583
+ /**
11584
+ * Whether the shared store has page editing enabled. Drives whether this slot lists its own pages or its own files.
11585
+ */
11586
+ readonly pageEditingSignal: _angular_core.Signal<boolean>;
11587
+ /**
11588
+ * Pages contributed by this slot's entries. Empty while page editing is disabled.
11589
+ */
11590
+ readonly ownedPages$: Observable<PdfMergePageView[]>;
10640
11591
  /**
10641
11592
  * Whether the slot still has room for more files. Drives visibility of the upload UI — once the slot is at capacity, the uploader is hidden and the user must remove an existing entry to add another.
10642
11593
  */
@@ -10670,6 +11621,8 @@ declare class DbxPdfMergeEditorFileUploadComponent implements OnInit, OnDestroy,
10670
11621
  /**
10671
11622
  * Directive that registers as the active {@link DbxPdfMergeEditorValidator} on a {@link DbxPdfMergeEditorStore} and gates merge emissions on the readiness of every registered slot. {@link DbxPdfMergeEditorFileUploadComponent} instances walk the injector tree, find this directive, and call {@link registerSlot}/{@link unregisterSlot} during their own lifecycle.
10672
11623
  *
11624
+ * This slot set is intentionally separate from {@link DbxPdfMergeEditorStore.registeredSlotIds$}, and the two should not be merged. This one is keyed by object identity because it exists solely to `combineLatest` each slot's `isValid$`; the store's is keyed by slot id, answers "which sections does this editor declare", and must be populated whether or not a validator is present — which is why it cannot live on this optional directive.
11625
+ *
10673
11626
  * @example
10674
11627
  * ```html
10675
11628
  * <dbx-pdf-merge-editor [showAddFiles]="false" [showFileList]="false">
@@ -10758,6 +11711,144 @@ declare class DbxPdfMergeEntryComponent {
10758
11711
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxPdfMergeEntryComponent, "dbx-pdf-merge-entry", never, { "entry": { "alias": "entry"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
10759
11712
  }
10760
11713
 
11714
+ /**
11715
+ * Single page row inside a {@link DbxPdfMergePageListComponent} group: shows which source file and page it came from, its dimensions and rotation, and controls to rotate it, mark it for removal, and drag it to a new position.
11716
+ *
11717
+ * The template's root element is itself a `cdkDrag`, matching {@link DbxPdfMergeEntryComponent}, so rows reorder inside their group's drop list.
11718
+ */
11719
+ declare class DbxPdfMergePageComponent {
11720
+ readonly store: DbxPdfMergeEditorStore;
11721
+ readonly page: _angular_core.InputSignal<PdfMergePageView>;
11722
+ readonly removedSignal: _angular_core.Signal<boolean>;
11723
+ readonly iconSignal: _angular_core.Signal<"image" | "picture_as_pdf">;
11724
+ readonly removeLabelSignal: _angular_core.Signal<"Restore page" | "Mark page for removal">;
11725
+ readonly positionLabelSignal: _angular_core.Signal<string>;
11726
+ readonly dimensionsLabelSignal: _angular_core.Signal<Maybe<string>>;
11727
+ readonly rotationLabelSignal: _angular_core.Signal<Maybe<string>>;
11728
+ onRotate(): void;
11729
+ onToggleRemoved(): void;
11730
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxPdfMergePageComponent, never>;
11731
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxPdfMergePageComponent, "dbx-pdf-merge-page", never, { "page": { "alias": "page"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11732
+ }
11733
+
11734
+ /**
11735
+ * Renders the editor's page plan while page editing is enabled, one CDK drop list per group.
11736
+ *
11737
+ * Separate, unconnected drop lists are what confine reordering to a single slot: CDK will not let a drag cross into a list it is not connected to, so the rule needs no guard code. Bind {@link slotId} to render only that slot's group — used by {@link DbxPdfMergeEditorFileUploadComponent} to show its own pages inline. Leave it unbound to render every group.
11738
+ *
11739
+ * Entries that could not be expanded into pages (encrypted, or unparseable) are listed separately below the groups rather than silently omitted.
11740
+ */
11741
+ declare class DbxPdfMergePageListComponent {
11742
+ readonly store: DbxPdfMergeEditorStore;
11743
+ /**
11744
+ * Renders only this slot's group when bound. Leave unbound to render every group.
11745
+ */
11746
+ readonly slotId: _angular_core.InputSignal<Maybe<string>>;
11747
+ /**
11748
+ * Whether to show each group's slot name above its pages. Defaults to `true` when rendering every group and `false` when scoped to one slot, where the slot already has its own heading.
11749
+ */
11750
+ readonly showGroupLabels: _angular_core.InputSignal<Maybe<boolean>>;
11751
+ private readonly _slotId$;
11752
+ readonly groups$: Observable<PdfMergePageGroup[]>;
11753
+ readonly unexpandable$: Observable<PdfMergeEntryView[]>;
11754
+ readonly groupsSignal: _angular_core.Signal<PdfMergePageGroup[]>;
11755
+ readonly unexpandableSignal: _angular_core.Signal<PdfMergeEntryView[]>;
11756
+ readonly showGroupLabelsSignal: _angular_core.Signal<boolean>;
11757
+ labelForGroup(group: PdfMergePageGroup): Maybe<string>;
11758
+ messageForUnexpandable(entry: PdfMergeEntryView): string;
11759
+ onDrop(group: PdfMergePageGroup, event: CdkDragDrop<unknown>): void;
11760
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxPdfMergePageListComponent, never>;
11761
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxPdfMergePageListComponent, "dbx-pdf-merge-page-list", never, { "slotId": { "alias": "slotId"; "required": false; "isSignal": true; }; "showGroupLabels": { "alias": "showGroupLabels"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
11762
+ }
11763
+
11764
+ /**
11765
+ * Messages shown for each reason an import can fail.
11766
+ */
11767
+ declare const DBX_PDF_MERGE_IMPORT_ERROR_MESSAGES: Record<PdfMergeSidecarImportErrorReason, string>;
11768
+ /**
11769
+ * Configures the appearance of a {@link DbxPdfMergeImportComponent}.
11770
+ */
11771
+ interface DbxPdfMergeImportConfig {
11772
+ readonly label?: Maybe<string>;
11773
+ readonly hint?: Maybe<string | boolean>;
11774
+ readonly text?: Maybe<string>;
11775
+ readonly icon?: Maybe<string>;
11776
+ readonly mode?: Maybe<DbxFileUploadMode>;
11777
+ readonly accept?: Maybe<FileArrayAcceptMatchConfig['accept']>;
11778
+ }
11779
+ /**
11780
+ * Loads a PDF that was previously exported from the editor with an embedded manifest, and repopulates the editor's slots from it.
11781
+ *
11782
+ * This is the payoff of the sidecar: a completed single-file document goes back to being the set of per-slot documents it was assembled from, so a user can replace or edit one section in place instead of rebuilding the whole file. Every entry currently in the store is replaced.
11783
+ *
11784
+ * **Zero configuration.** The sections this editor accepts are read from the `<dbx-pdf-merge-editor-file-upload>` slots mounted against the shared {@link DbxPdfMergeEditorStore} (see {@link DbxPdfMergeEditorStore.registeredSlotIds$}), so the common case needs no bindings at all. A file naming any other section is rejected rather than partially imported — without that check, entries carrying an unrecognized slot id would import and then render nowhere.
11785
+ *
11786
+ * **Renders nothing when no sections are configured.** This component exists to split a document back into slots, so with no slots mounted (and no explicit {@link expectedSlotIds}) it has nothing to import into and collapses to zero size. Bind {@link enforceExpectedSlots} to `false` for the unusual case of an editor that wants the import affordance without declaring slots.
11787
+ *
11788
+ * @example
11789
+ * ```html
11790
+ * <!-- derives its sections from the slots below it -->
11791
+ * <dbx-pdf-merge-import (imported)="onImported($event)"></dbx-pdf-merge-import>
11792
+ * <dbx-pdf-merge-editor>
11793
+ * <dbx-pdf-merge-editor-file-upload slotId="license"></dbx-pdf-merge-editor-file-upload>
11794
+ * <dbx-pdf-merge-editor-file-upload slotId="cert"></dbx-pdf-merge-editor-file-upload>
11795
+ * </dbx-pdf-merge-editor>
11796
+ * ```
11797
+ */
11798
+ declare class DbxPdfMergeImportComponent {
11799
+ readonly store: DbxPdfMergeEditorStore;
11800
+ readonly config: _angular_core.InputSignal<Maybe<DbxPdfMergeImportConfig>>;
11801
+ /**
11802
+ * Optional override for the slot ids this editor renders. Leave unbound to derive them from the slots mounted against the store — the zero-configuration default. When set, a file whose manifest names any other slot is rejected rather than partially imported.
11803
+ *
11804
+ * An explicitly bound empty array reads as "this editor deliberately has no sections" and hides the component, the same as having no slots mounted.
11805
+ */
11806
+ readonly expectedSlotIds: _angular_core.InputSignal<Maybe<readonly string[]>>;
11807
+ /**
11808
+ * Whether the imported file's sections must match this editor's. Defaults to `true`.
11809
+ *
11810
+ * Binding `false` is the single escape hatch for an editor with no slots that still wants the import affordance: it both skips the check and keeps the component rendered.
11811
+ */
11812
+ readonly enforceExpectedSlots: _angular_core.InputSignal<boolean>;
11813
+ readonly imported: _angular_core.OutputEmitterRef<DbxPdfMergeEditorImportResult>;
11814
+ readonly importFailed: _angular_core.OutputEmitterRef<string>;
11815
+ /**
11816
+ * Emits the expected sections the imported file did not fill, when there are any. The import itself still succeeds — a missing section is a partial state the user can fill in.
11817
+ */
11818
+ readonly missingSlots: _angular_core.OutputEmitterRef<readonly string[]>;
11819
+ private readonly _error;
11820
+ private readonly _result;
11821
+ private readonly _missingSlotIds;
11822
+ readonly errorSignal: _angular_core.Signal<Maybe<string>>;
11823
+ readonly resultSignal: _angular_core.Signal<Maybe<DbxPdfMergeEditorImportResult>>;
11824
+ readonly missingSlotIdsSignal: _angular_core.Signal<readonly string[]>;
11825
+ private readonly _registeredSlotIdsSignal;
11826
+ /**
11827
+ * The sections an imported file is allowed to name, or `null` when no check applies. Resolves the explicit {@link expectedSlotIds} binding over the slots registered with the store.
11828
+ */
11829
+ readonly effectiveExpectedSlotIdsSignal: _angular_core.Signal<Maybe<readonly string[]>>;
11830
+ /**
11831
+ * Whether this component has anything to import into. `false` collapses it to nothing — see the class docs.
11832
+ */
11833
+ readonly activeSignal: _angular_core.Signal<boolean>;
11834
+ readonly acceptSignal: _angular_core.Signal<string | _dereekb_dbx_web.FileAcceptFilterTypeStringArray | _dereekb_dbx_web.FileAcceptFunction>;
11835
+ readonly modeSignal: _angular_core.Signal<DbxFileUploadMode>;
11836
+ readonly labelSignal: _angular_core.Signal<Maybe<string>>;
11837
+ readonly hintSignal: _angular_core.Signal<string | boolean>;
11838
+ readonly textSignal: _angular_core.Signal<string>;
11839
+ readonly iconSignal: _angular_core.Signal<string>;
11840
+ readonly successLabelSignal: _angular_core.Signal<Maybe<string>>;
11841
+ /**
11842
+ * Warning shown when the imported file left one or more expected sections empty. The import succeeded — this only explains why a slot is still blank.
11843
+ */
11844
+ readonly missingLabelSignal: _angular_core.Signal<Maybe<string>>;
11845
+ onFiles(event: DbxFileUploadFilesChangedEvent): Promise<void>;
11846
+ private messageForFailure;
11847
+ private fail;
11848
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxPdfMergeImportComponent, never>;
11849
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DbxPdfMergeImportComponent, "dbx-pdf-merge-import", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "expectedSlotIds": { "alias": "expectedSlotIds"; "required": false; "isSignal": true; }; "enforceExpectedSlots": { "alias": "enforceExpectedSlots"; "required": false; "isSignal": true; }; }, { "imported": "imported"; "importFailed": "importFailed"; "missingSlots": "missingSlots"; }, never, never, true, never>;
11850
+ }
11851
+
10761
11852
  /**
10762
11853
  * Display config for the dialog's footer Upload button.
10763
11854
  *
@@ -12525,5 +13616,5 @@ declare class DbxWebModule {
12525
13616
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<DbxWebModule>;
12526
13617
  }
12527
13618
 
12528
- export { APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH, AbstractDbxClipboardDirective, AbstractDbxErrorWidgetComponent, AbstractDbxFileUploadComponent, AbstractDbxHelpWidgetDirective, AbstractDbxListAccordionViewDirective, 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_COLOR_CUSTOM_BG_CSS_CLASS, DBX_COLOR_CUSTOM_TEXT_CSS_CLASS, DBX_CURATED_COLOR_COUNT, DBX_CURATED_COLOR_TEMPLATES, DBX_CURATED_COLOR_TEMPLATE_KEY_PREFIX, DBX_DARK_STYLE_CLASS_SUFFIX, DBX_HELP_WIDGET_ENTRY_DATA_TOKEN, DBX_LIST_ACCORDION_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_GRID_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY, DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY, DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DBX_PDF_MERGE_EDITOR_CONFIG, DBX_PDF_MERGE_EDITOR_INITIAL_STATE, DBX_PDF_MERGE_EDITOR_PRESERVE_ENTRIES_ON_SLOT_DESTROY, DBX_PDF_MERGE_ENCRYPTED_ERROR_MESSAGE, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, DBX_ROUTER_ANCHOR_COMPONENTS, DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY, DBX_THEME_COLORS, DBX_THEME_COLORS_EXTRA, DBX_THEME_COLORS_EXTRA_SECONDARY, DBX_THEME_COLORS_MAIN, DBX_VALUE_LIST_VIEW_ITEM, DBX_WEB_FILE_PREVIEW_SERVICE_ENTRIES_TOKEN, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_COMPONENT_PRESET, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_PRESET_ENTRY, DBX_WEB_PAGE_TITLE_SERVICE_CONFIG, DEFAULT_DBX_CHIP_TONE, DEFAULT_DBX_DETACH_KEY, DEFAULT_DBX_ERROR_SNACKBAR_CONFIG, DEFAULT_DBX_HELP_VIEW_POPOVER_KEY, DEFAULT_DBX_LINKIFY_STRING_TYPE, DEFAULT_DBX_LIST_ACCORDION_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_GRID_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_ITEM_DISABLE_FUNCTION, DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION, DEFAULT_DBX_LIST_SCROLL_DISTANCE, DEFAULT_DBX_LIST_THROTTLE_SCROLL, DEFAULT_DBX_LIST_VIEW_META_ICON, DEFAULT_DBX_PDF_MERGE_ENCRYPTED_HANDLING, DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_SIDENAV_MENU_ICON, DEFAULT_DBX_STYLE_CONFIG_TOKEN, DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_DIALOG_WITH_COMPONENT_FUNCTION, DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_PREVIEW_COMPONENT_FUNCTION, DEFAULT_ERROR_POPOVER_KEY, DEFAULT_ERROR_WIDGET_CODE, DEFAULT_FILTER_POPOVER_KEY, DEFAULT_IMAGE_BITMAP_TO_BLOB_ENCODER, DEFAULT_IMAGE_JPEG_QUALITY, DEFAULT_LIST_GRID_SIZE_CONFIG, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_LOADING_PROGRESS_DIAMETER, DEFAULT_PDF_MERGE_ACCEPT, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG, DEFAULT_SNACKBAR_DIRECTIVE_DURATION, DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION, DbxAccordionHeaderHeightDirective, DbxActionConfirmDirective, DbxActionDialogDirective, DbxActionErrorDirective, DbxActionKeyTriggerDirective, DbxActionLoadingContextDirective, DbxActionModule, DbxActionPopoverDirective, DbxActionSnackbarComponent, DbxActionSnackbarDirective, DbxActionSnackbarErrorDirective, DbxActionSnackbarModule, DbxActionSnackbarService, DbxActionTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent, DbxAnchorComponent, DbxAnchorContentComponent, DbxAnchorIconComponent, DbxAnchorListComponent, DbxAngularRouterSegueAnchorComponent, DbxAvatarComponent, DbxAvatarViewService, DbxAvatarViewServiceConfig, DbxBarDirective, DbxBarHeaderComponent, DbxBarLayoutModule, DbxBasicLoadingComponent, DbxBodyDirective, DbxButtonComponent, DbxButtonModule, DbxButtonSpacerDirective, DbxCardBoxComponent, DbxCardBoxContainerDirective, DbxCardBoxLayoutModule, DbxChipDirective, DbxChipListComponent, DbxClickToCopyTextComponent, DbxClickToCopyTextDirective, DbxColorDirective, DbxColorService, DbxColorServiceConfig, DbxColumnLayoutModule, DbxCompactDirective, DbxCompactLayoutModule, DbxContentBorderDirective, DbxContentBoxDirective, DbxContentContainerDirective, DbxContentDirective, DbxContentElevateDirective, DbxContentLayoutModule, DbxContentPageDirective, DbxContentPitDirective, DbxDetachContentComponent, DbxDetachControlButtonsComponent, DbxDetachController, DbxDetachControlsComponent, DbxDetachInitDirective, DbxDetachInteractionModule, DbxDetachOutletComponent, DbxDetachOverlayComponent, DbxDetachService, DbxDetachWindowState, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxDialogContentCloseComponent, DbxDialogContentDirective, DbxDialogContentFooterComponent, DbxDialogInteractionModule, DbxDialogModule, DbxDownloadBlobButtonComponent, DbxDownloadTextViewComponent, DbxEmbedComponent, DbxErrorComponent, DbxErrorDefaultErrorWidgetComponent, DbxErrorDetailsComponent, DbxErrorPopoverComponent, DbxErrorSnackbarComponent, DbxErrorSnackbarService, DbxErrorViewComponent, DbxErrorWidgetService, DbxErrorWidgetViewComponent, DbxFileUploadActionCompatable, DbxFileUploadActionSyncDirective, DbxFileUploadAreaComponent, DbxFileUploadButtonComponent, DbxFileUploadComponent, DbxFilterInteractionModule, DbxFilterPopoverButtonComponent, DbxFilterPopoverComponent, DbxFilterWrapperComponent, DbxFlagComponent, DbxFlagLayoutModule, DbxFlagPromptComponent, DbxFlexGroupDirective, DbxFlexLayoutModule, DbxFlexSizeDirective, DbxHelpContextDirective, DbxHelpContextService, DbxHelpViewListComponent, DbxHelpViewListEntryComponent, DbxHelpViewPopoverButtonComponent, DbxHelpViewPopoverComponent, DbxHelpWidgetService, DbxHelpWidgetServiceConfig, DbxIconButtonComponent, DbxIconButtonModule, DbxIconItemComponent, DbxIconSpacerDirective, DbxIconTileComponent, DbxIconTileDirective, DbxIfSidenavDisplayModeDirective, DbxIframeComponent, DbxInjectionDialogComponent, DbxInteractionModule, DbxIntroActionSectionComponent, DbxLabelBlockComponent, DbxLayoutModule, DbxLinkComponent, DbxLinkifyComponent, DbxLinkifyService, DbxLinkifyServiceConfig, DbxListAccordionViewComponentImportsModule, DbxListComponent, DbxListEmptyContentComponent, DbxListGridViewComponentImportsModule, DbxListInternalContentDirective, DbxListItemAnchorModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective, DbxListModifierModule, DbxListModule, DbxListTitleGroupDirective, DbxListView, DbxListViewMetaIconComponent, DbxListViewWrapper, DbxListWrapperComponentImportsModule, DbxLoadingComponent, DbxLoadingErrorDirective, DbxLoadingModule, DbxLoadingProgressComponent, DbxModelObjectStateService, actions_d as DbxModelStateActions, model_actions_d as DbxModelStateModelActions, DbxModelTrackerService, DbxModelTypesService, DbxModelViewTrackerStorage, DbxNavbarComponent, DbxNumberWithLimitComponent, DbxOneColumnComponent, DbxOneColumnLayoutModule, DbxPagebarComponent, DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxPdfMergeEditorComponent, DbxPdfMergeEditorFileUploadComponent, DbxPdfMergeEditorFileUploadHasStateDirective, DbxPdfMergeEditorFileUploadValidatorDirective, DbxPdfMergeEditorStore, DbxPdfMergeEditorStoreDirective, DbxPdfMergeEntryComponent, DbxPdfMergeListComponent, DbxPdfMergeUploadActionDirective, DbxPdfMergeUploadButtonDirective, DbxPdfMergeUploadDialogComponent, DbxPdfPreviewComponent, 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, DbxRouterAnchorModule, DbxRouterLayoutModule, DbxRouterSidenavModule, DbxRouterWebProviderConfig, DbxScreenMediaService, DbxScreenMediaServiceConfig, DbxSectionComponent, DbxSectionHeaderComponent, DbxSectionLayoutModule, DbxSectionPageComponent, DbxSelectionValueListViewComponent, DbxSelectionValueListViewComponentImportsModule, DbxSelectionValueListViewContentComponent, DbxSetStyleDirective, DbxSidenavButtonComponent, DbxSidenavComponent, DbxSidenavPageComponent, DbxSidenavPagebarComponent, DbxSpacerDirective, DbxStepBlockComponent, DbxStructureDirective, DbxStructureModule, DbxStyleBodyDirective, DbxStyleDirective, DbxStyleLayoutModule, DbxStyleService, DbxSubSectionComponent, DbxTextChipsComponent, DbxTextColorDirective, DbxTextModule, DbxTwoBlockComponent, DbxTwoColumnBackDirective, DbxTwoColumnColumnHeadDirective, DbxTwoColumnComponent, DbxTwoColumnContextDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnLayoutModule, DbxTwoColumnRightComponent, DbxTwoColumnSrefDirective, DbxTwoColumnSrefShowRightDirective, DbxUIRouterSegueAnchorComponent, DbxUnitedStatesAddressComponent, DbxValueListAccordionViewComponent, DbxValueListAccordionViewContentComponent, DbxValueListAccordionViewContentGroupComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent, DbxValueListGridViewContentComponent, DbxValueListGridViewContentGroupComponent, DbxValueListItemModifier, DbxValueListItemModifierDirective, DbxValueListView, DbxValueListViewComponent, DbxValueListViewComponentImportsModule, DbxValueListViewContentComponent, DbxValueListViewContentGroupComponent, DbxValueListViewGroupDelegate, DbxWebFilePreviewComponent, DbxWebFilePreviewService, DbxWebModule, DbxWebPageTitleInfoDirective, DbxWebPageTitleService, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent, DbxWidgetService, DbxWidgetViewComponent, DbxWindowKeyDownListenerDirective, DbxZipBlobPreviewComponent, DbxZipPreviewComponent, PDF_MERGE_RESULT_MIME_TYPE, PopoverPositionStrategy, PopupGlobalPositionStrategy, SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP, SIDE_NAV_DISPLAY_MODE_ORDER, SideNavDisplayMode, TRACK_BY_MODEL_ID, TRACK_BY_MODEL_KEY, TwoColumnsContextStore, UNKNOWN_ERROR_WIDGET_CODE, addConfigToValueListItems, allDbxModelViewTrackerEventModelKeys, allDbxModelViewTrackerEventSetModelKeys, buildPdfMergeEntry, buildPdfMergeEntrySync, catchErrorServerParams, classifyPdfMergeFile, compactModeFromInput, compareScreenMediaWidthTypes, compressImageFile, convertServerErrorParams, convertToPOJOServerErrorResponse, convertToServerErrorResponse, copyToClipboardFunction, dbxColorBackground, dbxCuratedColorConfigForString, dbxListAccordionViewComponentImportsAndExports, dbxListGridViewComponentImportsAndExports, dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, dbxStyleClassCleanSuffix, dbxThemeColorCssToken, dbxThemeColorCssTokenVar, dbxThemeColorCssVariable, dbxThemeColorCssVariableVar, dbxValueListItemDecisionFunction, dbxValueListItemKeyForItemValue, dbxWebDefaultPageTitleDelegate, dbxZipBlobPreviewEntryTreeFromEntries, defaultDbxModelViewTrackerStorageAccessorFactory, defaultDbxValueListViewGroupDelegate, defaultDbxValueListViewGroupValuesFunction, disableRightClickInCdkBackdrop, fileAcceptFilterTypeStringArray, fileAcceptFunction, fileAcceptString, fileArrayAcceptMatchFunction, flattenAccordionGroups, formatPdfMergeEntrySize, index_d$1 as fromDbxModel, injectCopyToClipboardFunction, injectCopyToClipboardFunctionWithSnackbarMessage, isDbxColorConfig, listItemModifier, makeDbxActionSnackbarDisplayConfigGeneratorFunction, mapCompactModeObs, mapValuesToValuesListItemConfigObs, mergePdfMergeEntries, index_d as onDbxModel, openEmbedDialog, openIframeDialog, openPdfPreviewDialog, openZipPreviewDialog, overrideClickElementEffect, provideDbxDetachController, provideDbxFileUploadActionCompatable, provideDbxHelpServices, provideDbxLinkify, provideDbxListView, provideDbxListViewWrapper, provideDbxModelService, provideDbxPdfMergeEditorConfig, provideDbxPdfMergeEditorPreserveEntriesOnSlotDestroy, provideDbxProgressButtonGlobalConfig, provideDbxPromptConfirm, provideDbxRouterWebAngularRouterProviderConfig, provideDbxRouterWebUiRouterProviderConfig, provideDbxScreenMediaService, provideDbxStyleService, provideDbxValueListView, provideDbxValueListViewGroupDelegate, provideDbxValueListViewModifier, provideDbxWebFilePreviewServiceEntries, provideDbxWebPageTitleService, provideTwoColumnsContext, registerHelpContextKeysWithDbxHelpContextService, resizeSignal, resolveSideNavDisplayMode, sanitizeDbxDialogContentConfig, screenMediaWidthTypeIsActive, trackByModelKeyRef, trackByUniqueIdentifier, validatePdfMergeEntry };
12529
- export type { AbstractDbxValueListViewConfig, AnchorForValueFunction, BuildPdfMergeEntryConfig, CompactContextState, CompactModeDefaultOptions, CompactModeOption, CompactModeOptions, CompressImageDimensions, CompressImageFileResult, CopyToClipboardContent, CopyToClipboardFunction, CopyToClipboardFunctionConfig, CopyToClipboardFunctionWithSnackbarMessage, CopyToClipboardFunctionWithSnackbarMessageConfig, CopyToClipboardFunctionWithSnackbarMessageSnackbarConfig, CopyToClipboardSuccess, DbxAccordionRenderEntry, DbxAccordionRenderGroupFooterEntry, DbxAccordionRenderGroupHeaderEntry, DbxAccordionRenderItemEntry, DbxActionConfirmConfig, DbxActionDialogFunction, DbxActionPopoverFunction, DbxActionPopoverFunctionParams, DbxActionSnackbarActionConfig, DbxActionSnackbarDisplayConfig, DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarEvent, DbxActionSnackbarEventMakeConfig, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput, DbxActionSnackbarGeneratorUndoInputConfig, DbxActionSnackbarKnownType, DbxActionSnackbarServiceConfig, DbxActionSnackbarType, DbxActionTransitionSafetyDialogResult, DbxActionTransitionSafetyType, DbxAnchorListExpandedAnchor, DbxAvatarComponentForContextFunction, DbxAvatarContext, DbxAvatarInjectionComponentConfig, DbxAvatarKey, DbxAvatarSelector, DbxAvatarSize, DbxAvatarStyle, DbxButtonDisplayStylePair, DbxButtonStyle, DbxButtonType, DbxChipDisplay, DbxColorConfig, DbxColorConfigTemplate, DbxColorConfigTemplateKey, DbxColorInput, DbxColorTone, DbxContentBorderOpacity, DbxContentContainerPadding, DbxContentContainerWidth, DbxContentPitScrollableHeight, DbxContentPitScrollableHeightSetting, DbxContentPitScrollableInput, DbxDetachConfig, DbxDetachInstance, DbxDetachKey, DbxDetachOverlayConfig, DbxDetachOverlayData, DbxDetachWindowStateType, DbxDialogContentConfig, DbxDialogContentContainerWidth, DbxDialogContentFooterConfig, DbxDownloadBlobButtonConfig, DbxEmbedComponentElement, DbxEmbedDialogConfig, DbxErrorPopoverConfig, DbxErrorSnackbarConfig, DbxErrorSnackbarData, DbxErrorViewButtonEvent, DbxErrorWidgetEntry, DbxErrorWidgetEntryWithPopupComponentClass, DbxFileUploadAreaFilesChangedEvent, DbxFileUploadButtonFilesChangedEvent, DbxFileUploadComponentConfig, DbxFileUploadFilesChangedEvent, DbxFileUploadMode, DbxFilterButtonConfig, DbxFilterButtonConfigWithCustomFilter, DbxFilterButtonConfigWithPresetFilter, DbxFilterComponentConfig, DbxFilterPopoverComponentConfig, DbxFlexSize, DbxHelpContextKey, DbxHelpContextReference, DbxHelpViewPopoverButtonConfig, DbxHelpViewPopoverConfig, DbxHelpViewPopoverConfigWithoutOrigin, DbxHelpWidgetEntryData, DbxHelpWidgetServiceConfigFactory, DbxHelpWidgetServiceEntry, DbxIframeDialogConfig, DbxImageCompressionConfig, DbxInjectionDialogComponentConfig, DbxLinkifyConfig, DbxLinkifyServiceConfigFactory, DbxLinkifyServiceDefaultEntry, DbxLinkifyServiceEntry, DbxLinkifyStringOptions, DbxLinkifyStringType, DbxListComponentScrolledEventPosition, DbxListConfig, DbxListLoadMoreHandler, DbxListScrollDirectionTrigger, DbxListSelectionMode, DbxListTitleGroupData, DbxListTitleGroupTitleDelegate, DbxListViewMetaIconConfig, DbxListWrapperConfig, DbxLoadingComponentState, DbxLoadingIsLoadingOrProgress, DbxLoadingProgress, DbxMakeActionSnackbarGeneratorConfiguration, DbxMakeActionSnackbarGeneratorEventConfiguration, DbxModelFullState, DbxModelIconsMap, DbxModelTypeConfiguration, DbxModelTypeConfigurationMap, DbxModelTypeConfigurationSrefFactory, DbxModelTypeConfigurationSrefFactoryBuilder, DbxModelTypeInfo, DbxModelTypesMap, DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet, DbxPdfMergeEditorAddFilesInput, DbxPdfMergeEditorConfig, DbxPdfMergeEditorFileUploadConfig, DbxPdfMergeEditorFileUploadState, DbxPdfMergeEditorFileUploadValidatorSlot, DbxPdfMergeEditorOutputSizeState, DbxPdfMergeEditorValidator, DbxPdfMergeEncryptedHandling, DbxPdfMergeOutputSizeLimitsConfig, DbxPdfMergeUploadButtonConfig, DbxPdfMergeUploadDialogConfig, DbxPdfMergeUploadDialogUploadButtonConfig, DbxPdfPreviewDialogConfig, DbxPopoverComponentConfig, DbxPopoverConfig, DbxPopoverConfigSizing, DbxPopoverKey, DbxPopupComponentConfig, DbxPopupConfig, DbxPopupKey, DbxPopupWindowStateType, DbxPresetFilterMenuConfig, DbxProgressButtonConfig, DbxProgressButtonGlobalConfig, DbxProgressButtonIcon, DbxProgressButtonTargetedConfig, DbxPromptConfirmConfig, DbxPromptConfirmDialogConfig, DbxSectionHeaderConfig, DbxSectionHeaderHType, DbxSectionPageScrollLockedMode, DbxSelectionListWrapperConfig, DbxSelectionValueListViewConfig, DbxSetStyleMode, DbxSidenavPosition, DbxSidenavSidebarState, DbxStepBlockComponentConfig, DbxStyleApplication, DbxStyleClass, DbxStyleClassCleanSuffix, DbxStyleClassDashSuffix, DbxStyleClassSuffix, DbxStyleConfig, DbxStyleName, DbxStyleSupplement, DbxThemeColor, DbxThemeColorExtra, DbxThemeColorExtraSecondary, DbxThemeColorMain, DbxThemeColorMainOrExtra, DbxTwoColumnViewState, DbxValueAsListItem, DbxValueListAccordionViewConfig, DbxValueListGridItemViewGridSizeConfig, DbxValueListGridViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListItemDecisionFunction, DbxValueListItemGroup, DbxValueListViewConfig, DbxValueListViewGroupValuesFunction, DbxWebDefaultPageTitleDelegateConfig, DbxWebFilePreviewComponentConfig, DbxWebFilePreviewServiceEntry, DbxWebFilePreviewServicePreviewComponentFunction, DbxWebFilePreviewServicePreviewComponentFunctionInput, DbxWebFilePreviewServicePreviewDialogFunction, DbxWebFilePreviewServicePreviewDialogFunctionInput, DbxWebFilePreviewServicePreviewDialogFunctionInputWithMatDialog, DbxWebFilePreviewServicePreviewDialogWithComponentFunction, DbxWebFilePreviewServicePreviewDialogWithComponentFunctionInput, DbxWebFilePreviewServicePreviewFunction, DbxWebPageTitleDelegate, DbxWebPageTitleDelegateInput, DbxWebPageTitleDetails, DbxWebPageTitleInfoConfig, DbxWebPageTitleInfoReference, DbxWebPageTitleServiceConfig, DbxWidgetDataPair, DbxWidgetDataPairFactory, DbxWidgetDataPairWithSelection, DbxWidgetEntry, DbxWidgetType, DbxWidgetViewComponentConfig, DbxZipBlobPreviewEntryNodeValue, DbxZipBlobPreviewEntryTreeNode, DbxZipBlobPreviewEntryTreeRoot, DbxZipBlobPreviewGroupData, DbxZipBlobPreviewGroupValue, DbxZipBlobPreviewMode, DbxZipPreviewDialogConfig, DownloadTextContent, FileAcceptFilterTypeString, FileAcceptFilterTypeStringArray, FileAcceptFunction, FileAcceptFunctionInput, FileAcceptString, FileArrayAcceptMatchConfig, FileArrayAcceptMatchFunction, FileArrayAcceptMatchResult, FullDbxPopoverComponentConfig, ImageBitmapToBlobEncoder, ImageBitmapToBlobEncoderInput, ImageCompressionStatus, ListItemModifier, ListSelectionState, ListSelectionStateItem, LoadingComponentState, ModelViewContext, NavBarContentAlign, NavbarButtonMode, NavbarMode, NumberWithLimit, OverrideClickElementEffectConfig, PdfMergeEditorState, PdfMergeEntry, PdfMergeEntryKind, PdfMergeEntryMove, PdfMergeEntryOriginal, PdfMergeEntryStatus, PdfMergeEntryValidationResult, PdfMergeEntryView, PopoverPositionStrategyConfig, PopupPosition, PopupPositionOffset, ProvideDbxHelpServicesConfig, ProvideDbxLinkifyConfig, ProvideDbxScreenMediaServiceConfig, ProvideDbxStyleServiceConfig, ProvideDbxWebPageTitleServiceConfig, ResizedEvent, ScreenMediaHeightType, ScreenMediaWidthType, ServerErrorParams, SideNavDisplayModeString, TextChip, TwoColumnsState };
13619
+ export { APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH, AbstractDbxClipboardDirective, AbstractDbxErrorWidgetComponent, AbstractDbxFileUploadComponent, AbstractDbxHelpWidgetDirective, AbstractDbxListAccordionViewDirective, 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_COLOR_CUSTOM_BG_CSS_CLASS, DBX_COLOR_CUSTOM_TEXT_CSS_CLASS, DBX_CURATED_COLOR_COUNT, DBX_CURATED_COLOR_TEMPLATES, DBX_CURATED_COLOR_TEMPLATE_KEY_PREFIX, DBX_DARK_STYLE_CLASS_SUFFIX, DBX_HELP_WIDGET_ENTRY_DATA_TOKEN, DBX_LIST_ACCORDION_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_GRID_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY, DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY, DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DBX_PDF_MERGE_EDITOR_CONFIG, DBX_PDF_MERGE_EDITOR_INITIAL_STATE, DBX_PDF_MERGE_EDITOR_PRESERVE_ENTRIES_ON_SLOT_DESTROY, DBX_PDF_MERGE_ENCRYPTED_ERROR_MESSAGE, DBX_PDF_MERGE_ENCRYPTED_NOT_EDITABLE_MESSAGE, DBX_PDF_MERGE_IMPORT_ERROR_MESSAGES, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, DBX_ROUTER_ANCHOR_COMPONENTS, DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY, DBX_THEME_COLORS, DBX_THEME_COLORS_EXTRA, DBX_THEME_COLORS_EXTRA_SECONDARY, DBX_THEME_COLORS_MAIN, DBX_VALUE_LIST_VIEW_ITEM, DBX_WEB_FILE_PREVIEW_SERVICE_ENTRIES_TOKEN, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_COMPONENT_PRESET, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_PRESET_ENTRY, DBX_WEB_PAGE_TITLE_SERVICE_CONFIG, DEFAULT_DBX_CHIP_TONE, DEFAULT_DBX_DETACH_KEY, DEFAULT_DBX_ERROR_SNACKBAR_CONFIG, DEFAULT_DBX_HELP_VIEW_POPOVER_KEY, DEFAULT_DBX_LINKIFY_STRING_TYPE, DEFAULT_DBX_LIST_ACCORDION_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_GRID_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_ITEM_DISABLE_FUNCTION, DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION, DEFAULT_DBX_LIST_SCROLL_DISTANCE, DEFAULT_DBX_LIST_THROTTLE_SCROLL, DEFAULT_DBX_LIST_VIEW_META_ICON, DEFAULT_DBX_PDF_MERGE_ENCRYPTED_HANDLING, DEFAULT_DBX_PDF_MERGE_PAGE_EDITING, DEFAULT_DBX_PDF_MERGE_SIDECAR, DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_SIDENAV_MENU_ICON, DEFAULT_DBX_STYLE_CONFIG_TOKEN, DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_DIALOG_WITH_COMPONENT_FUNCTION, DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_PREVIEW_COMPONENT_FUNCTION, DEFAULT_ERROR_POPOVER_KEY, DEFAULT_ERROR_WIDGET_CODE, DEFAULT_FILTER_POPOVER_KEY, DEFAULT_IMAGE_BITMAP_TO_BLOB_ENCODER, DEFAULT_IMAGE_JPEG_QUALITY, DEFAULT_LIST_GRID_SIZE_CONFIG, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_LOADING_PROGRESS_DIAMETER, DEFAULT_PDF_MERGE_ACCEPT, DEFAULT_PDF_MERGE_PAGE_GROUP_KEY, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG, DEFAULT_SNACKBAR_DIRECTIVE_DURATION, DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION, DbxAccordionHeaderHeightDirective, DbxActionConfirmDirective, DbxActionDialogDirective, DbxActionErrorDirective, DbxActionKeyTriggerDirective, DbxActionLoadingContextDirective, DbxActionModule, DbxActionPopoverDirective, DbxActionSnackbarComponent, DbxActionSnackbarDirective, DbxActionSnackbarErrorDirective, DbxActionSnackbarModule, DbxActionSnackbarService, DbxActionTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent, DbxAnchorComponent, DbxAnchorContentComponent, DbxAnchorIconComponent, DbxAnchorListComponent, DbxAngularRouterSegueAnchorComponent, DbxAvatarComponent, DbxAvatarViewComponent, DbxAvatarViewService, DbxAvatarViewServiceConfig, DbxBarDirective, DbxBarHeaderComponent, DbxBarLayoutModule, DbxBasicLoadingComponent, DbxBodyDirective, DbxButtonComponent, DbxButtonModule, DbxButtonSpacerDirective, DbxCardBoxComponent, DbxCardBoxContainerDirective, DbxCardBoxLayoutModule, DbxChipDirective, DbxChipListComponent, DbxClickToCopyTextComponent, DbxClickToCopyTextDirective, DbxColorDirective, DbxColorService, DbxColorServiceConfig, DbxColumnLayoutModule, DbxCompactDirective, DbxCompactLayoutModule, DbxContentBorderDirective, DbxContentBoxDirective, DbxContentContainerDirective, DbxContentDirective, DbxContentElevateDirective, DbxContentLayoutModule, DbxContentPageDirective, DbxContentPitDirective, DbxDetachContentComponent, DbxDetachControlButtonsComponent, DbxDetachController, DbxDetachControlsComponent, DbxDetachInitDirective, DbxDetachInteractionModule, DbxDetachOutletComponent, DbxDetachOverlayComponent, DbxDetachService, DbxDetachWindowState, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxDialogContentCloseComponent, DbxDialogContentDirective, DbxDialogContentFooterComponent, DbxDialogInteractionModule, DbxDialogModule, DbxDownloadBlobButtonComponent, DbxDownloadTextViewComponent, DbxEmbedComponent, DbxErrorComponent, DbxErrorDefaultErrorWidgetComponent, DbxErrorDetailsComponent, DbxErrorPopoverComponent, DbxErrorSnackbarComponent, DbxErrorSnackbarService, DbxErrorViewComponent, DbxErrorWidgetService, DbxErrorWidgetViewComponent, DbxFileUploadActionCompatable, DbxFileUploadActionSyncDirective, DbxFileUploadAreaComponent, DbxFileUploadButtonComponent, DbxFileUploadComponent, DbxFilterInteractionModule, DbxFilterPopoverButtonComponent, DbxFilterPopoverComponent, DbxFilterWrapperComponent, DbxFlagComponent, DbxFlagLayoutModule, DbxFlagPromptComponent, DbxFlexGroupDirective, DbxFlexLayoutModule, DbxFlexSizeDirective, DbxHelpContextDirective, DbxHelpContextService, DbxHelpViewListComponent, DbxHelpViewListEntryComponent, DbxHelpViewPopoverButtonComponent, DbxHelpViewPopoverComponent, DbxHelpWidgetService, DbxHelpWidgetServiceConfig, DbxIconButtonComponent, DbxIconButtonModule, DbxIconItemComponent, DbxIconSpacerDirective, DbxIconTileComponent, DbxIconTileDirective, DbxIfSidenavDisplayModeDirective, DbxIframeComponent, DbxInjectionDialogComponent, DbxInteractionModule, DbxIntroActionSectionComponent, DbxLabelBlockComponent, DbxLayoutModule, DbxLinkComponent, DbxLinkifyComponent, DbxLinkifyService, DbxLinkifyServiceConfig, DbxListAccordionViewComponentImportsModule, DbxListComponent, DbxListEmptyContentComponent, DbxListGridViewComponentImportsModule, DbxListInternalContentDirective, DbxListItemAnchorModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective, DbxListModifierModule, DbxListModule, DbxListTitleGroupDirective, DbxListView, DbxListViewMetaIconComponent, DbxListViewWrapper, DbxListWrapperComponentImportsModule, DbxLoadingComponent, DbxLoadingErrorDirective, DbxLoadingModule, DbxLoadingProgressComponent, DbxModelObjectStateService, actions_d as DbxModelStateActions, model_actions_d as DbxModelStateModelActions, DbxModelTrackerService, DbxModelTypesService, DbxModelViewTrackerStorage, DbxNavbarComponent, DbxNumberWithLimitComponent, DbxOneColumnComponent, DbxOneColumnLayoutModule, DbxPagebarComponent, DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxPdfMergeEditorComponent, DbxPdfMergeEditorFileUploadComponent, DbxPdfMergeEditorFileUploadHasStateDirective, DbxPdfMergeEditorFileUploadValidatorDirective, DbxPdfMergeEditorStore, DbxPdfMergeEditorStoreDirective, DbxPdfMergeEntryComponent, DbxPdfMergeImportComponent, DbxPdfMergeListComponent, DbxPdfMergePageComponent, DbxPdfMergePageListComponent, DbxPdfMergeUploadActionDirective, DbxPdfMergeUploadButtonDirective, DbxPdfMergeUploadDialogComponent, DbxPdfPreviewComponent, 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, DbxRouterAnchorModule, DbxRouterLayoutModule, DbxRouterSidenavModule, DbxRouterWebProviderConfig, DbxScreenMediaService, DbxScreenMediaServiceConfig, DbxSectionComponent, DbxSectionHeaderComponent, DbxSectionLayoutModule, DbxSectionPageComponent, DbxSelectionValueListViewComponent, DbxSelectionValueListViewComponentImportsModule, DbxSelectionValueListViewContentComponent, DbxSetStyleDirective, DbxSidenavButtonComponent, DbxSidenavComponent, DbxSidenavPageComponent, DbxSidenavPagebarComponent, DbxSpacerDirective, DbxStepBlockComponent, DbxStructureDirective, DbxStructureModule, DbxStyleBodyDirective, DbxStyleDirective, DbxStyleLayoutModule, DbxStyleService, DbxSubSectionComponent, DbxTextChipsComponent, DbxTextColorDirective, DbxTextModule, DbxTwoBlockComponent, DbxTwoColumnBackDirective, DbxTwoColumnColumnHeadDirective, DbxTwoColumnComponent, DbxTwoColumnContextDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnLayoutModule, DbxTwoColumnRightComponent, DbxTwoColumnSrefDirective, DbxTwoColumnSrefShowRightDirective, DbxUIRouterSegueAnchorComponent, DbxUnitedStatesAddressComponent, DbxValueListAccordionViewComponent, DbxValueListAccordionViewContentComponent, DbxValueListAccordionViewContentGroupComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent, DbxValueListGridViewContentComponent, DbxValueListGridViewContentGroupComponent, DbxValueListItemModifier, DbxValueListItemModifierDirective, DbxValueListView, DbxValueListViewComponent, DbxValueListViewComponentImportsModule, DbxValueListViewContentComponent, DbxValueListViewContentGroupComponent, DbxValueListViewGroupDelegate, DbxWebFilePreviewComponent, DbxWebFilePreviewService, DbxWebModule, DbxWebPageTitleInfoDirective, DbxWebPageTitleService, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent, DbxWidgetService, DbxWidgetViewComponent, DbxWindowKeyDownListenerDirective, DbxZipBlobPreviewComponent, DbxZipPreviewComponent, PDF_MERGE_PAGE_ID_SEPARATOR, PDF_MERGE_PAGE_TAG_KEY, PDF_MERGE_RESULT_MIME_TYPE, PDF_MERGE_SIDECAR_DESCRIPTION, PDF_MERGE_SIDECAR_FILE_NAME, PDF_MERGE_SIDECAR_VERSION, PopoverPositionStrategy, PopupGlobalPositionStrategy, SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP, SIDE_NAV_DISPLAY_MODE_ORDER, SideNavDisplayMode, TRACK_BY_MODEL_ID, TRACK_BY_MODEL_KEY, TwoColumnsContextStore, UNKNOWN_ERROR_WIDGET_CODE, addConfigToValueListItems, allDbxModelViewTrackerEventModelKeys, allDbxModelViewTrackerEventSetModelKeys, asPdfMergeFile, attachPdfMergeSidecar, buildPdfMergeEntriesFromSidecar, buildPdfMergeEntry, buildPdfMergeEntrySync, buildPdfMergePagePlan, catchErrorServerParams, classifyPdfMergeFile, compactModeFromInput, compareScreenMediaWidthTypes, compressImageFile, convertServerErrorParams, convertToPOJOServerErrorResponse, convertToServerErrorResponse, copyToClipboardFunction, dbxColorBackground, dbxCuratedColorConfigForString, dbxListAccordionViewComponentImportsAndExports, dbxListGridViewComponentImportsAndExports, dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, dbxStyleClassCleanSuffix, dbxThemeColorCssToken, dbxThemeColorCssTokenVar, dbxThemeColorCssVariable, dbxThemeColorCssVariableVar, dbxValueListItemDecisionFunction, dbxValueListItemKeyForItemValue, dbxWebDefaultPageTitleDelegate, dbxZipBlobPreviewEntryTreeFromEntries, defaultDbxModelViewTrackerStorageAccessorFactory, defaultDbxValueListViewGroupDelegate, defaultDbxValueListViewGroupValuesFunction, disableRightClickInCdkBackdrop, entryIdForPdfMergePageId, fileAcceptFilterTypeStringArray, fileAcceptFunction, fileAcceptString, fileArrayAcceptMatchFunction, flattenAccordionGroups, formatPdfMergeEntrySize, index_d$1 as fromDbxModel, injectCopyToClipboardFunction, injectCopyToClipboardFunctionWithSnackbarMessage, isDbxColorConfig, listItemModifier, makeDbxActionSnackbarDisplayConfigGeneratorFunction, makePdfMergePageId, makePdfMergeSidecar, makePdfMergeSidecarPageTag, mapCompactModeObs, mapValuesToValuesListItemConfigObs, mergePdfMergeEntries, index_d as onDbxModel, openEmbedDialog, openIframeDialog, openPdfPreviewDialog, openZipPreviewDialog, overrideClickElementEffect, pdfMergePageGroupKeyForSlotId, provideDbxDetachController, provideDbxFileUploadActionCompatable, provideDbxHelpServices, provideDbxLinkify, provideDbxListView, provideDbxListViewWrapper, provideDbxModelService, provideDbxPdfMergeEditorConfig, provideDbxPdfMergeEditorPreserveEntriesOnSlotDestroy, provideDbxProgressButtonGlobalConfig, provideDbxPromptConfirm, provideDbxRouterWebAngularRouterProviderConfig, provideDbxRouterWebUiRouterProviderConfig, provideDbxScreenMediaService, provideDbxStyleService, provideDbxValueListView, provideDbxValueListViewGroupDelegate, provideDbxValueListViewModifier, provideDbxWebFilePreviewServiceEntries, provideDbxWebPageTitleService, provideTwoColumnsContext, readPdfMergeEntryPageMetas, readPdfMergePageTag, readPdfMergeSidecar, registerHelpContextKeysWithDbxHelpContextService, resizeSignal, resolveSideNavDisplayMode, sanitizeDbxDialogContentConfig, screenMediaWidthTypeIsActive, splitPdfMergeSidecarDocuments, trackByModelKeyRef, trackByUniqueIdentifier, validatePdfMergeEntry, writePdfMergePageTag };
13620
+ export type { AbstractDbxValueListViewConfig, AnchorForValueFunction, BuildPdfMergeEntriesFromSidecarConfig, BuildPdfMergeEntryConfig, BuildPdfMergePagePlanInput, CompactContextState, CompactModeDefaultOptions, CompactModeOption, CompactModeOptions, CompressImageDimensions, CompressImageFileResult, CopyToClipboardContent, CopyToClipboardFunction, CopyToClipboardFunctionConfig, CopyToClipboardFunctionWithSnackbarMessage, CopyToClipboardFunctionWithSnackbarMessageConfig, CopyToClipboardFunctionWithSnackbarMessageSnackbarConfig, CopyToClipboardSuccess, DbxAccordionRenderEntry, DbxAccordionRenderGroupFooterEntry, DbxAccordionRenderGroupHeaderEntry, DbxAccordionRenderItemEntry, DbxActionConfirmConfig, DbxActionDialogFunction, DbxActionPopoverFunction, DbxActionPopoverFunctionParams, DbxActionSnackbarActionConfig, DbxActionSnackbarDisplayConfig, DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarEvent, DbxActionSnackbarEventMakeConfig, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput, DbxActionSnackbarGeneratorUndoInputConfig, DbxActionSnackbarKnownType, DbxActionSnackbarServiceConfig, DbxActionSnackbarType, DbxActionTransitionSafetyDialogResult, DbxActionTransitionSafetyType, DbxAnchorListExpandedAnchor, DbxAvatarComponentForContextFunction, DbxAvatarContext, DbxAvatarImageFit, DbxAvatarInjectionComponentConfig, DbxAvatarKey, DbxAvatarSelector, DbxAvatarSize, DbxAvatarStyle, DbxButtonDisplayStylePair, DbxButtonStyle, DbxButtonType, DbxChipDisplay, DbxColorConfig, DbxColorConfigTemplate, DbxColorConfigTemplateKey, DbxColorInput, DbxColorTone, DbxContentBorderOpacity, DbxContentContainerPadding, DbxContentContainerWidth, DbxContentPitScrollableHeight, DbxContentPitScrollableHeightSetting, DbxContentPitScrollableInput, DbxDetachConfig, DbxDetachInstance, DbxDetachKey, DbxDetachOverlayConfig, DbxDetachOverlayData, DbxDetachWindowStateType, DbxDialogContentConfig, DbxDialogContentContainerWidth, DbxDialogContentFooterConfig, DbxDownloadBlobButtonConfig, DbxEmbedComponentElement, DbxEmbedDialogConfig, DbxErrorPopoverConfig, DbxErrorSnackbarConfig, DbxErrorSnackbarData, DbxErrorViewButtonEvent, DbxErrorWidgetEntry, DbxErrorWidgetEntryWithPopupComponentClass, DbxFileUploadAreaFilesChangedEvent, DbxFileUploadButtonFilesChangedEvent, DbxFileUploadComponentConfig, DbxFileUploadFilesChangedEvent, DbxFileUploadMode, DbxFilterButtonConfig, DbxFilterButtonConfigWithCustomFilter, DbxFilterButtonConfigWithPresetFilter, DbxFilterComponentConfig, DbxFilterPopoverComponentConfig, DbxFlexSize, DbxHelpContextKey, DbxHelpContextReference, DbxHelpViewPopoverButtonConfig, DbxHelpViewPopoverConfig, DbxHelpViewPopoverConfigWithoutOrigin, DbxHelpWidgetEntryData, DbxHelpWidgetServiceConfigFactory, DbxHelpWidgetServiceEntry, DbxIframeDialogConfig, DbxImageCompressionConfig, DbxInjectionDialogComponentConfig, DbxLinkifyConfig, DbxLinkifyServiceConfigFactory, DbxLinkifyServiceDefaultEntry, DbxLinkifyServiceEntry, DbxLinkifyStringOptions, DbxLinkifyStringType, DbxListComponentScrolledEventPosition, DbxListConfig, DbxListLoadMoreHandler, DbxListScrollDirectionTrigger, DbxListSelectionMode, DbxListTitleGroupData, DbxListTitleGroupTitleDelegate, DbxListViewMetaIconConfig, DbxListWrapperConfig, DbxLoadingComponentState, DbxLoadingIsLoadingOrProgress, DbxLoadingProgress, DbxMakeActionSnackbarGeneratorConfiguration, DbxMakeActionSnackbarGeneratorEventConfiguration, DbxModelFullState, DbxModelIconsMap, DbxModelTypeConfiguration, DbxModelTypeConfigurationMap, DbxModelTypeConfigurationSrefFactory, DbxModelTypeConfigurationSrefFactoryBuilder, DbxModelTypeInfo, DbxModelTypesMap, DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet, DbxPdfMergeEditorAddFileToSlotInput, DbxPdfMergeEditorAddFilesInput, DbxPdfMergeEditorConfig, DbxPdfMergeEditorFileUploadConfig, DbxPdfMergeEditorFileUploadState, DbxPdfMergeEditorFileUploadValidatorSlot, DbxPdfMergeEditorImportErrorReason, DbxPdfMergeEditorImportMergedPdfInput, DbxPdfMergeEditorImportResult, DbxPdfMergeEditorImportState, DbxPdfMergeEditorOutputSizeState, DbxPdfMergeEditorSourceConfig, DbxPdfMergeEditorValidator, DbxPdfMergeEncryptedHandling, DbxPdfMergeImportConfig, DbxPdfMergeOutputSizeLimitsConfig, DbxPdfMergeUploadButtonConfig, DbxPdfMergeUploadDialogConfig, DbxPdfMergeUploadDialogUploadButtonConfig, DbxPdfPreviewDialogConfig, DbxPopoverComponentConfig, DbxPopoverConfig, DbxPopoverConfigSizing, DbxPopoverKey, DbxPopupComponentConfig, DbxPopupConfig, DbxPopupKey, DbxPopupWindowStateType, DbxPresetFilterMenuConfig, DbxProgressButtonConfig, DbxProgressButtonGlobalConfig, DbxProgressButtonIcon, DbxProgressButtonTargetedConfig, DbxPromptConfirmConfig, DbxPromptConfirmDialogConfig, DbxSectionHeaderConfig, DbxSectionHeaderHType, DbxSectionPageScrollLockedMode, DbxSelectionListWrapperConfig, DbxSelectionValueListViewConfig, DbxSetStyleMode, DbxSidenavPosition, DbxSidenavSidebarState, DbxStepBlockComponentConfig, DbxStyleApplication, DbxStyleClass, DbxStyleClassCleanSuffix, DbxStyleClassDashSuffix, DbxStyleClassSuffix, DbxStyleConfig, DbxStyleName, DbxStyleSupplement, DbxThemeColor, DbxThemeColorExtra, DbxThemeColorExtraSecondary, DbxThemeColorMain, DbxThemeColorMainOrExtra, DbxTwoColumnViewState, DbxValueAsListItem, DbxValueListAccordionViewConfig, DbxValueListGridItemViewGridSizeConfig, DbxValueListGridViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListItemDecisionFunction, DbxValueListItemGroup, DbxValueListViewConfig, DbxValueListViewGroupValuesFunction, DbxWebDefaultPageTitleDelegateConfig, DbxWebFilePreviewComponentConfig, DbxWebFilePreviewServiceEntry, DbxWebFilePreviewServicePreviewComponentFunction, DbxWebFilePreviewServicePreviewComponentFunctionInput, DbxWebFilePreviewServicePreviewDialogFunction, DbxWebFilePreviewServicePreviewDialogFunctionInput, DbxWebFilePreviewServicePreviewDialogFunctionInputWithMatDialog, DbxWebFilePreviewServicePreviewDialogWithComponentFunction, DbxWebFilePreviewServicePreviewDialogWithComponentFunctionInput, DbxWebFilePreviewServicePreviewFunction, DbxWebPageTitleDelegate, DbxWebPageTitleDelegateInput, DbxWebPageTitleDetails, DbxWebPageTitleInfoConfig, DbxWebPageTitleInfoReference, DbxWebPageTitleServiceConfig, DbxWidgetDataPair, DbxWidgetDataPairFactory, DbxWidgetDataPairWithSelection, DbxWidgetEntry, DbxWidgetType, DbxWidgetViewComponentConfig, DbxZipBlobPreviewEntryNodeValue, DbxZipBlobPreviewEntryTreeNode, DbxZipBlobPreviewEntryTreeRoot, DbxZipBlobPreviewGroupData, DbxZipBlobPreviewGroupValue, DbxZipBlobPreviewMode, DbxZipPreviewDialogConfig, DownloadTextContent, FileAcceptFilterTypeString, FileAcceptFilterTypeStringArray, FileAcceptFunction, FileAcceptFunctionInput, FileAcceptString, FileArrayAcceptMatchConfig, FileArrayAcceptMatchFunction, FileArrayAcceptMatchResult, FullDbxPopoverComponentConfig, ImageBitmapToBlobEncoder, ImageBitmapToBlobEncoderInput, ImageCompressionStatus, ListItemModifier, ListSelectionState, ListSelectionStateItem, LoadingComponentState, MergePdfMergeEntriesOptions, ModelViewContext, NavBarContentAlign, NavbarButtonMode, NavbarMode, NumberWithLimit, OverrideClickElementEffectConfig, PdfMergeEditorState, PdfMergeEntry, PdfMergeEntryKind, PdfMergeEntryMove, PdfMergeEntryOriginal, PdfMergeEntryStatus, PdfMergeEntryValidationResult, PdfMergeEntryView, PdfMergePageGroup, PdfMergePageMeta, PdfMergePageMove, PdfMergePageOverride, PdfMergePageRemovedChange, PdfMergePageRotation, PdfMergePageRotationChange, PdfMergePageView, PdfMergeSidecar, PdfMergeSidecarDocument, PdfMergeSidecarDocumentFile, PdfMergeSidecarImportErrorReason, PdfMergeSidecarImportResult, PdfMergeSidecarPage, PdfMergeSidecarReadInput, PdfMergeSidecarReadResult, PdfMergeSidecarResolvedDocument, PdfMergeSidecarResolvedPage, PopoverPositionStrategyConfig, PopupPosition, PopupPositionOffset, ProvideDbxHelpServicesConfig, ProvideDbxLinkifyConfig, ProvideDbxScreenMediaServiceConfig, ProvideDbxStyleServiceConfig, ProvideDbxWebPageTitleServiceConfig, ResizedEvent, ScreenMediaHeightType, ScreenMediaWidthType, ServerErrorParams, SideNavDisplayModeString, SplitPdfMergeSidecarResult, TextChip, TwoColumnsState };