@yuktishaalaa/yuktai 5.3.4 → 5.3.7
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/README.md +52 -0
- package/dist/icons.d.mts +169 -169
- package/dist/icons.d.ts +169 -169
- package/dist/index.d.mts +89 -8
- package/dist/index.d.ts +89 -8
- package/dist/index.js +57 -57
- package/dist/index.mjs +30 -30
- package/package.json +6 -1
- package/vanilla/README.md +2 -0
- package/vanilla/index.js +446 -16
- package/vanilla/index.min.js +30 -30
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuktishaalaa/yuktai",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.7",
|
|
4
4
|
"description": "Accessibility, AI and data toolkit for Next.js, React and plain HTML: WCAG 2.2 auto-fix, agentic data grid, accessibility copilot, QA reports and in-browser RAG. Zero API keys.",
|
|
5
5
|
"author": "Sandeep Miriyala — Yuktishaalaa AI Lab",
|
|
6
6
|
"license": "GPL-3.0-only",
|
|
@@ -31,6 +31,9 @@
|
|
|
31
31
|
"data-grid",
|
|
32
32
|
"webmcp",
|
|
33
33
|
"telugu",
|
|
34
|
+
"rust",
|
|
35
|
+
"webassembly",
|
|
36
|
+
"wasm",
|
|
34
37
|
"indian-languages",
|
|
35
38
|
"icons",
|
|
36
39
|
"react-icons",
|
|
@@ -77,6 +80,8 @@
|
|
|
77
80
|
"build": "tsup",
|
|
78
81
|
"build:vanilla": "node vanilla/build.mjs",
|
|
79
82
|
"build:all": "npm run build && npm run build:vanilla",
|
|
83
|
+
"build:rust": "node rust/build-wasm.mjs",
|
|
84
|
+
"test:rust": "cd rust/grid-core && cargo test",
|
|
80
85
|
"lint": "eslint src --ext .ts,.tsx",
|
|
81
86
|
"test": "vitest run",
|
|
82
87
|
"prepublishOnly": "npm run build:all"
|
package/vanilla/README.md
CHANGED
|
@@ -73,6 +73,8 @@ The v5.1 vanilla signature `renderGrid(container, rows, columns, options)` still
|
|
|
73
73
|
| `customRules` | `[{ name, phrases, description, execute({ input, data, columns, executeTool }) }]`, in any language |
|
|
74
74
|
| `parseIntent(text, ctx)` | Replace the built-in phrase parser |
|
|
75
75
|
| `webmcp`, `toolName`, `toolDescriptions`, `onWebMCPStatusChange` | Expose the 11 grid tools to browser AI agents |
|
|
76
|
+
| `engine` | `"ts"` (default), `"rust"`, or `"auto"` (Rust from 10,000 rows). Rust runs the same search and number/date sort faster; results are identical. `grid.engine` tells you which one is active, `await grid.whenEngineReady()` waits for it |
|
|
77
|
+
| `showSearchTime`, `onSearchTime` | Show "· 0.9 ms · Rust" next to the row count after each search or sort, and/or get `{ query, ms, rows, engine }` in a callback. `grid.getSearchTime()` returns the last one |
|
|
76
78
|
| `referenceDate` | "Now" for "this month" questions |
|
|
77
79
|
| `onRowClick(row)`, `onOpenRow(id)` | Enables the `open` tool and "open Ravi" |
|
|
78
80
|
| `onSelectionChange(keys)`, `onSortChange(sort)`, `onFiltersChange(filters)`, `onAgentResult(r)` | Events |
|
package/vanilla/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! yuktai vanilla 5.3.
|
|
1
|
+
/*! yuktai vanilla 5.3.7 — accessible data grid, page agents and WCAG tools for plain HTML.
|
|
2
2
|
* No framework, no API keys, runs in the browser. ISC © Sandeep Miriyala, Yuktishaalaa AI Lab.
|
|
3
|
-
* Built from github.com/sandeepmiriyala03/yuktai (vanilla/src + src/agentic, src/grid, src/core). */
|
|
3
|
+
* Built from github.com/sandeepmiriyala03/yuktai (vanilla/src + src/agentic, src/grid, src/core; grid engine in Rust: rust/grid-core). */
|
|
4
4
|
"use strict";
|
|
5
5
|
(() => {
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
@@ -5283,6 +5283,350 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5283
5283
|
};
|
|
5284
5284
|
}
|
|
5285
5285
|
|
|
5286
|
+
// src/grid/rust/gridCoreWasm.ts
|
|
5287
|
+
var GRID_CORE_WASM_BASE64 = [
|
|
5288
|
+
"AGFzbQEAAAABYA1gA39/fwF/YAJ/fwF/YAN/f38AYAV/f39/fwBgBX9/f39/AX9gBH9/f38AYAR/f39/AX9gCH9/f39/f39/AX9g",
|
|
5289
|
+
"AX8AYAABf2AHf39/f39/fwF/YAZ/f39/f38Bf2AAAAMkIwIDBAIFBQICAgIGBgYGAwcICQoFCQIBBQILBQYAAQICAgwABAUBcAEC",
|
|
5290
|
+
"AgUDAQARBgkBfwFBgIDAAAsHPAUGbWVtb3J5AgAMeWtfaGVhcF9iYXNlABEJeWtfc2VhcmNoABIHeWtfc29ydAATCnlrX3ZlcnNp",
|
|
5291
|
+
"b24AFAkHAQBBAQsBHQrEWiO8BgMFfwJ8BH8CQCABQQJJDQACQAJAAkACQAJAAkACQAJAAkAgACgCBCIDIAIoAgAiBCgCBCIFTw0A",
|
|
5292
|
+
"IAAoAgAiBiAFTw0BIAQoAgAiByAGQQN0aisDACEIAkACQCAHIANBA3RqKwMAIgkgCWINACAIIAhiDQFBAEEAQX8gCSAIZiIKG0EB",
|
|
5293
|
+
"QX4gChsgCSAIZRsiCmsgCiAEKAIILQAAG0H/AXEiCkH/AUYgAyAGSSAKGw0BDAYLIAMgBk8NBSAIIAhhDQULQQIhCkEBIQsgAUEC",
|
|
5294
|
+
"Rg0GIABBCGohDEECIQoDQCADIQYgDCgCACIDIAVPDQMgBiAFTw0EIAcgBkEDdGorAwAhCAJAAkAgByADQQN0aisDACIJIAliDQAg",
|
|
5295
|
+
"CCAIYg0BQQBBAEF/IAkgCGYiDRtBAUF+IA0bIAkgCGUbIg1rIA0gBCgCCC0AABtB/wFxIg1B/wFGIAMgBkkgDRtBAUYNAUEBIQsM",
|
|
5296
|
+
"CQsgAyAGTw0IIAggCGENCAsgDEEEaiEMIAEgCkEBaiIKRw0AC0EBIQsMBQsgAyAFQdSEwIAAEJiAgIAAAAsgBiAFQeSEwIAAEJiA",
|
|
5297
|
+
"gIAAAAsgAyAFQdSEwIAAEJiAgIAAAAsgBiAFQeSEwIAAEJiAgIAAAAtBAiEKQQAhCyABQQJGDQEgAEEIaiEMQQIhCgNAIAMhBiAM",
|
|
5298
|
+
"KAIAIgMgBU8NAyAGIAVPDQQgByAGQQN0aisDACEIAkACQCAHIANBA3RqKwMAIgkgCWINACAIIAhiDQRBAEEAQX8gCSAIZiING0EB",
|
|
5299
|
+
"QX4gDRsgCSAIZRsiDWsgDSAEKAIILQAAG0H/AXEiDUH/AUYgAyAGSSANG0UNAUEAIQsMBAsgAyAGTw0AIAggCGINAwsgDEEEaiEM",
|
|
5300
|
+
"IAEgCkEBaiIKRw0ACwsgASEKCwJAIAogAUYNACAAIAFBACABQQFyZ0EBdEE+cyACEIGAgIAADAMLIAtFDQIgAUEBdiEGIAFBAnQg",
|
|
5301
|
+
"AGpBfGohAwNAIAAoAgAhCiAAIAMoAgA2AgAgAyAKNgIAIANBfGohAyAAQQRqIQAgBkF/aiIGDQAMAwsLIAMgBUHUhMCAABCYgICA",
|
|
5302
|
+
"AAALIAYgBUHkhMCAABCYgICAAAALC7YIBAh/AnwDfwF8I4CAgIAAQRBrIgUkgICAgAACQAJAIAFBIUkNACADQX9qIQMDQAJAIANB",
|
|
5303
|
+
"f0cNACAAIAEgBBCJgICAAAwDCyAAIAFBA3YiBkEcbGohByAAIAZBBHRqIQgCQAJAIAFBwABJDQAgACAIIAcgBiAEEIKAgIAAIQYM",
|
|
5304
|
+
"AQsCQAJAAkACQAJAAkAgACgCACIGIAQoAgAiCSgCBCIKTw0AIAgoAgAiCyAKTw0BIAkoAgAiDCALQQN0aisDACENAkACQAJAAkAg",
|
|
5305
|
+
"DCAGQQN0aisDACIOIA5iIg8NACANIA1hDQFBASEQDAMLIA0gDWINAUEAIRAMAgtBAEEAQX8gDiANZiIRG0EBQX4gERsgDiANZRsi",
|
|
5306
|
+
"EWsgESAJKAIILQAAG0H/AXEiEUH/AUYgBiALSSARGyEQDAELIAYgC0khEAsgBygCACIRIApPDQIgDCARQQN0aisDACESAkACQAJA",
|
|
5307
|
+
"AkACQAJAAkAgDw0AIBIgEmENASAAIQYgEEUNDSANIA1iDQYMCwsgEiASYg0BIAAhBiAQDQwgDSANYQ0DDAkLQQBBAEF/IA4gEmYi",
|
|
5308
|
+
"ChtBAUF+IAobIA4gEmUbIgprIAogCSgCCC0AABtB/wFxIgpB/wFGIAYgEUkgChshCgwBCyAGIBFJIQoLIAAhBiAQIApHDQkgDSAN",
|
|
5309
|
+
"Yg0BIBIgEmINBwtBAEEAQX8gDSASZiIGG0EBQX4gBhsgDSASZRsiBmsgBiAJKAIILQAAG0H/AXEiBkH/AUYgCyARSSAGGyEGDAcL",
|
|
5310
|
+
"IBIgEmENBAsgCyARSSEGDAULIAYgCkHUhMCAABCYgICAAAALIAsgCkHkhMCAABCYgICAAAALIBEgCkHkhMCAABCYgICAAAALQQAh",
|
|
5311
|
+
"BgwBC0EBIQYLIAcgCCAQIAZzGyEGCyAGIABrIgdBAnYhBgJAAkAgAkUNAAJAAkACQCACKAIAIgggBCgCACIJKAIEIgtPDQAgACAH",
|
|
5312
|
+
"aigCACIHIAtPDQEgCSgCACILIAdBA3RqKwMAIQ0CQAJAIAsgCEEDdGorAwAiEiASYg0AIA0gDWINBUEAQQBBfyASIA1mIgsbQQFB",
|
|
5313
|
+
"fiALGyASIA1lGyILayALIAkoAggtAAAbQf8BcSIJQf8BRiAIIAdJIAkbDQUMAQsgCCAHTw0AIA0gDWINBAsgBSAENgIMIAAgASAG",
|
|
5314
|
+
"IAVBDGoQjICAgAAiBkEBaiECIAYgAU8NAiABIAJrIQEgACACQQJ0aiEAQQAhAgwECyAIIAtB1ITAgAAQmICAgAAACyAHIAtB5ITA",
|
|
5315
|
+
"gAAQmICAgAAACyACIAEgAUHEhMCAABCXgICAAAALIAAgACABIAYgBBCNgICAACIGIAIgAyAEEIGAgIAAIAEgBkF/c2ohASAAIAZB",
|
|
5316
|
+
"AnRqIgJBBGohAAsgA0F/aiEDIAFBIU8NAAsLIAAgASAEEIiAgIAACyAFQRBqJICAgIAAC4kFBAR/AnwCfwF8AkAgA0H4////AXFF",
|
|
5317
|
+
"DQAgACAAIANBA3YiA0EEdCIFaiAAIANBHGwiBmogAyAEEIKAgIAAIQAgASABIAVqIAEgBmogAyAEEIKAgIAAIQEgAiACIAVqIAIg",
|
|
5318
|
+
"BmogAyAEEIKAgIAAIQILAkACQAJAAkACQAJAAkAgACgCACIDIAQoAgAiBCgCBCIHTw0AIAEoAgAiBSAHTw0BIAQoAgAiCCAFQQN0",
|
|
5319
|
+
"aisDACEJAkACQAJAAkAgCCADQQN0aisDACIKIApiIgsNACAJIAlhDQFBASEMDAMLIAkgCWINAUEAIQwMAgtBAEEAQX8gCiAJZiIG",
|
|
5320
|
+
"G0EBQX4gBhsgCiAJZRsiBmsgBiAEKAIILQAAG0H/AXEiBkH/AUYgAyAFSSAGGyEMDAELIAMgBUkhDAsgAigCACIGIAdPDQIgCCAG",
|
|
5321
|
+
"QQN0aisDACENAkACQAJAAkACQAJAAkAgCw0AIA0gDWENASAMRQ0NIAkgCWINBgwLCyANIA1iDQEgDA0MIAkgCWENAwwJC0EAQQBB",
|
|
5322
|
+
"fyAKIA1mIgcbQQFBfiAHGyAKIA1lGyIHayAHIAQoAggtAAAbQf8BcSIHQf8BRiADIAZJIAcbIQMMAQsgAyAGSSEDCyAMIANHDQkg",
|
|
5323
|
+
"CSAJYg0BIA0gDWINBwtBAEEAQX8gCSANZiIAG0EBQX4gABsgCSANZRsiAGsgACAEKAIILQAAG0H/AXEiAEH/AUYgBSAGSSAAGyEA",
|
|
5324
|
+
"DAcLIA0gDWENBAsgBSAGSSEADAULIAMgB0HUhMCAABCYgICAAAALIAUgB0HkhMCAABCYgICAAAALIAYgB0HkhMCAABCYgICAAAAL",
|
|
5325
|
+
"QQAhAAwBC0EBIQALIAIgASAMIABzGyEACyAAC9wDAwR/AnwBfwJAAkAgASgCACIDIAIoAgAiAigCBCIETw0AAkAgAUF8aiIFKAIA",
|
|
5326
|
+
"IgYgBE8NACACKAIAIgQgBkEDdGorAwAhBwJAAkAgBCADQQN0aisDACIIIAhiDQAgByAHYg0BQQBBAEF/IAggB2YiBBtBAUF+IAQb",
|
|
5327
|
+
"IAggB2UbIgRrIAQgAigCCC0AABtB/wFxIgRB/wFGIAMgBkkgBBtBAUYNAQwECyADIAZPDQMgByAHYQ0DCyABIAY2AgACQCAFIABG",
|
|
5328
|
+
"DQAgA0EDdCEJA0AgBSEGAkACQAJAIAMgAigCBCIETw0AIAZBfGoiBSgCACIBIARPDQEgAigCACIEIAFBA3RqKwMAIQcCQAJAIAQg",
|
|
5329
|
+
"CWorAwAiCCAIYg0AIAcgB2INBEEAQQBBfyAIIAdmIgQbQQFBfiAEGyAIIAdlGyIEayAEIAIoAggtAAAbQf8BcSIEQf8BRiADIAFJ",
|
|
5330
|
+
"IAQbQQFHDQEMBAsgAyABTw0AIAcgB2INAwsgBiEFDAQLIAMgBEHUhMCAABCYgICAAAALIAEgBEHkhMCAABCYgICAAAALIAYgATYC",
|
|
5331
|
+
"ACAFIABHDQALCyAFIAM2AgAPCyAGIARB5ITAgAAQmICAgAAACyADIARB1ITAgAAQmICAgAAACwunBQMIfwJ8A38gAiABQQJ0QXxq",
|
|
5332
|
+
"IgRqIQUgACAEaiEGIAAgAUEBdiIHQQJ0aiIIQXxqIQkgAygCACEDAkACQAJAAkACQANAIAgoAgAiCiADKAIEIgtPDQEgACgCACIE",
|
|
5333
|
+
"IAtPDQIgAygCACILIARBA3RqKwMAIQwCQAJAAkAgCyAKQQN0aisDACINIA1iDQAgDCAMYg0BQQAhC0EAQQBBfyANIAxmIg4bQQFB",
|
|
5334
|
+
"fiAOGyANIAxlGyIOayAOIAMoAggtAAAbQf8BcSIOQf8BRiAKIARJIA4bQQFGDQEMAgtBACELIAogBE8NASAMIAxhDQELQQEhCyAK",
|
|
5335
|
+
"IQQLIAIgBDYCACAGKAIAIgQgAygCBCIOTw0DIAkoAgAiCiAOTw0EIAtBAnQhDiALQQFzQQJ0IQ8gAygCACILIApBA3RqKwMAIQwC",
|
|
5336
|
+
"QAJAAkAgCyAEQQN0aisDACINIA1iDQAgDCAMYg0BQQAhC0EAQQBBfyANIAxmIhAbQQFBfiAQGyANIAxlGyIQayAQIAMoAggtAAAb",
|
|
5337
|
+
"Qf8BcSIQQf8BRiAEIApJIBAbQQFGDQEMAgtBACELIAQgCk8NASAMIAxhDQELQQEhCyAKIQQLIAJBBGohAiAIIA5qIQggACAPaiEA",
|
|
5338
|
+
"IAUgBDYCACAFQXxqIQUgCSALQQJ0IgRrIQkgBCAGakF8aiEGIAdBf2oiBw0ACyAGQQRqIQQgCUEEaiEDAkAgAUEBcUUNACACIAAg",
|
|
5339
|
+
"CCAAIANJIgobKAIANgIAIAggACADT0ECdGohCCAAIApBAnRqIQALAkAgCCAERw0AIAAgA0YNBQsQoYCAgAAACyAKIAtB1ITAgAAQ",
|
|
5340
|
+
"mICAgAAACyAEIAtB5ITAgAAQmICAgAAACyAEIA5B1ITAgAAQmICAgAAACyAKIA5B5ITAgAAQmICAgAAACwuDAgICfwJ8AkACQAJA",
|
|
5341
|
+
"AkAgACACQQJ0aiIEKAIAIgIgAygCACIDKAIEIgVPDQAgACABQQJ0aiIBKAIAIgAgBU8NASADKAIAIgUgAEEDdGorAwAhBgJAAkAg",
|
|
5342
|
+
"BSACQQN0aisDACIHIAdiDQAgBiAGYg0EQQBBAEF/IAcgBmYiBRtBAUF+IAUbIAcgBmUbIgVrIAUgAygCCC0AABtB/wFxIgNB/wFG",
|
|
5343
|
+
"IAIgAEkgAxtBAUcNAQwECyACIABPDQAgBiAGYg0DCyAAIQMgAiEADAMLIAIgBUHUhMCAABCYgICAAAALIAAgBUHkhMCAABCYgICA",
|
|
5344
|
+
"AAALIAIhAwsgASADNgIAIAQgADYCAAvsAgACQCABQQlJDQAgAEEAQQMgAhCFgICAACAAQQFBByACEIWAgIAAIABBAkEFIAIQhYCA",
|
|
5345
|
+
"gAAgAEEEQQggAhCFgICAACAAQQBBByACEIWAgIAAIABBAkEEIAIQhYCAgAAgAEEDQQggAhCFgICAACAAQQVBBiACEIWAgIAAIABB",
|
|
5346
|
+
"AEECIAIQhYCAgAAgAEEBQQMgAhCFgICAACAAQQRBBSACEIWAgIAAIABBB0EIIAIQhYCAgAAgAEEBQQQgAhCFgICAACAAQQNBBiAC",
|
|
5347
|
+
"EIWAgIAAIABBBUEHIAIQhYCAgAAgAEEAQQEgAhCFgICAACAAQQJBBCACEIWAgIAAIABBA0EFIAIQhYCAgAAgAEEGQQggAhCFgICA",
|
|
5348
|
+
"ACAAQQJBAyACEIWAgIAAIABBBEEFIAIQhYCAgAAgAEEGQQcgAhCFgICAACAAQQFBAiACEIWAgIAAIABBA0EEIAIQhYCAgAAgAEEF",
|
|
5349
|
+
"QQYgAhCFgICAAA8LAAuEBQACQCABQQ1JDQAgAEEAQQwgAhCFgICAACAAQQFBCiACEIWAgIAAIABBAkEJIAIQhYCAgAAgAEEDQQcg",
|
|
5350
|
+
"AhCFgICAACAAQQVBCyACEIWAgIAAIABBBkEIIAIQhYCAgAAgAEEBQQYgAhCFgICAACAAQQJBAyACEIWAgIAAIABBBEELIAIQhYCA",
|
|
5351
|
+
"gAAgAEEHQQkgAhCFgICAACAAQQhBCiACEIWAgIAAIABBAEEEIAIQhYCAgAAgAEEBQQIgAhCFgICAACAAQQNBBiACEIWAgIAAIABB",
|
|
5352
|
+
"B0EIIAIQhYCAgAAgAEEJQQogAhCFgICAACAAQQtBDCACEIWAgIAAIABBBEEGIAIQhYCAgAAgAEEFQQkgAhCFgICAACAAQQhBCyAC",
|
|
5353
|
+
"EIWAgIAAIABBCkEMIAIQhYCAgAAgAEEAQQUgAhCFgICAACAAQQNBCCACEIWAgIAAIABBBEEHIAIQhYCAgAAgAEEGQQsgAhCFgICA",
|
|
5354
|
+
"ACAAQQlBCiACEIWAgIAAIABBAEEBIAIQhYCAgAAgAEECQQUgAhCFgICAACAAQQZBCSACEIWAgIAAIABBB0EIIAIQhYCAgAAgAEEK",
|
|
5355
|
+
"QQsgAhCFgICAACAAQQFBAyACEIWAgIAAIABBAkEEIAIQhYCAgAAgAEEFQQYgAhCFgICAACAAQQlBCiACEIWAgIAAIABBAUECIAIQ",
|
|
5356
|
+
"hYCAgAAgAEEDQQQgAhCFgICAACAAQQVBByACEIWAgIAAIABBBkEIIAIQhYCAgAAgAEECQQMgAhCFgICAACAAQQRBBSACEIWAgIAA",
|
|
5357
|
+
"IABBBkEHIAIQhYCAgAAgAEEIQQkgAhCFgICAACAAQQNBBCACEIWAgIAAIABBBUEGIAIQhYCAgAAPCwALlgIBB38jgICAgABBgAFr",
|
|
5358
|
+
"IgMkgICAgAACQAJAIAFBAkkNACABQSBLDQEgASABQQF2IgQgAUESSSIFGyEGIAEgBGshByAAIARBAnRqIQggACEJA0ACQAJAIAZB",
|
|
5359
|
+
"DEsNAEEBIQQgBkEITQ0BIAkgBiACEIaAgIAAQQkhBAwBCyAJIAYgAhCHgICAAEENIQQLIARBf2ogBk8NAgJAIAQgBkYNACAEQQJ0",
|
|
5360
|
+
"IQQgBkECdCEGA0AgCSAJIARqIAIQg4CAgAAgBiAEQQRqIgRHDQALCyAFDQEgCSAARiEEIAghCSAHIQYgBA0ACyAAIAEgAyACEISA",
|
|
5361
|
+
"gIAAIAFBAnQiBEUNACAAIAMgBPwKAAALIANBgAFqJICAgIAADwsAC/0EAwh/AnwBfwJAAkACQAJAAkAgAUEBdiABaiIDRQ0AIAIo",
|
|
5362
|
+
"AgAhBANAAkACQCADQX9qIgMgAU8NACAAKAIAIQIgACAAIANBAnRqIgUoAgA2AgAgBSACNgIAQQAhAgwBCyADIAFrIQILAkAgAkEB",
|
|
5363
|
+
"dCIGQQFyIgUgASADIAEgA0kbIgdPDQAgBCgCBCEIA0AgAiEJAkACQCAGQQJqIgIgB0kNACAFIQIMAQsgACAFQQJ0aigCACIGIAhP",
|
|
5364
|
+
"DQUgACACQQJ0aigCACICIAhPDQYgBCgCACIKIAJBA3RqKwMAIQsCQAJAAkACQCAKIAZBA3RqKwMAIgwgDGINACALIAthDQFBASEC",
|
|
5365
|
+
"DAMLIAsgC2INAUEAIQIMAgtBAEEAQX8gDCALZiIKG0EBQX4gChsgDCALZRsiCmsgCiAEKAIILQAAG0H/AXEiCkH/AUYgBiACSSAK",
|
|
5366
|
+
"GyECDAELIAYgAkkhAgsgBSACaiECCyAAIAlBAnRqIgooAgAiBSAITw0GIAAgAkECdGoiDSgCACIGIAhPDQcgBCgCACIJIAZBA3Rq",
|
|
5367
|
+
"KwMAIQsCQAJAIAkgBUEDdGorAwAiDCAMYg0AIAsgC2INAUEAQQBBfyAMIAtmIgkbQQFBfiAJGyAMIAtlGyIJayAJIAQoAggtAAAb",
|
|
5368
|
+
"Qf8BcSIJQf8BRiAFIAZJIAkbQQFGDQEMAwsgBSAGTw0CIAsgC2ENAgsgDSAFNgIAIAogBjYCACACQQF0IgZBAXIiBSAHSQ0ACwsg",
|
|
5369
|
+
"Aw0ACwsPCyAGIAhB1ITAgAAQmICAgAAACyACIAhB5ITAgAAQmICAgAAACyAFIAhB1ITAgAAQmICAgAAACyAGIAhB5ITAgAAQmICA",
|
|
5370
|
+
"gAAAC9IIAwp/AnwDfwJAIAENAEEADwsgAigCACEEIAAoAgAhBUEAIQYgACECAkAgAEEEaiIHIAAgAUECdGoiCEF8aiIJTw0AIAMo",
|
|
5371
|
+
"AgAoAgAiCigCBCEBIARBA3QhC0EAIQYgACECAkACQAJAAkADQCAEIAFPDQEgAkEEaiIMKAIAIgcgAU8NAiAKKAIAIg0gB0EDdGor",
|
|
5372
|
+
"AwAhDgJAAkACQAJAIA0gC2orAwAiDyAPYiIQDQAgDiAOYQ0BQQEhEQwDCyAOIA5iDQFBACERDAILQQBBAEF/IA8gDmYiEhtBAUF+",
|
|
5373
|
+
"IBIbIA8gDmUbIhJrIBIgCigCCC0AABtB/wFxIhJB/wFGIAQgB0kgEhshEQwBCyAEIAdJIRELIAIgACAGQQJ0aiISKAIANgIAIBIg",
|
|
5374
|
+
"BzYCACACQQhqIgIoAgAiByABTw0DIAYgEUEBc2ohBiANIAdBA3RqKwMAIQ4CQAJAAkACQCAQDQAgDiAOYQ0BQQEhDQwDCyAOIA5i",
|
|
5375
|
+
"DQFBACENDAILQQBBAEF/IA8gDmYiDRtBAUF+IA0bIA8gDmUbIg1rIA0gCigCCC0AABtB/wFxIg1B/wFGIAQgB0kgDRshDQwBCyAE",
|
|
5376
|
+
"IAdJIQ0LIAwgACAGQQJ0aiISKAIANgIAIBIgBzYCACAGIA1BAXNqIQYgAkEEaiAJTw0EDAALCyAEIAFB1ITAgAAQmICAgAAACyAH",
|
|
5377
|
+
"IAFB5ITAgAAQmICAgAAACyAHIAFB5ITAgAAQmICAgAAACyACQQRqIQcLAkACQAJAAkACQCAHIAhGDQAgAygCACEMIARBA3QhEgNA",
|
|
5378
|
+
"IAIhDSAHIQIgBCAMKAIAIgEoAgQiCk8NAiACKAIAIgcgCk8NAyABKAIAIgogB0EDdGorAwAhDwJAAkACQAJAIAogEmorAwAiDiAO",
|
|
5379
|
+
"Yg0AIA8gD2ENAUEBIQEMAwsgDyAPYg0BQQAhAQwCC0EAQQBBfyAOIA9mIgobQQFBfiAKGyAOIA9lGyIKayAKIAEoAggtAAAbQf8B",
|
|
5380
|
+
"cSIBQf8BRiAEIAdJIAEbIQEMAQsgBCAHSSEBCyANIAAgBkECdGoiCigCADYCACAKIAc2AgAgBiABQQFzaiEGIAJBBGoiByAIRw0A",
|
|
5381
|
+
"CyAHQXxqIQILIAQgAygCACgCACIHKAIEIgFPDQIgBSABTw0DIAcoAgAiASAFQQN0aisDACEPAkACQAJAAkAgASAEQQN0aisDACIO",
|
|
5382
|
+
"IA5iDQAgDyAPYQ0BQQEhBAwDCyAPIA9iDQFBACEEDAILQQBBAEF/IA4gD2YiARtBAUF+IAEbIA4gD2UbIgFrIAEgBygCCC0AABtB",
|
|
5383
|
+
"/wFxIgdB/wFGIAQgBUkgBxshBAwBCyAEIAVJIQQLIAIgACAGQQJ0aiIHKAIANgIAIAcgBTYCACAGIARBAXNqDwsgBCAKQdSEwIAA",
|
|
5384
|
+
"EJiAgIAAAAsgByAKQeSEwIAAEJiAgIAAAAsgBCABQdSEwIAAEJiAgIAAAAsgBSABQeSEwIAAEJiAgIAAAAuwCAMJfwJ8An8CQCAB",
|
|
5385
|
+
"DQBBAA8LIAIoAgAhBCAAKAIAIQVBACEGIAAhAgJAIABBBGoiByAAIAFBAnRqIghBfGoiCU8NACADKAIAIgooAgQhAUEAIQYgACEC",
|
|
5386
|
+
"AkACQAJAAkADQCACQQRqIgsoAgAiByABTw0BIAQgAU8NAiAKKAIAIgwgBEEDdGorAwAhDQJAAkACQAJAIAwgB0EDdGorAwAiDiAO",
|
|
5387
|
+
"Yg0AIA0gDWENAUEBIQ8MAwsgDSANYg0BQQAhDwwCC0EAQQBBfyAOIA1mIhAbQQFBfiAQGyAOIA1lGyIQayAQIAooAggtAAAbQf8B",
|
|
5388
|
+
"cSIQQf8BRiAHIARJIBAbIQ8MAQsgByAESSEPCyACIAAgBkECdGoiECgCADYCACAQIAc2AgAgAkEIaiICKAIAIgcgAU8NAyAGIA9q",
|
|
5389
|
+
"IQYCQAJAAkACQCAMIAdBA3RqKwMAIg4gDmINACANIA1hDQFBASEMDAMLIA0gDWINAUEAIQwMAgtBAEEAQX8gDiANZiIMG0EBQX4g",
|
|
5390
|
+
"DBsgDiANZRsiDGsgDCAKKAIILQAAG0H/AXEiDEH/AUYgByAESSAMGyEMDAELIAcgBEkhDAsgCyAAIAZBAnRqIhAoAgA2AgAgECAH",
|
|
5391
|
+
"NgIAIAYgDGohBiACQQRqIAlPDQQMAAsLIAcgAUHUhMCAABCYgICAAAALIAQgAUHkhMCAABCYgICAAAALIAcgAUHUhMCAABCYgICA",
|
|
5392
|
+
"AAALIAJBBGohBwsCQAJAAkACQAJAIAcgCEYNACADKAIAIQEDQCACIQwgByICKAIAIgcgASgCBCIKTw0CIAQgCk8NAyABKAIAIgog",
|
|
5393
|
+
"BEEDdGorAwAhDQJAAkACQAJAIAogB0EDdGorAwAiDiAOYg0AIA0gDWENAUEBIQoMAwsgDSANYg0BQQAhCgwCC0EAQQBBfyAOIA1m",
|
|
5394
|
+
"IgobQQFBfiAKGyAOIA1lGyIKayAKIAEoAggtAAAbQf8BcSIKQf8BRiAHIARJIAobIQoMAQsgByAESSEKCyAMIAAgBkECdGoiCygC",
|
|
5395
|
+
"ADYCACALIAc2AgAgBiAKaiEGIAJBBGoiByAIRw0ACyAHQXxqIQILIAUgAygCACIHKAIEIgFPDQIgBCABTw0DIAcoAgAiASAEQQN0",
|
|
5396
|
+
"aisDACENAkACQAJAAkAgASAFQQN0aisDACIOIA5iDQAgDSANYQ0BQQEhBAwDCyANIA1iDQFBACEEDAILQQBBAEF/IA4gDWYiARtB",
|
|
5397
|
+
"AUF+IAEbIA4gDWUbIgFrIAEgBygCCC0AABtB/wFxIgdB/wFGIAUgBEkgBxshBAwBCyAFIARJIQQLIAIgACAGQQJ0aiIHKAIANgIA",
|
|
5398
|
+
"IAcgBTYCACAGIARqDwsgByAKQdSEwIAAEJiAgIAAAAsgBCAKQeSEwIAAEJiAgIAAAAsgBSABQdSEwIAAEJiAgIAAAAsgBCABQeSE",
|
|
5399
|
+
"wIAAEJiAgIAAAAt3AQF/AkAgAQ0AQQAPCwJAIAIgAU8NACAAKAIAIQQgACAAIAJBAnRqIgIoAgA2AgAgAiAENgIAIABBBGogAUF/",
|
|
5400
|
+
"aiAAIAMQioCAgAAiAiABTw0AIAAoAgAhASAAIAAgAkECdGoiAygCADYCACADIAE2AgAgAg8LAAt3AQF/AkAgAQ0AQQAPCwJAIAIg",
|
|
5401
|
+
"AU8NACAAKAIAIQQgACAAIAJBAnRqIgIoAgA2AgAgAiAENgIAIABBBGogAUF/aiAAIAMQi4CAgAAiAiABTw0AIAAoAgAhASAAIAAg",
|
|
5402
|
+
"AkECdGoiAygCADYCACADIAE2AgAgAg8LAAvRAQEDfyOAgICAAEEgayIFJICAgIAAIAUgAjoADwJAIAQgASAEIAFJGyIGRQ0AIAZB",
|
|
5403
|
+
"AnQhB0EAIQRBACECA0AgAyAEaiACNgIAIAJBAWohAiAHIARBBGoiBEcNAAsgBSABNgIUIAUgADYCECAFIAVBD2o2AhggBSAFQRBq",
|
|
5404
|
+
"NgIcIAZBAUYNAAJAIAZBFUkNACADIAYgBUEcahCAgICAAAwBC0EEIQQDQCADIAMgBGogBUEcahCDgICAACAHIARBBGoiBEcNAAsL",
|
|
5405
|
+
"IAVBIGokgICAgAALxgIBC39BACEIAkACQAJAIANBAkkNACAFRQ0AQQEgBWshCSADQX9qIQpBACEIQQAhCwNAIAggB08hDANAIAsg",
|
|
5406
|
+
"CiALIApLGyENIAIgC0ECdGohAwNAIA0gC0YNAyAMDQMgC0EBaiELIAMoAgAhDiADQQRqIg8hAyAPKAIAIhAgDkkNACAPIQMgECAB",
|
|
5407
|
+
"Sw0ACyAAIA5qIQ0gBSAQIA5rIg9LDQAgCSAQaiAOayERQQAhAyAELQAAQf8BcSEQA0AgDyADRg0EAkACQCANIANqIg4tAAAgEEcN",
|
|
5408
|
+
"ACAFIANqIhIgD0sNByAOIAQgBRCigICAAEUNAQsgESADQQFqIgNGDQIMAQsLCyAGIAhBAnRqIAtBf2o2AgAgCEEBaiEIDAALCyAI",
|
|
5409
|
+
"DwsgDyAPQfSEwIAAEJiAgIAAAAsgAyASIA9BhIXAgAAQl4CAgAAACwMAAAsIAEHQh8CAAAsbACAAIAEgAiADQQFqIAQgBSAGIAMQ",
|
|
5410
|
+
"j4CAgAALFQAgACABIAJBAEcgAyABEI6AgIAACwQAQQELRwEBfyOAgICAAEEgayIDJICAgIAAIAMgATYCECADIAA2AgwgA0EBOwEc",
|
|
5411
|
+
"IAMgAjYCGCADIANBDGo2AhQgA0EUahCQgICAAAALmAQBCX8CQAJAIAEgAEEDakF8cSICIABrIgNJDQAgASADayIEQQJ2IgVFDQAg",
|
|
5412
|
+
"BEEDcSEGQQAhB0EAIQgCQCACIABGDQAgACACayECQQAhCCAAIQEDQCAIIAEsAABBv39KaiEIIAFBAWohASACQQFqIgINAAsLIAAg",
|
|
5413
|
+
"A2ohCQJAIAZFDQAgCSAEQfz///8HcWohAEEAIQcDQCAHIAAsAABBv39KaiEHIABBAWohACAGQX9qIgYNAAsLIAcgCGohAgNAIAkh",
|
|
5414
|
+
"AyAFRQ0CIAVBwAEgBUHAAUkbIgRBA3EhCgJAAkAgBEECdCIJQfAHcSIADQBBACEBDAELIAMgAGohCEEAIQEgAyEGA0BBACEAA0Ag",
|
|
5415
|
+
"BiAAaigCACIHQX9zQQd2IAdBBnZyQYGChAhxIAFqIQEgAEEEaiIAQRBHDQALIAZBEGoiBiAIRw0ACwsgBSAEayEFIAMgCWohCSAB",
|
|
5416
|
+
"QQh2Qf+B/AdxIAFB/4H8B3FqQYGABGxBEHYgAmohAiAKRQ0ACyAKQQJ0IQcgAyAEQfwBcUECdGohAEEAIQEDQCAAKAIAIgZBf3NB",
|
|
5417
|
+
"B3YgBkEGdnJBgYKECHEgAWohASAAQQRqIQAgB0F8aiIHDQALIAFBCHZB/4H8B3EgAUH/gfwHcWpBgYAEbEEQdiACaiECDAELQQAh",
|
|
5418
|
+
"AiABRQ0AA0AgAiAALAAAQb9/SmohAiAAQQFqIQAgAUF/aiIBDQALCyACC0QAAkACQCAAIAJLDQAgASACSw0BIAAgAU0NASAAIAEg",
|
|
5419
|
+
"AxCegICAAAALIAAgAiADEJ+AgIAAAAsgASACIAMQoICAgAAAC2EBAX8jgICAgABBIGsiAySAgICAACADIAE2AgwgAyAANgIIIANB",
|
|
5420
|
+
"gYCAgAA2AhwgA0GBgICAADYCFCADIANBCGo2AhggAyADQQxqNgIQQaiAwIAAIANBEGogAhCVgICAAAALjwUCBn8BfiOAgICAAEEQ",
|
|
5421
|
+
"ayIGJICAgIAAAkACQCABDQAgBUEBaiEHIAAoAgghCEEtIQkMAQtBK0F/IAAoAggiCEGAgIABcSIBGyEJIAFBFXYgBWohBwsCQAJA",
|
|
5422
|
+
"IAhBgICABHENAEEAIQIMAQsCQAJAIANBEEkNACACIAMQloCAgAAhCgwBC0EAIQogA0UNACACIQEgAyELA0AgCiABLAAAQb9/Smoh",
|
|
5423
|
+
"CiABQQFqIQEgC0F/aiILDQALCyAKIAdqIQcLAkACQAJAAkACQCAHIAAvAQwiCk8NACAIQYCAgAhxDQFBASEBIAYgACAKIAdrQQEQ",
|
|
5424
|
+
"moCAgAAgBigCACIHQX9GDQQgBi8BBCELIAAgCSACIAMQm4CAgAANBCAAKAIAIgMgBCAFIAAoAgQiAigCDBGAgICAAICAgIAADQRB",
|
|
5425
|
+
"ACEKIAtB//8DcSELA0AgCyAKQf//A3EiAEshASALIABNDQUgCkEBaiEKIAMgByACKAIQEYGAgIAAgICAgABFDQAMBQsLIAAgCSAC",
|
|
5426
|
+
"IAMQm4CAgABFDQEMAgsgACAAKQIIIgynQYCAgP95cUGwgICAAnI2AgggACAJIAIgAxCbgICAAA0BQQEhASAGQQhqIAAgCiAHa0EB",
|
|
5427
|
+
"EJqAgIAAIAYoAggiC0F/Rg0CIAYvAQwhAiAAKAIAIgcgBCAFIAAoAgQiAygCDBGAgICAAICAgIAADQJBACEKIAJB//8DcSECAkAD",
|
|
5428
|
+
"QCACIApB//8DcU0NAUEBIQEgCkEBaiEKIAcgCyADKAIQEYGAgIAAgICAgABFDQAMBAsLIAAgDDcCCEEAIQEMAgsgACgCACAEIAUg",
|
|
5429
|
+
"ACgCBCgCDBGAgICAAICAgIAAIQEMAQtBASEBCyAGQRBqJICAgIAAIAELuAEBA38gAiEEAkACQAJAAkAgASgCCCIFQR12QQNxDgQB",
|
|
5430
|
+
"AwACAQsgAkH+/wNxQQF2IQQMAgtBACEEDAELIAJBACADQf8BcRshBAsgBUH///8AcSEFIAEoAgQhAyABKAIAIQZBACEBAkACQANA",
|
|
5431
|
+
"IAFB//8DcSAEQf//A3FPDQEgAUEBaiEBIAYgBSADKAIQEYGAgIAAgICAgABFDQALQX8hBQwBCyACIARrIQELIAAgATsBBCAAIAU2",
|
|
5432
|
+
"AgALUgACQCABQX9GDQAgACgCACABIAAoAgQoAhARgYCAgACAgICAAEUNAEEBDwsCQCACDQBBAA8LIAAoAgAgAiADIAAoAgQoAgwR",
|
|
5433
|
+
"gICAgACAgICAAAvRAwEJfwJAAkAgAEHoB08NACAAIQMMAQsgAUF8aiEEQQAhBSAAIQYCQAJAAkACQAJAA0AgBiAGQZDOAG4iA0GQ",
|
|
5434
|
+
"zgBsayIHQf//A3FB5ABuIQggAiAFaiIJQXxqIAJPDQEgBCACaiIKIAhBAXQiCy0ApIXAgAA6AAAgCUF9aiACTw0CIApBAWogC0Gl",
|
|
5435
|
+
"hcCAAGotAAA6AAAgCUF+aiACTw0DIApBAmogByAIQeQAbGtBAXRB/v8HcSIILQCkhcCAADoAACAJQX9qIAJPDQQgCkEDaiAIQaWF",
|
|
5436
|
+
"wIAAai0AADoAACAEQXxqIQQgBUF8aiEFIAZB/6ziBEshCSADIQYgCUUNBQwACwsgCUF8aiACQZSFwIAAEJiAgIAAAAsgCUF9aiAC",
|
|
5437
|
+
"QZSFwIAAEJiAgIAAAAsgCUF+aiACQZSFwIAAEJiAgIAAAAsgCUF/aiACQZSFwIAAEJiAgIAAAAsgAiAFaiECCwJAAkAgA0EKTw0A",
|
|
5438
|
+
"IAMhBgwBCyABIAJBfmoiAmogAyADQf//A3FB5ABuIgZB5ABsa0H//wNxQQF0LwCkhcCAADsAAAsCQAJAIABFDQAgBkUNAQsgASAC",
|
|
5439
|
+
"QX9qIgJqIAZBAXRBHnEtAKWFwIAAOgAACyACC1EBAX8jgICAgABBEGsiAiSAgICAACABQQFBAUEAIAJBBmogACgCACACQQZqQQoQ",
|
|
5440
|
+
"nICAgAAiAGpBCiAAaxCZgICAACEAIAJBEGokgICAgAAgAAthAQF/I4CAgIAAQSBrIgMkgICAgAAgAyABNgIMIAMgADYCCCADQYGA",
|
|
5441
|
+
"gIAANgIcIANBgYCAgAA2AhQgAyADQQxqNgIYIAMgA0EIajYCEEGAgMCAACADQRBqIAIQlYCAgAAAC2EBAX8jgICAgABBIGsiAySA",
|
|
5442
|
+
"gICAACADIAE2AgwgAyAANgIIIANBgYCAgAA2AhwgA0GBgICAADYCFCADIANBDGo2AhggAyADQQhqNgIQQd+AwIAAIANBEGogAhCV",
|
|
5443
|
+
"gICAAAALYQEBfyOAgICAAEEgayIDJICAgIAAIAMgATYCDCADIAA2AgggA0GBgICAADYCHCADQYGAgIAANgIUIAMgA0EMajYCGCAD",
|
|
5444
|
+
"IANBCGo2AhBBmIHAgAAgA0EQaiACEJWAgIAAAAsYAEHshsCAAEGZAUG4h8CAABCVgICAAAALSgEDf0EAIQMCQCACRQ0AAkADQCAA",
|
|
5445
|
+
"LQAAIgQgAS0AACIFRw0BIABBAWohACABQQFqIQEgAkF/aiICRQ0CDAALCyAEIAVrIQMLIAMLC9IHAQBBgIDAAAvIBxZzbGljZSBp",
|
|
5446
|
+
"bmRleCBzdGFydHMgYXQgwA0gYnV0IGVuZHMgYXQgwAAgaW5kZXggb3V0IG9mIGJvdW5kczogdGhlIGxlbiBpcyDAEiBidXQgdGhl",
|
|
5447
|
+
"IGluZGV4IGlzIMAAEnJhbmdlIHN0YXJ0IGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAEHJhbmdl",
|
|
5448
|
+
"IGVuZCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAAC9yb290Ly5ydXN0dXAvdG9vbGNoYWlucy9z",
|
|
5449
|
+
"dGFibGUteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uv",
|
|
5450
|
+
"c29ydC9zaGFyZWQvc21hbGxzb3J0LnJzAC9yb290Ly5ydXN0dXAvdG9vbGNoYWlucy9zdGFibGUteDg2XzY0LXVua25vd24tbGlu",
|
|
5451
|
+
"dXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvY29yZS9zcmMvc2xpY2Uvc29ydC91bnN0YWJsZS9xdWlja3NvcnQu",
|
|
5452
|
+
"cnMAL3Jvb3QvLnJ1c3R1cC90b29sY2hhaW5zL3N0YWJsZS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3Jj",
|
|
5453
|
+
"L3J1c3QvbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAHNyYy9saWIucnMAAABNARAAfwAAADgAAAAbAAAANwIQAAoAAAAlAAAA",
|
|
5454
|
+
"EgAAADcCEAAKAAAAJgAAABIAAAA3AhAACgAAAGAAAAAMAAAANwIQAAoAAABgAAAAIwAAAM0BEABpAAAAWAIAAAUAAAAwMDAxMDIw",
|
|
5455
|
+
"MzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQw",
|
|
5456
|
+
"NDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3",
|
|
5457
|
+
"ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXVzZXItcHJvdmlkZWQgY29tcGFyaXNvbiBmdW5jdGlv",
|
|
5458
|
+
"biBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IGEgdG90YWwgb3JkZXLPABAAfQAAAFYDAAAFAAAA"
|
|
5459
|
+
].join("");
|
|
5460
|
+
|
|
5461
|
+
// src/grid/rust/engine.ts
|
|
5462
|
+
var RUST_AUTO_MIN_ROWS = 1e4;
|
|
5463
|
+
var SEARCH_SEPARATOR = "\0";
|
|
5464
|
+
function wantsRustEngine(engine, rowCount) {
|
|
5465
|
+
return engine === "rust" || engine === "auto" && rowCount >= RUST_AUTO_MIN_ROWS;
|
|
5466
|
+
}
|
|
5467
|
+
var ENGINE_VERSION = 1;
|
|
5468
|
+
var PAGE = 65536;
|
|
5469
|
+
var compiled = null;
|
|
5470
|
+
var loading = null;
|
|
5471
|
+
function decodeBase64(b64) {
|
|
5472
|
+
if (typeof atob === "function") {
|
|
5473
|
+
const bin = atob(b64);
|
|
5474
|
+
const out = new Uint8Array(bin.length);
|
|
5475
|
+
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
5476
|
+
return out;
|
|
5477
|
+
}
|
|
5478
|
+
const B = globalThis.Buffer;
|
|
5479
|
+
if (B) return new Uint8Array(B.from(b64, "base64"));
|
|
5480
|
+
throw new Error("No base64 decoder");
|
|
5481
|
+
}
|
|
5482
|
+
function loadGridCore() {
|
|
5483
|
+
if (compiled) return Promise.resolve(compiled);
|
|
5484
|
+
if (!loading) {
|
|
5485
|
+
loading = (async () => {
|
|
5486
|
+
try {
|
|
5487
|
+
if (typeof WebAssembly === "undefined") return null;
|
|
5488
|
+
compiled = await WebAssembly.compile(decodeBase64(GRID_CORE_WASM_BASE64));
|
|
5489
|
+
return compiled;
|
|
5490
|
+
} catch {
|
|
5491
|
+
return null;
|
|
5492
|
+
}
|
|
5493
|
+
})();
|
|
5494
|
+
}
|
|
5495
|
+
return loading;
|
|
5496
|
+
}
|
|
5497
|
+
function isWellFormed(s) {
|
|
5498
|
+
const native = s.isWellFormed;
|
|
5499
|
+
if (typeof native === "function") return native.call(s);
|
|
5500
|
+
for (let i = 0; i < s.length; i++) {
|
|
5501
|
+
const c = s.charCodeAt(i);
|
|
5502
|
+
if (c >= 55296 && c <= 56319) {
|
|
5503
|
+
const d = s.charCodeAt(i + 1);
|
|
5504
|
+
if (d >= 56320 && d <= 57343) {
|
|
5505
|
+
i++;
|
|
5506
|
+
continue;
|
|
5507
|
+
}
|
|
5508
|
+
return false;
|
|
5509
|
+
}
|
|
5510
|
+
if (c >= 56320 && c <= 57343) return false;
|
|
5511
|
+
}
|
|
5512
|
+
return true;
|
|
5513
|
+
}
|
|
5514
|
+
var align8 = (n) => n + 7 & ~7;
|
|
5515
|
+
var GridCore = class _GridCore {
|
|
5516
|
+
x;
|
|
5517
|
+
base;
|
|
5518
|
+
encoder = new TextEncoder();
|
|
5519
|
+
offsetsPtr = 0;
|
|
5520
|
+
textPtr = 0;
|
|
5521
|
+
textLen = 0;
|
|
5522
|
+
rows = 0;
|
|
5523
|
+
hasIndex = false;
|
|
5524
|
+
freePtr;
|
|
5525
|
+
constructor(x) {
|
|
5526
|
+
this.x = x;
|
|
5527
|
+
this.base = align8(x.yk_heap_base());
|
|
5528
|
+
this.freePtr = this.base;
|
|
5529
|
+
}
|
|
5530
|
+
/** Creates an engine from a compiled module (default: the one already loaded). */
|
|
5531
|
+
static create(mod = compiled) {
|
|
5532
|
+
if (!mod) return null;
|
|
5533
|
+
try {
|
|
5534
|
+
const instance = new WebAssembly.Instance(mod, {});
|
|
5535
|
+
const x = instance.exports;
|
|
5536
|
+
if (x.yk_version() !== ENGINE_VERSION) return null;
|
|
5537
|
+
return new _GridCore(x);
|
|
5538
|
+
} catch {
|
|
5539
|
+
return null;
|
|
5540
|
+
}
|
|
5541
|
+
}
|
|
5542
|
+
ensure(end) {
|
|
5543
|
+
const missing = end - this.x.memory.buffer.byteLength;
|
|
5544
|
+
if (missing > 0) this.x.memory.grow(Math.ceil(missing / PAGE));
|
|
5545
|
+
}
|
|
5546
|
+
/**
|
|
5547
|
+
* Stores one search text per row (the grid joins its columns with
|
|
5548
|
+
* SEARCH_SEPARATOR). Returns false when Rust can't match TypeScript
|
|
5549
|
+
* exactly for this data; the grid then searches in TypeScript.
|
|
5550
|
+
*/
|
|
5551
|
+
setSearchTexts(texts) {
|
|
5552
|
+
this.hasIndex = false;
|
|
5553
|
+
this.freePtr = this.base;
|
|
5554
|
+
try {
|
|
5555
|
+
let maxBytes = 0;
|
|
5556
|
+
for (const t of texts) {
|
|
5557
|
+
if (!isWellFormed(t)) return false;
|
|
5558
|
+
maxBytes += t.length * 3;
|
|
5559
|
+
}
|
|
5560
|
+
const rows = texts.length;
|
|
5561
|
+
const offsetsPtr = this.base;
|
|
5562
|
+
const textPtr = align8(offsetsPtr + (rows + 1) * 4);
|
|
5563
|
+
this.ensure(textPtr + maxBytes);
|
|
5564
|
+
const buffer = this.x.memory.buffer;
|
|
5565
|
+
const offsets = new Uint32Array(buffer, offsetsPtr, rows + 1);
|
|
5566
|
+
const bytes = new Uint8Array(buffer, textPtr, maxBytes);
|
|
5567
|
+
let pos = 0;
|
|
5568
|
+
for (let i = 0; i < rows; i++) {
|
|
5569
|
+
offsets[i] = pos;
|
|
5570
|
+
pos += this.encoder.encodeInto(texts[i], bytes.subarray(pos)).written ?? 0;
|
|
5571
|
+
}
|
|
5572
|
+
offsets[rows] = pos;
|
|
5573
|
+
this.offsetsPtr = offsetsPtr;
|
|
5574
|
+
this.textPtr = textPtr;
|
|
5575
|
+
this.textLen = pos;
|
|
5576
|
+
this.rows = rows;
|
|
5577
|
+
this.freePtr = align8(textPtr + pos);
|
|
5578
|
+
this.hasIndex = true;
|
|
5579
|
+
return true;
|
|
5580
|
+
} catch {
|
|
5581
|
+
return false;
|
|
5582
|
+
}
|
|
5583
|
+
}
|
|
5584
|
+
/**
|
|
5585
|
+
* Positions (in the array given to setSearchTexts) of the rows whose text
|
|
5586
|
+
* contains `query`, in original order. Null means "use TypeScript".
|
|
5587
|
+
*/
|
|
5588
|
+
search(query) {
|
|
5589
|
+
if (!this.hasIndex || !query || query.includes(SEARCH_SEPARATOR) || !isWellFormed(query)) return null;
|
|
5590
|
+
try {
|
|
5591
|
+
const q = this.encoder.encode(query);
|
|
5592
|
+
const qPtr = this.freePtr;
|
|
5593
|
+
const outPtr = align8(qPtr + q.length);
|
|
5594
|
+
this.ensure(outPtr + this.rows * 4);
|
|
5595
|
+
new Uint8Array(this.x.memory.buffer, qPtr, q.length).set(q);
|
|
5596
|
+
const n = this.x.yk_search(this.textPtr, this.textLen, this.offsetsPtr, this.rows, qPtr, q.length, outPtr);
|
|
5597
|
+
return new Uint32Array(this.x.memory.buffer, outPtr, n).slice();
|
|
5598
|
+
} catch {
|
|
5599
|
+
return null;
|
|
5600
|
+
}
|
|
5601
|
+
}
|
|
5602
|
+
/**
|
|
5603
|
+
* Row positions sorted by `keys` (NaN = empty, always last; equal keys keep
|
|
5604
|
+
* their order). Null means "use TypeScript".
|
|
5605
|
+
*/
|
|
5606
|
+
sortByKeys(keys, desc) {
|
|
5607
|
+
try {
|
|
5608
|
+
const n = keys.length;
|
|
5609
|
+
const keysPtr = this.freePtr;
|
|
5610
|
+
const outPtr = align8(keysPtr + n * 8);
|
|
5611
|
+
this.ensure(outPtr + n * 4);
|
|
5612
|
+
new Float64Array(this.x.memory.buffer, keysPtr, n).set(keys);
|
|
5613
|
+
this.x.yk_sort(keysPtr, n, desc ? 1 : 0, outPtr);
|
|
5614
|
+
return new Uint32Array(this.x.memory.buffer, outPtr, n).slice();
|
|
5615
|
+
} catch {
|
|
5616
|
+
return null;
|
|
5617
|
+
}
|
|
5618
|
+
}
|
|
5619
|
+
};
|
|
5620
|
+
function formatSearchTime(ms) {
|
|
5621
|
+
if (!(ms >= 0.1)) return "<0.1 ms";
|
|
5622
|
+
return `${ms < 10 ? ms.toFixed(1) : Math.round(ms)} ms`;
|
|
5623
|
+
}
|
|
5624
|
+
function pickRows(rows, positions) {
|
|
5625
|
+
const out = new Array(positions.length);
|
|
5626
|
+
for (let i = 0; i < positions.length; i++) out[i] = rows[positions[i]];
|
|
5627
|
+
return out;
|
|
5628
|
+
}
|
|
5629
|
+
|
|
5286
5630
|
// vanilla/src/grid.js
|
|
5287
5631
|
var UI = {
|
|
5288
5632
|
en: {
|
|
@@ -5389,7 +5733,7 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5389
5733
|
let pageSize = Number(pagination && pagination.pageSize || opts.pageSize) || 10;
|
|
5390
5734
|
let theme = THEMES.includes(opts.theme) ? opts.theme : "default";
|
|
5391
5735
|
let view = ["table", "card", "auto"].includes(opts.view) ? opts.view : "auto";
|
|
5392
|
-
let
|
|
5736
|
+
let loading2 = !!opts.loading;
|
|
5393
5737
|
let narrow = false;
|
|
5394
5738
|
let active = { r: 1, c: 0 };
|
|
5395
5739
|
const selected = new Set((opts.selectedKeys || []).map(String));
|
|
@@ -5431,6 +5775,53 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5431
5775
|
status.textContent = "";
|
|
5432
5776
|
statusTimer = setTimeout(() => status.textContent = text, 40);
|
|
5433
5777
|
};
|
|
5778
|
+
const engineOption = opts.engine === "rust" || opts.engine === "auto" ? opts.engine : "ts";
|
|
5779
|
+
let core = null;
|
|
5780
|
+
let coreLoading = null;
|
|
5781
|
+
let searchIndex = { data: null, columns: null, ready: false };
|
|
5782
|
+
function ensureCore() {
|
|
5783
|
+
if (core || coreLoading || !wantsRustEngine(engineOption, data.length)) return coreLoading || Promise.resolve(core ? "rust" : "ts");
|
|
5784
|
+
coreLoading = loadGridCore().then((mod) => {
|
|
5785
|
+
core = mod ? GridCore.create(mod) : null;
|
|
5786
|
+
if (core && host.isConnected) render();
|
|
5787
|
+
return core ? "rust" : "ts";
|
|
5788
|
+
});
|
|
5789
|
+
return coreLoading;
|
|
5790
|
+
}
|
|
5791
|
+
function rustSearch(q) {
|
|
5792
|
+
if (!core || !wantsRustEngine(engineOption, data.length)) return null;
|
|
5793
|
+
if (searchIndex.data !== data || searchIndex.columns !== columns) {
|
|
5794
|
+
const texts = data.map(
|
|
5795
|
+
(row) => columns.map((c) => norm3(row[c.key]) + SEARCH_SEPARATOR + norm3(formatPlain(c, row[c.key]))).join(SEARCH_SEPARATOR)
|
|
5796
|
+
);
|
|
5797
|
+
searchIndex = { data, columns, ready: core.setSearchTexts(texts) };
|
|
5798
|
+
}
|
|
5799
|
+
if (!searchIndex.ready) return null;
|
|
5800
|
+
const hits = core.search(q);
|
|
5801
|
+
return hits ? pickRows(data, hits) : null;
|
|
5802
|
+
}
|
|
5803
|
+
function rustSort(rows, column, dir) {
|
|
5804
|
+
if (!core || !wantsRustEngine(engineOption, data.length)) return null;
|
|
5805
|
+
if (column.type !== "number" && column.type !== "date") return null;
|
|
5806
|
+
const keys = new Float64Array(rows.length);
|
|
5807
|
+
let lo = Infinity;
|
|
5808
|
+
let hi = -Infinity;
|
|
5809
|
+
for (let i = 0; i < rows.length; i++) {
|
|
5810
|
+
const v = rows[i][column.key];
|
|
5811
|
+
if (v == null || v === "") {
|
|
5812
|
+
keys[i] = NaN;
|
|
5813
|
+
continue;
|
|
5814
|
+
}
|
|
5815
|
+
const k = column.type === "number" ? Number(v) : new Date(v).getTime();
|
|
5816
|
+
if (!Number.isFinite(k)) return null;
|
|
5817
|
+
keys[i] = k;
|
|
5818
|
+
if (k < lo) lo = k;
|
|
5819
|
+
if (k > hi) hi = k;
|
|
5820
|
+
}
|
|
5821
|
+
if (lo === Infinity || !Number.isFinite(hi - lo)) return null;
|
|
5822
|
+
const order = core.sortByKeys(keys, dir === "desc");
|
|
5823
|
+
return order ? pickRows(rows, order) : null;
|
|
5824
|
+
}
|
|
5434
5825
|
function compare2(a, b, column, dir) {
|
|
5435
5826
|
const av = a[column.key];
|
|
5436
5827
|
const bv = b[column.key];
|
|
@@ -5443,24 +5834,51 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5443
5834
|
if (!Number.isFinite(out)) out = String(av).localeCompare(String(bv));
|
|
5444
5835
|
return dir === "desc" ? -out : out;
|
|
5445
5836
|
}
|
|
5837
|
+
let lastSearchTime = null;
|
|
5838
|
+
let lastRunKey = null;
|
|
5446
5839
|
function viewRows() {
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5840
|
+
ensureCore();
|
|
5841
|
+
const t0 = performance.now();
|
|
5842
|
+
let searchedBy = null;
|
|
5843
|
+
let sortedBy = null;
|
|
5844
|
+
let out;
|
|
5845
|
+
const q = query ? norm3(query) : "";
|
|
5846
|
+
const found = q ? rustSearch(q) : null;
|
|
5847
|
+
if (found) {
|
|
5848
|
+
searchedBy = "rust";
|
|
5849
|
+
out = applyGridFilters(found, toolColumns, filters);
|
|
5850
|
+
} else {
|
|
5851
|
+
out = applyGridFilters(data, toolColumns, filters);
|
|
5852
|
+
if (q) {
|
|
5853
|
+
searchedBy = "ts";
|
|
5854
|
+
out = out.filter((row) => columns.some((c) => norm3(row[c.key]).includes(q) || norm3(formatPlain(c, row[c.key])).includes(q)));
|
|
5855
|
+
}
|
|
5451
5856
|
}
|
|
5857
|
+
const matched = out.length;
|
|
5452
5858
|
if (sort && sort.key) {
|
|
5453
5859
|
const column = columns.find((c) => c.key === sort.key);
|
|
5454
|
-
if (column)
|
|
5860
|
+
if (column) {
|
|
5861
|
+
const fast = rustSort(out, column, sort.direction);
|
|
5862
|
+
sortedBy = fast ? "rust" : "ts";
|
|
5863
|
+
out = fast || out.slice().sort((a, b) => compare2(a, b, column, sort.direction));
|
|
5864
|
+
}
|
|
5455
5865
|
}
|
|
5866
|
+
lastSearchTime = searchedBy || sortedBy ? { query: q ? query : "", ms: performance.now() - t0, rows: matched, engine: searchedBy === "rust" || sortedBy === "rust" ? "rust" : "ts" } : null;
|
|
5456
5867
|
return out;
|
|
5457
5868
|
}
|
|
5869
|
+
let numberFormat = null;
|
|
5870
|
+
let dateFormat = null;
|
|
5458
5871
|
function formatPlain(column, value) {
|
|
5459
5872
|
if (value == null || value === "") return "";
|
|
5460
|
-
if (column.type === "number" && Number.isFinite(Number(value)))
|
|
5873
|
+
if (column.type === "number" && Number.isFinite(Number(value))) {
|
|
5874
|
+
numberFormat = numberFormat || new Intl.NumberFormat(numberLocale);
|
|
5875
|
+
return numberFormat.format(Number(value));
|
|
5876
|
+
}
|
|
5461
5877
|
if (column.type === "date") {
|
|
5462
5878
|
const d = new Date(value);
|
|
5463
|
-
|
|
5879
|
+
if (Number.isNaN(d.getTime())) return String(value);
|
|
5880
|
+
dateFormat = dateFormat || new Intl.DateTimeFormat(numberLocale, { year: "numeric", month: "short", day: "numeric" });
|
|
5881
|
+
return dateFormat.format(d);
|
|
5464
5882
|
}
|
|
5465
5883
|
if (column.type === "boolean") return value === true || value === "true" ? t.yes : t.no;
|
|
5466
5884
|
return String(value);
|
|
@@ -5494,15 +5912,19 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5494
5912
|
const { pages, start, end } = pageBounds(rows.length);
|
|
5495
5913
|
const current = rows.slice(start, end);
|
|
5496
5914
|
host.className = `yv-grid yv-theme-${theme}${opts.wrap ? " yv-wrap" : ""}${opts.className ? " " + opts.className : ""}`;
|
|
5497
|
-
host.setAttribute("aria-busy", String(
|
|
5498
|
-
info.textContent = `${rows.length.toLocaleString(numberLocale)} ${t.rows}${selectable ? ` \xB7 ${selected.size.toLocaleString(numberLocale)} ${t.selected}` : ""}`;
|
|
5915
|
+
host.setAttribute("aria-busy", String(loading2));
|
|
5916
|
+
info.textContent = `${rows.length.toLocaleString(numberLocale)} ${t.rows}${selectable ? ` \xB7 ${selected.size.toLocaleString(numberLocale)} ${t.selected}` : ""}${opts.showSearchTime && lastSearchTime ? ` \xB7 ${formatSearchTime(lastSearchTime.ms)} \xB7 ${lastSearchTime.engine === "rust" ? "Rust" : "TS"}` : ""}`;
|
|
5917
|
+
const runKey = lastSearchTime ? [query, sort && sort.key, sort && sort.direction, filters, data] : null;
|
|
5918
|
+
const changed = !runKey || !lastRunKey || runKey.some((v, i) => v !== lastRunKey[i]);
|
|
5919
|
+
if (lastSearchTime && changed && typeof opts.onSearchTime === "function") opts.onSearchTime({ ...lastSearchTime });
|
|
5920
|
+
lastRunKey = runKey;
|
|
5499
5921
|
viewBtn.innerHTML = icon(isCards() ? "grid" : "cards", 18);
|
|
5500
5922
|
viewBtn.setAttribute("aria-label", isCards() ? t.tableView : t.cardView);
|
|
5501
5923
|
viewBtn.title = isCards() ? t.tableView : t.cardView;
|
|
5502
5924
|
renderFilterBar();
|
|
5503
5925
|
const hadFocus = body.contains(document.activeElement);
|
|
5504
|
-
body.replaceChildren(
|
|
5505
|
-
if (hadFocus && !
|
|
5926
|
+
body.replaceChildren(loading2 ? h("div", { class: "yv-loading", role: "status" }, t.loading) : isCards() ? renderCards(current, start) : renderTable(current, start, rows.length));
|
|
5927
|
+
if (hadFocus && !loading2) restoreFocus();
|
|
5506
5928
|
renderPager(rows.length, pages, start, end);
|
|
5507
5929
|
}
|
|
5508
5930
|
function renderTable(current, start, total) {
|
|
@@ -6058,6 +6480,14 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
6058
6480
|
return api;
|
|
6059
6481
|
},
|
|
6060
6482
|
getSort: () => sort ? { ...sort } : null,
|
|
6483
|
+
// engine: "rust" when the Rust engine is active for this grid, else "ts"
|
|
6484
|
+
get engine() {
|
|
6485
|
+
return core && wantsRustEngine(engineOption, data.length) ? "rust" : "ts";
|
|
6486
|
+
},
|
|
6487
|
+
/** Last search/sort: { query, ms, rows, engine } or null. */
|
|
6488
|
+
getSearchTime: () => lastSearchTime ? { ...lastSearchTime } : null,
|
|
6489
|
+
/** Resolves "rust" or "ts" once the engine choice is settled. */
|
|
6490
|
+
whenEngineReady: () => ensureCore().then(() => api.engine),
|
|
6061
6491
|
// highlight
|
|
6062
6492
|
highlight(list, scroll) {
|
|
6063
6493
|
setHighlights(list, scroll === void 0 ? autoScroll : scroll);
|
|
@@ -6101,7 +6531,7 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
6101
6531
|
return api;
|
|
6102
6532
|
},
|
|
6103
6533
|
setLoading(on) {
|
|
6104
|
-
|
|
6534
|
+
loading2 = !!on;
|
|
6105
6535
|
render();
|
|
6106
6536
|
return api;
|
|
6107
6537
|
},
|
|
@@ -6900,7 +7330,7 @@ ${command ? command.say : "Not a voice command. Try: make text bigger, high cont
|
|
|
6900
7330
|
}
|
|
6901
7331
|
|
|
6902
7332
|
// vanilla/src/index.js
|
|
6903
|
-
var VERSION = "5.3.
|
|
7333
|
+
var VERSION = "5.3.7";
|
|
6904
7334
|
(function boot() {
|
|
6905
7335
|
if (!isBrowser2()) return;
|
|
6906
7336
|
if (window.yuktai && window.yuktai.__vanillaInitialized) return;
|