@yuktishaalaa/yuktai 5.3.4 → 5.3.6
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 +38 -0
- package/dist/index.d.mts +64 -2
- package/dist/index.d.ts +64 -2
- package/dist/index.js +56 -56
- package/dist/index.mjs +30 -30
- package/package.json +6 -1
- package/vanilla/README.md +1 -0
- package/vanilla/index.js +420 -15
- package/vanilla/index.min.js +34 -34
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuktishaalaa/yuktai",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.6",
|
|
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,7 @@ 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 |
|
|
76
77
|
| `referenceDate` | "Now" for "this month" questions |
|
|
77
78
|
| `onRowClick(row)`, `onOpenRow(id)` | Enables the `open` tool and "open Ravi" |
|
|
78
79
|
| `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.5 — 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,346 @@ 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 pickRows(rows, positions) {
|
|
5621
|
+
const out = new Array(positions.length);
|
|
5622
|
+
for (let i = 0; i < positions.length; i++) out[i] = rows[positions[i]];
|
|
5623
|
+
return out;
|
|
5624
|
+
}
|
|
5625
|
+
|
|
5286
5626
|
// vanilla/src/grid.js
|
|
5287
5627
|
var UI = {
|
|
5288
5628
|
en: {
|
|
@@ -5389,7 +5729,7 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5389
5729
|
let pageSize = Number(pagination && pagination.pageSize || opts.pageSize) || 10;
|
|
5390
5730
|
let theme = THEMES.includes(opts.theme) ? opts.theme : "default";
|
|
5391
5731
|
let view = ["table", "card", "auto"].includes(opts.view) ? opts.view : "auto";
|
|
5392
|
-
let
|
|
5732
|
+
let loading2 = !!opts.loading;
|
|
5393
5733
|
let narrow = false;
|
|
5394
5734
|
let active = { r: 1, c: 0 };
|
|
5395
5735
|
const selected = new Set((opts.selectedKeys || []).map(String));
|
|
@@ -5431,6 +5771,53 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5431
5771
|
status.textContent = "";
|
|
5432
5772
|
statusTimer = setTimeout(() => status.textContent = text, 40);
|
|
5433
5773
|
};
|
|
5774
|
+
const engineOption = opts.engine === "rust" || opts.engine === "auto" ? opts.engine : "ts";
|
|
5775
|
+
let core = null;
|
|
5776
|
+
let coreLoading = null;
|
|
5777
|
+
let searchIndex = { data: null, columns: null, ready: false };
|
|
5778
|
+
function ensureCore() {
|
|
5779
|
+
if (core || coreLoading || !wantsRustEngine(engineOption, data.length)) return coreLoading || Promise.resolve(core ? "rust" : "ts");
|
|
5780
|
+
coreLoading = loadGridCore().then((mod) => {
|
|
5781
|
+
core = mod ? GridCore.create(mod) : null;
|
|
5782
|
+
if (core && host.isConnected) render();
|
|
5783
|
+
return core ? "rust" : "ts";
|
|
5784
|
+
});
|
|
5785
|
+
return coreLoading;
|
|
5786
|
+
}
|
|
5787
|
+
function rustSearch(q) {
|
|
5788
|
+
if (!core || !wantsRustEngine(engineOption, data.length)) return null;
|
|
5789
|
+
if (searchIndex.data !== data || searchIndex.columns !== columns) {
|
|
5790
|
+
const texts = data.map(
|
|
5791
|
+
(row) => columns.map((c) => norm3(row[c.key]) + SEARCH_SEPARATOR + norm3(formatPlain(c, row[c.key]))).join(SEARCH_SEPARATOR)
|
|
5792
|
+
);
|
|
5793
|
+
searchIndex = { data, columns, ready: core.setSearchTexts(texts) };
|
|
5794
|
+
}
|
|
5795
|
+
if (!searchIndex.ready) return null;
|
|
5796
|
+
const hits = core.search(q);
|
|
5797
|
+
return hits ? pickRows(data, hits) : null;
|
|
5798
|
+
}
|
|
5799
|
+
function rustSort(rows, column, dir) {
|
|
5800
|
+
if (!core || !wantsRustEngine(engineOption, data.length)) return null;
|
|
5801
|
+
if (column.type !== "number" && column.type !== "date") return null;
|
|
5802
|
+
const keys = new Float64Array(rows.length);
|
|
5803
|
+
let lo = Infinity;
|
|
5804
|
+
let hi = -Infinity;
|
|
5805
|
+
for (let i = 0; i < rows.length; i++) {
|
|
5806
|
+
const v = rows[i][column.key];
|
|
5807
|
+
if (v == null || v === "") {
|
|
5808
|
+
keys[i] = NaN;
|
|
5809
|
+
continue;
|
|
5810
|
+
}
|
|
5811
|
+
const k = column.type === "number" ? Number(v) : new Date(v).getTime();
|
|
5812
|
+
if (!Number.isFinite(k)) return null;
|
|
5813
|
+
keys[i] = k;
|
|
5814
|
+
if (k < lo) lo = k;
|
|
5815
|
+
if (k > hi) hi = k;
|
|
5816
|
+
}
|
|
5817
|
+
if (lo === Infinity || !Number.isFinite(hi - lo)) return null;
|
|
5818
|
+
const order = core.sortByKeys(keys, dir === "desc");
|
|
5819
|
+
return order ? pickRows(rows, order) : null;
|
|
5820
|
+
}
|
|
5434
5821
|
function compare2(a, b, column, dir) {
|
|
5435
5822
|
const av = a[column.key];
|
|
5436
5823
|
const bv = b[column.key];
|
|
@@ -5444,23 +5831,35 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5444
5831
|
return dir === "desc" ? -out : out;
|
|
5445
5832
|
}
|
|
5446
5833
|
function viewRows() {
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5834
|
+
ensureCore();
|
|
5835
|
+
let out;
|
|
5836
|
+
const q = query ? norm3(query) : "";
|
|
5837
|
+
const found = q ? rustSearch(q) : null;
|
|
5838
|
+
if (found) {
|
|
5839
|
+
out = applyGridFilters(found, toolColumns, filters);
|
|
5840
|
+
} else {
|
|
5841
|
+
out = applyGridFilters(data, toolColumns, filters);
|
|
5842
|
+
if (q) out = out.filter((row) => columns.some((c) => norm3(row[c.key]).includes(q) || norm3(formatPlain(c, row[c.key])).includes(q)));
|
|
5451
5843
|
}
|
|
5452
5844
|
if (sort && sort.key) {
|
|
5453
5845
|
const column = columns.find((c) => c.key === sort.key);
|
|
5454
|
-
if (column) out = out.slice().sort((a, b) => compare2(a, b, column, sort.direction));
|
|
5846
|
+
if (column) out = rustSort(out, column, sort.direction) || out.slice().sort((a, b) => compare2(a, b, column, sort.direction));
|
|
5455
5847
|
}
|
|
5456
5848
|
return out;
|
|
5457
5849
|
}
|
|
5850
|
+
let numberFormat = null;
|
|
5851
|
+
let dateFormat = null;
|
|
5458
5852
|
function formatPlain(column, value) {
|
|
5459
5853
|
if (value == null || value === "") return "";
|
|
5460
|
-
if (column.type === "number" && Number.isFinite(Number(value)))
|
|
5854
|
+
if (column.type === "number" && Number.isFinite(Number(value))) {
|
|
5855
|
+
numberFormat = numberFormat || new Intl.NumberFormat(numberLocale);
|
|
5856
|
+
return numberFormat.format(Number(value));
|
|
5857
|
+
}
|
|
5461
5858
|
if (column.type === "date") {
|
|
5462
5859
|
const d = new Date(value);
|
|
5463
|
-
|
|
5860
|
+
if (Number.isNaN(d.getTime())) return String(value);
|
|
5861
|
+
dateFormat = dateFormat || new Intl.DateTimeFormat(numberLocale, { year: "numeric", month: "short", day: "numeric" });
|
|
5862
|
+
return dateFormat.format(d);
|
|
5464
5863
|
}
|
|
5465
5864
|
if (column.type === "boolean") return value === true || value === "true" ? t.yes : t.no;
|
|
5466
5865
|
return String(value);
|
|
@@ -5494,15 +5893,15 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
5494
5893
|
const { pages, start, end } = pageBounds(rows.length);
|
|
5495
5894
|
const current = rows.slice(start, end);
|
|
5496
5895
|
host.className = `yv-grid yv-theme-${theme}${opts.wrap ? " yv-wrap" : ""}${opts.className ? " " + opts.className : ""}`;
|
|
5497
|
-
host.setAttribute("aria-busy", String(
|
|
5896
|
+
host.setAttribute("aria-busy", String(loading2));
|
|
5498
5897
|
info.textContent = `${rows.length.toLocaleString(numberLocale)} ${t.rows}${selectable ? ` \xB7 ${selected.size.toLocaleString(numberLocale)} ${t.selected}` : ""}`;
|
|
5499
5898
|
viewBtn.innerHTML = icon(isCards() ? "grid" : "cards", 18);
|
|
5500
5899
|
viewBtn.setAttribute("aria-label", isCards() ? t.tableView : t.cardView);
|
|
5501
5900
|
viewBtn.title = isCards() ? t.tableView : t.cardView;
|
|
5502
5901
|
renderFilterBar();
|
|
5503
5902
|
const hadFocus = body.contains(document.activeElement);
|
|
5504
|
-
body.replaceChildren(
|
|
5505
|
-
if (hadFocus && !
|
|
5903
|
+
body.replaceChildren(loading2 ? h("div", { class: "yv-loading", role: "status" }, t.loading) : isCards() ? renderCards(current, start) : renderTable(current, start, rows.length));
|
|
5904
|
+
if (hadFocus && !loading2) restoreFocus();
|
|
5506
5905
|
renderPager(rows.length, pages, start, end);
|
|
5507
5906
|
}
|
|
5508
5907
|
function renderTable(current, start, total) {
|
|
@@ -6058,6 +6457,12 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
6058
6457
|
return api;
|
|
6059
6458
|
},
|
|
6060
6459
|
getSort: () => sort ? { ...sort } : null,
|
|
6460
|
+
// engine: "rust" when the Rust engine is active for this grid, else "ts"
|
|
6461
|
+
get engine() {
|
|
6462
|
+
return core && wantsRustEngine(engineOption, data.length) ? "rust" : "ts";
|
|
6463
|
+
},
|
|
6464
|
+
/** Resolves "rust" or "ts" once the engine choice is settled. */
|
|
6465
|
+
whenEngineReady: () => ensureCore().then(() => api.engine),
|
|
6061
6466
|
// highlight
|
|
6062
6467
|
highlight(list, scroll) {
|
|
6063
6468
|
setHighlights(list, scroll === void 0 ? autoScroll : scroll);
|
|
@@ -6101,7 +6506,7 @@ Missing landmarks: ${missing.join(", ")}.` : ""}`,
|
|
|
6101
6506
|
return api;
|
|
6102
6507
|
},
|
|
6103
6508
|
setLoading(on) {
|
|
6104
|
-
|
|
6509
|
+
loading2 = !!on;
|
|
6105
6510
|
render();
|
|
6106
6511
|
return api;
|
|
6107
6512
|
},
|
|
@@ -6900,7 +7305,7 @@ ${command ? command.say : "Not a voice command. Try: make text bigger, high cont
|
|
|
6900
7305
|
}
|
|
6901
7306
|
|
|
6902
7307
|
// vanilla/src/index.js
|
|
6903
|
-
var VERSION = "5.3.
|
|
7308
|
+
var VERSION = "5.3.5";
|
|
6904
7309
|
(function boot() {
|
|
6905
7310
|
if (!isBrowser2()) return;
|
|
6906
7311
|
if (window.yuktai && window.yuktai.__vanillaInitialized) return;
|