@motifx/core 1.0.1 → 1.2.0-rc.0

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/dist/devtools.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var devtools = require('./chunks/core-DXGu4dNE.cjs');
3
+ var devtools = require('./chunks/core-SS-LXi1V.cjs');
4
4
 
5
5
 
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.cjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"devtools.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,2 +1,2 @@
1
- export { J as debugGetDepMap, I as debugGetDeps } from './chunks/core-BDvHkZLQ.esm.js';
1
+ export { a3 as debugGetDepMap, a2 as debugGetDeps } from './chunks/core-vVL0WG0n.esm.js';
2
2
  //# sourceMappingURL=devtools.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.esm.js","sources":[],"sourcesContent":null,"names":[],"mappings":""}
1
+ {"version":3,"file":"devtools.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.cjs CHANGED
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var internal = require('./chunks/core-DfzGo_Ti.cjs');
4
- var devtools = require('./chunks/core-DXGu4dNE.cjs');
3
+ var devtools = require('./chunks/core-SS-LXi1V.cjs');
5
4
 
6
5
  class NameValuePair {
7
6
  Key;
@@ -56,10 +55,11 @@ class List {
56
55
  }
57
56
  ;
58
57
  remove(item) {
58
+ const index = this.__list.indexOf(item);
59
+ if (index === -1)
60
+ return [];
59
61
  this._map.delete(item);
60
- this.__list.splice(this.__list.indexOf(item), 1);
61
- item = null;
62
- return [];
62
+ return this.__list.splice(index, 1);
63
63
  }
64
64
  ;
65
65
  indexOf(item) {
@@ -86,7 +86,7 @@ class List {
86
86
  this.__list?.forEach(callbackfn);
87
87
  }
88
88
  ReverseClone() {
89
- return this.__list.reverse();
89
+ return this.__list.slice().reverse();
90
90
  }
91
91
  filter(callbackfn) {
92
92
  return this.__list.filter(callbackfn);
@@ -113,8 +113,7 @@ class Dictionary {
113
113
  }
114
114
  OnItemAdded;
115
115
  removeIndex(index) {
116
- var i = this.__values.removeIndex(index - 1);
117
- return i;
116
+ return this.__values.removeIndex(index);
118
117
  }
119
118
  ;
120
119
  remove(Key) {
@@ -236,7 +235,7 @@ function renderPreProcessing() {
236
235
  // const ContentBodyCollection = new Map<string, ContentBody>();
237
236
  const ContentBodyCollectionHandable = new Map();
238
237
  const changeBodyCollectionHandler = Symbol('changeBodyCollectionHandler');
239
- class ContentBlock extends internal.Component {
238
+ class ContentBlock extends devtools.Component {
240
239
  constructor(props) {
241
240
  super(props);
242
241
  // var cb = ContentBodyCollectionHandable.get(props.target);
@@ -244,20 +243,16 @@ class ContentBlock extends internal.Component {
244
243
  // } else {
245
244
  // var cb = ContentBodyCollectionHandable.get(props.target);
246
245
  // if (cb) {
247
- this.controls.onAdd = (control) => {
248
- var cb = ContentBodyCollectionHandable.get(this.props.target);
249
- if (cb) {
250
- control.motif.options["ownerContentBlock"] = this;
251
- cb.controls.add(control);
252
- }
253
- };
254
- this.controls.onAddBeforeBuild = (control) => {
246
+ const forward = (control) => {
247
+ this.motif.trigger('controladded', { control });
255
248
  var cb = ContentBodyCollectionHandable.get(this.props.target);
256
249
  if (cb) {
257
250
  control.motif.options["ownerContentBlock"] = this;
258
251
  cb.controls.add(control);
259
252
  }
260
253
  };
254
+ this.controls.onAdd = forward;
255
+ this.controls.onAddBeforeBuild = forward;
261
256
  if (this.childs) {
262
257
  this.controls.add(...this.childs);
263
258
  }
@@ -294,14 +289,16 @@ class ContentBlock extends internal.Component {
294
289
  // if (cb) {
295
290
  }
296
291
  }
297
- class ContentBody extends internal.Component {
292
+ class ContentBody extends devtools.Component {
298
293
  constructor(props) {
299
294
  super(props);
300
295
  ContentBodyCollectionHandable.set(this.props.name, this);
301
296
  this.context.fire(changeBodyCollectionHandler);
302
297
  }
303
298
  ondisposing(sender) {
304
- ContentBodyCollectionHandable.delete(this.props.name);
299
+ if (ContentBodyCollectionHandable.get(this.props.name) === this) {
300
+ ContentBodyCollectionHandable.delete(this.props.name);
301
+ }
305
302
  }
306
303
  }
307
304
 
@@ -311,12 +308,12 @@ class TransportRegistry {
311
308
  static slots = new Map();
312
309
  static registerSlot(name, slot) {
313
310
  this.slots.set(name, slot);
314
- internal.Application.main.fire(SLOT_REGISTERED_EVENT, { name, slot });
311
+ devtools.Application.main.fire(SLOT_REGISTERED_EVENT, { name, slot });
315
312
  }
316
313
  static unregisterSlot(name, slot) {
317
314
  if (this.slots.get(name) === slot) {
318
315
  this.slots.delete(name);
319
- internal.Application.main.fire(SLOT_UNREGISTERED_EVENT, { name, slot });
316
+ devtools.Application.main.fire(SLOT_UNREGISTERED_EVENT, { name, slot });
320
317
  }
321
318
  }
322
319
  static getSlot(name) {
@@ -324,7 +321,7 @@ class TransportRegistry {
324
321
  }
325
322
  }
326
323
 
327
- class Transport extends internal.Component {
324
+ class Transport extends devtools.Component {
328
325
  mode;
329
326
  constructor(props) {
330
327
  super(props);
@@ -333,7 +330,7 @@ class Transport extends internal.Component {
333
330
  initializeComponent(sender) {
334
331
  TransportRegistry.registerSlot(this.props.name, this);
335
332
  this.onDisposing = () => {
336
- (this.controls.items || []).forEach(child => {
333
+ [...(this.controls.items || [])].forEach(child => {
337
334
  this.controls.remove(child);
338
335
  child.dispose?.();
339
336
  });
@@ -341,7 +338,7 @@ class Transport extends internal.Component {
341
338
  };
342
339
  }
343
340
  clearSlot() {
344
- (this.controls.items || []).forEach(child => {
341
+ [...(this.controls.items || [])].forEach(child => {
345
342
  this.controls.remove(child);
346
343
  child.dispose?.();
347
344
  });
@@ -355,7 +352,7 @@ class Transporter {
355
352
  if (child.parent === newParent && newParent.controls.items.includes(child))
356
353
  return;
357
354
  if (child.parent && child.parent !== newParent) {
358
- child.parent.controls.remove(child);
355
+ child.parent.controls.silentDetach(child, true);
359
356
  }
360
357
  if (options.owner) {
361
358
  child.motif.options.ownerTransporter = options.owner;
@@ -412,14 +409,17 @@ class Transporter {
412
409
  }
413
410
  }
414
411
 
415
- class TransportTo extends internal.Component {
412
+ class TransportTo extends devtools.Component {
416
413
  _onAddRef;
417
414
  _onRemoveRef;
418
415
  _slotRegisteredListener;
419
416
  _slotUnregisteredListener;
420
417
  _transported = [];
418
+ _countedLive = false;
421
419
  constructor(props) {
422
420
  super('div', props);
421
+ devtools.contentBlocks.live++;
422
+ this._countedLive = true;
423
423
  }
424
424
  _handleSlotChange = (eventArgs) => {
425
425
  if (eventArgs.name === this.props.name) {
@@ -429,9 +429,17 @@ class TransportTo extends internal.Component {
429
429
  }
430
430
  const all = [...(this.childs || []), ...this.controls.items];
431
431
  Transporter.transportMany(all, slot);
432
- this._transported = all;
432
+ this._rememberTransported(all);
433
433
  }
434
434
  };
435
+ _rememberTransported(children) {
436
+ const kept = this._transported.filter(c => !c.isDisposed);
437
+ for (const child of children) {
438
+ if (!kept.includes(child))
439
+ kept.push(child);
440
+ }
441
+ this._transported = kept;
442
+ }
435
443
  _clearChildrenFromSlot = (slot) => {
436
444
  (this.childs || []).forEach(child => {
437
445
  slot.controls.remove(child);
@@ -450,18 +458,20 @@ class TransportTo extends internal.Component {
450
458
  }
451
459
  const all = [...(this.childs || []), ...this.controls.items];
452
460
  Transporter.transportMany(all, slot);
453
- this._transported = all;
461
+ this._rememberTransported(all);
454
462
  }
455
- this._slotRegisteredListener = internal.Application.main.on(SLOT_REGISTERED_EVENT, this._handleSlotChange);
456
- this._slotUnregisteredListener = internal.Application.main.on(SLOT_UNREGISTERED_EVENT, (eventArgs) => {
463
+ this._slotRegisteredListener = devtools.Application.main.on(SLOT_REGISTERED_EVENT, this._handleSlotChange);
464
+ this._slotUnregisteredListener = devtools.Application.main.on(SLOT_UNREGISTERED_EVENT, (eventArgs) => {
457
465
  if (eventArgs.name === this.props.name) {
458
466
  this._clearChildrenFromSlot(eventArgs.slot);
459
467
  }
460
468
  });
461
469
  this._onAddRef = (child) => {
470
+ this.motif.trigger('controladded', { control: child });
462
471
  const currentSlot = TransportRegistry.getSlot(this.props.name);
463
472
  if (currentSlot) {
464
473
  Transporter.transport(child, currentSlot);
474
+ this._rememberTransported([child]);
465
475
  }
466
476
  };
467
477
  this._onRemoveRef = (child) => {
@@ -469,24 +479,27 @@ class TransportTo extends internal.Component {
469
479
  if (currentSlot) {
470
480
  currentSlot.controls.remove(child);
471
481
  }
482
+ this._transported = this._transported.filter(c => c !== child);
472
483
  };
473
484
  this.controls.onAdd = this._onAddRef;
474
485
  this.controls.onRemove = this._onRemoveRef;
475
486
  }
476
487
  onDisposing(sender, e) {
488
+ if (this._countedLive) {
489
+ this._countedLive = false;
490
+ devtools.contentBlocks.live--;
491
+ }
477
492
  const currentSlot = TransportRegistry.getSlot(this.props.name);
478
- if (currentSlot) {
479
- (this._transported || []).forEach(child => {
480
- currentSlot.controls.remove(child);
481
- child.dispose();
482
- });
493
+ for (const child of this._transported || []) {
494
+ currentSlot?.controls.remove(child);
495
+ child.dispose();
483
496
  }
484
497
  if (this._slotRegisteredListener) {
485
- internal.Application.main.off(SLOT_REGISTERED_EVENT, this._handleSlotChange);
498
+ devtools.Application.main.off(SLOT_REGISTERED_EVENT, this._handleSlotChange);
486
499
  this._slotRegisteredListener = undefined;
487
500
  }
488
501
  if (this._slotUnregisteredListener) {
489
- internal.Application.main.off(SLOT_UNREGISTERED_EVENT, this._slotUnregisteredListener);
502
+ devtools.Application.main.off(SLOT_UNREGISTERED_EVENT, this._slotUnregisteredListener);
490
503
  this._slotUnregisteredListener = undefined;
491
504
  }
492
505
  if (this.controls.onAdd === this._onAddRef)
@@ -499,7 +512,7 @@ class TransportTo extends internal.Component {
499
512
  }
500
513
  }
501
514
 
502
- class Virtualization extends internal.Component {
515
+ class Virtualization extends devtools.Component {
503
516
  _state;
504
517
  _virtualContent;
505
518
  _topSpacer;
@@ -534,20 +547,20 @@ class Virtualization extends internal.Component {
534
547
  this.renderViewport = this.renderViewport.bind(this);
535
548
  this._makeView();
536
549
  }
537
- contentWrapper = new internal.Component();
550
+ contentWrapper = new devtools.Component();
538
551
  wrapper;
539
552
  _makeView() {
540
- this._topSpacer = new internal.Component('div');
553
+ this._topSpacer = new devtools.Component('div');
541
554
  this._topSpacer.element.style.cssText = 'height: 0px;';
542
555
  this._topSpacer.class.add('motif-virtualization-top-spacer');
543
- this._bottomSpacer = new internal.Component('div');
556
+ this._bottomSpacer = new devtools.Component('div');
544
557
  this._bottomSpacer.element.style.cssText = 'height: 0px;';
545
558
  this._bottomSpacer.class.add('motif-virtualization-bottom-spacer');
546
- this._virtualContent = new internal.Component(document.createComment(''));
559
+ this._virtualContent = new devtools.Component(document.createComment(''));
547
560
  if (this.props.mainTemplate) {
548
561
  this.contentWrapper.controls.add(this._topSpacer, this._virtualContent, this._bottomSpacer);
549
562
  this.contentWrapper.onBuilding = ((s) => {
550
- var el = internal.findAppendableComponent(s.parent);
563
+ var el = devtools.findAppendableComponent(s.parent);
551
564
  if (el) {
552
565
  this.wrapper = el;
553
566
  this._loadInitial();
@@ -979,7 +992,7 @@ class Virtualization extends internal.Component {
979
992
  return component;
980
993
  }
981
994
  const rendered = this.props.itemTemplate(item, index);
982
- component = rendered instanceof internal.ComponentBase ? rendered : new internal.Component(rendered);
995
+ component = rendered instanceof devtools.ComponentBase ? rendered : new devtools.Component(rendered);
983
996
  component.__listItemRef = item;
984
997
  this._cache.set(key, component);
985
998
  return component;
@@ -1003,7 +1016,7 @@ class Virtualization extends internal.Component {
1003
1016
  break;
1004
1017
  cur = next;
1005
1018
  }
1006
- internal.notifyDeactivated(c);
1019
+ devtools.notifyDeactivated(c);
1007
1020
  }
1008
1021
  else {
1009
1022
  controls.silentDetach(c);
@@ -1087,7 +1100,7 @@ class Virtualization extends internal.Component {
1087
1100
  }
1088
1101
  }
1089
1102
 
1090
- class RouterLink extends internal.Component {
1103
+ class RouterLink extends devtools.Component {
1091
1104
  constructor(props) {
1092
1105
  super(props.el ?? 'a', props);
1093
1106
  if (props.showHref !== false)
@@ -1102,7 +1115,7 @@ class RouterLink extends internal.Component {
1102
1115
  if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey)
1103
1116
  return;
1104
1117
  e.preventDefault();
1105
- const router = internal.Application.main.router;
1118
+ const router = devtools.Application.main.router;
1106
1119
  if (router)
1107
1120
  router.navigate(props.to);
1108
1121
  });
@@ -1129,7 +1142,7 @@ class RouterLink extends internal.Component {
1129
1142
 
1130
1143
  function Injectable(options) {
1131
1144
  return (target) => {
1132
- internal.autoRegistry.set(target, {
1145
+ devtools.autoRegistry.set(target, {
1133
1146
  lifetime: options?.lifetime ?? "transient",
1134
1147
  deps: options?.deps
1135
1148
  });
@@ -1137,7 +1150,7 @@ function Injectable(options) {
1137
1150
  }
1138
1151
  function FromService(token) {
1139
1152
  try {
1140
- return internal.Application.main.provider.get(token);
1153
+ return devtools.Application.main.provider.get(token);
1141
1154
  }
1142
1155
  catch (error) {
1143
1156
  devtools.reportWarning('MJX414', [describeServiceToken(token), String(error?.message ?? error)], { token, error });
@@ -1343,7 +1356,7 @@ class RateLimiterPolicy extends Policy {
1343
1356
  super();
1344
1357
  this.tokensPerInterval = opts.tokensPerInterval ?? 1;
1345
1358
  this.intervalMs = opts.intervalMs ?? 1000;
1346
- this.capacity = opts.capacity ?? 1000;
1359
+ this.capacity = opts.capacity ?? this.tokensPerInterval;
1347
1360
  this.tokens = this.capacity;
1348
1361
  this.lastRefill = Date.now();
1349
1362
  }
@@ -1445,32 +1458,21 @@ class Resilience {
1445
1458
  }
1446
1459
  }
1447
1460
 
1448
- exports.Application = internal.Application;
1449
- exports.ApplicationBuilder = internal.ApplicationBuilder;
1450
- exports.Component = internal.Component;
1451
- exports.ComponentBase = internal.ComponentBase;
1452
- exports.ComponentMotif = internal.ComponentMotif;
1453
- exports.ControlCollection = internal.ControlCollection;
1454
- exports.Disposable = internal.Disposable;
1455
- exports.DisposableStore = internal.DisposableStore;
1456
- exports.Emitter = internal.Emitter;
1457
- exports.FNComponent = internal.FNComponent;
1458
- exports.FragmentNode = internal.FragmentNode;
1459
- exports.Frame = internal.Frame;
1460
- exports.Lazy = internal.Lazy;
1461
- exports.RouterView = internal.RouterView;
1462
- exports.ServiceCollection = internal.ServiceCollection;
1463
- exports.ServiceProvider = internal.ServiceProvider;
1464
- exports.disposableCore = internal.disposableCore;
1465
- exports.inject = internal.inject;
1466
- exports.motifCompiled = internal.motifCompiled;
1467
- exports.motifComponent = internal.motifComponent;
1468
- exports.motifFragment = internal.motifFragment;
1469
- exports.toDisposable = internal.toDisposable;
1470
- exports.useApplication = internal.useApplication;
1471
- exports.useNavigation = internal.useNavigation;
1461
+ exports.Application = devtools.Application;
1462
+ exports.ApplicationBuilder = devtools.ApplicationBuilder;
1463
+ exports.Component = devtools.Component;
1464
+ exports.ComponentBase = devtools.ComponentBase;
1465
+ exports.ComponentMotif = devtools.ComponentMotif;
1472
1466
  exports.Computed = devtools.Computed;
1467
+ exports.ControlCollection = devtools.ControlCollection;
1468
+ exports.Disposable = devtools.Disposable;
1469
+ exports.DisposableStore = devtools.DisposableStore;
1470
+ exports.Emitter = devtools.Emitter;
1473
1471
  exports.ErrorHandler = devtools.ErrorHandler;
1472
+ exports.FNComponent = devtools.FNComponent;
1473
+ exports.FragmentNode = devtools.FragmentNode;
1474
+ exports.Frame = devtools.Frame;
1475
+ exports.Lazy = devtools.Lazy;
1474
1476
  exports.LazyComputed = devtools.LazyComputed;
1475
1477
  exports.LinkedList = devtools.LinkedList;
1476
1478
  exports.MotifError = devtools.MotifError;
@@ -1478,6 +1480,9 @@ Object.defineProperty(exports, "NodeTypes", {
1478
1480
  enumerable: true,
1479
1481
  get: function () { return devtools.NodeTypes; }
1480
1482
  });
1483
+ exports.RouterView = devtools.RouterView;
1484
+ exports.ServiceCollection = devtools.ServiceCollection;
1485
+ exports.ServiceProvider = devtools.ServiceProvider;
1481
1486
  exports.Signal = devtools.Signal;
1482
1487
  exports.asyncTracking = devtools.asyncTracking;
1483
1488
  exports.clearModel = devtools.clearModel;
@@ -1486,16 +1491,24 @@ exports.createComputed = devtools.createComputed;
1486
1491
  exports.createLazyComputed = devtools.createLazyComputed;
1487
1492
  exports.createSignal = devtools.createSignal;
1488
1493
  exports.deepClone = devtools.deepClone;
1494
+ exports.disposableCore = devtools.disposableCore;
1489
1495
  exports.dom = devtools.dom;
1490
1496
  exports.effect = devtools.effect;
1491
1497
  exports.errorHandler = devtools.errorHandler;
1498
+ exports.inject = devtools.inject;
1499
+ exports.motifCompiled = devtools.motifCompiled;
1500
+ exports.motifComponent = devtools.motifComponent;
1501
+ exports.motifFragment = devtools.motifFragment;
1492
1502
  exports.reactive = devtools.reactive;
1493
1503
  exports.safeCall = devtools.safeCall;
1494
1504
  exports.safeCallAsync = devtools.safeCallAsync;
1495
1505
  exports.safeCallSilent = devtools.safeCallSilent;
1496
1506
  exports.setUnexpectedErrorHandler = devtools.setUnexpectedErrorHandler;
1507
+ exports.toDisposable = devtools.toDisposable;
1497
1508
  exports.untracked = devtools.untracked;
1509
+ exports.useApplication = devtools.useApplication;
1498
1510
  exports.useModel = devtools.useModel;
1511
+ exports.useNavigation = devtools.useNavigation;
1499
1512
  exports.ContentBlock = ContentBlock;
1500
1513
  exports.ContentBody = ContentBody;
1501
1514
  exports.Dictionary = Dictionary;