@hufe921/canvas-editor 0.9.33 → 0.9.34

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/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## [0.9.34](https://github.com/Hufe921/canvas-editor/compare/v0.9.33...v0.9.34) (2023-05-16)
2
+
3
+
4
+ ### Documentation
5
+
6
+ * get catalog api ([c2cc8d9](https://github.com/Hufe921/canvas-editor/commit/c2cc8d98d29a472ccbe35aa39893e1dfc8df74e0))
7
+ * location catalog api ([402e448](https://github.com/Hufe921/canvas-editor/commit/402e448559a5e2a1d2dd6399889758172651bcef))
8
+
9
+
10
+ ### Features
11
+
12
+ * add catalog demo ([9343afe](https://github.com/Hufe921/canvas-editor/commit/9343afe83136b4e1a23bad813adb5f9cf813604a))
13
+ * get catalog api ([237c0f2](https://github.com/Hufe921/canvas-editor/commit/237c0f22cbd26ac737187b8a195bc08665dcc450))
14
+ * location catalog api ([535562e](https://github.com/Hufe921/canvas-editor/commit/535562e396ce150916456a0ed791edc4ff208de4))
15
+
16
+
17
+ ### Performance Improvements
18
+
19
+ * optimize cursor blink ([7ad4ba3](https://github.com/Hufe921/canvas-editor/commit/7ad4ba3a2664744bbcee200775028a009fecd5b4))
20
+
21
+
22
+
1
23
  ## [0.9.33](https://github.com/Hufe921/canvas-editor/compare/v0.9.32...v0.9.33) (2023-05-02)
2
24
 
3
25
 
package/README.md CHANGED
@@ -28,7 +28,7 @@ new Editor(document.querySelector(".canvas-editor"), [
28
28
 
29
29
  ## next features
30
30
 
31
- 1. catalog
31
+ 1. improve page number
32
32
  2. improve list and title
33
33
  3. improve performance
34
34
  4. control rules
@@ -23,7 +23,7 @@ var __publicField = (obj, key, value) => {
23
23
  return value;
24
24
  };
25
25
  var index = "";
26
- const version = "0.9.33";
26
+ const version = "0.9.34";
27
27
  var MaxHeightRatio;
28
28
  (function(MaxHeightRatio2) {
29
29
  MaxHeightRatio2["HALF"] = "half";
@@ -4371,12 +4371,14 @@ class CursorAgent {
4371
4371
  }
4372
4372
  class Cursor {
4373
4373
  constructor(draw, canvasEvent) {
4374
+ __publicField(this, "ANIMATION_CLASS", `${EDITOR_PREFIX}-cursor--animation`);
4374
4375
  __publicField(this, "draw");
4375
4376
  __publicField(this, "container");
4376
4377
  __publicField(this, "options");
4377
4378
  __publicField(this, "position");
4378
4379
  __publicField(this, "cursorDom");
4379
4380
  __publicField(this, "cursorAgent");
4381
+ __publicField(this, "blinkTimeout");
4380
4382
  this.draw = draw;
4381
4383
  this.container = draw.getContainer();
4382
4384
  this.position = draw.getPosition();
@@ -4385,6 +4387,7 @@ class Cursor {
4385
4387
  this.cursorDom.classList.add(`${EDITOR_PREFIX}-cursor`);
4386
4388
  this.container.append(this.cursorDom);
4387
4389
  this.cursorAgent = new CursorAgent(draw, canvasEvent);
4390
+ this.blinkTimeout = null;
4388
4391
  }
4389
4392
  getCursorDom() {
4390
4393
  return this.cursorDom;
@@ -4398,6 +4401,25 @@ class Cursor {
4398
4401
  clearAgentDomValue() {
4399
4402
  return this.getAgentDom().value = "";
4400
4403
  }
4404
+ _blinkStart() {
4405
+ this.cursorDom.classList.add(this.ANIMATION_CLASS);
4406
+ }
4407
+ _blinkStop() {
4408
+ this.cursorDom.classList.remove(this.ANIMATION_CLASS);
4409
+ }
4410
+ _setBlinkTimeout() {
4411
+ this._clearBlinkTimeout();
4412
+ this.blinkTimeout = window.setTimeout(() => {
4413
+ this._blinkStart();
4414
+ }, 500);
4415
+ }
4416
+ _clearBlinkTimeout() {
4417
+ if (this.blinkTimeout) {
4418
+ this._blinkStop();
4419
+ window.clearTimeout(this.blinkTimeout);
4420
+ this.blinkTimeout = null;
4421
+ }
4422
+ }
4401
4423
  drawCursor(payload) {
4402
4424
  const cursorPosition = this.position.getCursorPosition();
4403
4425
  if (!cursorPosition)
@@ -4431,18 +4453,15 @@ class Cursor {
4431
4453
  this.cursorDom.style.top = `${cursorTop}px`;
4432
4454
  this.cursorDom.style.display = isReadonly ? "none" : "block";
4433
4455
  this.cursorDom.style.height = `${cursorHeight}px`;
4434
- const animationClassName = `${EDITOR_PREFIX}-cursor--animation`;
4435
4456
  if (isBlink) {
4436
- setTimeout(() => {
4437
- this.cursorDom.classList.add(animationClassName);
4438
- }, 200);
4457
+ this._setBlinkTimeout();
4439
4458
  } else {
4440
- this.cursorDom.classList.remove(animationClassName);
4459
+ this._clearBlinkTimeout();
4441
4460
  }
4442
4461
  }
4443
4462
  recoveryCursor() {
4444
4463
  this.cursorDom.style.display = "none";
4445
- this.cursorDom.classList.remove(`${EDITOR_PREFIX}-cursor--animation`);
4464
+ this._clearBlinkTimeout();
4446
4465
  }
4447
4466
  }
4448
4467
  var MouseEventButton;
@@ -5798,6 +5817,7 @@ var EditorComponent;
5798
5817
  EditorComponent2["FOOTER"] = "footer";
5799
5818
  EditorComponent2["CONTEXTMENU"] = "contextmenu";
5800
5819
  EditorComponent2["POPUP"] = "popup";
5820
+ EditorComponent2["CATALOG"] = "catalog";
5801
5821
  })(EditorComponent || (EditorComponent = {}));
5802
5822
  var EditorContext;
5803
5823
  (function(EditorContext2) {
@@ -8559,7 +8579,17 @@ class CheckboxParticle {
8559
8579
  ctx.restore();
8560
8580
  }
8561
8581
  }
8562
- const encodedJs = "KCgpPT57KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBjOyhmdW5jdGlvbih0KXt0LlRFWFQ9InRleHQiLHQuVEFCTEU9InRhYmxlIix0LkhZUEVSTElOSz0iaHlwZXJsaW5rIix0LkNPTlRST0w9ImNvbnRyb2wifSkoY3x8KGM9e30pKTt2YXIgdTsoZnVuY3Rpb24odCl7dC5WQUxVRT0idmFsdWUifSkodXx8KHU9e30pKTtjb25zdCBoPSJcdTIwMEIiLGc9YApgO2Z1bmN0aW9uIHAodCl7bGV0IGw9IiIsbz0wO2Zvcig7bzx0Lmxlbmd0aDspe2NvbnN0IG49dFtvXTtpZihuLnR5cGU9PT1jLlRBQkxFKXtpZihuLnRyTGlzdClmb3IobGV0IGk9MDtpPG4udHJMaXN0Lmxlbmd0aDtpKyspe2NvbnN0IHM9bi50ckxpc3RbaV07Zm9yKGxldCBlPTA7ZTxzLnRkTGlzdC5sZW5ndGg7ZSsrKXtjb25zdCByPXMudGRMaXN0W2VdO2wrPXAoci52YWx1ZSl9fX1lbHNlIGlmKG4udHlwZT09PWMuSFlQRVJMSU5LKXtjb25zdCBpPW4uaHlwZXJsaW5rSWQscz1bXTtmb3IoO288dC5sZW5ndGg7KXtjb25zdCBlPXRbb107aWYoaSE9PWUuaHlwZXJsaW5rSWQpe28tLTticmVha31kZWxldGUgZS50eXBlLHMucHVzaChlKSxvKyt9bCs9cChzKX1lbHNlIGlmKG4udHlwZT09PWMuQ09OVFJPTCl7Y29uc3QgaT1uLmNvbnRyb2xJZCxzPVtdO2Zvcig7bzx0Lmxlbmd0aDspe2NvbnN0IGU9dFtvXTtpZihpIT09ZS5jb250cm9sSWQpe28tLTticmVha31lLmNvbnRyb2xDb21wb25lbnQ9PT11LlZBTFVFJiYoZGVsZXRlIGUudHlwZSxzLnB1c2goZSkpLG8rK31sKz1wKHMpfSghbi50eXBlfHxuLnR5cGU9PT1jLlRFWFQpJiYobCs9bi52YWx1ZSksbysrfXJldHVybiBsfWZ1bmN0aW9uIGQodCl7Y29uc3QgbD1bXSxvPS9bMC05XS8sbj0vW0EtWmEtel0vLGk9L1xzLztsZXQgcz0hMSxlPSExLHI9IiI7ZnVuY3Rpb24gYSgpe3ImJihsLnB1c2gocikscj0iIil9Zm9yKGNvbnN0IGYgb2YgdCluLnRlc3QoZik/KHN8fGEoKSxyKz1mLHM9ITAsZT0hMSk6by50ZXN0KGYpPyhlfHxhKCkscis9ZixzPSExLGU9ITApOihhKCkscz0hMSxlPSExLGkudGVzdChmKXx8bC5wdXNoKGYpKTtyZXR1cm4gYSgpLGx9b25tZXNzYWdlPXQ9Pntjb25zdCBsPXQuZGF0YSxuPXAobCkucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtofWApLCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoaCwiZyIpLGcpLGk9ZChuKTtwb3N0TWVzc2FnZShpLmxlbmd0aCl9fSkoKTt9KSgpOwo=";
8582
+ const encodedJs$1 = "KCgpPT57KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBjOyhmdW5jdGlvbih0KXt0LlRFWFQ9InRleHQiLHQuVEFCTEU9InRhYmxlIix0LkhZUEVSTElOSz0iaHlwZXJsaW5rIix0LkNPTlRST0w9ImNvbnRyb2wifSkoY3x8KGM9e30pKTt2YXIgdTsoZnVuY3Rpb24odCl7dC5WQUxVRT0idmFsdWUifSkodXx8KHU9e30pKTtjb25zdCBoPSJcdTIwMEIiLGc9YApgO2Z1bmN0aW9uIHAodCl7bGV0IGw9IiIsbz0wO2Zvcig7bzx0Lmxlbmd0aDspe2NvbnN0IG49dFtvXTtpZihuLnR5cGU9PT1jLlRBQkxFKXtpZihuLnRyTGlzdClmb3IobGV0IGk9MDtpPG4udHJMaXN0Lmxlbmd0aDtpKyspe2NvbnN0IHM9bi50ckxpc3RbaV07Zm9yKGxldCBlPTA7ZTxzLnRkTGlzdC5sZW5ndGg7ZSsrKXtjb25zdCByPXMudGRMaXN0W2VdO2wrPXAoci52YWx1ZSl9fX1lbHNlIGlmKG4udHlwZT09PWMuSFlQRVJMSU5LKXtjb25zdCBpPW4uaHlwZXJsaW5rSWQscz1bXTtmb3IoO288dC5sZW5ndGg7KXtjb25zdCBlPXRbb107aWYoaSE9PWUuaHlwZXJsaW5rSWQpe28tLTticmVha31kZWxldGUgZS50eXBlLHMucHVzaChlKSxvKyt9bCs9cChzKX1lbHNlIGlmKG4udHlwZT09PWMuQ09OVFJPTCl7Y29uc3QgaT1uLmNvbnRyb2xJZCxzPVtdO2Zvcig7bzx0Lmxlbmd0aDspe2NvbnN0IGU9dFtvXTtpZihpIT09ZS5jb250cm9sSWQpe28tLTticmVha31lLmNvbnRyb2xDb21wb25lbnQ9PT11LlZBTFVFJiYoZGVsZXRlIGUudHlwZSxzLnB1c2goZSkpLG8rK31sKz1wKHMpfSghbi50eXBlfHxuLnR5cGU9PT1jLlRFWFQpJiYobCs9bi52YWx1ZSksbysrfXJldHVybiBsfWZ1bmN0aW9uIGQodCl7Y29uc3QgbD1bXSxvPS9bMC05XS8sbj0vW0EtWmEtel0vLGk9L1xzLztsZXQgcz0hMSxlPSExLHI9IiI7ZnVuY3Rpb24gYSgpe3ImJihsLnB1c2gocikscj0iIil9Zm9yKGNvbnN0IGYgb2YgdCluLnRlc3QoZik/KHN8fGEoKSxyKz1mLHM9ITAsZT0hMSk6by50ZXN0KGYpPyhlfHxhKCkscis9ZixzPSExLGU9ITApOihhKCkscz0hMSxlPSExLGkudGVzdChmKXx8bC5wdXNoKGYpKTtyZXR1cm4gYSgpLGx9b25tZXNzYWdlPXQ9Pntjb25zdCBsPXQuZGF0YSxuPXAobCkucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtofWApLCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoaCwiZyIpLGcpLGk9ZChuKTtwb3N0TWVzc2FnZShpLmxlbmd0aCl9fSkoKTt9KSgpOwo=";
8583
+ const blob$1 = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs$1)], { type: "text/javascript;charset=utf-8" });
8584
+ function WorkerWrapper$1() {
8585
+ const objURL = blob$1 && (window.URL || window.webkitURL).createObjectURL(blob$1);
8586
+ try {
8587
+ return objURL ? new Worker(objURL) : new Worker("data:application/javascript;base64," + encodedJs$1, { type: "module" });
8588
+ } finally {
8589
+ objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
8590
+ }
8591
+ }
8592
+ const encodedJs = "KCgpPT57KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBnOyhmdW5jdGlvbihlKXtlLlRJVExFPSJ0aXRsZSJ9KShnfHwoZz17fSkpO3ZhciBvOyhmdW5jdGlvbihlKXtlLkZJUlNUPSJmaXJzdCIsZS5TRUNPTkQ9InNlY29uZCIsZS5USElSRD0idGhpcmQiLGUuRk9VUlRIPSJmb3VydGgiLGUuRklGVEg9ImZpZnRoIixlLlNJWFRIPSJzaXh0aCJ9KShvfHwobz17fSkpO2NvbnN0IHU9e1tvLkZJUlNUXToxLFtvLlNFQ09ORF06Mixbby5USElSRF06Myxbby5GT1VSVEhdOjQsW28uRklGVEhdOjUsW28uU0lYVEhdOjZ9LEk9Ilx1MjAwQiI7ZnVuY3Rpb24gZihlKXtjb25zdCBhPVtdO2xldCBzPTA7Zm9yKDtzPGUubGVuZ3RoOyl7Y29uc3QgdD1lW3NdO2lmKHQudGl0bGVJZCl7Y29uc3Qgbj10LnRpdGxlSWQsbD10LmxldmVsLGM9e3R5cGU6Zy5USVRMRSx2YWx1ZToiIixsZXZlbDpsLHRpdGxlSWQ6bn0saT1bXTtmb3IoO3M8ZS5sZW5ndGg7KXtjb25zdCB2PWVbc107aWYobiE9PXYudGl0bGVJZCl7cy0tO2JyZWFrfWkucHVzaCh2KSxzKyt9Yy52YWx1ZT1pLm1hcCh2PT52LnZhbHVlKS5qb2luKCIiKS5yZXBsYWNlKG5ldyBSZWdFeHAoSSwiZyIpLCIiKSxhLnB1c2goYyl9cysrfWlmKCFhLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBoPSh0LG4pPT57Y29uc3QgbD1uLnN1YkNhdGFsb2dbbi5zdWJDYXRhbG9nLmxlbmd0aC0xXSxjPXVbbD09bnVsbD92b2lkIDA6bC5sZXZlbF0saT11W3QubGV2ZWxdO2wmJmk+Yz9oKHQsbCk6bi5zdWJDYXRhbG9nLnB1c2goe2lkOnQudGl0bGVJZCxuYW1lOnQudmFsdWUsbGV2ZWw6dC5sZXZlbCxzdWJDYXRhbG9nOltdfSl9LHI9W107Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspe2NvbnN0IG49YVt0XSxsPXJbci5sZW5ndGgtMV0sYz11W2w9PW51bGw/dm9pZCAwOmwubGV2ZWxdLGk9dVtuLmxldmVsXTtsJiZpPmM/aChuLGwpOnIucHVzaCh7aWQ6bi50aXRsZUlkLG5hbWU6bi52YWx1ZSxsZXZlbDpuLmxldmVsLHN1YkNhdGFsb2c6W119KX1yZXR1cm4gcn1vbm1lc3NhZ2U9ZT0+e2NvbnN0IGE9ZS5kYXRhLHM9ZihhKTtwb3N0TWVzc2FnZShzKX19KSgpO30pKCk7Cg==";
8563
8593
  const blob = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs)], { type: "text/javascript;charset=utf-8" });
8564
8594
  function WorkerWrapper() {
8565
8595
  const objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
@@ -8573,8 +8603,10 @@ class WorkerManager {
8573
8603
  constructor(draw) {
8574
8604
  __publicField(this, "draw");
8575
8605
  __publicField(this, "wordCountWorker");
8606
+ __publicField(this, "catalogWorker");
8576
8607
  this.draw = draw;
8577
- this.wordCountWorker = new WorkerWrapper();
8608
+ this.wordCountWorker = new WorkerWrapper$1();
8609
+ this.catalogWorker = new WorkerWrapper();
8578
8610
  }
8579
8611
  getWordCount() {
8580
8612
  return new Promise((resolve, reject) => {
@@ -8588,6 +8620,18 @@ class WorkerManager {
8588
8620
  this.wordCountWorker.postMessage(elementList);
8589
8621
  });
8590
8622
  }
8623
+ getCatalog() {
8624
+ return new Promise((resolve, reject) => {
8625
+ this.catalogWorker.onmessage = (evt) => {
8626
+ resolve(evt.data);
8627
+ };
8628
+ this.catalogWorker.onerror = (evt) => {
8629
+ reject(evt);
8630
+ };
8631
+ const elementList = this.draw.getOriginalMainElementList();
8632
+ this.catalogWorker.postMessage(elementList);
8633
+ });
8634
+ }
8591
8635
  }
8592
8636
  class Previewer {
8593
8637
  constructor(draw) {
@@ -11405,6 +11449,8 @@ const _Command = class {
11405
11449
  _Command.insertElementList = adapt.insertElementList.bind(adapt);
11406
11450
  _Command.removeControl = adapt.removeControl.bind(adapt);
11407
11451
  _Command.setLocale = adapt.setLocale.bind(adapt);
11452
+ _Command.getCatalog = adapt.getCatalog.bind(adapt);
11453
+ _Command.locationCatalog = adapt.locationCatalog.bind(adapt);
11408
11454
  }
11409
11455
  executeMode(payload) {
11410
11456
  return _Command.mode(payload);
@@ -11634,6 +11680,12 @@ const _Command = class {
11634
11680
  executeSetLocale(payload) {
11635
11681
  return _Command.setLocale(payload);
11636
11682
  }
11683
+ getCatalog() {
11684
+ return _Command.getCatalog();
11685
+ }
11686
+ executeLocationCatalog(titleId) {
11687
+ return _Command.locationCatalog(titleId);
11688
+ }
11637
11689
  };
11638
11690
  let Command = _Command;
11639
11691
  __publicField(Command, "mode");
@@ -11712,6 +11764,8 @@ __publicField(Command, "setPaperMargin");
11712
11764
  __publicField(Command, "insertElementList");
11713
11765
  __publicField(Command, "removeControl");
11714
11766
  __publicField(Command, "setLocale");
11767
+ __publicField(Command, "getCatalog");
11768
+ __publicField(Command, "locationCatalog");
11715
11769
  const defaultWatermarkOption = {
11716
11770
  data: "",
11717
11771
  color: "#AEB5C0",
@@ -13309,6 +13363,29 @@ class CommandAdapt {
13309
13363
  setLocale(payload) {
13310
13364
  this.i18n.setLocale(payload);
13311
13365
  }
13366
+ getCatalog() {
13367
+ return this.workerManager.getCatalog();
13368
+ }
13369
+ locationCatalog(titleId) {
13370
+ var _a;
13371
+ const elementList = this.draw.getMainElementList();
13372
+ let newIndex = -1;
13373
+ for (let e = 0; e < elementList.length; e++) {
13374
+ const element = elementList[e];
13375
+ if (element.titleId === titleId && ((_a = elementList[e + 1]) == null ? void 0 : _a.titleId) !== titleId) {
13376
+ newIndex = e;
13377
+ break;
13378
+ }
13379
+ }
13380
+ if (!~newIndex)
13381
+ return;
13382
+ this.range.setRange(newIndex, newIndex);
13383
+ this.draw.render({
13384
+ curIndex: newIndex,
13385
+ isCompute: false,
13386
+ isSubmitHistory: false
13387
+ });
13388
+ }
13312
13389
  }
13313
13390
  class Listener {
13314
13391
  constructor() {