@plait/core 0.50.0 → 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.
@@ -1,4 +1,4 @@
1
- import { getProbablySupportsClipboardRead, getProbablySupportsClipboardWrite } from './common';
1
+ import { buildPlaitHtml, getProbablySupportsClipboardRead, getProbablySupportsClipboardWrite, getProbablySupportsClipboardWriteText } from './common';
2
2
  import { getDataTransferClipboard, getDataTransferClipboardText, setDataTransferClipboard, setDataTransferClipboardText } from './data-transfer';
3
3
  import { getNavigatorClipboard, setNavigatorClipboard } from './navigator-clipboard';
4
4
  export const getClipboardData = async (dataTransfer) => {
@@ -9,9 +9,7 @@ export const getClipboardData = async (dataTransfer) => {
9
9
  }
10
10
  clipboardData = getDataTransferClipboard(dataTransfer);
11
11
  if (Object.keys(clipboardData).length === 0) {
12
- clipboardData = {
13
- text: getDataTransferClipboardText(dataTransfer)
14
- };
12
+ clipboardData = getDataTransferClipboardText(dataTransfer);
15
13
  }
16
14
  return clipboardData;
17
15
  }
@@ -31,6 +29,12 @@ export const setClipboardData = async (dataTransfer, clipboardContext) => {
31
29
  if (dataTransfer) {
32
30
  setDataTransferClipboard(dataTransfer, type, data);
33
31
  setDataTransferClipboardText(dataTransfer, text);
32
+ return;
33
+ }
34
+ // Compatible with situations where navigator.clipboard.write is not supported and dataTransfer is empty
35
+ // Such as contextmenu copy in Firefox.
36
+ if (getProbablySupportsClipboardWriteText()) {
37
+ return await navigator.clipboard.writeText(buildPlaitHtml(type, data));
34
38
  }
35
39
  };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvY2xpcGJvYXJkL2NsaXBib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0YsT0FBTyxFQUNILHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUMvQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxZQUFpQyxFQUEwQixFQUFFO0lBQ2hHLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLFlBQVksRUFBRTtRQUNkLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDM0IsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ3BEO1FBQ0QsYUFBYSxHQUFHLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLGFBQWEsR0FBRztnQkFDWixJQUFJLEVBQUUsNEJBQTRCLENBQUMsWUFBWSxDQUFDO2FBQ25ELENBQUM7U0FDTDtRQUNELE9BQU8sYUFBYSxDQUFDO0tBQ3hCO0lBQ0QsSUFBSSxnQ0FBZ0MsRUFBRSxFQUFFO1FBQ3BDLE9BQU8sTUFBTSxxQkFBcUIsRUFBRSxDQUFDO0tBQ3hDO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLFlBQWlDLEVBQUUsZ0JBQWlELEVBQUUsRUFBRTtJQUMzSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDbkIsT0FBTztLQUNWO0lBQ0QsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUMsSUFBSSxpQ0FBaUMsRUFBRSxFQUFFO1FBQ3JDLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsSUFBSSxZQUFZLEVBQUU7UUFDZCx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ELDRCQUE0QixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNwRDtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRSZWFkLCBnZXRQcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkV3JpdGUgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGdldERhdGFUcmFuc2ZlckNsaXBib2FyZCxcbiAgICBnZXREYXRhVHJhbnNmZXJDbGlwYm9hcmRUZXh0LFxuICAgIHNldERhdGFUcmFuc2ZlckNsaXBib2FyZCxcbiAgICBzZXREYXRhVHJhbnNmZXJDbGlwYm9hcmRUZXh0XG59IGZyb20gJy4vZGF0YS10cmFuc2Zlcic7XG5pbXBvcnQgeyBnZXROYXZpZ2F0b3JDbGlwYm9hcmQsIHNldE5hdmlnYXRvckNsaXBib2FyZCB9IGZyb20gJy4vbmF2aWdhdG9yLWNsaXBib2FyZCc7XG5pbXBvcnQgeyBDbGlwYm9hcmREYXRhLCBXcml0YWJsZUNsaXBib2FyZENvbnRleHQgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGdldENsaXBib2FyZERhdGEgPSBhc3luYyAoZGF0YVRyYW5zZmVyOiBEYXRhVHJhbnNmZXIgfCBudWxsKTogUHJvbWlzZTxDbGlwYm9hcmREYXRhPiA9PiB7XG4gICAgbGV0IGNsaXBib2FyZERhdGEgPSB7fTtcbiAgICBpZiAoZGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIGlmIChkYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4geyBmaWxlczogQXJyYXkuZnJvbShkYXRhVHJhbnNmZXIuZmlsZXMpIH07XG4gICAgICAgIH1cbiAgICAgICAgY2xpcGJvYXJkRGF0YSA9IGdldERhdGFUcmFuc2ZlckNsaXBib2FyZChkYXRhVHJhbnNmZXIpO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2xpcGJvYXJkRGF0YSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjbGlwYm9hcmREYXRhID0ge1xuICAgICAgICAgICAgICAgIHRleHQ6IGdldERhdGFUcmFuc2ZlckNsaXBib2FyZFRleHQoZGF0YVRyYW5zZmVyKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xpcGJvYXJkRGF0YTtcbiAgICB9XG4gICAgaWYgKGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRSZWFkKCkpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdldE5hdmlnYXRvckNsaXBib2FyZCgpO1xuICAgIH1cbiAgICByZXR1cm4gY2xpcGJvYXJkRGF0YTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDbGlwYm9hcmREYXRhID0gYXN5bmMgKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCwgY2xpcGJvYXJkQ29udGV4dDogV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0IHwgbnVsbCkgPT4ge1xuICAgIGlmICghY2xpcGJvYXJkQ29udGV4dCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgdHlwZSwgZGF0YSwgdGV4dCB9ID0gY2xpcGJvYXJkQ29udGV4dDtcbiAgICBpZiAoZ2V0UHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlKCkpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHNldE5hdmlnYXRvckNsaXBib2FyZCh0eXBlLCBkYXRhLCB0ZXh0KTtcbiAgICB9XG4gICAgaWYgKGRhdGFUcmFuc2Zlcikge1xuICAgICAgICBzZXREYXRhVHJhbnNmZXJDbGlwYm9hcmQoZGF0YVRyYW5zZmVyLCB0eXBlLCBkYXRhKTtcbiAgICAgICAgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkVGV4dChkYXRhVHJhbnNmZXIsIHRleHQpO1xuICAgIH1cbn07XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvY2xpcGJvYXJkL2NsaXBib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLGdDQUFnQyxFQUNoQyxpQ0FBaUMsRUFDakMscUNBQXFDLEVBQ3hDLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsWUFBaUMsRUFBMEIsRUFBRTtJQUNoRyxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxZQUFZLEVBQUU7UUFDZCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNwRDtRQUNELGFBQWEsR0FBRyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6QyxhQUFhLEdBQUcsNEJBQTRCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDOUQ7UUFDRCxPQUFPLGFBQWEsQ0FBQztLQUN4QjtJQUNELElBQUksZ0NBQWdDLEVBQUUsRUFBRTtRQUNwQyxPQUFPLE1BQU0scUJBQXFCLEVBQUUsQ0FBQztLQUN4QztJQUNELE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxZQUFpQyxFQUFFLGdCQUFpRCxFQUFFLEVBQUU7SUFDM0gsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1FBQ25CLE9BQU87S0FDVjtJQUNELE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLGdCQUFnQixDQUFDO0lBRTlDLElBQUksaUNBQWlDLEVBQUUsRUFBRTtRQUNyQyxPQUFPLE1BQU0scUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztLQUN4RDtJQUVELElBQUksWUFBWSxFQUFFO1FBQ2Qsd0JBQXdCLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRCw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsT0FBTztLQUNWO0lBRUQsd0dBQXdHO0lBQ3hHLHVDQUF1QztJQUN2QyxJQUFJLHFDQUFxQyxFQUFFLEVBQUU7UUFDekMsT0FBTyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUMxRTtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYnVpbGRQbGFpdEh0bWwsXG4gICAgZ2V0UHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFJlYWQsXG4gICAgZ2V0UHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlLFxuICAgIGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRXcml0ZVRleHRcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBnZXREYXRhVHJhbnNmZXJDbGlwYm9hcmQsXG4gICAgZ2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkVGV4dCxcbiAgICBzZXREYXRhVHJhbnNmZXJDbGlwYm9hcmQsXG4gICAgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkVGV4dFxufSBmcm9tICcuL2RhdGEtdHJhbnNmZXInO1xuaW1wb3J0IHsgZ2V0TmF2aWdhdG9yQ2xpcGJvYXJkLCBzZXROYXZpZ2F0b3JDbGlwYm9hcmQgfSBmcm9tICcuL25hdmlnYXRvci1jbGlwYm9hcmQnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkRGF0YSwgV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0IH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRDbGlwYm9hcmREYXRhID0gYXN5bmMgKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCk6IFByb21pc2U8Q2xpcGJvYXJkRGF0YT4gPT4ge1xuICAgIGxldCBjbGlwYm9hcmREYXRhID0ge307XG4gICAgaWYgKGRhdGFUcmFuc2Zlcikge1xuICAgICAgICBpZiAoZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgZmlsZXM6IEFycmF5LmZyb20oZGF0YVRyYW5zZmVyLmZpbGVzKSB9O1xuICAgICAgICB9XG4gICAgICAgIGNsaXBib2FyZERhdGEgPSBnZXREYXRhVHJhbnNmZXJDbGlwYm9hcmQoZGF0YVRyYW5zZmVyKTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNsaXBib2FyZERhdGEpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY2xpcGJvYXJkRGF0YSA9IGdldERhdGFUcmFuc2ZlckNsaXBib2FyZFRleHQoZGF0YVRyYW5zZmVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xpcGJvYXJkRGF0YTtcbiAgICB9XG4gICAgaWYgKGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRSZWFkKCkpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdldE5hdmlnYXRvckNsaXBib2FyZCgpO1xuICAgIH1cbiAgICByZXR1cm4gY2xpcGJvYXJkRGF0YTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDbGlwYm9hcmREYXRhID0gYXN5bmMgKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCwgY2xpcGJvYXJkQ29udGV4dDogV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0IHwgbnVsbCkgPT4ge1xuICAgIGlmICghY2xpcGJvYXJkQ29udGV4dCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgdHlwZSwgZGF0YSwgdGV4dCB9ID0gY2xpcGJvYXJkQ29udGV4dDtcblxuICAgIGlmIChnZXRQcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkV3JpdGUoKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgc2V0TmF2aWdhdG9yQ2xpcGJvYXJkKHR5cGUsIGRhdGEsIHRleHQpO1xuICAgIH1cblxuICAgIGlmIChkYXRhVHJhbnNmZXIpIHtcbiAgICAgICAgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkKGRhdGFUcmFuc2ZlciwgdHlwZSwgZGF0YSk7XG4gICAgICAgIHNldERhdGFUcmFuc2ZlckNsaXBib2FyZFRleHQoZGF0YVRyYW5zZmVyLCB0ZXh0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENvbXBhdGlibGUgd2l0aCBzaXR1YXRpb25zIHdoZXJlIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGUgaXMgbm90IHN1cHBvcnRlZCBhbmQgZGF0YVRyYW5zZmVyIGlzIGVtcHR5XG4gICAgLy8gU3VjaCBhcyBjb250ZXh0bWVudSBjb3B5IGluIEZpcmVmb3guXG4gICAgaWYgKGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRXcml0ZVRleHQoKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYnVpbGRQbGFpdEh0bWwodHlwZSwgZGF0YSkpO1xuICAgIH1cbn07XG4iXX0=
@@ -40,6 +40,9 @@ export const stripHtml = (html) => {
40
40
  export const getProbablySupportsClipboardWrite = () => {
41
41
  return 'clipboard' in navigator && 'write' in navigator.clipboard;
42
42
  };
43
+ export const getProbablySupportsClipboardWriteText = () => {
44
+ return 'clipboard' in navigator && 'writeText' in navigator.clipboard;
45
+ };
43
46
  export const getProbablySupportsClipboardRead = () => {
44
47
  return 'clipboard' in navigator && 'read' in navigator.clipboard;
45
48
  };
@@ -61,4 +64,4 @@ export const addClipboardContext = (clipboardContext, addition) => {
61
64
  }
62
65
  return clipboardContext;
63
66
  };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvY2xpcGJvYXJkL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQTJCLEVBQUUsSUFBMkIsRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJQUFJO1FBQ0osSUFBSTtLQUNQLENBQUMsQ0FBQztJQUNILE9BQU8sVUFBVSxvQkFBb0IsVUFBVSxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBWSxFQUF3QixFQUFFO0lBQ3ZFLE1BQU0sV0FBVyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksV0FBVyxFQUFFO1FBQ2IsSUFBSTtZQUNBLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUMsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLFFBQVEsRUFBRTtvQkFDbkQsT0FBTzt3QkFDSCxRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQzNCLENBQUM7aUJBQ0w7cUJBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLE1BQU0sRUFBRTtvQkFDeEQsT0FBTzt3QkFDSCxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQ3pCLENBQUM7aUJBQ0w7YUFDSjtTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3RDLDZIQUE2SDtJQUM3SCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNELEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxHQUFHLEVBQUU7SUFDbEQsT0FBTyxXQUFXLElBQUksU0FBUyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ3RFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEdBQUcsRUFBRTtJQUNqRCxPQUFPLFdBQVcsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDbEMsSUFBMkIsRUFDM0IsSUFBMkIsRUFDM0IsSUFBWSxFQUNZLEVBQUU7SUFDMUIsT0FBTztRQUNILElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtLQUNQLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUMvQixnQkFBMEMsRUFDMUMsUUFBa0MsRUFDVixFQUFFO0lBQzFCLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLGdCQUFnQixDQUFDO0lBQzlDLElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUU7UUFDeEIsT0FBTztZQUNILElBQUk7WUFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2hDLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJO1NBQ25DLENBQUM7S0FDTDtJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDNUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpcGJvYXJkRGF0YSwgV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0LCBXcml0YWJsZUNsaXBib2FyZERhdGEsIFdyaXRhYmxlQ2xpcGJvYXJkVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgYnVpbGRQbGFpdEh0bWwgPSAodHlwZTogV3JpdGFibGVDbGlwYm9hcmRUeXBlLCBkYXRhOiBXcml0YWJsZUNsaXBib2FyZERhdGEpID0+IHtcbiAgICBjb25zdCBzdHJpbmdpZmllZENsaXBib2FyZCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgZGF0YVxuICAgIH0pO1xuICAgIHJldHVybiBgPHBsYWl0PiR7c3RyaW5naWZpZWRDbGlwYm9hcmR9PC9wbGFpdD5gO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENsaXBib2FyZEZyb21IdG1sID0gKGh0bWw6IHN0cmluZyk6IENsaXBib2FyZERhdGEgfCBudWxsID0+IHtcbiAgICBjb25zdCBwbGFpdFN0cmluZyA9IGh0bWw/Lm1hdGNoKC88cGxhaXRbXj5dKj4oLiopPFxcL3BsYWl0Pi8pPy5bMV07XG4gICAgaWYgKHBsYWl0U3RyaW5nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwbGFpdEpzb24gPSBKU09OLnBhcnNlKHBsYWl0U3RyaW5nKTtcbiAgICAgICAgICAgIGlmIChwbGFpdEpzb24pIHtcbiAgICAgICAgICAgICAgICBpZiAocGxhaXRKc29uLnR5cGUgPT09IFdyaXRhYmxlQ2xpcGJvYXJkVHlwZS5lbGVtZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHBsYWl0SnNvbi5kYXRhXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwbGFpdEpzb24udHlwZSA9PT0gV3JpdGFibGVDbGlwYm9hcmRUeXBlLm1lZGlhcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFzOiBwbGFpdEpzb24uZGF0YVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3Qgc3RyaXBIdG1sID0gKGh0bWw6IHN0cmluZykgPT4ge1xuICAgIC8vIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL2RldmVsb3BpdC9wcmVhY3QtbWFya3VwL2Jsb2IvNDc4OGI4ZDYxYjRlMjRmODM2ODg3MTA3NDZlZTM2ZTc0NjRmN2JiYy9zcmMvcGFyc2UtbWFya3VwLmpzI0w2MC1MNjk+XG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCcnKTtcbiAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9IGh0bWwudHJpbSgpO1xuICAgIHJldHVybiBkb2MuYm9keS50ZXh0Q29udGVudCB8fCBkb2MuYm9keS5pbm5lclRleHQgfHwgJyc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlID0gKCkgPT4ge1xuICAgIHJldHVybiAnY2xpcGJvYXJkJyBpbiBuYXZpZ2F0b3IgJiYgJ3dyaXRlJyBpbiBuYXZpZ2F0b3IuY2xpcGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRSZWFkID0gKCkgPT4ge1xuICAgIHJldHVybiAnY2xpcGJvYXJkJyBpbiBuYXZpZ2F0b3IgJiYgJ3JlYWQnIGluIG5hdmlnYXRvci5jbGlwYm9hcmQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQ2xpcGJvYXJkQ29udGV4dCA9IChcbiAgICB0eXBlOiBXcml0YWJsZUNsaXBib2FyZFR5cGUsXG4gICAgZGF0YTogV3JpdGFibGVDbGlwYm9hcmREYXRhLFxuICAgIHRleHQ6IHN0cmluZ1xuKTogV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlLFxuICAgICAgICBkYXRhLFxuICAgICAgICB0ZXh0XG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRDbGlwYm9hcmRDb250ZXh0ID0gKFxuICAgIGNsaXBib2FyZENvbnRleHQ6IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCxcbiAgICBhZGRpdGlvbjogV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0XG4pOiBXcml0YWJsZUNsaXBib2FyZENvbnRleHQgPT4ge1xuICAgIGNvbnN0IHsgdHlwZSwgZGF0YSwgdGV4dCB9ID0gY2xpcGJvYXJkQ29udGV4dDtcbiAgICBpZiAodHlwZSA9PT0gYWRkaXRpb24udHlwZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGRhdGE6IGRhdGEuY29uY2F0KGFkZGl0aW9uLmRhdGEpLFxuICAgICAgICAgICAgdGV4dDogdGV4dCArICcgJyArIGFkZGl0aW9uLnRleHRcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaXBib2FyZENvbnRleHQ7XG59O1xuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvY2xpcGJvYXJkL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQTJCLEVBQUUsSUFBMkIsRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJQUFJO1FBQ0osSUFBSTtLQUNQLENBQUMsQ0FBQztJQUNILE9BQU8sVUFBVSxvQkFBb0IsVUFBVSxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBWSxFQUF3QixFQUFFO0lBQ3ZFLE1BQU0sV0FBVyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksV0FBVyxFQUFFO1FBQ2IsSUFBSTtZQUNBLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUMsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLFFBQVEsRUFBRTtvQkFDbkQsT0FBTzt3QkFDSCxRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQzNCLENBQUM7aUJBQ0w7cUJBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLE1BQU0sRUFBRTtvQkFDeEQsT0FBTzt3QkFDSCxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQ3pCLENBQUM7aUJBQ0w7YUFDSjtTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3RDLDZIQUE2SDtJQUM3SCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNELEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxHQUFHLEVBQUU7SUFDbEQsT0FBTyxXQUFXLElBQUksU0FBUyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ3RFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLEdBQUcsRUFBRTtJQUN0RCxPQUFPLFdBQVcsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxFQUFFO0lBQ2pELE9BQU8sV0FBVyxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUNsQyxJQUEyQixFQUMzQixJQUEyQixFQUMzQixJQUFZLEVBQ1ksRUFBRTtJQUMxQixPQUFPO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO0tBQ1AsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQy9CLGdCQUEwQyxFQUMxQyxRQUFrQyxFQUNWLEVBQUU7SUFDMUIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUMsSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRTtRQUN4QixPQUFPO1lBQ0gsSUFBSTtZQUNKLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUk7U0FDbkMsQ0FBQztLQUNMO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlwYm9hcmREYXRhLCBXcml0YWJsZUNsaXBib2FyZENvbnRleHQsIFdyaXRhYmxlQ2xpcGJvYXJkRGF0YSwgV3JpdGFibGVDbGlwYm9hcmRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBidWlsZFBsYWl0SHRtbCA9ICh0eXBlOiBXcml0YWJsZUNsaXBib2FyZFR5cGUsIGRhdGE6IFdyaXRhYmxlQ2xpcGJvYXJkRGF0YSkgPT4ge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkQ2xpcGJvYXJkID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB0eXBlLFxuICAgICAgICBkYXRhXG4gICAgfSk7XG4gICAgcmV0dXJuIGA8cGxhaXQ+JHtzdHJpbmdpZmllZENsaXBib2FyZH08L3BsYWl0PmA7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2xpcGJvYXJkRnJvbUh0bWwgPSAoaHRtbDogc3RyaW5nKTogQ2xpcGJvYXJkRGF0YSB8IG51bGwgPT4ge1xuICAgIGNvbnN0IHBsYWl0U3RyaW5nID0gaHRtbD8ubWF0Y2goLzxwbGFpdFtePl0qPiguKik8XFwvcGxhaXQ+Lyk/LlsxXTtcbiAgICBpZiAocGxhaXRTdHJpbmcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBsYWl0SnNvbiA9IEpTT04ucGFyc2UocGxhaXRTdHJpbmcpO1xuICAgICAgICAgICAgaWYgKHBsYWl0SnNvbikge1xuICAgICAgICAgICAgICAgIGlmIChwbGFpdEpzb24udHlwZSA9PT0gV3JpdGFibGVDbGlwYm9hcmRUeXBlLmVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogcGxhaXRKc29uLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBsYWl0SnNvbi50eXBlID09PSBXcml0YWJsZUNsaXBib2FyZFR5cGUubWVkaWFzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZWRpYXM6IHBsYWl0SnNvbi5kYXRhXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpcEh0bWwgPSAoaHRtbDogc3RyaW5nKSA9PiB7XG4gICAgLy8gU2VlIDxodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L3ByZWFjdC1tYXJrdXAvYmxvYi80Nzg4YjhkNjFiNGUyNGY4MzY4ODcxMDc0NmVlMzZlNzQ2NGY3YmJjL3NyYy9wYXJzZS1tYXJrdXAuanMjTDYwLUw2OT5cbiAgICBjb25zdCBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoJycpO1xuICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gaHRtbC50cmltKCk7XG4gICAgcmV0dXJuIGRvYy5ib2R5LnRleHRDb250ZW50IHx8IGRvYy5ib2R5LmlubmVyVGV4dCB8fCAnJztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQcm9iYWJseVN1cHBvcnRzQ2xpcGJvYXJkV3JpdGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuICdjbGlwYm9hcmQnIGluIG5hdmlnYXRvciAmJiAnd3JpdGUnIGluIG5hdmlnYXRvci5jbGlwYm9hcmQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFdyaXRlVGV4dCA9ICgpID0+IHtcbiAgICByZXR1cm4gJ2NsaXBib2FyZCcgaW4gbmF2aWdhdG9yICYmICd3cml0ZVRleHQnIGluIG5hdmlnYXRvci5jbGlwYm9hcmQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFJlYWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuICdjbGlwYm9hcmQnIGluIG5hdmlnYXRvciAmJiAncmVhZCcgaW4gbmF2aWdhdG9yLmNsaXBib2FyZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDbGlwYm9hcmRDb250ZXh0ID0gKFxuICAgIHR5cGU6IFdyaXRhYmxlQ2xpcGJvYXJkVHlwZSxcbiAgICBkYXRhOiBXcml0YWJsZUNsaXBib2FyZERhdGEsXG4gICAgdGV4dDogc3RyaW5nXG4pOiBXcml0YWJsZUNsaXBib2FyZENvbnRleHQgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHRleHRcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZENsaXBib2FyZENvbnRleHQgPSAoXG4gICAgY2xpcGJvYXJkQ29udGV4dDogV3JpdGFibGVDbGlwYm9hcmRDb250ZXh0LFxuICAgIGFkZGl0aW9uOiBXcml0YWJsZUNsaXBib2FyZENvbnRleHRcbik6IFdyaXRhYmxlQ2xpcGJvYXJkQ29udGV4dCA9PiB7XG4gICAgY29uc3QgeyB0eXBlLCBkYXRhLCB0ZXh0IH0gPSBjbGlwYm9hcmRDb250ZXh0O1xuICAgIGlmICh0eXBlID09PSBhZGRpdGlvbi50eXBlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgZGF0YTogZGF0YS5jb25jYXQoYWRkaXRpb24uZGF0YSksXG4gICAgICAgICAgICB0ZXh0OiB0ZXh0ICsgJyAnICsgYWRkaXRpb24udGV4dFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gY2xpcGJvYXJkQ29udGV4dDtcbn07XG4iXX0=
@@ -16,6 +16,18 @@ export const getDataTransferClipboard = (data) => {
16
16
  return {};
17
17
  };
18
18
  export const getDataTransferClipboardText = (data) => {
19
- return (data ? data.getData(`text/plain`) : '');
19
+ if (!data) {
20
+ return {};
21
+ }
22
+ const text = data?.getData(`text/plain`);
23
+ if (text) {
24
+ const htmlClipboardData = getClipboardFromHtml(text);
25
+ if (htmlClipboardData) {
26
+ return htmlClipboardData;
27
+ }
28
+ }
29
+ return {
30
+ text
31
+ };
20
32
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10cmFuc2Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL2NsaXBib2FyZC9kYXRhLXRyYW5zZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxZQUFpQyxFQUFFLElBQTJCLEVBQUUsSUFBMkIsRUFBRSxFQUFFO0lBQ3BJLFlBQVksRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQXlCLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDcEYsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxJQUF5QixFQUFpQixFQUFFO0lBQ2pGLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsSUFBSSxJQUFJLEVBQUU7UUFDTixNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksaUJBQWlCLEVBQUU7WUFDbkIsT0FBTyxpQkFBaUIsQ0FBQztTQUM1QjtLQUNKO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQXlCLEVBQUUsRUFBRTtJQUN0RSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVcsQ0FBQztBQUM5RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZFBsYWl0SHRtbCwgZ2V0Q2xpcGJvYXJkRnJvbUh0bWwgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBDbGlwYm9hcmREYXRhLCBXcml0YWJsZUNsaXBib2FyZERhdGEsIFdyaXRhYmxlQ2xpcGJvYXJkVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3Qgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkID0gKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCwgdHlwZTogV3JpdGFibGVDbGlwYm9hcmRUeXBlLCBkYXRhOiBXcml0YWJsZUNsaXBib2FyZERhdGEpID0+IHtcbiAgICBkYXRhVHJhbnNmZXI/LnNldERhdGEoYHRleHQvaHRtbGAsIGJ1aWxkUGxhaXRIdG1sKHR5cGUsIGRhdGEpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXREYXRhVHJhbnNmZXJDbGlwYm9hcmRUZXh0ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwsIHRleHQ6IHN0cmluZykgPT4ge1xuICAgIGRhdGE/LnNldERhdGEoYHRleHQvcGxhaW5gLCB0ZXh0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhVHJhbnNmZXJDbGlwYm9hcmQgPSAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCk6IENsaXBib2FyZERhdGEgPT4ge1xuICAgIGNvbnN0IGh0bWwgPSBkYXRhPy5nZXREYXRhKGB0ZXh0L2h0bWxgKTtcbiAgICBpZiAoaHRtbCkge1xuICAgICAgICBjb25zdCBodG1sQ2xpcGJvYXJkRGF0YSA9IGdldENsaXBib2FyZEZyb21IdG1sKGh0bWwpO1xuICAgICAgICBpZiAoaHRtbENsaXBib2FyZERhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBodG1sQ2xpcGJvYXJkRGF0YTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhVHJhbnNmZXJDbGlwYm9hcmRUZXh0ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHtcbiAgICByZXR1cm4gKGRhdGEgPyBkYXRhLmdldERhdGEoYHRleHQvcGxhaW5gKSA6ICcnKSBhcyBzdHJpbmc7XG59O1xuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10cmFuc2Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL2NsaXBib2FyZC9kYXRhLXRyYW5zZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxZQUFpQyxFQUFFLElBQTJCLEVBQUUsSUFBMkIsRUFBRSxFQUFFO0lBQ3BJLFlBQVksRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQXlCLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDcEYsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxJQUF5QixFQUFpQixFQUFFO0lBQ2pGLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsSUFBSSxJQUFJLEVBQUU7UUFDTixNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksaUJBQWlCLEVBQUU7WUFDbkIsT0FBTyxpQkFBaUIsQ0FBQztTQUM1QjtLQUNKO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQXlCLEVBQUUsRUFBRTtJQUN0RSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1AsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUNELE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsSUFBSSxJQUFJLEVBQUU7UUFDTixNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksaUJBQWlCLEVBQUU7WUFDbkIsT0FBTyxpQkFBaUIsQ0FBQztTQUM1QjtLQUNKO0lBQ0QsT0FBTztRQUNILElBQUk7S0FDUCxDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRQbGFpdEh0bWwsIGdldENsaXBib2FyZEZyb21IdG1sIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgQ2xpcGJvYXJkRGF0YSwgV3JpdGFibGVDbGlwYm9hcmREYXRhLCBXcml0YWJsZUNsaXBib2FyZFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IHNldERhdGFUcmFuc2ZlckNsaXBib2FyZCA9IChkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGwsIHR5cGU6IFdyaXRhYmxlQ2xpcGJvYXJkVHlwZSwgZGF0YTogV3JpdGFibGVDbGlwYm9hcmREYXRhKSA9PiB7XG4gICAgZGF0YVRyYW5zZmVyPy5zZXREYXRhKGB0ZXh0L2h0bWxgLCBidWlsZFBsYWl0SHRtbCh0eXBlLCBkYXRhKSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkVGV4dCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsLCB0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBkYXRhPy5zZXREYXRhKGB0ZXh0L3BsYWluYCwgdGV4dCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpOiBDbGlwYm9hcmREYXRhID0+IHtcbiAgICBjb25zdCBodG1sID0gZGF0YT8uZ2V0RGF0YShgdGV4dC9odG1sYCk7XG4gICAgaWYgKGh0bWwpIHtcbiAgICAgICAgY29uc3QgaHRtbENsaXBib2FyZERhdGEgPSBnZXRDbGlwYm9hcmRGcm9tSHRtbChodG1sKTtcbiAgICAgICAgaWYgKGh0bWxDbGlwYm9hcmREYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gaHRtbENsaXBib2FyZERhdGE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkVGV4dCA9IChkYXRhOiBEYXRhVHJhbnNmZXIgfCBudWxsKSA9PiB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgdGV4dCA9IGRhdGE/LmdldERhdGEoYHRleHQvcGxhaW5gKTtcbiAgICBpZiAodGV4dCkge1xuICAgICAgICBjb25zdCBodG1sQ2xpcGJvYXJkRGF0YSA9IGdldENsaXBib2FyZEZyb21IdG1sKHRleHQpO1xuICAgICAgICBpZiAoaHRtbENsaXBib2FyZERhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBodG1sQ2xpcGJvYXJkRGF0YTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0XG4gICAgfTtcbn07XG4iXX0=
@@ -1,21 +1,19 @@
1
- import { buildPlaitHtml, getClipboardFromHtml, stripHtml } from './common';
1
+ import { buildPlaitHtml, getClipboardFromHtml, getProbablySupportsClipboardRead, getProbablySupportsClipboardWrite, stripHtml } from './common';
2
2
  export const setNavigatorClipboard = async (type, data, text = '') => {
3
3
  let textClipboard = text;
4
- if ('clipboard' in navigator && 'write' in navigator.clipboard) {
5
- if (navigator.clipboard && typeof navigator.clipboard.write === 'function') {
6
- await navigator.clipboard.write([
7
- new ClipboardItem({
8
- 'text/html': new Blob([buildPlaitHtml(type, data)], {
9
- type: 'text/html'
10
- }),
11
- 'text/plain': new Blob([JSON.stringify(textClipboard ?? data)], { type: 'text/plain' })
12
- })
13
- ]);
14
- }
4
+ if (getProbablySupportsClipboardWrite()) {
5
+ await navigator.clipboard.write([
6
+ new ClipboardItem({
7
+ 'text/html': new Blob([buildPlaitHtml(type, data)], {
8
+ type: 'text/html'
9
+ }),
10
+ 'text/plain': new Blob([JSON.stringify(textClipboard ?? data)], { type: 'text/plain' })
11
+ })
12
+ ]);
15
13
  }
16
14
  };
17
15
  export const getNavigatorClipboard = async () => {
18
- if (!('clipboard' in navigator && 'read' in navigator.clipboard)) {
16
+ if (!getProbablySupportsClipboardRead()) {
19
17
  return {};
20
18
  }
21
19
  const clipboardItems = await navigator.clipboard.read();
@@ -70,4 +68,4 @@ const blobAsString = (blob) => {
70
68
  reader.readAsText(blob);
71
69
  });
72
70
  };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLWNsaXBib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL2NsaXBib2FyZC9uYXZpZ2F0b3ItY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzNFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFBRSxJQUEyQixFQUFFLElBQTJCLEVBQUUsT0FBZSxFQUFFLEVBQUUsRUFBRTtJQUN2SCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDekIsSUFBSSxXQUFXLElBQUksU0FBUyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQzVELElBQUksU0FBUyxDQUFDLFNBQVMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUN4RSxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUM1QixJQUFJLGFBQWEsQ0FBQztvQkFDZCxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUU7d0JBQ2hELElBQUksRUFBRSxXQUFXO3FCQUNwQixDQUFDO29CQUNGLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7aUJBQzFGLENBQUM7YUFDTCxDQUFDLENBQUM7U0FDTjtLQUNKO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxJQUE0QixFQUFFO0lBQ3BFLElBQUksQ0FBQyxDQUFDLFdBQVcs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QUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDaEMsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDM0IsT0FBTyxDQUFDLElBQWMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZFBsYWl0SHRtbCwgZ2V0Q2xpcGJvYXJkRnJvbUh0bWwsIHN0cmlwSHRtbCB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IENsaXBib2FyZERhdGEsIFdyaXRhYmxlQ2xpcGJvYXJkRGF0YSwgV3JpdGFibGVDbGlwYm9hcmRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBzZXROYXZpZ2F0b3JDbGlwYm9hcmQgPSBhc3luYyAodHlwZTogV3JpdGFibGVDbGlwYm9hcmRUeXBlLCBkYXRhOiBXcml0YWJsZUNsaXBib2FyZERhdGEsIHRleHQ6IHN0cmluZyA9ICcnKSA9PiB7XG4gICAgbGV0IHRleHRDbGlwYm9hcmQgPSB0ZXh0O1xuICAgIGlmICgnY2xpcGJvYXJkJyBpbiBuYXZpZ2F0b3IgJiYgJ3dyaXRlJyBpbiBuYXZpZ2F0b3IuY2xpcGJvYXJkKSB7XG4gICAgICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIHR5cGVvZiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlKFtcbiAgICAgICAgICAgICAgICBuZXcgQ2xpcGJvYXJkSXRlbSh7XG4gICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwnOiBuZXcgQmxvYihbYnVpbGRQbGFpdEh0bWwodHlwZSwgZGF0YSldLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dC9odG1sJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgJ3RleHQvcGxhaW4nOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGV4dENsaXBib2FyZCA/PyBkYXRhKV0sIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldE5hdmlnYXRvckNsaXBib2FyZCA9IGFzeW5jICgpOiBQcm9taXNlPENsaXBib2FyZERhdGE+ID0+IHtcbiAgICBpZiAoISgnY2xpcGJvYXJkJyBpbiBuYXZpZ2F0b3IgJiYgJ3JlYWQnIGluIG5hdmlnYXRvci5jbGlwYm9hcmQpKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgY2xpcGJvYXJkSXRlbXMgPSBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWQoKTtcbiAgICBsZXQgY2xpcGJvYXJkRGF0YTogQ2xpcGJvYXJkRGF0YSA9IHt9O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2xpcGJvYXJkSXRlbXMpICYmIGNsaXBib2FyZEl0ZW1zWzBdIGluc3RhbmNlb2YgQ2xpcGJvYXJkSXRlbSkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY2xpcGJvYXJkSXRlbXMpIHtcbiAgICAgICAgICAgIGlmIChpc0ZpbGUoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGlwYm9hcmRGaWxlcyA9IGl0ZW0udHlwZXMuZmlsdGVyKHR5cGUgPT4gdHlwZS5tYXRjaCgvXmltYWdlXFwvLykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVCbG9icyA9IGF3YWl0IFByb21pc2UuYWxsKGNsaXBib2FyZEZpbGVzLm1hcCh0eXBlID0+IGl0ZW0uZ2V0VHlwZSh0eXBlKSEpKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmxzID0gKGZpbGVCbG9icy5maWx0ZXIoQm9vbGVhbikgYXMgKEZpbGUgfCBCbG9iKVtdKS5tYXAoYmxvYiA9PiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICB1cmxzLm1hcChhc3luYyB1cmwgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IChhd2FpdCBmZXRjaCh1cmwpKS5ibG9iKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGUoW2Jsb2JdLCAncGxhaXQtZmlsZScsIHsgdHlwZTogYmxvYi50eXBlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXNcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0udHlwZXMuaW5jbHVkZXMoJ3RleHQvaHRtbCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaHRtbENvbnRlbnQgPSBhd2FpdCBibG9iQXNTdHJpbmcoYXdhaXQgaXRlbS5nZXRUeXBlKCd0ZXh0L2h0bWwnKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaHRtbENsaXBib2FyZERhdGEgPSBnZXRDbGlwYm9hcmRGcm9tSHRtbChodG1sQ29udGVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGh0bWxDbGlwYm9hcmREYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sQ2xpcGJvYXJkRGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGh0bWxDb250ZW50ICYmIGh0bWxDb250ZW50LnRyaW0oKSkge1xuICAgICAgICAgICAgICAgICAgICBjbGlwYm9hcmREYXRhID0geyB0ZXh0OiBzdHJpcEh0bWwoaHRtbENvbnRlbnQpIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0udHlwZXMuaW5jbHVkZXMoJ3RleHQvcGxhaW4nKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHRDb250ZW50ID0gYXdhaXQgYmxvYkFzU3RyaW5nKGF3YWl0IGl0ZW0uZ2V0VHlwZSgndGV4dC9wbGFpbicpKTtcbiAgICAgICAgICAgICAgICBjbGlwYm9hcmREYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBzdHJpcEh0bWwodGV4dENvbnRlbnQpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xpcGJvYXJkRGF0YTtcbn07XG5cbmNvbnN0IGlzRmlsZSA9IChpdGVtOiBDbGlwYm9hcmRJdGVtKSA9PiB7XG4gICAgcmV0dXJuIGl0ZW0udHlwZXMuZmluZChpID0+IGkubWF0Y2goL15pbWFnZVxcLy8pKTtcbn07XG5cbmNvbnN0IGJsb2JBc1N0cmluZyA9IChibG9iOiBCbG9iKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSByZWFkZXIucmVzdWx0O1xuICAgICAgICAgICAgcmVzb2x2ZSh0ZXh0IGFzIHN0cmluZyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoKSA9PiB7XG4gICAgICAgICAgICByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IpO1xuICAgIH0pO1xufTtcbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLWNsaXBib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL2NsaXBib2FyZC9uYXZpZ2F0b3ItY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGdDQUFnQyxFQUNoQyxpQ0FBaUMsRUFDakMsU0FBUyxFQUNaLE1BQU0sVUFBVSxDQUFDO0FBR2xCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFBRSxJQUEyQixFQUFFLElBQTJCLEVBQUUsT0FBZSxFQUFFLEVBQUUsRUFBRTtJQUN2SCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDekIsSUFBSSxpQ0FBaUMsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDNUIsSUFBSSxhQUFhLENBQUM7Z0JBQ2QsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUNoRCxJQUFJLEVBQUUsV0FBVztpQkFDcEIsQ0FBQztnQkFDRixZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDO2FBQzFGLENBQUM7U0FDTCxDQUFDLENBQUM7S0FDTjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssSUFBNEIsRUFBRTtJQUNwRSxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsRUFBRTtRQUNyQyxPQUFPLEVBQUUsQ0FBQztLQUNiO0lBQ0QsTUFBTSxjQUFjLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxD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QVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDM0IsT0FBTyxDQUFDLElBQWMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGJ1aWxkUGxhaXRIdG1sLFxuICAgIGdldENsaXBib2FyZEZyb21IdG1sLFxuICAgIGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRSZWFkLFxuICAgIGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRXcml0ZSxcbiAgICBzdHJpcEh0bWxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgQ2xpcGJvYXJkRGF0YSwgV3JpdGFibGVDbGlwYm9hcmREYXRhLCBXcml0YWJsZUNsaXBib2FyZFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IHNldE5hdmlnYXRvckNsaXBib2FyZCA9IGFzeW5jICh0eXBlOiBXcml0YWJsZUNsaXBib2FyZFR5cGUsIGRhdGE6IFdyaXRhYmxlQ2xpcGJvYXJkRGF0YSwgdGV4dDogc3RyaW5nID0gJycpID0+IHtcbiAgICBsZXQgdGV4dENsaXBib2FyZCA9IHRleHQ7XG4gICAgaWYgKGdldFByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRXcml0ZSgpKSB7XG4gICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGUoW1xuICAgICAgICAgICAgbmV3IENsaXBib2FyZEl0ZW0oe1xuICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwnOiBuZXcgQmxvYihbYnVpbGRQbGFpdEh0bWwodHlwZSwgZGF0YSldLCB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0L2h0bWwnXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgJ3RleHQvcGxhaW4nOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGV4dENsaXBib2FyZCA/PyBkYXRhKV0sIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICBdKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TmF2aWdhdG9yQ2xpcGJvYXJkID0gYXN5bmMgKCk6IFByb21pc2U8Q2xpcGJvYXJkRGF0YT4gPT4ge1xuICAgIGlmICghZ2V0UHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZFJlYWQoKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IGNsaXBib2FyZEl0ZW1zID0gYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkKCk7XG4gICAgbGV0IGNsaXBib2FyZERhdGE6IENsaXBib2FyZERhdGEgPSB7fTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGNsaXBib2FyZEl0ZW1zKSAmJiBjbGlwYm9hcmRJdGVtc1swXSBpbnN0YW5jZW9mIENsaXBib2FyZEl0ZW0pIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNsaXBib2FyZEl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoaXNGaWxlKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xpcGJvYXJkRmlsZXMgPSBpdGVtLnR5cGVzLmZpbHRlcih0eXBlID0+IHR5cGUubWF0Y2goL15pbWFnZVxcLy8pKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlQmxvYnMgPSBhd2FpdCBQcm9taXNlLmFsbChjbGlwYm9hcmRGaWxlcy5tYXAodHlwZSA9PiBpdGVtLmdldFR5cGUodHlwZSkhKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJscyA9IChmaWxlQmxvYnMuZmlsdGVyKEJvb2xlYW4pIGFzIChGaWxlIHwgQmxvYilbXSkubWFwKGJsb2IgPT4gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgICAgICAgdXJscy5tYXAoYXN5bmMgdXJsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCAoYXdhaXQgZmV0Y2godXJsKSkuYmxvYigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlKFtibG9iXSwgJ3BsYWl0LWZpbGUnLCB7IHR5cGU6IGJsb2IudHlwZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLnR5cGVzLmluY2x1ZGVzKCd0ZXh0L2h0bWwnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxDb250ZW50ID0gYXdhaXQgYmxvYkFzU3RyaW5nKGF3YWl0IGl0ZW0uZ2V0VHlwZSgndGV4dC9odG1sJykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxDbGlwYm9hcmREYXRhID0gZ2V0Q2xpcGJvYXJkRnJvbUh0bWwoaHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChodG1sQ2xpcGJvYXJkRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHRtbENsaXBib2FyZERhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChodG1sQ29udGVudCAmJiBodG1sQ29udGVudC50cmltKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkRGF0YSA9IHsgdGV4dDogc3RyaXBIdG1sKGh0bWxDb250ZW50KSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLnR5cGVzLmluY2x1ZGVzKCd0ZXh0L3BsYWluJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0Q29udGVudCA9IGF3YWl0IGJsb2JBc1N0cmluZyhhd2FpdCBpdGVtLmdldFR5cGUoJ3RleHQvcGxhaW4nKSk7XG4gICAgICAgICAgICAgICAgY2xpcGJvYXJkRGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogc3RyaXBIdG1sKHRleHRDb250ZW50KVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsaXBib2FyZERhdGE7XG59O1xuXG5jb25zdCBpc0ZpbGUgPSAoaXRlbTogQ2xpcGJvYXJkSXRlbSkgPT4ge1xuICAgIHJldHVybiBpdGVtLnR5cGVzLmZpbmQoaSA9PiBpLm1hdGNoKC9eaW1hZ2VcXC8vKSk7XG59O1xuXG5jb25zdCBibG9iQXNTdHJpbmcgPSAoYmxvYjogQmxvYikgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgICAgIHJlc29sdmUodGV4dCBhcyBzdHJpbmcpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KHJlYWRlci5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTtcbiAgICB9KTtcbn07XG4iXX0=
@@ -17,4 +17,7 @@ export function normalizePoint(point) {
17
17
  export const RgbaToHEX = (Rgb, opacity) => {
18
18
  return Rgb + Math.floor(opacity * 255).toString(16);
19
19
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQ2pELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFlO0lBQzFDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDO1lBQ0ksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDWCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNkO1FBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxFQUFFO0lBQ3RELE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIOinhOiMgyBwb2ludFxuICogQHBhcmFtIHBvaW50XG4gKiBAcmV0dXJucyBwb2ludFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUG9pbnQocG9pbnQ6IG51bWJlcltdKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocG9pbnQpXG4gICAgICAgID8ge1xuICAgICAgICAgICAgICB4OiBwb2ludFswXSxcbiAgICAgICAgICAgICAgeTogcG9pbnRbMV1cbiAgICAgICAgICB9XG4gICAgICAgIDogcG9pbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBSZ2JhVG9IRVggPSAoUmdiOiBzdHJpbmcsIG9wYWNpdHk6IG51bWJlcikgPT4ge1xuICAgIHJldHVybiBSZ2IgKyBNYXRoLmZsb29yKG9wYWNpdHkgKiAyNTUpLnRvU3RyaW5nKDE2KTtcbn07XG4iXX0=
20
+ export function isContextmenu(event) {
21
+ return event.button === 2;
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdXRpbHMvaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQ2pELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFlO0lBQzFDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDO1lBQ0ksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDWCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNkO1FBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxFQUFFO0lBQ3RELE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWlCO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc051bGxPclVuZGVmaW5lZCh2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICog6KeE6IyDIHBvaW50XG4gKiBAcGFyYW0gcG9pbnRcbiAqIEByZXR1cm5zIHBvaW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQb2ludChwb2ludDogbnVtYmVyW10pIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwb2ludClcbiAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHg6IHBvaW50WzBdLFxuICAgICAgICAgICAgICB5OiBwb2ludFsxXVxuICAgICAgICAgIH1cbiAgICAgICAgOiBwb2ludDtcbn1cblxuZXhwb3J0IGNvbnN0IFJnYmFUb0hFWCA9IChSZ2I6IHN0cmluZywgb3BhY2l0eTogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIFJnYiArIE1hdGguZmxvb3Iob3BhY2l0eSAqIDI1NSkudG9TdHJpbmcoMTYpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGV4dG1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQuYnV0dG9uID09PSAyO1xufVxuIl19
@@ -890,6 +890,9 @@ function normalizePoint(point) {
890
890
  const RgbaToHEX = (Rgb, opacity) => {
891
891
  return Rgb + Math.floor(opacity * 255).toString(16);
892
892
  };
893
+ function isContextmenu(event) {
894
+ return event.button === 2;
895
+ }
893
896
 
894
897
  /**
895
898
  * Check whether to merge an operation into the previous operation.
@@ -1835,6 +1838,9 @@ const stripHtml = (html) => {
1835
1838
  const getProbablySupportsClipboardWrite = () => {
1836
1839
  return 'clipboard' in navigator && 'write' in navigator.clipboard;
1837
1840
  };
1841
+ const getProbablySupportsClipboardWriteText = () => {
1842
+ return 'clipboard' in navigator && 'writeText' in navigator.clipboard;
1843
+ };
1838
1844
  const getProbablySupportsClipboardRead = () => {
1839
1845
  return 'clipboard' in navigator && 'read' in navigator.clipboard;
1840
1846
  };
@@ -1874,26 +1880,36 @@ const getDataTransferClipboard = (data) => {
1874
1880
  return {};
1875
1881
  };
1876
1882
  const getDataTransferClipboardText = (data) => {
1877
- return (data ? data.getData(`text/plain`) : '');
1883
+ if (!data) {
1884
+ return {};
1885
+ }
1886
+ const text = data?.getData(`text/plain`);
1887
+ if (text) {
1888
+ const htmlClipboardData = getClipboardFromHtml(text);
1889
+ if (htmlClipboardData) {
1890
+ return htmlClipboardData;
1891
+ }
1892
+ }
1893
+ return {
1894
+ text
1895
+ };
1878
1896
  };
1879
1897
 
1880
1898
  const setNavigatorClipboard = async (type, data, text = '') => {
1881
1899
  let textClipboard = text;
1882
- if ('clipboard' in navigator && 'write' in navigator.clipboard) {
1883
- if (navigator.clipboard && typeof navigator.clipboard.write === 'function') {
1884
- await navigator.clipboard.write([
1885
- new ClipboardItem({
1886
- 'text/html': new Blob([buildPlaitHtml(type, data)], {
1887
- type: 'text/html'
1888
- }),
1889
- 'text/plain': new Blob([JSON.stringify(textClipboard ?? data)], { type: 'text/plain' })
1890
- })
1891
- ]);
1892
- }
1900
+ if (getProbablySupportsClipboardWrite()) {
1901
+ await navigator.clipboard.write([
1902
+ new ClipboardItem({
1903
+ 'text/html': new Blob([buildPlaitHtml(type, data)], {
1904
+ type: 'text/html'
1905
+ }),
1906
+ 'text/plain': new Blob([JSON.stringify(textClipboard ?? data)], { type: 'text/plain' })
1907
+ })
1908
+ ]);
1893
1909
  }
1894
1910
  };
1895
1911
  const getNavigatorClipboard = async () => {
1896
- if (!('clipboard' in navigator && 'read' in navigator.clipboard)) {
1912
+ if (!getProbablySupportsClipboardRead()) {
1897
1913
  return {};
1898
1914
  }
1899
1915
  const clipboardItems = await navigator.clipboard.read();
@@ -1957,9 +1973,7 @@ const getClipboardData = async (dataTransfer) => {
1957
1973
  }
1958
1974
  clipboardData = getDataTransferClipboard(dataTransfer);
1959
1975
  if (Object.keys(clipboardData).length === 0) {
1960
- clipboardData = {
1961
- text: getDataTransferClipboardText(dataTransfer)
1962
- };
1976
+ clipboardData = getDataTransferClipboardText(dataTransfer);
1963
1977
  }
1964
1978
  return clipboardData;
1965
1979
  }
@@ -1979,6 +1993,12 @@ const setClipboardData = async (dataTransfer, clipboardContext) => {
1979
1993
  if (dataTransfer) {
1980
1994
  setDataTransferClipboard(dataTransfer, type, data);
1981
1995
  setDataTransferClipboardText(dataTransfer, text);
1996
+ return;
1997
+ }
1998
+ // Compatible with situations where navigator.clipboard.write is not supported and dataTransfer is empty
1999
+ // Such as contextmenu copy in Firefox.
2000
+ if (getProbablySupportsClipboardWriteText()) {
2001
+ return await navigator.clipboard.writeText(buildPlaitHtml(type, data));
1982
2002
  }
1983
2003
  };
1984
2004
 
@@ -4763,5 +4783,5 @@ function createModModifierKeys() {
4763
4783
  * Generated bundle index. Do not edit.
4764
4784
  */
4765
4785
 
4766
- export { A, ACTIVE_MOVING_CLASS_NAME, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_AFTER_CHANGE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, CursorClass, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_DRAGGING, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, RgbaToHEX, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, WritableClipboardType, X, Y, Z, ZERO, addClipboardContext, addMovingElements, addSelectedElement, arrowPoints, buildPlaitHtml, cacheMovingElements, cacheSelectedElements, calcNewViewBox, catmullRomFitting, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createClipboardContext, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downScale, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardData, getClipboardFromHtml, getDataTransferClipboard, getDataTransferClipboardText, getElementById, getElementHostBBox, getHitElementByPoint, getHitElementsBySelection, getIsRecursionFunc, getMovingElements, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getProbablySupportsClipboardRead, getProbablySupportsClipboardWrite, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getTemporaryRef, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, handleTouchTarget, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isDragging, isFromScrolling, isFromViewportChange, isHandleSelection, isInPlaitBoard, isLineHitLine, isMainPointer, isMovingElements, isNullOrUndefined, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isPolylineHitRectangle, isPreventTouchMove, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetSelectionOperation, isSetViewportOperation, normalizePoint, preventTouchMove, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setDragging, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectionMoving, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, stripHtml, temporaryDisableSelection, throttleRAF, toHostPoint, toHostPointFromViewBoxPoint, toImage, toScreenPointFromHostPoint, toViewBoxPoint, toViewBoxPoints, updateForeignObject, updateForeignObjectWidth, updateViewportByScrolling, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
4786
+ export { A, ACTIVE_MOVING_CLASS_NAME, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_AFTER_CHANGE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, CursorClass, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_DRAGGING, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, RgbaToHEX, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, WritableClipboardType, X, Y, Z, ZERO, addClipboardContext, addMovingElements, addSelectedElement, arrowPoints, buildPlaitHtml, cacheMovingElements, cacheSelectedElements, calcNewViewBox, catmullRomFitting, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createClipboardContext, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downScale, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardData, getClipboardFromHtml, getDataTransferClipboard, getDataTransferClipboardText, getElementById, getElementHostBBox, getHitElementByPoint, getHitElementsBySelection, getIsRecursionFunc, getMovingElements, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getProbablySupportsClipboardRead, getProbablySupportsClipboardWrite, getProbablySupportsClipboardWriteText, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getTemporaryRef, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, handleTouchTarget, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isContextmenu, isDOMElement, isDOMNode, isDragging, isFromScrolling, isFromViewportChange, isHandleSelection, isInPlaitBoard, isLineHitLine, isMainPointer, isMovingElements, isNullOrUndefined, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isPolylineHitRectangle, isPreventTouchMove, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetSelectionOperation, isSetViewportOperation, normalizePoint, preventTouchMove, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setDragging, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectionMoving, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, stripHtml, temporaryDisableSelection, throttleRAF, toHostPoint, toHostPointFromViewBoxPoint, toImage, toScreenPointFromHostPoint, toViewBoxPoint, toViewBoxPoints, updateForeignObject, updateForeignObjectWidth, updateViewportByScrolling, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
4767
4787
  //# sourceMappingURL=plait-core.mjs.map