@wcardinal/wcardinal-ui 0.452.0 → 0.453.0

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/README.md CHANGED
@@ -91,7 +91,7 @@ loadThemeWhiteEnUsAll();
91
91
  ### Requirements
92
92
 
93
93
  * WebGL 1.0 support
94
- * Promise support
94
+ * ES2017 support
95
95
  * Base64-encoded SVG support for textures
96
96
  * IE11 does not support this.
97
97
  * Not required if your theme doesn't use it
@@ -1,5 +1,5 @@
1
1
  import { utils } from "pixi.js";
2
2
  export declare class UtilClipboard extends utils.EventEmitter {
3
- constructor();
3
+ constructor(element?: HTMLElement);
4
4
  static copy(text: string): void;
5
5
  }
@@ -72,25 +72,30 @@ const copyUsingWindow = (window, text) => {
72
72
  return false;
73
73
  };
74
74
  export class UtilClipboard extends utils.EventEmitter {
75
- constructor() {
75
+ constructor(element) {
76
76
  super();
77
- const element = document.body;
78
- element.addEventListener("copy", (e) => {
79
- if (e.target === element) {
77
+ // Please note how ClipboardEvent#target is set.
78
+ // ClipboardEvent#target could be the one of the body or the focused node.
79
+ // https://w3c.github.io/clipboard-apis/#to-fire-a-clipboard-event
80
+ // Plus, FireFox fires the events on the document body. But not on the element.
81
+ // However, Chrome fires on both the document body and the element.
82
+ const body = document.body;
83
+ body.addEventListener("copy", (e) => {
84
+ if (e.target === body || e.target === element) {
80
85
  e.preventDefault();
81
86
  e.stopPropagation();
82
87
  this.emit("copy", toClipboardData(e));
83
88
  }
84
89
  });
85
- element.addEventListener("cut", (e) => {
86
- if (e.target === element) {
90
+ body.addEventListener("cut", (e) => {
91
+ if (e.target === body || e.target === element) {
87
92
  e.preventDefault();
88
93
  e.stopPropagation();
89
94
  this.emit("cut", toClipboardData(e));
90
95
  }
91
96
  });
92
- element.addEventListener("paste", (e) => {
93
- if (e.target === element) {
97
+ body.addEventListener("paste", (e) => {
98
+ if (e.target === body || e.target === element) {
94
99
  e.preventDefault();
95
100
  e.stopPropagation();
96
101
  this.emit("paste", toClipboardData(e));
@@ -1 +1 @@
1
- {"version":3,"file":"util-clipboard.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-clipboard.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\n\nconst getSelection = (element: Element): Selection | null => {\n\tconst selection = document.getSelection();\n\tif (selection) {\n\t\tconst range = document.createRange();\n\t\trange.selectNodeContents(element);\n\t\tselection.removeAllRanges();\n\t\tselection.addRange(range);\n\t}\n\treturn selection;\n};\n\nconst toClipboardData = (e: ClipboardEvent): DataTransfer => {\n\treturn e.clipboardData || (window as any).clipboardData;\n};\n\nconst copyUsingDiv = (text: string): boolean => {\n\tconst div = document.createElement(\"div\");\n\tdiv.setAttribute(\"style\", \"-webkit-user-select: text !important\");\n\tdiv.textContent = \"Dummy\";\n\tdocument.body.appendChild(div);\n\tconst selection = getSelection(div);\n\tlet result = false;\n\tif (selection) {\n\t\tconst handler = (e: ClipboardEvent): void => {\n\t\t\tif (e.target === div) {\n\t\t\t\tconst clipboardData = toClipboardData(e);\n\t\t\t\tclipboardData.setData(\"text/plain\", text);\n\t\t\t\tresult = clipboardData.getData(\"text/plain\") === text;\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"copy\", handler);\n\t\ttry {\n\t\t\tdocument.execCommand(\"copy\");\n\t\t} finally {\n\t\t\tdocument.removeEventListener(\"copy\", handler);\n\t\t}\n\t\tselection.removeAllRanges();\n\t}\n\tdocument.body.removeChild(div);\n\treturn result;\n};\n\nconst copyUsingSpan = (text: string): boolean => {\n\tconst div = document.createElement(\"div\");\n\tdiv.setAttribute(\"style\", \"-webkit-user-select: text !important\");\n\tconst span = document.createElement(\"span\");\n\tspan.innerText = text;\n\tconst root: Node = div.attachShadow ? div.attachShadow({ mode: \"open\" }) : div;\n\troot.appendChild(span);\n\tdocument.body.appendChild(div);\n\tlet result = false;\n\tconst selection = getSelection(div);\n\tif (selection) {\n\t\tresult = document.execCommand(\"copy\");\n\t\tselection.removeAllRanges();\n\t}\n\tdocument.body.removeChild(div);\n\treturn result;\n};\n\nconst copyUsingWindow = (window: Window, text: string): boolean => {\n\tif (typeof ClipboardEvent === \"undefined\") {\n\t\tconst clipboardData = (window as any).clipboardData;\n\t\tif (typeof clipboardData !== \"undefined\" && typeof clipboardData.setData !== \"undefined\") {\n\t\t\tclipboardData.setData(\"Text\", text);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexport class UtilClipboard extends utils.EventEmitter {\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst element = document.body;\n\t\telement.addEventListener(\"copy\", (e: ClipboardEvent): void => {\n\t\t\tif (e.target === element) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis.emit(\"copy\", toClipboardData(e));\n\t\t\t}\n\t\t});\n\n\t\telement.addEventListener(\"cut\", (e: ClipboardEvent): void => {\n\t\t\tif (e.target === element) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis.emit(\"cut\", toClipboardData(e));\n\t\t\t}\n\t\t});\n\n\t\telement.addEventListener(\"paste\", (e: ClipboardEvent): void => {\n\t\t\tif (e.target === element) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis.emit(\"paste\", toClipboardData(e));\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic copy(text: string): void {\n\t\tconst clipboard = navigator.clipboard;\n\t\tif (clipboard && clipboard.writeText) {\n\t\t\tclipboard.writeText(text);\n\t\t} else {\n\t\t\tif (!copyUsingWindow(window, text)) {\n\t\t\t\tif (!copyUsingDiv(text)) {\n\t\t\t\t\tif (navigator.userAgent.indexOf(\"Edge\") < 0) {\n\t\t\t\t\t\tcopyUsingSpan(text);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"util-clipboard.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/util-clipboard.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { utils } from \"pixi.js\";\n\nconst getSelection = (element: Element): Selection | null => {\n\tconst selection = document.getSelection();\n\tif (selection) {\n\t\tconst range = document.createRange();\n\t\trange.selectNodeContents(element);\n\t\tselection.removeAllRanges();\n\t\tselection.addRange(range);\n\t}\n\treturn selection;\n};\n\nconst toClipboardData = (e: ClipboardEvent): DataTransfer => {\n\treturn e.clipboardData || (window as any).clipboardData;\n};\n\nconst copyUsingDiv = (text: string): boolean => {\n\tconst div = document.createElement(\"div\");\n\tdiv.setAttribute(\"style\", \"-webkit-user-select: text !important\");\n\tdiv.textContent = \"Dummy\";\n\tdocument.body.appendChild(div);\n\tconst selection = getSelection(div);\n\tlet result = false;\n\tif (selection) {\n\t\tconst handler = (e: ClipboardEvent): void => {\n\t\t\tif (e.target === div) {\n\t\t\t\tconst clipboardData = toClipboardData(e);\n\t\t\t\tclipboardData.setData(\"text/plain\", text);\n\t\t\t\tresult = clipboardData.getData(\"text/plain\") === text;\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"copy\", handler);\n\t\ttry {\n\t\t\tdocument.execCommand(\"copy\");\n\t\t} finally {\n\t\t\tdocument.removeEventListener(\"copy\", handler);\n\t\t}\n\t\tselection.removeAllRanges();\n\t}\n\tdocument.body.removeChild(div);\n\treturn result;\n};\n\nconst copyUsingSpan = (text: string): boolean => {\n\tconst div = document.createElement(\"div\");\n\tdiv.setAttribute(\"style\", \"-webkit-user-select: text !important\");\n\tconst span = document.createElement(\"span\");\n\tspan.innerText = text;\n\tconst root: Node = div.attachShadow ? div.attachShadow({ mode: \"open\" }) : div;\n\troot.appendChild(span);\n\tdocument.body.appendChild(div);\n\tlet result = false;\n\tconst selection = getSelection(div);\n\tif (selection) {\n\t\tresult = document.execCommand(\"copy\");\n\t\tselection.removeAllRanges();\n\t}\n\tdocument.body.removeChild(div);\n\treturn result;\n};\n\nconst copyUsingWindow = (window: Window, text: string): boolean => {\n\tif (typeof ClipboardEvent === \"undefined\") {\n\t\tconst clipboardData = (window as any).clipboardData;\n\t\tif (typeof clipboardData !== \"undefined\" && typeof clipboardData.setData !== \"undefined\") {\n\t\t\tclipboardData.setData(\"Text\", text);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexport class UtilClipboard extends utils.EventEmitter {\n\tconstructor(element?: HTMLElement) {\n\t\tsuper();\n\n\t\t// Please note how ClipboardEvent#target is set.\n\t\t// ClipboardEvent#target could be the one of the body or the focused node.\n\t\t// https://w3c.github.io/clipboard-apis/#to-fire-a-clipboard-event\n\t\t// Plus, FireFox fires the events on the document body. But not on the element.\n\t\t// However, Chrome fires on both the document body and the element.\n\t\tconst body = document.body;\n\t\tbody.addEventListener(\"copy\", (e: ClipboardEvent): void => {\n\t\t\tif (e.target === body || e.target === element) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis.emit(\"copy\", toClipboardData(e));\n\t\t\t}\n\t\t});\n\n\t\tbody.addEventListener(\"cut\", (e: ClipboardEvent): void => {\n\t\t\tif (e.target === body || e.target === element) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis.emit(\"cut\", toClipboardData(e));\n\t\t\t}\n\t\t});\n\n\t\tbody.addEventListener(\"paste\", (e: ClipboardEvent): void => {\n\t\t\tif (e.target === body || e.target === element) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis.emit(\"paste\", toClipboardData(e));\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic copy(text: string): void {\n\t\tconst clipboard = navigator.clipboard;\n\t\tif (clipboard && clipboard.writeText) {\n\t\t\tclipboard.writeText(text);\n\t\t} else {\n\t\t\tif (!copyUsingWindow(window, text)) {\n\t\t\t\tif (!copyUsingDiv(text)) {\n\t\t\t\t\tif (navigator.userAgent.indexOf(\"Edge\") < 0) {\n\t\t\t\t\t\tcopyUsingSpan(text);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -45833,25 +45833,30 @@ const copyUsingWindow = (window, text) => {
45833
45833
  return false;
45834
45834
  };
45835
45835
  class UtilClipboard extends pixi_js.utils.EventEmitter {
45836
- constructor() {
45836
+ constructor(element) {
45837
45837
  super();
45838
- const element = document.body;
45839
- element.addEventListener("copy", (e) => {
45840
- if (e.target === element) {
45838
+ // Please note how ClipboardEvent#target is set.
45839
+ // ClipboardEvent#target could be the one of the body or the focused node.
45840
+ // https://w3c.github.io/clipboard-apis/#to-fire-a-clipboard-event
45841
+ // Plus, FireFox fires the events on the document body. But not on the element.
45842
+ // However, Chrome fires on both the document body and the element.
45843
+ const body = document.body;
45844
+ body.addEventListener("copy", (e) => {
45845
+ if (e.target === body || e.target === element) {
45841
45846
  e.preventDefault();
45842
45847
  e.stopPropagation();
45843
45848
  this.emit("copy", toClipboardData(e));
45844
45849
  }
45845
45850
  });
45846
- element.addEventListener("cut", (e) => {
45847
- if (e.target === element) {
45851
+ body.addEventListener("cut", (e) => {
45852
+ if (e.target === body || e.target === element) {
45848
45853
  e.preventDefault();
45849
45854
  e.stopPropagation();
45850
45855
  this.emit("cut", toClipboardData(e));
45851
45856
  }
45852
45857
  });
45853
- element.addEventListener("paste", (e) => {
45854
- if (e.target === element) {
45858
+ body.addEventListener("paste", (e) => {
45859
+ if (e.target === body || e.target === element) {
45855
45860
  e.preventDefault();
45856
45861
  e.stopPropagation();
45857
45862
  this.emit("paste", toClipboardData(e));
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.452.0
2
+ Winter Cardinal UI v0.453.0
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -45830,25 +45830,30 @@ void main(void) {
45830
45830
  return false;
45831
45831
  };
45832
45832
  class UtilClipboard extends pixi_js.utils.EventEmitter {
45833
- constructor() {
45833
+ constructor(element) {
45834
45834
  super();
45835
- const element = document.body;
45836
- element.addEventListener("copy", (e) => {
45837
- if (e.target === element) {
45835
+ // Please note how ClipboardEvent#target is set.
45836
+ // ClipboardEvent#target could be the one of the body or the focused node.
45837
+ // https://w3c.github.io/clipboard-apis/#to-fire-a-clipboard-event
45838
+ // Plus, FireFox fires the events on the document body. But not on the element.
45839
+ // However, Chrome fires on both the document body and the element.
45840
+ const body = document.body;
45841
+ body.addEventListener("copy", (e) => {
45842
+ if (e.target === body || e.target === element) {
45838
45843
  e.preventDefault();
45839
45844
  e.stopPropagation();
45840
45845
  this.emit("copy", toClipboardData(e));
45841
45846
  }
45842
45847
  });
45843
- element.addEventListener("cut", (e) => {
45844
- if (e.target === element) {
45848
+ body.addEventListener("cut", (e) => {
45849
+ if (e.target === body || e.target === element) {
45845
45850
  e.preventDefault();
45846
45851
  e.stopPropagation();
45847
45852
  this.emit("cut", toClipboardData(e));
45848
45853
  }
45849
45854
  });
45850
- element.addEventListener("paste", (e) => {
45851
- if (e.target === element) {
45855
+ body.addEventListener("paste", (e) => {
45856
+ if (e.target === body || e.target === element) {
45852
45857
  e.preventDefault();
45853
45858
  e.stopPropagation();
45854
45859
  this.emit("paste", toClipboardData(e));