@uploadcare/file-uploader 0.50.1-alpha.2 → 0.50.1

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.
Files changed (114) hide show
  1. package/README.md +30 -30
  2. package/abstract/Block.d.ts +4 -2
  3. package/abstract/Block.d.ts.map +1 -1
  4. package/abstract/Block.js +16 -22
  5. package/abstract/SolutionBlock.js +2 -2
  6. package/abstract/UploaderBlock.js +4 -4
  7. package/abstract/connectBlocksFrom.d.ts +1 -1
  8. package/abstract/connectBlocksFrom.js +4 -4
  9. package/abstract/registerBlocks.d.ts.map +1 -1
  10. package/abstract/registerBlocks.js +2 -13
  11. package/blocks/ActivityHeader/activity-header.css +2 -2
  12. package/blocks/CameraSource/CameraSource.js +8 -8
  13. package/blocks/CameraSource/camera-source.css +14 -14
  14. package/blocks/CloudImageEditor/src/CloudImageEditorBlock.js +2 -2
  15. package/blocks/CloudImageEditor/src/EditorButtonControl.js +1 -1
  16. package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts +2 -2
  17. package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts.map +1 -1
  18. package/blocks/CloudImageEditor/src/EditorFilterControl.js +33 -23
  19. package/blocks/CloudImageEditor/src/EditorImageCropper.js +4 -4
  20. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts +5 -5
  21. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -1
  22. package/blocks/CloudImageEditor/src/EditorImageFader.js +17 -15
  23. package/blocks/CloudImageEditor/src/EditorSlider.js +2 -2
  24. package/blocks/CloudImageEditor/src/EditorToolbar.js +24 -24
  25. package/blocks/CloudImageEditor/src/css/common.css +142 -142
  26. package/blocks/CloudImageEditor/src/css/icons.css +2 -2
  27. package/blocks/CloudImageEditor/src/elements/button/{BtnUi.d.ts → LrBtnUi.d.ts} +3 -3
  28. package/blocks/CloudImageEditor/src/elements/button/LrBtnUi.d.ts.map +1 -0
  29. package/blocks/CloudImageEditor/src/elements/button/{BtnUi.js → LrBtnUi.js} +4 -4
  30. package/blocks/CloudImageEditor/src/index.d.ts +1 -1
  31. package/blocks/CloudImageEditor/src/index.js +1 -1
  32. package/blocks/CloudImageEditor/src/template.js +8 -8
  33. package/blocks/CloudImageEditorActivity/index.css +2 -2
  34. package/blocks/Config/Config.d.ts +1 -1
  35. package/blocks/Config/Config.js +7 -7
  36. package/blocks/Config/config.css +1 -1
  37. package/blocks/Copyright/copyright.css +4 -4
  38. package/blocks/DropArea/DropArea.d.ts +1 -1
  39. package/blocks/DropArea/DropArea.js +4 -4
  40. package/blocks/DropArea/drop-area.css +34 -34
  41. package/blocks/ExternalSource/ExternalSource.js +5 -5
  42. package/blocks/ExternalSource/external-source.css +9 -9
  43. package/blocks/FileItem/FileItem.js +6 -6
  44. package/blocks/FileItem/file-item.css +22 -22
  45. package/blocks/Icon/icon.css +2 -2
  46. package/blocks/Img/ImgConfig.js +1 -1
  47. package/blocks/Img/configurations.d.ts +1 -1
  48. package/blocks/Img/configurations.js +1 -1
  49. package/blocks/Img/test.css +5 -5
  50. package/blocks/Modal/Modal.js +1 -1
  51. package/blocks/Modal/modal.css +15 -15
  52. package/blocks/ProgressBar/progress-bar.css +3 -3
  53. package/blocks/ProgressBarCommon/ProgressBarCommon.js +1 -1
  54. package/blocks/ProgressBarCommon/progress-bar-common.css +2 -2
  55. package/blocks/Range/range.css +8 -8
  56. package/blocks/Select/select.css +2 -2
  57. package/blocks/SimpleBtn/SimpleBtn.js +4 -4
  58. package/blocks/SimpleBtn/simple-btn.css +11 -11
  59. package/blocks/SourceBtn/SourceBtn.js +1 -1
  60. package/blocks/SourceBtn/source-btn.css +5 -5
  61. package/blocks/SourceList/SourceList.js +1 -1
  62. package/blocks/StartFrom/start-from.css +5 -5
  63. package/blocks/UploadList/UploadList.js +6 -6
  64. package/blocks/UploadList/upload-list.css +10 -10
  65. package/blocks/UrlSource/UrlSource.js +5 -5
  66. package/blocks/UrlSource/url-source.css +4 -4
  67. package/blocks/themes/{uc-basic → lr-basic}/common.css +19 -19
  68. package/blocks/themes/{uc-basic → lr-basic}/config.css +1 -1
  69. package/blocks/themes/{uc-basic → lr-basic}/theme.css +7 -7
  70. package/env.d.ts +1 -1
  71. package/env.js +1 -1
  72. package/index.ssr.d.ts +10 -10
  73. package/index.ssr.d.ts.map +1 -1
  74. package/index.ssr.js +108 -108
  75. package/package.json +1 -1
  76. package/solutions/adaptive-image/index.js +1 -1
  77. package/solutions/cloud-image-editor/CloudImageEditor.js +1 -1
  78. package/solutions/cloud-image-editor/index.css +1 -1
  79. package/solutions/file-uploader/inline/FileUploaderInline.js +12 -12
  80. package/solutions/file-uploader/inline/index.css +12 -12
  81. package/solutions/file-uploader/minimal/FileUploaderMinimal.js +6 -6
  82. package/solutions/file-uploader/minimal/index.css +25 -25
  83. package/solutions/file-uploader/regular/FileUploaderRegular.js +15 -15
  84. package/solutions/file-uploader/regular/index.css +1 -1
  85. package/types/exported.d.ts +1 -1
  86. package/types/global.d.ts +2 -2
  87. package/types/jsx.d.ts +37 -37
  88. package/web/blocks.iife.min.js +4 -4
  89. package/web/blocks.min.js +2 -2
  90. package/web/lr-basic.min.css +1 -1
  91. package/web/lr-cloud-image-editor.min.css +1 -1
  92. package/web/lr-cloud-image-editor.min.js +4 -4
  93. package/web/lr-file-uploader-inline.min.css +1 -1
  94. package/web/lr-file-uploader-inline.min.js +2 -2
  95. package/web/lr-file-uploader-minimal.min.css +1 -1
  96. package/web/lr-file-uploader-minimal.min.js +3 -3
  97. package/web/lr-file-uploader-regular.min.css +1 -1
  98. package/web/lr-file-uploader-regular.min.js +2 -2
  99. package/web/lr-img.min.js +2 -2
  100. package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts.map +0 -1
  101. package/web/uc-basic.min.css +0 -1
  102. package/web/uc-cloud-image-editor.min.css +0 -1
  103. package/web/uc-cloud-image-editor.min.js +0 -29
  104. package/web/uc-file-uploader-inline.min.css +0 -1
  105. package/web/uc-file-uploader-inline.min.js +0 -29
  106. package/web/uc-file-uploader-minimal.min.css +0 -1
  107. package/web/uc-file-uploader-minimal.min.js +0 -28
  108. package/web/uc-file-uploader-regular.min.css +0 -1
  109. package/web/uc-file-uploader-regular.min.js +0 -29
  110. package/web/uc-img.min.js +0 -28
  111. /package/blocks/themes/{uc-basic → lr-basic}/index.css +0 -0
  112. /package/blocks/themes/{uc-basic → lr-basic}/svg-sprite.d.ts +0 -0
  113. /package/blocks/themes/{uc-basic → lr-basic}/svg-sprite.d.ts.map +0 -0
  114. /package/blocks/themes/{uc-basic → lr-basic}/svg-sprite.js +0 -0
@@ -1,3 +1,4 @@
1
+ // @ts-check
1
2
  import { createCdnUrl, createCdnUrlModifiers } from '../../../utils/cdn-utils.js';
2
3
  import { EditorButtonControl } from './EditorButtonControl.js';
3
4
  import { FAKE_ORIGINAL_FILTER } from './EditorSlider.js';
@@ -5,15 +6,19 @@ import { COMMON_OPERATIONS, transformationsToOperations } from './lib/transforma
5
6
  import { preloadImage } from './lib/preloadImage.js';
6
7
 
7
8
  export class EditorFilterControl extends EditorButtonControl {
8
- init$ = {
9
- ...this.init$,
10
- active: false,
11
- title: '',
12
- icon: '',
13
- isOriginal: false,
14
- iconSize: '20',
15
- 'on.click': null,
16
- };
9
+ constructor() {
10
+ super();
11
+
12
+ this.init$ = {
13
+ ...this.init$,
14
+ active: false,
15
+ title: '',
16
+ icon: '',
17
+ isOriginal: false,
18
+ iconSize: '20',
19
+ 'on.click': null,
20
+ };
21
+ }
17
22
 
18
23
  _previewSrc() {
19
24
  let previewSize = parseInt(window.getComputedStyle(this).getPropertyValue('--l-base-min-width'), 10);
@@ -24,6 +29,7 @@ export class EditorFilterControl extends EditorButtonControl {
24
29
 
25
30
  /** @type {import('./types.js').Transformations} */
26
31
  let transformations = { ...this.$['*editorTransformations'] };
32
+ // @ts-expect-error FIXME: fix this
27
33
  transformations[this._operation] =
28
34
  this._filter !== FAKE_ORIGINAL_FILTER
29
35
  ? {
@@ -47,10 +53,10 @@ export class EditorFilterControl extends EditorButtonControl {
47
53
  * @param {IntersectionObserverEntry[]} entries
48
54
  * @param {IntersectionObserver} observer
49
55
  */
50
- _observerCallback(entries, observer) {
56
+ async _observerCallback(entries, observer) {
51
57
  let intersectionEntry = entries[0];
52
58
  if (intersectionEntry.isIntersecting) {
53
- let src = this.proxyUrl(this._previewSrc());
59
+ let src = await this.proxyUrl(this._previewSrc());
54
60
  let previewEl = this.ref['preview-el'];
55
61
  let { promise, cancel } = preloadImage(src);
56
62
  this._cancelPreload = cancel;
@@ -66,14 +72,14 @@ export class EditorFilterControl extends EditorButtonControl {
66
72
  observer.unobserve(this);
67
73
  });
68
74
  } else {
69
- this._cancelPreload && this._cancelPreload();
75
+ this._cancelPreload?.();
70
76
  }
71
77
  }
72
78
 
73
79
  initCallback() {
74
80
  super.initCallback();
75
81
 
76
- this.$['on.click'] = (e) => {
82
+ this.$['on.click'] = () => {
77
83
  if (!this.$.active) {
78
84
  this.$['*sliderEl'].setOperation(this._operation, this._filter);
79
85
  this.$['*sliderEl'].apply();
@@ -85,12 +91,16 @@ export class EditorFilterControl extends EditorButtonControl {
85
91
  this.$['*currentFilter'] = this._filter;
86
92
  };
87
93
 
88
- this.defineAccessor('filter', (filter) => {
89
- this._operation = 'filter';
90
- this._filter = filter;
91
- this.$.isOriginal = filter === FAKE_ORIGINAL_FILTER;
92
- this.$.icon = this.$.isOriginal ? 'original' : 'slider';
93
- });
94
+ this.defineAccessor(
95
+ 'filter',
96
+ /** @param {string} filter */
97
+ (filter) => {
98
+ this._operation = 'filter';
99
+ this._filter = filter;
100
+ this.$.isOriginal = filter === FAKE_ORIGINAL_FILTER;
101
+ this.$.icon = this.$.isOriginal ? 'original' : 'slider';
102
+ },
103
+ );
94
104
 
95
105
  this._observer = new window.IntersectionObserver(this._observerCallback.bind(this), {
96
106
  threshold: [0, 1],
@@ -128,9 +138,9 @@ export class EditorFilterControl extends EditorButtonControl {
128
138
  }
129
139
  });
130
140
 
131
- this.sub('*networkProblems', (networkProblems) => {
141
+ this.sub('*networkProblems', async (networkProblems) => {
132
142
  if (!networkProblems) {
133
- let src = this.proxyUrl(this._previewSrc());
143
+ let src = await this.proxyUrl(this._previewSrc());
134
144
  let previewEl = this.ref['preview-el'];
135
145
  if (previewEl.style.backgroundImage) {
136
146
  previewEl.style.backgroundImage = 'none';
@@ -143,13 +153,13 @@ export class EditorFilterControl extends EditorButtonControl {
143
153
  destroyCallback() {
144
154
  super.destroyCallback();
145
155
  this._observer?.disconnect();
146
- this._cancelPreload && this._cancelPreload();
156
+ this._cancelPreload?.();
147
157
  }
148
158
  }
149
159
 
150
160
  EditorFilterControl.template = /* HTML */ `
151
161
  <button type="button" role="option">
152
162
  <div class="uc-preview" ref="preview-el"></div>
153
- <uc-icon ref="icon-el" set="@name: icon; @size: iconSize;"></uc-icon>
163
+ <lr-icon ref="icon-el" set="@name: icon; @size: iconSize;"></lr-icon>
154
164
  </button>
155
165
  `;
@@ -461,7 +461,7 @@ export class EditorImageCropper extends Block {
461
461
  * @param {import('./types.js').Transformations} transformations
462
462
  * @returns {Promise<HTMLImageElement>}
463
463
  */
464
- _waitForImage(originalUrl, transformations) {
464
+ async _waitForImage(originalUrl, transformations) {
465
465
  let width = this.offsetWidth;
466
466
  transformations = {
467
467
  ...transformations,
@@ -470,13 +470,13 @@ export class EditorImageCropper extends Block {
470
470
  flip: undefined,
471
471
  mirror: undefined,
472
472
  };
473
- let src = this.proxyUrl(viewerImageSrc(originalUrl, width, transformations));
473
+ let src = await this.proxyUrl(viewerImageSrc(originalUrl, width, transformations));
474
474
  let { promise, cancel, image } = preloadImage(src);
475
475
 
476
476
  let stop = this._handleImageLoading(src);
477
477
  image.addEventListener('load', stop, { once: true });
478
478
  image.addEventListener('error', stop, { once: true });
479
- this._cancelPreload && this._cancelPreload();
479
+ this._cancelPreload?.();
480
480
  this._cancelPreload = cancel;
481
481
 
482
482
  return promise
@@ -547,5 +547,5 @@ export class EditorImageCropper extends Block {
547
547
 
548
548
  EditorImageCropper.template = /* HTML */ `
549
549
  <canvas class="uc-canvas" ref="canvas-el"></canvas>
550
- <uc-crop-frame ref="frame-el"></uc-crop-frame>
550
+ <lr-crop-frame ref="frame-el"></lr-crop-frame>
551
551
  `;
@@ -35,14 +35,14 @@ export class EditorImageFader extends Block {
35
35
  * @param {String} [options.filter]
36
36
  * @param {String} [options.operation]
37
37
  * @param {Number} [options.value]
38
- * @returns {String}
38
+ * @returns {Promise<String>}
39
39
  */
40
40
  private _imageSrc;
41
41
  /**
42
42
  * @private
43
43
  * @param {String} operation
44
44
  * @param {Number} value
45
- * @returns {Keypoint}
45
+ * @returns {Promise<Keypoint>}
46
46
  */
47
47
  private _constructKeypoint;
48
48
  /**
@@ -79,7 +79,7 @@ export class EditorImageFader extends Block {
79
79
  _cancelLastImages: any;
80
80
  _container: HTMLDivElement | undefined;
81
81
  /** @param {import('./types.js').Transformations} transformations */
82
- setTransformations(transformations: import('./types.js').Transformations): void;
82
+ setTransformations(transformations: import('./types.js').Transformations): Promise<void>;
83
83
  _transformations: import("./types.js").Transformations | undefined;
84
84
  /**
85
85
  * @param {object} options
@@ -93,7 +93,7 @@ export class EditorImageFader extends Block {
93
93
  operation: string;
94
94
  value: number;
95
95
  filter?: string | undefined;
96
- }): void;
96
+ }): Promise<void>;
97
97
  _cancelBatchPreload: (() => void) | undefined;
98
98
  /** @private */
99
99
  private _setOriginalSrc;
@@ -111,7 +111,7 @@ export class EditorImageFader extends Block {
111
111
  value?: number | undefined;
112
112
  filter?: string | undefined;
113
113
  fromViewer?: boolean | undefined;
114
- }): void;
114
+ }): Promise<void>;
115
115
  _url: string | undefined;
116
116
  _filter: string | undefined;
117
117
  _fromViewer: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"EditorImageFader.d.ts","sourceRoot":"","sources":["EditorImageFader.js"],"names":[],"mappings":"AA8DA;;;;;;;GAOG;AAEH;IAII;;;OAGG;IACH,kBAAsB;IAEtB;;;OAGG;IACH,gBAAmB;IAEnB,eAAe;IACf,8BAAwE;IAK1E;;;;OAIG;IACH,4BAmBC;IAED,eAAe;IACf,eAWC;IATC,yBAQE;IAGJ;;;;;;;;OAQG;IACH,kBAUC;IAED;;;;;OAKG;IACH,2BASC;IAED;;;;;;;OAOG;IACH,gBAEC;IAED;;;;;OAKG;IACH,qBA0CC;IAED,qCAAqC;IACrC,WADY,eAAe,QAK1B;IAED;;;;OAIG;IACH,gBAgBC;IAfC,+BAA2B;IAC3B,2BAAmB;IAgBrB,eAAe;IACf,4BAKC;IAED,eAAe;IACf,mBAmCC;IAjCC,mBAAqE;IAcrE,uBAGC;IAMC,uCAA2B;IAY/B,oEAAoE;IACpE,oCADY,OAAO,YAAY,EAAE,eAAe,QAmB/C;IAjBC,mEAAuC;IAmBzC;;;;;;OAMG;IACH;QAL2B,GAAG;QACH,SAAS;QACT,KAAK;QACJ,MAAM;aAUjC;IADC,8CAAiC;IAGnC,eAAe;IACf,wBA4CC;IAED;;;;;;;OAOG;IACH;QAN2B,GAAG;QACF,SAAS;QACT,KAAK;QACL,MAAM;QACL,UAAU;aAsBtC;IAjBC,yBAAe;IAGf,4BAAqB;IACrB,iCAA6B;IAS7B,mCAAkH;IAMpH,0CAA0C;IAC1C,sBADY;QAAE,IAAI,CAAC,UAAS;KAAE,QA4B7B;CACF;;;;;WAlYa,gBAAgB;;;sBAlER,4BAA4B"}
1
+ {"version":3,"file":"EditorImageFader.d.ts","sourceRoot":"","sources":["EditorImageFader.js"],"names":[],"mappings":"AA8DA;;;;;;;GAOG;AAEH;IAII;;;OAGG;IACH,kBAAsB;IAEtB;;;OAGG;IACH,gBAAmB;IAEnB,eAAe;IACf,8BAAwE;IAK1E;;;;OAIG;IACH,4BAmBC;IAED,eAAe;IACf,eAWC;IATC,yBAQE;IAGJ;;;;;;;;OAQG;IACH,kBAUC;IAED;;;;;OAKG;IACH,2BASC;IAED;;;;;;;OAOG;IACH,gBAEC;IAED;;;;;OAKG;IACH,qBA0CC;IAED,qCAAqC;IACrC,WADY,eAAe,QAK1B;IAED;;;;OAIG;IACH,gBAgBC;IAfC,+BAA2B;IAC3B,2BAAmB;IAgBrB,eAAe;IACf,4BAKC;IAED,eAAe;IACf,mBAmCC;IAjCC,mBAAqE;IAcrE,uBAGC;IAMC,uCAA2B;IAY/B,oEAAoE;IACpE,oCADY,OAAO,YAAY,EAAE,eAAe,iBAmB/C;IAjBC,mEAAuC;IAmBzC;;;;;;OAMG;IACH;QAL2B,GAAG;QACH,SAAS;QACT,KAAK;QACJ,MAAM;sBAUjC;IADC,8CAAiC;IAGnC,eAAe;IACf,wBA4CC;IAED;;;;;;;OAOG;IACH;QAN2B,GAAG;QACF,SAAS;QACT,KAAK;QACL,MAAM;QACL,UAAU;sBAwBtC;IAnBC,yBAAe;IAGf,4BAAqB;IACrB,iCAA6B;IAS7B,mCAEC;IAMH,0CAA0C;IAC1C,sBADY;QAAE,IAAI,CAAC,UAAS;KAAE,QA4B7B;CACF;;;;;WApYa,gBAAgB;;;sBAlER,4BAA4B"}
@@ -138,9 +138,9 @@ export class EditorImageFader extends Block {
138
138
  * @param {String} [options.filter]
139
139
  * @param {String} [options.operation]
140
140
  * @param {Number} [options.value]
141
- * @returns {String}
141
+ * @returns {Promise<String>}
142
142
  */
143
- _imageSrc({ url = this._url, filter = this._filter, operation, value } = {}) {
143
+ async _imageSrc({ url = this._url, filter = this._filter, operation, value } = {}) {
144
144
  let transformations = { ...this._transformations };
145
145
 
146
146
  if (operation) {
@@ -149,17 +149,17 @@ export class EditorImageFader extends Block {
149
149
 
150
150
  // do not use getBoundingClientRect because scale transform affects it
151
151
  let width = this.offsetWidth;
152
- return this.proxyUrl(viewerImageSrc(url, width, transformations));
152
+ return await this.proxyUrl(viewerImageSrc(url, width, transformations));
153
153
  }
154
154
 
155
155
  /**
156
156
  * @private
157
157
  * @param {String} operation
158
158
  * @param {Number} value
159
- * @returns {Keypoint}
159
+ * @returns {Promise<Keypoint>}
160
160
  */
161
- _constructKeypoint(operation, value) {
162
- let src = this._imageSrc({ operation, value });
161
+ async _constructKeypoint(operation, value) {
162
+ let src = await this._imageSrc({ operation, value });
163
163
  return {
164
164
  src,
165
165
  image: null,
@@ -187,14 +187,14 @@ export class EditorImageFader extends Block {
187
187
  * @param {String | null} filter
188
188
  * @param {Number} value
189
189
  */
190
- _addKeypoint(operation, filter, value) {
190
+ async _addKeypoint(operation, filter, value) {
191
191
  let shouldSkip = () =>
192
192
  !this._isSame(operation, filter) || this._value !== value || !!this._keypoints.find((kp) => kp.value === value);
193
193
 
194
194
  if (shouldSkip()) {
195
195
  return;
196
196
  }
197
- let keypoint = this._constructKeypoint(operation, value);
197
+ let keypoint = await this._constructKeypoint(operation, value);
198
198
  let image = new Image();
199
199
  image.src = keypoint.src;
200
200
  let stop = this._handleImageLoading(keypoint.src);
@@ -308,10 +308,10 @@ export class EditorImageFader extends Block {
308
308
  }
309
309
 
310
310
  /** @param {import('./types.js').Transformations} transformations */
311
- setTransformations(transformations) {
311
+ async setTransformations(transformations) {
312
312
  this._transformations = transformations;
313
313
  if (this._previewImage) {
314
- let src = this._imageSrc();
314
+ let src = await this._imageSrc();
315
315
  let stop = this._handleImageLoading(src);
316
316
  this._previewImage.src = src;
317
317
  this._previewImage.addEventListener('load', stop, { once: true });
@@ -335,11 +335,11 @@ export class EditorImageFader extends Block {
335
335
  * @param {Number} options.value
336
336
  * @param {String} [options.filter]
337
337
  */
338
- preload({ url, filter, operation, value }) {
338
+ async preload({ url, filter, operation, value }) {
339
339
  this._cancelBatchPreload && this._cancelBatchPreload();
340
340
 
341
341
  let keypoints = keypointsRange(operation, value);
342
- let srcList = keypoints.map((kp) => this._imageSrc({ url, filter, operation, value: kp }));
342
+ let srcList = await Promise.all(keypoints.map((kp) => this._imageSrc({ url, filter, operation, value: kp })));
343
343
  let { cancel } = batchPreloadImages(srcList);
344
344
 
345
345
  this._cancelBatchPreload = cancel;
@@ -400,7 +400,7 @@ export class EditorImageFader extends Block {
400
400
  * @param {String} [options.filter]
401
401
  * @param {Boolean} [options.fromViewer]
402
402
  */
403
- activate({ url, operation, value, filter, fromViewer }) {
403
+ async activate({ url, operation, value, filter, fromViewer }) {
404
404
  this._isActive = true;
405
405
  this._hidden = false;
406
406
  this._url = url;
@@ -411,12 +411,14 @@ export class EditorImageFader extends Block {
411
411
 
412
412
  let isOriginal = typeof value !== 'number' && !filter;
413
413
  if (isOriginal) {
414
- let src = this._imageSrc({ operation, value });
414
+ let src = await this._imageSrc({ operation, value });
415
415
  this._setOriginalSrc(src);
416
416
  this._container && this._container.remove();
417
417
  return;
418
418
  }
419
- this._keypoints = keypointsRange(operation, value).map((keyValue) => this._constructKeypoint(operation, keyValue));
419
+ this._keypoints = await Promise.all(
420
+ keypointsRange(operation, value).map((keyValue) => this._constructKeypoint(operation, keyValue)),
421
+ );
420
422
 
421
423
  this._update(operation, value);
422
424
  this._initNodes();
@@ -111,8 +111,8 @@ export class EditorSlider extends Block {
111
111
  }
112
112
 
113
113
  EditorSlider.template = /* HTML */ `
114
- <uc-slider-ui
114
+ <lr-slider-ui
115
115
  ref="slider-el"
116
116
  set="disabled: disabled; min: min; max: max; defaultValue: defaultValue; zero: zero; onInput: on.input;"
117
- ></uc-slider-ui>
117
+ ></lr-slider-ui>
118
118
  `;
@@ -19,31 +19,31 @@ import { viewerImageSrc } from './util.js';
19
19
  /** @param {String} id */
20
20
  function renderTabToggle(id) {
21
21
  return /* HTML */ `
22
- <uc-presence-toggle
22
+ <lr-presence-toggle
23
23
  class="uc-tab-toggle"
24
24
  set="visible: presence.tabToggle.${id}; styles: presence.tabToggleStyles;"
25
25
  >
26
- <uc-btn-ui
26
+ <lr-btn-ui
27
27
  theme="tab"
28
28
  ref="tab-toggle-${id}"
29
29
  data-id="${id}"
30
30
  icon="${id}"
31
31
  set="onclick: on.clickTab; aria-role:tab_role; aria-controls:tab_${id}"
32
32
  >
33
- </uc-btn-ui>
34
- </uc-presence-toggle>
33
+ </lr-btn-ui>
34
+ </lr-presence-toggle>
35
35
  `;
36
36
  }
37
37
 
38
38
  /** @param {String} id */
39
39
  function renderTabContent(id) {
40
40
  return /* HTML */ `
41
- <uc-presence-toggle
41
+ <lr-presence-toggle
42
42
  id="tab_${id}"
43
43
  class="uc-tab-content"
44
44
  set="visible: presence.tabContent.${id}; styles: presence.tabContentStyles"
45
45
  >
46
- <uc-editor-scroller hidden-scrollbar>
46
+ <lr-editor-scroller hidden-scrollbar>
47
47
  <div class="uc-controls-list_align">
48
48
  <div
49
49
  role="listbox"
@@ -52,8 +52,8 @@ function renderTabContent(id) {
52
52
  ref="controls-list-${id}"
53
53
  ></div>
54
54
  </div>
55
- </uc-editor-scroller>
56
- </uc-presence-toggle>
55
+ </lr-editor-scroller>
56
+ </lr-presence-toggle>
57
57
  `;
58
58
  }
59
59
 
@@ -105,7 +105,7 @@ export class EditorToolbar extends Block {
105
105
  visible: 'uc-tab-toggles--visible',
106
106
  },
107
107
  'on.cancel': () => {
108
- this._cancelPreload && this._cancelPreload();
108
+ this._cancelPreload?.();
109
109
  this.$['*on.cancel']();
110
110
  },
111
111
  'on.apply': () => {
@@ -271,11 +271,11 @@ export class EditorToolbar extends Block {
271
271
  }
272
272
 
273
273
  /** @private */
274
- _preloadEditedImage() {
274
+ async _preloadEditedImage() {
275
275
  if (this.$['*imgContainerEl'] && this.$['*originalUrl']) {
276
276
  let width = this.$['*imgContainerEl'].offsetWidth;
277
- let src = this.proxyUrl(viewerImageSrc(this.$['*originalUrl'], width, this.$['*editorTransformations']));
278
- this._cancelPreload && this._cancelPreload();
277
+ let src = await this.proxyUrl(viewerImageSrc(this.$['*originalUrl'], width, this.$['*editorTransformations']));
278
+ this._cancelPreload?.();
279
279
  let { cancel } = batchPreloadImages([src]);
280
280
  this._cancelPreload = () => {
281
281
  cancel();
@@ -400,42 +400,42 @@ export class EditorToolbar extends Block {
400
400
  }
401
401
 
402
402
  EditorToolbar.template = /* HTML */ `
403
- <uc-line-loader-ui set="active: showLoader"></uc-line-loader-ui>
403
+ <lr-line-loader-ui set="active: showLoader"></lr-line-loader-ui>
404
404
  <div class="uc-info-tooltip_container">
405
405
  <div class="uc-info-tooltip_wrapper">
406
406
  <div ref="tooltip-el" class="uc-info-tooltip uc-info-tooltip_hidden">{{*operationTooltip}}</div>
407
407
  </div>
408
408
  </div>
409
409
  <div class="uc-toolbar-container">
410
- <uc-presence-toggle
410
+ <lr-presence-toggle
411
411
  role="tablist"
412
412
  class="uc-sub-toolbar"
413
413
  set="visible: presence.mainToolbar; styles: presence.subTopToolbarStyles"
414
414
  >
415
415
  <div class="uc-tab-content-row">${ALL_TABS.map(renderTabContent).join('')}</div>
416
416
  <div class="uc-controls-row">
417
- <uc-presence-toggle
417
+ <lr-presence-toggle
418
418
  class="uc-tab-toggles"
419
419
  set="visible: presence.tabToggles; styles: presence.tabTogglesStyles"
420
420
  >
421
421
  <div ref="tabs-indicator" class="uc-tab-toggles_indicator"></div>
422
422
  ${ALL_TABS.map(renderTabToggle).join('')}
423
- </uc-presence-toggle>
424
- <uc-btn-ui style="order: -1" theme="secondary-icon" icon="closeMax" set="onclick: on.cancel"> </uc-btn-ui>
425
- <uc-btn-ui theme="primary-icon" icon="done" set="onclick: on.apply"> </uc-btn-ui>
423
+ </lr-presence-toggle>
424
+ <lr-btn-ui style="order: -1" theme="secondary-icon" icon="closeMax" set="onclick: on.cancel"> </lr-btn-ui>
425
+ <lr-btn-ui theme="primary-icon" icon="done" set="onclick: on.apply"> </lr-btn-ui>
426
426
  </div>
427
- </uc-presence-toggle>
428
- <uc-presence-toggle
427
+ </lr-presence-toggle>
428
+ <lr-presence-toggle
429
429
  class="uc-sub-toolbar"
430
430
  set="visible: presence.subToolbar; styles: presence.subBottomToolbarStyles"
431
431
  >
432
432
  <div class="uc-slider">
433
- <uc-editor-slider ref="slider-el"></uc-editor-slider>
433
+ <lr-editor-slider ref="slider-el"></lr-editor-slider>
434
434
  </div>
435
435
  <div class="uc-controls-row">
436
- <uc-btn-ui theme="secondary" set="onclick: on.cancelSlider;" l10n="@text:cancel"> </uc-btn-ui>
437
- <uc-btn-ui theme="primary" set="onclick: on.applySlider;" l10n="@text:apply"> </uc-btn-ui>
436
+ <lr-btn-ui theme="secondary" set="onclick: on.cancelSlider;" l10n="@text:cancel"> </lr-btn-ui>
437
+ <lr-btn-ui theme="primary" set="onclick: on.applySlider;" l10n="@text:apply"> </lr-btn-ui>
438
438
  </div>
439
- </uc-presence-toggle>
439
+ </lr-presence-toggle>
440
440
  </div>
441
441
  `;