@uploadcare/file-uploader 0.50.1-alpha.2
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/LICENSE +21 -0
- package/README.md +165 -0
- package/abstract/ActivityBlock.d.ts +68 -0
- package/abstract/ActivityBlock.d.ts.map +1 -0
- package/abstract/ActivityBlock.js +207 -0
- package/abstract/Block.d.ts +99 -0
- package/abstract/Block.d.ts.map +1 -0
- package/abstract/Block.js +349 -0
- package/abstract/CTX.d.ts +31 -0
- package/abstract/CTX.d.ts.map +1 -0
- package/abstract/CTX.js +38 -0
- package/abstract/LocaleManager.d.ts +38 -0
- package/abstract/LocaleManager.d.ts.map +1 -0
- package/abstract/LocaleManager.js +127 -0
- package/abstract/SecureUploadsManager.d.ts +22 -0
- package/abstract/SecureUploadsManager.d.ts.map +1 -0
- package/abstract/SecureUploadsManager.js +87 -0
- package/abstract/SolutionBlock.d.ts +23 -0
- package/abstract/SolutionBlock.d.ts.map +1 -0
- package/abstract/SolutionBlock.js +23 -0
- package/abstract/TypedCollection.d.ts +127 -0
- package/abstract/TypedCollection.d.ts.map +1 -0
- package/abstract/TypedCollection.js +245 -0
- package/abstract/TypedData.d.ts +47 -0
- package/abstract/TypedData.d.ts.map +1 -0
- package/abstract/TypedData.js +77 -0
- package/abstract/UploaderBlock.d.ts +114 -0
- package/abstract/UploaderBlock.d.ts.map +1 -0
- package/abstract/UploaderBlock.js +444 -0
- package/abstract/UploaderPublicApi.d.ts +90 -0
- package/abstract/UploaderPublicApi.d.ts.map +1 -0
- package/abstract/UploaderPublicApi.js +316 -0
- package/abstract/ValidationManager.d.ts +31 -0
- package/abstract/ValidationManager.d.ts.map +1 -0
- package/abstract/ValidationManager.js +162 -0
- package/abstract/a11y.d.ts +20 -0
- package/abstract/a11y.d.ts.map +1 -0
- package/abstract/a11y.js +118 -0
- package/abstract/buildOutputCollectionState.d.ts +8 -0
- package/abstract/buildOutputCollectionState.d.ts.map +1 -0
- package/abstract/buildOutputCollectionState.js +136 -0
- package/abstract/connectBlocksFrom.d.ts +8 -0
- package/abstract/connectBlocksFrom.d.ts.map +1 -0
- package/abstract/connectBlocksFrom.js +34 -0
- package/abstract/l10nProcessor.d.ts +7 -0
- package/abstract/l10nProcessor.d.ts.map +1 -0
- package/abstract/l10nProcessor.js +80 -0
- package/abstract/localeRegistry.d.ts +5 -0
- package/abstract/localeRegistry.d.ts.map +1 -0
- package/abstract/localeRegistry.js +63 -0
- package/abstract/registerBlocks.d.ts +5 -0
- package/abstract/registerBlocks.d.ts.map +1 -0
- package/abstract/registerBlocks.js +31 -0
- package/abstract/sharedConfigKey.d.ts +2 -0
- package/abstract/sharedConfigKey.d.ts.map +1 -0
- package/abstract/sharedConfigKey.js +8 -0
- package/abstract/uploadEntrySchema.d.ts +64 -0
- package/abstract/uploadEntrySchema.d.ts.map +1 -0
- package/abstract/uploadEntrySchema.js +138 -0
- package/blocks/ActivityHeader/ActivityHeader.d.ts +4 -0
- package/blocks/ActivityHeader/ActivityHeader.d.ts.map +1 -0
- package/blocks/ActivityHeader/ActivityHeader.js +3 -0
- package/blocks/ActivityHeader/activity-header.css +14 -0
- package/blocks/CameraSource/CameraSource.d.ts +39 -0
- package/blocks/CameraSource/CameraSource.d.ts.map +1 -0
- package/blocks/CameraSource/CameraSource.js +253 -0
- package/blocks/CameraSource/camera-source.css +107 -0
- package/blocks/CloudImageEditor/index.css +1 -0
- package/blocks/CloudImageEditor/index.d.ts +2 -0
- package/blocks/CloudImageEditor/index.d.ts.map +1 -0
- package/blocks/CloudImageEditor/index.js +1 -0
- package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts +58 -0
- package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/CloudImageEditorBlock.js +228 -0
- package/blocks/CloudImageEditor/src/CropFrame.d.ts +146 -0
- package/blocks/CloudImageEditor/src/CropFrame.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/CropFrame.js +511 -0
- package/blocks/CloudImageEditor/src/EditorButtonControl.d.ts +10 -0
- package/blocks/CloudImageEditor/src/EditorButtonControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorButtonControl.js +44 -0
- package/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts +6 -0
- package/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorCropButtonControl.js +39 -0
- package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts +18 -0
- package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorFilterControl.js +155 -0
- package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts +106 -0
- package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorImageCropper.js +551 -0
- package/blocks/CloudImageEditor/src/EditorImageFader.d.ts +132 -0
- package/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorImageFader.js +454 -0
- package/blocks/CloudImageEditor/src/EditorOperationControl.d.ts +9 -0
- package/blocks/CloudImageEditor/src/EditorOperationControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorOperationControl.js +39 -0
- package/blocks/CloudImageEditor/src/EditorScroller.d.ts +7 -0
- package/blocks/CloudImageEditor/src/EditorScroller.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorScroller.js +33 -0
- package/blocks/CloudImageEditor/src/EditorSlider.d.ts +24 -0
- package/blocks/CloudImageEditor/src/EditorSlider.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorSlider.js +118 -0
- package/blocks/CloudImageEditor/src/EditorToolbar.d.ts +104 -0
- package/blocks/CloudImageEditor/src/EditorToolbar.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorToolbar.js +441 -0
- package/blocks/CloudImageEditor/src/crop-utils.d.ts +123 -0
- package/blocks/CloudImageEditor/src/crop-utils.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/crop-utils.js +729 -0
- package/blocks/CloudImageEditor/src/cropper-constants.d.ts +11 -0
- package/blocks/CloudImageEditor/src/cropper-constants.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/cropper-constants.js +11 -0
- package/blocks/CloudImageEditor/src/css/common.css +1157 -0
- package/blocks/CloudImageEditor/src/css/icons.css +12 -0
- package/blocks/CloudImageEditor/src/css/index.css +2 -0
- package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts +20 -0
- package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/button/BtnUi.js +90 -0
- package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts +11 -0
- package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.js +52 -0
- package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts +17 -0
- package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.js +71 -0
- package/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts +16 -0
- package/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/slider/SliderUi.js +178 -0
- package/blocks/CloudImageEditor/src/index.d.ts +15 -0
- package/blocks/CloudImageEditor/src/index.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/index.js +14 -0
- package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts +15 -0
- package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/FocusVisible.js +33 -0
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts +10 -0
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.js +256 -0
- package/blocks/CloudImageEditor/src/lib/classNames.d.ts +3 -0
- package/blocks/CloudImageEditor/src/lib/classNames.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/classNames.js +34 -0
- package/blocks/CloudImageEditor/src/lib/linspace.d.ts +8 -0
- package/blocks/CloudImageEditor/src/lib/linspace.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/linspace.js +14 -0
- package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts +2 -0
- package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/parseCropPreset.js +14 -0
- package/blocks/CloudImageEditor/src/lib/parseTabs.d.ts +2 -0
- package/blocks/CloudImageEditor/src/lib/parseTabs.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/parseTabs.js +14 -0
- package/blocks/CloudImageEditor/src/lib/pick.d.ts +7 -0
- package/blocks/CloudImageEditor/src/lib/pick.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/pick.js +15 -0
- package/blocks/CloudImageEditor/src/lib/preloadImage.d.ts +11 -0
- package/blocks/CloudImageEditor/src/lib/preloadImage.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/preloadImage.js +38 -0
- package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts +14 -0
- package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/transformationUtils.js +167 -0
- package/blocks/CloudImageEditor/src/state.d.ts +38 -0
- package/blocks/CloudImageEditor/src/state.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/state.js +92 -0
- package/blocks/CloudImageEditor/src/svg-sprite.d.ts +3 -0
- package/blocks/CloudImageEditor/src/svg-sprite.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/svg-sprite.js +1 -0
- package/blocks/CloudImageEditor/src/template.d.ts +2 -0
- package/blocks/CloudImageEditor/src/template.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/template.js +36 -0
- package/blocks/CloudImageEditor/src/toolbar-constants.d.ts +58 -0
- package/blocks/CloudImageEditor/src/toolbar-constants.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/toolbar-constants.js +114 -0
- package/blocks/CloudImageEditor/src/types.d.ts +58 -0
- package/blocks/CloudImageEditor/src/types.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/types.js +61 -0
- package/blocks/CloudImageEditor/src/util.d.ts +2 -0
- package/blocks/CloudImageEditor/src/util.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/util.js +19 -0
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts +31 -0
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts.map +1 -0
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.js +113 -0
- package/blocks/CloudImageEditorActivity/index.css +13 -0
- package/blocks/CloudImageEditorActivity/test.d.ts +2 -0
- package/blocks/CloudImageEditorActivity/test.d.ts.map +1 -0
- package/blocks/CloudImageEditorActivity/test.js +9 -0
- package/blocks/Config/Config.d.ts +67 -0
- package/blocks/Config/Config.d.ts.map +1 -0
- package/blocks/Config/Config.js +246 -0
- package/blocks/Config/config.css +3 -0
- package/blocks/Config/initialConfig.d.ts +6 -0
- package/blocks/Config/initialConfig.d.ts.map +1 -0
- package/blocks/Config/initialConfig.js +69 -0
- package/blocks/Config/normalizeConfigValue.d.ts +3 -0
- package/blocks/Config/normalizeConfigValue.d.ts.map +1 -0
- package/blocks/Config/normalizeConfigValue.js +177 -0
- package/blocks/Copyright/Copyright.d.ts +4 -0
- package/blocks/Copyright/Copyright.d.ts.map +1 -0
- package/blocks/Copyright/Copyright.js +24 -0
- package/blocks/Copyright/copyright.css +31 -0
- package/blocks/DropArea/DropArea.d.ts +49 -0
- package/blocks/DropArea/DropArea.d.ts.map +1 -0
- package/blocks/DropArea/DropArea.js +273 -0
- package/blocks/DropArea/addDropzone.d.ts +21 -0
- package/blocks/DropArea/addDropzone.d.ts.map +1 -0
- package/blocks/DropArea/addDropzone.js +137 -0
- package/blocks/DropArea/drop-area.css +188 -0
- package/blocks/DropArea/getDropItems.d.ts +16 -0
- package/blocks/DropArea/getDropItems.d.ts.map +1 -0
- package/blocks/DropArea/getDropItems.js +167 -0
- package/blocks/ExternalSource/ExternalSource.d.ts +98 -0
- package/blocks/ExternalSource/ExternalSource.d.ts.map +1 -0
- package/blocks/ExternalSource/ExternalSource.js +268 -0
- package/blocks/ExternalSource/buildStyles.d.ts +27 -0
- package/blocks/ExternalSource/buildStyles.d.ts.map +1 -0
- package/blocks/ExternalSource/buildStyles.js +133 -0
- package/blocks/ExternalSource/external-source.css +65 -0
- package/blocks/ExternalSource/messages.d.ts +3 -0
- package/blocks/ExternalSource/messages.d.ts.map +1 -0
- package/blocks/ExternalSource/messages.js +35 -0
- package/blocks/ExternalSource/query-string.d.ts +8 -0
- package/blocks/ExternalSource/query-string.d.ts.map +1 -0
- package/blocks/ExternalSource/query-string.js +14 -0
- package/blocks/FileItem/FileItem.d.ts +97 -0
- package/blocks/FileItem/FileItem.d.ts.map +1 -0
- package/blocks/FileItem/FileItem.js +460 -0
- package/blocks/FileItem/file-item.css +140 -0
- package/blocks/FormInput/FormInput.d.ts +7 -0
- package/blocks/FormInput/FormInput.d.ts.map +1 -0
- package/blocks/FormInput/FormInput.js +92 -0
- package/blocks/Icon/Icon.d.ts +12 -0
- package/blocks/Icon/Icon.d.ts.map +1 -0
- package/blocks/Icon/Icon.js +44 -0
- package/blocks/Icon/icon.css +12 -0
- package/blocks/Img/Img.d.ts +4 -0
- package/blocks/Img/Img.d.ts.map +1 -0
- package/blocks/Img/Img.js +21 -0
- package/blocks/Img/ImgBase.d.ts +80 -0
- package/blocks/Img/ImgBase.d.ts.map +1 -0
- package/blocks/Img/ImgBase.js +408 -0
- package/blocks/Img/ImgConfig.d.ts +31 -0
- package/blocks/Img/ImgConfig.d.ts.map +1 -0
- package/blocks/Img/ImgConfig.js +102 -0
- package/blocks/Img/configurations.d.ts +12 -0
- package/blocks/Img/configurations.d.ts.map +1 -0
- package/blocks/Img/configurations.js +14 -0
- package/blocks/Img/props-map.d.ts +29 -0
- package/blocks/Img/props-map.d.ts.map +1 -0
- package/blocks/Img/props-map.js +34 -0
- package/blocks/Img/test.css +16 -0
- package/blocks/Img/utils/parseObjectToString.d.ts +2 -0
- package/blocks/Img/utils/parseObjectToString.d.ts.map +1 -0
- package/blocks/Img/utils/parseObjectToString.js +13 -0
- package/blocks/Modal/Modal.d.ts +24 -0
- package/blocks/Modal/Modal.d.ts.map +1 -0
- package/blocks/Modal/Modal.js +116 -0
- package/blocks/Modal/modal.css +92 -0
- package/blocks/ProgressBar/ProgressBar.d.ts +10 -0
- package/blocks/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/blocks/ProgressBar/ProgressBar.js +38 -0
- package/blocks/ProgressBar/progress-bar.css +25 -0
- package/blocks/ProgressBarCommon/ProgressBarCommon.d.ts +8 -0
- package/blocks/ProgressBarCommon/ProgressBarCommon.d.ts.map +1 -0
- package/blocks/ProgressBarCommon/ProgressBarCommon.js +44 -0
- package/blocks/ProgressBarCommon/progress-bar-common.css +16 -0
- package/blocks/Range/Range.d.ts +16 -0
- package/blocks/Range/Range.d.ts.map +1 -0
- package/blocks/Range/Range.js +44 -0
- package/blocks/Range/range.css +65 -0
- package/blocks/Select/Select.d.ts +9 -0
- package/blocks/Select/Select.d.ts.map +1 -0
- package/blocks/Select/Select.js +35 -0
- package/blocks/Select/select.css +22 -0
- package/blocks/SimpleBtn/SimpleBtn.d.ts +26 -0
- package/blocks/SimpleBtn/SimpleBtn.d.ts.map +1 -0
- package/blocks/SimpleBtn/SimpleBtn.js +54 -0
- package/blocks/SimpleBtn/simple-btn.css +64 -0
- package/blocks/SourceBtn/SourceBtn.d.ts +58 -0
- package/blocks/SourceBtn/SourceBtn.d.ts.map +1 -0
- package/blocks/SourceBtn/SourceBtn.js +145 -0
- package/blocks/SourceBtn/source-btn.css +45 -0
- package/blocks/SourceList/SourceList.d.ts +4 -0
- package/blocks/SourceList/SourceList.d.ts.map +1 -0
- package/blocks/SourceList/SourceList.js +20 -0
- package/blocks/StartFrom/StartFrom.d.ts +7 -0
- package/blocks/StartFrom/StartFrom.d.ts.map +1 -0
- package/blocks/StartFrom/StartFrom.js +14 -0
- package/blocks/StartFrom/start-from.css +32 -0
- package/blocks/UploadCtxProvider/EventEmitter.d.ts +107 -0
- package/blocks/UploadCtxProvider/EventEmitter.d.ts.map +1 -0
- package/blocks/UploadCtxProvider/EventEmitter.js +132 -0
- package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts +35 -0
- package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts.map +1 -0
- package/blocks/UploadCtxProvider/UploadCtxProvider.js +45 -0
- package/blocks/UploadList/UploadList.d.ts +59 -0
- package/blocks/UploadList/UploadList.d.ts.map +1 -0
- package/blocks/UploadList/UploadList.js +237 -0
- package/blocks/UploadList/upload-list.css +74 -0
- package/blocks/UrlSource/UrlSource.d.ts +9 -0
- package/blocks/UrlSource/UrlSource.d.ts.map +1 -0
- package/blocks/UrlSource/UrlSource.js +61 -0
- package/blocks/UrlSource/url-source.css +24 -0
- package/blocks/svg-backgrounds/svg-backgrounds.d.ts +17 -0
- package/blocks/svg-backgrounds/svg-backgrounds.d.ts.map +1 -0
- package/blocks/svg-backgrounds/svg-backgrounds.js +45 -0
- package/blocks/themes/uc-basic/common.css +116 -0
- package/blocks/themes/uc-basic/config.css +4 -0
- package/blocks/themes/uc-basic/index.css +32 -0
- package/blocks/themes/uc-basic/svg-sprite.d.ts +3 -0
- package/blocks/themes/uc-basic/svg-sprite.d.ts.map +1 -0
- package/blocks/themes/uc-basic/svg-sprite.js +1 -0
- package/blocks/themes/uc-basic/theme.css +232 -0
- package/blocks/utils/UploadSource.d.ts +9 -0
- package/blocks/utils/UploadSource.d.ts.map +1 -0
- package/blocks/utils/UploadSource.js +8 -0
- package/blocks/utils/abilities.d.ts +2 -0
- package/blocks/utils/abilities.d.ts.map +1 -0
- package/blocks/utils/abilities.js +3 -0
- package/blocks/utils/comma-separated.d.ts +3 -0
- package/blocks/utils/comma-separated.d.ts.map +1 -0
- package/blocks/utils/comma-separated.js +19 -0
- package/blocks/utils/debounce.d.ts +10 -0
- package/blocks/utils/debounce.d.ts.map +1 -0
- package/blocks/utils/debounce.js +22 -0
- package/blocks/utils/resizeImage.d.ts +6 -0
- package/blocks/utils/resizeImage.d.ts.map +1 -0
- package/blocks/utils/resizeImage.js +40 -0
- package/blocks/utils/throttle.d.ts +4 -0
- package/blocks/utils/throttle.d.ts.map +1 -0
- package/blocks/utils/throttle.js +45 -0
- package/blocks/utils/userAgent.d.ts +6 -0
- package/blocks/utils/userAgent.d.ts.map +1 -0
- package/blocks/utils/userAgent.js +14 -0
- package/env.d.ts +4 -0
- package/env.d.ts.map +1 -0
- package/env.js +3 -0
- package/index.d.ts +39 -0
- package/index.d.ts.map +1 -0
- package/index.js +51 -0
- package/index.ssr.d.ts +961 -0
- package/index.ssr.d.ts.map +1 -0
- package/index.ssr.js +1461 -0
- package/locales/file-uploader/ar.d.ts +114 -0
- package/locales/file-uploader/ar.d.ts.map +1 -0
- package/locales/file-uploader/ar.js +113 -0
- package/locales/file-uploader/az.d.ts +106 -0
- package/locales/file-uploader/az.d.ts.map +1 -0
- package/locales/file-uploader/az.js +105 -0
- package/locales/file-uploader/ca.d.ts +108 -0
- package/locales/file-uploader/ca.d.ts.map +1 -0
- package/locales/file-uploader/ca.js +108 -0
- package/locales/file-uploader/cs.d.ts +110 -0
- package/locales/file-uploader/cs.d.ts.map +1 -0
- package/locales/file-uploader/cs.js +110 -0
- package/locales/file-uploader/da.d.ts +106 -0
- package/locales/file-uploader/da.d.ts.map +1 -0
- package/locales/file-uploader/da.js +106 -0
- package/locales/file-uploader/de.d.ts +106 -0
- package/locales/file-uploader/de.d.ts.map +1 -0
- package/locales/file-uploader/de.js +107 -0
- package/locales/file-uploader/el.d.ts +106 -0
- package/locales/file-uploader/el.d.ts.map +1 -0
- package/locales/file-uploader/el.js +107 -0
- package/locales/file-uploader/en.d.ts +106 -0
- package/locales/file-uploader/en.d.ts.map +1 -0
- package/locales/file-uploader/en.js +105 -0
- package/locales/file-uploader/es.d.ts +108 -0
- package/locales/file-uploader/es.d.ts.map +1 -0
- package/locales/file-uploader/es.js +108 -0
- package/locales/file-uploader/et.d.ts +106 -0
- package/locales/file-uploader/et.d.ts.map +1 -0
- package/locales/file-uploader/et.js +105 -0
- package/locales/file-uploader/fr.d.ts +108 -0
- package/locales/file-uploader/fr.d.ts.map +1 -0
- package/locales/file-uploader/fr.js +108 -0
- package/locales/file-uploader/he.d.ts +108 -0
- package/locales/file-uploader/he.d.ts.map +1 -0
- package/locales/file-uploader/he.js +107 -0
- package/locales/file-uploader/hy.d.ts +106 -0
- package/locales/file-uploader/hy.d.ts.map +1 -0
- package/locales/file-uploader/hy.js +105 -0
- package/locales/file-uploader/is.d.ts +106 -0
- package/locales/file-uploader/is.d.ts.map +1 -0
- package/locales/file-uploader/is.js +105 -0
- package/locales/file-uploader/it.d.ts +108 -0
- package/locales/file-uploader/it.d.ts.map +1 -0
- package/locales/file-uploader/it.js +108 -0
- package/locales/file-uploader/ja.d.ts +106 -0
- package/locales/file-uploader/ja.d.ts.map +1 -0
- package/locales/file-uploader/ja.js +105 -0
- package/locales/file-uploader/ka.d.ts +106 -0
- package/locales/file-uploader/ka.d.ts.map +1 -0
- package/locales/file-uploader/ka.js +105 -0
- package/locales/file-uploader/kk.d.ts +106 -0
- package/locales/file-uploader/kk.d.ts.map +1 -0
- package/locales/file-uploader/kk.js +105 -0
- package/locales/file-uploader/ko.d.ts +106 -0
- package/locales/file-uploader/ko.d.ts.map +1 -0
- package/locales/file-uploader/ko.js +104 -0
- package/locales/file-uploader/lv.d.ts +108 -0
- package/locales/file-uploader/lv.d.ts.map +1 -0
- package/locales/file-uploader/lv.js +107 -0
- package/locales/file-uploader/nb.d.ts +106 -0
- package/locales/file-uploader/nb.d.ts.map +1 -0
- package/locales/file-uploader/nb.js +105 -0
- package/locales/file-uploader/nl.d.ts +106 -0
- package/locales/file-uploader/nl.d.ts.map +1 -0
- package/locales/file-uploader/nl.js +106 -0
- package/locales/file-uploader/pl.d.ts +110 -0
- package/locales/file-uploader/pl.d.ts.map +1 -0
- package/locales/file-uploader/pl.js +109 -0
- package/locales/file-uploader/pt.d.ts +108 -0
- package/locales/file-uploader/pt.d.ts.map +1 -0
- package/locales/file-uploader/pt.js +108 -0
- package/locales/file-uploader/ro.d.ts +108 -0
- package/locales/file-uploader/ro.d.ts.map +1 -0
- package/locales/file-uploader/ro.js +108 -0
- package/locales/file-uploader/ru.d.ts +110 -0
- package/locales/file-uploader/ru.d.ts.map +1 -0
- package/locales/file-uploader/ru.js +109 -0
- package/locales/file-uploader/sk.d.ts +110 -0
- package/locales/file-uploader/sk.d.ts.map +1 -0
- package/locales/file-uploader/sk.js +109 -0
- package/locales/file-uploader/sr.d.ts +108 -0
- package/locales/file-uploader/sr.d.ts.map +1 -0
- package/locales/file-uploader/sr.js +107 -0
- package/locales/file-uploader/sv.d.ts +106 -0
- package/locales/file-uploader/sv.d.ts.map +1 -0
- package/locales/file-uploader/sv.js +105 -0
- package/locales/file-uploader/tr.d.ts +106 -0
- package/locales/file-uploader/tr.d.ts.map +1 -0
- package/locales/file-uploader/tr.js +105 -0
- package/locales/file-uploader/uk.d.ts +110 -0
- package/locales/file-uploader/uk.d.ts.map +1 -0
- package/locales/file-uploader/uk.js +109 -0
- package/locales/file-uploader/vi.d.ts +106 -0
- package/locales/file-uploader/vi.d.ts.map +1 -0
- package/locales/file-uploader/vi.js +105 -0
- package/locales/file-uploader/zh-TW.d.ts +106 -0
- package/locales/file-uploader/zh-TW.d.ts.map +1 -0
- package/locales/file-uploader/zh-TW.js +105 -0
- package/locales/file-uploader/zh.d.ts +106 -0
- package/locales/file-uploader/zh.d.ts.map +1 -0
- package/locales/file-uploader/zh.js +105 -0
- package/package.json +142 -0
- package/solutions/adaptive-image/index.d.ts +3 -0
- package/solutions/adaptive-image/index.d.ts.map +1 -0
- package/solutions/adaptive-image/index.js +5 -0
- package/solutions/cloud-image-editor/CloudImageEditor.d.ts +4 -0
- package/solutions/cloud-image-editor/CloudImageEditor.d.ts.map +1 -0
- package/solutions/cloud-image-editor/CloudImageEditor.js +12 -0
- package/solutions/cloud-image-editor/index.css +2 -0
- package/solutions/cloud-image-editor/index.d.ts +6 -0
- package/solutions/cloud-image-editor/index.d.ts.map +1 -0
- package/solutions/cloud-image-editor/index.js +11 -0
- package/solutions/file-uploader/inline/FileUploaderInline.d.ts +27 -0
- package/solutions/file-uploader/inline/FileUploaderInline.d.ts.map +1 -0
- package/solutions/file-uploader/inline/FileUploaderInline.js +75 -0
- package/solutions/file-uploader/inline/index.css +54 -0
- package/solutions/file-uploader/inline/index.d.ts +2 -0
- package/solutions/file-uploader/inline/index.d.ts.map +1 -0
- package/solutions/file-uploader/inline/index.js +1 -0
- package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts +7 -0
- package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts.map +1 -0
- package/solutions/file-uploader/minimal/FileUploaderMinimal.js +46 -0
- package/solutions/file-uploader/minimal/index.css +137 -0
- package/solutions/file-uploader/minimal/index.d.ts +14 -0
- package/solutions/file-uploader/minimal/index.d.ts.map +1 -0
- package/solutions/file-uploader/minimal/index.js +13 -0
- package/solutions/file-uploader/regular/FileUploaderRegular.d.ts +26 -0
- package/solutions/file-uploader/regular/FileUploaderRegular.d.ts.map +1 -0
- package/solutions/file-uploader/regular/FileUploaderRegular.js +66 -0
- package/solutions/file-uploader/regular/index.css +1 -0
- package/solutions/file-uploader/regular/index.d.ts +2 -0
- package/solutions/file-uploader/regular/index.d.ts.map +1 -0
- package/solutions/file-uploader/regular/index.js +1 -0
- package/types/events.d.ts +5 -0
- package/types/events.js +1 -0
- package/types/exported.d.ts +295 -0
- package/types/exported.js +1 -0
- package/types/global.d.ts +8 -0
- package/types/https.d.ts +1 -0
- package/types/index.d.ts +2 -0
- package/types/index.js +3 -0
- package/types/jsx.d.ts +63 -0
- package/types/jsx.js +1 -0
- package/utils/WindowHeightTracker.d.ts +24 -0
- package/utils/WindowHeightTracker.d.ts.map +1 -0
- package/utils/WindowHeightTracker.js +51 -0
- package/utils/cdn-utils.d.ts +59 -0
- package/utils/cdn-utils.d.ts.map +1 -0
- package/utils/cdn-utils.js +201 -0
- package/utils/cdn-utils.test.d.ts +2 -0
- package/utils/cdn-utils.test.d.ts.map +1 -0
- package/utils/cdn-utils.test.js +227 -0
- package/utils/delay.d.ts +2 -0
- package/utils/delay.d.ts.map +1 -0
- package/utils/delay.js +4 -0
- package/utils/fileTypes.d.ts +8 -0
- package/utils/fileTypes.d.ts.map +1 -0
- package/utils/fileTypes.js +95 -0
- package/utils/fileTypes.test.d.ts +2 -0
- package/utils/fileTypes.test.d.ts.map +1 -0
- package/utils/fileTypes.test.js +89 -0
- package/utils/getLocaleDirection.d.ts +2 -0
- package/utils/getLocaleDirection.d.ts.map +1 -0
- package/utils/getLocaleDirection.js +18 -0
- package/utils/getPluralForm.d.ts +3 -0
- package/utils/getPluralForm.d.ts.map +1 -0
- package/utils/getPluralForm.js +13 -0
- package/utils/getPluralForm.test.d.ts +2 -0
- package/utils/getPluralForm.test.d.ts.map +1 -0
- package/utils/getPluralForm.test.js +16 -0
- package/utils/ifRef.d.ts +7 -0
- package/utils/ifRef.d.ts.map +1 -0
- package/utils/ifRef.js +9 -0
- package/utils/isSecureTokenExpired.d.ts +4 -0
- package/utils/isSecureTokenExpired.d.ts.map +1 -0
- package/utils/isSecureTokenExpired.js +17 -0
- package/utils/isSecureTokenExpired.test.d.ts +2 -0
- package/utils/isSecureTokenExpired.test.d.ts.map +1 -0
- package/utils/isSecureTokenExpired.test.js +33 -0
- package/utils/memoize.d.ts +2 -0
- package/utils/memoize.d.ts.map +1 -0
- package/utils/memoize.js +23 -0
- package/utils/memoize.test.d.ts +2 -0
- package/utils/memoize.test.d.ts.map +1 -0
- package/utils/memoize.test.js +38 -0
- package/utils/mixinClass.d.ts +8 -0
- package/utils/mixinClass.d.ts.map +1 -0
- package/utils/mixinClass.js +18 -0
- package/utils/parseCdnUrl.d.ts +9 -0
- package/utils/parseCdnUrl.d.ts.map +1 -0
- package/utils/parseCdnUrl.js +20 -0
- package/utils/parseCdnUrl.test.d.ts +2 -0
- package/utils/parseCdnUrl.test.d.ts.map +1 -0
- package/utils/parseCdnUrl.test.js +78 -0
- package/utils/parseShrink.d.ts +5 -0
- package/utils/parseShrink.d.ts.map +1 -0
- package/utils/parseShrink.js +34 -0
- package/utils/parseShrink.test.d.ts +2 -0
- package/utils/parseShrink.test.d.ts.map +1 -0
- package/utils/parseShrink.test.js +26 -0
- package/utils/prettyBytes.d.ts +11 -0
- package/utils/prettyBytes.d.ts.map +1 -0
- package/utils/prettyBytes.js +64 -0
- package/utils/prettyBytes.test.d.ts +2 -0
- package/utils/prettyBytes.test.d.ts.map +1 -0
- package/utils/prettyBytes.test.js +99 -0
- package/utils/stringToArray.d.ts +2 -0
- package/utils/stringToArray.d.ts.map +1 -0
- package/utils/stringToArray.js +11 -0
- package/utils/stringToArray.test.d.ts +2 -0
- package/utils/stringToArray.test.d.ts.map +1 -0
- package/utils/stringToArray.test.js +20 -0
- package/utils/template-utils.d.ts +40 -0
- package/utils/template-utils.d.ts.map +1 -0
- package/utils/template-utils.js +50 -0
- package/utils/template-utils.test.d.ts +2 -0
- package/utils/template-utils.test.d.ts.map +1 -0
- package/utils/template-utils.test.js +56 -0
- package/utils/toKebabCase.d.ts +3 -0
- package/utils/toKebabCase.d.ts.map +1 -0
- package/utils/toKebabCase.js +15 -0
- package/utils/toKebabCase.test.d.ts +2 -0
- package/utils/toKebabCase.test.d.ts.map +1 -0
- package/utils/toKebabCase.test.js +11 -0
- package/utils/transparentPixelSrc.d.ts +2 -0
- package/utils/transparentPixelSrc.d.ts.map +1 -0
- package/utils/transparentPixelSrc.js +2 -0
- package/utils/uniqueArray.d.ts +2 -0
- package/utils/uniqueArray.d.ts.map +1 -0
- package/utils/uniqueArray.js +8 -0
- package/utils/uniqueArray.test.d.ts +2 -0
- package/utils/uniqueArray.test.d.ts.map +1 -0
- package/utils/uniqueArray.test.js +8 -0
- package/utils/validators/collection/index.d.ts +3 -0
- package/utils/validators/collection/index.d.ts.map +1 -0
- package/utils/validators/collection/index.js +2 -0
- package/utils/validators/collection/validateCollectionUploadError.d.ts +3 -0
- package/utils/validators/collection/validateCollectionUploadError.d.ts.map +1 -0
- package/utils/validators/collection/validateCollectionUploadError.js +11 -0
- package/utils/validators/collection/validateMultiple.d.ts +3 -0
- package/utils/validators/collection/validateMultiple.d.ts.map +1 -0
- package/utils/validators/collection/validateMultiple.js +43 -0
- package/utils/validators/file/index.d.ts +5 -0
- package/utils/validators/file/index.d.ts.map +1 -0
- package/utils/validators/file/index.js +4 -0
- package/utils/validators/file/validateFileType.d.ts +3 -0
- package/utils/validators/file/validateFileType.d.ts.map +1 -0
- package/utils/validators/file/validateFileType.js +30 -0
- package/utils/validators/file/validateIsImage.d.ts +3 -0
- package/utils/validators/file/validateIsImage.d.ts.map +1 -0
- package/utils/validators/file/validateIsImage.js +25 -0
- package/utils/validators/file/validateMaxSizeLimit.d.ts +3 -0
- package/utils/validators/file/validateMaxSizeLimit.d.ts.map +1 -0
- package/utils/validators/file/validateMaxSizeLimit.js +15 -0
- package/utils/validators/file/validateUploadError.d.ts +3 -0
- package/utils/validators/file/validateUploadError.d.ts.map +1 -0
- package/utils/validators/file/validateUploadError.js +48 -0
- package/utils/waitForAttribute.d.ts +8 -0
- package/utils/waitForAttribute.d.ts.map +1 -0
- package/utils/waitForAttribute.js +43 -0
- package/utils/waitForAttribute.test.d.ts +2 -0
- package/utils/waitForAttribute.test.d.ts.map +1 -0
- package/utils/waitForAttribute.test.js +78 -0
- package/utils/warnOnce.d.ts +3 -0
- package/utils/warnOnce.d.ts.map +1 -0
- package/utils/warnOnce.js +11 -0
- package/utils/wildcardRegexp.d.ts +2 -0
- package/utils/wildcardRegexp.d.ts.map +1 -0
- package/utils/wildcardRegexp.js +17 -0
- package/utils/wildcardRegexp.test.d.ts +2 -0
- package/utils/wildcardRegexp.test.d.ts.map +1 -0
- package/utils/wildcardRegexp.test.js +19 -0
- package/web/blocks.iife.min.js +29 -0
- package/web/blocks.min.js +29 -0
- package/web/lr-basic.min.css +1 -0
- package/web/lr-cloud-image-editor.min.css +1 -0
- package/web/lr-cloud-image-editor.min.js +29 -0
- package/web/lr-file-uploader-inline.min.css +1 -0
- package/web/lr-file-uploader-inline.min.js +29 -0
- package/web/lr-file-uploader-minimal.min.css +1 -0
- package/web/lr-file-uploader-minimal.min.js +28 -0
- package/web/lr-file-uploader-regular.min.css +1 -0
- package/web/lr-file-uploader-regular.min.js +29 -0
- package/web/lr-img.min.js +28 -0
- package/web/uc-basic.min.css +1 -0
- package/web/uc-cloud-image-editor.min.css +1 -0
- package/web/uc-cloud-image-editor.min.js +29 -0
- package/web/uc-file-uploader-inline.min.css +1 -0
- package/web/uc-file-uploader-inline.min.js +29 -0
- package/web/uc-file-uploader-minimal.min.css +1 -0
- package/web/uc-file-uploader-minimal.min.js +28 -0
- package/web/uc-file-uploader-regular.min.css +1 -0
- package/web/uc-file-uploader-regular.min.js +29 -0
- package/web/uc-img.min.js +28 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import { isSecureTokenExpired } from '../utils/isSecureTokenExpired.js';
|
|
4
|
+
|
|
5
|
+
export class SecureUploadsManager {
|
|
6
|
+
/**
|
|
7
|
+
* @private
|
|
8
|
+
* @type {import('./UploaderBlock.js').UploaderBlock}
|
|
9
|
+
*/
|
|
10
|
+
_block;
|
|
11
|
+
/**
|
|
12
|
+
* @private
|
|
13
|
+
* @type {import('../types').SecureUploadsSignatureAndExpire | null}
|
|
14
|
+
*/
|
|
15
|
+
_secureToken = null;
|
|
16
|
+
|
|
17
|
+
/** @param {import('./UploaderBlock.js').UploaderBlock} block */
|
|
18
|
+
constructor(block) {
|
|
19
|
+
this._block = block;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @private
|
|
24
|
+
* @param {unknown[]} args
|
|
25
|
+
*/
|
|
26
|
+
_debugPrint(...args) {
|
|
27
|
+
this._block.debugPrint('[secure-uploads]', ...args);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** @returns {Promise<import('../types').SecureUploadsSignatureAndExpire | null>} */
|
|
31
|
+
async getSecureToken() {
|
|
32
|
+
const { secureSignature, secureExpire, secureUploadsSignatureResolver } = this._block.cfg;
|
|
33
|
+
|
|
34
|
+
if ((secureSignature || secureExpire) && secureUploadsSignatureResolver) {
|
|
35
|
+
console.warn(
|
|
36
|
+
'Both secureSignature/secureExpire and secureUploadsSignatureResolver are set. secureUploadsSignatureResolver will be used.',
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (secureUploadsSignatureResolver) {
|
|
41
|
+
if (
|
|
42
|
+
!this._secureToken ||
|
|
43
|
+
isSecureTokenExpired(this._secureToken, { threshold: this._block.cfg.secureUploadsExpireThreshold })
|
|
44
|
+
) {
|
|
45
|
+
if (!this._secureToken) {
|
|
46
|
+
this._debugPrint('Secure signature is not set yet.');
|
|
47
|
+
} else {
|
|
48
|
+
this._debugPrint('Secure signature is expired. Resolving a new one...');
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const result = await secureUploadsSignatureResolver();
|
|
52
|
+
if (!result) {
|
|
53
|
+
this._debugPrint('Secure signature resolver returned nothing.');
|
|
54
|
+
this._secureToken = null;
|
|
55
|
+
} else if (!result.secureSignature || !result.secureExpire) {
|
|
56
|
+
console.error('Secure signature resolver returned an invalid result:', result);
|
|
57
|
+
} else {
|
|
58
|
+
this._debugPrint('Secure signature resolved:', result);
|
|
59
|
+
this._debugPrint(
|
|
60
|
+
'Secure signature will expire in',
|
|
61
|
+
new Date(Number(result.secureExpire) * 1000).toISOString(),
|
|
62
|
+
);
|
|
63
|
+
this._secureToken = result;
|
|
64
|
+
}
|
|
65
|
+
} catch (err) {
|
|
66
|
+
console.error('Secure signature resolving failed. Falling back to the previous one.', err);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return this._secureToken;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (secureSignature && secureExpire) {
|
|
74
|
+
this._debugPrint('Secure signature and expire are set. Using them...', {
|
|
75
|
+
secureSignature,
|
|
76
|
+
secureExpire,
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
secureSignature,
|
|
81
|
+
secureExpire,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class SolutionBlock extends Block {
|
|
2
|
+
static set template(value: any);
|
|
3
|
+
static get template(): any;
|
|
4
|
+
init$: {
|
|
5
|
+
'*commonProgress': number;
|
|
6
|
+
'*uploadList': never[];
|
|
7
|
+
'*focusedEntry': null;
|
|
8
|
+
'*uploadQueue': import("@uploadcare/upload-client").Queue;
|
|
9
|
+
'*collectionErrors': any[];
|
|
10
|
+
'*collectionState': import("../index.js").OutputCollectionState<import("../index.js").OutputCollectionStatus, "maybe-has-group"> | null;
|
|
11
|
+
'*groupInfo': import("@uploadcare/upload-client").UploadcareGroup | null;
|
|
12
|
+
'*uploadTrigger': Set<string>;
|
|
13
|
+
'*secureUploadsManager': import("./SecureUploadsManager.js").SecureUploadsManager | null;
|
|
14
|
+
'*currentActivity': null;
|
|
15
|
+
'*currentActivityParams': {};
|
|
16
|
+
'*history': never[];
|
|
17
|
+
'*historyBack': null;
|
|
18
|
+
'*closeModal': () => void;
|
|
19
|
+
};
|
|
20
|
+
_template: null;
|
|
21
|
+
}
|
|
22
|
+
import { Block } from './Block.js';
|
|
23
|
+
//# sourceMappingURL=SolutionBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolutionBlock.d.ts","sourceRoot":"","sources":["SolutionBlock.js"],"names":[],"mappings":"AAIA;IAWE,gCAEC;IAED,2BAEC;IAdD;;;;;;;;;;;;;;;MAA+B;IAC/B,gBAAiB;CAclB;sBArBqB,YAAY"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import svgIconsSprite from '../blocks/themes/uc-basic/svg-sprite.js';
|
|
2
|
+
import { Block } from './Block.js';
|
|
3
|
+
import { uploaderBlockCtx } from './CTX.js';
|
|
4
|
+
|
|
5
|
+
export class SolutionBlock extends Block {
|
|
6
|
+
static styleAttrs = ['uc-wgt-common'];
|
|
7
|
+
requireCtxName = true;
|
|
8
|
+
init$ = uploaderBlockCtx(this);
|
|
9
|
+
_template = null;
|
|
10
|
+
|
|
11
|
+
initCallback() {
|
|
12
|
+
super.initCallback();
|
|
13
|
+
this.a11y?.registerBlock(this);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static set template(value) {
|
|
17
|
+
this._template = svgIconsSprite + value + /** HTML */ `<slot></slot>`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static get template() {
|
|
21
|
+
return this._template;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export class TypedCollection {
|
|
2
|
+
/**
|
|
3
|
+
* @param {Object} options
|
|
4
|
+
* @param {Object<string, { type: any; value: any }>} options.typedSchema
|
|
5
|
+
* @param {String[]} [options.watchList]
|
|
6
|
+
* @param {(list: string[], added: Set<any>, removed: Set<any>) => void} [options.handler]
|
|
7
|
+
* @param {String} [options.ctxName]
|
|
8
|
+
*/
|
|
9
|
+
constructor(options: {
|
|
10
|
+
typedSchema: {
|
|
11
|
+
[x: string]: {
|
|
12
|
+
type: any;
|
|
13
|
+
value: any;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
watchList?: string[] | undefined;
|
|
17
|
+
handler?: ((list: string[], added: Set<any>, removed: Set<any>) => void) | undefined;
|
|
18
|
+
ctxName?: string | undefined;
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
* @type {Object<string, { type: any; value: any }>}
|
|
23
|
+
*/
|
|
24
|
+
private __typedSchema;
|
|
25
|
+
/**
|
|
26
|
+
* @private
|
|
27
|
+
* @type {String}
|
|
28
|
+
*/
|
|
29
|
+
private __ctxId;
|
|
30
|
+
/**
|
|
31
|
+
* @private
|
|
32
|
+
* @type {Data}
|
|
33
|
+
*/
|
|
34
|
+
private __data;
|
|
35
|
+
/**
|
|
36
|
+
* @private
|
|
37
|
+
* @type {string[]}
|
|
38
|
+
*/
|
|
39
|
+
private __watchList;
|
|
40
|
+
/**
|
|
41
|
+
* @private
|
|
42
|
+
* @type {Object<string, any>}
|
|
43
|
+
*/
|
|
44
|
+
private __subsMap;
|
|
45
|
+
/**
|
|
46
|
+
* @private
|
|
47
|
+
* @type {Set<Function>}
|
|
48
|
+
*/
|
|
49
|
+
private __propertyObservers;
|
|
50
|
+
/**
|
|
51
|
+
* @private
|
|
52
|
+
* @type {Set<(list: string[], added: Set<any>, removed: Set<any>) => void>}
|
|
53
|
+
*/
|
|
54
|
+
private __collectionObservers;
|
|
55
|
+
/**
|
|
56
|
+
* @private
|
|
57
|
+
* @type {Set<string>}
|
|
58
|
+
*/
|
|
59
|
+
private __items;
|
|
60
|
+
/**
|
|
61
|
+
* @private
|
|
62
|
+
* @type {Set<any>}
|
|
63
|
+
*/
|
|
64
|
+
private __removed;
|
|
65
|
+
/**
|
|
66
|
+
* @private
|
|
67
|
+
* @type {Set<any>}
|
|
68
|
+
*/
|
|
69
|
+
private __added;
|
|
70
|
+
/**
|
|
71
|
+
* @private
|
|
72
|
+
* @param {String} propName
|
|
73
|
+
* @param {String} ctxId
|
|
74
|
+
*/
|
|
75
|
+
private __notifyObservers;
|
|
76
|
+
/** @private */
|
|
77
|
+
private __observeTimeout;
|
|
78
|
+
notify(): void;
|
|
79
|
+
/** @private */
|
|
80
|
+
private __notifyTimeout;
|
|
81
|
+
/** @param {(list: string[], added: Set<any>, removed: Set<any>) => void} handler */
|
|
82
|
+
observeCollection(handler: (list: string[], added: Set<any>, removed: Set<any>) => void): () => void;
|
|
83
|
+
/** @param {Function} handler */
|
|
84
|
+
unobserveCollection(handler: Function): void;
|
|
85
|
+
/**
|
|
86
|
+
* @param {Object<string, any>} init
|
|
87
|
+
* @returns {string}
|
|
88
|
+
*/
|
|
89
|
+
add(init: {
|
|
90
|
+
[x: string]: any;
|
|
91
|
+
}): string;
|
|
92
|
+
/**
|
|
93
|
+
* @param {String} id
|
|
94
|
+
* @returns {TypedData}
|
|
95
|
+
*/
|
|
96
|
+
read(id: string): TypedData;
|
|
97
|
+
/**
|
|
98
|
+
* @param {String} id
|
|
99
|
+
* @param {String} propName
|
|
100
|
+
* @returns {any}
|
|
101
|
+
*/
|
|
102
|
+
readProp(id: string, propName: string): any;
|
|
103
|
+
/**
|
|
104
|
+
* @template T
|
|
105
|
+
* @param {String} id
|
|
106
|
+
* @param {String} propName
|
|
107
|
+
* @param {T} value
|
|
108
|
+
*/
|
|
109
|
+
publishProp<T>(id: string, propName: string, value: T): void;
|
|
110
|
+
/** @param {String} id */
|
|
111
|
+
remove(id: string): void;
|
|
112
|
+
clearAll(): void;
|
|
113
|
+
/** @param {Function} handler */
|
|
114
|
+
observeProperties(handler: Function): () => void;
|
|
115
|
+
/** @param {Function} handler */
|
|
116
|
+
unobserveProperties(handler: Function): void;
|
|
117
|
+
/**
|
|
118
|
+
* @param {(item: TypedData) => Boolean} checkFn
|
|
119
|
+
* @returns {String[]}
|
|
120
|
+
*/
|
|
121
|
+
findItems(checkFn: (item: TypedData) => boolean): string[];
|
|
122
|
+
items(): string[];
|
|
123
|
+
get size(): number;
|
|
124
|
+
destroy(): void;
|
|
125
|
+
}
|
|
126
|
+
import { TypedData } from './TypedData.js';
|
|
127
|
+
//# sourceMappingURL=TypedCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedCollection.d.ts","sourceRoot":"","sources":["TypedCollection.js"],"names":[],"mappings":"AAGA;IACE;;;;;;OAMG;IACH;QAL8D,WAAW;gBAAvD,MAAM,GAAE;gBAAE,IAAI,EAAE,GAAG,CAAC;gBAAC,KAAK,EAAE,GAAG,CAAA;aAAE;;QACrB,SAAS;QAC2C,OAAO,WAAvE,MAAM,EAAE,SAAS,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK,IAAI;QAC3C,OAAO;OAgFlC;IA7EC;;;OAGG;IACH,sBAAwC;IACxC;;;OAGG;IACH,gBAAgD;IAChD;;;OAGG;IACH,eAAgD;IAChD;;;OAGG;IACH,oBAA0C;IAC1C;;;OAGG;IACH,kBAAoC;IACpC;;;OAGG;IACH,4BAAoC;IACpC;;;OAGG;IACH,8BAAsC;IACtC;;;OAGG;IACH,gBAAwB;IACxB;;;OAGG;IACH,kBAA0B;IAC1B;;;OAGG;IACH,gBAAwB;IAIxB;;;;OAIG;IACH,0BAkBC;IAVC,eAAe;IACf,yBAQE;IAIN,eAcC;IAVC,eAAe;IACf,wBAQE;IAGJ,oFAAoF;IACpF,kCADmB,MAAM,EAAE,SAAS,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK,IAAI,cAWvE;IAED,gCAAgC;IAChC,6CAEC;IAED;;;OAGG;IACH;YAHkB,MAAM,GAAE,GAAG;QAChB,MAAM,CAuBlB;IAED;;;OAGG;IACH,kBAFa,SAAS,CAIrB;IAED;;;;OAIG;IACH,wCAFa,GAAG,CAKf;IAED;;;;;OAKG;IACH,6DAGC;IAED,yBAAyB;IACzB,yBAMC;IAED,iBAIC;IAED,gCAAgC;IAChC,iDAMC;IAED,gCAAgC;IAChC,6CAEC;IAED;;;OAGG;IACH,0BAHkB,SAAS,eACd,QAAQ,CAWpB;IAED,kBAEC;IAED,mBAEC;IAED,gBAUC;CACF;0BAnPyB,gBAAgB"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { Data, UID } from '@symbiotejs/symbiote';
|
|
2
|
+
import { TypedData } from './TypedData.js';
|
|
3
|
+
|
|
4
|
+
export class TypedCollection {
|
|
5
|
+
/**
|
|
6
|
+
* @param {Object} options
|
|
7
|
+
* @param {Object<string, { type: any; value: any }>} options.typedSchema
|
|
8
|
+
* @param {String[]} [options.watchList]
|
|
9
|
+
* @param {(list: string[], added: Set<any>, removed: Set<any>) => void} [options.handler]
|
|
10
|
+
* @param {String} [options.ctxName]
|
|
11
|
+
*/
|
|
12
|
+
constructor(options) {
|
|
13
|
+
/**
|
|
14
|
+
* @private
|
|
15
|
+
* @type {Object<string, { type: any; value: any }>}
|
|
16
|
+
*/
|
|
17
|
+
this.__typedSchema = options.typedSchema;
|
|
18
|
+
/**
|
|
19
|
+
* @private
|
|
20
|
+
* @type {String}
|
|
21
|
+
*/
|
|
22
|
+
this.__ctxId = options.ctxName || UID.generate();
|
|
23
|
+
/**
|
|
24
|
+
* @private
|
|
25
|
+
* @type {Data}
|
|
26
|
+
*/
|
|
27
|
+
this.__data = Data.registerCtx({}, this.__ctxId);
|
|
28
|
+
/**
|
|
29
|
+
* @private
|
|
30
|
+
* @type {string[]}
|
|
31
|
+
*/
|
|
32
|
+
this.__watchList = options.watchList || [];
|
|
33
|
+
/**
|
|
34
|
+
* @private
|
|
35
|
+
* @type {Object<string, any>}
|
|
36
|
+
*/
|
|
37
|
+
this.__subsMap = Object.create(null);
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
* @type {Set<Function>}
|
|
41
|
+
*/
|
|
42
|
+
this.__propertyObservers = new Set();
|
|
43
|
+
/**
|
|
44
|
+
* @private
|
|
45
|
+
* @type {Set<(list: string[], added: Set<any>, removed: Set<any>) => void>}
|
|
46
|
+
*/
|
|
47
|
+
this.__collectionObservers = new Set();
|
|
48
|
+
/**
|
|
49
|
+
* @private
|
|
50
|
+
* @type {Set<string>}
|
|
51
|
+
*/
|
|
52
|
+
this.__items = new Set();
|
|
53
|
+
/**
|
|
54
|
+
* @private
|
|
55
|
+
* @type {Set<any>}
|
|
56
|
+
*/
|
|
57
|
+
this.__removed = new Set();
|
|
58
|
+
/**
|
|
59
|
+
* @private
|
|
60
|
+
* @type {Set<any>}
|
|
61
|
+
*/
|
|
62
|
+
this.__added = new Set();
|
|
63
|
+
|
|
64
|
+
let changeMap = Object.create(null);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @private
|
|
68
|
+
* @param {String} propName
|
|
69
|
+
* @param {String} ctxId
|
|
70
|
+
*/
|
|
71
|
+
this.__notifyObservers = (propName, ctxId) => {
|
|
72
|
+
if (this.__observeTimeout) {
|
|
73
|
+
window.clearTimeout(this.__observeTimeout);
|
|
74
|
+
}
|
|
75
|
+
if (!changeMap[propName]) {
|
|
76
|
+
changeMap[propName] = new Set();
|
|
77
|
+
}
|
|
78
|
+
changeMap[propName].add(ctxId);
|
|
79
|
+
/** @private */
|
|
80
|
+
this.__observeTimeout = window.setTimeout(() => {
|
|
81
|
+
if (Object.keys(changeMap).length === 0) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
this.__propertyObservers.forEach((handler) => {
|
|
85
|
+
handler({ ...changeMap });
|
|
86
|
+
});
|
|
87
|
+
changeMap = Object.create(null);
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
notify() {
|
|
93
|
+
if (this.__notifyTimeout) {
|
|
94
|
+
window.clearTimeout(this.__notifyTimeout);
|
|
95
|
+
}
|
|
96
|
+
/** @private */
|
|
97
|
+
this.__notifyTimeout = window.setTimeout(() => {
|
|
98
|
+
let added = new Set(this.__added);
|
|
99
|
+
let removed = new Set(this.__removed);
|
|
100
|
+
this.__added.clear();
|
|
101
|
+
this.__removed.clear();
|
|
102
|
+
for (const handler of this.__collectionObservers) {
|
|
103
|
+
handler?.([...this.__items], added, removed);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** @param {(list: string[], added: Set<any>, removed: Set<any>) => void} handler */
|
|
109
|
+
observeCollection(handler) {
|
|
110
|
+
this.__collectionObservers.add(handler);
|
|
111
|
+
|
|
112
|
+
if (this.__items.size > 0) {
|
|
113
|
+
this.notify();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return () => {
|
|
117
|
+
this.unobserveCollection(handler);
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** @param {Function} handler */
|
|
122
|
+
unobserveCollection(handler) {
|
|
123
|
+
this.__collectionObservers?.delete(handler);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @param {Object<string, any>} init
|
|
128
|
+
* @returns {string}
|
|
129
|
+
*/
|
|
130
|
+
add(init) {
|
|
131
|
+
let item = new TypedData(this.__typedSchema);
|
|
132
|
+
for (let prop in init) {
|
|
133
|
+
item.setValue(prop, init[prop]);
|
|
134
|
+
}
|
|
135
|
+
this.__items.add(item.uid);
|
|
136
|
+
this.notify();
|
|
137
|
+
|
|
138
|
+
this.__data.add(item.uid, item);
|
|
139
|
+
this.__added.add(item);
|
|
140
|
+
this.__watchList.forEach((propName) => {
|
|
141
|
+
if (!this.__subsMap[item.uid]) {
|
|
142
|
+
this.__subsMap[item.uid] = [];
|
|
143
|
+
}
|
|
144
|
+
this.__subsMap[item.uid].push(
|
|
145
|
+
item.subscribe(propName, () => {
|
|
146
|
+
this.__notifyObservers(propName, item.uid);
|
|
147
|
+
}),
|
|
148
|
+
);
|
|
149
|
+
});
|
|
150
|
+
return item.uid;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* @param {String} id
|
|
155
|
+
* @returns {TypedData}
|
|
156
|
+
*/
|
|
157
|
+
read(id) {
|
|
158
|
+
return this.__data.read(id);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @param {String} id
|
|
163
|
+
* @param {String} propName
|
|
164
|
+
* @returns {any}
|
|
165
|
+
*/
|
|
166
|
+
readProp(id, propName) {
|
|
167
|
+
let item = this.read(id);
|
|
168
|
+
return item.getValue(propName);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* @template T
|
|
173
|
+
* @param {String} id
|
|
174
|
+
* @param {String} propName
|
|
175
|
+
* @param {T} value
|
|
176
|
+
*/
|
|
177
|
+
publishProp(id, propName, value) {
|
|
178
|
+
let item = this.read(id);
|
|
179
|
+
item.setValue(propName, value);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/** @param {String} id */
|
|
183
|
+
remove(id) {
|
|
184
|
+
this.__removed.add(this.__data.read(id));
|
|
185
|
+
this.__items.delete(id);
|
|
186
|
+
this.notify();
|
|
187
|
+
this.__data.pub(id, null);
|
|
188
|
+
delete this.__subsMap[id];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
clearAll() {
|
|
192
|
+
this.__items.forEach((id) => {
|
|
193
|
+
this.remove(id);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/** @param {Function} handler */
|
|
198
|
+
observeProperties(handler) {
|
|
199
|
+
this.__propertyObservers.add(handler);
|
|
200
|
+
|
|
201
|
+
return () => {
|
|
202
|
+
this.unobserveProperties(handler);
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** @param {Function} handler */
|
|
207
|
+
unobserveProperties(handler) {
|
|
208
|
+
this.__propertyObservers?.delete(handler);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* @param {(item: TypedData) => Boolean} checkFn
|
|
213
|
+
* @returns {String[]}
|
|
214
|
+
*/
|
|
215
|
+
findItems(checkFn) {
|
|
216
|
+
let result = [];
|
|
217
|
+
this.__items.forEach((id) => {
|
|
218
|
+
let item = this.read(id);
|
|
219
|
+
if (checkFn(item)) {
|
|
220
|
+
result.push(id);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
return result;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
items() {
|
|
227
|
+
return [...this.__items];
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
get size() {
|
|
231
|
+
return this.__items.size;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
destroy() {
|
|
235
|
+
Data.deleteCtx(this.__ctxId);
|
|
236
|
+
this.__propertyObservers = null;
|
|
237
|
+
this.__collectionObservers = null;
|
|
238
|
+
for (let id in this.__subsMap) {
|
|
239
|
+
this.__subsMap[id].forEach((sub) => {
|
|
240
|
+
sub.remove();
|
|
241
|
+
});
|
|
242
|
+
delete this.__subsMap[id];
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export class TypedData {
|
|
2
|
+
/**
|
|
3
|
+
* @param {Object<string, { type: any; value: any; nullable?: Boolean }>} typedSchema
|
|
4
|
+
* @param {String} [ctxName]
|
|
5
|
+
*/
|
|
6
|
+
constructor(typedSchema: {
|
|
7
|
+
[x: string]: {
|
|
8
|
+
type: any;
|
|
9
|
+
value: any;
|
|
10
|
+
nullable?: boolean;
|
|
11
|
+
};
|
|
12
|
+
}, ctxName?: string | undefined);
|
|
13
|
+
/** @private */
|
|
14
|
+
private __typedSchema;
|
|
15
|
+
/** @private */
|
|
16
|
+
private __ctxId;
|
|
17
|
+
/** @private */
|
|
18
|
+
private __schema;
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
* @type {Data}
|
|
22
|
+
*/
|
|
23
|
+
private __data;
|
|
24
|
+
/** @returns {String} */
|
|
25
|
+
get uid(): string;
|
|
26
|
+
/**
|
|
27
|
+
* @param {String} prop
|
|
28
|
+
* @param {any} value
|
|
29
|
+
*/
|
|
30
|
+
setValue(prop: string, value: any): void;
|
|
31
|
+
/** @param {Object<string, any>} updObj */
|
|
32
|
+
setMultipleValues(updObj: {
|
|
33
|
+
[x: string]: any;
|
|
34
|
+
}): void;
|
|
35
|
+
/** @param {String} prop */
|
|
36
|
+
getValue(prop: string): any;
|
|
37
|
+
/**
|
|
38
|
+
* @param {String} prop
|
|
39
|
+
* @param {(newVal: any) => void} handler
|
|
40
|
+
*/
|
|
41
|
+
subscribe(prop: string, handler: (newVal: any) => void): {
|
|
42
|
+
remove: () => void;
|
|
43
|
+
callback: Function;
|
|
44
|
+
};
|
|
45
|
+
remove(): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=TypedData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedData.d.ts","sourceRoot":"","sources":["TypedData.js"],"names":[],"mappings":"AAKA;IACE;;;OAGG;IACH;YAHkB,MAAM,GAAE;YAAE,IAAI,EAAE,GAAG,CAAC;YAAC,KAAK,EAAE,GAAG,CAAC;YAAC,QAAQ,CAAC,UAAS;SAAE;qCAkBtE;IAdC,eAAe;IACf,sBAAgC;IAChC,eAAe;IACf,gBAAwC;IACxC,eAAe;IACf,iBAGM;IACN;;;OAGG;IACH,eAA2D;IAG7D,wBAAwB;IACxB,kBAEC;IAED;;;OAGG;IACH,8BAFW,GAAG,QAab;IAED,0CAA0C;IAC1C;YADmB,MAAM,GAAE,GAAG;aAK7B;IAED,2BAA2B;IAC3B,4BAMC;IAED;;;OAGG;IACH,0CAFoB,GAAG,KAAK,IAAI;;;MAI/B;IAED,eAEC;CACF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Data, UID } from '@symbiotejs/symbiote';
|
|
2
|
+
|
|
3
|
+
const MSG_NAME = '[Typed State] Wrong property name: ';
|
|
4
|
+
const MSG_TYPE = '[Typed State] Wrong property type: ';
|
|
5
|
+
|
|
6
|
+
export class TypedData {
|
|
7
|
+
/**
|
|
8
|
+
* @param {Object<string, { type: any; value: any; nullable?: Boolean }>} typedSchema
|
|
9
|
+
* @param {String} [ctxName]
|
|
10
|
+
*/
|
|
11
|
+
constructor(typedSchema, ctxName) {
|
|
12
|
+
/** @private */
|
|
13
|
+
this.__typedSchema = typedSchema;
|
|
14
|
+
/** @private */
|
|
15
|
+
this.__ctxId = ctxName || UID.generate();
|
|
16
|
+
/** @private */
|
|
17
|
+
this.__schema = Object.keys(typedSchema).reduce((acc, key) => {
|
|
18
|
+
acc[key] = typedSchema[key].value;
|
|
19
|
+
return acc;
|
|
20
|
+
}, {});
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
* @type {Data}
|
|
24
|
+
*/
|
|
25
|
+
this.__data = Data.registerCtx(this.__schema, this.__ctxId);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** @returns {String} */
|
|
29
|
+
get uid() {
|
|
30
|
+
return this.__ctxId;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @param {String} prop
|
|
35
|
+
* @param {any} value
|
|
36
|
+
*/
|
|
37
|
+
setValue(prop, value) {
|
|
38
|
+
if (!this.__typedSchema.hasOwnProperty(prop)) {
|
|
39
|
+
console.warn(MSG_NAME + prop);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
let pDesc = this.__typedSchema[prop];
|
|
43
|
+
if (value?.constructor === pDesc.type || value instanceof pDesc.type || (pDesc.nullable && value === null)) {
|
|
44
|
+
this.__data.pub(prop, value);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.warn(MSG_TYPE + prop);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** @param {Object<string, any>} updObj */
|
|
51
|
+
setMultipleValues(updObj) {
|
|
52
|
+
for (let prop in updObj) {
|
|
53
|
+
this.setValue(prop, updObj[prop]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** @param {String} prop */
|
|
58
|
+
getValue(prop) {
|
|
59
|
+
if (!this.__typedSchema.hasOwnProperty(prop)) {
|
|
60
|
+
console.warn(MSG_NAME + prop);
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return this.__data.read(prop);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @param {String} prop
|
|
68
|
+
* @param {(newVal: any) => void} handler
|
|
69
|
+
*/
|
|
70
|
+
subscribe(prop, handler) {
|
|
71
|
+
return this.__data.sub(prop, handler);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
remove() {
|
|
75
|
+
Data.deleteCtx(this.__ctxId);
|
|
76
|
+
}
|
|
77
|
+
}
|