719 lines
		
	
	
		
			83 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			719 lines
		
	
	
		
			83 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								 * css-line-break 2.1.0 <https://github.com/niklasvh/css-line-break#readme>
							 | 
						|||
| 
								 | 
							
								 * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
							 | 
						|||
| 
								 | 
							
								 * Released under MIT License
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								(function (global, factory) {
							 | 
						|||
| 
								 | 
							
								    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
							 | 
						|||
| 
								 | 
							
								    typeof define === 'function' && define.amd ? define(['exports'], factory) :
							 | 
						|||
| 
								 | 
							
								    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['css-line-break'] = {}));
							 | 
						|||
| 
								 | 
							
								}(this, (function (exports) { 'use strict';
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    var toCodePoints = function (str) {
							 | 
						|||
| 
								 | 
							
								        var codePoints = [];
							 | 
						|||
| 
								 | 
							
								        var i = 0;
							 | 
						|||
| 
								 | 
							
								        var length = str.length;
							 | 
						|||
| 
								 | 
							
								        while (i < length) {
							 | 
						|||
| 
								 | 
							
								            var value = str.charCodeAt(i++);
							 | 
						|||
| 
								 | 
							
								            if (value >= 0xd800 && value <= 0xdbff && i < length) {
							 | 
						|||
| 
								 | 
							
								                var extra = str.charCodeAt(i++);
							 | 
						|||
| 
								 | 
							
								                if ((extra & 0xfc00) === 0xdc00) {
							 | 
						|||
| 
								 | 
							
								                    codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else {
							 | 
						|||
| 
								 | 
							
								                    codePoints.push(value);
							 | 
						|||
| 
								 | 
							
								                    i--;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else {
							 | 
						|||
| 
								 | 
							
								                codePoints.push(value);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return codePoints;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var fromCodePoint = function () {
							 | 
						|||
| 
								 | 
							
								        var codePoints = [];
							 | 
						|||
| 
								 | 
							
								        for (var _i = 0; _i < arguments.length; _i++) {
							 | 
						|||
| 
								 | 
							
								            codePoints[_i] = arguments[_i];
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        if (String.fromCodePoint) {
							 | 
						|||
| 
								 | 
							
								            return String.fromCodePoint.apply(String, codePoints);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        var length = codePoints.length;
							 | 
						|||
| 
								 | 
							
								        if (!length) {
							 | 
						|||
| 
								 | 
							
								            return '';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        var codeUnits = [];
							 | 
						|||
| 
								 | 
							
								        var index = -1;
							 | 
						|||
| 
								 | 
							
								        var result = '';
							 | 
						|||
| 
								 | 
							
								        while (++index < length) {
							 | 
						|||
| 
								 | 
							
								            var codePoint = codePoints[index];
							 | 
						|||
| 
								 | 
							
								            if (codePoint <= 0xffff) {
							 | 
						|||
| 
								 | 
							
								                codeUnits.push(codePoint);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else {
							 | 
						|||
| 
								 | 
							
								                codePoint -= 0x10000;
							 | 
						|||
| 
								 | 
							
								                codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (index + 1 === length || codeUnits.length > 0x4000) {
							 | 
						|||
| 
								 | 
							
								                result += String.fromCharCode.apply(String, codeUnits);
							 | 
						|||
| 
								 | 
							
								                codeUnits.length = 0;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return result;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
							 | 
						|||
| 
								 | 
							
								    // Use a lookup table to find the index.
							 | 
						|||
| 
								 | 
							
								    var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
							 | 
						|||
| 
								 | 
							
								    for (var i$2 = 0; i$2 < chars$2.length; i$2++) {
							 | 
						|||
| 
								 | 
							
								        lookup$2[chars$2.charCodeAt(i$2)] = i$2;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    /*
							 | 
						|||
| 
								 | 
							
								     * utrie 1.0.2 <https://github.com/niklasvh/utrie>
							 | 
						|||
| 
								 | 
							
								     * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
							 | 
						|||
| 
								 | 
							
								     * Released under MIT License
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
							 | 
						|||
| 
								 | 
							
								    // Use a lookup table to find the index.
							 | 
						|||
| 
								 | 
							
								    var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
							 | 
						|||
| 
								 | 
							
								    for (var i$1 = 0; i$1 < chars$1.length; i$1++) {
							 | 
						|||
| 
								 | 
							
								        lookup$1[chars$1.charCodeAt(i$1)] = i$1;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    var decode = function (base64) {
							 | 
						|||
| 
								 | 
							
								        var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
							 | 
						|||
| 
								 | 
							
								        if (base64[base64.length - 1] === '=') {
							 | 
						|||
| 
								 | 
							
								            bufferLength--;
							 | 
						|||
| 
								 | 
							
								            if (base64[base64.length - 2] === '=') {
							 | 
						|||
| 
								 | 
							
								                bufferLength--;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        var buffer = typeof ArrayBuffer !== 'undefined' &&
							 | 
						|||
| 
								 | 
							
								            typeof Uint8Array !== 'undefined' &&
							 | 
						|||
| 
								 | 
							
								            typeof Uint8Array.prototype.slice !== 'undefined'
							 | 
						|||
| 
								 | 
							
								            ? new ArrayBuffer(bufferLength)
							 | 
						|||
| 
								 | 
							
								            : new Array(bufferLength);
							 | 
						|||
| 
								 | 
							
								        var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);
							 | 
						|||
| 
								 | 
							
								        for (i = 0; i < len; i += 4) {
							 | 
						|||
| 
								 | 
							
								            encoded1 = lookup$1[base64.charCodeAt(i)];
							 | 
						|||
| 
								 | 
							
								            encoded2 = lookup$1[base64.charCodeAt(i + 1)];
							 | 
						|||
| 
								 | 
							
								            encoded3 = lookup$1[base64.charCodeAt(i + 2)];
							 | 
						|||
| 
								 | 
							
								            encoded4 = lookup$1[base64.charCodeAt(i + 3)];
							 | 
						|||
| 
								 | 
							
								            bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
							 | 
						|||
| 
								 | 
							
								            bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
							 | 
						|||
| 
								 | 
							
								            bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return buffer;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var polyUint16Array = function (buffer) {
							 | 
						|||
| 
								 | 
							
								        var length = buffer.length;
							 | 
						|||
| 
								 | 
							
								        var bytes = [];
							 | 
						|||
| 
								 | 
							
								        for (var i = 0; i < length; i += 2) {
							 | 
						|||
| 
								 | 
							
								            bytes.push((buffer[i + 1] << 8) | buffer[i]);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return bytes;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var polyUint32Array = function (buffer) {
							 | 
						|||
| 
								 | 
							
								        var length = buffer.length;
							 | 
						|||
| 
								 | 
							
								        var bytes = [];
							 | 
						|||
| 
								 | 
							
								        for (var i = 0; i < length; i += 4) {
							 | 
						|||
| 
								 | 
							
								            bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return bytes;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    /** Shift size for getting the index-2 table offset. */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_SHIFT_2 = 5;
							 | 
						|||
| 
								 | 
							
								    /** Shift size for getting the index-1 table offset. */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_SHIFT_1 = 6 + 5;
							 | 
						|||
| 
								 | 
							
								    /**
							 | 
						|||
| 
								 | 
							
								     * Shift size for shifting left the index array values.
							 | 
						|||
| 
								 | 
							
								     * Increases possible data size with 16-bit index values at the cost
							 | 
						|||
| 
								 | 
							
								     * of compactability.
							 | 
						|||
| 
								 | 
							
								     * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_INDEX_SHIFT = 2;
							 | 
						|||
| 
								 | 
							
								    /**
							 | 
						|||
| 
								 | 
							
								     * Difference between the two shift sizes,
							 | 
						|||
| 
								 | 
							
								     * for getting an index-1 offset from an index-2 offset. 6=11-5
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;
							 | 
						|||
| 
								 | 
							
								    /**
							 | 
						|||
| 
								 | 
							
								     * The part of the index-2 table for U+D800..U+DBFF stores values for
							 | 
						|||
| 
								 | 
							
								     * lead surrogate code _units_ not code _points_.
							 | 
						|||
| 
								 | 
							
								     * Values for lead surrogate code _points_ are indexed with this portion of the table.
							 | 
						|||
| 
								 | 
							
								     * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;
							 | 
						|||
| 
								 | 
							
								    /** Number of entries in a data block. 32=0x20 */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;
							 | 
						|||
| 
								 | 
							
								    /** Mask for getting the lower bits for the in-data-block offset. */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;
							 | 
						|||
| 
								 | 
							
								    /** Count the lengths of both BMP pieces. 2080=0x820 */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;
							 | 
						|||
| 
								 | 
							
								    /**
							 | 
						|||
| 
								 | 
							
								     * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.
							 | 
						|||
| 
								 | 
							
								     * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */
							 | 
						|||
| 
								 | 
							
								    /**
							 | 
						|||
| 
								 | 
							
								     * The index-1 table, only used for supplementary code points, at offset 2112=0x840.
							 | 
						|||
| 
								 | 
							
								     * Variable length, for code points up to highStart, where the last single-value range starts.
							 | 
						|||
| 
								 | 
							
								     * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.
							 | 
						|||
| 
								 | 
							
								     * (For 0x100000 supplementary code points U+10000..U+10ffff.)
							 | 
						|||
| 
								 | 
							
								     *
							 | 
						|||
| 
								 | 
							
								     * The part of the index-2 table for supplementary code points starts
							 | 
						|||
| 
								 | 
							
								     * after this index-1 table.
							 | 
						|||
| 
								 | 
							
								     *
							 | 
						|||
| 
								 | 
							
								     * Both the index-1 table and the following part of the index-2 table
							 | 
						|||
| 
								 | 
							
								     * are omitted completely if there is only BMP data.
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;
							 | 
						|||
| 
								 | 
							
								    /**
							 | 
						|||
| 
								 | 
							
								     * Number of index-1 entries for the BMP. 32=0x20
							 | 
						|||
| 
								 | 
							
								     * This part of the index-1 table is omitted from the serialized form.
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;
							 | 
						|||
| 
								 | 
							
								    /** Number of entries in an index-2 block. 64=0x40 */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;
							 | 
						|||
| 
								 | 
							
								    /** Mask for getting the lower bits for the in-index-2-block offset. */
							 | 
						|||
| 
								 | 
							
								    var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;
							 | 
						|||
| 
								 | 
							
								    var slice16 = function (view, start, end) {
							 | 
						|||
| 
								 | 
							
								        if (view.slice) {
							 | 
						|||
| 
								 | 
							
								            return view.slice(start, end);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return new Uint16Array(Array.prototype.slice.call(view, start, end));
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var slice32 = function (view, start, end) {
							 | 
						|||
| 
								 | 
							
								        if (view.slice) {
							 | 
						|||
| 
								 | 
							
								            return view.slice(start, end);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return new Uint32Array(Array.prototype.slice.call(view, start, end));
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var createTrieFromBase64 = function (base64, _byteLength) {
							 | 
						|||
| 
								 | 
							
								        var buffer = decode(base64);
							 | 
						|||
| 
								 | 
							
								        var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);
							 | 
						|||
| 
								 | 
							
								        var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);
							 | 
						|||
| 
								 | 
							
								        var headerLength = 24;
							 | 
						|||
| 
								 | 
							
								        var index = slice16(view16, headerLength / 2, view32[4] / 2);
							 | 
						|||
| 
								 | 
							
								        var data = view32[5] === 2
							 | 
						|||
| 
								 | 
							
								            ? slice16(view16, (headerLength + view32[4]) / 2)
							 | 
						|||
| 
								 | 
							
								            : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));
							 | 
						|||
| 
								 | 
							
								        return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var Trie = /** @class */ (function () {
							 | 
						|||
| 
								 | 
							
								        function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {
							 | 
						|||
| 
								 | 
							
								            this.initialValue = initialValue;
							 | 
						|||
| 
								 | 
							
								            this.errorValue = errorValue;
							 | 
						|||
| 
								 | 
							
								            this.highStart = highStart;
							 | 
						|||
| 
								 | 
							
								            this.highValueIndex = highValueIndex;
							 | 
						|||
| 
								 | 
							
								            this.index = index;
							 | 
						|||
| 
								 | 
							
								            this.data = data;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /**
							 | 
						|||
| 
								 | 
							
								         * Get the value for a code point as stored in the Trie.
							 | 
						|||
| 
								 | 
							
								         *
							 | 
						|||
| 
								 | 
							
								         * @param codePoint the code point
							 | 
						|||
| 
								 | 
							
								         * @return the value
							 | 
						|||
| 
								 | 
							
								         */
							 | 
						|||
| 
								 | 
							
								        Trie.prototype.get = function (codePoint) {
							 | 
						|||
| 
								 | 
							
								            var ix;
							 | 
						|||
| 
								 | 
							
								            if (codePoint >= 0) {
							 | 
						|||
| 
								 | 
							
								                if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {
							 | 
						|||
| 
								 | 
							
								                    // Ordinary BMP code point, excluding leading surrogates.
							 | 
						|||
| 
								 | 
							
								                    // BMP uses a single level lookup.  BMP index starts at offset 0 in the Trie2 index.
							 | 
						|||
| 
								 | 
							
								                    // 16 bit data is stored in the index array itself.
							 | 
						|||
| 
								 | 
							
								                    ix = this.index[codePoint >> UTRIE2_SHIFT_2];
							 | 
						|||
| 
								 | 
							
								                    ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);
							 | 
						|||
| 
								 | 
							
								                    return this.data[ix];
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (codePoint <= 0xffff) {
							 | 
						|||
| 
								 | 
							
								                    // Lead Surrogate Code Point.  A Separate index section is stored for
							 | 
						|||
| 
								 | 
							
								                    // lead surrogate code units and code points.
							 | 
						|||
| 
								 | 
							
								                    //   The main index has the code unit data.
							 | 
						|||
| 
								 | 
							
								                    //   For this function, we need the code point data.
							 | 
						|||
| 
								 | 
							
								                    // Note: this expression could be refactored for slightly improved efficiency, but
							 | 
						|||
| 
								 | 
							
								                    //       surrogate code points will be so rare in practice that it's not worth it.
							 | 
						|||
| 
								 | 
							
								                    ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];
							 | 
						|||
| 
								 | 
							
								                    ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);
							 | 
						|||
| 
								 | 
							
								                    return this.data[ix];
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (codePoint < this.highStart) {
							 | 
						|||
| 
								 | 
							
								                    // Supplemental code point, use two-level lookup.
							 | 
						|||
| 
								 | 
							
								                    ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);
							 | 
						|||
| 
								 | 
							
								                    ix = this.index[ix];
							 | 
						|||
| 
								 | 
							
								                    ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;
							 | 
						|||
| 
								 | 
							
								                    ix = this.index[ix];
							 | 
						|||
| 
								 | 
							
								                    ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);
							 | 
						|||
| 
								 | 
							
								                    return this.data[ix];
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (codePoint <= 0x10ffff) {
							 | 
						|||
| 
								 | 
							
								                    return this.data[this.highValueIndex];
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            // Fall through.  The code point is outside of the legal range of 0..0x10ffff.
							 | 
						|||
| 
								 | 
							
								            return this.errorValue;
							 | 
						|||
| 
								 | 
							
								        };
							 | 
						|||
| 
								 | 
							
								        return Trie;
							 | 
						|||
| 
								 | 
							
								    }());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    /*
							 | 
						|||
| 
								 | 
							
								     * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>
							 | 
						|||
| 
								 | 
							
								     * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
							 | 
						|||
| 
								 | 
							
								     * Released under MIT License
							 | 
						|||
| 
								 | 
							
								     */
							 | 
						|||
| 
								 | 
							
								    var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
							 | 
						|||
| 
								 | 
							
								    // Use a lookup table to find the index.
							 | 
						|||
| 
								 | 
							
								    var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
							 | 
						|||
| 
								 | 
							
								    for (var i = 0; i < chars.length; i++) {
							 | 
						|||
| 
								 | 
							
								        lookup[chars.charCodeAt(i)] = i;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    var base64 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjC
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    var LETTER_NUMBER_MODIFIER = 50;
							 | 
						|||
| 
								 | 
							
								    // Non-tailorable Line Breaking Classes
							 | 
						|||
| 
								 | 
							
								    var BK = 1; //  Cause a line break (after)
							 | 
						|||
| 
								 | 
							
								    var CR = 2; //  Cause a line break (after), except between CR and LF
							 | 
						|||
| 
								 | 
							
								    var LF = 3; //  Cause a line break (after)
							 | 
						|||
| 
								 | 
							
								    var CM = 4; //  Prohibit a line break between the character and the preceding character
							 | 
						|||
| 
								 | 
							
								    var NL = 5; //  Cause a line break (after)
							 | 
						|||
| 
								 | 
							
								    var WJ = 7; //  Prohibit line breaks before and after
							 | 
						|||
| 
								 | 
							
								    var ZW = 8; //  Provide a break opportunity
							 | 
						|||
| 
								 | 
							
								    var GL = 9; //  Prohibit line breaks before and after
							 | 
						|||
| 
								 | 
							
								    var SP = 10; // Enable indirect line breaks
							 | 
						|||
| 
								 | 
							
								    var ZWJ = 11; // Prohibit line breaks within joiner sequences
							 | 
						|||
| 
								 | 
							
								    // Break Opportunities
							 | 
						|||
| 
								 | 
							
								    var B2 = 12; //  Provide a line break opportunity before and after the character
							 | 
						|||
| 
								 | 
							
								    var BA = 13; //  Generally provide a line break opportunity after the character
							 | 
						|||
| 
								 | 
							
								    var BB = 14; //  Generally provide a line break opportunity before the character
							 | 
						|||
| 
								 | 
							
								    var HY = 15; //  Provide a line break opportunity after the character, except in numeric context
							 | 
						|||
| 
								 | 
							
								    var CB = 16; //   Provide a line break opportunity contingent on additional information
							 | 
						|||
| 
								 | 
							
								    // Characters Prohibiting Certain Breaks
							 | 
						|||
| 
								 | 
							
								    var CL = 17; //  Prohibit line breaks before
							 | 
						|||
| 
								 | 
							
								    var CP = 18; //  Prohibit line breaks before
							 | 
						|||
| 
								 | 
							
								    var EX = 19; //  Prohibit line breaks before
							 | 
						|||
| 
								 | 
							
								    var IN = 20; //  Allow only indirect line breaks between pairs
							 | 
						|||
| 
								 | 
							
								    var NS = 21; //  Allow only indirect line breaks before
							 | 
						|||
| 
								 | 
							
								    var OP = 22; //  Prohibit line breaks after
							 | 
						|||
| 
								 | 
							
								    var QU = 23; //  Act like they are both opening and closing
							 | 
						|||
| 
								 | 
							
								    // Numeric Context
							 | 
						|||
| 
								 | 
							
								    var IS = 24; //  Prevent breaks after any and before numeric
							 | 
						|||
| 
								 | 
							
								    var NU = 25; //  Form numeric expressions for line breaking purposes
							 | 
						|||
| 
								 | 
							
								    var PO = 26; //  Do not break following a numeric expression
							 | 
						|||
| 
								 | 
							
								    var PR = 27; //  Do not break in front of a numeric expression
							 | 
						|||
| 
								 | 
							
								    var SY = 28; //  Prevent a break before; and allow a break after
							 | 
						|||
| 
								 | 
							
								    // Other Characters
							 | 
						|||
| 
								 | 
							
								    var AI = 29; //  Act like AL when the resolvedEAW is N; otherwise; act as ID
							 | 
						|||
| 
								 | 
							
								    var AL = 30; //  Are alphabetic characters or symbols that are used with alphabetic characters
							 | 
						|||
| 
								 | 
							
								    var CJ = 31; //  Treat as NS or ID for strict or normal breaking.
							 | 
						|||
| 
								 | 
							
								    var EB = 32; //  Do not break from following Emoji Modifier
							 | 
						|||
| 
								 | 
							
								    var EM = 33; //  Do not break from preceding Emoji Base
							 | 
						|||
| 
								 | 
							
								    var H2 = 34; //  Form Korean syllable blocks
							 | 
						|||
| 
								 | 
							
								    var H3 = 35; //  Form Korean syllable blocks
							 | 
						|||
| 
								 | 
							
								    var HL = 36; //  Do not break around a following hyphen; otherwise act as Alphabetic
							 | 
						|||
| 
								 | 
							
								    var ID = 37; //  Break before or after; except in some numeric context
							 | 
						|||
| 
								 | 
							
								    var JL = 38; //  Form Korean syllable blocks
							 | 
						|||
| 
								 | 
							
								    var JV = 39; //  Form Korean syllable blocks
							 | 
						|||
| 
								 | 
							
								    var JT = 40; //  Form Korean syllable blocks
							 | 
						|||
| 
								 | 
							
								    var RI = 41; //  Keep pairs together. For pairs; break before and after other classes
							 | 
						|||
| 
								 | 
							
								    var SA = 42; //  Provide a line break opportunity contingent on additional, language-specific context analysis
							 | 
						|||
| 
								 | 
							
								    var XX = 43; //  Have as yet unknown line breaking behavior or unassigned code positions
							 | 
						|||
| 
								 | 
							
								    var ea_OP = [0x2329, 0xff08];
							 | 
						|||
| 
								 | 
							
								    var BREAK_MANDATORY = '!';
							 | 
						|||
| 
								 | 
							
								    var BREAK_NOT_ALLOWED = '×';
							 | 
						|||
| 
								 | 
							
								    var BREAK_ALLOWED = '÷';
							 | 
						|||
| 
								 | 
							
								    var UnicodeTrie = createTrieFromBase64(base64);
							 | 
						|||
| 
								 | 
							
								    var ALPHABETICS = [AL, HL];
							 | 
						|||
| 
								 | 
							
								    var HARD_LINE_BREAKS = [BK, CR, LF, NL];
							 | 
						|||
| 
								 | 
							
								    var SPACE = [SP, ZW];
							 | 
						|||
| 
								 | 
							
								    var PREFIX_POSTFIX = [PR, PO];
							 | 
						|||
| 
								 | 
							
								    var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);
							 | 
						|||
| 
								 | 
							
								    var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];
							 | 
						|||
| 
								 | 
							
								    var HYPHEN = [HY, BA];
							 | 
						|||
| 
								 | 
							
								    var codePointsToCharacterClasses = function (codePoints, lineBreak) {
							 | 
						|||
| 
								 | 
							
								        if (lineBreak === void 0) { lineBreak = 'strict'; }
							 | 
						|||
| 
								 | 
							
								        var types = [];
							 | 
						|||
| 
								 | 
							
								        var indices = [];
							 | 
						|||
| 
								 | 
							
								        var categories = [];
							 | 
						|||
| 
								 | 
							
								        codePoints.forEach(function (codePoint, index) {
							 | 
						|||
| 
								 | 
							
								            var classType = UnicodeTrie.get(codePoint);
							 | 
						|||
| 
								 | 
							
								            if (classType > LETTER_NUMBER_MODIFIER) {
							 | 
						|||
| 
								 | 
							
								                categories.push(true);
							 | 
						|||
| 
								 | 
							
								                classType -= LETTER_NUMBER_MODIFIER;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else {
							 | 
						|||
| 
								 | 
							
								                categories.push(false);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {
							 | 
						|||
| 
								 | 
							
								                // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0
							 | 
						|||
| 
								 | 
							
								                if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {
							 | 
						|||
| 
								 | 
							
								                    indices.push(index);
							 | 
						|||
| 
								 | 
							
								                    return types.push(CB);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (classType === CM || classType === ZWJ) {
							 | 
						|||
| 
								 | 
							
								                // LB10 Treat any remaining combining mark or ZWJ as AL.
							 | 
						|||
| 
								 | 
							
								                if (index === 0) {
							 | 
						|||
| 
								 | 
							
								                    indices.push(index);
							 | 
						|||
| 
								 | 
							
								                    return types.push(AL);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of
							 | 
						|||
| 
								 | 
							
								                // the base character in all of the following rules. Treat ZWJ as if it were CM.
							 | 
						|||
| 
								 | 
							
								                var prev = types[index - 1];
							 | 
						|||
| 
								 | 
							
								                if (LINE_BREAKS.indexOf(prev) === -1) {
							 | 
						|||
| 
								 | 
							
								                    indices.push(indices[index - 1]);
							 | 
						|||
| 
								 | 
							
								                    return types.push(prev);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                indices.push(index);
							 | 
						|||
| 
								 | 
							
								                return types.push(AL);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            indices.push(index);
							 | 
						|||
| 
								 | 
							
								            if (classType === CJ) {
							 | 
						|||
| 
								 | 
							
								                return types.push(lineBreak === 'strict' ? NS : ID);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (classType === SA) {
							 | 
						|||
| 
								 | 
							
								                return types.push(AL);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (classType === AI) {
							 | 
						|||
| 
								 | 
							
								                return types.push(AL);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL
							 | 
						|||
| 
								 | 
							
								            // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised
							 | 
						|||
| 
								 | 
							
								            // to take into account the actual line breaking properties for these characters.
							 | 
						|||
| 
								 | 
							
								            if (classType === XX) {
							 | 
						|||
| 
								 | 
							
								                if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {
							 | 
						|||
| 
								 | 
							
								                    return types.push(ID);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else {
							 | 
						|||
| 
								 | 
							
								                    return types.push(AL);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            types.push(classType);
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								        return [indices, types, categories];
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {
							 | 
						|||
| 
								 | 
							
								        var current = classTypes[currentIndex];
							 | 
						|||
| 
								 | 
							
								        if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {
							 | 
						|||
| 
								 | 
							
								            var i = currentIndex;
							 | 
						|||
| 
								 | 
							
								            while (i <= classTypes.length) {
							 | 
						|||
| 
								 | 
							
								                i++;
							 | 
						|||
| 
								 | 
							
								                var next = classTypes[i];
							 | 
						|||
| 
								 | 
							
								                if (next === b) {
							 | 
						|||
| 
								 | 
							
								                    return true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (next !== SP) {
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        if (current === SP) {
							 | 
						|||
| 
								 | 
							
								            var i = currentIndex;
							 | 
						|||
| 
								 | 
							
								            while (i > 0) {
							 | 
						|||
| 
								 | 
							
								                i--;
							 | 
						|||
| 
								 | 
							
								                var prev = classTypes[i];
							 | 
						|||
| 
								 | 
							
								                if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {
							 | 
						|||
| 
								 | 
							
								                    var n = currentIndex;
							 | 
						|||
| 
								 | 
							
								                    while (n <= classTypes.length) {
							 | 
						|||
| 
								 | 
							
								                        n++;
							 | 
						|||
| 
								 | 
							
								                        var next = classTypes[n];
							 | 
						|||
| 
								 | 
							
								                        if (next === b) {
							 | 
						|||
| 
								 | 
							
								                            return true;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (next !== SP) {
							 | 
						|||
| 
								 | 
							
								                            break;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (prev !== SP) {
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return false;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var previousNonSpaceClassType = function (currentIndex, classTypes) {
							 | 
						|||
| 
								 | 
							
								        var i = currentIndex;
							 | 
						|||
| 
								 | 
							
								        while (i >= 0) {
							 | 
						|||
| 
								 | 
							
								            var type = classTypes[i];
							 | 
						|||
| 
								 | 
							
								            if (type === SP) {
							 | 
						|||
| 
								 | 
							
								                i--;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else {
							 | 
						|||
| 
								 | 
							
								                return type;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return 0;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {
							 | 
						|||
| 
								 | 
							
								        if (indicies[index] === 0) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        var currentIndex = index - 1;
							 | 
						|||
| 
								 | 
							
								        if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        var beforeIndex = currentIndex - 1;
							 | 
						|||
| 
								 | 
							
								        var afterIndex = currentIndex + 1;
							 | 
						|||
| 
								 | 
							
								        var current = classTypes[currentIndex];
							 | 
						|||
| 
								 | 
							
								        // LB4 Always break after hard line breaks.
							 | 
						|||
| 
								 | 
							
								        // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.
							 | 
						|||
| 
								 | 
							
								        var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;
							 | 
						|||
| 
								 | 
							
								        var next = classTypes[afterIndex];
							 | 
						|||
| 
								 | 
							
								        if (current === CR && next === LF) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        if (HARD_LINE_BREAKS.indexOf(current) !== -1) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_MANDATORY;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB6 Do not break before hard line breaks.
							 | 
						|||
| 
								 | 
							
								        if (HARD_LINE_BREAKS.indexOf(next) !== -1) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB7 Do not break before spaces or zero width space.
							 | 
						|||
| 
								 | 
							
								        if (SPACE.indexOf(next) !== -1) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.
							 | 
						|||
| 
								 | 
							
								        if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB8a Do not break after a zero width joiner.
							 | 
						|||
| 
								 | 
							
								        if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // zwj emojis
							 | 
						|||
| 
								 | 
							
								        if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB11 Do not break before or after Word joiner and related characters.
							 | 
						|||
| 
								 | 
							
								        if (current === WJ || next === WJ) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB12 Do not break after NBSP and related characters.
							 | 
						|||
| 
								 | 
							
								        if (current === GL) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.
							 | 
						|||
| 
								 | 
							
								        if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.
							 | 
						|||
| 
								 | 
							
								        if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB14 Do not break after ‘[’, even after spaces.
							 | 
						|||
| 
								 | 
							
								        if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB15 Do not break within ‘”[’, even with intervening spaces.
							 | 
						|||
| 
								 | 
							
								        if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.
							 | 
						|||
| 
								 | 
							
								        if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB17 Do not break within ‘——’, even with intervening spaces.
							 | 
						|||
| 
								 | 
							
								        if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB18 Break after spaces.
							 | 
						|||
| 
								 | 
							
								        if (current === SP) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB19 Do not break before or after quotation marks, such as ‘ ” ’.
							 | 
						|||
| 
								 | 
							
								        if (current === QU || next === QU) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB20 Break before and after unresolved CB.
							 | 
						|||
| 
								 | 
							
								        if (next === CB || current === CB) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.
							 | 
						|||
| 
								 | 
							
								        if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB21a Don't break after Hebrew + Hyphen.
							 | 
						|||
| 
								 | 
							
								        if (before === HL && HYPHEN.indexOf(current) !== -1) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB21b Don’t break between Solidus and Hebrew letters.
							 | 
						|||
| 
								 | 
							
								        if (current === SY && next === HL) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB22 Do not break before ellipsis.
							 | 
						|||
| 
								 | 
							
								        if (next === IN) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB23 Do not break between digits and letters.
							 | 
						|||
| 
								 | 
							
								        if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.
							 | 
						|||
| 
								 | 
							
								        if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||
							 | 
						|||
| 
								 | 
							
								            ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.
							 | 
						|||
| 
								 | 
							
								        if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||
							 | 
						|||
| 
								 | 
							
								            (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB25 Do not break between the following pairs of classes relevant to numbers:
							 | 
						|||
| 
								 | 
							
								        if (
							 | 
						|||
| 
								 | 
							
								        // (PR | PO) × ( OP | HY )? NU
							 | 
						|||
| 
								 | 
							
								        ([PR, PO].indexOf(current) !== -1 &&
							 | 
						|||
| 
								 | 
							
								            (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||
							 | 
						|||
| 
								 | 
							
								            // ( OP | HY ) × NU
							 | 
						|||
| 
								 | 
							
								            ([OP, HY].indexOf(current) !== -1 && next === NU) ||
							 | 
						|||
| 
								 | 
							
								            // NU ×	(NU | SY | IS)
							 | 
						|||
| 
								 | 
							
								            (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)
							 | 
						|||
| 
								 | 
							
								        if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {
							 | 
						|||
| 
								 | 
							
								            var prevIndex = currentIndex;
							 | 
						|||
| 
								 | 
							
								            while (prevIndex >= 0) {
							 | 
						|||
| 
								 | 
							
								                var type = classTypes[prevIndex];
							 | 
						|||
| 
								 | 
							
								                if (type === NU) {
							 | 
						|||
| 
								 | 
							
								                    return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if ([SY, IS].indexOf(type) !== -1) {
							 | 
						|||
| 
								 | 
							
								                    prevIndex--;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else {
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))
							 | 
						|||
| 
								 | 
							
								        if ([PR, PO].indexOf(next) !== -1) {
							 | 
						|||
| 
								 | 
							
								            var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;
							 | 
						|||
| 
								 | 
							
								            while (prevIndex >= 0) {
							 | 
						|||
| 
								 | 
							
								                var type = classTypes[prevIndex];
							 | 
						|||
| 
								 | 
							
								                if (type === NU) {
							 | 
						|||
| 
								 | 
							
								                    return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if ([SY, IS].indexOf(type) !== -1) {
							 | 
						|||
| 
								 | 
							
								                    prevIndex--;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else {
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB26 Do not break a Korean syllable.
							 | 
						|||
| 
								 | 
							
								        if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||
							 | 
						|||
| 
								 | 
							
								            ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||
							 | 
						|||
| 
								 | 
							
								            ([JT, H3].indexOf(current) !== -1 && next === JT)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB27 Treat a Korean Syllable Block the same as ID.
							 | 
						|||
| 
								 | 
							
								        if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||
							 | 
						|||
| 
								 | 
							
								            (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB28 Do not break between alphabetics (“at”).
							 | 
						|||
| 
								 | 
							
								        if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).
							 | 
						|||
| 
								 | 
							
								        if (current === IS && ALPHABETICS.indexOf(next) !== -1) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.
							 | 
						|||
| 
								 | 
							
								        if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&
							 | 
						|||
| 
								 | 
							
								            next === OP &&
							 | 
						|||
| 
								 | 
							
								            ea_OP.indexOf(codePoints[afterIndex]) === -1) ||
							 | 
						|||
| 
								 | 
							
								            (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB30a Break between two regional indicator symbols if and only if there are an even number of regional
							 | 
						|||
| 
								 | 
							
								        // indicators preceding the position of the break.
							 | 
						|||
| 
								 | 
							
								        if (current === RI && next === RI) {
							 | 
						|||
| 
								 | 
							
								            var i = indicies[currentIndex];
							 | 
						|||
| 
								 | 
							
								            var count = 1;
							 | 
						|||
| 
								 | 
							
								            while (i > 0) {
							 | 
						|||
| 
								 | 
							
								                i--;
							 | 
						|||
| 
								 | 
							
								                if (classTypes[i] === RI) {
							 | 
						|||
| 
								 | 
							
								                    count++;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else {
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (count % 2 !== 0) {
							 | 
						|||
| 
								 | 
							
								                return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // LB30b Do not break between an emoji base and an emoji modifier.
							 | 
						|||
| 
								 | 
							
								        if (current === EB && next === EM) {
							 | 
						|||
| 
								 | 
							
								            return BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return BREAK_ALLOWED;
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var cssFormattedClasses = function (codePoints, options) {
							 | 
						|||
| 
								 | 
							
								        if (!options) {
							 | 
						|||
| 
								 | 
							
								            options = { lineBreak: 'normal', wordBreak: 'normal' };
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];
							 | 
						|||
| 
								 | 
							
								        if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {
							 | 
						|||
| 
								 | 
							
								            classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        var forbiddenBreakpoints = options.wordBreak === 'keep-all'
							 | 
						|||
| 
								 | 
							
								            ? isLetterNumber.map(function (letterNumber, i) {
							 | 
						|||
| 
								 | 
							
								                return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;
							 | 
						|||
| 
								 | 
							
								            })
							 | 
						|||
| 
								 | 
							
								            : undefined;
							 | 
						|||
| 
								 | 
							
								        return [indicies, classTypes, forbiddenBreakpoints];
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								    var Break = /** @class */ (function () {
							 | 
						|||
| 
								 | 
							
								        function Break(codePoints, lineBreak, start, end) {
							 | 
						|||
| 
								 | 
							
								            this.codePoints = codePoints;
							 | 
						|||
| 
								 | 
							
								            this.required = lineBreak === BREAK_MANDATORY;
							 | 
						|||
| 
								 | 
							
								            this.start = start;
							 | 
						|||
| 
								 | 
							
								            this.end = end;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        Break.prototype.slice = function () {
							 | 
						|||
| 
								 | 
							
								            return fromCodePoint.apply(void 0, this.codePoints.slice(this.start, this.end));
							 | 
						|||
| 
								 | 
							
								        };
							 | 
						|||
| 
								 | 
							
								        return Break;
							 | 
						|||
| 
								 | 
							
								    }());
							 | 
						|||
| 
								 | 
							
								    var LineBreaker = function (str, options) {
							 | 
						|||
| 
								 | 
							
								        var codePoints = toCodePoints(str);
							 | 
						|||
| 
								 | 
							
								        var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];
							 | 
						|||
| 
								 | 
							
								        var length = codePoints.length;
							 | 
						|||
| 
								 | 
							
								        var lastEnd = 0;
							 | 
						|||
| 
								 | 
							
								        var nextIndex = 0;
							 | 
						|||
| 
								 | 
							
								        return {
							 | 
						|||
| 
								 | 
							
								            next: function () {
							 | 
						|||
| 
								 | 
							
								                if (nextIndex >= length) {
							 | 
						|||
| 
								 | 
							
								                    return { done: true, value: null };
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var lineBreak = BREAK_NOT_ALLOWED;
							 | 
						|||
| 
								 | 
							
								                while (nextIndex < length &&
							 | 
						|||
| 
								 | 
							
								                    (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===
							 | 
						|||
| 
								 | 
							
								                        BREAK_NOT_ALLOWED) { }
							 | 
						|||
| 
								 | 
							
								                if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {
							 | 
						|||
| 
								 | 
							
								                    var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);
							 | 
						|||
| 
								 | 
							
								                    lastEnd = nextIndex;
							 | 
						|||
| 
								 | 
							
								                    return { value: value, done: false };
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return { done: true, value: null };
							 | 
						|||
| 
								 | 
							
								            },
							 | 
						|||
| 
								 | 
							
								        };
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    exports.LineBreaker = LineBreaker;
							 | 
						|||
| 
								 | 
							
								    exports.fromCodePoint = fromCodePoint;
							 | 
						|||
| 
								 | 
							
								    exports.toCodePoints = toCodePoints;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    Object.defineProperty(exports, '__esModule', { value: true });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								})));
							 | 
						|||
| 
								 | 
							
								//# sourceMappingURL=css-line-break.umd.js.map
							 |