@plait/common 0.61.2 → 0.62.0-next.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.
- package/constants/default.d.ts +1 -0
- package/core/element-flavour.d.ts +1 -1
- package/core/index.d.ts +4 -0
- package/core/render-component.d.ts +4 -0
- package/esm2022/constants/default.mjs +2 -1
- package/esm2022/core/element-flavour.mjs +1 -1
- package/esm2022/core/group.component.mjs +3 -3
- package/esm2022/core/index.mjs +5 -0
- package/esm2022/core/render-component.mjs +2 -0
- package/esm2022/generators/generator.mjs +1 -1
- package/esm2022/generators/index.mjs +2 -2
- package/esm2022/image/image-base.component.mjs +28 -0
- package/esm2022/image/image.generator.mjs +99 -0
- package/esm2022/image/index.mjs +4 -0
- package/esm2022/image/with-image.mjs +8 -0
- package/esm2022/plugins/index.mjs +1 -2
- package/esm2022/public-api.mjs +5 -4
- package/esm2022/text/index.mjs +5 -0
- package/esm2022/text/text-manage.mjs +138 -0
- package/esm2022/text/text-measure.mjs +61 -0
- package/esm2022/text/types.mjs +7 -0
- package/esm2022/text/with-text.mjs +8 -0
- package/esm2022/transforms/index.mjs +1 -2
- package/esm2022/utils/image.mjs +3 -3
- package/esm2022/utils/text.mjs +22 -20
- package/fesm2022/plait-common.mjs +341 -214
- package/fesm2022/plait-common.mjs.map +1 -1
- package/generators/index.d.ts +1 -1
- package/image/image-base.component.d.ts +17 -0
- package/image/image.generator.d.ts +27 -0
- package/image/index.d.ts +3 -0
- package/image/with-image.d.ts +15 -0
- package/package.json +1 -3
- package/plugins/index.d.ts +0 -1
- package/public-api.d.ts +4 -3
- package/text/index.d.ts +4 -0
- package/text/text-manage.d.ts +41 -0
- package/text/text-measure.d.ts +8 -0
- package/text/types.d.ts +24 -0
- package/text/with-text.d.ts +25 -0
- package/transforms/index.d.ts +0 -1
- package/utils/image.d.ts +1 -5
- package/utils/text.d.ts +9 -6
- package/core/image-base.component.d.ts +0 -29
- package/esm2022/core/image-base.component.mjs +0 -95
- package/esm2022/generators/image.generator.mjs +0 -59
- package/esm2022/plugins/text-options.mjs +0 -2
- package/esm2022/transforms/text.mjs +0 -71
- package/generators/image.generator.d.ts +0 -24
- package/plugins/text-options.d.ts +0 -5
- package/transforms/text.d.ts +0 -9
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Node } from 'slate';
|
|
2
|
+
import { getLineHeightByFontSize } from '../utils/text';
|
|
3
|
+
export function measureElement(element, options, containerMaxWidth = 10000) {
|
|
4
|
+
const canvas = document.createElement('canvas');
|
|
5
|
+
const ctx = canvas.getContext('2d');
|
|
6
|
+
const textEntries = Node.texts(element);
|
|
7
|
+
const lines = [[]];
|
|
8
|
+
for (const textEntry of textEntries) {
|
|
9
|
+
const [text] = textEntry;
|
|
10
|
+
const textString = Node.string(text);
|
|
11
|
+
const textArray = textString.split('\n');
|
|
12
|
+
textArray.forEach((segmentTextString, index) => {
|
|
13
|
+
const segmentText = { ...text, text: segmentTextString };
|
|
14
|
+
if (index === 0) {
|
|
15
|
+
const currentLine = lines[lines.length - 1];
|
|
16
|
+
currentLine.push(segmentText);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const newLine = [];
|
|
20
|
+
newLine.push(segmentText);
|
|
21
|
+
lines.push(newLine);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
let width = 0;
|
|
26
|
+
let height = 0;
|
|
27
|
+
lines.forEach((lineTexts, index) => {
|
|
28
|
+
let lineWidth = 0;
|
|
29
|
+
let maxLineHeight = getLineHeightByFontSize(options.fontSize);
|
|
30
|
+
lineTexts.forEach((text, index) => {
|
|
31
|
+
const font = getFont(text, { fontFamily: options.fontFamily, fontSize: options.fontSize });
|
|
32
|
+
ctx.font = font;
|
|
33
|
+
const textMetrics = ctx.measureText(text.text);
|
|
34
|
+
lineWidth += textMetrics.width;
|
|
35
|
+
const isLast = index === lineTexts.length - 1;
|
|
36
|
+
// skip when text is empty and is not last text of line
|
|
37
|
+
if (text['font-size'] && (isLast || text.text !== '')) {
|
|
38
|
+
const lineHeight = getLineHeightByFontSize(parseFloat(text['font-size']));
|
|
39
|
+
if (lineHeight > maxLineHeight) {
|
|
40
|
+
maxLineHeight = lineHeight;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if (lineWidth <= containerMaxWidth) {
|
|
45
|
+
if (lineWidth > width) {
|
|
46
|
+
width = lineWidth;
|
|
47
|
+
}
|
|
48
|
+
height += maxLineHeight;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
width = containerMaxWidth;
|
|
52
|
+
const lineWrapNumber = Math.ceil(lineWidth / containerMaxWidth);
|
|
53
|
+
height += maxLineHeight * lineWrapNumber;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return { width, height };
|
|
57
|
+
}
|
|
58
|
+
const getFont = (text, options) => {
|
|
59
|
+
return `${text.italic ? 'italic ' : ''} ${text.bold ? 'bold ' : ''} ${text['font-size'] || options.fontSize}px ${options.fontFamily} `;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tZWFzdXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy90ZXh0L3RleHQtbWVhc3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTdCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxNQUFNLFVBQVUsY0FBYyxDQUMxQixPQUF5QixFQUN6QixPQUdDLEVBQ0Qsb0JBQTRCLEtBQUs7SUFFakMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBNkIsQ0FBQztJQUNoRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sS0FBSyxHQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLEtBQUssTUFBTSxTQUFTLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN6QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUF5QixFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzNELE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDekQsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sT0FBTyxHQUFpQixFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUF1QixFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQ3JELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLGFBQWEsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMzRixHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNoQixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxTQUFTLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMvQixNQUFNLE1BQU0sR0FBRyxLQUFLLEtBQUssU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDOUMsdURBQXVEO1lBQ3ZELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLElBQUksVUFBVSxHQUFHLGFBQWEsRUFBRSxDQUFDO29CQUM3QixhQUFhLEdBQUcsVUFBVSxDQUFDO2dCQUMvQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxTQUFTLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLFNBQVMsR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN0QixDQUFDO1lBQ0QsTUFBTSxJQUFJLGFBQWEsQ0FBQztRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssR0FBRyxpQkFBaUIsQ0FBQztZQUMxQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sSUFBSSxhQUFhLEdBQUcsY0FBYyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sT0FBTyxHQUFHLENBQ1osSUFBZ0IsRUFDaEIsT0FHQyxFQUNILEVBQUU7SUFDQSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLE1BQU0sT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDO0FBQzNJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBDdXN0b21UZXh0LCBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZSB9IGZyb20gJy4uL3V0aWxzL3RleHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gbWVhc3VyZUVsZW1lbnQoXG4gICAgZWxlbWVudDogUGFyYWdyYXBoRWxlbWVudCxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGZvbnRTaXplOiBudW1iZXI7XG4gICAgICAgIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgICB9LFxuICAgIGNvbnRhaW5lck1heFdpZHRoOiBudW1iZXIgPSAxMDAwMFxuKSB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykgYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuICAgIGNvbnN0IHRleHRFbnRyaWVzID0gTm9kZS50ZXh0cyhlbGVtZW50KTtcbiAgICBjb25zdCBsaW5lczogQ3VzdG9tVGV4dFtdW10gPSBbW11dO1xuICAgIGZvciAoY29uc3QgdGV4dEVudHJ5IG9mIHRleHRFbnRyaWVzKSB7XG4gICAgICAgIGNvbnN0IFt0ZXh0XSA9IHRleHRFbnRyeTtcbiAgICAgICAgY29uc3QgdGV4dFN0cmluZyA9IE5vZGUuc3RyaW5nKHRleHQpO1xuICAgICAgICBjb25zdCB0ZXh0QXJyYXkgPSB0ZXh0U3RyaW5nLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgdGV4dEFycmF5LmZvckVhY2goKHNlZ21lbnRUZXh0U3RyaW5nOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRUZXh0ID0geyAuLi50ZXh0LCB0ZXh0OiBzZWdtZW50VGV4dFN0cmluZyB9O1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudExpbmUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICBjdXJyZW50TGluZS5wdXNoKHNlZ21lbnRUZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3TGluZTogQ3VzdG9tVGV4dFtdID0gW107XG4gICAgICAgICAgICAgICAgbmV3TGluZS5wdXNoKHNlZ21lbnRUZXh0KTtcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKG5ld0xpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbGV0IHdpZHRoID0gMDtcbiAgICBsZXQgaGVpZ2h0ID0gMDtcbiAgICBsaW5lcy5mb3JFYWNoKChsaW5lVGV4dHM6IEN1c3RvbVRleHRbXSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgbGluZVdpZHRoID0gMDtcbiAgICAgICAgbGV0IG1heExpbmVIZWlnaHQgPSBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZShvcHRpb25zLmZvbnRTaXplKTtcbiAgICAgICAgbGluZVRleHRzLmZvckVhY2goKHRleHQ6IEN1c3RvbVRleHQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvbnQgPSBnZXRGb250KHRleHQsIHsgZm9udEZhbWlseTogb3B0aW9ucy5mb250RmFtaWx5LCBmb250U2l6ZTogb3B0aW9ucy5mb250U2l6ZSB9KTtcbiAgICAgICAgICAgIGN0eC5mb250ID0gZm9udDtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNZXRyaWNzID0gY3R4Lm1lYXN1cmVUZXh0KHRleHQudGV4dCk7XG4gICAgICAgICAgICBsaW5lV2lkdGggKz0gdGV4dE1ldHJpY3Mud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBpc0xhc3QgPSBpbmRleCA9PT0gbGluZVRleHRzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAvLyBza2lwIHdoZW4gdGV4dCBpcyBlbXB0eSBhbmQgaXMgbm90IGxhc3QgdGV4dCBvZiBsaW5lXG4gICAgICAgICAgICBpZiAodGV4dFsnZm9udC1zaXplJ10gJiYgKGlzTGFzdCB8fCB0ZXh0LnRleHQgIT09ICcnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZShwYXJzZUZsb2F0KHRleHRbJ2ZvbnQtc2l6ZSddKSk7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmVIZWlnaHQgPiBtYXhMaW5lSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChsaW5lV2lkdGggPD0gY29udGFpbmVyTWF4V2lkdGgpIHtcbiAgICAgICAgICAgIGlmIChsaW5lV2lkdGggPiB3aWR0aCkge1xuICAgICAgICAgICAgICAgIHdpZHRoID0gbGluZVdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVpZ2h0ICs9IG1heExpbmVIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aWR0aCA9IGNvbnRhaW5lck1heFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgbGluZVdyYXBOdW1iZXIgPSBNYXRoLmNlaWwobGluZVdpZHRoIC8gY29udGFpbmVyTWF4V2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0ICs9IG1heExpbmVIZWlnaHQgKiBsaW5lV3JhcE51bWJlcjtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7IHdpZHRoLCBoZWlnaHQgfTtcbn1cblxuY29uc3QgZ2V0Rm9udCA9IChcbiAgICB0ZXh0OiBDdXN0b21UZXh0LFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZm9udFNpemU6IG51bWJlcjtcbiAgICAgICAgZm9udEZhbWlseTogc3RyaW5nO1xuICAgIH1cbikgPT4ge1xuICAgIHJldHVybiBgJHt0ZXh0Lml0YWxpYyA/ICdpdGFsaWMgJyA6ICcnfSAke3RleHQuYm9sZCA/ICdib2xkICcgOiAnJ30gJHt0ZXh0Wydmb250LXNpemUnXSB8fCBvcHRpb25zLmZvbnRTaXplfXB4ICR7b3B0aW9ucy5mb250RmFtaWx5fSBgO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var Alignment;
|
|
2
|
+
(function (Alignment) {
|
|
3
|
+
Alignment["left"] = "left";
|
|
4
|
+
Alignment["center"] = "center";
|
|
5
|
+
Alignment["right"] = "right";
|
|
6
|
+
})(Alignment || (Alignment = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RleHQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNqQiwwQkFBYSxDQUFBO0lBQ2IsOEJBQWlCLENBQUE7SUFDakIsNEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSlcsU0FBUyxLQUFULFNBQVMsUUFJcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlRWxlbWVudCwgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgZW51bSBBbGlnbm1lbnQge1xuICAgIGxlZnQgPSAnbGVmdCcsXG4gICAgY2VudGVyID0gJ2NlbnRlcicsXG4gICAgcmlnaHQgPSAncmlnaHQnXG59XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVRleHQgPSB7XG4gICAgYm9sZD86IGJvb2xlYW47XG4gICAgaXRhbGljPzogYm9vbGVhbjtcbiAgICBzdHJpa2U/OiBib29sZWFuO1xuICAgIGNvZGU/OiBib29sZWFuO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICB1bmRlcmxpbmVkPzogYm9vbGVhbjtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBbYGZvbnQtc2l6ZWBdPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBMaW5rRWxlbWVudCBleHRlbmRzIEJhc2VFbGVtZW50IHtcbiAgICB0eXBlOiAnbGluayc7XG4gICAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYWdyYXBoRWxlbWVudCBleHRlbmRzIEJhc2VFbGVtZW50IHtcbiAgICBhbGlnbj86IEFsaWdubWVudDtcbn1cblxuZXhwb3J0IHR5cGUgQ3VzdG9tRWxlbWVudCA9IFBhcmFncmFwaEVsZW1lbnQgfCBMaW5rRWxlbWVudDtcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const withText = (board) => {
|
|
2
|
+
const newBoard = board;
|
|
3
|
+
newBoard.renderText = (container, props) => {
|
|
4
|
+
throw new Error('No implementation for renderText method.');
|
|
5
|
+
};
|
|
6
|
+
return newBoard;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy90ZXh0L3dpdGgtdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBb0MsS0FBUSxFQUFFLEVBQUU7SUFDcEUsTUFBTSxRQUFRLEdBQUcsS0FBMkIsQ0FBQztJQUU3QyxRQUFRLENBQUMsVUFBVSxHQUFHLENBQUMsU0FBcUMsRUFBRSxLQUFnQixFQUFFLEVBQUU7UUFDOUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFdpdGhQbHVnaW5PcHRpb25zIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBPcGVyYXRpb24sIEVsZW1lbnQgYXMgU2xhdGVFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50UmVmIH0gZnJvbSAnLi4vY29yZS9yZW5kZXItY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdFRleHRCb2FyZCB7XG4gICAgcmVuZGVyVGV4dDogKGNvbnRhaW5lcjogRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQsIHByb3BzOiBUZXh0UHJvcHMpID0+IFRleHRDb21wb25lbnRSZWY7XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoVGV4dCA9IDxUIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQ+KGJvYXJkOiBUKSA9PiB7XG4gICAgY29uc3QgbmV3Qm9hcmQgPSBib2FyZCBhcyBUICYgUGxhaXRUZXh0Qm9hcmQ7XG5cbiAgICBuZXdCb2FyZC5yZW5kZXJUZXh0ID0gKGNvbnRhaW5lcjogRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQsIHByb3BzOiBUZXh0UHJvcHMpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbXBsZW1lbnRhdGlvbiBmb3IgcmVuZGVyVGV4dCBtZXRob2QuJyk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3Qm9hcmQ7XG59O1xuXG5leHBvcnQgdHlwZSBUZXh0Q29tcG9uZW50UmVmID0gUmVuZGVyQ29tcG9uZW50UmVmPFRleHRQcm9wcz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFByb3BzIHtcbiAgICBib2FyZDogUGxhaXRCb2FyZDtcbiAgICB0ZXh0OiBTbGF0ZUVsZW1lbnQ7XG4gICAgdGV4dFBsdWdpbnM/OiBUZXh0UGx1Z2luW107XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAgIG9uQ2hhbmdlPzogKGRhdGE6IFRleHRDaGFuZ2VEYXRhKSA9PiB2b2lkO1xuICAgIGFmdGVySW5pdD86IChkYXRhOiBFZGl0b3IpID0+IHZvaWQ7XG4gICAgb25Db21wb3NpdGlvbj86IChkYXRhOiBDb21wb3NpdGlvbkV2ZW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBUZXh0Q2hhbmdlRGF0YSA9IHsgbmV3VGV4dDogU2xhdGVFbGVtZW50OyBvcGVyYXRpb25zOiBPcGVyYXRpb25bXSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhUZXh0UGx1Z2luT3B0aW9ucyBleHRlbmRzIFdpdGhQbHVnaW5PcHRpb25zIHtcbiAgICB0ZXh0UGx1Z2lucz86IFRleHRQbHVnaW5bXTtcbn1cblxuZXhwb3J0IHR5cGUgVGV4dFBsdWdpbiA9IChlZGl0b3I6IEVkaXRvcikgPT4gRWRpdG9yO1xuIl19
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export * from './property';
|
|
2
2
|
export * from './align';
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vYWxpZ24nO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JzsiXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vYWxpZ24nO1xuIl19
|
package/esm2022/utils/image.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlaitBoard
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
2
|
export const selectImage = (board, defaultImageWidth, handle, acceptImageTypes = ['png', 'jpeg', 'gif', 'bmp']) => {
|
|
3
3
|
const inputFile = document.createElement('input');
|
|
4
4
|
inputFile.setAttribute('type', 'file');
|
|
@@ -17,7 +17,7 @@ export const buildImage = async (board, imageFile, defaultImageWidth, handle) =>
|
|
|
17
17
|
});
|
|
18
18
|
let imageItem = null;
|
|
19
19
|
const url = URL.createObjectURL(imageFile);
|
|
20
|
-
const context = PlaitBoard.
|
|
20
|
+
const context = PlaitBoard.getBoardContext(board);
|
|
21
21
|
context.setUploadingFile({ url, file: imageFile });
|
|
22
22
|
imageItem = {
|
|
23
23
|
url,
|
|
@@ -47,4 +47,4 @@ export const addElementOfFocusedImage = (board, element) => {
|
|
|
47
47
|
export const removeElementOfFocusedImage = (board) => {
|
|
48
48
|
BOARD_TO_ELEMENT_OF_FOCUSED_IMAGE.delete(board);
|
|
49
49
|
};
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsVUFBVSxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQVN0RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FDdkIsS0FBaUIsRUFDakIsaUJBQXlCLEVBQ3pCLE1BQThDLEVBQzlDLG1CQUE2QixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUM1RCxFQUFFO0lBQ0EsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUN6RCxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDbEMsVUFBVSxDQUFDLEtBQUssRUFBRyxLQUFLLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUM7SUFDRixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDM0IsS0FBaUIsRUFDakIsU0FBZSxFQUNmLGlCQUF5QixFQUN6QixNQUE4QyxFQUNoRCxFQUFFO0lBQ0EsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUNULE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDZixNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUF3QyxFQUFFLEVBQUU7UUFDL0YsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDckIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUVuRCxTQUFTLEdBQUc7UUFDUixHQUFHO1FBQ0gsS0FBSztRQUNMLE1BQU07S0FDVCxDQUFDO0lBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLFNBQVMsWUFBWSxDQUFDLElBQVUsRUFBRSxpQkFBeUI7SUFDdkQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxLQUFLLENBQUMsTUFBTSxHQUFHO1lBQ1gsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUM7WUFDaEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUM5RSxPQUFPLENBQ0gsS0FBSyxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FDMUgsQ0FBQztRQUNOLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELE1BQU0saUNBQWlDLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7QUFFbEYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDMUQsT0FBTyxpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUNqRixpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzdELGlDQUFpQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBJbWFnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uSW1hZ2VJdGVtIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0SW1hZ2UgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgZGVmYXVsdEltYWdlV2lkdGg6IG51bWJlcixcbiAgICBoYW5kbGU6IChjb21tb25JbWFnZTogQ29tbW9uSW1hZ2VJdGVtKSA9PiB2b2lkLFxuICAgIGFjY2VwdEltYWdlVHlwZXM6IHN0cmluZ1tdID0gWydwbmcnLCAnanBlZycsICdnaWYnLCAnYm1wJ11cbikgPT4ge1xuICAgIGNvbnN0IGlucHV0RmlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgaW5wdXRGaWxlLnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7XG4gICAgY29uc3QgYWNjZXB0SW1hZ2VUeXBlc1N0cmluZyA9ICcuJyArIGFjY2VwdEltYWdlVHlwZXMuam9pbignLC4nKTtcbiAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCBhY2NlcHRJbWFnZVR5cGVzU3RyaW5nKTtcbiAgICBpbnB1dEZpbGUub25jaGFuZ2UgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGJ1aWxkSW1hZ2UoYm9hcmQsIChldmVudC50YXJnZXQgYXMgYW55KS5maWxlc1swXSwgZGVmYXVsdEltYWdlV2lkdGgsIGhhbmRsZSk7XG4gICAgfTtcbiAgICBpbnB1dEZpbGUuY2xpY2soKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEltYWdlID0gYXN5bmMgKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGltYWdlRmlsZTogRmlsZSxcbiAgICBkZWZhdWx0SW1hZ2VXaWR0aDogbnVtYmVyLFxuICAgIGhhbmRsZTogKGNvbW1vbkltYWdlOiBDb21tb25JbWFnZUl0ZW0pID0+IHZvaWRcbikgPT4ge1xuICAgIGxldCB3aWR0aCA9IDAsXG4gICAgICAgIGhlaWdodCA9IDA7XG4gICAgYXdhaXQgZ2V0SW1hZ2VTaXplKGltYWdlRmlsZSwgZGVmYXVsdEltYWdlV2lkdGgpLnRoZW4oKHZhbHVlOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgd2lkdGggPSB2YWx1ZS53aWR0aDtcbiAgICAgICAgaGVpZ2h0ID0gdmFsdWUuaGVpZ2h0O1xuICAgIH0pO1xuXG4gICAgbGV0IGltYWdlSXRlbSA9IG51bGw7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChpbWFnZUZpbGUpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGV4dChib2FyZCk7XG4gICAgY29udGV4dC5zZXRVcGxvYWRpbmdGaWxlKHsgdXJsLCBmaWxlOiBpbWFnZUZpbGUgfSk7XG5cbiAgICBpbWFnZUl0ZW0gPSB7XG4gICAgICAgIHVybCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG4gICAgaGFuZGxlKGltYWdlSXRlbSk7XG59O1xuXG5mdW5jdGlvbiBnZXRJbWFnZVNpemUoZmlsZTogRmlsZSwgZGVmYXVsdEltYWdlV2lkdGg6IG51bWJlcik6IFByb21pc2U8eyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgaW1hZ2Uuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcblxuICAgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZGVmYXVsdEltYWdlV2lkdGg7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSAoZGVmYXVsdEltYWdlV2lkdGggKiBpbWFnZS5uYXR1cmFsSGVpZ2h0KSAvIGltYWdlLm5hdHVyYWxXaWR0aDtcbiAgICAgICAgICAgIHJlc29sdmUoXG4gICAgICAgICAgICAgICAgaW1hZ2UubmF0dXJhbFdpZHRoID4gZGVmYXVsdEltYWdlV2lkdGggPyB7IHdpZHRoLCBoZWlnaHQgfSA6IHsgd2lkdGg6IGltYWdlLm5hdHVyYWxXaWR0aCwgaGVpZ2h0OiBpbWFnZS5uYXR1cmFsSGVpZ2h0IH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG5cbmNvbnN0IEJPQVJEX1RPX0VMRU1FTlRfT0ZfRk9DVVNFRF9JTUFHRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudD4oKTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIHJldHVybiBCT0FSRF9UT19FTEVNRU5UX09GX0ZPQ1VTRURfSU1BR0UuZ2V0KGJvYXJkKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIEJPQVJEX1RPX0VMRU1FTlRfT0ZfRk9DVVNFRF9JTUFHRS5zZXQoYm9hcmQsIGVsZW1lbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIEJPQVJEX1RPX0VMRU1FTlRfT0ZfRk9DVVNFRF9JTUFHRS5kZWxldGUoYm9hcmQpO1xufTtcbiJdfQ==
|
package/esm2022/utils/text.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { getSelectedElements } from '@plait/core';
|
|
2
|
-
import { PlaitMarkEditor } from '@plait/text';
|
|
3
2
|
import { Node } from 'slate';
|
|
4
3
|
export const getTextManages = (element) => {
|
|
5
4
|
return ELEMENT_TO_TEXT_MANAGES.get(element) || [];
|
|
@@ -13,7 +12,7 @@ export const getFirstTextManage = (element) => {
|
|
|
13
12
|
};
|
|
14
13
|
export const getTextEditorsByElement = (element) => {
|
|
15
14
|
return getTextManages(element).map(manage => {
|
|
16
|
-
return manage.
|
|
15
|
+
return manage.editor;
|
|
17
16
|
});
|
|
18
17
|
};
|
|
19
18
|
export const getFirstTextEditor = (element) => {
|
|
@@ -34,20 +33,6 @@ export const findFirstTextEditor = (board) => {
|
|
|
34
33
|
});
|
|
35
34
|
return firstEditor;
|
|
36
35
|
};
|
|
37
|
-
export const getTextMarksByElement = (element) => {
|
|
38
|
-
const editors = getTextEditorsByElement(element);
|
|
39
|
-
const editor = editors[0];
|
|
40
|
-
if (!editor) {
|
|
41
|
-
return {};
|
|
42
|
-
}
|
|
43
|
-
if (editor.children.length === 0) {
|
|
44
|
-
const textManage = getTextManages(element)[0];
|
|
45
|
-
const currentMarks = PlaitMarkEditor.getMarksByElement(textManage.componentRef.instance.children[0]);
|
|
46
|
-
return currentMarks;
|
|
47
|
-
}
|
|
48
|
-
const currentMarks = PlaitMarkEditor.getMarks(editor);
|
|
49
|
-
return currentMarks;
|
|
50
|
-
};
|
|
51
36
|
export const getElementsText = (elements) => {
|
|
52
37
|
return elements
|
|
53
38
|
.map(item => {
|
|
@@ -79,10 +64,10 @@ export const getTextEditors = (board, elements) => {
|
|
|
79
64
|
});
|
|
80
65
|
const editingTextManage = textManages.find(textManage => textManage.isEditing);
|
|
81
66
|
if (editingTextManage) {
|
|
82
|
-
return [editingTextManage.
|
|
67
|
+
return [editingTextManage.editor];
|
|
83
68
|
}
|
|
84
69
|
return textManages.map(item => {
|
|
85
|
-
return item.
|
|
70
|
+
return item.editor;
|
|
86
71
|
});
|
|
87
72
|
}
|
|
88
73
|
return undefined;
|
|
@@ -95,9 +80,26 @@ export const getEditingTextEditor = (board, elements) => {
|
|
|
95
80
|
});
|
|
96
81
|
const editingTextManage = textManages.find(textManage => textManage.isEditing);
|
|
97
82
|
if (editingTextManage) {
|
|
98
|
-
return editingTextManage.
|
|
83
|
+
return editingTextManage.editor;
|
|
99
84
|
}
|
|
100
85
|
return undefined;
|
|
101
86
|
};
|
|
87
|
+
export const buildText = (text, align, properties) => {
|
|
88
|
+
properties = properties || {};
|
|
89
|
+
const plaitText = typeof text === 'string' ? { children: [{ text, ...properties }] } : text;
|
|
90
|
+
if (align) {
|
|
91
|
+
plaitText.align = align;
|
|
92
|
+
}
|
|
93
|
+
return plaitText;
|
|
94
|
+
};
|
|
95
|
+
export const getLineHeightByFontSize = (fontSize) => {
|
|
96
|
+
if (fontSize === 14) {
|
|
97
|
+
return 20;
|
|
98
|
+
}
|
|
99
|
+
if (fontSize === 18) {
|
|
100
|
+
return 25;
|
|
101
|
+
}
|
|
102
|
+
return fontSize * 1.5;
|
|
103
|
+
};
|
|
102
104
|
export const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBYyxlQUFlLEVBQWMsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUFVLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDcEQsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3hELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQzdELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4QyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3hELE1BQU0sVUFBVSxHQUFHLHVCQUF1QixDQUFD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Q0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsT0FBTyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUMxRCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXdDLElBQUksT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBDdXN0b21UZXh0LCBQbGFpdE1hcmtFZGl0b3IsIFRleHRNYW5hZ2UgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBFZGl0b3IsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0TWFuYWdlcyA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gRUxFTUVOVF9UT19URVhUX01BTkFHRVMuZ2V0KGVsZW1lbnQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0VGV4dE1hbmFnZSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZXMoZWxlbWVudClbMF07XG4gICAgaWYgKCF0ZXh0TWFuYWdlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignY2FuIG5vdCBmaW5kIHRleHRNYW5hZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRNYW5hZ2U7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIGdldFRleHRNYW5hZ2VzKGVsZW1lbnQpLm1hcChtYW5hZ2UgPT4ge1xuICAgICAgICByZXR1cm4gbWFuYWdlLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5lZGl0b3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0RWRpdG9yID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHRleHRFZGl0b3IgPSBnZXRUZXh0RWRpdG9yc0J5RWxlbWVudChlbGVtZW50KVswXTtcbiAgICBpZiAoIXRleHRFZGl0b3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdjYW4gbm90IGZpbmQgdGV4dE1hbmFnZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGV4dEVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRmlyc3RUZXh0RWRpdG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGxldCBmaXJzdEVkaXRvcjogRWRpdG9yIHwgbnVsbCA9IG51bGw7XG4gICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGlmICghZmlyc3RFZGl0b3IgJiYgZWRpdG9ycyAmJiBlZGl0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZpcnN0RWRpdG9yID0gZWRpdG9yc1swXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaXJzdEVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0TWFya3NCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgZWRpdG9ycyA9IGdldFRleHRFZGl0b3JzQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvcnNbMF07XG4gICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAoZWRpdG9yLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZXMoZWxlbWVudClbMF07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNYXJrczogT21pdDxDdXN0b21UZXh0LCAndGV4dCc+ID0gUGxhaXRNYXJrRWRpdG9yLmdldE1hcmtzQnlFbGVtZW50KHRleHRNYW5hZ2UuY29tcG9uZW50UmVmLmluc3RhbmNlLmNoaWxkcmVuWzBdKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRNYXJrcztcbiAgICB9XG4gICAgY29uc3QgY3VycmVudE1hcmtzOiBPbWl0PEN1c3RvbVRleHQsICd0ZXh0Jz4gPSBQbGFpdE1hcmtFZGl0b3IuZ2V0TWFya3MoZWRpdG9yKTtcbiAgICByZXR1cm4gY3VycmVudE1hcmtzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRzVGV4dCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICByZXR1cm4gZWxlbWVudHNcbiAgICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWRpdG9ycyA9IGdldFRleHRFZGl0b3JzQnlFbGVtZW50KGl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChlZGl0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWRpdG9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChlZGl0b3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRzRW50cnkgPSBOb2RlLnRleHRzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGV4dHNFbnRyeSkucmVkdWNlKCh0b3RhbCwgdGV4dCkgPT4gKHRvdGFsICs9IHRleHRbMF0udGV4dCksICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignICcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0pXG4gICAgICAgIC5qb2luKCcgJyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dEVkaXRvcnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZWxlbWVudHMgfHwgZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10gPSBbXTtcbiAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGV4dE1hbmFnZXMucHVzaCguLi5nZXRUZXh0TWFuYWdlcyhpdGVtKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlZGl0aW5nVGV4dE1hbmFnZSA9IHRleHRNYW5hZ2VzLmZpbmQodGV4dE1hbmFnZSA9PiB0ZXh0TWFuYWdlLmlzRWRpdGluZyk7XG4gICAgICAgIGlmIChlZGl0aW5nVGV4dE1hbmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtlZGl0aW5nVGV4dE1hbmFnZS5jb21wb25lbnRSZWYuaW5zdGFuY2UuZWRpdG9yXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dE1hbmFnZXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uY29tcG9uZW50UmVmLmluc3RhbmNlLmVkaXRvcjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWRpdGluZ1RleHRFZGl0b3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZWxlbWVudHMgfHwgZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgY29uc3QgdGV4dE1hbmFnZXM6IFRleHRNYW5hZ2VbXSA9IFtdO1xuICAgIHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgdGV4dE1hbmFnZXMucHVzaCguLi5nZXRUZXh0TWFuYWdlcyhpdGVtKSk7XG4gICAgfSk7XG4gICAgY29uc3QgZWRpdGluZ1RleHRNYW5hZ2UgPSB0ZXh0TWFuYWdlcy5maW5kKHRleHRNYW5hZ2UgPT4gdGV4dE1hbmFnZS5pc0VkaXRpbmcpO1xuICAgIGlmIChlZGl0aW5nVGV4dE1hbmFnZSkge1xuICAgICAgICByZXR1cm4gZWRpdGluZ1RleHRNYW5hZ2UuY29tcG9uZW50UmVmLmluc3RhbmNlLmVkaXRvcjtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUzogV2Vha01hcDxQbGFpdEVsZW1lbnQsIFRleHRNYW5hZ2VbXT4gPSBuZXcgV2Vha01hcCgpO1xuIl19
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBVSxJQUFJLEVBQVcsTUFBTSxPQUFPLENBQUM7QUFJOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3BELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUM3RCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNyRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELElBQUksV0FBVyxHQUFrQixJQUFJLENBQUM7SUFDdEMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9CLE1BQU0sT0FBTyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF3QixFQUFFLEVBQUU7SUFDeEQsT0FBTyxRQUFRO1NBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sT0FBTztxQkFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkYsQ0FBQyxDQUFDO3FCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNMLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBaUIsRUFBRSxRQUF5QixFQUFFLEVBQUU7SUFDM0UsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixNQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQ3JDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0UsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBeUIsRUFBRSxFQUFFO0lBQ2pGLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sV0FBVyxHQUFpQixFQUFFLENBQUM7SUFDckMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzVCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQXNCLEVBQUUsS0FBaUIsRUFBRSxVQUFnQyxFQUFFLEVBQUU7SUFDckcsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDOUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUYsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNQLFNBQThCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7SUFDeEQsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF3QyxJQUFJLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGV4dE1hbmFnZSB9IGZyb20gJy4uL3RleHQvdGV4dC1tYW5hZ2UnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBDdXN0b21UZXh0LCBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnLi4vdGV4dC90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0TWFuYWdlcyA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gRUxFTUVOVF9UT19URVhUX01BTkFHRVMuZ2V0KGVsZW1lbnQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0VGV4dE1hbmFnZSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZXMoZWxlbWVudClbMF07XG4gICAgaWYgKCF0ZXh0TWFuYWdlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignY2FuIG5vdCBmaW5kIHRleHRNYW5hZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRNYW5hZ2U7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIGdldFRleHRNYW5hZ2VzKGVsZW1lbnQpLm1hcChtYW5hZ2UgPT4ge1xuICAgICAgICByZXR1cm4gbWFuYWdlLmVkaXRvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRFZGl0b3IgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dEVkaXRvciA9IGdldFRleHRFZGl0b3JzQnlFbGVtZW50KGVsZW1lbnQpWzBdO1xuICAgIGlmICghdGV4dEVkaXRvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2NhbiBub3QgZmluZCB0ZXh0TWFuYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0RWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRGaXJzdFRleHRFZGl0b3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgbGV0IGZpcnN0RWRpdG9yOiBFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgICBzZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvcnMgPSBnZXRUZXh0RWRpdG9yc0J5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgaWYgKCFmaXJzdEVkaXRvciAmJiBlZGl0b3JzICYmIGVkaXRvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmlyc3RFZGl0b3IgPSBlZGl0b3JzWzBdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpcnN0RWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRzVGV4dCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICByZXR1cm4gZWxlbWVudHNcbiAgICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWRpdG9ycyA9IGdldFRleHRFZGl0b3JzQnlFbGVtZW50KGl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChlZGl0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWRpdG9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChlZGl0b3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRzRW50cnkgPSBOb2RlLnRleHRzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGV4dHNFbnRyeSkucmVkdWNlKCh0b3RhbCwgdGV4dCkgPT4gKHRvdGFsICs9IHRleHRbMF0udGV4dCksICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignICcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0pXG4gICAgICAgIC5qb2luKCcgJyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dEVkaXRvcnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZWxlbWVudHMgfHwgZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10gPSBbXTtcbiAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGV4dE1hbmFnZXMucHVzaCguLi5nZXRUZXh0TWFuYWdlcyhpdGVtKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlZGl0aW5nVGV4dE1hbmFnZSA9IHRleHRNYW5hZ2VzLmZpbmQodGV4dE1hbmFnZSA9PiB0ZXh0TWFuYWdlLmlzRWRpdGluZyk7XG4gICAgICAgIGlmIChlZGl0aW5nVGV4dE1hbmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtlZGl0aW5nVGV4dE1hbmFnZS5lZGl0b3JdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0TWFuYWdlcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5lZGl0b3I7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVkaXRpbmdUZXh0RWRpdG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGVsZW1lbnRzIHx8IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGNvbnN0IHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10gPSBbXTtcbiAgICBzZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHRleHRNYW5hZ2VzLnB1c2goLi4uZ2V0VGV4dE1hbmFnZXMoaXRlbSkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGVkaXRpbmdUZXh0TWFuYWdlID0gdGV4dE1hbmFnZXMuZmluZCh0ZXh0TWFuYWdlID0+IHRleHRNYW5hZ2UuaXNFZGl0aW5nKTtcbiAgICBpZiAoZWRpdGluZ1RleHRNYW5hZ2UpIHtcbiAgICAgICAgcmV0dXJuIGVkaXRpbmdUZXh0TWFuYWdlLmVkaXRvcjtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFRleHQgPSAodGV4dDogc3RyaW5nIHwgRWxlbWVudCwgYWxpZ24/OiBBbGlnbm1lbnQsIHByb3BlcnRpZXM/OiBQYXJ0aWFsPEN1c3RvbVRleHQ+KSA9PiB7XG4gICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgfHwge307XG4gICAgY29uc3QgcGxhaXRUZXh0ID0gdHlwZW9mIHRleHQgPT09ICdzdHJpbmcnID8geyBjaGlsZHJlbjogW3sgdGV4dCwgLi4ucHJvcGVydGllcyB9XSB9IDogdGV4dDtcbiAgICBpZiAoYWxpZ24pIHtcbiAgICAgICAgKHBsYWl0VGV4dCBhcyBQYXJhZ3JhcGhFbGVtZW50KS5hbGlnbiA9IGFsaWduO1xuICAgIH1cbiAgICByZXR1cm4gcGxhaXRUZXh0O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExpbmVIZWlnaHRCeUZvbnRTaXplID0gKGZvbnRTaXplOiBudW1iZXIpID0+IHtcbiAgICBpZiAoZm9udFNpemUgPT09IDE0KSB7XG4gICAgICAgIHJldHVybiAyMDtcbiAgICB9XG4gICAgaWYgKGZvbnRTaXplID09PSAxOCkge1xuICAgICAgICByZXR1cm4gMjU7XG4gICAgfVxuICAgIHJldHVybiBmb250U2l6ZSAqIDEuNTtcbn07XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUzogV2Vha01hcDxQbGFpdEVsZW1lbnQsIFRleHRNYW5hZ2VbXT4gPSBuZXcgV2Vha01hcCgpO1xuIl19
|