opentiny 6.9.8 → 6.9.10

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/tinymce.d.ts CHANGED
@@ -508,6 +508,7 @@ interface FormComponentSpec {
508
508
  }
509
509
  interface FormComponentWithLabelSpec extends FormComponentSpec {
510
510
  label?: string;
511
+ tooltip?: string;
511
512
  }
512
513
  interface CheckboxSpec extends FormComponentSpec {
513
514
  type: 'checkbox';
@@ -587,6 +588,7 @@ interface LabelSpec {
587
588
  label: string;
588
589
  items: BodyComponentSpec[];
589
590
  align?: Alignment;
591
+ tooltip?: string;
590
592
  }
591
593
  interface ListBoxSingleItemSpec {
592
594
  text: string;
package/tinymce.js CHANGED
@@ -7019,6 +7019,10 @@
7019
7019
  default: false
7020
7020
  });
7021
7021
  registerOption('images_upload_handler', { processor: 'function' });
7022
+ registerOption('images_upload_max_concurrent_uploads', {
7023
+ processor: 'number',
7024
+ default: 5
7025
+ });
7022
7026
  registerOption('language', {
7023
7027
  processor: 'string',
7024
7028
  default: 'en'
@@ -7643,6 +7647,7 @@
7643
7647
  const getImageUploadBasePath = option('images_upload_base_path');
7644
7648
  const getImagesUploadCredentials = option('images_upload_credentials');
7645
7649
  const getImagesUploadHandler = option('images_upload_handler');
7650
+ const getImagesUploadMaxConcurrentUploads = option('images_upload_max_concurrent_uploads');
7646
7651
  const shouldUseContentCssCors = option('content_css_cors');
7647
7652
  const getReferrerPolicy = option('referrer_policy');
7648
7653
  const getLanguageCode = option('language');
@@ -19942,6 +19947,16 @@
19942
19947
  };
19943
19948
  };
19944
19949
 
19950
+ const concurrentQueue = async (item, threads, fn) => {
19951
+ let i = 0;
19952
+ const result = Array(item.length);
19953
+ await Promise.all([...Array(threads)].map(async () => {
19954
+ while (i < item.length)
19955
+ result[i] = await fn(item[i], i++, item);
19956
+ }));
19957
+ return result;
19958
+ };
19959
+
19945
19960
  const Uploader = (uploadStatus, settings) => {
19946
19961
  const pendingPromises = {};
19947
19962
  const pathJoin = (path1, path2) => {
@@ -20048,7 +20063,7 @@
20048
20063
  };
20049
20064
  const uploadBlobs = (blobInfos, openNotification) => {
20050
20065
  blobInfos = Tools.grep(blobInfos, blobInfo => !uploadStatus.isUploaded(blobInfo.blobUri()));
20051
- return Promise.all(Tools.map(blobInfos, blobInfo => uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, uploadHandler, openNotification)));
20066
+ return concurrentQueue(blobInfos, settings.maxConcurrentUploads, blobInfo => uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, uploadHandler, openNotification));
20052
20067
  };
20053
20068
  const upload = (blobInfos, openNotification) => !settings.url && isDefaultHandler(uploadHandler) ? noUpload() : uploadBlobs(blobInfos, openNotification);
20054
20069
  return { upload };
@@ -20064,6 +20079,7 @@
20064
20079
  url: getImageUploadUrl(editor),
20065
20080
  basePath: getImageUploadBasePath(editor),
20066
20081
  credentials: getImagesUploadCredentials(editor),
20082
+ maxConcurrentUploads: getImagesUploadMaxConcurrentUploads(editor),
20067
20083
  handler: getImagesUploadHandler(editor)
20068
20084
  });
20069
20085
  const ImageUploader = editor => {