@plait/mind 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/emoji/emoji-base.component.d.ts +11 -0
- package/{base → emoji}/index.d.ts +1 -0
- package/emoji/with-emoji.d.ts +15 -0
- package/esm2022/constants/node-topic-style.mjs +1 -1
- package/esm2022/emoji/emoji-base.component.mjs +21 -0
- package/esm2022/emoji/index.mjs +3 -0
- package/esm2022/emoji/with-emoji.mjs +8 -0
- package/esm2022/generators/node-emojis.generator.mjs +19 -33
- package/esm2022/interfaces/element-data.mjs +1 -1
- package/esm2022/interfaces/options.mjs +1 -1
- package/esm2022/mind-node.component.mjs +13 -14
- package/esm2022/plugins/with-mind-create.mjs +4 -10
- package/esm2022/plugins/with-mind-fragment.mjs +2 -3
- package/esm2022/plugins/with-mind.mjs +3 -2
- package/esm2022/plugins/with-node-resize.mjs +1 -1
- package/esm2022/public-api.mjs +2 -2
- package/esm2022/transforms/node.mjs +3 -4
- package/esm2022/utils/clipboard.mjs +25 -11
- package/esm2022/utils/mind.mjs +2 -2
- package/esm2022/utils/node/adjust-node.mjs +1 -10
- package/esm2022/utils/node/common.mjs +2 -6
- package/esm2022/utils/node/create-node.mjs +3 -2
- package/esm2022/utils/node/image.mjs +3 -5
- package/esm2022/utils/space/node-space.mjs +3 -3
- package/fesm2022/plait-mind.mjs +86 -118
- package/fesm2022/plait-mind.mjs.map +1 -1
- package/generators/node-emojis.generator.d.ts +7 -9
- package/interfaces/element-data.d.ts +1 -2
- package/interfaces/options.d.ts +1 -3
- package/mind-node.component.d.ts +1 -2
- package/package.json +1 -1
- package/plugins/with-mind-create.d.ts +1 -1
- package/plugins/with-mind.d.ts +1 -1
- package/public-api.d.ts +1 -1
- package/styles/mixins.scss +4 -4
- package/styles/styles.scss +2 -2
- package/utils/clipboard.d.ts +9 -0
- package/utils/mind.d.ts +1 -1
- package/base/emoji-base.component.d.ts +0 -18
- package/esm2022/base/emoji-base.component.mjs +0 -46
- package/esm2022/base/index.mjs +0 -2
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { DEFAULT_FONT_SIZE, MarkTypes, PlaitMarkEditor } from '@plait/text';
|
|
2
1
|
import { BASE, WithMindPluginKey } from '../../constants/default';
|
|
3
2
|
import { PlaitMind } from '../../interfaces/element';
|
|
4
3
|
import { MindElement } from '../../interfaces/element';
|
|
5
4
|
import { getEmojisWidthHeight } from './emoji';
|
|
6
5
|
import { getStrokeWidthByElement } from '../node-style/shape';
|
|
7
|
-
import { getFirstTextEditor } from '@plait/common';
|
|
8
6
|
import { getDefaultMindElementFontSize } from '../mind';
|
|
7
|
+
import { DEFAULT_FONT_SIZE, MarkTypes, PlaitMarkEditor } from '@plait/text-plugins';
|
|
8
|
+
import { getFirstTextEditor } from '@plait/common';
|
|
9
9
|
const NodeDefaultSpace = {
|
|
10
10
|
horizontal: {
|
|
11
11
|
nodeAndText: BASE * 2.5,
|
|
@@ -131,4 +131,4 @@ export const getFontSizeBySlateElement = (text) => {
|
|
|
131
131
|
const fontSize = marks[MarkTypes.fontSize] || defaultFontSize;
|
|
132
132
|
return fontSize;
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEQsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUU7UUFDUixXQUFXLEVBQUUsSUFBSSxHQUFHLEdBQUc7UUFDdkIsWUFBWSxFQUFFLElBQUksR0FBRyxHQUFHO0tBQzNCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFLElBQUk7UUFDbEIsWUFBWSxFQUFFLElBQUksR0FBRyxHQUFHO0tBQzNCO0NBQ0osQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3JCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQztLQUN6QjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztLQUN4QjtDQUNKLENBQUM7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aUJBQWlCLENBQUMsS0FBcUIsRUFBRSxPQUErQjtRQUNwRSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQWtCLGlCQUFpQixDQUFDLENBQUM7UUFDM0UsTUFBTSxXQUFXLEdBQUcsb0NBQW9DLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sV0FBVyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDOUMsQ0FBQztJQUNELGdCQUFnQixDQUFDLEtBQXFCLEVBQUUsT0FBb0I7UUFDeEQsTUFBTSxXQUFXLEdBQUcsa0NBQWtDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxJQUFzQixFQUFFLEVBQUU7SUFDaEUsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUM7SUFDMUMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQixPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFZLElBQUksZUFBZSxDQUFDO0lBQzFFLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfRk9OVF9TSVpFLCBNYXJrVHlwZXMsIFBsYWl0TWFya0VkaXRvciB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IEJBU0UsIFdpdGhNaW5kUGx1Z2luS2V5IH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW9ucyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IGdldEVtb2ppc1dpZHRoSGVpZ2h0IH0gZnJvbSAnLi9lbW9qaSc7XG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi9ub2RlLXN0eWxlL3NoYXBlJztcbmltcG9ydCB7IGdldEZpcnN0VGV4dEVkaXRvciB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdE1pbmRFbGVtZW50Rm9udFNpemUgfSBmcm9tICcuLi9taW5kJztcblxuY29uc3QgTm9kZURlZmF1bHRTcGFjZSA9IHtcbiAgICBob3Jpem9udGFsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMi41LFxuICAgICAgICBlbW9qaUFuZFRleHQ6IEJBU0UgKiAxLjVcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFLFxuICAgICAgICBub2RlQW5kSW1hZ2U6IEJBU0UsXG4gICAgICAgIGltYWdlQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH1cbn07XG5cbmNvbnN0IFJvb3REZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDQsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMlxuICAgIH1cbn07XG5cbmNvbnN0IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dDtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBzdHJva2VXaWR0aDtcbn07XG5cbmNvbnN0IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQgPSAoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGlzTWluZCA9IFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCk7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3Qgbm9kZUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kVGV4dDtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBzdHJva2VXaWR0aDtcbn07XG5cbmNvbnN0IGdldFNwYWNlRW1vamlBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBlbW9qaUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLmVtb2ppQW5kVGV4dDtcbiAgICByZXR1cm4gZW1vamlBbmRUZXh0O1xufTtcblxuZXhwb3J0IGNvbnN0IE5vZGVTcGFjZSA9IHtcbiAgICBnZXROb2RlV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgTm9kZVNwYWNlLmdldEVtb2ppTGVmdFNwYWNlKGJvYXJkLCBlbGVtZW50KSArXG4gICAgICAgICAgICAgICAgZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpLndpZHRoICtcbiAgICAgICAgICAgICAgICBnZXRTcGFjZUVtb2ppQW5kVGV4dChlbGVtZW50KSArXG4gICAgICAgICAgICAgICAgTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgoYm9hcmQsIGVsZW1lbnQpICtcbiAgICAgICAgICAgICAgICBub2RlQW5kVGV4dFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBOb2RlU3BhY2UuZ2V0Tm9kZUR5bmFtaWNXaWR0aChib2FyZCwgZWxlbWVudCkgKyBub2RlQW5kVGV4dDtcbiAgICB9LFxuICAgIGdldE5vZGVIZWlnaHQoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOb2RlU3BhY2UuZ2V0VGV4dFRvcFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIGVsZW1lbnQuaGVpZ2h0ICsgbm9kZUFuZFRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgZWxlbWVudC5oZWlnaHQgKyBub2RlQW5kVGV4dDtcbiAgICB9LFxuICAgIGdldE5vZGVEeW5hbWljV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnQubWFudWFsV2lkdGggfHwgZWxlbWVudC53aWR0aDtcbiAgICAgICAgY29uc3QgaW1hZ2VXaWR0aCA9IE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpID8gZWxlbWVudC5kYXRhLmltYWdlPy53aWR0aCA6IDA7XG4gICAgICAgIHJldHVybiBNYXRoLm1heCh3aWR0aCwgaW1hZ2VXaWR0aCk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiB1c2UgaXQgd2hlbiB1cGxvYWQgaW1hZ2UgZmlyc3Qgb3IgcmVzaXplIGltYWdlXG4gICAgICovXG4gICAgZ2V0Tm9kZU5ld0R5bmFtaWNXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBpbWFnZVdpZHRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50Lm1hbnVhbFdpZHRoIHx8IGVsZW1lbnQud2lkdGg7XG4gICAgICAgIHJldHVybiBNYXRoLm1heCh3aWR0aCwgaW1hZ2VXaWR0aCk7XG4gICAgfSxcbiAgICBnZXROb2RlUmVzaXphYmxlTWluV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBtaW5Ub3BpY1dpZHRoID0gTm9kZVNwYWNlLmdldE5vZGVUb3BpY01pbldpZHRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpICYmIGVsZW1lbnQuZGF0YS5pbWFnZS53aWR0aCA+IG1pblRvcGljV2lkdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuaW1hZ2Uud2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWluVG9waWNXaWR0aDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0Tm9kZVRvcGljTWluV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBkZWZhdWx0Rm9udFNpemUgPSBnZXREZWZhdWx0TWluZEVsZW1lbnRGb250U2l6ZShib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGVkaXRvciA9IGdldEZpcnN0VGV4dEVkaXRvcihlbGVtZW50KTtcbiAgICAgICAgY29uc3QgbWFya3MgPSBQbGFpdE1hcmtFZGl0b3IuZ2V0TWFya3MoZWRpdG9yKTtcbiAgICAgICAgY29uc3QgZm9udFNpemUgPSAobWFya3NbTWFya1R5cGVzLmZvbnRTaXplXSBhcyBudW1iZXIpIHx8IGRlZmF1bHRGb250U2l6ZTtcbiAgICAgICAgcmV0dXJuIGZvbnRTaXplO1xuICAgIH0sXG4gICAgZ2V0VGV4dExlZnRTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCkgKyBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCkud2lkdGggKyBnZXRTcGFjZUVtb2ppQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0VGV4dFRvcFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldEltYWdlVG9wU3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgZWxlbWVudC5kYXRhLmltYWdlLmhlaWdodCArIE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwuaW1hZ2VBbmRUZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRJbWFnZVRvcFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBzdHJva2VXaWR0aCArIE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZEltYWdlO1xuICAgIH0sXG4gICAgZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBib2FyZC5nZXRQbHVnaW5PcHRpb25zPFdpdGhNaW5kT3B0aW9ucz4oV2l0aE1pbmRQbHVnaW5LZXkpO1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCAtIG9wdGlvbnMuZW1vamlQYWRkaW5nO1xuICAgIH0sXG4gICAgZ2V0RW1vamlUb3BTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9udFNpemVCeVNsYXRlRWxlbWVudCA9ICh0ZXh0OiBzdHJpbmcgfCBFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdEZvbnRTaXplID0gREVGQVVMVF9GT05UX1NJWkU7XG4gICAgaWYgKHR5cGVvZiB0ZXh0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEZvbnRTaXplO1xuICAgIH1cbiAgICBjb25zdCBtYXJrcyA9IFBsYWl0TWFya0VkaXRvci5nZXRNYXJrc0J5RWxlbWVudCh0ZXh0KTtcbiAgICBjb25zdCBmb250U2l6ZSA9IChtYXJrc1tNYXJrVHlwZXMuZm9udFNpemVdIGFzIG51bWJlcikgfHwgZGVmYXVsdEZvbnRTaXplO1xuICAgIHJldHVybiBmb250U2l6ZTtcbn07XG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3JCLFVBQVUsRUFBRTtRQUNSLFdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRztRQUN2QixZQUFZLEVBQUUsSUFBSSxHQUFHLEdBQUc7S0FDM0I7SUFDRCxRQUFRLEVBQUU7UUFDTixXQUFXLEVBQUUsSUFBSTtRQUNqQixZQUFZLEVBQUUsSUFBSTtRQUNsQixZQUFZLEVBQUUsSUFBSSxHQUFHLEdBQUc7S0FDM0I7Q0FDSixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUU7UUFDUixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDckIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3pCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3hCO0NBQ0osQ0FB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RCxpQkFBaUIsQ0FBQyxLQUFxQixFQUFFLE9BQStCO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBa0IsaUJBQWlCLENBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekUsT0FBTyxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUM5QyxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBcUIsRUFBRSxPQUFvQjtRQUN4RCxNQUFNLFdBQVcsR0FBRyxrQ0FBa0MsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLElBQXNCLEVBQUUsRUFBRTtJQUNoRSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztJQUMxQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsTUFBTSxRQUFRLEdBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQVksSUFBSSxlQUFlLENBQUM7SUFDMUUsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFTRSwgV2l0aE1pbmRQbHVnaW5LZXkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBQbGFpdE1pbmQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgRW1vamlEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgV2l0aE1pbmRPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vcHRpb25zJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgZ2V0RW1vamlzV2lkdGhIZWlnaHQgfSBmcm9tICcuL2Vtb2ppJztcbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL25vZGUtc3R5bGUvc2hhcGUnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdE1pbmRFbGVtZW50Rm9udFNpemUgfSBmcm9tICcuLi9taW5kJztcbmltcG9ydCB7IERFRkFVTFRfRk9OVF9TSVpFLCBNYXJrVHlwZXMsIFBsYWl0TWFya0VkaXRvciB9IGZyb20gJ0BwbGFpdC90ZXh0LXBsdWdpbnMnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RUZXh0RWRpdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmNvbnN0IE5vZGVEZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDIuNSxcbiAgICAgICAgZW1vamlBbmRUZXh0OiBCQVNFICogMS41XG4gICAgfSxcbiAgICB2ZXJ0aWNhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSxcbiAgICAgICAgbm9kZUFuZEltYWdlOiBCQVNFLFxuICAgICAgICBpbWFnZUFuZFRleHQ6IEJBU0UgKiAxLjVcbiAgICB9XG59O1xuXG5jb25zdCBSb290RGVmYXVsdFNwYWNlID0ge1xuICAgIGhvcml6b250YWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiA0LFxuICAgICAgICBlbW9qaUFuZFRleHQ6IEJBU0UgKiAyXG4gICAgfSxcbiAgICB2ZXJ0aWNhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9XG59O1xuXG5jb25zdCBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQgPSAoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGlzTWluZCA9IFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCk7XG4gICAgY29uc3Qgbm9kZUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwubm9kZUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLmhvcml6b250YWwubm9kZUFuZFRleHQ7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChib2FyZCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGg7XG59O1xuXG5jb25zdCBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0ID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gaXNNaW5kID8gUm9vdERlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZFRleHQ7XG4gICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGg7XG59O1xuXG5jb25zdCBnZXRTcGFjZUVtb2ppQW5kVGV4dCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGlzTWluZCA9IFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCk7XG4gICAgY29uc3QgZW1vamlBbmRUZXh0ID0gaXNNaW5kID8gUm9vdERlZmF1bHRTcGFjZS5ob3Jpem9udGFsLmVtb2ppQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5lbW9qaUFuZFRleHQ7XG4gICAgcmV0dXJuIGVtb2ppQW5kVGV4dDtcbn07XG5cbmV4cG9ydCBjb25zdCBOb2RlU3BhY2UgPSB7XG4gICAgZ2V0Tm9kZVdpZHRoKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KS53aWR0aCArXG4gICAgICAgICAgICAgICAgZ2V0U3BhY2VFbW9qaUFuZFRleHQoZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIE5vZGVTcGFjZS5nZXROb2RlRHluYW1pY1dpZHRoKGJvYXJkLCBlbGVtZW50KSArXG4gICAgICAgICAgICAgICAgbm9kZUFuZFRleHRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgTm9kZVNwYWNlLmdldE5vZGVEeW5hbWljV2lkdGgoYm9hcmQsIGVsZW1lbnQpICsgbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXROb2RlSGVpZ2h0KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldFRleHRUb3BTcGFjZShib2FyZCwgZWxlbWVudCkgKyBlbGVtZW50LmhlaWdodCArIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIGVsZW1lbnQuaGVpZ2h0ICsgbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXROb2RlRHluYW1pY1dpZHRoKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50Lm1hbnVhbFdpZHRoIHx8IGVsZW1lbnQud2lkdGg7XG4gICAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSA/IGVsZW1lbnQuZGF0YS5pbWFnZT8ud2lkdGggOiAwO1xuICAgICAgICByZXR1cm4gTWF0aC5tYXgod2lkdGgsIGltYWdlV2lkdGgpO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogdXNlIGl0IHdoZW4gdXBsb2FkIGltYWdlIGZpcnN0IG9yIHJlc2l6ZSBpbWFnZVxuICAgICAqL1xuICAgIGdldE5vZGVOZXdEeW5hbWljV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCwgaW1hZ2VXaWR0aDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5tYW51YWxXaWR0aCB8fCBlbGVtZW50LndpZHRoO1xuICAgICAgICByZXR1cm4gTWF0aC5tYXgod2lkdGgsIGltYWdlV2lkdGgpO1xuICAgIH0sXG4gICAgZ2V0Tm9kZVJlc2l6YWJsZU1pbldpZHRoKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgbWluVG9waWNXaWR0aCA9IE5vZGVTcGFjZS5nZXROb2RlVG9waWNNaW5XaWR0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSAmJiBlbGVtZW50LmRhdGEuaW1hZ2Uud2lkdGggPiBtaW5Ub3BpY1dpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5kYXRhLmltYWdlLndpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG1pblRvcGljV2lkdGg7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldE5vZGVUb3BpY01pbldpZHRoKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEZvbnRTaXplID0gZ2V0RGVmYXVsdE1pbmRFbGVtZW50Rm9udFNpemUoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlZGl0b3IgPSBnZXRGaXJzdFRleHRFZGl0b3IoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1hcmtzID0gUGxhaXRNYXJrRWRpdG9yLmdldE1hcmtzKGVkaXRvcik7XG4gICAgICAgIGNvbnN0IGZvbnRTaXplID0gKG1hcmtzW01hcmtUeXBlcy5mb250U2l6ZV0gYXMgbnVtYmVyKSB8fCBkZWZhdWx0Rm9udFNpemU7XG4gICAgICAgIHJldHVybiBmb250U2l6ZTtcbiAgICB9LFxuICAgIGdldFRleHRMZWZ0U3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICsgZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpLndpZHRoICsgZ2V0U3BhY2VFbW9qaUFuZFRleHQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldFRleHRUb3BTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXRJbWFnZVRvcFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIGVsZW1lbnQuZGF0YS5pbWFnZS5oZWlnaHQgKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0SW1hZ2VUb3BTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gc3Ryb2tlV2lkdGggKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRJbWFnZTtcbiAgICB9LFxuICAgIGdldEVtb2ppTGVmdFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPikge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gYm9hcmQuZ2V0UGx1Z2luT3B0aW9uczxXaXRoTWluZE9wdGlvbnM+KFdpdGhNaW5kUGx1Z2luS2V5KTtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgLSBvcHRpb25zLmVtb2ppUGFkZGluZztcbiAgICB9LFxuICAgIGdldEVtb2ppVG9wU3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldEZvbnRTaXplQnlTbGF0ZUVsZW1lbnQgPSAodGV4dDogc3RyaW5nIHwgRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IERFRkFVTFRfRk9OVF9TSVpFO1xuICAgIGlmICh0eXBlb2YgdGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRGb250U2l6ZTtcbiAgICB9XG4gICAgY29uc3QgbWFya3MgPSBQbGFpdE1hcmtFZGl0b3IuZ2V0TWFya3NCeUVsZW1lbnQodGV4dCk7XG4gICAgY29uc3QgZm9udFNpemUgPSAobWFya3NbTWFya1R5cGVzLmZvbnRTaXplXSBhcyBudW1iZXIpIHx8IGRlZmF1bHRGb250U2l6ZTtcbiAgICByZXR1cm4gZm9udFNpemU7XG59O1xuIl19
|
package/fesm2022/plait-mind.mjs
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { DefaultThemeColor, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, PlaitElement, PlaitNode, Path, isNullOrUndefined, PlaitBoard, getSelectedElements, idCreator, Transforms, clearSelectedElement, addSelectedElement, distanceBetweenPointAndRectangle, RectangleClient, depthFirstRecursion, getIsRecursionFunc, drawRoundRectangle, drawLinearPath, drawBezierPath, createG, createForeignObject, updateForeignObject, getRectangleByElements, setStrokeLinecap, ACTIVE_STROKE_WIDTH, NODE_TO_PARENT, removeSelectedElement, PlaitHistoryBoard, createText, PlaitPointerType, NODE_TO_INDEX, isMainPointer, toViewBoxPoint, toHostPoint, getHitElementByPoint, distanceBetweenPointAndPoint, CoreTransforms, BOARD_TO_HOST, BoardTransforms, throttleRAF, isContextmenu, temporaryDisableSelection, hotkeys, createClipboardContext, WritableClipboardType, ResizeCursorClass, Point, WritableClipboardOperationType, addClipboardContext
|
|
1
|
+
import { DefaultThemeColor, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, PlaitElement, PlaitNode, Path, isNullOrUndefined, PlaitBoard, getSelectedElements, idCreator, Transforms, clearSelectedElement, addSelectedElement, distanceBetweenPointAndRectangle, RectangleClient, depthFirstRecursion, getIsRecursionFunc, drawRoundRectangle, drawLinearPath, drawBezierPath, createG, createForeignObject, updateForeignObject, getRectangleByElements, setStrokeLinecap, ACTIVE_STROKE_WIDTH, NODE_TO_PARENT, removeSelectedElement, PlaitHistoryBoard, createText, PlaitPointerType, NODE_TO_INDEX, isMainPointer, toViewBoxPoint, toHostPoint, getHitElementByPoint, distanceBetweenPointAndPoint, CoreTransforms, BOARD_TO_HOST, BoardTransforms, throttleRAF, isContextmenu, temporaryDisableSelection, hotkeys, createClipboardContext, WritableClipboardType, ResizeCursorClass, Point, WritableClipboardOperationType, addClipboardContext } from '@plait/core';
|
|
2
2
|
import { MindLayoutType, AbstractNode, isIndentedLayout, isHorizontalLayout, isHorizontalLogicLayout, ConnectingPosition, getNonAbstractChildren, isStandardLayout, isLeftLayout, isRightLayout, isVerticalLogicLayout, isTopLayout, isBottomLayout, getCorrectStartEnd, getAbstractLayout, GlobalLayout } from '@plait/layouts';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { getFirstTextManage, buildText, getFirstTextEditor, RESIZE_HANDLE_DIAMETER, getRectangleResizeHandleRefs, addElementOfFocusedImage, ImageGenerator, removeElementOfFocusedImage, Generator, PropertyTransforms, CommonElementFlavour, WithTextPluginKey, TextManage, isDrawingMode, isDndMode, setCreationMode, BoardCreationMode, isExpandHotkey, isTabHotkey, isEnterHotkey, isVirtualKey, isDelete, isSpaceHotkey, getElementOfFocusedImage, acceptImageTypes, buildImage, withResize, measureElement, getElementsText } from '@plait/common';
|
|
4
|
+
import { TEXT_DEFAULT_HEIGHT, PlaitMarkEditor, MarkTypes, DEFAULT_FONT_SIZE } from '@plait/text-plugins';
|
|
5
5
|
import { Node as Node$1, Path as Path$1 } from 'slate';
|
|
6
6
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
7
7
|
import { fromEvent } from 'rxjs';
|
|
8
8
|
import { take, filter } from 'rxjs/operators';
|
|
9
|
-
import * as i0 from '@angular/core';
|
|
10
|
-
import { NgZone, Directive, Input, HostListener } from '@angular/core';
|
|
11
9
|
|
|
12
10
|
const ELEMENT_TO_NODE = new WeakMap();
|
|
13
11
|
|
|
@@ -480,10 +478,7 @@ const getShapeByElement = (board, element) => {
|
|
|
480
478
|
|
|
481
479
|
function editTopic(element) {
|
|
482
480
|
const textManage = getFirstTextManage(element);
|
|
483
|
-
textManage?.edit((
|
|
484
|
-
if (origin === ExitOrigin.default) {
|
|
485
|
-
}
|
|
486
|
-
});
|
|
481
|
+
textManage?.edit(() => { });
|
|
487
482
|
}
|
|
488
483
|
const getSelectedMindElements = (board, elements) => {
|
|
489
484
|
const selectedElements = elements?.length ? elements : getSelectedElements(board);
|
|
@@ -1067,13 +1062,6 @@ const adjustNodeToRoot = (board, node) => {
|
|
|
1067
1062
|
delete newElement?.shape;
|
|
1068
1063
|
delete newElement?.strokeWidth;
|
|
1069
1064
|
delete newElement?.isCollapsed;
|
|
1070
|
-
const { width, height } = getTextSize(board, newElement.data.topic, TOPIC_DEFAULT_MAX_WORD_COUNT, {
|
|
1071
|
-
fontSize: ROOT_TOPIC_FONT_SIZE,
|
|
1072
|
-
fontFamily: BRANCH_FONT_FAMILY,
|
|
1073
|
-
width: node.manualWidth ? node.manualWidth : undefined
|
|
1074
|
-
});
|
|
1075
|
-
newElement.width = Math.max(width, ROOT_TOPIC_FONT_SIZE);
|
|
1076
|
-
newElement.height = height;
|
|
1077
1065
|
return {
|
|
1078
1066
|
...newElement,
|
|
1079
1067
|
layout: newElement.layout ?? MindLayoutType.right,
|
|
@@ -1086,15 +1074,13 @@ const addImageFocus = (board, element) => {
|
|
|
1086
1074
|
addElementOfFocusedImage(board, element);
|
|
1087
1075
|
const commonElementRef = PlaitElement.getElementRef(element);
|
|
1088
1076
|
const imageGenerator = commonElementRef.getGenerator(ImageGenerator.key);
|
|
1089
|
-
imageGenerator.
|
|
1090
|
-
imageGenerator.componentRef.instance.cdr.markForCheck();
|
|
1077
|
+
imageGenerator.setFocus(element, true);
|
|
1091
1078
|
};
|
|
1092
1079
|
const removeImageFocus = (board, element) => {
|
|
1093
1080
|
removeElementOfFocusedImage(board);
|
|
1094
1081
|
const commonElementRef = PlaitElement.getElementRef(element);
|
|
1095
1082
|
const imageGenerator = commonElementRef.getGenerator(ImageGenerator.key);
|
|
1096
|
-
imageGenerator.
|
|
1097
|
-
imageGenerator.componentRef.instance.cdr.markForCheck();
|
|
1083
|
+
imageGenerator.setFocus(element, false);
|
|
1098
1084
|
};
|
|
1099
1085
|
|
|
1100
1086
|
/**
|
|
@@ -1598,44 +1584,33 @@ function drawLink(board, parentNode, node, isHorizontal, needDrawUnderline, defa
|
|
|
1598
1584
|
: drawLogicLink(board, parentNode, node, isHorizontal, defaultStroke, defaultStrokeWidth);
|
|
1599
1585
|
}
|
|
1600
1586
|
|
|
1587
|
+
const FOREIGN_OBJECT_EMOJI_CLASS_NAME = 'foreign-object-emoji';
|
|
1601
1588
|
class EmojiGenerator {
|
|
1602
|
-
constructor(board
|
|
1589
|
+
constructor(board) {
|
|
1603
1590
|
this.board = board;
|
|
1604
|
-
this.
|
|
1605
|
-
this.componentRef = null;
|
|
1591
|
+
this.emojiComponentRef = null;
|
|
1606
1592
|
}
|
|
1607
|
-
draw(emoji, element) {
|
|
1593
|
+
draw(container, emoji, element) {
|
|
1608
1594
|
this.destroy();
|
|
1609
|
-
const
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
this.
|
|
1616
|
-
this.componentRef.instance.element = element;
|
|
1617
|
-
this.componentRef.instance.fontSize = getEmojiFontSize(element);
|
|
1618
|
-
}
|
|
1619
|
-
get nativeElement() {
|
|
1620
|
-
if (this.componentRef) {
|
|
1621
|
-
return this.componentRef.instance.nativeElement;
|
|
1622
|
-
}
|
|
1623
|
-
else {
|
|
1624
|
-
return null;
|
|
1625
|
-
}
|
|
1595
|
+
const props = {
|
|
1596
|
+
board: this.board,
|
|
1597
|
+
emojiItem: emoji,
|
|
1598
|
+
element,
|
|
1599
|
+
fontSize: getEmojiFontSize(element)
|
|
1600
|
+
};
|
|
1601
|
+
this.emojiComponentRef = this.board.renderEmoji(container, props);
|
|
1626
1602
|
}
|
|
1627
1603
|
destroy() {
|
|
1628
|
-
if (this.
|
|
1629
|
-
this.
|
|
1630
|
-
this.
|
|
1604
|
+
if (this.emojiComponentRef) {
|
|
1605
|
+
this.emojiComponentRef.destroy();
|
|
1606
|
+
this.emojiComponentRef = null;
|
|
1631
1607
|
}
|
|
1632
1608
|
}
|
|
1633
1609
|
}
|
|
1634
1610
|
class NodeEmojisGenerator {
|
|
1635
1611
|
static { this.key = 'node-emojis-generator'; }
|
|
1636
|
-
constructor(board
|
|
1612
|
+
constructor(board) {
|
|
1637
1613
|
this.board = board;
|
|
1638
|
-
this.viewContainerRef = viewContainerRef;
|
|
1639
1614
|
this.emojiGenerators = [];
|
|
1640
1615
|
}
|
|
1641
1616
|
drawEmojis(element) {
|
|
@@ -1645,18 +1620,16 @@ class NodeEmojisGenerator {
|
|
|
1645
1620
|
this.g.classList.add('emojis');
|
|
1646
1621
|
const foreignRectangle = getEmojiForeignRectangle(this.board, element);
|
|
1647
1622
|
const foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
|
|
1623
|
+
foreignObject.classList.add(FOREIGN_OBJECT_EMOJI_CLASS_NAME);
|
|
1648
1624
|
this.g.append(foreignObject);
|
|
1649
1625
|
const container = document.createElement('div');
|
|
1650
1626
|
container.classList.add('node-emojis-container');
|
|
1651
1627
|
foreignObject.append(container);
|
|
1652
1628
|
this.emojiGenerators = element.data.emojis.map(emojiItem => {
|
|
1653
|
-
const drawer = new EmojiGenerator(this.board
|
|
1654
|
-
drawer.draw(emojiItem, element);
|
|
1629
|
+
const drawer = new EmojiGenerator(this.board);
|
|
1630
|
+
drawer.draw(container, emojiItem, element);
|
|
1655
1631
|
return drawer;
|
|
1656
1632
|
});
|
|
1657
|
-
this.emojiGenerators.forEach(drawer => {
|
|
1658
|
-
container.append(drawer.nativeElement);
|
|
1659
|
-
});
|
|
1660
1633
|
return this.g;
|
|
1661
1634
|
}
|
|
1662
1635
|
return undefined;
|
|
@@ -2519,9 +2492,8 @@ const insertAbstractNode = (board, path, start, end) => {
|
|
|
2519
2492
|
|
|
2520
2493
|
const normalizeWidthAndHeight = (board, element, width, height) => {
|
|
2521
2494
|
const minWidth = NodeSpace.getNodeTopicMinWidth(board, element);
|
|
2522
|
-
const newWidth = width < minWidth
|
|
2523
|
-
|
|
2524
|
-
return { width: Math.ceil(newWidth), height: newHeight };
|
|
2495
|
+
const newWidth = width < minWidth ? minWidth : width;
|
|
2496
|
+
return { width: Math.ceil(newWidth), height };
|
|
2525
2497
|
};
|
|
2526
2498
|
const setTopic = (board, element, topic, width, height) => {
|
|
2527
2499
|
const newElement = {
|
|
@@ -2950,7 +2922,7 @@ class MindNodeComponent extends CommonElementFlavour {
|
|
|
2950
2922
|
}
|
|
2951
2923
|
initializeGenerator() {
|
|
2952
2924
|
this.nodeShapeGenerator = new NodeShapeGenerator(this.board);
|
|
2953
|
-
this.nodeEmojisGenerator = new NodeEmojisGenerator(this.board
|
|
2925
|
+
this.nodeEmojisGenerator = new NodeEmojisGenerator(this.board);
|
|
2954
2926
|
this.activeGenerator = new NodeActiveGenerator(this.board);
|
|
2955
2927
|
this.nodePlusGenerator = new NodePlusGenerator(this.board);
|
|
2956
2928
|
this.collapseGenerator = new CollapseGenerator(this.board);
|
|
@@ -2963,22 +2935,21 @@ class MindNodeComponent extends CommonElementFlavour {
|
|
|
2963
2935
|
}
|
|
2964
2936
|
});
|
|
2965
2937
|
const plugins = (this.board.getPluginOptions(WithTextPluginKey) || {}).textPlugins;
|
|
2966
|
-
const textManage = new TextManage(this.board,
|
|
2938
|
+
const textManage = new TextManage(this.board, {
|
|
2967
2939
|
getRectangle: () => {
|
|
2968
2940
|
const rect = getTopicRectangleByNode(this.board, this.node);
|
|
2969
2941
|
return rect;
|
|
2970
2942
|
},
|
|
2971
|
-
|
|
2972
|
-
const width =
|
|
2973
|
-
const height =
|
|
2974
|
-
if (
|
|
2975
|
-
MindTransforms.setTopic(this.board, this.element,
|
|
2943
|
+
onChange: (data) => {
|
|
2944
|
+
const width = data.width;
|
|
2945
|
+
const height = data.height;
|
|
2946
|
+
if (data.newText) {
|
|
2947
|
+
MindTransforms.setTopic(this.board, this.element, data.newText, width, height);
|
|
2976
2948
|
}
|
|
2977
2949
|
else {
|
|
2978
2950
|
MindTransforms.setTopicSize(this.board, this.element, width, height);
|
|
2979
2951
|
}
|
|
2980
2952
|
},
|
|
2981
|
-
textPlugins: plugins,
|
|
2982
2953
|
getMaxWidth: () => {
|
|
2983
2954
|
if (this.element.manualWidth) {
|
|
2984
2955
|
return NodeSpace.getNodeDynamicWidth(this.board, this.element);
|
|
@@ -2986,7 +2957,8 @@ class MindNodeComponent extends CommonElementFlavour {
|
|
|
2986
2957
|
else {
|
|
2987
2958
|
return Math.max(NodeSpace.getNodeDynamicWidth(this.board, this.element), NodeTopicThreshold.defaultTextMaxWidth);
|
|
2988
2959
|
}
|
|
2989
|
-
}
|
|
2960
|
+
},
|
|
2961
|
+
textPlugins: plugins || []
|
|
2990
2962
|
});
|
|
2991
2963
|
this.initializeTextManages([textManage]);
|
|
2992
2964
|
this.getRef().addGenerator(NodeActiveGenerator.key, this.activeGenerator);
|
|
@@ -3007,7 +2979,7 @@ class MindNodeComponent extends CommonElementFlavour {
|
|
|
3007
2979
|
});
|
|
3008
2980
|
this.drawEmojis();
|
|
3009
2981
|
this.drawExtend();
|
|
3010
|
-
this.imageGenerator.processDrawing(this.element, this.getElementG()
|
|
2982
|
+
this.imageGenerator.processDrawing(this.element, this.getElementG());
|
|
3011
2983
|
if (PlaitMind.isMind(this.context.parent)) {
|
|
3012
2984
|
this.getElementG().classList.add('branch');
|
|
3013
2985
|
}
|
|
@@ -3027,7 +2999,7 @@ class MindNodeComponent extends CommonElementFlavour {
|
|
|
3027
2999
|
this.drawEmojis();
|
|
3028
3000
|
this.drawExtend();
|
|
3029
3001
|
if (!MindElement.hasImage(previous.element) && MindElement.hasImage(this.element)) {
|
|
3030
|
-
this.imageGenerator.processDrawing(this.element, this.getElementG()
|
|
3002
|
+
this.imageGenerator.processDrawing(this.element, this.getElementG());
|
|
3031
3003
|
}
|
|
3032
3004
|
if (MindElement.hasImage(previous.element) && MindElement.hasImage(this.element)) {
|
|
3033
3005
|
this.imageGenerator.updateImage(this.getElementG(), previous.element, value.element);
|
|
@@ -3446,16 +3418,12 @@ const withCreateMind = (board) => {
|
|
|
3446
3418
|
const nodeG = drawRoundRectangleByElement(board, nodeRectangle, emptyMind);
|
|
3447
3419
|
const topicRectangle = getTopicRectangleByElement(newBoard, nodeRectangle, emptyMind);
|
|
3448
3420
|
if (!fakeCreateNodeRef) {
|
|
3449
|
-
const textManage = new TextManage(board,
|
|
3421
|
+
const textManage = new TextManage(board, {
|
|
3450
3422
|
getRectangle: () => {
|
|
3451
3423
|
return topicRectangle;
|
|
3452
3424
|
}
|
|
3453
3425
|
});
|
|
3454
|
-
|
|
3455
|
-
.viewContainerRef.injector.get(NgZone)
|
|
3456
|
-
.run(() => {
|
|
3457
|
-
textManage.draw(emptyMind.data.topic);
|
|
3458
|
-
});
|
|
3426
|
+
textManage.draw(emptyMind.data.topic);
|
|
3459
3427
|
fakeCreateNodeRef = {
|
|
3460
3428
|
g: createG(),
|
|
3461
3429
|
nodeG,
|
|
@@ -3876,12 +3844,8 @@ const insertClipboardData = (board, elements, targetPoint, operationType) => {
|
|
|
3876
3844
|
if (hasTargetParent && operationType !== WritableClipboardOperationType.duplicate) {
|
|
3877
3845
|
if (item.isRoot) {
|
|
3878
3846
|
newElement = adjustRootToNode(board, newElement);
|
|
3879
|
-
const
|
|
3880
|
-
|
|
3881
|
-
...styles,
|
|
3882
|
-
width: newElement.manualWidth ? newElement.manualWidth : undefined
|
|
3883
|
-
});
|
|
3884
|
-
newElement.width = Math.max(width, ROOT_TOPIC_FONT_SIZE);
|
|
3847
|
+
const { width, height } = getTopicSizeByElement(newElement, targetParent);
|
|
3848
|
+
newElement.width = width;
|
|
3885
3849
|
newElement.height = height;
|
|
3886
3850
|
}
|
|
3887
3851
|
// handle abstract start and end
|
|
@@ -3899,6 +3863,9 @@ const insertClipboardData = (board, elements, targetPoint, operationType) => {
|
|
|
3899
3863
|
}
|
|
3900
3864
|
if (!item.isRoot) {
|
|
3901
3865
|
newElement = adjustNodeToRoot(board, newElement);
|
|
3866
|
+
const { width, height } = getTopicSizeByElement(newElement);
|
|
3867
|
+
newElement.width = width;
|
|
3868
|
+
newElement.height = height;
|
|
3902
3869
|
}
|
|
3903
3870
|
path = [board.children.length];
|
|
3904
3871
|
}
|
|
@@ -3909,12 +3876,27 @@ const insertClipboardData = (board, elements, targetPoint, operationType) => {
|
|
|
3909
3876
|
Transforms.addSelectionWithTemporaryElements(board, newELements);
|
|
3910
3877
|
};
|
|
3911
3878
|
const insertClipboardText = (board, targetParent, text) => {
|
|
3912
|
-
const
|
|
3913
|
-
const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT, styles);
|
|
3879
|
+
const { width, height } = getTopicSize(false, PlaitMind.isMind(targetParent), buildText(text));
|
|
3914
3880
|
const newElement = createMindElement(text, Math.max(width, getFontSizeBySlateElement(text)), height, {});
|
|
3915
3881
|
Transforms.insertNode(board, newElement, findNewChildNodePath(board, targetParent));
|
|
3916
3882
|
Transforms.addSelectionWithTemporaryElements(board, [newElement]);
|
|
3917
3883
|
};
|
|
3884
|
+
const getTopicSizeByElement = (element, parentElement) => {
|
|
3885
|
+
return getTopicSize(PlaitMind.isMind(element), (parentElement && PlaitMind.isMind(parentElement)) || false, element.data.topic, element.manualWidth);
|
|
3886
|
+
};
|
|
3887
|
+
const getTopicSize = (isRoot, isBranch, topic, manualWidth) => {
|
|
3888
|
+
let fontFamily = DEFAULT_FONT_FAMILY;
|
|
3889
|
+
let fontSize = TOPIC_FONT_SIZE;
|
|
3890
|
+
if (isRoot) {
|
|
3891
|
+
fontFamily = BRANCH_FONT_FAMILY;
|
|
3892
|
+
fontSize = ROOT_TOPIC_FONT_SIZE;
|
|
3893
|
+
}
|
|
3894
|
+
else if (isBranch) {
|
|
3895
|
+
fontFamily = BRANCH_FONT_FAMILY;
|
|
3896
|
+
}
|
|
3897
|
+
const maxWidth = fontSize * TOPIC_DEFAULT_MAX_WORD_COUNT;
|
|
3898
|
+
return measureElement(topic, { fontSize, fontFamily }, manualWidth ? manualWidth : maxWidth);
|
|
3899
|
+
};
|
|
3918
3900
|
|
|
3919
3901
|
const withMindFragment = (baseBoard) => {
|
|
3920
3902
|
const board = baseBoard;
|
|
@@ -4011,6 +3993,14 @@ const getNextSelectedElement = (board, firstLevelElements) => {
|
|
|
4011
3993
|
return activeElement;
|
|
4012
3994
|
};
|
|
4013
3995
|
|
|
3996
|
+
const withEmoji = (board) => {
|
|
3997
|
+
const newBoard = board;
|
|
3998
|
+
newBoard.renderEmoji = (container, props) => {
|
|
3999
|
+
throw new Error('No implementation for renderEmoji method.');
|
|
4000
|
+
};
|
|
4001
|
+
return newBoard;
|
|
4002
|
+
};
|
|
4003
|
+
|
|
4014
4004
|
const withMind = (baseBoard) => {
|
|
4015
4005
|
const board = baseBoard;
|
|
4016
4006
|
const { drawElement, dblClick, isRectangleHit, isHit, getRectangle, isMovable, isRecursion, isAlign, isImageBindingAllowed, canAddToGroup, canSetZIndex, isExpanded } = board;
|
|
@@ -4118,51 +4108,29 @@ const withMind = (baseBoard) => {
|
|
|
4118
4108
|
}
|
|
4119
4109
|
dblClick(event);
|
|
4120
4110
|
};
|
|
4121
|
-
return withNodeResize(withNodeImageResize(withNodeImage(withNodeHoverHitTest(withMindFragment(withMindHotkey(withMindExtend(withCreateMind(withAbstract(withNodeDnd(board))))))))));
|
|
4111
|
+
return withEmoji(withNodeResize(withNodeImageResize(withNodeImage(withNodeHoverHitTest(withMindFragment(withMindHotkey(withMindExtend(withCreateMind(withAbstract(withNodeDnd(board)))))))))));
|
|
4122
4112
|
};
|
|
4123
4113
|
|
|
4124
4114
|
class MindEmojiBaseComponent {
|
|
4125
|
-
|
|
4126
|
-
return this.elementRef.nativeElement;
|
|
4127
|
-
}
|
|
4128
|
-
handlePointerDown() {
|
|
4129
|
-
const currentOptions = this.board.getPluginOptions(PlaitPluginKey.withSelection);
|
|
4130
|
-
this.board.setPluginOptions(PlaitPluginKey.withSelection, {
|
|
4131
|
-
isDisabledSelect: true
|
|
4132
|
-
});
|
|
4133
|
-
setTimeout(() => {
|
|
4134
|
-
this.board.setPluginOptions(PlaitPluginKey.withSelection, { ...currentOptions });
|
|
4135
|
-
}, 0);
|
|
4136
|
-
}
|
|
4137
|
-
constructor(elementRef) {
|
|
4138
|
-
this.elementRef = elementRef;
|
|
4115
|
+
constructor() {
|
|
4139
4116
|
this.fontSize = 14;
|
|
4140
4117
|
}
|
|
4141
|
-
|
|
4142
|
-
|
|
4118
|
+
// TODO
|
|
4119
|
+
// @HostListener('pointerdown')
|
|
4120
|
+
// handlePointerDown() {
|
|
4121
|
+
// const currentOptions = (this.board as PlaitOptionsBoard).getPluginOptions(PlaitPluginKey.withSelection);
|
|
4122
|
+
// (this.board as PlaitOptionsBoard).setPluginOptions<WithPluginOptions>(PlaitPluginKey.withSelection, {
|
|
4123
|
+
// isDisabledSelect: true
|
|
4124
|
+
// });
|
|
4125
|
+
// setTimeout(() => {
|
|
4126
|
+
// (this.board as PlaitOptionsBoard).setPluginOptions<WithPluginOptions>(PlaitPluginKey.withSelection, { ...currentOptions });
|
|
4127
|
+
// }, 0);
|
|
4128
|
+
// }
|
|
4129
|
+
initialize() {
|
|
4130
|
+
this.nativeElement().style.fontSize = `${this.fontSize}px`;
|
|
4131
|
+
this.nativeElement().classList.add('mind-node-emoji');
|
|
4143
4132
|
}
|
|
4144
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MindEmojiBaseComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4145
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: MindEmojiBaseComponent, inputs: { fontSize: "fontSize", emojiItem: "emojiItem", board: "board", element: "element" }, host: { listeners: { "pointerdown": "handlePointerDown()" }, classAttribute: "mind-node-emoji" }, ngImport: i0 }); }
|
|
4146
4133
|
}
|
|
4147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MindEmojiBaseComponent, decorators: [{
|
|
4148
|
-
type: Directive,
|
|
4149
|
-
args: [{
|
|
4150
|
-
host: {
|
|
4151
|
-
class: 'mind-node-emoji'
|
|
4152
|
-
}
|
|
4153
|
-
}]
|
|
4154
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fontSize: [{
|
|
4155
|
-
type: Input
|
|
4156
|
-
}], emojiItem: [{
|
|
4157
|
-
type: Input
|
|
4158
|
-
}], board: [{
|
|
4159
|
-
type: Input
|
|
4160
|
-
}], element: [{
|
|
4161
|
-
type: Input
|
|
4162
|
-
}], handlePointerDown: [{
|
|
4163
|
-
type: HostListener,
|
|
4164
|
-
args: ['pointerdown']
|
|
4165
|
-
}] } });
|
|
4166
4134
|
|
|
4167
4135
|
/*
|
|
4168
4136
|
* Public API Surface of mind
|
|
@@ -4172,5 +4140,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
4172
4140
|
* Generated bundle index. Do not edit.
|
|
4173
4141
|
*/
|
|
4174
4142
|
|
|
4175
|
-
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY, BRANCH_WIDTH, BranchShape, DEFAULT_FONT_FAMILY, DEFAULT_MIND_IMAGE_WIDTH, DefaultAbstractNodeStyle, DefaultNodeStyle, ELEMENT_TO_NODE, EXTEND_DIAMETER, EXTEND_OFFSET, GRAY_COLOR, INHERIT_ATTRIBUTE_KEYS, IS_DRAGGING, LayoutDirection, LayoutDirectionsMap, MindColorfulThemeColor, MindDarkThemeColor, MindDefaultThemeColor, MindElement, MindElementShape, MindEmojiBaseComponent, MindNode, MindNodeComponent, MindPointerType, MindQueries, MindRetroThemeColor, MindSoftThemeColor, MindStarryThemeColor, MindThemeColor, MindThemeColors, MindTransforms, NodeSpace, NodeTopicThreshold, PRIMARY_COLOR, PlaitMind, PlaitMindComponent, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_CIRCLE_OFFSET, QUICK_INSERT_INNER_CROSS_COLOR, ROOT_TOPIC_FONT_SIZE, ROOT_TOPIC_HEIGHT, ROOT_TOPIC_WIDTH, STROKE_WIDTH, TOPIC_COLOR, TOPIC_DEFAULT_MAX_WORD_COUNT, TOPIC_FONT_SIZE, WithMindPluginKey, addActiveOnDragOrigin, addImageFocus, adjustAbstractToNode, adjustNodeToRoot, adjustRootToNode, canSetAbstract, copyNewNode, correctLayoutByDirection, createDefaultMind, createEmptyMind, createMindElement, deleteElementHandleAbstract, deleteElementsHandleRightNodeCount, detectDropTarget, directionCorrector, directionDetector, divideElementByParent, drawFakeDragNode, drawFakeDropNode, editTopic, findLastChild, findLocationLeftIndex, findNewChildNodePath, findNewSiblingNodePath, getAbstractBranchColor, getAbstractBranchWidth, getAbstractHandleRectangle, getAllowedDirection, getAvailableSubLayoutsByLayoutDirections, getBehindAbstracts, getBranchColorByMindElement, getBranchDirectionsByLayouts, getBranchShapeByMindElement, getBranchWidthByMindElement, getChildrenCount, getCorrespondingAbstract, getDefaultBranchColor, getDefaultBranchColorByIndex, getDefaultLayout, getDefaultMindElementFontSize, getEmojiFontSize, getEmojiForeignRectangle, getEmojiRectangle, getEmojisWidthHeight, getFillByElement, getFirstLevelElement, getFontSizeBySlateElement, getHitAbstractHandle, getHitImageResizeHandleDirection, getImageForeignRectangle, getInCorrectLayoutDirection, getLayoutDirection$1 as getLayoutDirection, getLayoutOptions, getLayoutReverseDirection, getLocationScope, getMindThemeColor, getNewNodeHeight, getNextBranchColor, getOverallAbstracts, getPathByDropTarget, getRectangleByElement, getRectangleByNode, getRectangleByResizingLocation, getRelativeStartEndByAbstractRef, getRootLayout, getSelectedMindElements, getShapeByElement, getStrokeByMindElement, getStrokeWidthByElement, getTopicRectangleByElement, getTopicRectangleByNode, getValidAbstractRefs, handleTouchedAbstract, hasPreviousOrNextOfDropPath, insertElementHandleAbstract, insertElementHandleRightNodeCount, insertMindElement, isChildElement, isChildOfAbstract, isChildRight, isChildUp, isCorrectLayout, isDragging, isDropStandardRight, isHitEmojis, isHitImage, isHitMindElement, isInRightBranchOfStandardLayout, isMixedLayout, isSetAbstract, isValidTarget, removeActiveOnDragOrigin, removeImageFocus, separateChildren, setIsDragging, withMind, withMindExtend };
|
|
4143
|
+
export { ABSTRACT_HANDLE_COLOR, ABSTRACT_HANDLE_LENGTH, ABSTRACT_HANDLE_MASK_WIDTH, ABSTRACT_INCLUDED_OUTLINE_OFFSET, AbstractHandlePosition, AbstractResizeState, BASE, BRANCH_FONT_FAMILY, BRANCH_WIDTH, BranchShape, DEFAULT_FONT_FAMILY, DEFAULT_MIND_IMAGE_WIDTH, DefaultAbstractNodeStyle, DefaultNodeStyle, ELEMENT_TO_NODE, EXTEND_DIAMETER, EXTEND_OFFSET, GRAY_COLOR, INHERIT_ATTRIBUTE_KEYS, IS_DRAGGING, LayoutDirection, LayoutDirectionsMap, MindColorfulThemeColor, MindDarkThemeColor, MindDefaultThemeColor, MindElement, MindElementShape, MindEmojiBaseComponent, MindNode, MindNodeComponent, MindPointerType, MindQueries, MindRetroThemeColor, MindSoftThemeColor, MindStarryThemeColor, MindThemeColor, MindThemeColors, MindTransforms, NodeSpace, NodeTopicThreshold, PRIMARY_COLOR, PlaitMind, PlaitMindComponent, QUICK_INSERT_CIRCLE_COLOR, QUICK_INSERT_CIRCLE_OFFSET, QUICK_INSERT_INNER_CROSS_COLOR, ROOT_TOPIC_FONT_SIZE, ROOT_TOPIC_HEIGHT, ROOT_TOPIC_WIDTH, STROKE_WIDTH, TOPIC_COLOR, TOPIC_DEFAULT_MAX_WORD_COUNT, TOPIC_FONT_SIZE, WithMindPluginKey, addActiveOnDragOrigin, addImageFocus, adjustAbstractToNode, adjustNodeToRoot, adjustRootToNode, canSetAbstract, copyNewNode, correctLayoutByDirection, createDefaultMind, createEmptyMind, createMindElement, deleteElementHandleAbstract, deleteElementsHandleRightNodeCount, detectDropTarget, directionCorrector, directionDetector, divideElementByParent, drawFakeDragNode, drawFakeDropNode, editTopic, findLastChild, findLocationLeftIndex, findNewChildNodePath, findNewSiblingNodePath, getAbstractBranchColor, getAbstractBranchWidth, getAbstractHandleRectangle, getAllowedDirection, getAvailableSubLayoutsByLayoutDirections, getBehindAbstracts, getBranchColorByMindElement, getBranchDirectionsByLayouts, getBranchShapeByMindElement, getBranchWidthByMindElement, getChildrenCount, getCorrespondingAbstract, getDefaultBranchColor, getDefaultBranchColorByIndex, getDefaultLayout, getDefaultMindElementFontSize, getEmojiFontSize, getEmojiForeignRectangle, getEmojiRectangle, getEmojisWidthHeight, getFillByElement, getFirstLevelElement, getFontSizeBySlateElement, getHitAbstractHandle, getHitImageResizeHandleDirection, getImageForeignRectangle, getInCorrectLayoutDirection, getLayoutDirection$1 as getLayoutDirection, getLayoutOptions, getLayoutReverseDirection, getLocationScope, getMindThemeColor, getNewNodeHeight, getNextBranchColor, getOverallAbstracts, getPathByDropTarget, getRectangleByElement, getRectangleByNode, getRectangleByResizingLocation, getRelativeStartEndByAbstractRef, getRootLayout, getSelectedMindElements, getShapeByElement, getStrokeByMindElement, getStrokeWidthByElement, getTopicRectangleByElement, getTopicRectangleByNode, getValidAbstractRefs, handleTouchedAbstract, hasPreviousOrNextOfDropPath, insertElementHandleAbstract, insertElementHandleRightNodeCount, insertMindElement, isChildElement, isChildOfAbstract, isChildRight, isChildUp, isCorrectLayout, isDragging, isDropStandardRight, isHitEmojis, isHitImage, isHitMindElement, isInRightBranchOfStandardLayout, isMixedLayout, isSetAbstract, isValidTarget, removeActiveOnDragOrigin, removeImageFocus, separateChildren, setIsDragging, withEmoji, withMind, withMindExtend };
|
|
4176
4144
|
//# sourceMappingURL=plait-mind.mjs.map
|