@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.
Files changed (119) hide show
  1. package/core/index.d.mts +1858 -0
  2. package/core/index.d.ts +1858 -0
  3. package/core/index.mjs +8559 -0
  4. package/experimental/index.d.mts +222 -0
  5. package/experimental/index.d.ts +222 -0
  6. package/experimental/index.mjs +353 -0
  7. package/external/index.d.mts +464 -0
  8. package/external/index.d.ts +464 -0
  9. package/external/index.mjs +5079 -0
  10. package/index.d.mts +1746 -2147
  11. package/index.d.ts +2166 -0
  12. package/index.mjs +12940 -19766
  13. package/legacy/index.d.mts +2350 -0
  14. package/legacy/index.d.ts +2350 -0
  15. package/legacy/index.mjs +12326 -0
  16. package/native/index.d.mts +2515 -0
  17. package/native/index.d.ts +2515 -0
  18. package/native/index.mjs +12383 -0
  19. package/package.json +18 -15
  20. package/webgpu/index.d.mts +2514 -0
  21. package/webgpu/index.d.ts +2514 -0
  22. package/webgpu/index.mjs +12547 -0
  23. package/_chunks/hls.mjs +0 -3
  24. package/_chunks/libs/@mediapipe/tasks-vision.mjs +0 -4781
  25. package/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  26. package/_chunks/libs/@use-gesture/core.mjs +0 -1650
  27. package/_chunks/libs/@use-gesture/react.mjs +0 -207
  28. package/_chunks/libs/camera-controls.mjs +0 -2207
  29. package/_chunks/libs/detect-gpu.mjs +0 -515
  30. package/_chunks/libs/hls.js.mjs +0 -21925
  31. package/_chunks/libs/maath.mjs +0 -5200
  32. package/_chunks/libs/stats-gl.mjs +0 -301
  33. package/_chunks/libs/stats.js.mjs +0 -90
  34. package/_chunks/libs/suspend-react.mjs +0 -60
  35. package/_chunks/libs/three.mjs +0 -23169
  36. package/_chunks/libs/tunnel-rat.mjs +0 -458
  37. package/_chunks/libs/zustand.mjs +0 -104
  38. package/_chunks/rolldown-runtime.mjs +0 -47
  39. package/_chunks/vision_bundle.mjs +0 -3
  40. package/core/_chunks/hls.mjs +0 -3
  41. package/core/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  42. package/core/_chunks/libs/@use-gesture/core.mjs +0 -1650
  43. package/core/_chunks/libs/@use-gesture/react.mjs +0 -207
  44. package/core/_chunks/libs/detect-gpu.mjs +0 -515
  45. package/core/_chunks/libs/hls.js.mjs +0 -21925
  46. package/core/_chunks/libs/maath.mjs +0 -5200
  47. package/core/_chunks/libs/stats-gl.mjs +0 -301
  48. package/core/_chunks/libs/stats.js.mjs +0 -90
  49. package/core/_chunks/libs/suspend-react.mjs +0 -60
  50. package/core/_chunks/libs/three.mjs +0 -22457
  51. package/core/_chunks/libs/tunnel-rat.mjs +0 -458
  52. package/core/_chunks/libs/zustand.mjs +0 -104
  53. package/core/_chunks/rolldown-runtime.mjs +0 -47
  54. package/core/core/index.d.mts +0 -2232
  55. package/core/core/index.mjs +0 -11082
  56. package/experimental/_chunks/libs/three.mjs +0 -15386
  57. package/experimental/experimental/index.d.mts +0 -253
  58. package/experimental/experimental/index.mjs +0 -434
  59. package/external/_chunks/hls.mjs +0 -3
  60. package/external/_chunks/libs/@mediapipe/tasks-vision.mjs +0 -4781
  61. package/external/_chunks/libs/camera-controls.mjs +0 -2207
  62. package/external/_chunks/libs/hls.js.mjs +0 -21925
  63. package/external/_chunks/libs/maath.mjs +0 -5200
  64. package/external/_chunks/libs/suspend-react.mjs +0 -58
  65. package/external/_chunks/libs/three.mjs +0 -15387
  66. package/external/_chunks/rolldown-runtime.mjs +0 -32
  67. package/external/_chunks/vision_bundle.mjs +0 -3
  68. package/external/external/index.d.mts +0 -499
  69. package/external/external/index.mjs +0 -9422
  70. package/legacy/_chunks/hls.mjs +0 -3
  71. package/legacy/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  72. package/legacy/_chunks/libs/@use-gesture/core.mjs +0 -1650
  73. package/legacy/_chunks/libs/@use-gesture/react.mjs +0 -207
  74. package/legacy/_chunks/libs/bidi-js.mjs +0 -675
  75. package/legacy/_chunks/libs/detect-gpu.mjs +0 -515
  76. package/legacy/_chunks/libs/hls.js.mjs +0 -21925
  77. package/legacy/_chunks/libs/maath.mjs +0 -5200
  78. package/legacy/_chunks/libs/stats-gl.mjs +0 -301
  79. package/legacy/_chunks/libs/stats.js.mjs +0 -90
  80. package/legacy/_chunks/libs/suspend-react.mjs +0 -60
  81. package/legacy/_chunks/libs/three.mjs +0 -26062
  82. package/legacy/_chunks/libs/troika-three-text.mjs +0 -6494
  83. package/legacy/_chunks/libs/tunnel-rat.mjs +0 -458
  84. package/legacy/_chunks/libs/zustand.mjs +0 -104
  85. package/legacy/_chunks/rolldown-runtime.mjs +0 -47
  86. package/legacy/legacy/index.d.mts +0 -2788
  87. package/legacy/legacy/index.mjs +0 -14984
  88. package/native/_chunks/hls.mjs +0 -3
  89. package/native/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  90. package/native/_chunks/libs/@use-gesture/core.mjs +0 -1650
  91. package/native/_chunks/libs/@use-gesture/react.mjs +0 -207
  92. package/native/_chunks/libs/detect-gpu.mjs +0 -515
  93. package/native/_chunks/libs/hls.js.mjs +0 -21925
  94. package/native/_chunks/libs/maath.mjs +0 -5200
  95. package/native/_chunks/libs/stats-gl.mjs +0 -301
  96. package/native/_chunks/libs/stats.js.mjs +0 -90
  97. package/native/_chunks/libs/suspend-react.mjs +0 -60
  98. package/native/_chunks/libs/three.mjs +0 -22592
  99. package/native/_chunks/libs/tunnel-rat.mjs +0 -458
  100. package/native/_chunks/libs/zustand.mjs +0 -104
  101. package/native/_chunks/rolldown-runtime.mjs +0 -47
  102. package/native/native/index.d.mts +0 -3168
  103. package/native/native/index.mjs +0 -14863
  104. package/webgpu/_chunks/hls.mjs +0 -3
  105. package/webgpu/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  106. package/webgpu/_chunks/libs/@use-gesture/core.mjs +0 -1650
  107. package/webgpu/_chunks/libs/@use-gesture/react.mjs +0 -207
  108. package/webgpu/_chunks/libs/detect-gpu.mjs +0 -515
  109. package/webgpu/_chunks/libs/hls.js.mjs +0 -21925
  110. package/webgpu/_chunks/libs/maath.mjs +0 -5200
  111. package/webgpu/_chunks/libs/stats-gl.mjs +0 -301
  112. package/webgpu/_chunks/libs/stats.js.mjs +0 -90
  113. package/webgpu/_chunks/libs/suspend-react.mjs +0 -60
  114. package/webgpu/_chunks/libs/three.mjs +0 -22592
  115. package/webgpu/_chunks/libs/tunnel-rat.mjs +0 -458
  116. package/webgpu/_chunks/libs/zustand.mjs +0 -104
  117. package/webgpu/_chunks/rolldown-runtime.mjs +0 -47
  118. package/webgpu/webgpu/index.d.mts +0 -3166
  119. 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 };