@react-three/drei 10.8.0-alpha.1 → 11.0.0-alpha.3
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/core/index.d.mts +1858 -0
- package/core/index.d.ts +1858 -0
- package/core/index.mjs +8559 -0
- package/experimental/index.d.mts +222 -0
- package/experimental/index.d.ts +222 -0
- package/experimental/index.mjs +353 -0
- package/external/index.d.mts +464 -0
- package/external/index.d.ts +464 -0
- package/external/index.mjs +5079 -0
- package/index.d.mts +1746 -2147
- package/index.d.ts +2166 -0
- package/index.mjs +12940 -19766
- package/legacy/index.d.mts +2350 -0
- package/legacy/index.d.ts +2350 -0
- package/legacy/index.mjs +12326 -0
- package/native/index.d.mts +2515 -0
- package/native/index.d.ts +2515 -0
- package/native/index.mjs +12383 -0
- package/package.json +18 -15
- package/webgpu/index.d.mts +2514 -0
- package/webgpu/index.d.ts +2514 -0
- package/webgpu/index.mjs +12547 -0
- package/_chunks/hls.mjs +0 -3
- package/_chunks/libs/@mediapipe/tasks-vision.mjs +0 -4781
- package/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
- package/_chunks/libs/@use-gesture/core.mjs +0 -1650
- package/_chunks/libs/@use-gesture/react.mjs +0 -207
- package/_chunks/libs/camera-controls.mjs +0 -2207
- package/_chunks/libs/detect-gpu.mjs +0 -515
- package/_chunks/libs/hls.js.mjs +0 -21925
- package/_chunks/libs/maath.mjs +0 -5200
- package/_chunks/libs/stats-gl.mjs +0 -301
- package/_chunks/libs/stats.js.mjs +0 -90
- package/_chunks/libs/suspend-react.mjs +0 -60
- package/_chunks/libs/three.mjs +0 -23169
- package/_chunks/libs/tunnel-rat.mjs +0 -458
- package/_chunks/libs/zustand.mjs +0 -104
- package/_chunks/rolldown-runtime.mjs +0 -47
- package/_chunks/vision_bundle.mjs +0 -3
- package/core/_chunks/hls.mjs +0 -3
- package/core/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
- package/core/_chunks/libs/@use-gesture/core.mjs +0 -1650
- package/core/_chunks/libs/@use-gesture/react.mjs +0 -207
- package/core/_chunks/libs/detect-gpu.mjs +0 -515
- package/core/_chunks/libs/hls.js.mjs +0 -21925
- package/core/_chunks/libs/maath.mjs +0 -5200
- package/core/_chunks/libs/stats-gl.mjs +0 -301
- package/core/_chunks/libs/stats.js.mjs +0 -90
- package/core/_chunks/libs/suspend-react.mjs +0 -60
- package/core/_chunks/libs/three.mjs +0 -22457
- package/core/_chunks/libs/tunnel-rat.mjs +0 -458
- package/core/_chunks/libs/zustand.mjs +0 -104
- package/core/_chunks/rolldown-runtime.mjs +0 -47
- package/core/core/index.d.mts +0 -2232
- package/core/core/index.mjs +0 -11082
- package/experimental/_chunks/libs/three.mjs +0 -15386
- package/experimental/experimental/index.d.mts +0 -253
- package/experimental/experimental/index.mjs +0 -434
- package/external/_chunks/hls.mjs +0 -3
- package/external/_chunks/libs/@mediapipe/tasks-vision.mjs +0 -4781
- package/external/_chunks/libs/camera-controls.mjs +0 -2207
- package/external/_chunks/libs/hls.js.mjs +0 -21925
- package/external/_chunks/libs/maath.mjs +0 -5200
- package/external/_chunks/libs/suspend-react.mjs +0 -58
- package/external/_chunks/libs/three.mjs +0 -15387
- package/external/_chunks/rolldown-runtime.mjs +0 -32
- package/external/_chunks/vision_bundle.mjs +0 -3
- package/external/external/index.d.mts +0 -499
- package/external/external/index.mjs +0 -9422
- package/legacy/_chunks/hls.mjs +0 -3
- package/legacy/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
- package/legacy/_chunks/libs/@use-gesture/core.mjs +0 -1650
- package/legacy/_chunks/libs/@use-gesture/react.mjs +0 -207
- package/legacy/_chunks/libs/bidi-js.mjs +0 -675
- package/legacy/_chunks/libs/detect-gpu.mjs +0 -515
- package/legacy/_chunks/libs/hls.js.mjs +0 -21925
- package/legacy/_chunks/libs/maath.mjs +0 -5200
- package/legacy/_chunks/libs/stats-gl.mjs +0 -301
- package/legacy/_chunks/libs/stats.js.mjs +0 -90
- package/legacy/_chunks/libs/suspend-react.mjs +0 -60
- package/legacy/_chunks/libs/three.mjs +0 -26062
- package/legacy/_chunks/libs/troika-three-text.mjs +0 -6494
- package/legacy/_chunks/libs/tunnel-rat.mjs +0 -458
- package/legacy/_chunks/libs/zustand.mjs +0 -104
- package/legacy/_chunks/rolldown-runtime.mjs +0 -47
- package/legacy/legacy/index.d.mts +0 -2788
- package/legacy/legacy/index.mjs +0 -14984
- package/native/_chunks/hls.mjs +0 -3
- package/native/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
- package/native/_chunks/libs/@use-gesture/core.mjs +0 -1650
- package/native/_chunks/libs/@use-gesture/react.mjs +0 -207
- package/native/_chunks/libs/detect-gpu.mjs +0 -515
- package/native/_chunks/libs/hls.js.mjs +0 -21925
- package/native/_chunks/libs/maath.mjs +0 -5200
- package/native/_chunks/libs/stats-gl.mjs +0 -301
- package/native/_chunks/libs/stats.js.mjs +0 -90
- package/native/_chunks/libs/suspend-react.mjs +0 -60
- package/native/_chunks/libs/three.mjs +0 -22592
- package/native/_chunks/libs/tunnel-rat.mjs +0 -458
- package/native/_chunks/libs/zustand.mjs +0 -104
- package/native/_chunks/rolldown-runtime.mjs +0 -47
- package/native/native/index.d.mts +0 -3168
- package/native/native/index.mjs +0 -14863
- package/webgpu/_chunks/hls.mjs +0 -3
- package/webgpu/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
- package/webgpu/_chunks/libs/@use-gesture/core.mjs +0 -1650
- package/webgpu/_chunks/libs/@use-gesture/react.mjs +0 -207
- package/webgpu/_chunks/libs/detect-gpu.mjs +0 -515
- package/webgpu/_chunks/libs/hls.js.mjs +0 -21925
- package/webgpu/_chunks/libs/maath.mjs +0 -5200
- package/webgpu/_chunks/libs/stats-gl.mjs +0 -301
- package/webgpu/_chunks/libs/stats.js.mjs +0 -90
- package/webgpu/_chunks/libs/suspend-react.mjs +0 -60
- package/webgpu/_chunks/libs/three.mjs +0 -22592
- package/webgpu/_chunks/libs/tunnel-rat.mjs +0 -458
- package/webgpu/_chunks/libs/zustand.mjs +0 -104
- package/webgpu/_chunks/rolldown-runtime.mjs +0 -47
- package/webgpu/webgpu/index.d.mts +0 -3166
- package/webgpu/webgpu/index.mjs +0 -15015
|
@@ -1,675 +0,0 @@
|
|
|
1
|
-
import { t as __commonJSMin } from "../rolldown-runtime.mjs";
|
|
2
|
-
|
|
3
|
-
//#region node_modules/bidi-js/dist/bidi.js
|
|
4
|
-
var require_bidi = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
5
|
-
(function(global, factory) {
|
|
6
|
-
typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, global.bidi_js = factory());
|
|
7
|
-
})(exports, (function() {
|
|
8
|
-
"use strict";
|
|
9
|
-
function bidiFactory() {
|
|
10
|
-
return function(exports$1) {
|
|
11
|
-
var DATA = {
|
|
12
|
-
"R": "13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73",
|
|
13
|
-
"EN": "1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9",
|
|
14
|
-
"ES": "17,2,6dp+1,f+1,av,16vr,mx+1,4o,2",
|
|
15
|
-
"ET": "z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj",
|
|
16
|
-
"AN": "16o+5,2j+9,2+1,35,ed,1ff2+9,87+u",
|
|
17
|
-
"CS": "18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b",
|
|
18
|
-
"B": "a,3,f+2,2v,690",
|
|
19
|
-
"S": "9,2,k",
|
|
20
|
-
"WS": "c,k,4f4,1vk+a,u,1j,335",
|
|
21
|
-
"ON": "x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i",
|
|
22
|
-
"BN": "0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1",
|
|
23
|
-
"NSM": "lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n",
|
|
24
|
-
"AL": "16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d",
|
|
25
|
-
"LRO": "6ct",
|
|
26
|
-
"RLO": "6cu",
|
|
27
|
-
"LRE": "6cq",
|
|
28
|
-
"RLE": "6cr",
|
|
29
|
-
"PDF": "6cs",
|
|
30
|
-
"LRI": "6ee",
|
|
31
|
-
"RLI": "6ef",
|
|
32
|
-
"FSI": "6eg",
|
|
33
|
-
"PDI": "6eh"
|
|
34
|
-
};
|
|
35
|
-
var TYPES = {};
|
|
36
|
-
var TYPES_TO_NAMES = {};
|
|
37
|
-
TYPES.L = 1;
|
|
38
|
-
TYPES_TO_NAMES[1] = "L";
|
|
39
|
-
Object.keys(DATA).forEach(function(type, i) {
|
|
40
|
-
TYPES[type] = 1 << i + 1;
|
|
41
|
-
TYPES_TO_NAMES[TYPES[type]] = type;
|
|
42
|
-
});
|
|
43
|
-
Object.freeze(TYPES);
|
|
44
|
-
var ISOLATE_INIT_TYPES = TYPES.LRI | TYPES.RLI | TYPES.FSI;
|
|
45
|
-
var STRONG_TYPES = TYPES.L | TYPES.R | TYPES.AL;
|
|
46
|
-
var NEUTRAL_ISOLATE_TYPES = TYPES.B | TYPES.S | TYPES.WS | TYPES.ON | TYPES.FSI | TYPES.LRI | TYPES.RLI | TYPES.PDI;
|
|
47
|
-
var BN_LIKE_TYPES = TYPES.BN | TYPES.RLE | TYPES.LRE | TYPES.RLO | TYPES.LRO | TYPES.PDF;
|
|
48
|
-
var TRAILING_TYPES = TYPES.S | TYPES.WS | TYPES.B | ISOLATE_INIT_TYPES | TYPES.PDI | BN_LIKE_TYPES;
|
|
49
|
-
var map = null;
|
|
50
|
-
function parseData() {
|
|
51
|
-
if (!map) {
|
|
52
|
-
map = /* @__PURE__ */ new Map();
|
|
53
|
-
var loop = function(type$1) {
|
|
54
|
-
if (DATA.hasOwnProperty(type$1)) {
|
|
55
|
-
var lastCode = 0;
|
|
56
|
-
DATA[type$1].split(",").forEach(function(range) {
|
|
57
|
-
var ref = range.split("+");
|
|
58
|
-
var skip = ref[0];
|
|
59
|
-
var step = ref[1];
|
|
60
|
-
skip = parseInt(skip, 36);
|
|
61
|
-
step = step ? parseInt(step, 36) : 0;
|
|
62
|
-
map.set(lastCode += skip, TYPES[type$1]);
|
|
63
|
-
for (var i = 0; i < step; i++) map.set(++lastCode, TYPES[type$1]);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
for (var type in DATA) loop(type);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* @param {string} char
|
|
72
|
-
* @return {number}
|
|
73
|
-
*/
|
|
74
|
-
function getBidiCharType(char) {
|
|
75
|
-
parseData();
|
|
76
|
-
return map.get(char.codePointAt(0)) || TYPES.L;
|
|
77
|
-
}
|
|
78
|
-
function getBidiCharTypeName(char) {
|
|
79
|
-
return TYPES_TO_NAMES[getBidiCharType(char)];
|
|
80
|
-
}
|
|
81
|
-
var data$1 = {
|
|
82
|
-
"pairs": "14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",
|
|
83
|
-
"canonical": "6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Parses an string that holds encoded codepoint mappings, e.g. for bracket pairs or
|
|
87
|
-
* mirroring characters, as encoded by scripts/generateBidiData.js. Returns an object
|
|
88
|
-
* holding the `map`, and optionally a `reverseMap` if `includeReverse:true`.
|
|
89
|
-
* @param {string} encodedString
|
|
90
|
-
* @param {boolean} includeReverse - true if you want reverseMap in the output
|
|
91
|
-
* @return {{map: Map<number, number>, reverseMap?: Map<number, number>}}
|
|
92
|
-
*/
|
|
93
|
-
function parseCharacterMap(encodedString, includeReverse) {
|
|
94
|
-
var radix = 36;
|
|
95
|
-
var lastCode = 0;
|
|
96
|
-
var map$1 = /* @__PURE__ */ new Map();
|
|
97
|
-
var reverseMap = includeReverse && /* @__PURE__ */ new Map();
|
|
98
|
-
var prevPair;
|
|
99
|
-
encodedString.split(",").forEach(function visit(entry) {
|
|
100
|
-
if (entry.indexOf("+") !== -1) for (var i = +entry; i--;) visit(prevPair);
|
|
101
|
-
else {
|
|
102
|
-
prevPair = entry;
|
|
103
|
-
var ref = entry.split(">");
|
|
104
|
-
var a = ref[0];
|
|
105
|
-
var b = ref[1];
|
|
106
|
-
a = String.fromCodePoint(lastCode += parseInt(a, radix));
|
|
107
|
-
b = String.fromCodePoint(lastCode += parseInt(b, radix));
|
|
108
|
-
map$1.set(a, b);
|
|
109
|
-
includeReverse && reverseMap.set(b, a);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
return {
|
|
113
|
-
map: map$1,
|
|
114
|
-
reverseMap
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
var openToClose, closeToOpen, canonical;
|
|
118
|
-
function parse$1() {
|
|
119
|
-
if (!openToClose) {
|
|
120
|
-
var ref = parseCharacterMap(data$1.pairs, true);
|
|
121
|
-
var map$1 = ref.map;
|
|
122
|
-
var reverseMap = ref.reverseMap;
|
|
123
|
-
openToClose = map$1;
|
|
124
|
-
closeToOpen = reverseMap;
|
|
125
|
-
canonical = parseCharacterMap(data$1.canonical, false).map;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
function openingToClosingBracket(char) {
|
|
129
|
-
parse$1();
|
|
130
|
-
return openToClose.get(char) || null;
|
|
131
|
-
}
|
|
132
|
-
function closingToOpeningBracket(char) {
|
|
133
|
-
parse$1();
|
|
134
|
-
return closeToOpen.get(char) || null;
|
|
135
|
-
}
|
|
136
|
-
function getCanonicalBracket(char) {
|
|
137
|
-
parse$1();
|
|
138
|
-
return canonical.get(char) || null;
|
|
139
|
-
}
|
|
140
|
-
var TYPE_L = TYPES.L;
|
|
141
|
-
var TYPE_R = TYPES.R;
|
|
142
|
-
var TYPE_EN = TYPES.EN;
|
|
143
|
-
var TYPE_ES = TYPES.ES;
|
|
144
|
-
var TYPE_ET = TYPES.ET;
|
|
145
|
-
var TYPE_AN = TYPES.AN;
|
|
146
|
-
var TYPE_CS = TYPES.CS;
|
|
147
|
-
var TYPE_B = TYPES.B;
|
|
148
|
-
var TYPE_S = TYPES.S;
|
|
149
|
-
var TYPE_ON = TYPES.ON;
|
|
150
|
-
var TYPE_BN = TYPES.BN;
|
|
151
|
-
var TYPE_NSM = TYPES.NSM;
|
|
152
|
-
var TYPE_AL = TYPES.AL;
|
|
153
|
-
var TYPE_LRO = TYPES.LRO;
|
|
154
|
-
var TYPE_RLO = TYPES.RLO;
|
|
155
|
-
var TYPE_LRE = TYPES.LRE;
|
|
156
|
-
var TYPE_RLE = TYPES.RLE;
|
|
157
|
-
var TYPE_PDF = TYPES.PDF;
|
|
158
|
-
var TYPE_LRI = TYPES.LRI;
|
|
159
|
-
var TYPE_RLI = TYPES.RLI;
|
|
160
|
-
var TYPE_FSI = TYPES.FSI;
|
|
161
|
-
var TYPE_PDI = TYPES.PDI;
|
|
162
|
-
/**
|
|
163
|
-
* @typedef {object} GetEmbeddingLevelsResult
|
|
164
|
-
* @property {{start, end, level}[]} paragraphs
|
|
165
|
-
* @property {Uint8Array} levels
|
|
166
|
-
*/
|
|
167
|
-
/**
|
|
168
|
-
* This function applies the Bidirectional Algorithm to a string, returning the resolved embedding levels
|
|
169
|
-
* in a single Uint8Array plus a list of objects holding each paragraph's start and end indices and resolved
|
|
170
|
-
* base embedding level.
|
|
171
|
-
*
|
|
172
|
-
* @param {string} string - The input string
|
|
173
|
-
* @param {"ltr"|"rtl"|"auto"} [baseDirection] - Use "ltr" or "rtl" to force a base paragraph direction,
|
|
174
|
-
* otherwise a direction will be chosen automatically from each paragraph's contents.
|
|
175
|
-
* @return {GetEmbeddingLevelsResult}
|
|
176
|
-
*/
|
|
177
|
-
function getEmbeddingLevels(string, baseDirection) {
|
|
178
|
-
var MAX_DEPTH = 125;
|
|
179
|
-
var charTypes = new Uint32Array(string.length);
|
|
180
|
-
for (var i = 0; i < string.length; i++) charTypes[i] = getBidiCharType(string[i]);
|
|
181
|
-
var charTypeCounts = /* @__PURE__ */ new Map();
|
|
182
|
-
function changeCharType(i$12, type$2) {
|
|
183
|
-
var oldType = charTypes[i$12];
|
|
184
|
-
charTypes[i$12] = type$2;
|
|
185
|
-
charTypeCounts.set(oldType, charTypeCounts.get(oldType) - 1);
|
|
186
|
-
if (oldType & NEUTRAL_ISOLATE_TYPES) charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) - 1);
|
|
187
|
-
charTypeCounts.set(type$2, (charTypeCounts.get(type$2) || 0) + 1);
|
|
188
|
-
if (type$2 & NEUTRAL_ISOLATE_TYPES) charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);
|
|
189
|
-
}
|
|
190
|
-
var embedLevels = new Uint8Array(string.length);
|
|
191
|
-
var isolationPairs = /* @__PURE__ */ new Map();
|
|
192
|
-
var paragraphs = [];
|
|
193
|
-
var paragraph = null;
|
|
194
|
-
for (var i$1 = 0; i$1 < string.length; i$1++) {
|
|
195
|
-
if (!paragraph) paragraphs.push(paragraph = {
|
|
196
|
-
start: i$1,
|
|
197
|
-
end: string.length - 1,
|
|
198
|
-
level: baseDirection === "rtl" ? 1 : baseDirection === "ltr" ? 0 : determineAutoEmbedLevel(i$1, false)
|
|
199
|
-
});
|
|
200
|
-
if (charTypes[i$1] & TYPE_B) {
|
|
201
|
-
paragraph.end = i$1;
|
|
202
|
-
paragraph = null;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
var FORMATTING_TYPES = TYPE_RLE | TYPE_LRE | TYPE_RLO | TYPE_LRO | ISOLATE_INIT_TYPES | TYPE_PDI | TYPE_PDF | TYPE_B;
|
|
206
|
-
var nextEven = function(n) {
|
|
207
|
-
return n + (n & 1 ? 1 : 2);
|
|
208
|
-
};
|
|
209
|
-
var nextOdd = function(n) {
|
|
210
|
-
return n + (n & 1 ? 2 : 1);
|
|
211
|
-
};
|
|
212
|
-
for (var paraIdx = 0; paraIdx < paragraphs.length; paraIdx++) {
|
|
213
|
-
paragraph = paragraphs[paraIdx];
|
|
214
|
-
var statusStack = [{
|
|
215
|
-
_level: paragraph.level,
|
|
216
|
-
_override: 0,
|
|
217
|
-
_isolate: 0
|
|
218
|
-
}];
|
|
219
|
-
var stackTop = void 0;
|
|
220
|
-
var overflowIsolateCount = 0;
|
|
221
|
-
var overflowEmbeddingCount = 0;
|
|
222
|
-
var validIsolateCount = 0;
|
|
223
|
-
charTypeCounts.clear();
|
|
224
|
-
for (var i$2 = paragraph.start; i$2 <= paragraph.end; i$2++) {
|
|
225
|
-
var charType = charTypes[i$2];
|
|
226
|
-
stackTop = statusStack[statusStack.length - 1];
|
|
227
|
-
charTypeCounts.set(charType, (charTypeCounts.get(charType) || 0) + 1);
|
|
228
|
-
if (charType & NEUTRAL_ISOLATE_TYPES) charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);
|
|
229
|
-
if (charType & FORMATTING_TYPES) {
|
|
230
|
-
if (charType & (TYPE_RLE | TYPE_LRE)) {
|
|
231
|
-
embedLevels[i$2] = stackTop._level;
|
|
232
|
-
var level = (charType === TYPE_RLE ? nextOdd : nextEven)(stackTop._level);
|
|
233
|
-
if (level <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) statusStack.push({
|
|
234
|
-
_level: level,
|
|
235
|
-
_override: 0,
|
|
236
|
-
_isolate: 0
|
|
237
|
-
});
|
|
238
|
-
else if (!overflowIsolateCount) overflowEmbeddingCount++;
|
|
239
|
-
} else if (charType & (TYPE_RLO | TYPE_LRO)) {
|
|
240
|
-
embedLevels[i$2] = stackTop._level;
|
|
241
|
-
var level$1 = (charType === TYPE_RLO ? nextOdd : nextEven)(stackTop._level);
|
|
242
|
-
if (level$1 <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) statusStack.push({
|
|
243
|
-
_level: level$1,
|
|
244
|
-
_override: charType & TYPE_RLO ? TYPE_R : TYPE_L,
|
|
245
|
-
_isolate: 0
|
|
246
|
-
});
|
|
247
|
-
else if (!overflowIsolateCount) overflowEmbeddingCount++;
|
|
248
|
-
} else if (charType & ISOLATE_INIT_TYPES) {
|
|
249
|
-
if (charType & TYPE_FSI) charType = determineAutoEmbedLevel(i$2 + 1, true) === 1 ? TYPE_RLI : TYPE_LRI;
|
|
250
|
-
embedLevels[i$2] = stackTop._level;
|
|
251
|
-
if (stackTop._override) changeCharType(i$2, stackTop._override);
|
|
252
|
-
var level$2 = (charType === TYPE_RLI ? nextOdd : nextEven)(stackTop._level);
|
|
253
|
-
if (level$2 <= MAX_DEPTH && overflowIsolateCount === 0 && overflowEmbeddingCount === 0) {
|
|
254
|
-
validIsolateCount++;
|
|
255
|
-
statusStack.push({
|
|
256
|
-
_level: level$2,
|
|
257
|
-
_override: 0,
|
|
258
|
-
_isolate: 1,
|
|
259
|
-
_isolInitIndex: i$2
|
|
260
|
-
});
|
|
261
|
-
} else overflowIsolateCount++;
|
|
262
|
-
} else if (charType & TYPE_PDI) {
|
|
263
|
-
if (overflowIsolateCount > 0) overflowIsolateCount--;
|
|
264
|
-
else if (validIsolateCount > 0) {
|
|
265
|
-
overflowEmbeddingCount = 0;
|
|
266
|
-
while (!statusStack[statusStack.length - 1]._isolate) statusStack.pop();
|
|
267
|
-
var isolInitIndex = statusStack[statusStack.length - 1]._isolInitIndex;
|
|
268
|
-
if (isolInitIndex != null) {
|
|
269
|
-
isolationPairs.set(isolInitIndex, i$2);
|
|
270
|
-
isolationPairs.set(i$2, isolInitIndex);
|
|
271
|
-
}
|
|
272
|
-
statusStack.pop();
|
|
273
|
-
validIsolateCount--;
|
|
274
|
-
}
|
|
275
|
-
stackTop = statusStack[statusStack.length - 1];
|
|
276
|
-
embedLevels[i$2] = stackTop._level;
|
|
277
|
-
if (stackTop._override) changeCharType(i$2, stackTop._override);
|
|
278
|
-
} else if (charType & TYPE_PDF) {
|
|
279
|
-
if (overflowIsolateCount === 0) {
|
|
280
|
-
if (overflowEmbeddingCount > 0) overflowEmbeddingCount--;
|
|
281
|
-
else if (!stackTop._isolate && statusStack.length > 1) {
|
|
282
|
-
statusStack.pop();
|
|
283
|
-
stackTop = statusStack[statusStack.length - 1];
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
embedLevels[i$2] = stackTop._level;
|
|
287
|
-
} else if (charType & TYPE_B) embedLevels[i$2] = paragraph.level;
|
|
288
|
-
} else {
|
|
289
|
-
embedLevels[i$2] = stackTop._level;
|
|
290
|
-
if (stackTop._override && charType !== TYPE_BN) changeCharType(i$2, stackTop._override);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
var levelRuns = [];
|
|
294
|
-
var currentRun = null;
|
|
295
|
-
for (var i$3 = paragraph.start; i$3 <= paragraph.end; i$3++) {
|
|
296
|
-
var charType$1 = charTypes[i$3];
|
|
297
|
-
if (!(charType$1 & BN_LIKE_TYPES)) {
|
|
298
|
-
var lvl = embedLevels[i$3];
|
|
299
|
-
var isIsolInit = charType$1 & ISOLATE_INIT_TYPES;
|
|
300
|
-
var isPDI = charType$1 === TYPE_PDI;
|
|
301
|
-
if (currentRun && lvl === currentRun._level) {
|
|
302
|
-
currentRun._end = i$3;
|
|
303
|
-
currentRun._endsWithIsolInit = isIsolInit;
|
|
304
|
-
} else levelRuns.push(currentRun = {
|
|
305
|
-
_start: i$3,
|
|
306
|
-
_end: i$3,
|
|
307
|
-
_level: lvl,
|
|
308
|
-
_startsWithPDI: isPDI,
|
|
309
|
-
_endsWithIsolInit: isIsolInit
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
var isolatingRunSeqs = [];
|
|
314
|
-
for (var runIdx = 0; runIdx < levelRuns.length; runIdx++) {
|
|
315
|
-
var run = levelRuns[runIdx];
|
|
316
|
-
if (!run._startsWithPDI || run._startsWithPDI && !isolationPairs.has(run._start)) {
|
|
317
|
-
var seqRuns = [currentRun = run];
|
|
318
|
-
for (var pdiIndex = void 0; currentRun && currentRun._endsWithIsolInit && (pdiIndex = isolationPairs.get(currentRun._end)) != null;) for (var i$4 = runIdx + 1; i$4 < levelRuns.length; i$4++) if (levelRuns[i$4]._start === pdiIndex) {
|
|
319
|
-
seqRuns.push(currentRun = levelRuns[i$4]);
|
|
320
|
-
break;
|
|
321
|
-
}
|
|
322
|
-
var seqIndices = [];
|
|
323
|
-
for (var i$5 = 0; i$5 < seqRuns.length; i$5++) {
|
|
324
|
-
var run$1 = seqRuns[i$5];
|
|
325
|
-
for (var j = run$1._start; j <= run$1._end; j++) seqIndices.push(j);
|
|
326
|
-
}
|
|
327
|
-
var firstLevel = embedLevels[seqIndices[0]];
|
|
328
|
-
var prevLevel = paragraph.level;
|
|
329
|
-
for (var i$6 = seqIndices[0] - 1; i$6 >= 0; i$6--) if (!(charTypes[i$6] & BN_LIKE_TYPES)) {
|
|
330
|
-
prevLevel = embedLevels[i$6];
|
|
331
|
-
break;
|
|
332
|
-
}
|
|
333
|
-
var lastIndex = seqIndices[seqIndices.length - 1];
|
|
334
|
-
var lastLevel = embedLevels[lastIndex];
|
|
335
|
-
var nextLevel = paragraph.level;
|
|
336
|
-
if (!(charTypes[lastIndex] & ISOLATE_INIT_TYPES)) {
|
|
337
|
-
for (var i$7 = lastIndex + 1; i$7 <= paragraph.end; i$7++) if (!(charTypes[i$7] & BN_LIKE_TYPES)) {
|
|
338
|
-
nextLevel = embedLevels[i$7];
|
|
339
|
-
break;
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
isolatingRunSeqs.push({
|
|
343
|
-
_seqIndices: seqIndices,
|
|
344
|
-
_sosType: Math.max(prevLevel, firstLevel) % 2 ? TYPE_R : TYPE_L,
|
|
345
|
-
_eosType: Math.max(nextLevel, lastLevel) % 2 ? TYPE_R : TYPE_L
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
for (var seqIdx = 0; seqIdx < isolatingRunSeqs.length; seqIdx++) {
|
|
350
|
-
var ref = isolatingRunSeqs[seqIdx];
|
|
351
|
-
var seqIndices$1 = ref._seqIndices;
|
|
352
|
-
var sosType = ref._sosType;
|
|
353
|
-
var eosType = ref._eosType;
|
|
354
|
-
/**
|
|
355
|
-
* All the level runs in an isolating run sequence have the same embedding level.
|
|
356
|
-
*
|
|
357
|
-
* DO NOT change any `embedLevels[i]` within the current scope.
|
|
358
|
-
*/
|
|
359
|
-
var embedDirection = embedLevels[seqIndices$1[0]] & 1 ? TYPE_R : TYPE_L;
|
|
360
|
-
if (charTypeCounts.get(TYPE_NSM)) for (var si = 0; si < seqIndices$1.length; si++) {
|
|
361
|
-
var i$8 = seqIndices$1[si];
|
|
362
|
-
if (charTypes[i$8] & TYPE_NSM) {
|
|
363
|
-
var prevType = sosType;
|
|
364
|
-
for (var sj = si - 1; sj >= 0; sj--) if (!(charTypes[seqIndices$1[sj]] & BN_LIKE_TYPES)) {
|
|
365
|
-
prevType = charTypes[seqIndices$1[sj]];
|
|
366
|
-
break;
|
|
367
|
-
}
|
|
368
|
-
changeCharType(i$8, prevType & (ISOLATE_INIT_TYPES | TYPE_PDI) ? TYPE_ON : prevType);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
if (charTypeCounts.get(TYPE_EN)) for (var si$1 = 0; si$1 < seqIndices$1.length; si$1++) {
|
|
372
|
-
var i$9 = seqIndices$1[si$1];
|
|
373
|
-
if (charTypes[i$9] & TYPE_EN) for (var sj$1 = si$1 - 1; sj$1 >= -1; sj$1--) {
|
|
374
|
-
var prevCharType = sj$1 === -1 ? sosType : charTypes[seqIndices$1[sj$1]];
|
|
375
|
-
if (prevCharType & STRONG_TYPES) {
|
|
376
|
-
if (prevCharType === TYPE_AL) changeCharType(i$9, TYPE_AN);
|
|
377
|
-
break;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
if (charTypeCounts.get(TYPE_AL)) for (var si$2 = 0; si$2 < seqIndices$1.length; si$2++) {
|
|
382
|
-
var i$10 = seqIndices$1[si$2];
|
|
383
|
-
if (charTypes[i$10] & TYPE_AL) changeCharType(i$10, TYPE_R);
|
|
384
|
-
}
|
|
385
|
-
if (charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) for (var si$3 = 1; si$3 < seqIndices$1.length - 1; si$3++) {
|
|
386
|
-
var i$11 = seqIndices$1[si$3];
|
|
387
|
-
if (charTypes[i$11] & (TYPE_ES | TYPE_CS)) {
|
|
388
|
-
var prevType$1 = 0, nextType = 0;
|
|
389
|
-
for (var sj$2 = si$3 - 1; sj$2 >= 0; sj$2--) {
|
|
390
|
-
prevType$1 = charTypes[seqIndices$1[sj$2]];
|
|
391
|
-
if (!(prevType$1 & BN_LIKE_TYPES)) break;
|
|
392
|
-
}
|
|
393
|
-
for (var sj$3 = si$3 + 1; sj$3 < seqIndices$1.length; sj$3++) {
|
|
394
|
-
nextType = charTypes[seqIndices$1[sj$3]];
|
|
395
|
-
if (!(nextType & BN_LIKE_TYPES)) break;
|
|
396
|
-
}
|
|
397
|
-
if (prevType$1 === nextType && (charTypes[i$11] === TYPE_ES ? prevType$1 === TYPE_EN : prevType$1 & (TYPE_EN | TYPE_AN))) changeCharType(i$11, prevType$1);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
if (charTypeCounts.get(TYPE_EN)) {
|
|
401
|
-
for (var si$4 = 0; si$4 < seqIndices$1.length; si$4++) if (charTypes[seqIndices$1[si$4]] & TYPE_EN) {
|
|
402
|
-
for (var sj$4 = si$4 - 1; sj$4 >= 0 && charTypes[seqIndices$1[sj$4]] & (TYPE_ET | BN_LIKE_TYPES); sj$4--) changeCharType(seqIndices$1[sj$4], TYPE_EN);
|
|
403
|
-
for (si$4++; si$4 < seqIndices$1.length && charTypes[seqIndices$1[si$4]] & (TYPE_ET | BN_LIKE_TYPES | TYPE_EN); si$4++) if (charTypes[seqIndices$1[si$4]] !== TYPE_EN) changeCharType(seqIndices$1[si$4], TYPE_EN);
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
if (charTypeCounts.get(TYPE_ET) || charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) for (var si$5 = 0; si$5 < seqIndices$1.length; si$5++) {
|
|
407
|
-
var i$13 = seqIndices$1[si$5];
|
|
408
|
-
if (charTypes[i$13] & (TYPE_ET | TYPE_ES | TYPE_CS)) {
|
|
409
|
-
changeCharType(i$13, TYPE_ON);
|
|
410
|
-
for (var sj$5 = si$5 - 1; sj$5 >= 0 && charTypes[seqIndices$1[sj$5]] & BN_LIKE_TYPES; sj$5--) changeCharType(seqIndices$1[sj$5], TYPE_ON);
|
|
411
|
-
for (var sj$6 = si$5 + 1; sj$6 < seqIndices$1.length && charTypes[seqIndices$1[sj$6]] & BN_LIKE_TYPES; sj$6++) changeCharType(seqIndices$1[sj$6], TYPE_ON);
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
if (charTypeCounts.get(TYPE_EN)) for (var si$6 = 0, prevStrongType = sosType; si$6 < seqIndices$1.length; si$6++) {
|
|
415
|
-
var i$14 = seqIndices$1[si$6];
|
|
416
|
-
var type = charTypes[i$14];
|
|
417
|
-
if (type & TYPE_EN) {
|
|
418
|
-
if (prevStrongType === TYPE_L) changeCharType(i$14, TYPE_L);
|
|
419
|
-
} else if (type & STRONG_TYPES) prevStrongType = type;
|
|
420
|
-
}
|
|
421
|
-
if (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES)) {
|
|
422
|
-
var R_TYPES_FOR_N_STEPS = TYPE_R | TYPE_EN | TYPE_AN;
|
|
423
|
-
var STRONG_TYPES_FOR_N_STEPS = R_TYPES_FOR_N_STEPS | TYPE_L;
|
|
424
|
-
var bracketPairs = [];
|
|
425
|
-
var openerStack = [];
|
|
426
|
-
for (var si$7 = 0; si$7 < seqIndices$1.length; si$7++) if (charTypes[seqIndices$1[si$7]] & NEUTRAL_ISOLATE_TYPES) {
|
|
427
|
-
var char = string[seqIndices$1[si$7]];
|
|
428
|
-
var oppositeBracket = void 0;
|
|
429
|
-
if (openingToClosingBracket(char) !== null) if (openerStack.length < 63) openerStack.push({
|
|
430
|
-
char,
|
|
431
|
-
seqIndex: si$7
|
|
432
|
-
});
|
|
433
|
-
else break;
|
|
434
|
-
else if ((oppositeBracket = closingToOpeningBracket(char)) !== null) for (var stackIdx = openerStack.length - 1; stackIdx >= 0; stackIdx--) {
|
|
435
|
-
var stackChar = openerStack[stackIdx].char;
|
|
436
|
-
if (stackChar === oppositeBracket || stackChar === closingToOpeningBracket(getCanonicalBracket(char)) || openingToClosingBracket(getCanonicalBracket(stackChar)) === char) {
|
|
437
|
-
bracketPairs.push([openerStack[stackIdx].seqIndex, si$7]);
|
|
438
|
-
openerStack.length = stackIdx;
|
|
439
|
-
break;
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
bracketPairs.sort(function(a, b) {
|
|
444
|
-
return a[0] - b[0];
|
|
445
|
-
});
|
|
446
|
-
for (var pairIdx = 0; pairIdx < bracketPairs.length; pairIdx++) {
|
|
447
|
-
var ref$1 = bracketPairs[pairIdx];
|
|
448
|
-
var openSeqIdx = ref$1[0];
|
|
449
|
-
var closeSeqIdx = ref$1[1];
|
|
450
|
-
var foundStrongType = false;
|
|
451
|
-
var useStrongType = 0;
|
|
452
|
-
for (var si$8 = openSeqIdx + 1; si$8 < closeSeqIdx; si$8++) {
|
|
453
|
-
var i$15 = seqIndices$1[si$8];
|
|
454
|
-
if (charTypes[i$15] & STRONG_TYPES_FOR_N_STEPS) {
|
|
455
|
-
foundStrongType = true;
|
|
456
|
-
var lr = charTypes[i$15] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
|
|
457
|
-
if (lr === embedDirection) {
|
|
458
|
-
useStrongType = lr;
|
|
459
|
-
break;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
if (foundStrongType && !useStrongType) {
|
|
464
|
-
useStrongType = sosType;
|
|
465
|
-
for (var si$9 = openSeqIdx - 1; si$9 >= 0; si$9--) {
|
|
466
|
-
var i$16 = seqIndices$1[si$9];
|
|
467
|
-
if (charTypes[i$16] & STRONG_TYPES_FOR_N_STEPS) {
|
|
468
|
-
var lr$1 = charTypes[i$16] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
|
|
469
|
-
if (lr$1 !== embedDirection) useStrongType = lr$1;
|
|
470
|
-
else useStrongType = embedDirection;
|
|
471
|
-
break;
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
if (useStrongType) {
|
|
476
|
-
charTypes[seqIndices$1[openSeqIdx]] = charTypes[seqIndices$1[closeSeqIdx]] = useStrongType;
|
|
477
|
-
if (useStrongType !== embedDirection) {
|
|
478
|
-
for (var si$10 = openSeqIdx + 1; si$10 < seqIndices$1.length; si$10++) if (!(charTypes[seqIndices$1[si$10]] & BN_LIKE_TYPES)) {
|
|
479
|
-
if (getBidiCharType(string[seqIndices$1[si$10]]) & TYPE_NSM) charTypes[seqIndices$1[si$10]] = useStrongType;
|
|
480
|
-
break;
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
if (useStrongType !== embedDirection) {
|
|
484
|
-
for (var si$11 = closeSeqIdx + 1; si$11 < seqIndices$1.length; si$11++) if (!(charTypes[seqIndices$1[si$11]] & BN_LIKE_TYPES)) {
|
|
485
|
-
if (getBidiCharType(string[seqIndices$1[si$11]]) & TYPE_NSM) charTypes[seqIndices$1[si$11]] = useStrongType;
|
|
486
|
-
break;
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
for (var si$12 = 0; si$12 < seqIndices$1.length; si$12++) if (charTypes[seqIndices$1[si$12]] & NEUTRAL_ISOLATE_TYPES) {
|
|
492
|
-
var niRunStart = si$12, niRunEnd = si$12;
|
|
493
|
-
var prevType$2 = sosType;
|
|
494
|
-
for (var si2 = si$12 - 1; si2 >= 0; si2--) if (charTypes[seqIndices$1[si2]] & BN_LIKE_TYPES) niRunStart = si2;
|
|
495
|
-
else {
|
|
496
|
-
prevType$2 = charTypes[seqIndices$1[si2]] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
|
|
497
|
-
break;
|
|
498
|
-
}
|
|
499
|
-
var nextType$1 = eosType;
|
|
500
|
-
for (var si2$1 = si$12 + 1; si2$1 < seqIndices$1.length; si2$1++) if (charTypes[seqIndices$1[si2$1]] & (NEUTRAL_ISOLATE_TYPES | BN_LIKE_TYPES)) niRunEnd = si2$1;
|
|
501
|
-
else {
|
|
502
|
-
nextType$1 = charTypes[seqIndices$1[si2$1]] & R_TYPES_FOR_N_STEPS ? TYPE_R : TYPE_L;
|
|
503
|
-
break;
|
|
504
|
-
}
|
|
505
|
-
for (var sj$7 = niRunStart; sj$7 <= niRunEnd; sj$7++) charTypes[seqIndices$1[sj$7]] = prevType$2 === nextType$1 ? prevType$2 : embedDirection;
|
|
506
|
-
si$12 = niRunEnd;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
for (var i$17 = paragraph.start; i$17 <= paragraph.end; i$17++) {
|
|
511
|
-
var level$3 = embedLevels[i$17];
|
|
512
|
-
var type$1 = charTypes[i$17];
|
|
513
|
-
if (level$3 & 1) {
|
|
514
|
-
if (type$1 & (TYPE_L | TYPE_EN | TYPE_AN)) embedLevels[i$17]++;
|
|
515
|
-
} else if (type$1 & TYPE_R) embedLevels[i$17]++;
|
|
516
|
-
else if (type$1 & (TYPE_AN | TYPE_EN)) embedLevels[i$17] += 2;
|
|
517
|
-
if (type$1 & BN_LIKE_TYPES) embedLevels[i$17] = i$17 === 0 ? paragraph.level : embedLevels[i$17 - 1];
|
|
518
|
-
if (i$17 === paragraph.end || getBidiCharType(string[i$17]) & (TYPE_S | TYPE_B)) for (var j$1 = i$17; j$1 >= 0 && getBidiCharType(string[j$1]) & TRAILING_TYPES; j$1--) embedLevels[j$1] = paragraph.level;
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
return {
|
|
522
|
-
levels: embedLevels,
|
|
523
|
-
paragraphs
|
|
524
|
-
};
|
|
525
|
-
function determineAutoEmbedLevel(start, isFSI) {
|
|
526
|
-
for (var i$12 = start; i$12 < string.length; i$12++) {
|
|
527
|
-
var charType$2 = charTypes[i$12];
|
|
528
|
-
if (charType$2 & (TYPE_R | TYPE_AL)) return 1;
|
|
529
|
-
if (charType$2 & (TYPE_B | TYPE_L) || isFSI && charType$2 === TYPE_PDI) return 0;
|
|
530
|
-
if (charType$2 & ISOLATE_INIT_TYPES) {
|
|
531
|
-
var pdi = indexOfMatchingPDI(i$12);
|
|
532
|
-
i$12 = pdi === -1 ? string.length : pdi;
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
return 0;
|
|
536
|
-
}
|
|
537
|
-
function indexOfMatchingPDI(isolateStart) {
|
|
538
|
-
var isolationLevel = 1;
|
|
539
|
-
for (var i$12 = isolateStart + 1; i$12 < string.length; i$12++) {
|
|
540
|
-
var charType$2 = charTypes[i$12];
|
|
541
|
-
if (charType$2 & TYPE_B) break;
|
|
542
|
-
if (charType$2 & TYPE_PDI) {
|
|
543
|
-
if (--isolationLevel === 0) return i$12;
|
|
544
|
-
} else if (charType$2 & ISOLATE_INIT_TYPES) isolationLevel++;
|
|
545
|
-
}
|
|
546
|
-
return -1;
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
var data = "14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1";
|
|
550
|
-
var mirrorMap;
|
|
551
|
-
function parse() {
|
|
552
|
-
if (!mirrorMap) {
|
|
553
|
-
var ref = parseCharacterMap(data, true);
|
|
554
|
-
var map$1 = ref.map;
|
|
555
|
-
ref.reverseMap.forEach(function(value, key) {
|
|
556
|
-
map$1.set(key, value);
|
|
557
|
-
});
|
|
558
|
-
mirrorMap = map$1;
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
function getMirroredCharacter(char) {
|
|
562
|
-
parse();
|
|
563
|
-
return mirrorMap.get(char) || null;
|
|
564
|
-
}
|
|
565
|
-
/**
|
|
566
|
-
* Given a string and its resolved embedding levels, build a map of indices to replacement chars
|
|
567
|
-
* for any characters in right-to-left segments that have defined mirrored characters.
|
|
568
|
-
* @param string
|
|
569
|
-
* @param embeddingLevels
|
|
570
|
-
* @param [start]
|
|
571
|
-
* @param [end]
|
|
572
|
-
* @return {Map<number, string>}
|
|
573
|
-
*/
|
|
574
|
-
function getMirroredCharactersMap(string, embeddingLevels, start, end) {
|
|
575
|
-
var strLen = string.length;
|
|
576
|
-
start = Math.max(0, start == null ? 0 : +start);
|
|
577
|
-
end = Math.min(strLen - 1, end == null ? strLen - 1 : +end);
|
|
578
|
-
var map$1 = /* @__PURE__ */ new Map();
|
|
579
|
-
for (var i = start; i <= end; i++) if (embeddingLevels[i] & 1) {
|
|
580
|
-
var mirror = getMirroredCharacter(string[i]);
|
|
581
|
-
if (mirror !== null) map$1.set(i, mirror);
|
|
582
|
-
}
|
|
583
|
-
return map$1;
|
|
584
|
-
}
|
|
585
|
-
/**
|
|
586
|
-
* Given a start and end denoting a single line within a string, and a set of precalculated
|
|
587
|
-
* bidi embedding levels, produce a list of segments whose ordering should be flipped, in sequence.
|
|
588
|
-
* @param {string} string - the full input string
|
|
589
|
-
* @param {GetEmbeddingLevelsResult} embeddingLevelsResult - the result object from getEmbeddingLevels
|
|
590
|
-
* @param {number} [start] - first character in a subset of the full string
|
|
591
|
-
* @param {number} [end] - last character in a subset of the full string
|
|
592
|
-
* @return {number[][]} - the list of start/end segments that should be flipped, in order.
|
|
593
|
-
*/
|
|
594
|
-
function getReorderSegments(string, embeddingLevelsResult, start, end) {
|
|
595
|
-
var strLen = string.length;
|
|
596
|
-
start = Math.max(0, start == null ? 0 : +start);
|
|
597
|
-
end = Math.min(strLen - 1, end == null ? strLen - 1 : +end);
|
|
598
|
-
var segments = [];
|
|
599
|
-
embeddingLevelsResult.paragraphs.forEach(function(paragraph) {
|
|
600
|
-
var lineStart = Math.max(start, paragraph.start);
|
|
601
|
-
var lineEnd = Math.min(end, paragraph.end);
|
|
602
|
-
if (lineStart < lineEnd) {
|
|
603
|
-
var lineLevels = embeddingLevelsResult.levels.slice(lineStart, lineEnd + 1);
|
|
604
|
-
for (var i = lineEnd; i >= lineStart && getBidiCharType(string[i]) & TRAILING_TYPES; i--) lineLevels[i] = paragraph.level;
|
|
605
|
-
var maxLevel = paragraph.level;
|
|
606
|
-
var minOddLevel = Infinity;
|
|
607
|
-
for (var i$1 = 0; i$1 < lineLevels.length; i$1++) {
|
|
608
|
-
var level = lineLevels[i$1];
|
|
609
|
-
if (level > maxLevel) maxLevel = level;
|
|
610
|
-
if (level < minOddLevel) minOddLevel = level | 1;
|
|
611
|
-
}
|
|
612
|
-
for (var lvl = maxLevel; lvl >= minOddLevel; lvl--) for (var i$2 = 0; i$2 < lineLevels.length; i$2++) if (lineLevels[i$2] >= lvl) {
|
|
613
|
-
var segStart = i$2;
|
|
614
|
-
while (i$2 + 1 < lineLevels.length && lineLevels[i$2 + 1] >= lvl) i$2++;
|
|
615
|
-
if (i$2 > segStart) segments.push([segStart + lineStart, i$2 + lineStart]);
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
});
|
|
619
|
-
return segments;
|
|
620
|
-
}
|
|
621
|
-
/**
|
|
622
|
-
* @param {string} string
|
|
623
|
-
* @param {GetEmbeddingLevelsResult} embedLevelsResult
|
|
624
|
-
* @param {number} [start]
|
|
625
|
-
* @param {number} [end]
|
|
626
|
-
* @return {string} the new string with bidi segments reordered
|
|
627
|
-
*/
|
|
628
|
-
function getReorderedString(string, embedLevelsResult, start, end) {
|
|
629
|
-
var indices = getReorderedIndices(string, embedLevelsResult, start, end);
|
|
630
|
-
var chars = [].concat(string);
|
|
631
|
-
indices.forEach(function(charIndex, i) {
|
|
632
|
-
chars[i] = (embedLevelsResult.levels[charIndex] & 1 ? getMirroredCharacter(string[charIndex]) : null) || string[charIndex];
|
|
633
|
-
});
|
|
634
|
-
return chars.join("");
|
|
635
|
-
}
|
|
636
|
-
/**
|
|
637
|
-
* @param {string} string
|
|
638
|
-
* @param {GetEmbeddingLevelsResult} embedLevelsResult
|
|
639
|
-
* @param {number} [start]
|
|
640
|
-
* @param {number} [end]
|
|
641
|
-
* @return {number[]} an array with character indices in their new bidi order
|
|
642
|
-
*/
|
|
643
|
-
function getReorderedIndices(string, embedLevelsResult, start, end) {
|
|
644
|
-
var segments = getReorderSegments(string, embedLevelsResult, start, end);
|
|
645
|
-
var indices = [];
|
|
646
|
-
for (var i = 0; i < string.length; i++) indices[i] = i;
|
|
647
|
-
segments.forEach(function(ref) {
|
|
648
|
-
var start$1 = ref[0];
|
|
649
|
-
var end$1 = ref[1];
|
|
650
|
-
var slice = indices.slice(start$1, end$1 + 1);
|
|
651
|
-
for (var i$1 = slice.length; i$1--;) indices[end$1 - i$1] = slice[i$1];
|
|
652
|
-
});
|
|
653
|
-
return indices;
|
|
654
|
-
}
|
|
655
|
-
exports$1.closingToOpeningBracket = closingToOpeningBracket;
|
|
656
|
-
exports$1.getBidiCharType = getBidiCharType;
|
|
657
|
-
exports$1.getBidiCharTypeName = getBidiCharTypeName;
|
|
658
|
-
exports$1.getCanonicalBracket = getCanonicalBracket;
|
|
659
|
-
exports$1.getEmbeddingLevels = getEmbeddingLevels;
|
|
660
|
-
exports$1.getMirroredCharacter = getMirroredCharacter;
|
|
661
|
-
exports$1.getMirroredCharactersMap = getMirroredCharactersMap;
|
|
662
|
-
exports$1.getReorderSegments = getReorderSegments;
|
|
663
|
-
exports$1.getReorderedIndices = getReorderedIndices;
|
|
664
|
-
exports$1.getReorderedString = getReorderedString;
|
|
665
|
-
exports$1.openingToClosingBracket = openingToClosingBracket;
|
|
666
|
-
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
667
|
-
return exports$1;
|
|
668
|
-
}({});
|
|
669
|
-
}
|
|
670
|
-
return bidiFactory;
|
|
671
|
-
}));
|
|
672
|
-
}));
|
|
673
|
-
|
|
674
|
-
//#endregion
|
|
675
|
-
export { require_bidi as t };
|