@scaleflex/uploader 0.2.6 → 0.2.8
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/.claude/skills/integrate-uploader/SKILL.md +4 -3
- package/CHANGELOG.md +16 -1
- package/README.md +3 -3
- package/dist/components/actions-bar.d.ts +2 -0
- package/dist/components/actions-bar.d.ts.map +1 -1
- package/dist/components/drop-zone.d.ts.map +1 -1
- package/dist/components/file-item.d.ts +6 -0
- package/dist/components/file-item.d.ts.map +1 -1
- package/dist/components/file-list.d.ts.map +1 -1
- package/dist/components/toast.d.ts +18 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/define.cjs +1 -1
- package/dist/define.js +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/tus-upload.d.ts +52 -0
- package/dist/engine/tus-upload.d.ts.map +1 -0
- package/dist/engine/upload-engine.d.ts +14 -0
- package/dist/engine/upload-engine.d.ts.map +1 -1
- package/dist/engine/xhr-upload.d.ts.map +1 -1
- package/dist/events/public-events.d.ts +2 -0
- package/dist/events/public-events.d.ts.map +1 -1
- package/dist/index-D7hE18PK.js +3541 -0
- package/dist/index-DuX47Oy3.cjs +1625 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/metadata/bulk/bulk-meta-diff-view.d.ts +17 -0
- package/dist/metadata/bulk/bulk-meta-diff-view.d.ts.map +1 -0
- package/dist/metadata/bulk/bulk-meta-op-bar.d.ts +38 -0
- package/dist/metadata/bulk/bulk-meta-op-bar.d.ts.map +1 -0
- package/dist/metadata/bulk/bulk-meta-row.d.ts +35 -0
- package/dist/metadata/bulk/bulk-meta-row.d.ts.map +1 -0
- package/dist/metadata/bulk/bulk-meta-sidebar.d.ts +20 -0
- package/dist/metadata/bulk/bulk-meta-sidebar.d.ts.map +1 -0
- package/dist/metadata/bulk/bulk-meta-table.d.ts +20 -0
- package/dist/metadata/bulk/bulk-meta-table.d.ts.map +1 -0
- package/dist/metadata/bulk/bulk-metadata-modal.d.ts +46 -0
- package/dist/metadata/bulk/bulk-metadata-modal.d.ts.map +1 -0
- package/dist/metadata/bulk/bulk-metadata.styles.d.ts +7 -0
- package/dist/metadata/bulk/bulk-metadata.styles.d.ts.map +1 -0
- package/dist/metadata/bulk/bulk-operations.d.ts +14 -0
- package/dist/metadata/bulk/bulk-operations.d.ts.map +1 -0
- package/dist/metadata/bulk/diff-utils.d.ts +19 -0
- package/dist/metadata/bulk/diff-utils.d.ts.map +1 -0
- package/dist/metadata/bulk/index.d.ts +3 -0
- package/dist/metadata/bulk/index.d.ts.map +1 -0
- package/dist/metadata/field-type-icons.d.ts +4 -0
- package/dist/metadata/field-type-icons.d.ts.map +1 -0
- package/dist/metadata/fields/boolean-field.d.ts +17 -0
- package/dist/metadata/fields/boolean-field.d.ts.map +1 -0
- package/dist/metadata/fields/date-field.d.ts +10 -0
- package/dist/metadata/fields/date-field.d.ts.map +1 -0
- package/dist/metadata/fields/field-base.d.ts +14 -0
- package/dist/metadata/fields/field-base.d.ts.map +1 -0
- package/dist/metadata/fields/geo-point-field.d.ts +10 -0
- package/dist/metadata/fields/geo-point-field.d.ts.map +1 -0
- package/dist/metadata/fields/multi-select-field.d.ts +23 -0
- package/dist/metadata/fields/multi-select-field.d.ts.map +1 -0
- package/dist/metadata/fields/number-field.d.ts +10 -0
- package/dist/metadata/fields/number-field.d.ts.map +1 -0
- package/dist/metadata/fields/select-field.d.ts +21 -0
- package/dist/metadata/fields/select-field.d.ts.map +1 -0
- package/dist/metadata/fields/tags-field.d.ts +29 -0
- package/dist/metadata/fields/tags-field.d.ts.map +1 -0
- package/dist/metadata/fields/text-field.d.ts +9 -0
- package/dist/metadata/fields/text-field.d.ts.map +1 -0
- package/dist/metadata/fields/textarea-field.d.ts +11 -0
- package/dist/metadata/fields/textarea-field.d.ts.map +1 -0
- package/dist/metadata/index.d.ts +9 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/metadata-field-edit.d.ts +16 -0
- package/dist/metadata/metadata-field-edit.d.ts.map +1 -0
- package/dist/metadata/metadata-field-view.d.ts +10 -0
- package/dist/metadata/metadata-field-view.d.ts.map +1 -0
- package/dist/metadata/metadata-field.d.ts +22 -0
- package/dist/metadata/metadata-field.d.ts.map +1 -0
- package/dist/metadata/metadata-form.d.ts +15 -0
- package/dist/metadata/metadata-form.d.ts.map +1 -0
- package/dist/metadata/metadata-panel.d.ts +37 -0
- package/dist/metadata/metadata-panel.d.ts.map +1 -0
- package/dist/metadata/metadata.styles.d.ts +11 -0
- package/dist/metadata/metadata.styles.d.ts.map +1 -0
- package/dist/metadata/schema/required-fields.d.ts +24 -0
- package/dist/metadata/schema/required-fields.d.ts.map +1 -0
- package/dist/metadata/schema/schema-parser.d.ts +3 -0
- package/dist/metadata/schema/schema-parser.d.ts.map +1 -0
- package/dist/metadata/schema/schema-service.d.ts +5 -0
- package/dist/metadata/schema/schema-service.d.ts.map +1 -0
- package/dist/metadata/schema/schema.types.d.ts +112 -0
- package/dist/metadata/schema/schema.types.d.ts.map +1 -0
- package/dist/metadata/schema/validation.d.ts +4 -0
- package/dist/metadata/schema/validation.d.ts.map +1 -0
- package/dist/metadata/schema/value-transforms.d.ts +5 -0
- package/dist/metadata/schema/value-transforms.d.ts.map +1 -0
- package/dist/metadata/tags/tag-utils.d.ts +6 -0
- package/dist/metadata/tags/tag-utils.d.ts.map +1 -0
- package/dist/metadata/tags/tags-autocomplete.d.ts +7 -0
- package/dist/metadata/tags/tags-autocomplete.d.ts.map +1 -0
- package/dist/{provider-browser-B85iISh9.cjs → provider-browser-D9DOIUnq.cjs} +1 -1
- package/dist/{provider-browser-DcYDZQos.js → provider-browser-qRo0t4Wt.js} +1 -1
- package/dist/{search-provider-browser-Cn0v6Gcq.js → search-provider-browser-DarbREgH.js} +1 -1
- package/dist/{search-provider-browser-DqKnNu87.cjs → search-provider-browser-xP28_tO-.cjs} +1 -1
- package/dist/sfx-uploader-BqMTQWrE.cjs +4913 -0
- package/dist/{sfx-uploader-C3Z9k-Q8.js → sfx-uploader-D9z-E7SI.js} +4248 -1254
- package/dist/sfx-uploader.d.ts +53 -6
- package/dist/sfx-uploader.d.ts.map +1 -1
- package/dist/store/store.types.d.ts +3 -1
- package/dist/store/store.types.d.ts.map +1 -1
- package/dist/test-utils.d.ts.map +1 -1
- package/dist/utils/portal-target.d.ts +4 -2
- package/dist/utils/portal-target.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/sfx-uploader-C_E3gvgv.cjs +0 -4647
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { MetadataSchema, MetadataConfig } from './schema/schema.types';
|
|
3
|
+
export declare class SfxMetadataForm extends LitElement {
|
|
4
|
+
static styles: import('lit').CSSResult;
|
|
5
|
+
schema: MetadataSchema | null;
|
|
6
|
+
meta: Record<string, unknown>;
|
|
7
|
+
config: MetadataConfig | null;
|
|
8
|
+
autocomplete: unknown;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
private _collapsed;
|
|
11
|
+
private _toggleGroup;
|
|
12
|
+
private _renderGroup;
|
|
13
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=metadata-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-form.d.ts","sourceRoot":"","sources":["../../src/metadata/metadata-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,uBAAuB,CAAC;AAE3F,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,MAAM,0BAuDX;IAE8B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAQ;IACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACnC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAQ;IACrC,YAAY,EAAE,OAAO,CAAC;IACzB,QAAQ,UAAS;IAErC,OAAO,CAAC,UAAU,CAA0B;IAErD,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAkCpB,MAAM;CASP"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { MetadataSchema, MetadataConfig } from './schema/schema.types';
|
|
3
|
+
import { UploadFile } from '../store/store.types';
|
|
4
|
+
export declare class SfxMetadataPanel extends LitElement {
|
|
5
|
+
static styles: import('lit').CSSResult[];
|
|
6
|
+
schema: MetadataSchema | null;
|
|
7
|
+
file: UploadFile | null;
|
|
8
|
+
files: UploadFile[];
|
|
9
|
+
bulkMode: boolean;
|
|
10
|
+
config: MetadataConfig | null;
|
|
11
|
+
autocomplete: unknown;
|
|
12
|
+
/** Local copy of the current file's meta (single-file mode). */
|
|
13
|
+
private _localMeta;
|
|
14
|
+
/** Accumulated meta for bulk mode. */
|
|
15
|
+
private _bulkMeta;
|
|
16
|
+
willUpdate(changed: Map<string, unknown>): void;
|
|
17
|
+
private get _modifiableFiles();
|
|
18
|
+
private get _currentIndex();
|
|
19
|
+
private get _hasPrev();
|
|
20
|
+
private get _hasNext();
|
|
21
|
+
private get _requiredFields();
|
|
22
|
+
private get _filledCount();
|
|
23
|
+
private get _showProgress();
|
|
24
|
+
private get _activeMeta();
|
|
25
|
+
private _dispatch;
|
|
26
|
+
private _onFieldBlur;
|
|
27
|
+
private _onClose;
|
|
28
|
+
private _onDone;
|
|
29
|
+
private _onApplyAll;
|
|
30
|
+
private _onPrev;
|
|
31
|
+
private _onNext;
|
|
32
|
+
private _renderHeader;
|
|
33
|
+
private _renderProgress;
|
|
34
|
+
private _renderFooter;
|
|
35
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=metadata-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-panel.d.ts","sourceRoot":"","sources":["../../src/metadata/metadata-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAoBvD,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,4BAAyB;IAEN,MAAM,EAAE,cAAc,GAAG,IAAI,CAAQ;IACrC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAQ;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAM;IAC5B,QAAQ,UAAS;IACd,MAAM,EAAE,cAAc,GAAG,IAAI,CAAQ;IACrC,YAAY,EAAE,OAAO,CAAQ;IAE7D,gEAAgE;IACvD,OAAO,CAAC,UAAU,CAA+B;IAE1D,sCAAsC;IAC7B,OAAO,CAAC,SAAS,CAA+B;IAMzD,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAWxC,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,KAAK,aAAa,GAGxB;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,QAAQ,GAGnB;IAED,OAAO,KAAK,eAAe,GAM1B;IAED,OAAO,KAAK,YAAY,GAGvB;IAED,OAAO,KAAK,aAAa,GAMxB;IAED,OAAO,KAAK,WAAW,GAEtB;IAMD,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,aAAa;IAqCrB,MAAM;CAkBP"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Shared input styles for metadata field components. */
|
|
2
|
+
export declare const metadataInputStyles: import('lit').CSSResult;
|
|
3
|
+
/** Shared dropdown styles for select/multi-select/boolean/tags fields. */
|
|
4
|
+
export declare const metadataDropdownStyles: import('lit').CSSResult;
|
|
5
|
+
/** Shared chip/pill styles for multi-select and tags fields. */
|
|
6
|
+
export declare const metadataChipStyles: import('lit').CSSResult;
|
|
7
|
+
/** Panel layout styles (header, content, footer). */
|
|
8
|
+
export declare const metadataPanelStyles: import('lit').CSSResult;
|
|
9
|
+
/** Field row styles — two-column layout: label left, value/input right. */
|
|
10
|
+
export declare const metadataFieldStyles: import('lit').CSSResult;
|
|
11
|
+
//# sourceMappingURL=metadata.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.styles.d.ts","sourceRoot":"","sources":["../../src/metadata/metadata.styles.ts"],"names":[],"mappings":"AAEA,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,yBAuB/B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,yBA0ElC,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,kBAAkB,yBAuB9B,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,yBAsJ/B,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,yBAoD/B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { UploadFile } from '../../store/store.types';
|
|
2
|
+
import { MetadataConfig, MetadataSchema } from './schema.types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns true if the value counts as a non-empty metadata value.
|
|
5
|
+
* Inverse of isEmpty().
|
|
6
|
+
*/
|
|
7
|
+
export declare function isAssetHasMetadataValue(value: unknown): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* For each required field, find files (in modifiable statuses) that are
|
|
10
|
+
* missing a value for that field.
|
|
11
|
+
*
|
|
12
|
+
* Returns a map of `{ [fieldKey]: UploadFile[] }` — only entries with
|
|
13
|
+
* at least one file are included.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getFilesWithMissingRequired(files: Map<string, UploadFile>, schema: MetadataSchema, config?: MetadataConfig): Record<string, UploadFile[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Deep-merge incoming metadata into existing metadata.
|
|
18
|
+
*
|
|
19
|
+
* - Skips null / undefined / empty-string incoming values
|
|
20
|
+
* - Deduplicates arrays (for tags / multi-select)
|
|
21
|
+
* - Shallow-merges everything else
|
|
22
|
+
*/
|
|
23
|
+
export declare function deepMergeMeta(existing: Record<string, unknown>, incoming: Record<string, unknown>): Record<string, unknown>;
|
|
24
|
+
//# sourceMappingURL=required-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-fields.d.ts","sourceRoot":"","sources":["../../../src/metadata/schema/required-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,cAAc,GACtB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CA0B9B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-parser.d.ts","sourceRoot":"","sources":["../../../src/metadata/schema/schema-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACd,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CA8ChB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AuthHeaders } from '../../auth/auth.types';
|
|
2
|
+
import { MetadataConfig, MetadataSchema } from './schema.types';
|
|
3
|
+
export declare function fetchMetadataSchema(apiBase: string, headers: AuthHeaders, projectUuid: string, config?: MetadataConfig): Promise<MetadataSchema>;
|
|
4
|
+
export declare function clearSchemaCache(projectUuid?: string): void;
|
|
5
|
+
//# sourceMappingURL=schema-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-service.d.ts","sourceRoot":"","sources":["../../../src/metadata/schema/schema-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AASrE,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAqCD,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAS3D"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/** Raw metadata shape as returned by API (Hub or airbox/sharebox). */
|
|
2
|
+
export interface RawMetadata {
|
|
3
|
+
model?: MetadataModel[];
|
|
4
|
+
store?: {
|
|
5
|
+
force_filling_metadata_on_upload?: boolean;
|
|
6
|
+
regional_variants_groups?: RegionalVariantsGroup[];
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
};
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
/** Raw from API: project.data.metadata.model[] */
|
|
12
|
+
export interface MetadataModel {
|
|
13
|
+
applies_to: 'FILES' | 'DIRECTORIES' | 'PRODUCTS';
|
|
14
|
+
groups: MetadataGroup[];
|
|
15
|
+
}
|
|
16
|
+
export interface MetadataGroup {
|
|
17
|
+
uuid: string;
|
|
18
|
+
name: string;
|
|
19
|
+
isRoot: boolean;
|
|
20
|
+
ckey?: string;
|
|
21
|
+
fields: MetadataField[];
|
|
22
|
+
}
|
|
23
|
+
export interface MetadataField {
|
|
24
|
+
key: string;
|
|
25
|
+
ckey: string;
|
|
26
|
+
uuid: string;
|
|
27
|
+
title: string;
|
|
28
|
+
type: MetadataFieldType;
|
|
29
|
+
placeholder?: string;
|
|
30
|
+
hint?: string;
|
|
31
|
+
required: 0 | 1;
|
|
32
|
+
possible_values: PossibleValue[];
|
|
33
|
+
regional_variants_group_uuid: string | null;
|
|
34
|
+
validation?: string;
|
|
35
|
+
permissions: MetadataFieldPermission[];
|
|
36
|
+
model?: Record<string, unknown>;
|
|
37
|
+
mapping?: string;
|
|
38
|
+
icon?: string;
|
|
39
|
+
hide?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export type MetadataFieldType = 'text' | 'textarea' | 'select-one' | 'multi-select' | 'boolean' | 'date' | 'numeric' | 'decimal2' | 'geopoint' | 'integer-list' | 'tags' | 'attachment-uri';
|
|
42
|
+
export interface PossibleValue {
|
|
43
|
+
api_value: string;
|
|
44
|
+
internal_unique_value: string;
|
|
45
|
+
label: string;
|
|
46
|
+
}
|
|
47
|
+
export interface MetadataFieldPermission {
|
|
48
|
+
[key: string]: unknown;
|
|
49
|
+
}
|
|
50
|
+
/** Parsed and cached for internal use */
|
|
51
|
+
export interface MetadataSchema {
|
|
52
|
+
groups: MetadataGroup[];
|
|
53
|
+
fields: MetadataField[];
|
|
54
|
+
fieldsByKey: Map<string, MetadataField>;
|
|
55
|
+
forceFillingOnUpload: boolean;
|
|
56
|
+
regionalVariantsGroups: RegionalVariantsGroup[];
|
|
57
|
+
language: string;
|
|
58
|
+
}
|
|
59
|
+
export interface RegionalVariantsGroup {
|
|
60
|
+
uuid: string;
|
|
61
|
+
label: string;
|
|
62
|
+
type: 'LANGUAGES' | 'CURRENCIES' | 'CUSTOM';
|
|
63
|
+
icon?: string;
|
|
64
|
+
isRoot: boolean;
|
|
65
|
+
variants: RegionalVariant[];
|
|
66
|
+
}
|
|
67
|
+
export interface RegionalVariant {
|
|
68
|
+
internal_unique_value: string;
|
|
69
|
+
api_value: string;
|
|
70
|
+
label: string;
|
|
71
|
+
}
|
|
72
|
+
export interface TagOption {
|
|
73
|
+
sid?: string;
|
|
74
|
+
value: string;
|
|
75
|
+
label: string;
|
|
76
|
+
}
|
|
77
|
+
export interface GeoPoint {
|
|
78
|
+
latitude: string;
|
|
79
|
+
longitude: string;
|
|
80
|
+
}
|
|
81
|
+
/** Dropdown option used by select/multi-select field components. */
|
|
82
|
+
export interface FieldOption {
|
|
83
|
+
id: string;
|
|
84
|
+
label: string;
|
|
85
|
+
value: string;
|
|
86
|
+
}
|
|
87
|
+
export interface MetadataConfig {
|
|
88
|
+
projectUuid: string;
|
|
89
|
+
/**
|
|
90
|
+
* Pre-fetched raw metadata object (e.g. from the airbox/sharebox API response).
|
|
91
|
+
* When provided, the Hub API call is skipped entirely.
|
|
92
|
+
*/
|
|
93
|
+
rawMetadata?: RawMetadata;
|
|
94
|
+
/**
|
|
95
|
+
* Hub API base URL for fetching project metadata schema.
|
|
96
|
+
* Default: 'https://hub.scaleflex.com/api'
|
|
97
|
+
*/
|
|
98
|
+
hubApiBase?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Auth headers for the Hub API (project endpoint).
|
|
101
|
+
* The Hub uses session-based auth, not the SASS key.
|
|
102
|
+
* Required: x-session-token, x-company-token, x-project-token.
|
|
103
|
+
*/
|
|
104
|
+
hubHeaders?: Record<string, string>;
|
|
105
|
+
fields?: 'all' | string[];
|
|
106
|
+
requiredFields?: string[];
|
|
107
|
+
enforceRequiredBeforeUpload?: boolean | 'auto';
|
|
108
|
+
showTags?: boolean;
|
|
109
|
+
language?: string;
|
|
110
|
+
defaults?: Record<string, unknown>;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=schema.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.types.d.ts","sourceRoot":"","sources":["../../../src/metadata/schema/schema.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MetadataConfig, MetadataField } from './schema.types';
|
|
2
|
+
export declare function validateField(field: MetadataField, value: unknown, config?: MetadataConfig): string | null;
|
|
3
|
+
export declare function isEmpty(value: unknown): boolean;
|
|
4
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/metadata/schema/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,cAAc,GACtB,MAAM,GAAG,IAAI,CAoFf;AAMD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAU/C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MetadataField } from './schema.types';
|
|
2
|
+
import { UploadFile } from '../../store/store.types';
|
|
3
|
+
export declare function mapValueFromBackend(field: MetadataField, rawValue: unknown, language?: string): unknown;
|
|
4
|
+
export declare function mapValueToBackend(field: MetadataField, value: unknown, file?: UploadFile, language?: string): unknown;
|
|
5
|
+
//# sourceMappingURL=value-transforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-transforms.d.ts","sourceRoot":"","sources":["../../../src/metadata/schema/value-transforms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM1D,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAyCT;AAMD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,UAAU,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CA4ET"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TagOption } from '../schema/schema.types';
|
|
2
|
+
export declare function isSameTag(a: TagOption, b: TagOption): boolean;
|
|
3
|
+
export declare function normalizeLabel(label: string): string;
|
|
4
|
+
export declare function normalizeValue(label: string): string;
|
|
5
|
+
export declare function createTag(label: string): TagOption;
|
|
6
|
+
//# sourceMappingURL=tag-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-utils.d.ts","sourceRoot":"","sources":["../../../src/metadata/tags/tag-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAE7D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAElD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AuthHeaders } from '../../auth/auth.types';
|
|
2
|
+
import { TagOption } from '../schema/schema.types';
|
|
3
|
+
export declare function createTagsAutocomplete(apiBase: string, headers: AuthHeaders): {
|
|
4
|
+
search(fieldCkey: string, query: string, callback: (results: TagOption[]) => void): void;
|
|
5
|
+
cancel(): void;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=tags-autocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags-autocomplete.d.ts","sourceRoot":"","sources":["../../../src/metadata/tags/tags-autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;sBAMtD,MAAM,SAAS,MAAM,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,GAAG,IAAI;cAiC9E,IAAI;EAMjB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("lit"),l=require("lit/decorators.js"),b=require("lit/directives/unsafe-html.js"),c=require("./sfx-uploader-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("lit"),l=require("lit/decorators.js"),b=require("lit/directives/unsafe-html.js"),c=require("./sfx-uploader-BqMTQWrE.cjs"),x="sfx-uploader-token:";function p(o){try{return localStorage.getItem(`${x}${o}`)}catch{return null}}function v(o,e){try{localStorage.setItem(`${x}${o}`,e)}catch{}}function u(o){try{localStorage.removeItem(`${x}${o}`)}catch{}}function k(o,e){const r=i=>{if(i.origin!==new URL(o).origin)return;const t=typeof i.data=="string"?y(i.data):i.data;t!=null&&t.token&&e(t.token)};return window.addEventListener("message",r),()=>window.removeEventListener("message",r)}function y(o){try{return JSON.parse(o)}catch{return null}}var _=Object.defineProperty,d=(o,e,r,i)=>{for(var t=void 0,n=o.length-1,h;n>=0;n--)(h=o[n])&&(t=h(e,r,t)||t);return t&&_(e,r,t),t};const g=class g extends s.LitElement{constructor(){super(...arguments),this.provider="google-drive",this.companionUrl="",this._authenticated=!1,this._loading=!1,this._items=[],this._selectedIds=new Set,this._breadcrumbs=[],this._nextPagePath=null,this._error=null,this._loadingMore=!1,this._username=null,this._cleanupAuthListener=null,this._authWindow=null,this._handleConnect=()=>{var r;const e=c.getAuthUrl(this.companionUrl,this.provider);this._authWindow=window.open(e,"_blank","width=600,height=600"),(r=this._cleanupAuthListener)==null||r.call(this),this._cleanupAuthListener=k(this.companionUrl,i=>{var t,n;(t=this._authWindow)==null||t.close(),this._authWindow=null,(n=this._cleanupAuthListener)==null||n.call(this),this._cleanupAuthListener=null,v(this.provider,i),this._authenticated=!0,this._loadFolder("")})},this._lastClickedIndex=null,this._toggleSelectAll=()=>{const e=this._items.filter(i=>!i.isFolder);e.every(i=>this._selectedIds.has(i.id))?this._selectedIds=new Set:this._selectedIds=new Set(e.map(i=>i.id))},this._onAddSelected=()=>{const e=p(this.provider);if(!e)return;const i=this._items.filter(t=>!t.isFolder&&this._selectedIds.has(t.id)).map(t=>({companionUrl:this.companionUrl,provider:this.provider,token:e,requestPath:t.requestPath,fileId:t.id,name:t.name,mimeType:t.mimeType,size:t.size,thumbnail:t.thumbnail}));this.dispatchEvent(new CustomEvent("connector-files-selected",{detail:{files:i},bubbles:!0,composed:!0}))},this._onClose=()=>{this.dispatchEvent(new CustomEvent("connector-close",{bubbles:!0,composed:!0}))},this._handleLogout=async()=>{const e=p(this.provider);if(e){try{await c.logout(this.companionUrl,this.provider,e)}catch{}u(this.provider)}this._reset()}}connectedCallback(){super.connectedCallback(),this._checkAuth()}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._cleanupAuthListener)==null||e.call(this),this._cleanupAuthListener=null}updated(e){e.has("provider")&&(this._reset(),this._checkAuth())}_reset(){this._authenticated=!1,this._loading=!1,this._items=[],this._selectedIds=new Set,this._breadcrumbs=[],this._nextPagePath=null,this._error=null,this._username=null}_checkAuth(){p(this.provider)&&(this._authenticated=!0,this._loadFolder(""))}get _providerDef(){return c.getProviderSources([this.provider])[0]??null}get _providerLabel(){var e;return((e=this._providerDef)==null?void 0:e.label)??this.provider}async _loadFolder(e){const r=p(this.provider);if(!r){this._authenticated=!1;return}this.offsetHeight>0&&(this.style.minHeight=`${this.offsetHeight}px`),this._loading=!0,this._error=null,this._items=[],this._selectedIds=new Set,this._lastClickedIndex=null,this._nextPagePath=null;try{const i=await c.listFiles(this.companionUrl,this.provider,r,e);this._items=i.items,this._nextPagePath=i.nextPagePath,i.username&&(this._username=i.username)}catch(i){i instanceof c.AuthExpiredError?(u(this.provider),this._authenticated=!1):this._error=i instanceof Error?i.message:"Failed to load files"}finally{this._loading=!1}}_onFolderClick(e){this._breadcrumbs=[...this._breadcrumbs,{name:e.name,path:e.requestPath}],this._loadFolder(e.requestPath)}_onBreadcrumbClick(e){if(e<0)this._breadcrumbs=[],this._loadFolder("");else{const r=this._breadcrumbs[e];this._breadcrumbs=this._breadcrumbs.slice(0,e+1),this._loadFolder(r.path)}}async _onLoadMore(){const e=p(this.provider);if(!(!e||!this._nextPagePath)){this._loadingMore=!0;try{const r=await c.listNextPage(this.companionUrl,e,this._nextPagePath);this._items=[...this._items,...r.items],this._nextPagePath=r.nextPagePath}catch(r){r instanceof c.AuthExpiredError&&(u(this.provider),this._authenticated=!1)}finally{this._loadingMore=!1}}}_toggleSelect(e,r){const i=this._items.filter(n=>!n.isFolder),t=i.findIndex(n=>n.id===e.id);if(r!=null&&r.shiftKey&&this._lastClickedIndex!==null&&t!==-1){const n=Math.min(this._lastClickedIndex,t),h=Math.max(this._lastClickedIndex,t),m=new Set(this._selectedIds);for(let f=n;f<=h;f++)m.add(i[f].id);this._selectedIds=m}else{const n=new Set(this._selectedIds);n.has(e.id)?n.delete(e.id):n.add(e.id),this._selectedIds=n}t!==-1&&(this._lastClickedIndex=t)}render(){return s.html`
|
|
2
2
|
${this._renderHeader()}
|
|
3
3
|
${this._authenticated?this._loading?this._renderLoading():this._error?this._renderError():this._renderBrowser():this._renderAuthView()}
|
|
4
4
|
`}_renderHeader(){const e=this._providerDef;return s.html`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LitElement as y, css as w, html as s, nothing as h } from "lit";
|
|
2
2
|
import { property as k, state as d } from "lit/decorators.js";
|
|
3
3
|
import { unsafeHTML as b } from "lit/directives/unsafe-html.js";
|
|
4
|
-
import { q as _, t as $, m as z, u as C, A as v, v as I } from "./sfx-uploader-
|
|
4
|
+
import { q as _, t as $, m as z, u as C, A as v, v as I } from "./sfx-uploader-D9z-E7SI.js";
|
|
5
5
|
const x = "sfx-uploader-token:";
|
|
6
6
|
function p(n) {
|
|
7
7
|
try {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LitElement as x, css as g, html as s, nothing as d } from "lit";
|
|
2
2
|
import { property as f, state as n } from "lit/decorators.js";
|
|
3
|
-
import { m as b, s as u } from "./sfx-uploader-
|
|
3
|
+
import { m as b, s as u } from "./sfx-uploader-D9z-E7SI.js";
|
|
4
4
|
var m = Object.defineProperty, a = (c, r, e, t) => {
|
|
5
5
|
for (var i = void 0, l = c.length - 1, h; l >= 0; l--)
|
|
6
6
|
(h = c[l]) && (i = h(r, e, i) || i);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("lit"),a=require("lit/decorators.js"),l=require("./sfx-uploader-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("lit"),a=require("lit/decorators.js"),l=require("./sfx-uploader-BqMTQWrE.cjs");var u=Object.defineProperty,n=(c,r,e,s)=>{for(var i=void 0,d=c.length-1,h;d>=0;d--)(h=c[d])&&(i=h(r,e,i)||i);return i&&u(r,e,i),i};const p=class p extends t.LitElement{constructor(){super(...arguments),this.provider="unsplash",this.companionUrl="",this._loading=!1,this._loadingMore=!1,this._items=[],this._selectedIds=new Set,this._error=null,this._searchQuery="",this._nextPageQuery=null,this._searched=!1,this._onResultsScroll=r=>{if(!this._nextPageQuery||this._loadingMore)return;const e=r.target;e.scrollHeight-e.scrollTop-e.clientHeight<200&&this._onLoadMore()},this._onSearchInput=r=>{this._searchQuery=r.target.value},this._onSearchKeydown=r=>{r.key==="Enter"&&this._doSearch()},this._onAddSelected=()=>{const e=this._items.filter(s=>this._selectedIds.has(s.id)).map(s=>({companionUrl:this.companionUrl,provider:this.provider,token:"",requestPath:s.requestPath,fileId:s.id,name:s.name||s.id,mimeType:s.mimeType,size:s.size,thumbnail:s.thumbnail}));this.dispatchEvent(new CustomEvent("connector-files-selected",{detail:{files:e},bubbles:!0,composed:!0}))},this._onClose=()=>{this.dispatchEvent(new CustomEvent("connector-close",{bubbles:!0,composed:!0}))}}get _providerLabel(){var e;return((e=l.getProviderSources([this.provider])[0])==null?void 0:e.label)??this.provider}async _doSearch(){const r=this._searchQuery.trim();if(r){this._loading=!0,this._error=null,this._items=[],this._selectedIds=new Set,this._nextPageQuery=null,this._searched=!0;try{const e=await l.searchProvider(this.companionUrl,this.provider,r),s=new Set;this._items=e.items.filter(i=>s.has(i.id)?!1:(s.add(i.id),!0)),this._nextPageQuery=e.nextPageQuery}catch(e){this._error=e instanceof Error?e.message:"Search failed"}finally{this._loading=!1}}}async _onLoadMore(){if(!(!this._nextPageQuery||this._loadingMore)){this._loadingMore=!0;try{const r=await l.searchProvider(this.companionUrl,this.provider,this._searchQuery.trim(),this._nextPageQuery),e=new Set(this._items.map(i=>i.id)),s=r.items.filter(i=>!e.has(i.id));this._items=[...this._items,...s],this._nextPageQuery=r.nextPageQuery}catch{}finally{this._loadingMore=!1}}}_toggleSelect(r){const e=new Set(this._selectedIds);e.has(r.id)?e.delete(r.id):e.add(r.id),this._selectedIds=e}render(){return t.html`
|
|
2
2
|
${this._renderHeader()}
|
|
3
3
|
${this._renderSearchBar()}
|
|
4
4
|
${this._loading?this._renderLoading():this._error?this._renderError():this._renderResults()}
|