@dereekb/dbx-web 13.12.5 → 13.12.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/eslint/package.json +4 -4
- package/fesm2022/dereekb-dbx-web.mjs +113 -30
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/package.json +7 -7
- package/types/dereekb-dbx-web.d.ts +212 -148
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/dbx-web",
|
|
3
|
-
"version": "13.12.
|
|
3
|
+
"version": "13.12.7",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.scss",
|
|
6
6
|
"*.css"
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"@angular/material": "^21.2.9",
|
|
14
14
|
"@angular/platform-browser": "21.2.11",
|
|
15
15
|
"@cantoo/pdf-lib": "^2.6.5",
|
|
16
|
-
"@dereekb/browser": "13.12.
|
|
17
|
-
"@dereekb/date": "13.12.
|
|
18
|
-
"@dereekb/dbx-core": "13.12.
|
|
19
|
-
"@dereekb/rxjs": "13.12.
|
|
20
|
-
"@dereekb/util": "13.12.
|
|
21
|
-
"@dereekb/vitest": "13.12.
|
|
16
|
+
"@dereekb/browser": "13.12.7",
|
|
17
|
+
"@dereekb/date": "13.12.7",
|
|
18
|
+
"@dereekb/dbx-core": "13.12.7",
|
|
19
|
+
"@dereekb/rxjs": "13.12.7",
|
|
20
|
+
"@dereekb/util": "13.12.7",
|
|
21
|
+
"@dereekb/vitest": "13.12.7",
|
|
22
22
|
"@ngbracket/ngx-layout": "^21.0.0",
|
|
23
23
|
"@ngrx/component-store": "^21.1.0",
|
|
24
24
|
"@ngrx/effects": "^21.1.0",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as _dereekb_dbx_core from '@dereekb/dbx-core';
|
|
2
|
-
import { DbxActionWorkOrWorkProgress, DbxActionWorkProgress, DbxActionContextStoreSourceInstance, DbxActionContextSourceReference, DbxActionSuccessHandlerFunction, AbstractTransitionWatcherDirective, AbstractDbxButtonDirective, AuthUserIdentifier, DbxInjectionComponentConfig, SegueRef, ClickableAnchor, SegueRefOrSegueRefRouterLink, DbxButtonDisplay, DbxButtonWorking, DbxButtonEcho, SimpleStorageAccessorFactory, StorageAccessor, AbstractDbxAnchorDirective, ClickableIconAnchorLink, ClickableAnchorLink, DbxInjectionTemplateConfig, ClickableAnchorLinkTree, ExpandedClickableAnchorLinkTree, AbstractTransitionDirective, ClickableAnchorLinkSegueRef, AbstractIfDirective, AbstractDbxActionValueGetterDirective, DbxButton, FilterSourceDirective, ClickablePartialFilterPreset, AbstractDbxActionHandlerDirective, ClickableFilterPresetOrPartialPreset, ClickableFilterPreset, DbxButtonInterceptor } from '@dereekb/dbx-core';
|
|
2
|
+
import { DbxActionWorkOrWorkProgress, DbxActionWorkProgress, DbxActionContextStoreSourceInstance, DbxActionContextSourceReference, DbxActionSuccessHandlerFunction, AbstractTransitionWatcherDirective, AbstractDbxButtonDirective, AuthUserIdentifier, DbxInjectionComponentConfig, SegueRef, ClickableAnchor, SegueRefOrSegueRefRouterLink, DbxButtonDisplay, DbxButtonWorking, DbxButtonEcho, SimpleStorageAccessorFactory, StorageAccessor, AbstractDbxAnchorDirective, ClickableIconAnchorLink, ClickableAnchorLink, DbxInjectionTemplateConfig, ClickableAnchorLinkTree, ExpandedClickableAnchorLinkTree, AbstractTransitionDirective, ClickableAnchorLinkSegueRef, AbstractIfDirective, AbstractDbxActionValueGetterDirective, DbxActionWorkable, DbxButton, FilterSourceDirective, ClickablePartialFilterPreset, AbstractDbxActionHandlerDirective, ClickableFilterPresetOrPartialPreset, ClickableFilterPreset, DbxButtonInterceptor } from '@dereekb/dbx-core';
|
|
3
3
|
import * as _dereekb_dbx_web from '@dereekb/dbx-web';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
5
|
import { Signal, ElementRef, AfterViewInit, InjectionToken, Type, OnInit, OnDestroy, ViewContainerRef, Provider, Injector, TrackByFunction, OutputEmitterRef, OutputRef, EnvironmentProviders, TemplateRef, ComponentRef } from '@angular/core';
|
|
6
6
|
import { ProgressBarMode } from '@angular/material/progress-bar';
|
|
7
7
|
import * as _dereekb_util from '@dereekb/util';
|
|
8
|
-
import { Maybe, ErrorInput, Milliseconds, GetterOrValue, Getter, CssClass, CharacterPrefixSuffixCleanString, DashPrefixString, 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,
|
|
8
|
+
import { Maybe, ErrorInput, Milliseconds, GetterOrValue, Getter, CssClass, CharacterPrefixSuffixCleanString, DashPrefixString, 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';
|
|
9
9
|
import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
|
|
10
10
|
import * as dist_packages_dbx_core_types_dereekb_dbx_core from 'dist/packages/dbx-core/types/dereekb-dbx-core';
|
|
11
11
|
import * as rxjs from 'rxjs';
|
|
@@ -9433,6 +9433,132 @@ declare const DEFAULT_IMAGE_BITMAP_TO_BLOB_ENCODER: ImageBitmapToBlobEncoder;
|
|
|
9433
9433
|
*/
|
|
9434
9434
|
declare function compressImageFile(file: File, config: Maybe<DbxImageCompressionConfig>, encoder?: ImageBitmapToBlobEncoder): Promise<CompressImageFileResult>;
|
|
9435
9435
|
|
|
9436
|
+
/**
|
|
9437
|
+
* String used as input for the "accept" attribute of a file input element.
|
|
9438
|
+
*/
|
|
9439
|
+
type FileAcceptString = string;
|
|
9440
|
+
/**
|
|
9441
|
+
* Returns a string that can be used as the "accept" attribute of a file input element.
|
|
9442
|
+
*
|
|
9443
|
+
* @param accept - A file accept string or array of filter type strings to convert.
|
|
9444
|
+
* @returns A comma-separated string suitable for the HTML accept attribute.
|
|
9445
|
+
*/
|
|
9446
|
+
declare function fileAcceptString(accept: FileAcceptString | FileAcceptFilterTypeStringArray): FileAcceptString;
|
|
9447
|
+
/**
|
|
9448
|
+
* Describes a type of file that can be selected.
|
|
9449
|
+
*
|
|
9450
|
+
* Can either be a mime type or a file suffix.
|
|
9451
|
+
*/
|
|
9452
|
+
type FileAcceptFilterTypeString = MimeTypeWildcard | MimeTypeWithoutParameters | MimeTypeWithSubtypeWildcardWithoutParameters | SlashPathTypedFileSuffix;
|
|
9453
|
+
/**
|
|
9454
|
+
* The file accept filter type strings.
|
|
9455
|
+
*/
|
|
9456
|
+
type FileAcceptFilterTypeStringArray = FileAcceptFilterTypeString[];
|
|
9457
|
+
/**
|
|
9458
|
+
* Converts a comma-separated accept string or array into a {@link FileAcceptFilterTypeStringArray}.
|
|
9459
|
+
*
|
|
9460
|
+
* @param accept - A file accept string or array of filter type strings to normalize.
|
|
9461
|
+
* @returns The individual filter type strings.
|
|
9462
|
+
*
|
|
9463
|
+
* @example
|
|
9464
|
+
* ```ts
|
|
9465
|
+
* const types = fileAcceptFilterTypeStringArray('image/png, .pdf');
|
|
9466
|
+
* // ['image/png', '.pdf']
|
|
9467
|
+
* ```
|
|
9468
|
+
*/
|
|
9469
|
+
declare function fileAcceptFilterTypeStringArray(accept: FileAcceptString | FileAcceptFilterTypeStringArray): FileAcceptFilterTypeStringArray;
|
|
9470
|
+
/**
|
|
9471
|
+
* Configuration for matching an array of files against accept criteria with optional multiple file support.
|
|
9472
|
+
*/
|
|
9473
|
+
interface FileArrayAcceptMatchConfig {
|
|
9474
|
+
readonly accept: FileAcceptFunction | FileAcceptString | FileAcceptFilterTypeStringArray;
|
|
9475
|
+
/**
|
|
9476
|
+
* If false, then only the first file will be accepted.
|
|
9477
|
+
*
|
|
9478
|
+
* Defaults to true.
|
|
9479
|
+
*/
|
|
9480
|
+
readonly multiple?: boolean;
|
|
9481
|
+
}
|
|
9482
|
+
/**
|
|
9483
|
+
* Result of matching files against accept criteria, categorizing them into accepted and rejected lists.
|
|
9484
|
+
*/
|
|
9485
|
+
interface FileArrayAcceptMatchResult {
|
|
9486
|
+
/**
|
|
9487
|
+
* If multiple is allowed or not.
|
|
9488
|
+
*/
|
|
9489
|
+
readonly multiple: boolean;
|
|
9490
|
+
/**
|
|
9491
|
+
* The input files.
|
|
9492
|
+
*/
|
|
9493
|
+
readonly input: File[];
|
|
9494
|
+
/**
|
|
9495
|
+
* The final list of accepted files.
|
|
9496
|
+
*/
|
|
9497
|
+
readonly accepted: File[];
|
|
9498
|
+
/**
|
|
9499
|
+
* The final list of rejected files.
|
|
9500
|
+
*/
|
|
9501
|
+
readonly rejected: File[];
|
|
9502
|
+
/**
|
|
9503
|
+
* The list of accepted files based on the file type.
|
|
9504
|
+
*
|
|
9505
|
+
* If multiple is false, all files that would have been accepted are included here.
|
|
9506
|
+
*/
|
|
9507
|
+
readonly acceptedType: File[];
|
|
9508
|
+
/**
|
|
9509
|
+
* The list of rejected files based on the file type.
|
|
9510
|
+
*
|
|
9511
|
+
* If multiple is false, only files that would have been rejected by type are included here.
|
|
9512
|
+
*/
|
|
9513
|
+
readonly rejectedType: File[];
|
|
9514
|
+
}
|
|
9515
|
+
/**
|
|
9516
|
+
* Matches an array of files based on the internal configuration.
|
|
9517
|
+
*/
|
|
9518
|
+
type FileArrayAcceptMatchFunction = (input: File[]) => FileArrayAcceptMatchResult;
|
|
9519
|
+
/**
|
|
9520
|
+
* Creates a {@link FileArrayAcceptMatchFunction} that filters and separates files based on accept criteria and multiple file support.
|
|
9521
|
+
*
|
|
9522
|
+
* @param config - Configuration specifying the accept criteria and whether multiple files are allowed.
|
|
9523
|
+
* @returns Accepts an array of files and returns the categorized match result.
|
|
9524
|
+
*
|
|
9525
|
+
* @example
|
|
9526
|
+
* ```ts
|
|
9527
|
+
* const matchFn = fileArrayAcceptMatchFunction({ accept: 'image/*', multiple: false });
|
|
9528
|
+
* const result = matchFn(fileList);
|
|
9529
|
+
* console.log(result.accepted, result.rejected);
|
|
9530
|
+
* ```
|
|
9531
|
+
*
|
|
9532
|
+
* @__NO_SIDE_EFFECTS__
|
|
9533
|
+
*/
|
|
9534
|
+
declare function fileArrayAcceptMatchFunction(config: FileArrayAcceptMatchConfig): FileArrayAcceptMatchFunction;
|
|
9535
|
+
/**
|
|
9536
|
+
* Type of input used for a FileAcceptFunction.
|
|
9537
|
+
*
|
|
9538
|
+
* Isolates the name and type fields from a File.
|
|
9539
|
+
*/
|
|
9540
|
+
type FileAcceptFunctionInput = Pick<File, 'name' | 'type'>;
|
|
9541
|
+
/**
|
|
9542
|
+
* Used to determine if a file is an accepted type based on the internal configuration.
|
|
9543
|
+
*/
|
|
9544
|
+
type FileAcceptFunction = DecisionFunction<FileAcceptFunctionInput>;
|
|
9545
|
+
/**
|
|
9546
|
+
* Creates a {@link FileAcceptFunction} that checks individual files against accept criteria (MIME types, wildcards, or file extensions).
|
|
9547
|
+
*
|
|
9548
|
+
* @param accept - A file accept string or array specifying which MIME types, wildcards, or file extensions to allow.
|
|
9549
|
+
* @returns A decision function that returns true if a file matches any of the accept criteria.
|
|
9550
|
+
*
|
|
9551
|
+
* @example
|
|
9552
|
+
* ```ts
|
|
9553
|
+
* const isAccepted = fileAcceptFunction(['image/*', '.pdf']);
|
|
9554
|
+
* isAccepted({ name: 'photo.png', type: 'image/png' }); // true
|
|
9555
|
+
* isAccepted({ name: 'doc.txt', type: 'text/plain' }); // false
|
|
9556
|
+
* ```
|
|
9557
|
+
*
|
|
9558
|
+
* @__NO_SIDE_EFFECTS__
|
|
9559
|
+
*/
|
|
9560
|
+
declare function fileAcceptFunction(accept: FileAcceptString | FileAcceptFilterTypeStringArray): FileAcceptFunction;
|
|
9561
|
+
|
|
9436
9562
|
/**
|
|
9437
9563
|
* Identifies which kind of source file a {@link PdfMergeEntry} represents.
|
|
9438
9564
|
*
|
|
@@ -9585,6 +9711,38 @@ interface DbxPdfMergeEditorConfig {
|
|
|
9585
9711
|
* Soft/hard output-size limits surfaced via warning/error banners and (for `errorBytes`) the store's validity gate.
|
|
9586
9712
|
*/
|
|
9587
9713
|
readonly outputSizeLimits?: Maybe<DbxPdfMergeOutputSizeLimitsConfig>;
|
|
9714
|
+
/**
|
|
9715
|
+
* Accept filter for the editor's default "Add files" upload area. Defaults to {@link DEFAULT_PDF_MERGE_ACCEPT}.
|
|
9716
|
+
*/
|
|
9717
|
+
readonly accept?: Maybe<FileArrayAcceptMatchConfig['accept']>;
|
|
9718
|
+
/**
|
|
9719
|
+
* Whether the default upload area accepts multiple files. Defaults to `true`.
|
|
9720
|
+
*/
|
|
9721
|
+
readonly multiple?: Maybe<boolean>;
|
|
9722
|
+
/**
|
|
9723
|
+
* File name used for the merged output (download + preview). Defaults to `merged.pdf`.
|
|
9724
|
+
*/
|
|
9725
|
+
readonly fileName?: Maybe<string>;
|
|
9726
|
+
/**
|
|
9727
|
+
* Whether to show the embedded download button. Defaults to `false`.
|
|
9728
|
+
*/
|
|
9729
|
+
readonly showDownloadButton?: Maybe<boolean>;
|
|
9730
|
+
/**
|
|
9731
|
+
* Whether to show the Preview button. Defaults to `true`.
|
|
9732
|
+
*/
|
|
9733
|
+
readonly showPreviewButton?: Maybe<boolean>;
|
|
9734
|
+
/**
|
|
9735
|
+
* Display/style pair for the embedded download button.
|
|
9736
|
+
*/
|
|
9737
|
+
readonly downloadButton?: Maybe<DbxButtonDisplayStylePair>;
|
|
9738
|
+
/**
|
|
9739
|
+
* When `false`, hides the default "Add files" upload area. Use when projecting {@link DbxPdfMergeEditorFileUploadComponent} slots through `<ng-content>` instead of the unscoped uploader. Defaults to `true`.
|
|
9740
|
+
*/
|
|
9741
|
+
readonly showAddFiles?: Maybe<boolean>;
|
|
9742
|
+
/**
|
|
9743
|
+
* When `false`, hides the shared file list below the slot content. Useful when each slot displays its owned files inline. Defaults to `true`.
|
|
9744
|
+
*/
|
|
9745
|
+
readonly showFileList?: Maybe<boolean>;
|
|
9588
9746
|
}
|
|
9589
9747
|
/**
|
|
9590
9748
|
* Injection token for a workspace-wide default {@link DbxPdfMergeEditorConfig}. Use {@link provideDbxPdfMergeEditorConfig} to register a value.
|
|
@@ -9692,6 +9850,7 @@ type DbxPdfMergeEditorAddFilesInput = readonly File[] | {
|
|
|
9692
9850
|
declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState> {
|
|
9693
9851
|
private readonly _validator$;
|
|
9694
9852
|
private readonly _outputSizeLimit$;
|
|
9853
|
+
private readonly _imageCompression$;
|
|
9695
9854
|
constructor();
|
|
9696
9855
|
/**
|
|
9697
9856
|
* 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.
|
|
@@ -9728,6 +9887,10 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
|
|
|
9728
9887
|
*/
|
|
9729
9888
|
readonly currentMergeOutput$: Observable<Maybe<Blob>>;
|
|
9730
9889
|
readonly mergeOutput$: Observable<Blob>;
|
|
9890
|
+
/**
|
|
9891
|
+
* Emits the active client-side image-compression config pushed via {@link setImageCompression}, or `undefined` when none is set. Consumed by the editor and its slot uploaders as the middle tier of compression resolution (own `[config]` input → store → {@link DBX_PDF_MERGE_EDITOR_CONFIG} token), letting {@link DbxPdfMergeEditorStoreDirective} supply a store-level default that flows through the upload dialog's bare editor.
|
|
9892
|
+
*/
|
|
9893
|
+
readonly imageCompression$: Observable<Maybe<DbxImageCompressionConfig>>;
|
|
9731
9894
|
/**
|
|
9732
9895
|
* Returns an observable of entries belonging to the given slot id. The result is filtered from {@link entries$} so the per-slot stream still reflects validation progress and removals.
|
|
9733
9896
|
*
|
|
@@ -9751,6 +9914,12 @@ declare class DbxPdfMergeEditorStore extends ComponentStore<PdfMergeEditorState>
|
|
|
9751
9914
|
* @param maxBytes - Output byte ceiling, or a falsy value to remove the limit.
|
|
9752
9915
|
*/
|
|
9753
9916
|
setOutputSizeLimit(maxBytes: Maybe<FileSize>): void;
|
|
9917
|
+
/**
|
|
9918
|
+
* Sets the store-level client-side image-compression config exposed via {@link imageCompression$}. The editor and its slot uploaders apply it as the middle tier of compression resolution (own `[config]` input → store → {@link DBX_PDF_MERGE_EDITOR_CONFIG} token), so a value pushed here by {@link DbxPdfMergeEditorStoreDirective} reaches the upload dialog's bare editor while a per-input/per-slot override still wins. Pass `null`/`undefined` to clear the store-level default.
|
|
9919
|
+
*
|
|
9920
|
+
* @param config - Image-compression config, or a falsy value to clear the store-level default.
|
|
9921
|
+
*/
|
|
9922
|
+
setImageCompression(config: Maybe<DbxImageCompressionConfig>): void;
|
|
9754
9923
|
/**
|
|
9755
9924
|
* 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.
|
|
9756
9925
|
*/
|
|
@@ -9801,138 +9970,12 @@ declare class DbxPdfMergeEditorStoreDirective {
|
|
|
9801
9970
|
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>;
|
|
9802
9971
|
}
|
|
9803
9972
|
|
|
9804
|
-
/**
|
|
9805
|
-
* String used as input for the "accept" attribute of a file input element.
|
|
9806
|
-
*/
|
|
9807
|
-
type FileAcceptString = string;
|
|
9808
|
-
/**
|
|
9809
|
-
* Returns a string that can be used as the "accept" attribute of a file input element.
|
|
9810
|
-
*
|
|
9811
|
-
* @param accept - A file accept string or array of filter type strings to convert.
|
|
9812
|
-
* @returns A comma-separated string suitable for the HTML accept attribute.
|
|
9813
|
-
*/
|
|
9814
|
-
declare function fileAcceptString(accept: FileAcceptString | FileAcceptFilterTypeStringArray): FileAcceptString;
|
|
9815
|
-
/**
|
|
9816
|
-
* Describes a type of file that can be selected.
|
|
9817
|
-
*
|
|
9818
|
-
* Can either be a mime type or a file suffix.
|
|
9819
|
-
*/
|
|
9820
|
-
type FileAcceptFilterTypeString = MimeTypeWildcard | MimeTypeWithoutParameters | MimeTypeWithSubtypeWildcardWithoutParameters | SlashPathTypedFileSuffix;
|
|
9821
|
-
/**
|
|
9822
|
-
* The file accept filter type strings.
|
|
9823
|
-
*/
|
|
9824
|
-
type FileAcceptFilterTypeStringArray = FileAcceptFilterTypeString[];
|
|
9825
|
-
/**
|
|
9826
|
-
* Converts a comma-separated accept string or array into a {@link FileAcceptFilterTypeStringArray}.
|
|
9827
|
-
*
|
|
9828
|
-
* @param accept - A file accept string or array of filter type strings to normalize.
|
|
9829
|
-
* @returns The individual filter type strings.
|
|
9830
|
-
*
|
|
9831
|
-
* @example
|
|
9832
|
-
* ```ts
|
|
9833
|
-
* const types = fileAcceptFilterTypeStringArray('image/png, .pdf');
|
|
9834
|
-
* // ['image/png', '.pdf']
|
|
9835
|
-
* ```
|
|
9836
|
-
*/
|
|
9837
|
-
declare function fileAcceptFilterTypeStringArray(accept: FileAcceptString | FileAcceptFilterTypeStringArray): FileAcceptFilterTypeStringArray;
|
|
9838
|
-
/**
|
|
9839
|
-
* Configuration for matching an array of files against accept criteria with optional multiple file support.
|
|
9840
|
-
*/
|
|
9841
|
-
interface FileArrayAcceptMatchConfig {
|
|
9842
|
-
readonly accept: FileAcceptFunction | FileAcceptString | FileAcceptFilterTypeStringArray;
|
|
9843
|
-
/**
|
|
9844
|
-
* If false, then only the first file will be accepted.
|
|
9845
|
-
*
|
|
9846
|
-
* Defaults to true.
|
|
9847
|
-
*/
|
|
9848
|
-
readonly multiple?: boolean;
|
|
9849
|
-
}
|
|
9850
|
-
/**
|
|
9851
|
-
* Result of matching files against accept criteria, categorizing them into accepted and rejected lists.
|
|
9852
|
-
*/
|
|
9853
|
-
interface FileArrayAcceptMatchResult {
|
|
9854
|
-
/**
|
|
9855
|
-
* If multiple is allowed or not.
|
|
9856
|
-
*/
|
|
9857
|
-
readonly multiple: boolean;
|
|
9858
|
-
/**
|
|
9859
|
-
* The input files.
|
|
9860
|
-
*/
|
|
9861
|
-
readonly input: File[];
|
|
9862
|
-
/**
|
|
9863
|
-
* The final list of accepted files.
|
|
9864
|
-
*/
|
|
9865
|
-
readonly accepted: File[];
|
|
9866
|
-
/**
|
|
9867
|
-
* The final list of rejected files.
|
|
9868
|
-
*/
|
|
9869
|
-
readonly rejected: File[];
|
|
9870
|
-
/**
|
|
9871
|
-
* The list of accepted files based on the file type.
|
|
9872
|
-
*
|
|
9873
|
-
* If multiple is false, all files that would have been accepted are included here.
|
|
9874
|
-
*/
|
|
9875
|
-
readonly acceptedType: File[];
|
|
9876
|
-
/**
|
|
9877
|
-
* The list of rejected files based on the file type.
|
|
9878
|
-
*
|
|
9879
|
-
* If multiple is false, only files that would have been rejected by type are included here.
|
|
9880
|
-
*/
|
|
9881
|
-
readonly rejectedType: File[];
|
|
9882
|
-
}
|
|
9883
|
-
/**
|
|
9884
|
-
* Matches an array of files based on the internal configuration.
|
|
9885
|
-
*/
|
|
9886
|
-
type FileArrayAcceptMatchFunction = (input: File[]) => FileArrayAcceptMatchResult;
|
|
9887
|
-
/**
|
|
9888
|
-
* Creates a {@link FileArrayAcceptMatchFunction} that filters and separates files based on accept criteria and multiple file support.
|
|
9889
|
-
*
|
|
9890
|
-
* @param config - Configuration specifying the accept criteria and whether multiple files are allowed.
|
|
9891
|
-
* @returns Accepts an array of files and returns the categorized match result.
|
|
9892
|
-
*
|
|
9893
|
-
* @example
|
|
9894
|
-
* ```ts
|
|
9895
|
-
* const matchFn = fileArrayAcceptMatchFunction({ accept: 'image/*', multiple: false });
|
|
9896
|
-
* const result = matchFn(fileList);
|
|
9897
|
-
* console.log(result.accepted, result.rejected);
|
|
9898
|
-
* ```
|
|
9899
|
-
*
|
|
9900
|
-
* @__NO_SIDE_EFFECTS__
|
|
9901
|
-
*/
|
|
9902
|
-
declare function fileArrayAcceptMatchFunction(config: FileArrayAcceptMatchConfig): FileArrayAcceptMatchFunction;
|
|
9903
|
-
/**
|
|
9904
|
-
* Type of input used for a FileAcceptFunction.
|
|
9905
|
-
*
|
|
9906
|
-
* Isolates the name and type fields from a File.
|
|
9907
|
-
*/
|
|
9908
|
-
type FileAcceptFunctionInput = Pick<File, 'name' | 'type'>;
|
|
9909
|
-
/**
|
|
9910
|
-
* Used to determine if a file is an accepted type based on the internal configuration.
|
|
9911
|
-
*/
|
|
9912
|
-
type FileAcceptFunction = DecisionFunction<FileAcceptFunctionInput>;
|
|
9913
|
-
/**
|
|
9914
|
-
* Creates a {@link FileAcceptFunction} that checks individual files against accept criteria (MIME types, wildcards, or file extensions).
|
|
9915
|
-
*
|
|
9916
|
-
* @param accept - A file accept string or array specifying which MIME types, wildcards, or file extensions to allow.
|
|
9917
|
-
* @returns A decision function that returns true if a file matches any of the accept criteria.
|
|
9918
|
-
*
|
|
9919
|
-
* @example
|
|
9920
|
-
* ```ts
|
|
9921
|
-
* const isAccepted = fileAcceptFunction(['image/*', '.pdf']);
|
|
9922
|
-
* isAccepted({ name: 'photo.png', type: 'image/png' }); // true
|
|
9923
|
-
* isAccepted({ name: 'doc.txt', type: 'text/plain' }); // false
|
|
9924
|
-
* ```
|
|
9925
|
-
*
|
|
9926
|
-
* @__NO_SIDE_EFFECTS__
|
|
9927
|
-
*/
|
|
9928
|
-
declare function fileAcceptFunction(accept: FileAcceptString | FileAcceptFilterTypeStringArray): FileAcceptFunction;
|
|
9929
|
-
|
|
9930
9973
|
/**
|
|
9931
9974
|
* Abstract interface for file upload components that can be controlled by the action system (disabled, working, multiple, accept states).
|
|
9975
|
+
*
|
|
9976
|
+
* Extends {@link DbxActionWorkable} (disabled/working), adding upload-specific multiple/accept controls.
|
|
9932
9977
|
*/
|
|
9933
|
-
declare abstract class DbxFileUploadActionCompatable {
|
|
9934
|
-
abstract setDisabled(disabled?: Maybe<boolean>): void;
|
|
9935
|
-
abstract setWorking(working?: Maybe<DbxButtonWorking>): void;
|
|
9978
|
+
declare abstract class DbxFileUploadActionCompatable extends DbxActionWorkable {
|
|
9936
9979
|
abstract setMultiple(multiple?: Maybe<boolean>): void;
|
|
9937
9980
|
abstract setAccept(accept?: Maybe<FileArrayAcceptMatchConfig['accept']>): void;
|
|
9938
9981
|
}
|
|
@@ -10034,31 +10077,40 @@ declare class DbxPdfMergeEditorComponent {
|
|
|
10034
10077
|
* Single-slot subscription tracker for the deferred Preview path. Replacing the slot cancels any earlier in-flight wait so rapid clicks (or repeated programmatic calls) cannot stack pending dialogs.
|
|
10035
10078
|
*/
|
|
10036
10079
|
private readonly _pendingPreview;
|
|
10037
|
-
readonly accept: _angular_core.InputSignal<string | _dereekb_dbx_web.FileAcceptFilterTypeStringArray | _dereekb_dbx_web.FileAcceptFunction>;
|
|
10038
|
-
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
10039
|
-
readonly fileName: _angular_core.InputSignal<string>;
|
|
10040
|
-
readonly showDownloadButton: _angular_core.InputSignal<boolean>;
|
|
10041
|
-
readonly showPreviewButton: _angular_core.InputSignal<boolean>;
|
|
10042
|
-
readonly downloadButton: _angular_core.InputSignal<Maybe<DbxButtonDisplayStylePair>>;
|
|
10043
10080
|
/**
|
|
10044
|
-
*
|
|
10081
|
+
* Individual inputs. Each takes precedence over the matching field on {@link config} (and the workspace-wide token), with defaults applied in the corresponding `*Signal` computed. See {@link DbxPdfMergeEditorConfig} for field docs.
|
|
10045
10082
|
*/
|
|
10046
|
-
readonly
|
|
10047
|
-
|
|
10048
|
-
|
|
10049
|
-
|
|
10050
|
-
readonly
|
|
10083
|
+
readonly accept: _angular_core.InputSignal<Maybe<string | _dereekb_dbx_web.FileAcceptFilterTypeStringArray | _dereekb_dbx_web.FileAcceptFunction>>;
|
|
10084
|
+
readonly multiple: _angular_core.InputSignal<Maybe<boolean>>;
|
|
10085
|
+
readonly fileName: _angular_core.InputSignal<Maybe<string>>;
|
|
10086
|
+
readonly showDownloadButton: _angular_core.InputSignal<Maybe<boolean>>;
|
|
10087
|
+
readonly showPreviewButton: _angular_core.InputSignal<Maybe<boolean>>;
|
|
10088
|
+
readonly downloadButton: _angular_core.InputSignal<Maybe<DbxButtonDisplayStylePair>>;
|
|
10089
|
+
readonly showAddFiles: _angular_core.InputSignal<Maybe<boolean>>;
|
|
10090
|
+
readonly showFileList: _angular_core.InputSignal<Maybe<boolean>>;
|
|
10051
10091
|
/**
|
|
10052
|
-
*
|
|
10092
|
+
* 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.
|
|
10053
10093
|
*/
|
|
10054
10094
|
readonly config: _angular_core.InputSignal<Maybe<DbxPdfMergeEditorConfig>>;
|
|
10055
10095
|
readonly entriesChanged: _angular_core.OutputEmitterRef<readonly PdfMergeEntry[]>;
|
|
10056
10096
|
/**
|
|
10057
|
-
*
|
|
10097
|
+
* Store-level image-compression default pushed by {@link DbxPdfMergeEditorStoreDirective}. Resolved between the editor's own `config` input and the workspace-wide token so a store-level default flows through the upload dialog's bare editor.
|
|
10098
|
+
*/
|
|
10099
|
+
readonly storeImageCompressionSignal: _angular_core.Signal<Maybe<DbxImageCompressionConfig>>;
|
|
10100
|
+
/**
|
|
10101
|
+
* 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.
|
|
10058
10102
|
*/
|
|
10059
10103
|
readonly effectiveConfigSignal: _angular_core.Signal<DbxPdfMergeEditorConfig>;
|
|
10060
10104
|
readonly imageCompressionConfigSignal: _angular_core.Signal<Maybe<DbxImageCompressionConfig>>;
|
|
10061
10105
|
readonly outputSizeLimitsSignal: _angular_core.Signal<Maybe<DbxPdfMergeOutputSizeLimitsConfig>>;
|
|
10106
|
+
readonly acceptSignal: _angular_core.Signal<string | _dereekb_dbx_web.FileAcceptFilterTypeStringArray | _dereekb_dbx_web.FileAcceptFunction>;
|
|
10107
|
+
readonly multipleSignal: _angular_core.Signal<boolean>;
|
|
10108
|
+
readonly fileNameSignal: _angular_core.Signal<string>;
|
|
10109
|
+
readonly showDownloadButtonSignal: _angular_core.Signal<boolean>;
|
|
10110
|
+
readonly showPreviewButtonSignal: _angular_core.Signal<boolean>;
|
|
10111
|
+
readonly downloadButtonSignal: _angular_core.Signal<DbxButtonDisplayStylePair>;
|
|
10112
|
+
readonly showAddFilesSignal: _angular_core.Signal<boolean>;
|
|
10113
|
+
readonly showFileListSignal: _angular_core.Signal<boolean>;
|
|
10062
10114
|
readonly warnBytesSignal: _angular_core.Signal<Maybe<number>>;
|
|
10063
10115
|
readonly errorBytesSignal: _angular_core.Signal<Maybe<number>>;
|
|
10064
10116
|
readonly hasReadyEntriesSignal: _angular_core.Signal<boolean>;
|
|
@@ -10343,7 +10395,11 @@ declare class DbxPdfMergeEditorFileUploadComponent implements OnInit, OnDestroy,
|
|
|
10343
10395
|
ngOnDestroy(): void;
|
|
10344
10396
|
onDrop(event: CdkDragDrop<unknown>): void;
|
|
10345
10397
|
/**
|
|
10346
|
-
*
|
|
10398
|
+
* Store-level image-compression default pushed by {@link DbxPdfMergeEditorStoreDirective}. Resolved between the slot's own override and the workspace-wide token.
|
|
10399
|
+
*/
|
|
10400
|
+
readonly storeImageCompressionSignal: _angular_core.Signal<Maybe<DbxImageCompressionConfig>>;
|
|
10401
|
+
/**
|
|
10402
|
+
* Resolves the active image compression config: per-slot override → store-level default → workspace-wide DI token. The store tier lets a {@link DbxPdfMergeEditorStoreDirective} `[config]` supply a shared default (e.g. through the upload dialog) while a slot's own `imageCompression` still wins.
|
|
10347
10403
|
*/
|
|
10348
10404
|
readonly effectiveImageCompressionSignal: _angular_core.Signal<Maybe<DbxImageCompressionConfig>>;
|
|
10349
10405
|
onFiles(event: DbxFileUploadFilesChangedEvent): Promise<void>;
|
|
@@ -12029,16 +12085,24 @@ declare class DbxInteractionModule {
|
|
|
12029
12085
|
}
|
|
12030
12086
|
|
|
12031
12087
|
/**
|
|
12032
|
-
* Syncs the disabled and working states from an ActionContextStoreSource to a {@link
|
|
12088
|
+
* Syncs the disabled and working states from an ActionContextStoreSource to a {@link DbxActionWorkable} target.
|
|
12089
|
+
*
|
|
12090
|
+
* The target is any element that provides {@link DbxActionWorkable} -- a {@link DbxFileUploadActionCompatable}
|
|
12091
|
+
* file upload component, or a {@link DbxButton} (e.g. `<dbx-button>`).
|
|
12033
12092
|
*
|
|
12034
12093
|
* @example
|
|
12035
12094
|
* ```html
|
|
12036
12095
|
* <dbx-file-upload-button dbxFileUploadActionSync (filesChanged)="onFiles($event)"></dbx-file-upload-button>
|
|
12037
12096
|
* ```
|
|
12097
|
+
*
|
|
12098
|
+
* @example
|
|
12099
|
+
* ```html
|
|
12100
|
+
* <dbx-button dbxFileUploadActionSync></dbx-button>
|
|
12101
|
+
* ```
|
|
12038
12102
|
*/
|
|
12039
12103
|
declare class DbxFileUploadActionSyncDirective {
|
|
12040
12104
|
readonly source: DbxActionContextStoreSourceInstance<any, any>;
|
|
12041
|
-
readonly
|
|
12105
|
+
readonly workable: DbxActionWorkable;
|
|
12042
12106
|
constructor();
|
|
12043
12107
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxFileUploadActionSyncDirective, never>;
|
|
12044
12108
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DbxFileUploadActionSyncDirective, "[dbxFileUploadActionSync]", never, {}, {}, never, never, true, never>;
|