@uploadcare/file-uploader 1.13.3-alpha.0 → 1.14.0-alpha.11
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/abstract/ActivityBlock.d.ts +5 -5
- package/abstract/ActivityBlock.d.ts.map +1 -1
- package/abstract/ActivityBlock.js +10 -15
- package/abstract/Block.d.ts +9 -9
- package/abstract/Block.d.ts.map +1 -1
- package/abstract/Block.js +15 -0
- package/abstract/CTX.d.ts +6 -6
- package/abstract/CTX.d.ts.map +1 -1
- package/abstract/CTX.js +3 -1
- package/abstract/LocaleManager.d.ts +3 -3
- package/abstract/LocaleManager.d.ts.map +1 -1
- package/abstract/ModalManager.d.ts +124 -0
- package/abstract/ModalManager.d.ts.map +1 -0
- package/abstract/ModalManager.js +227 -0
- package/abstract/SecureUploadsManager.d.ts +2 -2
- package/abstract/SecureUploadsManager.d.ts.map +1 -1
- package/abstract/SolutionBlock.d.ts +2 -2
- package/abstract/SolutionBlock.d.ts.map +1 -1
- package/abstract/TypedCollection.d.ts.map +1 -1
- package/abstract/TypedData.d.ts +1 -1
- package/abstract/TypedData.d.ts.map +1 -1
- package/abstract/UploaderBlock.d.ts +8 -6
- package/abstract/UploaderBlock.d.ts.map +1 -1
- package/abstract/UploaderBlock.js +24 -8
- package/abstract/UploaderPublicApi.d.ts +24 -23
- package/abstract/UploaderPublicApi.d.ts.map +1 -1
- package/abstract/UploaderPublicApi.js +39 -9
- package/abstract/ValidationManager.d.ts +4 -4
- package/abstract/ValidationManager.d.ts.map +1 -1
- package/abstract/a11y.d.ts +2 -2
- package/abstract/a11y.d.ts.map +1 -1
- package/abstract/buildOutputCollectionState.d.ts +1 -1
- package/abstract/buildOutputCollectionState.d.ts.map +1 -1
- package/abstract/defineComponents.d.ts.map +1 -1
- package/abstract/l10nProcessor.d.ts.map +1 -1
- package/abstract/loadFileUploaderFrom.d.ts +1 -1
- package/abstract/loadFileUploaderFrom.d.ts.map +1 -1
- package/abstract/localeRegistry.d.ts.map +1 -1
- package/abstract/sharedConfigKey.d.ts.map +1 -1
- package/abstract/uploadEntrySchema.d.ts +2 -2
- package/abstract/uploadEntrySchema.d.ts.map +1 -1
- package/blocks/CameraSource/CameraSource.d.ts +9 -9
- package/blocks/CameraSource/CameraSource.d.ts.map +1 -1
- package/blocks/CameraSource/CameraSource.js +1 -0
- package/blocks/CameraSource/calcCameraModes.d.ts +1 -1
- package/blocks/CameraSource/constants.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/CropFrame.d.ts +1 -1
- package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts +3 -3
- package/blocks/CloudImageEditor/src/EditorImageFader.d.ts +1 -1
- package/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/EditorSlider.d.ts +1 -1
- package/blocks/CloudImageEditor/src/EditorSlider.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/EditorToolbar.d.ts +1 -1
- package/blocks/CloudImageEditor/src/crop-utils.d.ts +14 -14
- package/blocks/CloudImageEditor/src/crop-utils.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/cropper-constants.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts +1 -1
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts +1 -1
- package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts +3 -3
- package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/state.d.ts +4 -4
- package/blocks/CloudImageEditor/src/svg-sprite.d.ts.map +1 -1
- package/blocks/CloudImageEditor/src/types.d.ts +8 -58
- package/blocks/CloudImageEditor/src/types.d.ts.map +1 -1
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts +1 -1
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts.map +1 -1
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.js +2 -0
- package/blocks/Config/Config.d.ts +3 -12
- package/blocks/Config/Config.d.ts.map +1 -1
- package/blocks/Config/assertions.d.ts +1 -1
- package/blocks/Config/initialConfig.d.ts +1 -1
- package/blocks/Config/initialConfig.d.ts.map +1 -1
- package/blocks/Config/initialConfig.js +4 -0
- package/blocks/Config/normalizeConfigValue.d.ts +2 -1
- package/blocks/Config/normalizeConfigValue.d.ts.map +1 -1
- package/blocks/Config/normalizeConfigValue.js +19 -106
- package/blocks/Config/side-effects.d.ts.map +1 -1
- package/blocks/Config/validatorsType.d.ts +37 -0
- package/blocks/Config/validatorsType.d.ts.map +1 -0
- package/blocks/Config/validatorsType.js +134 -0
- package/blocks/DropArea/DropArea.d.ts +3 -2
- package/blocks/DropArea/DropArea.d.ts.map +1 -1
- package/blocks/DropArea/DropArea.js +21 -2
- package/blocks/DropArea/addDropzone.d.ts.map +1 -1
- package/blocks/DropArea/getDropItems.d.ts +2 -2
- package/blocks/DropArea/getDropItems.d.ts.map +1 -1
- package/blocks/ExternalSource/ExternalSource.d.ts +3 -3
- package/blocks/ExternalSource/ExternalSource.d.ts.map +1 -1
- package/blocks/ExternalSource/ExternalSource.js +2 -1
- package/blocks/ExternalSource/MessageBridge.d.ts +3 -3
- package/blocks/ExternalSource/MessageBridge.d.ts.map +1 -1
- package/blocks/ExternalSource/query-string.d.ts.map +1 -1
- package/blocks/ExternalSource/types.d.ts +64 -64
- package/blocks/ExternalSource/types.d.ts.map +1 -1
- package/blocks/FileItem/FileItem.d.ts +5 -6
- package/blocks/FileItem/FileItem.d.ts.map +1 -1
- package/blocks/FileItem/FileItem.js +40 -42
- package/blocks/FileItem/file-item.css +90 -0
- package/blocks/Img/ImgBase.d.ts +3 -3
- package/blocks/Img/ImgBase.d.ts.map +1 -1
- package/blocks/Img/ImgConfig.d.ts.map +1 -1
- package/blocks/Img/configurations.d.ts.map +1 -1
- package/blocks/Modal/Modal.d.ts +21 -2
- package/blocks/Modal/Modal.d.ts.map +1 -1
- package/blocks/Modal/Modal.js +52 -24
- package/blocks/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/blocks/ProgressBar/ProgressBar.js +1 -0
- package/blocks/ProgressBar/progress-bar.css +1 -0
- package/blocks/Range/Range.d.ts.map +1 -1
- package/blocks/SimpleBtn/SimpleBtn.d.ts +2 -2
- package/blocks/SimpleBtn/SimpleBtn.d.ts.map +1 -1
- package/blocks/SimpleBtn/SimpleBtn.js +1 -1
- package/blocks/SourceBtn/SourceBtn.d.ts +3 -3
- package/blocks/SourceBtn/SourceBtn.d.ts.map +1 -1
- package/blocks/SourceBtn/SourceBtn.js +29 -15
- package/blocks/SourceList/SourceList.d.ts.map +1 -1
- package/blocks/SourceList/SourceList.js +17 -11
- package/blocks/Spinner/Spinner.d.ts.map +1 -1
- package/blocks/StartFrom/StartFrom.js +1 -1
- package/blocks/Thumb/Thumb.d.ts +48 -0
- package/blocks/Thumb/Thumb.d.ts.map +1 -0
- package/blocks/Thumb/Thumb.js +169 -0
- package/blocks/Thumb/thumb.css +4 -0
- package/blocks/UploadCtxProvider/EventEmitter.d.ts +20 -20
- package/blocks/UploadCtxProvider/EventEmitter.d.ts.map +1 -1
- package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts +4 -4
- package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts.map +1 -1
- package/blocks/UploadList/UploadList.d.ts +4 -2
- package/blocks/UploadList/UploadList.d.ts.map +1 -1
- package/blocks/UploadList/UploadList.js +16 -1
- package/blocks/UploadList/upload-list.css +23 -0
- package/blocks/UrlSource/UrlSource.d.ts.map +1 -1
- package/blocks/UrlSource/UrlSource.js +1 -0
- package/blocks/svg-backgrounds/svg-backgrounds.d.ts +3 -3
- package/blocks/svg-backgrounds/svg-backgrounds.d.ts.map +1 -1
- package/blocks/themes/uc-basic/common.css +1 -1
- package/blocks/themes/uc-basic/index.css +1 -0
- package/blocks/themes/uc-basic/svg-sprite.d.ts +1 -1
- package/blocks/themes/uc-basic/svg-sprite.d.ts.map +1 -1
- package/blocks/themes/uc-basic/svg-sprite.js +1 -1
- package/blocks/themes/uc-basic/theme.css +12 -0
- package/blocks/utils/UploadSource.d.ts +6 -1
- package/blocks/utils/UploadSource.d.ts.map +1 -1
- package/blocks/utils/UploadSource.js +7 -1
- package/blocks/utils/debounce.d.ts +3 -1
- package/blocks/utils/debounce.d.ts.map +1 -1
- package/blocks/utils/resizeImage.d.ts +1 -1
- package/blocks/utils/resizeImage.d.ts.map +1 -1
- package/blocks/utils/supportCapture.d.ts +2 -0
- package/blocks/utils/supportCapture.d.ts.map +1 -0
- package/blocks/utils/supportCapture.js +3 -0
- package/blocks/utils/throttle.d.ts +3 -1
- package/blocks/utils/throttle.d.ts.map +1 -1
- package/blocks/utils/userAgent.d.ts +1 -1
- package/blocks/utils/userAgent.d.ts.map +1 -1
- package/env.d.ts +1 -1
- package/env.d.ts.map +1 -1
- package/env.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.ssr.d.ts +88 -15
- package/index.ssr.d.ts.map +1 -1
- package/index.ssr.js +119 -24
- package/locales/file-uploader/ar.d.ts +2 -0
- package/locales/file-uploader/ar.js +2 -0
- package/locales/file-uploader/az.d.ts +2 -0
- package/locales/file-uploader/az.js +2 -0
- package/locales/file-uploader/ca.d.ts +2 -0
- package/locales/file-uploader/ca.js +2 -0
- package/locales/file-uploader/cs.d.ts +2 -0
- package/locales/file-uploader/cs.js +2 -0
- package/locales/file-uploader/da.d.ts +2 -0
- package/locales/file-uploader/da.js +2 -0
- package/locales/file-uploader/de.d.ts +2 -0
- package/locales/file-uploader/de.js +2 -0
- package/locales/file-uploader/el.d.ts +2 -0
- package/locales/file-uploader/el.js +2 -0
- package/locales/file-uploader/en.d.ts +2 -1
- package/locales/file-uploader/en.js +2 -1
- package/locales/file-uploader/es.d.ts +2 -0
- package/locales/file-uploader/es.js +2 -0
- package/locales/file-uploader/et.d.ts +2 -0
- package/locales/file-uploader/et.js +2 -0
- package/locales/file-uploader/fi.d.ts +2 -0
- package/locales/file-uploader/fi.js +2 -0
- package/locales/file-uploader/fr.d.ts +2 -0
- package/locales/file-uploader/fr.js +2 -0
- package/locales/file-uploader/he.d.ts +2 -0
- package/locales/file-uploader/he.js +2 -0
- package/locales/file-uploader/hy.d.ts +2 -0
- package/locales/file-uploader/hy.js +2 -0
- package/locales/file-uploader/is.d.ts +2 -0
- package/locales/file-uploader/is.js +2 -0
- package/locales/file-uploader/it.d.ts +2 -0
- package/locales/file-uploader/it.js +2 -0
- package/locales/file-uploader/ja.d.ts +2 -0
- package/locales/file-uploader/ja.js +2 -0
- package/locales/file-uploader/ka.d.ts +2 -0
- package/locales/file-uploader/ka.js +2 -0
- package/locales/file-uploader/kk.d.ts +2 -0
- package/locales/file-uploader/kk.js +2 -0
- package/locales/file-uploader/ko.d.ts +2 -0
- package/locales/file-uploader/ko.js +2 -0
- package/locales/file-uploader/lv.d.ts +2 -0
- package/locales/file-uploader/lv.js +2 -0
- package/locales/file-uploader/nb.d.ts +2 -0
- package/locales/file-uploader/nb.js +2 -0
- package/locales/file-uploader/nl.d.ts +2 -0
- package/locales/file-uploader/nl.js +2 -0
- package/locales/file-uploader/pl.d.ts +2 -0
- package/locales/file-uploader/pl.js +2 -0
- package/locales/file-uploader/pt.d.ts +2 -0
- package/locales/file-uploader/pt.js +2 -0
- package/locales/file-uploader/ro.d.ts +2 -0
- package/locales/file-uploader/ro.js +2 -0
- package/locales/file-uploader/ru.d.ts +2 -0
- package/locales/file-uploader/ru.js +2 -0
- package/locales/file-uploader/sk.d.ts +2 -0
- package/locales/file-uploader/sk.js +2 -0
- package/locales/file-uploader/sr.d.ts +2 -0
- package/locales/file-uploader/sr.js +2 -0
- package/locales/file-uploader/sv.d.ts +2 -0
- package/locales/file-uploader/sv.js +2 -0
- package/locales/file-uploader/tr.d.ts +2 -0
- package/locales/file-uploader/tr.js +2 -0
- package/locales/file-uploader/uk.d.ts +2 -0
- package/locales/file-uploader/uk.js +2 -0
- package/locales/file-uploader/vi.d.ts +2 -0
- package/locales/file-uploader/vi.js +2 -0
- package/locales/file-uploader/zh-TW.d.ts +2 -0
- package/locales/file-uploader/zh-TW.js +2 -0
- package/locales/file-uploader/zh.d.ts +2 -0
- package/locales/file-uploader/zh.js +2 -0
- package/package.json +4 -2
- package/solutions/file-uploader/inline/FileUploaderInline.d.ts +2 -2
- package/solutions/file-uploader/inline/FileUploaderInline.d.ts.map +1 -1
- package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts +35 -0
- package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts.map +1 -1
- package/solutions/file-uploader/minimal/FileUploaderMinimal.js +122 -9
- package/solutions/file-uploader/minimal/index.css +25 -24
- package/solutions/file-uploader/minimal/index.d.ts +1 -13
- package/solutions/file-uploader/minimal/index.js +1 -13
- package/solutions/file-uploader/regular/FileUploaderRegular.d.ts +3 -5
- package/solutions/file-uploader/regular/FileUploaderRegular.d.ts.map +1 -1
- package/solutions/file-uploader/regular/FileUploaderRegular.js +17 -16
- package/types/exported.d.ts +7 -0
- package/utils/cdn-utils.d.ts +3 -3
- package/utils/cdn-utils.d.ts.map +1 -1
- package/utils/fileTypes.d.ts +1 -1
- package/utils/fileTypes.d.ts.map +1 -1
- package/utils/getPluralForm.d.ts.map +1 -1
- package/utils/isSecureTokenExpired.d.ts +1 -1
- package/utils/memoize.d.ts.map +1 -1
- package/utils/mixinClass.d.ts +3 -1
- package/utils/mixinClass.d.ts.map +1 -1
- package/utils/prettyBytes.d.ts.map +1 -1
- package/utils/template-utils.d.ts +1 -1
- package/utils/template-utils.d.ts.map +1 -1
- package/utils/toKebabCase.d.ts.map +1 -1
- package/utils/transparentPixelSrc.d.ts.map +1 -1
- package/utils/uniqueArray.d.ts.map +1 -1
- package/utils/validators/collection/validateCollectionUploadError.d.ts +1 -1
- package/utils/validators/collection/validateMultiple.d.ts +1 -1
- package/utils/validators/file/validateFileType.d.ts +1 -1
- package/utils/validators/file/validateIsImage.d.ts +1 -1
- package/utils/validators/file/validateMaxSizeLimit.d.ts +1 -1
- package/utils/validators/file/validateUploadError.d.ts +1 -1
- package/utils/waitForAttribute.d.ts +1 -1
- package/utils/waitForAttribute.d.ts.map +1 -1
- package/web/file-uploader.iife.min.js +4 -4
- package/web/file-uploader.min.js +4 -4
- package/web/uc-basic.min.css +1 -1
- package/web/uc-cloud-image-editor.min.css +1 -1
- package/web/uc-cloud-image-editor.min.js +4 -4
- package/web/uc-file-uploader-inline.min.css +1 -1
- package/web/uc-file-uploader-inline.min.js +4 -4
- package/web/uc-file-uploader-minimal.min.css +1 -1
- package/web/uc-file-uploader-minimal.min.js +4 -3
- package/web/uc-file-uploader-regular.min.css +1 -1
- package/web/uc-file-uploader-regular.min.js +4 -4
- package/web/uc-img.min.js +2 -2
- package/blocks/utils/checkDevice.d.ts +0 -9
- package/blocks/utils/checkDevice.d.ts.map +0 -1
- package/blocks/utils/checkDevice.js +0 -34
|
@@ -46,11 +46,11 @@ export class ActivityBlock extends Block {
|
|
|
46
46
|
registerActivity(name: string, options?: {
|
|
47
47
|
onActivate?: (() => void) | undefined;
|
|
48
48
|
onDeactivate?: (() => void) | undefined;
|
|
49
|
-
}
|
|
49
|
+
}): void;
|
|
50
50
|
unregisterActivity(): void;
|
|
51
51
|
get activityKey(): string;
|
|
52
52
|
/** @type {ActivityParamsMap[keyof ActivityParamsMap]} */
|
|
53
|
-
get activityParams():
|
|
53
|
+
get activityParams(): ActivityParamsMap[keyof ActivityParamsMap];
|
|
54
54
|
/** @type {String} */
|
|
55
55
|
get initActivity(): string;
|
|
56
56
|
/** @type {String} */
|
|
@@ -70,10 +70,10 @@ export namespace ActivityBlock {
|
|
|
70
70
|
}>;
|
|
71
71
|
}
|
|
72
72
|
export type ActivityParamsMap = {
|
|
73
|
-
|
|
74
|
-
external: import(
|
|
73
|
+
"cloud-image-edit": import("../blocks/CloudImageEditorActivity/CloudImageEditorActivity.js").ActivityParams;
|
|
74
|
+
external: import("../blocks/ExternalSource/ExternalSource.js").ActivityParams;
|
|
75
75
|
};
|
|
76
|
-
export type RegisteredActivityType = (typeof ActivityBlock)[
|
|
76
|
+
export type RegisteredActivityType = (typeof ActivityBlock)["activities"][keyof (typeof ActivityBlock)["activities"]];
|
|
77
77
|
export type ActivityType = RegisteredActivityType | (string & {}) | null;
|
|
78
78
|
import { Block } from './Block.js';
|
|
79
79
|
//# sourceMappingURL=ActivityBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityBlock.d.ts","sourceRoot":"","sources":["ActivityBlock.js"],"names":[],"mappings":"AASA;;;;;GAKG;AAEH;
|
|
1
|
+
{"version":3,"file":"ActivityBlock.d.ts","sourceRoot":"","sources":["ActivityBlock.js"],"names":[],"mappings":"AASA;;;;;GAKG;AAEH;IA+EE;;;;;;OAMG;IACH,kCAAsC;IArFtC,iBAAiB;IACjB,kCAAuB;IAEvB;;;;;;MAA+B;IAE/B;;MAAqE;IAErE,eAAe;IACf,oBAKC;IAED,eAAe;IACf,kBAaC;IA8BD,eAAe;IACf,sBAWC;IAED,eAAe;IACf,8BAEC;IAWD,4CAEC;IAED,iCAEC;IAED;;;;;;;OAOG;IACH,yCAHG;QAA6B,UAAU,UAAzB,IAAI;QACW,YAAY,UAA3B,IAAI;KAAwB,QAQ5C;IAED,2BAKC;IAoBD,0BAEC;IAED,yDAAyD;IACzD,sBADW,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,CAGpD;IAED,qBAAqB;IACrB,2BAEC;IAED,qBAAqB;IACrB,2BAEC;IAED,oBA4BC;IA7KC,8CAAyB;CA8K5B;;;;;;;;;;;;gCA/LY;IACZ,kBAAsB,EAAE,OAAO,gEAAgE,EAAE,cAAc,CAAC;IAC5G,QAAQ,EAAE,OAAO,4CAA4C,EAAE,cAAc,CAAC;CAC/E;qCAwMU,CAAC,OAAO,aAAa,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,EAAE,YAAY,CAAC,CAAC;2BAChF,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI;sBAnNrC,YAAY"}
|
|
@@ -49,11 +49,6 @@ export class ActivityBlock extends Block {
|
|
|
49
49
|
/** @protected */
|
|
50
50
|
initCallback() {
|
|
51
51
|
super.initCallback();
|
|
52
|
-
if (this.hasAttribute('current-activity')) {
|
|
53
|
-
this.sub('*currentActivity', (/** @type {String} */ val) => {
|
|
54
|
-
this.setAttribute('current-activity', val);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
52
|
|
|
58
53
|
// TODO: rename activityType to activityId
|
|
59
54
|
if (this.activityType) {
|
|
@@ -76,14 +71,6 @@ export class ActivityBlock extends Block {
|
|
|
76
71
|
this.$['*history'] = [];
|
|
77
72
|
}
|
|
78
73
|
});
|
|
79
|
-
|
|
80
|
-
if (this.has('*modalActive')) {
|
|
81
|
-
this.sub('*modalActive', (modalActive) => {
|
|
82
|
-
if (!modalActive && this.activityType === this.$['*currentActivity']) {
|
|
83
|
-
this.$['*currentActivity'] = null;
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
74
|
}
|
|
88
75
|
}
|
|
89
76
|
|
|
@@ -160,7 +147,7 @@ export class ActivityBlock extends Block {
|
|
|
160
147
|
|
|
161
148
|
if (!hasCurrentActivityInCtx) {
|
|
162
149
|
this.$['*currentActivity'] = null;
|
|
163
|
-
this.
|
|
150
|
+
this.modalManager.closeAll();
|
|
164
151
|
}
|
|
165
152
|
}
|
|
166
153
|
|
|
@@ -186,21 +173,29 @@ export class ActivityBlock extends Block {
|
|
|
186
173
|
historyBack() {
|
|
187
174
|
/** @type {String[]} */
|
|
188
175
|
let history = this.$['*history'];
|
|
176
|
+
|
|
189
177
|
if (history) {
|
|
190
178
|
let nextActivity = history.pop();
|
|
179
|
+
|
|
191
180
|
while (nextActivity === this.activityType) {
|
|
192
181
|
nextActivity = history.pop();
|
|
193
182
|
}
|
|
183
|
+
|
|
194
184
|
let couldOpenActivity = !!nextActivity;
|
|
195
185
|
if (nextActivity) {
|
|
196
186
|
const nextActivityBlock = [...this.blocksRegistry].find((block) => block.activityType === nextActivity);
|
|
197
187
|
couldOpenActivity = /** @type {ActivityBlock} */ (nextActivityBlock)?.couldOpenActivity ?? false;
|
|
198
188
|
}
|
|
189
|
+
|
|
199
190
|
nextActivity = couldOpenActivity ? nextActivity : undefined;
|
|
191
|
+
|
|
192
|
+
if (nextActivity) this.modalManager.open(nextActivity);
|
|
193
|
+
|
|
200
194
|
this.$['*currentActivity'] = nextActivity;
|
|
201
195
|
this.$['*history'] = history;
|
|
196
|
+
|
|
202
197
|
if (!nextActivity) {
|
|
203
|
-
this.
|
|
198
|
+
this.modalManager.closeAll();
|
|
204
199
|
}
|
|
205
200
|
}
|
|
206
201
|
}
|
package/abstract/Block.d.ts
CHANGED
|
@@ -4,12 +4,12 @@ export class Block extends BaseComponent<any> {
|
|
|
4
4
|
/** @type {string[]} */
|
|
5
5
|
static styleAttrs: string[];
|
|
6
6
|
/** @param {String} [name] */
|
|
7
|
-
static reg(name?: string
|
|
7
|
+
static reg(name?: string): void;
|
|
8
8
|
constructor();
|
|
9
9
|
/** @protected */
|
|
10
10
|
protected requireCtxName: boolean;
|
|
11
11
|
/** @type {import('./ActivityBlock.js').ActivityType} */
|
|
12
|
-
activityType: import(
|
|
12
|
+
activityType: import("./ActivityBlock.js").ActivityType;
|
|
13
13
|
init$: {};
|
|
14
14
|
/**
|
|
15
15
|
* @param {String} str
|
|
@@ -41,13 +41,7 @@ export class Block extends BaseComponent<any> {
|
|
|
41
41
|
* @param {Parameters<import('../blocks/UploadCtxProvider/EventEmitter.js').EventEmitter['emit']>[1]} [payload]
|
|
42
42
|
* @param {Parameters<import('../blocks/UploadCtxProvider/EventEmitter.js').EventEmitter['emit']>[2]} [options]
|
|
43
43
|
*/
|
|
44
|
-
emit(type:
|
|
45
|
-
debounce?: number | boolean | undefined;
|
|
46
|
-
} | undefined)?][0], payload?: [type: "change" | "file-added" | "file-removed" | "file-upload-start" | "file-upload-progress" | "file-upload-success" | "file-upload-failed" | "file-url-changed" | "modal-open" | "modal-close" | "done-click" | "upload-click" | "activity-change" | "common-upload-start" | "common-upload-progress" | "common-upload-success" | "common-upload-failed" | "group-created", payload?: unknown, ({
|
|
47
|
-
debounce?: number | boolean | undefined;
|
|
48
|
-
} | undefined)?][1], options?: [type: "change" | "file-added" | "file-removed" | "file-upload-start" | "file-upload-progress" | "file-upload-success" | "file-upload-failed" | "file-url-changed" | "modal-open" | "modal-close" | "done-click" | "upload-click" | "activity-change" | "common-upload-start" | "common-upload-progress" | "common-upload-success" | "common-upload-failed" | "group-created", payload?: unknown, ({
|
|
49
|
-
debounce?: number | boolean | undefined;
|
|
50
|
-
} | undefined)?][2]): void;
|
|
44
|
+
emit(type: Parameters<import("../blocks/UploadCtxProvider/EventEmitter.js").EventEmitter["emit"]>[0], payload?: Parameters<import("../blocks/UploadCtxProvider/EventEmitter.js").EventEmitter["emit"]>[1], options?: Parameters<import("../blocks/UploadCtxProvider/EventEmitter.js").EventEmitter["emit"]>[2]): void;
|
|
51
45
|
/**
|
|
52
46
|
* @param {(block: Block) => boolean} callback
|
|
53
47
|
* @returns {Boolean}
|
|
@@ -58,6 +52,11 @@ export class Block extends BaseComponent<any> {
|
|
|
58
52
|
* @param {any} newVal
|
|
59
53
|
*/
|
|
60
54
|
setOrAddState(prop: string, newVal: any): void;
|
|
55
|
+
/**
|
|
56
|
+
* @returns {ModalManager}
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
public get modalManager(): ModalManager;
|
|
61
60
|
/**
|
|
62
61
|
* @private
|
|
63
62
|
* @returns {LocaleManager | null}
|
|
@@ -97,5 +96,6 @@ export class Block extends BaseComponent<any> {
|
|
|
97
96
|
}
|
|
98
97
|
export { BaseComponent };
|
|
99
98
|
import { BaseComponent } from '@symbiotejs/symbiote';
|
|
99
|
+
import { ModalManager } from './ModalManager.js';
|
|
100
100
|
import { A11y } from './a11y.js';
|
|
101
101
|
//# sourceMappingURL=Block.d.ts.map
|
package/abstract/Block.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["Block.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["Block.js"],"names":[],"mappings":"AAoBA;IACE,4BAA4B;IAC5B,2BADW,MAAM,GAAG,IAAI,CACS;IAEjC,uBAAuB;IACvB,mBADW,MAAM,EAAE,CACI;IAoUvB,6BAA6B;IAC7B,gCAQC;IAzRD,cAMC;IAxDD,iBAAiB;IACjB,kCAAuB;IAEvB,wDAAwD;IACxD,cADW,OAAO,oBAAoB,EAAE,YAAY,CAChC;IAEpB,UAAmB;IAEnB;;;;OAIG;IACH,8BAHW;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,UAiB5C;IAED;;;;;OAKG;IACH,kBAIC;IAED;;;;OAIG;IACH,wBAJW,MAAM,YACN,MAAM,IAAI,QAKpB;IAIC,uDAAuD;IACvD,mBADW,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAC,CACjB;IAKpC;;;;OAIG;IACH,WAJW,UAAU,CAAC,OAAO,6CAA6C,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YACzF,UAAU,CAAC,OAAO,6CAA6C,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YACzF,UAAU,CAAC,OAAO,6CAA6C,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QASnG;IAED;;;OAGG;IACH,wBAHW,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,WAUnC;IAED;;;OAGG;IACH,oCAFW,GAAG,QASb;IAsED;;;OAGG;IACH,2BAHa,YAAY,CAKxB;IAED;;;OAGG;IACH,4BAEC;IAED;;;OAGG;IACH,sBAHa,IAAI,GAAG,IAAI,CAKvB;IAED,yBAAyB;IACzB,sBADW,GAAG,CAAC,KAAK,CAAC,CAGpB;IAwBD;;;;OAIG;IACH,qCAMC;IAED;;;;OAIG;IACH,iCAHa,OAAO,QAAQ,CA6B3B;IAED,iDAAiD;IACjD,WADc,OAAO,UAAU,EAAE,UAAU,CA+B1C;IA3BG,eAAe;IACf,mBAuBE;IAKN;;;;OAIG;IACH,eAJmD,CAAC,SAAvC,MAAO,OAAO,UAAU,EAAE,UAAW,OACvC,CAAC,YACD,CAAC,KAAK,EAAE,OAAO,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,QAQ3D;IAED,8BAA8B;IAC9B,oBADY,OAAO,EAAE,QAWpB;CAYF;;8BAtWmC,sBAAsB;6BAc7B,mBAAmB;qBAD3B,WAAW"}
|
package/abstract/Block.js
CHANGED
|
@@ -13,6 +13,7 @@ import { LocaleManager, localeStateKey } from './LocaleManager.js';
|
|
|
13
13
|
import { l10nProcessor } from './l10nProcessor.js';
|
|
14
14
|
import { sharedConfigKey } from './sharedConfigKey.js';
|
|
15
15
|
import { A11y } from './a11y.js';
|
|
16
|
+
import { ModalManager } from './ModalManager.js';
|
|
16
17
|
|
|
17
18
|
const TAG_PREFIX = 'uc-';
|
|
18
19
|
|
|
@@ -180,12 +181,24 @@ export class Block extends BaseComponent {
|
|
|
180
181
|
this.add('*a11y', new A11y());
|
|
181
182
|
}
|
|
182
183
|
|
|
184
|
+
if (!this.has('*modalManager')) {
|
|
185
|
+
this.add('*modalManager', new ModalManager(this));
|
|
186
|
+
}
|
|
187
|
+
|
|
183
188
|
this.sub(localeStateKey('locale-id'), (localeId) => {
|
|
184
189
|
const direction = getLocaleDirection(localeId);
|
|
185
190
|
this.style.direction = direction === 'ltr' ? '' : direction;
|
|
186
191
|
});
|
|
187
192
|
}
|
|
188
193
|
|
|
194
|
+
/**
|
|
195
|
+
* @returns {ModalManager}
|
|
196
|
+
* @public
|
|
197
|
+
*/
|
|
198
|
+
get modalManager() {
|
|
199
|
+
return this.has('*modalManager') && this.$['*modalManager'];
|
|
200
|
+
}
|
|
201
|
+
|
|
189
202
|
/**
|
|
190
203
|
* @private
|
|
191
204
|
* @returns {LocaleManager | null}
|
|
@@ -238,6 +251,8 @@ export class Block extends BaseComponent {
|
|
|
238
251
|
Data.deleteCtx(this.ctxName);
|
|
239
252
|
|
|
240
253
|
this.localeManager?.destroy();
|
|
254
|
+
|
|
255
|
+
this.modalManager && this.modalManager?.destroy();
|
|
241
256
|
}
|
|
242
257
|
|
|
243
258
|
/**
|
package/abstract/CTX.d.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
export function blockCtx(): {};
|
|
2
|
-
export function activityBlockCtx(fnCtx: import(
|
|
2
|
+
export function activityBlockCtx(fnCtx: import("./Block").Block): {
|
|
3
3
|
'*currentActivity': null;
|
|
4
4
|
'*currentActivityParams': {};
|
|
5
5
|
'*history': never[];
|
|
6
6
|
'*historyBack': null;
|
|
7
7
|
'*closeModal': () => void;
|
|
8
8
|
};
|
|
9
|
-
export function uploaderBlockCtx(fnCtx: import(
|
|
9
|
+
export function uploaderBlockCtx(fnCtx: import("./Block").Block): {
|
|
10
10
|
'*commonProgress': number;
|
|
11
11
|
'*uploadList': never[];
|
|
12
12
|
'*uploadQueue': Queue;
|
|
13
13
|
/** @type {ReturnType<import('../types').OutputErrorCollection>[]} */
|
|
14
|
-
'*collectionErrors': ReturnType<import(
|
|
14
|
+
'*collectionErrors': ReturnType<import("../types").OutputErrorCollection>[];
|
|
15
15
|
/** @type {import('../types').OutputCollectionState | null} */
|
|
16
|
-
'*collectionState': import(
|
|
16
|
+
'*collectionState': import("../types").OutputCollectionState | null;
|
|
17
17
|
/** @type {import('@uploadcare/upload-client').UploadcareGroup | null} */
|
|
18
|
-
'*groupInfo': import(
|
|
18
|
+
'*groupInfo': import("@uploadcare/upload-client").UploadcareGroup | null;
|
|
19
19
|
/** @type {Set<string>} */
|
|
20
20
|
'*uploadTrigger': Set<string>;
|
|
21
21
|
/** @type {import('./SecureUploadsManager.js').SecureUploadsManager | null} */
|
|
22
|
-
'*secureUploadsManager': import(
|
|
22
|
+
'*secureUploadsManager': import("./SecureUploadsManager.js").SecureUploadsManager | null;
|
|
23
23
|
'*currentActivity': null;
|
|
24
24
|
'*currentActivityParams': {};
|
|
25
25
|
'*history': never[];
|
package/abstract/CTX.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CTX.d.ts","sourceRoot":"","sources":["CTX.js"],"names":[],"mappings":"AAGO,+BAA2B;AAG3B,wCADK,OAAO,SAAS,EAAE,KAAK;;;;;;
|
|
1
|
+
{"version":3,"file":"CTX.d.ts","sourceRoot":"","sources":["CTX.js"],"names":[],"mappings":"AAGO,+BAA2B;AAG3B,wCADK,OAAO,SAAS,EAAE,KAAK;;;;;;EAejC;AAGK,wCADK,OAAO,SAAS,EAAE,KAAK;;;;IAMjC,qEAAqE;yBAA1D,UAAU,CAAC,OAAO,UAAU,EAAE,qBAAqB,CAAC,EAAE;IAEjE,8DAA8D;wBAAnD,OAAO,UAAU,EAAE,qBAAqB,GAAG,IAAI;IAE1D,yEAAyE;kBAA9D,OAAO,2BAA2B,EAAE,eAAe,GAAG,IAAI;IAErE,0BAA0B;sBAAf,GAAG,CAAC,MAAM,CAAC;IAEtB,8EAA8E;6BAAnE,OAAO,2BAA2B,EAAE,oBAAoB,GAAG,IAAI;;;;;;EAE1E;sBArCoB,2BAA2B"}
|
package/abstract/CTX.js
CHANGED
|
@@ -8,12 +8,14 @@ export const activityBlockCtx = (fnCtx) => ({
|
|
|
8
8
|
...blockCtx(),
|
|
9
9
|
'*currentActivity': null,
|
|
10
10
|
'*currentActivityParams': {},
|
|
11
|
+
|
|
11
12
|
'*history': [],
|
|
12
13
|
'*historyBack': null,
|
|
13
14
|
'*closeModal': () => {
|
|
15
|
+
fnCtx.modalManager.closeAll();
|
|
16
|
+
|
|
14
17
|
fnCtx.set$({
|
|
15
18
|
'*currentActivity': null,
|
|
16
|
-
'*modalActive': false,
|
|
17
19
|
});
|
|
18
20
|
},
|
|
19
21
|
});
|
|
@@ -2,7 +2,7 @@ export function localeStateKey(key: string): string;
|
|
|
2
2
|
export const DEFAULT_LOCALE: "en";
|
|
3
3
|
export class LocaleManager {
|
|
4
4
|
/** @param {import('./Block.js').Block} blockInstance */
|
|
5
|
-
constructor(blockInstance: import(
|
|
5
|
+
constructor(blockInstance: import("./Block.js").Block);
|
|
6
6
|
/**
|
|
7
7
|
* @private
|
|
8
8
|
* @type {import('./Block.js').Block | null}
|
|
@@ -30,9 +30,9 @@ export class LocaleManager {
|
|
|
30
30
|
* @param {string} key
|
|
31
31
|
* @param {() => void} resolver
|
|
32
32
|
*/
|
|
33
|
-
bindL10n(block: import(
|
|
33
|
+
bindL10n(block: import("./Block.js").Block, key: string, resolver: () => void): void;
|
|
34
34
|
/** @param {import('./Block.js').Block} block */
|
|
35
|
-
destroyL10nBindings(block: import(
|
|
35
|
+
destroyL10nBindings(block: import("./Block.js").Block): void;
|
|
36
36
|
destroy(): void;
|
|
37
37
|
}
|
|
38
38
|
//# sourceMappingURL=LocaleManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleManager.d.ts","sourceRoot":"","sources":["LocaleManager.js"],"names":[],"mappings":"AAMO,oCADK,MAAM,UACmC;AACrD,
|
|
1
|
+
{"version":3,"file":"LocaleManager.d.ts","sourceRoot":"","sources":["LocaleManager.js"],"names":[],"mappings":"AAMO,oCADK,MAAM,UACmC;AACrD,6BAA8B,IAAI,CAAC;AAEnC;IAsBE,wDAAwD;IACxD,2BADY,OAAO,YAAY,EAAE,KAAK,EA6CrC;IAlED;;;OAGG;IACH,uBAAsB;IAEtB,eAAe;IACf,oBAAiB;IAEjB;;;OAGG;IACH,mBAAuB;IAEvB;;;OAGG;IACH,qBAAyB;IAiDzB;;;OAGG;IACH,yBAHW,MAAM,IAAI,GACR,MAAM,IAAI,CAQtB;IAED;;;;OAIG;IACH,gBAJW,OAAO,YAAY,EAAE,KAAK,OAC1B,MAAM,YACN,MAAM,IAAI,QAgBpB;IAED,gDAAgD;IAChD,2BADY,OAAO,YAAY,EAAE,KAAK,QAUrC;IAED,gBAEC;CACF"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
export const ModalEvents: Readonly<{
|
|
2
|
+
ADD: "modal:add";
|
|
3
|
+
DELETE: "modal:delete";
|
|
4
|
+
OPEN: "modal:open";
|
|
5
|
+
CLOSE: "modal:close";
|
|
6
|
+
CLOSE_ALL: "modal:closeAll";
|
|
7
|
+
DESTROY: "modal:destroy";
|
|
8
|
+
}>;
|
|
9
|
+
/** @typedef {string} ModalId */
|
|
10
|
+
/** @typedef {import('../blocks/Modal/Modal.js').Modal} ModalNode */
|
|
11
|
+
/** @typedef {(data: { id: ModalId; modal?: ModalNode }) => void} ModalCb */
|
|
12
|
+
/** @typedef {(typeof ModalEvents)[keyof ModalEvents]} ModalEventType */
|
|
13
|
+
export class ModalManager {
|
|
14
|
+
/** @param {import('./Block.js').Block} block */
|
|
15
|
+
constructor(block: import("./Block.js").Block);
|
|
16
|
+
/**
|
|
17
|
+
* @private
|
|
18
|
+
* @type {Map<ModalId, ModalNode>}
|
|
19
|
+
*/
|
|
20
|
+
private _modals;
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
* @type {Set<ModalId>}
|
|
24
|
+
*/
|
|
25
|
+
private _activeModals;
|
|
26
|
+
/**
|
|
27
|
+
* @private
|
|
28
|
+
* @type {Map<ModalEventType, Set<ModalCb>>}
|
|
29
|
+
*/
|
|
30
|
+
private _subscribers;
|
|
31
|
+
_block: import("./Block.js").Block;
|
|
32
|
+
/**
|
|
33
|
+
* @private
|
|
34
|
+
* @param {unknown[]} args
|
|
35
|
+
*/
|
|
36
|
+
private _debugPrint;
|
|
37
|
+
/**
|
|
38
|
+
* Register a modal with the manager
|
|
39
|
+
*
|
|
40
|
+
* @param {ModalId} id - Unique identifier for the modal
|
|
41
|
+
* @param {ModalNode} modal - Modal component instance
|
|
42
|
+
*/
|
|
43
|
+
registerModal(id: ModalId, modal: ModalNode): void;
|
|
44
|
+
/** @param {ModalId} id - Unique identifier for the modal */
|
|
45
|
+
deleteModal(id: ModalId): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Open a modal by its ID
|
|
48
|
+
*
|
|
49
|
+
* @param {ModalId} id - The ID of the modal to open
|
|
50
|
+
* @returns {boolean} - Success status
|
|
51
|
+
*/
|
|
52
|
+
open(id: ModalId): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Close a specific modal by ID
|
|
55
|
+
*
|
|
56
|
+
* @param {ModalId} id - The ID of the modal to close
|
|
57
|
+
* @returns {boolean} - Success status
|
|
58
|
+
*/
|
|
59
|
+
close(id: ModalId): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Toggle a modal - open if closed, close if open
|
|
62
|
+
*
|
|
63
|
+
* @param {ModalId} id - The ID of the modal to toggle
|
|
64
|
+
* @returns {boolean} - Success status
|
|
65
|
+
*/
|
|
66
|
+
toggle(id: ModalId): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Check if any modals are currently active/open
|
|
69
|
+
*
|
|
70
|
+
* @returns {boolean} - True if there are any active modals
|
|
71
|
+
*/
|
|
72
|
+
get hasActiveModals(): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Close the most recently opened modal and return to the previous one
|
|
75
|
+
*
|
|
76
|
+
* @returns {boolean} - Success status
|
|
77
|
+
*/
|
|
78
|
+
back(): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Close all open modals
|
|
81
|
+
*
|
|
82
|
+
* @returns {number} - Number of modals closed
|
|
83
|
+
*/
|
|
84
|
+
closeAll(): number;
|
|
85
|
+
/**
|
|
86
|
+
* Subscribe to modal events
|
|
87
|
+
*
|
|
88
|
+
* @param {ModalEventType} event
|
|
89
|
+
* @param {ModalCb} callback
|
|
90
|
+
* @returns {() => void}
|
|
91
|
+
*/
|
|
92
|
+
subscribe(event: ModalEventType, callback: ModalCb): () => void;
|
|
93
|
+
/**
|
|
94
|
+
* Unsubscribe from modal events
|
|
95
|
+
*
|
|
96
|
+
* @param {ModalEventType} event
|
|
97
|
+
* @param {ModalCb | undefined} callback
|
|
98
|
+
*/
|
|
99
|
+
unsubscribe(event: ModalEventType, callback: ModalCb | undefined): void;
|
|
100
|
+
/**
|
|
101
|
+
* Notify all subscribers of a modal event
|
|
102
|
+
*
|
|
103
|
+
* @private
|
|
104
|
+
* @param {ModalEventType} event - Event name
|
|
105
|
+
* @param {{
|
|
106
|
+
* id?: ModalId | ModalId[];
|
|
107
|
+
* modal?: ModalNode | ModalNode[];
|
|
108
|
+
* }
|
|
109
|
+
* | {
|
|
110
|
+
* modalIds: ModalId[];
|
|
111
|
+
* }} data
|
|
112
|
+
*/
|
|
113
|
+
private _notify;
|
|
114
|
+
/** Destroy the modal manager, clean up resources */
|
|
115
|
+
destroy(): void;
|
|
116
|
+
}
|
|
117
|
+
export type ModalId = string;
|
|
118
|
+
export type ModalNode = import("../blocks/Modal/Modal.js").Modal;
|
|
119
|
+
export type ModalCb = (data: {
|
|
120
|
+
id: ModalId;
|
|
121
|
+
modal?: ModalNode;
|
|
122
|
+
}) => void;
|
|
123
|
+
export type ModalEventType = (typeof ModalEvents)["ADD" | "DELETE" | "OPEN" | "CLOSE" | "CLOSE_ALL" | "DESTROY"];
|
|
124
|
+
//# sourceMappingURL=ModalManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalManager.d.ts","sourceRoot":"","sources":["ModalManager.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gCAAgC;AAEhC,oEAAoE;AAEpE,4EAA4E;AAE5E,wEAAwE;AAExE;IAmBE,gDAAgD;IAChD,mBADY,OAAO,YAAY,EAAE,KAAK,EAGrC;IArBD;;;OAGG;IACH,gBAAoB;IAEpB;;;OAGG;IACH,sBAA0B;IAE1B;;;OAGG;IACH,qBAAyB;IAIvB,mCAAmB;IAGrB;;;OAGG;IACH,oBAEC;IAED;;;;;OAKG;IACH,kBAHW,OAAO,SACP,SAAS,QAKnB;IAED,4DAA4D;IAC5D,gBADY,OAAO,WASlB;IAED;;;;;OAKG;IACH,SAHW,OAAO,GACL,OAAO,CAanB;IAED;;;;;OAKG;IACH,UAHW,OAAO,GACL,OAAO,CAanB;IAED;;;;;OAKG;IACH,WAHW,OAAO,GACL,OAAO,CAanB;IAED;;;;OAIG;IACH,uBAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,QAFa,OAAO,CAWnB;IAED;;;;OAIG;IACH,YAFa,MAAM,CAQlB;IAED;;;;;;OAMG;IACH,iBAJW,cAAc,YACd,OAAO,GACL,MAAM,IAAI,CAStB;IAED;;;;;OAKG;IACH,mBAHW,cAAc,YACd,OAAO,GAAG,SAAS,QAM7B;IAED;;;;;;;;;;;;OAYG;IACH,gBAUC;IAED,oDAAoD;IACpD,gBAKC;CACF;sBAzNa,MAAM;wBAEN,OAAO,0BAA0B,EAAE,KAAK;sBAExC,CAAC,IAAI,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,IAAI;6BAElD,CAAC,OAAO,WAAW,gEAAoB"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
export const ModalEvents = Object.freeze({
|
|
2
|
+
ADD: 'modal:add',
|
|
3
|
+
DELETE: 'modal:delete',
|
|
4
|
+
OPEN: 'modal:open',
|
|
5
|
+
CLOSE: 'modal:close',
|
|
6
|
+
CLOSE_ALL: 'modal:closeAll',
|
|
7
|
+
DESTROY: 'modal:destroy',
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/** @typedef {string} ModalId */
|
|
11
|
+
|
|
12
|
+
/** @typedef {import('../blocks/Modal/Modal.js').Modal} ModalNode */
|
|
13
|
+
|
|
14
|
+
/** @typedef {(data: { id: ModalId; modal?: ModalNode }) => void} ModalCb */
|
|
15
|
+
|
|
16
|
+
/** @typedef {(typeof ModalEvents)[keyof ModalEvents]} ModalEventType */
|
|
17
|
+
|
|
18
|
+
export class ModalManager {
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
* @type {Map<ModalId, ModalNode>}
|
|
22
|
+
*/
|
|
23
|
+
_modals = new Map();
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @private
|
|
27
|
+
* @type {Set<ModalId>}
|
|
28
|
+
*/
|
|
29
|
+
_activeModals = new Set();
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @private
|
|
33
|
+
* @type {Map<ModalEventType, Set<ModalCb>>}
|
|
34
|
+
*/
|
|
35
|
+
_subscribers = new Map();
|
|
36
|
+
|
|
37
|
+
/** @param {import('./Block.js').Block} block */
|
|
38
|
+
constructor(block) {
|
|
39
|
+
this._block = block;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @private
|
|
44
|
+
* @param {unknown[]} args
|
|
45
|
+
*/
|
|
46
|
+
_debugPrint(...args) {
|
|
47
|
+
this._block.debugPrint('[modal-manager]', ...args);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Register a modal with the manager
|
|
52
|
+
*
|
|
53
|
+
* @param {ModalId} id - Unique identifier for the modal
|
|
54
|
+
* @param {ModalNode} modal - Modal component instance
|
|
55
|
+
*/
|
|
56
|
+
registerModal(id, modal) {
|
|
57
|
+
this._modals.set(id, modal);
|
|
58
|
+
this._notify(ModalEvents.ADD, { id, modal });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** @param {ModalId} id - Unique identifier for the modal */
|
|
62
|
+
deleteModal(id) {
|
|
63
|
+
if (!this._modals.has(id)) return false;
|
|
64
|
+
|
|
65
|
+
const modal = this._modals.get(id);
|
|
66
|
+
this._modals.delete(id);
|
|
67
|
+
this._activeModals.delete(id);
|
|
68
|
+
this._notify(ModalEvents.DELETE, { id, modal });
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Open a modal by its ID
|
|
74
|
+
*
|
|
75
|
+
* @param {ModalId} id - The ID of the modal to open
|
|
76
|
+
* @returns {boolean} - Success status
|
|
77
|
+
*/
|
|
78
|
+
open(id) {
|
|
79
|
+
if (!this._modals.has(id)) {
|
|
80
|
+
this._debugPrint(`Modal with ID "${id}" not found`);
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const modal = this._modals.get(id);
|
|
85
|
+
|
|
86
|
+
this._activeModals.add(id);
|
|
87
|
+
this._notify(ModalEvents.OPEN, { modal, id });
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Close a specific modal by ID
|
|
93
|
+
*
|
|
94
|
+
* @param {ModalId} id - The ID of the modal to close
|
|
95
|
+
* @returns {boolean} - Success status
|
|
96
|
+
*/
|
|
97
|
+
close(id) {
|
|
98
|
+
if (!this._modals.has(id) || !this._activeModals.has(id)) {
|
|
99
|
+
this._debugPrint(`Modal with ID "${id}" not found or not active`);
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const modal = this._modals.get(id);
|
|
104
|
+
|
|
105
|
+
this._activeModals.delete(id);
|
|
106
|
+
this._notify(ModalEvents.CLOSE, { id, modal });
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Toggle a modal - open if closed, close if open
|
|
112
|
+
*
|
|
113
|
+
* @param {ModalId} id - The ID of the modal to toggle
|
|
114
|
+
* @returns {boolean} - Success status
|
|
115
|
+
*/
|
|
116
|
+
toggle(id) {
|
|
117
|
+
if (!this._modals.has(id)) {
|
|
118
|
+
this._debugPrint(`Modal with ID "${id}" not found`);
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (this._activeModals.has(id)) {
|
|
123
|
+
return this.close(id);
|
|
124
|
+
} else {
|
|
125
|
+
return this.open(id);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Check if any modals are currently active/open
|
|
131
|
+
*
|
|
132
|
+
* @returns {boolean} - True if there are any active modals
|
|
133
|
+
*/
|
|
134
|
+
get hasActiveModals() {
|
|
135
|
+
return this._activeModals.size > 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Close the most recently opened modal and return to the previous one
|
|
140
|
+
*
|
|
141
|
+
* @returns {boolean} - Success status
|
|
142
|
+
*/
|
|
143
|
+
back() {
|
|
144
|
+
if (this._activeModals.size === 0) {
|
|
145
|
+
this._debugPrint('No active modals to go back from');
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Get the last opened modal
|
|
150
|
+
const lastModalId = Array.from(this._activeModals).pop();
|
|
151
|
+
return this.close(/** @type {string} */ (lastModalId));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Close all open modals
|
|
156
|
+
*
|
|
157
|
+
* @returns {number} - Number of modals closed
|
|
158
|
+
*/
|
|
159
|
+
closeAll() {
|
|
160
|
+
const count = this._activeModals.size;
|
|
161
|
+
|
|
162
|
+
this._activeModals.clear();
|
|
163
|
+
this._notify(ModalEvents.CLOSE_ALL, {});
|
|
164
|
+
return count;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Subscribe to modal events
|
|
169
|
+
*
|
|
170
|
+
* @param {ModalEventType} event
|
|
171
|
+
* @param {ModalCb} callback
|
|
172
|
+
* @returns {() => void}
|
|
173
|
+
*/
|
|
174
|
+
subscribe(event, callback) {
|
|
175
|
+
if (!this._subscribers.has(event)) {
|
|
176
|
+
this._subscribers.set(event, new Set());
|
|
177
|
+
}
|
|
178
|
+
this._subscribers.get(event).add(callback);
|
|
179
|
+
|
|
180
|
+
return () => this.unsubscribe(event, callback);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Unsubscribe from modal events
|
|
185
|
+
*
|
|
186
|
+
* @param {ModalEventType} event
|
|
187
|
+
* @param {ModalCb | undefined} callback
|
|
188
|
+
*/
|
|
189
|
+
unsubscribe(event, callback) {
|
|
190
|
+
if (this._subscribers.has(event)) {
|
|
191
|
+
this._subscribers.get(event).delete(callback);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Notify all subscribers of a modal event
|
|
197
|
+
*
|
|
198
|
+
* @private
|
|
199
|
+
* @param {ModalEventType} event - Event name
|
|
200
|
+
* @param {{
|
|
201
|
+
* id?: ModalId | ModalId[];
|
|
202
|
+
* modal?: ModalNode | ModalNode[];
|
|
203
|
+
* }
|
|
204
|
+
* | {
|
|
205
|
+
* modalIds: ModalId[];
|
|
206
|
+
* }} data
|
|
207
|
+
*/
|
|
208
|
+
_notify(event, data) {
|
|
209
|
+
if (this._subscribers.has(event)) {
|
|
210
|
+
for (const callback of this._subscribers.get(event)) {
|
|
211
|
+
try {
|
|
212
|
+
callback(data);
|
|
213
|
+
} catch (error) {
|
|
214
|
+
this._debugPrint('Error in modal subscriber:', error);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** Destroy the modal manager, clean up resources */
|
|
221
|
+
destroy() {
|
|
222
|
+
this.closeAll();
|
|
223
|
+
this._modals.clear();
|
|
224
|
+
this._subscribers.clear();
|
|
225
|
+
this._notify(ModalEvents.DESTROY, {});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export class SecureUploadsManager {
|
|
2
2
|
/** @param {import('./UploaderBlock.js').UploaderBlock} block */
|
|
3
|
-
constructor(block: import(
|
|
3
|
+
constructor(block: import("./UploaderBlock.js").UploaderBlock);
|
|
4
4
|
/**
|
|
5
5
|
* @private
|
|
6
6
|
* @type {import('./UploaderBlock.js').UploaderBlock}
|
|
@@ -17,6 +17,6 @@ export class SecureUploadsManager {
|
|
|
17
17
|
*/
|
|
18
18
|
private _debugPrint;
|
|
19
19
|
/** @returns {Promise<import('../types').SecureUploadsSignatureAndExpire | null>} */
|
|
20
|
-
getSecureToken(): Promise<import(
|
|
20
|
+
getSecureToken(): Promise<import("../types").SecureUploadsSignatureAndExpire | null>;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=SecureUploadsManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecureUploadsManager.d.ts","sourceRoot":"","sources":["SecureUploadsManager.js"],"names":[],"mappings":"AAIA;IAYE,gEAAgE;IAChE,mBADY,OAAO,oBAAoB,EAAE,aAAa,EAGrD;IAdD;;;OAGG;IACH,eAAO;IACP;;;OAGG;IACH,qBAAoB;IAOpB;;;OAGG;IACH,oBAEC;IAED,oFAAoF;IACpF,kBADc,
|
|
1
|
+
{"version":3,"file":"SecureUploadsManager.d.ts","sourceRoot":"","sources":["SecureUploadsManager.js"],"names":[],"mappings":"AAIA;IAYE,gEAAgE;IAChE,mBADY,OAAO,oBAAoB,EAAE,aAAa,EAGrD;IAdD;;;OAGG;IACH,eAAO;IACP;;;OAGG;IACH,qBAAoB;IAOpB;;;OAGG;IACH,oBAEC;IAED,oFAAoF;IACpF,kBADc,OAAO,CAAC,OAAO,UAAU,EAAE,+BAA+B,GAAG,IAAI,CAAC,CAwD/E;CACF"}
|