plug-code 2.0.4 → 2.3.2

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 (95) hide show
  1. package/LICENSE +11 -5
  2. package/README.md +203 -70
  3. package/dist/core/helpers/core.d.ts +3 -2
  4. package/dist/core/helpers/core.d.ts.map +1 -0
  5. package/dist/core/helpers/core.js +22 -17
  6. package/dist/core/helpers/core.js.map +1 -0
  7. package/dist/core/hooks/plcHooks.d.ts +1 -0
  8. package/dist/core/hooks/plcHooks.d.ts.map +1 -0
  9. package/dist/core/hooks/plcHooks.js +4 -9
  10. package/dist/core/hooks/plcHooks.js.map +1 -0
  11. package/dist/core/plcAPI.d.ts +13 -2
  12. package/dist/core/plcAPI.d.ts.map +1 -0
  13. package/dist/core/plcAPI.js +52 -26
  14. package/dist/core/plcAPI.js.map +1 -0
  15. package/dist/core/plcPipeline.d.ts +1 -0
  16. package/dist/core/plcPipeline.d.ts.map +1 -0
  17. package/dist/core/plcPipeline.js +1 -0
  18. package/dist/core/plcPipeline.js.map +1 -0
  19. package/dist/core/plcScheduler.d.ts +1 -0
  20. package/dist/core/plcScheduler.d.ts.map +1 -0
  21. package/dist/core/plcScheduler.js +1 -0
  22. package/dist/core/plcScheduler.js.map +1 -0
  23. package/dist/core/plcStore.d.ts +1 -0
  24. package/dist/core/plcStore.d.ts.map +1 -0
  25. package/dist/core/plcStore.js +4 -3
  26. package/dist/core/plcStore.js.map +1 -0
  27. package/dist/core/ui/plcCore.d.ts +9 -5
  28. package/dist/core/ui/plcCore.d.ts.map +1 -0
  29. package/dist/core/ui/plcCore.js +152 -36
  30. package/dist/core/ui/plcCore.js.map +1 -0
  31. package/dist/core/ui/plcErrorBoundary.d.ts +1 -0
  32. package/dist/core/ui/plcErrorBoundary.d.ts.map +1 -0
  33. package/dist/core/ui/plcErrorBoundary.js +1 -0
  34. package/dist/core/ui/plcErrorBoundary.js.map +1 -0
  35. package/dist/core/ui/plcInspector.d.ts +1 -0
  36. package/dist/core/ui/plcInspector.d.ts.map +1 -0
  37. package/dist/core/ui/plcInspector.js +1 -0
  38. package/dist/core/ui/plcInspector.js.map +1 -0
  39. package/dist/core/ui/plcLayout.d.ts +12 -0
  40. package/dist/core/ui/plcLayout.d.ts.map +1 -0
  41. package/dist/core/ui/plcLayout.js +53 -16
  42. package/dist/core/ui/plcLayout.js.map +1 -0
  43. package/dist/core/ui/plcSlotRenderer.d.ts +7 -0
  44. package/dist/core/ui/plcSlotRenderer.d.ts.map +1 -0
  45. package/dist/core/ui/plcSlotRenderer.js +11 -0
  46. package/dist/core/ui/plcSlotRenderer.js.map +1 -0
  47. package/dist/core/workers/codes.d.ts +2 -0
  48. package/dist/core/workers/codes.d.ts.map +1 -0
  49. package/dist/core/workers/codes.js +16 -0
  50. package/dist/core/workers/codes.js.map +1 -0
  51. package/dist/core/workers/helpers/filter.worker.d.ts +2 -0
  52. package/dist/core/workers/helpers/filter.worker.d.ts.map +1 -0
  53. package/dist/core/workers/helpers/filter.worker.js +57 -0
  54. package/dist/core/workers/helpers/filter.worker.js.map +1 -0
  55. package/dist/core/workers/search.worker.d.ts +2 -0
  56. package/dist/core/workers/search.worker.d.ts.map +1 -0
  57. package/dist/core/workers/search.worker.js +82 -0
  58. package/dist/core/workers/search.worker.js.map +1 -0
  59. package/dist/core.d.ts +5 -24
  60. package/dist/core.d.ts.map +1 -0
  61. package/dist/core.js +10 -1
  62. package/dist/core.js.map +1 -0
  63. package/dist/index.d.ts +1 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +1 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/simple.d.ts +42 -0
  68. package/dist/simple.d.ts.map +1 -0
  69. package/dist/simple.js +88 -0
  70. package/dist/simple.js.map +1 -0
  71. package/dist/types/core/api.d.ts +1 -0
  72. package/dist/types/core/api.d.ts.map +1 -0
  73. package/dist/types/core/api.js +1 -0
  74. package/dist/types/core/api.js.map +1 -0
  75. package/dist/types/core/general.d.ts +2 -2
  76. package/dist/types/core/general.d.ts.map +1 -0
  77. package/dist/types/core/general.js +1 -0
  78. package/dist/types/core/general.js.map +1 -0
  79. package/dist/types/core/index.d.ts +1 -0
  80. package/dist/types/core/index.d.ts.map +1 -0
  81. package/dist/types/core/index.js +1 -0
  82. package/dist/types/core/index.js.map +1 -0
  83. package/dist/types/core/ui.d.ts +8 -2
  84. package/dist/types/core/ui.d.ts.map +1 -0
  85. package/dist/types/core/ui.js +1 -0
  86. package/dist/types/core/ui.js.map +1 -0
  87. package/dist/types/core.d.ts +45 -0
  88. package/dist/types/core.d.ts.map +1 -0
  89. package/dist/types/core.js +2 -0
  90. package/dist/types/core.js.map +1 -0
  91. package/dist/types/registry.d.ts +1 -0
  92. package/dist/types/registry.d.ts.map +1 -0
  93. package/dist/types/registry.js +1 -0
  94. package/dist/types/registry.js.map +1 -0
  95. package/package.json +27 -3
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { isEqual, shallowCompare } from "./helpers/core";
2
+ import { shallowEqual, deepEqual } from "./helpers/core";
3
3
  import { PlcPipeline } from "./plcPipeline";
4
4
  import { LRUCache, PlcStore } from "./plcStore";
5
5
  import { Scheduler } from "./plcScheduler";
@@ -10,12 +10,13 @@ export class PlcAPI {
10
10
  scheduler;
11
11
  layout;
12
12
  compiledPipelines = new Map();
13
+ moduleAssets = new Map();
13
14
  receiveCache = new LRUCache(300);
14
- // Comandos registry
15
+ // Commands Registry
15
16
  commands = new Map();
16
17
  activeDependencyTracker = null;
17
- // Loaded features manager
18
- loadedFeatures = new Set();
18
+ // Loaded modules manager
19
+ loadedModules = new Set();
19
20
  constructor() {
20
21
  this.store = new PlcStore();
21
22
  this.pipeline = new PlcPipeline();
@@ -89,8 +90,8 @@ export class PlcAPI {
89
90
  const cached = this.receiveCache.get(channelStr);
90
91
  const equality = opts?.equality ?? 'identity';
91
92
  if (cached) {
92
- const sameInput = equality === 'identity' ? cached.input === initialData : isEqual(cached.input, initialData);
93
- const sameContext = shallowCompare(cached.contextArgs, context);
93
+ const sameInput = equality === 'identity' ? cached.input === initialData : shallowEqual(cached.input, initialData);
94
+ const sameContext = deepEqual(cached.contextArgs, context);
94
95
  if (sameInput && sameContext) {
95
96
  let depsChanged = false;
96
97
  for (const [key, lastValue] of cached.dependencies) {
@@ -148,7 +149,7 @@ export class PlcAPI {
148
149
  return res;
149
150
  }
150
151
  // ----------------------
151
- // Command System (SOLUCIÓN AQUI)
152
+ // Command System
152
153
  // ----------------------
153
154
  registerCommand(id, fn) {
154
155
  if (this.commands.has(id)) {
@@ -200,10 +201,10 @@ export class PlcAPI {
200
201
  isComputing = true;
201
202
  try {
202
203
  const inputs = dependencies.map(dep => this.getStore(dep));
203
- if (lastInputs && inputs.every((v, i) => isEqual(v, lastInputs[i])))
204
+ if (lastInputs && inputs.every((v, i) => shallowEqual(v, lastInputs[i])))
204
205
  return;
205
206
  const result = calculator(...inputs);
206
- if (isEqual(result, lastOutput)) {
207
+ if (shallowEqual(result, lastOutput)) {
207
208
  lastInputs = inputs;
208
209
  return;
209
210
  }
@@ -248,10 +249,10 @@ export class PlcAPI {
248
249
  isComputing = true;
249
250
  try {
250
251
  const inputs = dependencies.map(dep => this.getSubstore(substore, dep));
251
- if (lastInputs && inputs.every((v, i) => isEqual(v, lastInputs[i])))
252
+ if (lastInputs && inputs.every((v, i) => shallowEqual(v, lastInputs[i])))
252
253
  return;
253
254
  const result = calculator(...inputs);
254
- if (isEqual(result, lastOutput)) {
255
+ if (shallowEqual(result, lastOutput)) {
255
256
  lastInputs = inputs;
256
257
  return;
257
258
  }
@@ -285,8 +286,8 @@ export class PlcAPI {
285
286
  }
286
287
  watch(key, selector, callback) {
287
288
  if (key.includes(":")) {
288
- const [feature, subKey] = key.split(":");
289
- return this.watchSubstore(feature, subKey, selector, callback);
289
+ const [module, subKey] = key.split(":");
290
+ return this.watchSubstore(module, subKey, selector, callback);
290
291
  }
291
292
  return this.watchStore(key, selector, callback);
292
293
  }
@@ -296,7 +297,7 @@ export class PlcAPI {
296
297
  const handleChange = () => {
297
298
  const version = this._triggerVersion.get(storeKey) || 0;
298
299
  const newValue = selector(this.getStore(storeKey));
299
- if (version !== prevVersion || !isEqual(newValue, prevValue)) {
300
+ if (version !== prevVersion || !shallowEqual(newValue, prevValue)) {
300
301
  const old = prevValue;
301
302
  prevValue = newValue;
302
303
  prevVersion = version;
@@ -312,7 +313,7 @@ export class PlcAPI {
312
313
  const handleChange = () => {
313
314
  const version = this._triggerVersion.get(storeKey) || 0;
314
315
  const newValue = selector(this.getSubstore(substore, key));
315
- if (version !== prevVersion || !isEqual(newValue, prevValue)) {
316
+ if (version !== prevVersion || !shallowEqual(newValue, prevValue)) {
316
317
  const old = prevValue;
317
318
  prevValue = newValue;
318
319
  prevVersion = version;
@@ -335,7 +336,7 @@ export class PlcAPI {
335
336
  let prevCombined = getCombinedState();
336
337
  const handleChange = () => {
337
338
  const currentCombined = getCombinedState();
338
- if (!isEqual(prevCombined, currentCombined)) {
339
+ if (!shallowEqual(prevCombined, currentCombined)) {
339
340
  const old = prevCombined;
340
341
  prevCombined = currentCombined;
341
342
  callback(currentCombined, old);
@@ -364,6 +365,9 @@ export class PlcAPI {
364
365
  register(slot, id, componentFn, priority = 0, keepAlive = false) {
365
366
  this.layout.register(slot, id, componentFn, priority, keepAlive);
366
367
  }
368
+ registerMany(slot, items) {
369
+ this.layout.registerMany(slot, items);
370
+ }
367
371
  wrap(slot, wrapper) {
368
372
  this.layout.wrap(slot, wrapper);
369
373
  }
@@ -401,7 +405,7 @@ export class PlcAPI {
401
405
  prevValuesRef.current.set(keyStr, getValue());
402
406
  unsubscribers.push(this.store.subscribe(keyStr, () => {
403
407
  const newVal = getValue();
404
- if (!isEqual(prevValuesRef.current.get(keyStr), newVal)) {
408
+ if (!shallowEqual(prevValuesRef.current.get(keyStr), newVal)) {
405
409
  prevValuesRef.current.set(keyStr, newVal);
406
410
  forceUpdate();
407
411
  }
@@ -416,16 +420,22 @@ export class PlcAPI {
416
420
  // Modules
417
421
  // ----------------------
418
422
  registerModule(manifest) {
419
- if (this.loadedFeatures.has(manifest.name))
420
- return;
421
- if (manifest.state) {
423
+ const moduleName = manifest.name;
424
+ const isUpdate = this.loadedModules.has(moduleName);
425
+ const previousAssets = this.moduleAssets.get(moduleName) || [];
426
+ const currentAssets = [];
427
+ this.moduleAssets.set(moduleName, currentAssets);
428
+ const track = (slot, id) => {
429
+ currentAssets.push({ slot, id });
430
+ };
431
+ if (manifest.state && !isUpdate) {
422
432
  Object.entries(manifest.state).forEach(([key, val]) => {
423
- this.createSubstore(manifest.name, key, val);
433
+ this.createSubstore(moduleName, key, val);
424
434
  });
425
435
  }
426
436
  if (manifest.commands) {
427
437
  Object.entries(manifest.commands).forEach(([cmdId, fn]) => {
428
- const fullId = cmdId.includes(":") ? cmdId : `${manifest.name}:${cmdId}`;
438
+ const fullId = cmdId.includes(":") ? cmdId : `${moduleName}:${cmdId}`;
429
439
  this.commands.set(fullId, fn);
430
440
  });
431
441
  }
@@ -433,14 +443,29 @@ export class PlcAPI {
433
443
  Object.entries(manifest.slots).forEach(([slotName, components]) => {
434
444
  components.forEach(comp => {
435
445
  this.register(slotName, comp.id, comp.component, comp.priority, comp.keepAlive);
446
+ track(slotName, comp.id);
436
447
  });
437
448
  });
438
449
  }
439
450
  if (manifest.onLoad) {
440
- manifest.onLoad(this);
451
+ manifest.onLoad();
452
+ }
453
+ if (isUpdate) {
454
+ previousAssets.forEach(prev => {
455
+ const stillExists = currentAssets.some(curr => curr.slot === prev.slot && curr.id === prev.id);
456
+ if (!stillExists) {
457
+ console.debug(`[PlcAPI] Cleaning up removed slot item: ${prev.slot} / ${prev.id}`);
458
+ this.layout.unregister(prev.slot, prev.id);
459
+ }
460
+ });
461
+ }
462
+ this.loadedModules.add(moduleName);
463
+ if (!isUpdate) {
464
+ console.debug(`[PlcAPI] Module loaded: ${moduleName}`);
465
+ }
466
+ else {
467
+ console.debug(`[PlcAPI] Module updated (HMR): ${moduleName}`);
441
468
  }
442
- this.loadedFeatures.add(manifest.name);
443
- console.debug(`[PlcAPI] Feature loaded: ${manifest.name}`);
444
469
  }
445
470
  async loadFeature(importer) {
446
471
  try {
@@ -448,7 +473,7 @@ export class PlcAPI {
448
473
  this.registerModule(module.default);
449
474
  }
450
475
  catch (err) {
451
- console.error(`[PlcAPI] Failed to load feature`, err);
476
+ console.error(`[PlcAPI] Failed to load module`, err);
452
477
  throw err;
453
478
  }
454
479
  }
@@ -470,3 +495,4 @@ export class PlcAPI {
470
495
  };
471
496
  }
472
497
  }
498
+ //# sourceMappingURL=plcAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcAPI.js","sourceRoot":"","sources":["../../src/core/plcAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAY,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkC3C,MAAM,OAAO,MAAM;IACP,KAAK,CAAW;IAChB,QAAQ,CAAc;IACtB,SAAS,CAAY;IACtB,MAAM,CAAY;IAEjB,iBAAiB,GAAG,IAAI,GAAG,EAAkD,CAAC;IAC9E,YAAY,GAAG,IAAI,GAAG,EAA+C,CAAC;IACtE,YAAY,GAAG,IAAI,QAAQ,CAA4B,GAAG,CAAC,CAAC;IAEpE,oBAAoB;IACZ,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IACxC,uBAAuB,GAA4B,IAAI,CAAC;IAGhE,yBAAyB;IACjB,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C;QACI,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,yBAAyB;IACzB,aAAa;IACb,yBAAyB;IACzB,WAAW,CAAqB,GAAM,EAAE,OAAsB;QAC1D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAa,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAqB,GAAM;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAa,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,GAAa,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,QAAQ,CACJ,GAAM,EACN,OAAgF,EAChF,WAAqB,KAAK,EAC1B,gBAAyB,KAAK;QAE9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;YACzB,IAAI,aAAa,EAAE,CAAC;gBAChB,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;oBACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAa,EAAE,OAAO,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAa,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;QACL,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAED,yBAAyB;IACzB,YAAY;IACZ,yBAAyB;IACzB,cAAc,CACV,QAAW,EACX,GAAM,EACN,OAA+B;QAE/B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAkB,EAAE,GAAa,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CACP,QAAW,EACX,GAAM;QAEN,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAkB,EAAE,GAAa,CAAC,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAC,GAAG,QAAQ,IAAI,GAAa,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,WAAW,CACP,QAAW,EACX,GAAM,EACN,OAA2G,EAC3G,WAAqB,KAAK,EAC1B,gBAAyB,KAAK;QAE9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;YACzB,IAAI,aAAa,EAAE,CAAC;gBAChB,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;oBACvB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAkB,EAAE,GAAa,EAAE,OAAc,CAAC,CAAC;gBAC9E,CAAC,CAAC,CAAC;YACP,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAkB,EAAE,GAAa,EAAE,OAAc,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjB,CAAC;IAED,yBAAyB;IACzB,sBAAsB;IACtB,yBAAyB;IACf,gBAAgB,CAAC,GAAW,EAAE,KAAU;QAC9C,IAAI,IAAI,CAAC,uBAAuB;YAAE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnF,CAAC;IAED,yBAAyB;IACzB,aAAa;IACb,yBAAyB;IACzB,aAAa,CACT,OAAe,EACf,EAAU,EACV,EAAyC,EACzC,WAAmB,CAAC;QAEpB,MAAM,CAAC,GAAoB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAE5C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CACd,OAAe,EACf,WAAc,EACd,UAAe,EAAE,EACjB,IAAqD;QAErD,MAAM,UAAU,GAAG,OAAO,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC;QAE9C,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACnH,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE3D,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;gBAC3B,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC;oBACZ,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC1C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACJ,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACvC,CAAC;oBAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAAC,WAAW,GAAG,IAAI,CAAC;wBAAC,MAAM;oBAAC,CAAC;gBAC7D,CAAC;gBACD,IAAI,CAAC,WAAW;oBAAE,OAAO,MAAM,CAAC,MAAM,CAAC;YAC3C,CAAC;QACL,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACjD,MAAM,GAAG,QAAQ,CAAC;QACtB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAe,CAAC;QAC9C,IAAI,CAAC,uBAAuB,GAAG,cAAc,CAAC;QAE9C,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;gBAC1E,OAAO,MAAM,MAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACP,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE;YAC9B,KAAK,EAAE,WAAW;YAClB,MAAM;YACN,YAAY,EAAE,cAAc;YAC5B,WAAW,EAAE,OAAO;SACvB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO,CAAmB,OAAU,EAAE,WAAgB,EAAE,UAAe,EAAE;QACrE,MAAM,UAAU,GAAG,OAAiB,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAE9F,MAAM,GAAG,GAAI,MAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACrI,OAAO,GAAG,CAAC;IACf,CAAC;IAGD,yBAAyB;IACzB,iBAAiB;IACjB,yBAAyB;IACzB,eAAe,CACX,EAAK,EACL,EAAiF;QAEjF,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAY,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAY,EAAE,EAAS,CAAC,CAAC;IAC/C,CAAC;IAED,WAAW,CACP,EAAK,EACL,OAAiH;QAEjH,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAAC;YACvE,OAAO;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAY,EAAE,OAAO,CAAC,SAAS,CAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,OAAO,CACT,EAAK,EACL,OAA2B;QAE3B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC;YACD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,UAAU;IACV,yBAAyB;IACzB,WAAW,CACP,SAAY,EACZ,UAAoB,EACpB,YAAwB,EACxB,UAAsC;QAEtC,IAAI,UAAU,GAAiB,IAAI,CAAC;QACpC,IAAI,UAAe,CAAC;QACpB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxB,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE;YACpB,IAAI,WAAW;gBAAE,OAAO;YACxB,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3D,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,UAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO;gBAElF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC;gBACrC,IAAI,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;oBAAC,UAAU,GAAG,MAAM,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAEtE,UAAU,GAAG,MAAM,CAAC;gBACpB,UAAU,GAAG,MAAM,CAAC;gBAEpB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAU,EAAE,EAAE;oBACrC,IAAI,CAAC,KAAK;wBAAE,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;oBACnD,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;oBAClC,OAAO;gBACX,CAAC,CAAC,CAAC;YACP,CAAC;oBAAS,CAAC;gBAAC,WAAW,GAAG,KAAK,CAAC;YAAC,CAAC;QACtC,CAAC,CAAC;QAEF,UAAU,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAa,EAAE,cAAc,CAAC,CAAC,CAAC;QAEnG,OAAO;YACH,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;YAC1B,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC;IACN,CAAC;IAED,cAAc,CACV,QAAW,EACX,SAAY,EACZ,UAAqB,EACrB,YAAsB,EACtB,UAAsC;QAEtC,IAAI,UAAU,GAAiB,IAAI,CAAC;QACpC,IAAI,UAAe,CAAC;QACpB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxB,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE;YACpB,IAAI,WAAW;gBAAE,OAAO;YACxB,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAU,CAAC,CAAC,CAAC;gBAC/E,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,UAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO;gBAElF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC;gBACrC,IAAI,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;oBAAC,UAAU,GAAG,MAAM,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAEtE,UAAU,GAAG,MAAM,CAAC;gBACpB,UAAU,GAAG,MAAM,CAAC;gBAEpB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,KAAU,EAAO,EAAE;oBACvD,IAAI,CAAC,KAAK;wBAAE,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;oBACnD,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;oBAClC,OAAO;gBACX,CAAC,CAAC,CAAC;YACP,CAAC;oBAAS,CAAC;gBAAC,WAAW,GAAG,KAAK,CAAC;YAAC,CAAC;QACtC,CAAC,CAAC;QAEF,UAAU,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACzC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,EAAE,cAAc,CAAC,CAC7D,CAAC;QAEF,OAAO;YACH,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;YAC1B,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC;IACN,CAAC;IAED,yBAAyB;IACzB,WAAW;IACX,yBAAyB;IACjB,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,WAAW,CAAC,GAAW;QAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAcD,KAAK,CAAC,GAAW,EAAE,QAA4B,EAAE,QAAgD;QAC7F,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAI,QAAgB,EAAE,QAA0B,EAAE,QAA4C;QACpG,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAe,CAAC,CAAC,CAAC;QAEzD,MAAM,YAAY,GAAG,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAe,CAAC,CAAC,CAAC;YAE1D,IAAI,OAAO,KAAK,WAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;gBAChE,MAAM,GAAG,GAAG,SAAS,CAAC;gBACtB,SAAS,GAAG,QAAQ,CAAC;gBACrB,WAAW,GAAG,OAAO,CAAC;gBACtB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,aAAa,CAAI,QAAgB,EAAE,GAAW,EAAE,QAA0B,EAAE,QAA4C;QACpH,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;QACtC,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAe,EAAE,GAAG,CAAC,CAAC,CAAC;QAEjE,MAAM,YAAY,GAAG,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAe,EAAE,GAAG,CAAC,CAAC,CAAC;YAElE,IAAI,OAAO,KAAK,WAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;gBAChE,MAAM,GAAG,GAAG,SAAS,CAAC;gBACtB,SAAS,GAAG,QAAQ,CAAC;gBACrB,WAAW,GAAG,OAAO,CAAC;gBACtB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,cAAc,CACV,WAA6F,EAC7F,QAA8C;QAE9C,MAAM,gBAAgB,GAAG,GAAM,EAAE;YAC7B,IAAI,MAAM,GAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ;oBACtB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAe,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBAChE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC,CAAC;gBACpD,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACrC,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;QAEF,IAAI,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,GAAG,EAAE;YACtB,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;gBAC/C,MAAM,GAAG,GAAG,YAAY,CAAC;gBACzB,YAAY,GAAG,eAAe,CAAC;gBAC/B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACxC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YACtE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAGD,yBAAyB;IACzB,SAAS;IACT,yBAAyB;IACzB,MAAM,CAAC,SAAiB;QACpB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,KAAK;IACL,yBAAyB;IACzB,QAAQ,CACJ,IAAO,EACP,EAAU,EACV,WAAsD,EACtD,WAAmB,CAAC,EACpB,YAAqB,KAAK;QAE1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAc,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/E,CAAC;IAED,YAAY,CACR,IAAO,EACP,KAAqG;QAErG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAc,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAoB,IAAO,EAAE,OAAoB;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAc,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAoB,IAAO,EAAE,QAAgB,EAAE,KAAa,EAAE,WAAkC;QACjG,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAC;QACzE,IAAI,WAAmB,CAAC;QAExB,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,6BAA6B,QAAQ,wBAAwB,IAAI,mBAAmB,KAAK,eAAe,CAAC,CAAC;YACvH,WAAW,GAAG,CAAC,GAAG,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAc,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAoB,IAAO,EAAE,KAAoB;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAc,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,WAAW,CACP,IAAO,EACP,MAMC;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAc,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,QAA0C,EAAE,YAAgE;QAChH,OAAO,CAAC,KAAU,EAAE,EAAE;YAClB,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,GAAG,EAAE,CAAC,CAAC;YAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,MAAM,aAAa,GAAsB,EAAE,CAAC;gBAE5C,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACvB,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;oBACzD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ;wBAC1C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAU,CAAC;wBAC3B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;4BACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;4BACvE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;oBAE1C,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAE9C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE;wBACjD,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;wBAC1B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;4BAC3D,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4BAC1C,WAAW,EAAE,CAAC;wBAClB,CAAC;oBACL,CAAC,CAAC,CAAC,CAAC;gBACR,CAAC,CAAC,CAAC;gBAEH,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;IACN,CAAC;IAED,yBAAyB;IACzB,UAAU;IACV,yBAAyB;IACzB,cAAc,CAAC,QAAwB;QACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAE/D,MAAM,aAAa,GAAwC,EAAE,CAAC;QAC9D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;YACvC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAClD,IAAI,CAAC,cAAc,CAAC,UAAiB,EAAE,GAAU,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;gBACtD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;gBACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE;gBAC9D,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACtB,IAAI,CAAC,QAAQ,CAAC,QAAe,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvF,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACX,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1C,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CACjD,CAAC;gBAEF,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAoD;QAClE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;YACrD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,WAAW;IACX,yBAAyB;IACzB,cAAc,CAAO,SAA8B,EAAE,UAAiC;QAClF,IAAI,QAAQ,GAAiB,IAAI,CAAC;QAClC,IAAI,UAAU,GAAa,IAAI,CAAC;QAEhC,OAAO,CAAC,KAAQ,EAAK,EAAE;YACnB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAE9B,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9F,OAAO,UAAW,CAAC;YACvB,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;YACnC,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,GAAG,MAAM,CAAC;YACpB,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IACN,CAAC;CACJ"}
@@ -6,3 +6,4 @@ export declare class PlcPipeline {
6
6
  getTransforms(channel: string): transformerType[];
7
7
  compilePipeline(channel: string): (input: any, ctx: any) => Promise<any>;
8
8
  }
9
+ //# sourceMappingURL=plcPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcPipeline.d.ts","sourceRoot":"","sources":["../../src/core/plcPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,WAAW;IACpB,OAAO,CAAC,UAAU,CAA6C;IAE/D,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe;IAcrD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAU3C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAIjD,eAAe,CAAC,OAAO,EAAE,MAAM,IAEb,OAAO,GAAG,EAAE,KAAK,GAAG;CAQzC"}
@@ -33,3 +33,4 @@ export class PlcPipeline {
33
33
  };
34
34
  }
35
35
  }
36
+ //# sourceMappingURL=plcPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcPipeline.js","sourceRoot":"","sources":["../../src/core/plcPipeline.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACZ,UAAU,GAAmC,IAAI,GAAG,EAAE,CAAC;IAE/D,iBAAiB,CAAC,OAAe,EAAE,CAAkB;QACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAE/C,IAAI,GAAG,IAAI,CAAC;YACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;YACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAC,OAAe,EAAE,EAAU;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI;YACL,OAAO;QAEX,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAC7C,CAAC;IAED,eAAe,CAAC,OAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,KAAK,EAAE,KAAU,EAAE,GAAQ,EAAE,EAAE;YAClC,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAA;IACL,CAAC;CACJ"}
@@ -5,3 +5,4 @@ export declare class Scheduler {
5
5
  schedule(fn: () => void, priority?: Priority): void;
6
6
  private flush;
7
7
  }
8
+ //# sourceMappingURL=plcScheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcScheduler.d.ts","sourceRoot":"","sources":["../../src/core/plcScheduler.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC9C,qBAAa,SAAS;IAClB,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,KAAK,CAIV;IAEH,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,QAAQ,GAAE,QAAgB;IAMnD,OAAO,CAAC,KAAK;CAUhB"}
@@ -20,3 +20,4 @@ export class Scheduler {
20
20
  this.isFlushing = false;
21
21
  }
22
22
  }
23
+ //# sourceMappingURL=plcScheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcScheduler.js","sourceRoot":"","sources":["../../src/core/plcScheduler.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,SAAS;IACV,UAAU,GAAY,KAAK,CAAC;IAC5B,KAAK,GAAmC,IAAI,GAAG,CAAC;QACpD,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC;QAClB,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC;KACrB,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAc,EAAE,WAAqB,KAAK;QAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,UAAU;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK;QACT,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAe,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YACnC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;CACJ"}
@@ -31,3 +31,4 @@ export declare class LRUCache<K, V> {
31
31
  delete(key: K): void;
32
32
  clear(): void;
33
33
  }
34
+ //# sourceMappingURL=plcStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcStore.d.ts","sourceRoot":"","sources":["../../src/core/plcStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAClC,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAExD,qBAAa,QAAQ;IACjB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,aAAa,CAA4C;IAEjE,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,uBAAuB,CAAiC;IAKhE,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IAMnD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAMpB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IAgBrE,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IAUxE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAOzC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IAmB1F,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAI5C,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAazG,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI;IAWpB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAMtD,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,MAAM;CAMjB;AAKD,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IAGV,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,GAAG,CAA8B;gBAErB,UAAU,GAAE,MAAY;IAE5C,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAQ1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IASpB,MAAM,CAAC,GAAG,EAAE,CAAC;IAIb,KAAK;CAGR"}
@@ -1,5 +1,5 @@
1
1
  import { produce } from "immer";
2
- import { isEqual } from "./helpers/core";
2
+ import { shallowEqual } from "./helpers/core";
3
3
  export class PlcStore {
4
4
  storeData = new Map();
5
5
  substoresData = new Map();
@@ -26,7 +26,7 @@ export class PlcStore {
26
26
  const next = typeof updater === 'function'
27
27
  ? produce(prev, updater)
28
28
  : updater;
29
- if (isEqual(prev, next))
29
+ if (shallowEqual(prev, next))
30
30
  return;
31
31
  this.storeData.set(key, next);
32
32
  this.markDirty(key);
@@ -57,7 +57,7 @@ export class PlcStore {
57
57
  const next = typeof updater === 'function'
58
58
  ? produce(prev, updater)
59
59
  : updater;
60
- if (isEqual(prev, next))
60
+ if (shallowEqual(prev, next))
61
61
  return;
62
62
  fStore.set(key, next);
63
63
  this.markDirty(`${substore}:${key}`);
@@ -157,3 +157,4 @@ export class LRUCache {
157
157
  this.map.clear();
158
158
  }
159
159
  }
160
+ //# sourceMappingURL=plcStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcStore.js","sourceRoot":"","sources":["../../src/core/plcStore.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
- import { JSX } from "react";
2
- type virtualContainerType = {
3
- content: JSX.Element[];
4
- config: any;
1
+ import React from "react";
2
+ import { VirtualConfig } from "types/core/ui";
3
+ type VirtualContainerProps = {
4
+ data: any[];
5
+ indexMap?: number[] | null;
6
+ renderItem: (item: any, index: number, colWidthsRef?: number[]) => React.ReactNode;
7
+ config: VirtualConfig;
5
8
  contextData: any;
6
9
  };
7
- export declare function VirtualContainer({ content, config, contextData }: virtualContainerType): import("react/jsx-runtime").JSX.Element;
10
+ export declare const VirtualContainer: React.NamedExoticComponent<VirtualContainerProps>;
8
11
  export {};
12
+ //# sourceMappingURL=plcCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcCore.d.ts","sourceRoot":"","sources":["../../../src/core/ui/plcCore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,KAAK,qBAAqB,GAAG;IACzB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACnF,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC;CACpB,CAAC;AA+OF,eAAO,MAAM,gBAAgB,mDAK3B,CAAC"}
@@ -1,40 +1,156 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React from "react";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from "react";
3
3
  import { ScopeContext } from "./plcLayout";
4
- export function VirtualContainer({ content, config, contextData }) {
5
- const ref = React.useRef(null);
6
- const rowRefs = React.useRef([]);
7
- const pipeline = React.useContext(ScopeContext)?.pipeline;
8
- React.useLayoutEffect(() => {
9
- if (!ref.current)
4
+ const RowWrapper = React.memo(({ item, index, render, style, Tag }) => {
5
+ return (_jsx(Tag, { style: style, children: render(item, index) }));
6
+ }, (prev, next) => {
7
+ return prev.item === next.item &&
8
+ prev.index === next.index &&
9
+ prev.style.height === next.style.height;
10
+ });
11
+ function computeInitialRange(itemHeight, estimatedHeight = 500, overscan = 5) {
12
+ const visible = Math.ceil(estimatedHeight / itemHeight);
13
+ return { start: 0, end: visible + overscan };
14
+ }
15
+ const VirtualContainerBase = ({ data, renderItem, indexMap, config, contextData }) => {
16
+ const containerRef = useRef(null);
17
+ const scrollParentRef = useRef(null);
18
+ const scrollInfo = useRef({ top: 0, height: 0 });
19
+ const anchorRef = useRef({ index: 0, offset: 0 });
20
+ const Tag = config.as || 'div';
21
+ const ItemTag = config.itemAs || 'div';
22
+ const itemHeight = config.itemHeight ?? config.estimatedHeight;
23
+ const overscan = config.overscan ?? 5;
24
+ const totalItems = indexMap ? indexMap.length : data.length;
25
+ const [error, setError] = useState(null);
26
+ const [hydrated, setHydrated] = useState(false);
27
+ const [ready, setReady] = useState(false);
28
+ const colWidthsRef = useRef(null);
29
+ const [columnsReady, setColumnsReady] = useState(false);
30
+ const [range, setRange] = useState(() => computeInitialRange(itemHeight, config.initialEstimatedHeight, overscan));
31
+ useLayoutEffect(() => {
32
+ requestAnimationFrame(() => setHydrated(true));
33
+ if (!containerRef.current)
34
+ return;
35
+ if (!scrollParentRef.current) {
36
+ scrollParentRef.current = containerRef.current.closest('[data-virtual-scroll]');
37
+ if (!scrollParentRef.current) {
38
+ console.warn("No scroll parent with [data-virtual-scroll] found.");
39
+ return;
40
+ }
41
+ }
42
+ const scrollParent = scrollParentRef.current;
43
+ const updateRange = (scrollTop, viewHeight) => {
44
+ const rawStart = Math.floor(scrollTop / itemHeight);
45
+ const rawEnd = Math.ceil((scrollTop + viewHeight) / itemHeight);
46
+ const start = Math.max(0, rawStart - overscan);
47
+ const end = Math.min(totalItems, rawEnd + overscan);
48
+ setRange(prev => {
49
+ if (Math.abs(prev.start - start) < 1 &&
50
+ Math.abs(prev.end - end) < 1)
51
+ return prev;
52
+ anchorRef.current = {
53
+ index: rawStart,
54
+ offset: scrollTop - rawStart * itemHeight
55
+ };
56
+ return { start, end };
57
+ });
58
+ };
59
+ const handleScroll = () => {
60
+ const scrollTop = scrollParent.scrollTop;
61
+ scrollInfo.current.top = scrollTop;
62
+ config.scrollTop = scrollTop;
63
+ updateRange(scrollTop, scrollInfo.current.height);
64
+ };
65
+ scrollInfo.current.height = scrollParent.clientHeight;
66
+ updateRange(scrollParent.scrollTop, scrollInfo.current.height);
67
+ setReady(true);
68
+ scrollParent.addEventListener('scroll', handleScroll, { passive: true });
69
+ return () => scrollParent.removeEventListener('scroll', handleScroll);
70
+ }, [data.length, itemHeight, overscan, totalItems]);
71
+ useLayoutEffect(() => {
72
+ if (colWidthsRef.current || !containerRef.current)
73
+ return;
74
+ const table = containerRef.current.closest('table');
75
+ const headerRow = table?.querySelector('thead tr');
76
+ if (!headerRow)
10
77
  return;
11
- config.viewport = ref.current.clientHeight;
78
+ const widths = Array.from(headerRow.children).map(cell => cell.getBoundingClientRect().width);
79
+ colWidthsRef.current = widths;
80
+ setColumnsReady(true);
12
81
  }, []);
13
- const rowHeight = config.itemHeight ?? config.estimatedHeight;
14
- const total = content.length;
15
- const start = Math.max(0, Math.floor(config.scrollTop / rowHeight) - config.overscan);
16
- const end = Math.min(total, Math.ceil((config.scrollTop + config.viewport) / rowHeight) + config.overscan);
17
- rowRefs.current = [];
18
- const visible = content.slice(start, end);
19
- React.useLayoutEffect(() => {
20
- if (!config.needsMeasure || rowRefs.current.length === 0)
82
+ const { paddingTop, paddingBottom, visibleData } = useMemo(() => {
83
+ const start = range.start;
84
+ const end = Math.min(range.end, totalItems);
85
+ const slice = [];
86
+ if (indexMap) {
87
+ for (let i = start; i < end; i++) {
88
+ const realIndex = indexMap[i];
89
+ slice.push(data[realIndex]);
90
+ }
91
+ }
92
+ else {
93
+ for (let i = start; i < end; i++) {
94
+ slice.push(data[i]);
95
+ }
96
+ }
97
+ return {
98
+ paddingTop: range.start * itemHeight,
99
+ paddingBottom: (totalItems - range.end) * itemHeight,
100
+ visibleData: slice
101
+ };
102
+ }, [range, data, indexMap, itemHeight, totalItems]);
103
+ useLayoutEffect(() => {
104
+ if (!ready)
21
105
  return;
22
- const avg = rowRefs.current.reduce((s, el) => s + el.offsetHeight, 0) /
23
- rowRefs.current.length;
24
- config.estimatedHeight = avg;
25
- config.measured = true;
26
- config.needsMeasure = false;
27
- pipeline?.scheduleJob(() => { }, 100);
28
- }, [visible]);
29
- return (_jsx("div", { ref: ref, onScroll: e => {
30
- const top = e.currentTarget.scrollTop;
31
- config.scrollTop = top;
32
- pipeline?.scheduleJob(() => { }, 100);
33
- }, style: { overflow: "auto", height: "100%" }, children: _jsx("div", { style: { height: total * rowHeight }, children: _jsx("div", { style: { transform: `translateY(${start * rowHeight}px)` }, children: contextData ? (_jsx(ScopeContext.Provider, { value: contextData, children: visible.map((node, i) => (_jsx("div", { ref: el => {
34
- if (el)
35
- rowRefs.current.push(el);
36
- }, children: node }, i))) })) : (visible.map((node, i) => (_jsx("div", { ref: el => {
37
- if (el)
38
- rowRefs.current.push(el);
39
- }, children: node }, i)))) }) }) }));
40
- }
106
+ const scrollParent = scrollParentRef.current;
107
+ if (!scrollParent)
108
+ return;
109
+ const { index, offset } = anchorRef.current;
110
+ const expectedScrollTop = index * itemHeight + offset;
111
+ const delta = expectedScrollTop - scrollParent.scrollTop;
112
+ if (Math.abs(delta) > 1) {
113
+ scrollParent.style.scrollBehavior = 'auto';
114
+ scrollParent.scrollTop = expectedScrollTop;
115
+ requestAnimationFrame(() => {
116
+ scrollParent.style.scrollBehavior = '';
117
+ });
118
+ }
119
+ }, [range, ready, itemHeight]);
120
+ const Spacer = useCallback(({ height }) => {
121
+ if (height <= 0)
122
+ return null;
123
+ if (Tag === 'tbody') {
124
+ return (_jsx("tr", { style: { height: `${height}px`, pointerEvents: 'none' }, children: _jsx("td", { colSpan: 100, style: { height: `${height}px`, padding: 0, border: 0 } }) }));
125
+ }
126
+ return _jsx(ItemTag, { style: { height: `${height}px`, padding: 0, border: 0 } });
127
+ }, [Tag, ItemTag]);
128
+ if (error) {
129
+ return _jsxs("div", { style: { color: 'red', fontSize: 12 }, children: ["Error: ", error] });
130
+ }
131
+ if (!ready && totalItems > 0) {
132
+ return (_jsx(Tag, { ref: containerRef, style: { height: totalItems * itemHeight, contain: 'strict' } }));
133
+ }
134
+ return (_jsxs(Tag, { ref: containerRef, style: {
135
+ display: Tag === 'tbody' ? undefined : 'block',
136
+ contain: 'strict',
137
+ position: 'relative'
138
+ }, children: [_jsx(Spacer, { height: paddingTop }), hydrated ? (_jsx(ScopeContext.Provider, { value: contextData, children: visibleData.map((item, index) => (_jsx(RowWrapper, { item: item, index: range.start + index, render: (itm, idx) => renderItem(itm, idx, colWidthsRef.current ?? []), Tag: ItemTag, style: {
139
+ height: `${itemHeight}px`,
140
+ contentVisibility: "auto",
141
+ willChange: "transform",
142
+ contain: 'strict'
143
+ } }, item.id ?? (indexMap ? indexMap[range.start + index] : range.start + index)))) })) : (visibleData.map((item, index) => (_jsx(RowWrapper, { item: item, index: range.start + index, render: (itm, idx) => renderItem(itm, idx, colWidthsRef.current ?? []), Tag: ItemTag, style: {
144
+ height: `${itemHeight}px`,
145
+ contentVisibility: "auto",
146
+ willChange: "transform",
147
+ contain: 'strict'
148
+ } }, item.id ?? (indexMap ? indexMap[range.start + index] : range.start + index))))), _jsx(Spacer, { height: paddingBottom })] }));
149
+ };
150
+ export const VirtualContainer = React.memo(VirtualContainerBase, (prev, next) => {
151
+ return prev.data === next.data &&
152
+ prev.indexMap === next.indexMap &&
153
+ prev.config === next.config &&
154
+ prev.contextData === next.contextData;
155
+ });
156
+ //# sourceMappingURL=plcCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcCore.js","sourceRoot":"","sources":["../../../src/core/ui/plcCore.tsx"],"names":[],"mappings":"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"}
@@ -15,3 +15,4 @@ export declare class SlotErrorBoundary extends Component<{
15
15
  componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
16
16
  render(): string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
17
17
  }
18
+ //# sourceMappingURL=plcErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/core/ui/plcErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7C,qBAAa,iBAAkB,SAAQ,SAAS,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;IAC1I,KAAK;;MAAuB;IAE5B,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK;;;IAIxC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAIpD,MAAM;CAUT"}
@@ -15,3 +15,4 @@ export class SlotErrorBoundary extends Component {
15
15
  return this.props.children;
16
16
  }
17
17
  }
18
+ //# sourceMappingURL=plcErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcErrorBoundary.js","sourceRoot":"","sources":["../../../src/core/ui/plcErrorBoundary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AAE7C,MAAM,OAAO,iBAAkB,SAAQ,SAAuG;IAC1I,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAE5B,MAAM,CAAC,wBAAwB,CAAC,CAAQ;QACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,SAAoB;QAChD,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAC1B,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,wBACzE,IAAI,CAAC,KAAK,CAAC,EAAE,IACnB,CACT,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACJ"}
@@ -3,3 +3,4 @@ import { PlcAPI } from "../plcAPI";
3
3
  export declare const PlcInspector: React.FC<{
4
4
  api: PlcAPI;
5
5
  }>;
6
+ //# sourceMappingURL=plcInspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcInspector.d.ts","sourceRoot":"","sources":["../../../src/core/ui/plcInspector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAWnC,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAwDlD,CAAC"}
@@ -25,3 +25,4 @@ export const PlcInspector = ({ api }) => {
25
25
  const storeKeys = Array.from(api.store.storeData.keys());
26
26
  return (_jsxs("div", { style: styles.container, children: [_jsxs("div", { style: styles.header, children: [_jsx("span", { children: "PLC Framework Debugger" }), _jsx("button", { onClick: () => setIsOpen(false), style: { background: 'none', border: 'none', color: '#fff', cursor: 'pointer' }, children: "\u2715" })] }), _jsxs("div", { style: styles.section, children: [_jsxs("div", { style: styles.label, children: ["ACTIVE SLOTS (", slots.length, ")"] }), slots.map(([name, items]) => (_jsxs("div", { children: [_jsx("span", { style: { color: '#569CD6' }, children: name }), _jsxs("span", { style: { color: '#888' }, children: [" (", items.length, ")"] }), items.map((it) => (_jsxs("div", { style: styles.item, children: ["\u2514 ", it.id, " ", _jsxs("span", { style: { fontSize: '0.9em', color: '#888' }, children: ["(prio: ", it.priority, ")"] })] }, it.id)))] }, name)))] }), _jsxs("div", { style: styles.section, children: [_jsx("div", { style: styles.label, children: "ROOT STORE KEYS" }), storeKeys.map((k) => (_jsxs("div", { style: styles.item, children: ["\u2022 ", k] }, k)))] })] }));
27
27
  };
28
+ //# sourceMappingURL=plcInspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plcInspector.js","sourceRoot":"","sources":["../../../src/core/ui/plcInspector.tsx"],"names":[],"mappings":"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"}