Ignore:
Timestamp:
12/12/24 17:06:06 (5 weeks ago)
Author:
stefan toskovski <stefantoska84@…>
Branches:
main
Parents:
d565449
Message:

Pred finalna verzija

File:
1 edited

Legend:

Unmodified
Added
Removed
  • imaps-frontend/node_modules/konva/lib/shapes/Text.js

    rd565449 r0c6b92a  
    11"use strict";
    22Object.defineProperty(exports, "__esModule", { value: true });
    3 exports.Text = exports.stringToArray = void 0;
     3exports.Text = void 0;
     4exports.stringToArray = stringToArray;
    45const Util_1 = require("../Util");
    56const Factory_1 = require("../Factory");
     
    910const Global_2 = require("../Global");
    1011function stringToArray(string) {
    11     return Array.from(string);
    12 }
    13 exports.stringToArray = stringToArray;
    14 var AUTO = 'auto', CENTER = 'center', INHERIT = 'inherit', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', LTR = 'ltr', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', RTL = 'rtl', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [
     12    return [...string].reduce((acc, char, index, array) => {
     13        if (/\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?(?:\u200D\p{Emoji_Presentation})+/u.test(char)) {
     14            acc.push(char);
     15        }
     16        else if (/\p{Regional_Indicator}{2}/u.test(char + (array[index + 1] || ''))) {
     17            acc.push(char + array[index + 1]);
     18        }
     19        else if (index > 0 && /\p{Mn}|\p{Me}|\p{Mc}/u.test(char)) {
     20            acc[acc.length - 1] += char;
     21        }
     22        else {
     23            acc.push(char);
     24        }
     25        return acc;
     26    }, []);
     27}
     28const AUTO = 'auto', CENTER = 'center', INHERIT = 'inherit', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', RTL = 'rtl', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [
    1529    'direction',
    1630    'fontFamily',
     
    4357        .join(', ');
    4458}
    45 var dummyContext;
     59let dummyContext;
    4660function getDummyContext() {
    4761    if (dummyContext) {
     
    7286        this._partialTextX = 0;
    7387        this._partialTextY = 0;
    74         for (var n = 0; n < attrChangeListLen; n++) {
     88        for (let n = 0; n < attrChangeListLen; n++) {
    7589            this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, this._setTextData);
    7690        }
     
    7892    }
    7993    _sceneFunc(context) {
    80         var textArr = this.textArr, textArrLen = textArr.length;
     94        const textArr = this.textArr, textArrLen = textArr.length;
    8195        if (!this.text()) {
    8296            return;
    8397        }
    84         var padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), direction = this.direction(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;
     98        let padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), direction = this.direction(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;
    8599        direction = direction === INHERIT ? context.direction : direction;
    86         var translateY = lineHeightPx / 2;
    87         var baseline = MIDDLE;
     100        let translateY = lineHeightPx / 2;
     101        let baseline = MIDDLE;
    88102        if (Global_1.Konva._fixTextRendering) {
    89             var metrics = this.measureSize('M');
     103            const metrics = this.measureSize('M');
    90104            baseline = 'alphabetic';
    91105            translateY =
     
    122136                context.save();
    123137                context.beginPath();
    124                 let yOffset = Global_1.Konva._fixTextRendering
     138                const yOffset = Global_1.Konva._fixTextRendering
    125139                    ? Math.round(fontSize / 4)
    126140                    : Math.round(fontSize / 2);
     
    142156                context.save();
    143157                context.beginPath();
    144                 let yOffset = Global_1.Konva._fixTextRendering ? -Math.round(fontSize / 4) : 0;
     158                const yOffset = Global_1.Konva._fixTextRendering ? -Math.round(fontSize / 4) : 0;
    145159                context.moveTo(lineTranslateX, translateY + lineTranslateY + yOffset);
    146160                spacesNumber = text.split(' ').length - 1;
     
    159173            if (direction !== RTL && (letterSpacing !== 0 || align === JUSTIFY)) {
    160174                spacesNumber = text.split(' ').length - 1;
    161                 var array = stringToArray(text);
    162                 for (var li = 0; li < array.length; li++) {
    163                     var letter = array[li];
     175                const array = stringToArray(text);
     176                for (let li = 0; li < array.length; li++) {
     177                    const letter = array[li];
    164178                    if (letter === ' ' && !lastLine && align === JUSTIFY) {
    165179                        lineTranslateX += (totalWidth - padding * 2 - width) / spacesNumber;
     
    188202    }
    189203    _hitFunc(context) {
    190         var width = this.getWidth(), height = this.getHeight();
     204        const width = this.getWidth(), height = this.getHeight();
    191205        context.beginPath();
    192206        context.rect(0, 0, width, height);
     
    195209    }
    196210    setText(text) {
    197         var str = Util_1.Util._isString(text)
     211        const str = Util_1.Util._isString(text)
    198212            ? text
    199213            : text === null || text === undefined
     
    204218    }
    205219    getWidth() {
    206         var isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;
     220        const isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;
    207221        return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;
    208222    }
    209223    getHeight() {
    210         var isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;
     224        const isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;
    211225        return isAuto
    212226            ? this.fontSize() * this.textArr.length * this.lineHeight() +
     
    223237    measureSize(text) {
    224238        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
    225         var _context = getDummyContext(), fontSize = this.fontSize(), metrics;
     239        let _context = getDummyContext(), fontSize = this.fontSize(), metrics;
    226240        _context.save();
    227241        _context.font = this._getContextFont();
     
    258272            line = line.trim();
    259273        }
    260         var width = this._getTextWidth(line);
     274        const width = this._getTextWidth(line);
    261275        return this.textArr.push({
    262276            text: line,
     
    266280    }
    267281    _getTextWidth(text) {
    268         var letterSpacing = this.letterSpacing();
    269         var length = text.length;
     282        const letterSpacing = this.letterSpacing();
     283        const length = text.length;
    270284        return (getDummyContext().measureText(text).width +
    271285            (length ? letterSpacing * (length - 1) : 0));
    272286    }
    273287    _setTextData() {
    274         var lines = this.text().split('\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis();
     288        let lines = this.text().split('\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis();
    275289        this.textArr = [];
    276290        getDummyContext().font = this._getContextFont();
    277         var additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;
    278         for (var i = 0, max = lines.length; i < max; ++i) {
    279             var line = lines[i];
    280             var lineWidth = this._getTextWidth(line);
     291        const additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;
     292        for (let i = 0, max = lines.length; i < max; ++i) {
     293            let line = lines[i];
     294            let lineWidth = this._getTextWidth(line);
    281295            if (fixedWidth && lineWidth > maxWidth) {
    282296                while (line.length > 0) {
    283                     var low = 0, high = line.length, match = '', matchWidth = 0;
     297                    let low = 0, high = line.length, match = '', matchWidth = 0;
    284298                    while (low < high) {
    285                         var mid = (low + high) >>> 1, substr = line.slice(0, mid + 1), substrWidth = this._getTextWidth(substr) + additionalWidth;
     299                        const mid = (low + high) >>> 1, substr = line.slice(0, mid + 1), substrWidth = this._getTextWidth(substr) + additionalWidth;
    286300                        if (substrWidth <= maxWidth) {
    287301                            low = mid + 1;
     
    296310                        if (wrapAtWord) {
    297311                            var wrapIndex;
    298                             var nextChar = line[match.length];
    299                             var nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;
     312                            const nextChar = line[match.length];
     313                            const nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;
    300314                            if (nextIsSpaceOrDash && matchWidth <= maxWidth) {
    301315                                wrapIndex = match.length;
     
    316330                        textWidth = Math.max(textWidth, matchWidth);
    317331                        currentHeightPx += lineHeightPx;
    318                         var shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);
     332                        const shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);
    319333                        if (shouldHandleEllipsis) {
    320334                            this._tryToAddEllipsisToLastLine();
     
    357371    }
    358372    _shouldHandleEllipsis(currentHeightPx) {
    359         var fontSize = +this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, height = this.attrs.height, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxHeightPx = height - padding * 2, wrap = this.wrap(), shouldWrap = wrap !== NONE;
     373        const fontSize = +this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, height = this.attrs.height, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxHeightPx = height - padding * 2, wrap = this.wrap(), shouldWrap = wrap !== NONE;
    360374        return (!shouldWrap ||
    361375            (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx));
    362376    }
    363377    _tryToAddEllipsisToLastLine() {
    364         var width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();
    365         var lastLine = this.textArr[this.textArr.length - 1];
     378        const width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();
     379        const lastLine = this.textArr[this.textArr.length - 1];
    366380        if (!lastLine || !shouldAddEllipsis) {
    367381            return;
    368382        }
    369383        if (fixedWidth) {
    370             var haveSpace = this._getTextWidth(lastLine.text + ELLIPSIS) < maxWidth;
     384            const haveSpace = this._getTextWidth(lastLine.text + ELLIPSIS) < maxWidth;
    371385            if (!haveSpace) {
    372386                lastLine.text = lastLine.text.slice(0, lastLine.text.length - 3);
Note: See TracChangeset for help on using the changeset viewer.