@tko/build.reference 4.0.0-beta1.3 → 4.0.0-beta1.5

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/browser.js CHANGED
@@ -1,4 +1,5 @@
1
- // @tko/build.reference 🥊 4.0.0-beta1.3 IIFE
1
+ "use strict";
2
+ // @tko/build.reference 🥊 4.0.0-beta1.5 IIFE
2
3
  var tko = (() => {
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -2087,6 +2088,7 @@ var tko = (() => {
2087
2088
  }
2088
2089
 
2089
2090
  // ../../packages/utils.parser/dist/operators.js
2091
+ var __pow = Math.pow;
2090
2092
  function LAMBDA() {
2091
2093
  }
2092
2094
  function unwrapOrCall(a, b) {
@@ -2111,6 +2113,9 @@ var tko = (() => {
2111
2113
  "--": function preinc2(a, b) {
2112
2114
  return --b;
2113
2115
  },
2116
+ "**": function exp(a, b) {
2117
+ return __pow(a, b);
2118
+ },
2114
2119
  "*": function mul(a, b) {
2115
2120
  return a * b;
2116
2121
  },
@@ -2168,11 +2173,17 @@ var tko = (() => {
2168
2173
  "||": function logicOr(a, b) {
2169
2174
  return a || b;
2170
2175
  },
2176
+ "??": function nullishCoalesce(a, b) {
2177
+ return a != null ? a : b;
2178
+ },
2171
2179
  ".": function member(a, b) {
2172
- return a[b];
2180
+ return a == null ? void 0 : a[b];
2173
2181
  },
2174
- "[": function member2(a, b) {
2175
- return a[b];
2182
+ "?.": function omember(a, b) {
2183
+ return a == null ? void 0 : a[b];
2184
+ },
2185
+ "[": function bmember(a, b) {
2186
+ return a == null ? void 0 : a[b];
2176
2187
  },
2177
2188
  ",": function comma(a, b) {
2178
2189
  return b;
@@ -2185,11 +2196,13 @@ var tko = (() => {
2185
2196
  operators["#"].precedence = 21;
2186
2197
  operators["."].precedence = 19;
2187
2198
  operators["["].precedence = 19;
2199
+ operators["?."].precedence = 19;
2188
2200
  operators["!"].precedence = 16;
2189
2201
  operators["!!"].precedence = 16;
2190
2202
  operators["++"].precedence = 16;
2191
2203
  operators["--"].precedence = 16;
2192
2204
  operators["&-"].precedence = 16;
2205
+ operators["**"].precedent = 15;
2193
2206
  operators["%"].precedence = 14;
2194
2207
  operators["*"].precedence = 14;
2195
2208
  operators["/"].precedence = 14;
@@ -2208,8 +2221,10 @@ var tko = (() => {
2208
2221
  operators["!=="].precedence = 10;
2209
2222
  operators["&&"].precedence = 6;
2210
2223
  operators["||"].precedence = 5;
2224
+ operators["??"].precedence = 5;
2211
2225
  operators["&&"].earlyOut = (a) => !a;
2212
2226
  operators["||"].earlyOut = (a) => a;
2227
+ operators["??"].earlyOut = (a) => a;
2213
2228
  operators[","].precedence = 2;
2214
2229
  operators["call"].precedence = 1;
2215
2230
  operators["=>"].precedence = 1;
@@ -2338,24 +2353,24 @@ var tko = (() => {
2338
2353
  this.parser = parser;
2339
2354
  }
2340
2355
  dereference(value2, $context, globals, node) {
2341
- let member3;
2356
+ let member2;
2342
2357
  let refs = this.dereferences || [];
2343
2358
  const $data = $context.$data || {};
2344
2359
  let lastValue;
2345
2360
  let i, n;
2346
2361
  for (i = 0, n = refs.length; i < n; ++i) {
2347
- member3 = Node2.value_of(refs[i], $context, globals, node);
2362
+ member2 = Node2.value_of(refs[i], $context, globals, node);
2348
2363
  if (typeof value2 === "function" && refs[i] instanceof Arguments) {
2349
- value2 = value2.apply(lastValue || $data, member3);
2364
+ value2 = value2.apply(lastValue || $data, member2);
2350
2365
  lastValue = value2;
2351
2366
  } else if (value2 === null || value2 === void 0) {
2352
- throw new Error(`dereference of null value in ${JSON.stringify(this, null, 2)} context: ${JSON.stringify($context, null, 2)}`);
2367
+ return value2;
2353
2368
  } else {
2354
2369
  lastValue = value2;
2355
- value2 = Node2.value_of(value2[member3], $context, globals, node);
2370
+ value2 = Node2.value_of(value2[member2], $context, globals, node);
2356
2371
  }
2357
2372
  }
2358
- if (typeof value2 === "function" && n > 0 && lastValue !== value2 && !hasOwnProperty(lastValue, member3)) {
2373
+ if (typeof value2 === "function" && n > 0 && lastValue !== value2 && !hasOwnProperty(lastValue, member2)) {
2359
2374
  return value2.bind(lastValue);
2360
2375
  }
2361
2376
  return value2;
@@ -2565,7 +2580,9 @@ ${name} ${msg} of
2565
2580
  this.white();
2566
2581
  ch = this.next();
2567
2582
  if (ch !== ":" && ch !== ",") {
2568
- this.error("Object name: " + name + " missing closing " + enclosedBy);
2583
+ this.error(
2584
+ "Object name: " + name + " missing closing " + enclosedBy
2585
+ );
2569
2586
  }
2570
2587
  return name;
2571
2588
  } else if (ch === ":" || ch <= " " || ch === "," || ch === "|") {
@@ -2838,7 +2855,7 @@ ${name} ${msg} of
2838
2855
  for (var i = 0, j = args.length; i < j; ++i) {
2839
2856
  argValues.push(Node2.value_of(args[i], context, globals, node));
2840
2857
  }
2841
- return nextFilter(options_default.filters[name].apply(null, argValues));
2858
+ return nextFilter(options_default.filters[name].apply(context, argValues));
2842
2859
  };
2843
2860
  filter.precedence = 1;
2844
2861
  return filter;
@@ -2874,7 +2891,7 @@ ${name} ${msg} of
2874
2891
  if (op === operators["?"]) {
2875
2892
  this.ternary(nodes);
2876
2893
  break;
2877
- } else if (op === operators["."]) {
2894
+ } else if (op === operators["."] || op === operators["?."]) {
2878
2895
  nodes.push(op);
2879
2896
  nodes.push(this.member());
2880
2897
  op = null;
@@ -2942,31 +2959,31 @@ ${name} ${msg} of
2942
2959
  this.error("Bad arguments to function");
2943
2960
  }
2944
2961
  member() {
2945
- let member3 = "";
2962
+ let member2 = "";
2946
2963
  let ch = this.white();
2947
2964
  let isIdentifierChar = Identifier.is_valid_start_char;
2948
2965
  while (ch) {
2949
2966
  if (!isIdentifierChar(ch)) {
2950
2967
  break;
2951
2968
  }
2952
- member3 += ch;
2969
+ member2 += ch;
2953
2970
  ch = this.next();
2954
2971
  isIdentifierChar = Identifier.is_valid_continue_char;
2955
2972
  }
2956
- return member3;
2973
+ return member2;
2957
2974
  }
2958
2975
  dereference() {
2959
- let member3;
2976
+ let member2;
2960
2977
  let ch = this.white();
2961
2978
  while (ch) {
2962
2979
  if (ch === "(") {
2963
2980
  return this.funcArguments();
2964
2981
  } else if (ch === "[") {
2965
2982
  this.next("[");
2966
- member3 = this.expression();
2983
+ member2 = this.expression();
2967
2984
  this.white();
2968
2985
  this.next("]");
2969
- return member3;
2986
+ return member2;
2970
2987
  } else if (ch === ".") {
2971
2988
  this.next(".");
2972
2989
  return this.member();
@@ -4262,13 +4279,17 @@ ${name} ${msg} of
4262
4279
  const provider = getBindingProvider();
4263
4280
  const getBindings = provider.getBindingAccessors;
4264
4281
  if (isProviderForNode(provider, node)) {
4265
- var bindingsUpdater = computed(function() {
4266
- bindings6 = sourceBindings ? sourceBindings(bindingContext2, node) : getBindings.call(provider, node, bindingContext2);
4267
- if (bindings6 && bindingContext2[contextSubscribeSymbol]) {
4268
- bindingContext2[contextSubscribeSymbol]();
4269
- }
4270
- return bindings6;
4271
- }, null, { disposeWhenNodeIsRemoved: node });
4282
+ var bindingsUpdater = computed(
4283
+ function() {
4284
+ bindings6 = sourceBindings ? sourceBindings(bindingContext2, node) : getBindings.call(provider, node, bindingContext2);
4285
+ if (bindings6 && bindingContext2[contextSubscribeSymbol]) {
4286
+ bindingContext2[contextSubscribeSymbol]();
4287
+ }
4288
+ return bindings6;
4289
+ },
4290
+ null,
4291
+ { disposeWhenNodeIsRemoved: node }
4292
+ );
4272
4293
  if (!bindings6 || !bindingsUpdater.isActive()) {
4273
4294
  bindingsUpdater = null;
4274
4295
  }
@@ -4276,9 +4297,10 @@ ${name} ${msg} of
4276
4297
  }
4277
4298
  var bindingHandlerThatControlsDescendantBindings;
4278
4299
  if (bindings6) {
4279
- let allBindings = function() {
4300
+ let allBindings2 = function() {
4280
4301
  return objectMap(bindingsUpdater ? bindingsUpdater() : bindings6, evaluateValueAccessor);
4281
4302
  };
4303
+ var allBindings = allBindings2;
4282
4304
  const $component = bindingContext2.$component || {};
4283
4305
  const allBindingHandlers = {};
4284
4306
  data_exports.set(node, "bindingHandlers", allBindingHandlers);
@@ -4290,8 +4312,8 @@ ${name} ${msg} of
4290
4312
  return valueAccessor(optionalValue);
4291
4313
  }
4292
4314
  } : (bindingKey) => bindings6[bindingKey];
4293
- allBindings.has = (key) => key in bindings6;
4294
- allBindings.get = (key) => bindings6[key] && evaluateValueAccessor(getValueAccessor(key));
4315
+ allBindings2.has = (key) => key in bindings6;
4316
+ allBindings2.get = (key) => bindings6[key] && evaluateValueAccessor(getValueAccessor(key));
4295
4317
  if (bindingEvent.childrenComplete in bindings6) {
4296
4318
  bindingEvent.subscribe(node, bindingEvent.childrenComplete, () => {
4297
4319
  const callback = evaluateValueAccessor(bindings6[bindingEvent.childrenComplete]);
@@ -4307,33 +4329,38 @@ ${name} ${msg} of
4307
4329
  const bindingsGenerated = topologicalSortBindings(bindings6, $component);
4308
4330
  const nodeAsyncBindingPromises = /* @__PURE__ */ new Set();
4309
4331
  for (const [key, BindingHandlerClass] of bindingsGenerated) {
4310
- let reportBindingError = function(during, errorCaptured) {
4332
+ let reportBindingError2 = function(during, errorCaptured) {
4311
4333
  onBindingError({
4312
4334
  during,
4313
4335
  errorCaptured,
4314
4336
  bindings: bindings6,
4315
- allBindings,
4337
+ allBindings: allBindings2,
4316
4338
  bindingKey: key,
4317
4339
  bindingContext: bindingContext2,
4318
4340
  element: node,
4319
4341
  valueAccessor: getValueAccessor(key)
4320
4342
  });
4321
4343
  };
4344
+ var reportBindingError = reportBindingError2;
4322
4345
  if (node.nodeType === 8 && !BindingHandlerClass.allowVirtualElements) {
4323
4346
  throw new Error(`The binding '${key}' cannot be used with virtual elements`);
4324
4347
  }
4325
4348
  try {
4326
- const bindingHandler = dependencyDetection_exports.ignore(() => new BindingHandlerClass({
4327
- allBindings,
4328
- $element: node,
4329
- $context: bindingContext2,
4330
- onError: reportBindingError,
4331
- valueAccessor(...v) {
4332
- return getValueAccessor(key)(...v);
4333
- }
4334
- }));
4349
+ const bindingHandler = dependencyDetection_exports.ignore(
4350
+ () => new BindingHandlerClass({
4351
+ allBindings: allBindings2,
4352
+ $element: node,
4353
+ $context: bindingContext2,
4354
+ onError: reportBindingError2,
4355
+ valueAccessor(...v) {
4356
+ return getValueAccessor(key)(...v);
4357
+ }
4358
+ })
4359
+ );
4335
4360
  if (bindingHandler.onValueChange) {
4336
- dependencyDetection_exports.ignore(() => bindingHandler.computed("onValueChange"));
4361
+ dependencyDetection_exports.ignore(
4362
+ () => bindingHandler.computed("onValueChange")
4363
+ );
4337
4364
  }
4338
4365
  allBindingHandlers[key] = bindingHandler;
4339
4366
  if (bindingHandler.controlsDescendants) {
@@ -4347,7 +4374,7 @@ ${name} ${msg} of
4347
4374
  nodeAsyncBindingPromises.add(bindingHandler.bindingCompleted);
4348
4375
  }
4349
4376
  } catch (err) {
4350
- reportBindingError("creation", err);
4377
+ reportBindingError2("creation", err);
4351
4378
  }
4352
4379
  }
4353
4380
  triggerDescendantsComplete(node, bindings6, nodeAsyncBindingPromises);
@@ -4854,15 +4881,19 @@ ${name} ${msg} of
4854
4881
  return !firstTargetNode || !domNodeIsAttachedToDocument(firstTargetNode);
4855
4882
  };
4856
4883
  var activelyDisposeWhenNodeIsRemoved = firstTargetNode && renderMode === "replaceNode" ? firstTargetNode.parentNode : firstTargetNode;
4857
- return computed(function() {
4858
- var bindingContext2 = dataOrBindingContext && dataOrBindingContext instanceof bindingContext ? dataOrBindingContext : new bindingContext(dataOrBindingContext, null, null, null, { "exportDependencies": true });
4859
- var templateName = resolveTemplateName(template, bindingContext2.$data, bindingContext2);
4860
- const renderedNodesArray = executeTemplate(targetNodeOrNodeArray, renderMode, templateName, bindingContext2, options3, afterBindingCallback);
4861
- if (renderMode === "replaceNode") {
4862
- targetNodeOrNodeArray = renderedNodesArray;
4863
- firstTargetNode = getFirstNodeFromPossibleArray(targetNodeOrNodeArray);
4864
- }
4865
- }, null, { disposeWhen: whenToDispose, disposeWhenNodeIsRemoved: activelyDisposeWhenNodeIsRemoved });
4884
+ return computed(
4885
+ function() {
4886
+ var bindingContext2 = dataOrBindingContext && dataOrBindingContext instanceof bindingContext ? dataOrBindingContext : new bindingContext(dataOrBindingContext, null, null, null, { "exportDependencies": true });
4887
+ var templateName = resolveTemplateName(template, bindingContext2.$data, bindingContext2);
4888
+ const renderedNodesArray = executeTemplate(targetNodeOrNodeArray, renderMode, templateName, bindingContext2, options3, afterBindingCallback);
4889
+ if (renderMode === "replaceNode") {
4890
+ targetNodeOrNodeArray = renderedNodesArray;
4891
+ firstTargetNode = getFirstNodeFromPossibleArray(targetNodeOrNodeArray);
4892
+ }
4893
+ },
4894
+ null,
4895
+ { disposeWhen: whenToDispose, disposeWhenNodeIsRemoved: activelyDisposeWhenNodeIsRemoved }
4896
+ );
4866
4897
  } else {
4867
4898
  return memoization_exports.memoize(function(domNode) {
4868
4899
  renderTemplate(template, dataOrBindingContext, options3, domNode, "replaceNode");
@@ -4874,9 +4905,13 @@ ${name} ${msg} of
4874
4905
  function executeTemplateForArrayItem(arrayValue, index) {
4875
4906
  if (options3.as) {
4876
4907
  if (options_default.createChildContextWithAs) {
4877
- arrayItemContext = parentBindingContext.createChildContext(arrayValue, options3.as, (context) => {
4878
- context.$index = index;
4879
- });
4908
+ arrayItemContext = parentBindingContext.createChildContext(
4909
+ arrayValue,
4910
+ options3.as,
4911
+ (context) => {
4912
+ context.$index = index;
4913
+ }
4914
+ );
4880
4915
  } else {
4881
4916
  arrayItemContext = parentBindingContext.extend({
4882
4917
  [options3.as]: arrayValue,
@@ -5177,14 +5212,19 @@ ${name} ${msg} of
5177
5212
  };
5178
5213
  }
5179
5214
  create(...additionalProperties) {
5180
- const instance = Object.assign({
5181
- get getBindingHandler() {
5182
- return options_default.getBindingHandler;
5215
+ const instance = Object.assign(
5216
+ {
5217
+ get getBindingHandler() {
5218
+ return options_default.getBindingHandler;
5219
+ },
5220
+ set getBindingHandler(fn) {
5221
+ options_default.set("getBindingHandler", fn);
5222
+ }
5183
5223
  },
5184
- set getBindingHandler(fn) {
5185
- options_default.set("getBindingHandler", fn);
5186
- }
5187
- }, knockout, this.providedProperties, ...additionalProperties);
5224
+ knockout,
5225
+ this.providedProperties,
5226
+ ...additionalProperties
5227
+ );
5188
5228
  instance.options.knockoutInstance = instance;
5189
5229
  return instance;
5190
5230
  }
@@ -5197,11 +5237,15 @@ ${name} ${msg} of
5197
5237
  this[nameOrObject] = value2;
5198
5238
  } else if (typeof nameOrObject === "object") {
5199
5239
  if (value2 !== void 0) {
5200
- options_default.onError(new Error("Given extraneous `value` parameter (first param should be a string, but it was an object)." + nameOrObject));
5240
+ options_default.onError(
5241
+ new Error("Given extraneous `value` parameter (first param should be a string, but it was an object)." + nameOrObject)
5242
+ );
5201
5243
  }
5202
5244
  Object.assign(this, nameOrObject);
5203
5245
  } else {
5204
- options_default.onError(new Error("Given a bad binding handler type: " + nameOrObject));
5246
+ options_default.onError(
5247
+ new Error("Given a bad binding handler type: " + nameOrObject)
5248
+ );
5205
5249
  }
5206
5250
  }
5207
5251
  get(nameOrDotted) {
@@ -5247,7 +5291,10 @@ ${name} ${msg} of
5247
5291
  }
5248
5292
  }
5249
5293
  makeAccessorsFromFunction(callback) {
5250
- return objectMap(dependencyDetection_exports.ignore(callback), (value2, key) => () => callback()[key]);
5294
+ return objectMap(
5295
+ dependencyDetection_exports.ignore(callback),
5296
+ (value2, key) => () => callback()[key]
5297
+ );
5251
5298
  }
5252
5299
  makeValueAccessor(value2) {
5253
5300
  return () => value2;
@@ -5721,7 +5768,10 @@ ${name} ${msg} of
5721
5768
  if (!accessors || Object.keys(accessors).length === 0) {
5722
5769
  return { $raw: {} };
5723
5770
  }
5724
- const $raw = objectMap(accessors, (value2) => computed(value2, null, { disposeWhenNodeIsRemoved: node }));
5771
+ const $raw = objectMap(
5772
+ accessors,
5773
+ (value2) => computed(value2, null, { disposeWhenNodeIsRemoved: node })
5774
+ );
5725
5775
  const params = objectMap($raw, (v) => this.makeParamValue(node, v));
5726
5776
  return Object.assign({ $raw }, params);
5727
5777
  }
@@ -6659,7 +6709,10 @@ ${name} ${msg} of
6659
6709
  constructor(...args) {
6660
6710
  super(...args);
6661
6711
  if (ieVersion < 11) {
6662
- this.addEventListener("propertychange", (event) => event.propertyName === "value" && this.updateModel(event));
6712
+ this.addEventListener(
6713
+ "propertychange",
6714
+ (event) => event.propertyName === "value" && this.updateModel(event)
6715
+ );
6663
6716
  }
6664
6717
  if (ieVersion >= 8 && ieVersion < 10) {
6665
6718
  this.watchForSelectionChangeEvent();
@@ -6745,7 +6798,10 @@ ${name} ${msg} of
6745
6798
  constructor(...args) {
6746
6799
  super(...args);
6747
6800
  if (this.isCheckboxOrRadio) {
6748
- applyBindingAccessorsToNode(this.$element, { checkedValue: this.valueAccessor });
6801
+ applyBindingAccessorsToNode(
6802
+ this.$element,
6803
+ { checkedValue: this.valueAccessor }
6804
+ );
6749
6805
  return;
6750
6806
  }
6751
6807
  this.propertyChangedFired = false;
@@ -7114,7 +7170,9 @@ ${name} ${msg} of
7114
7170
  this.container = virtualElements_exports.isStartComment(this.$element) ? this.$element.parentNode : this.$element;
7115
7171
  this.generateContext = this.createContextGenerator(this.as);
7116
7172
  this.$indexHasBeenRequested = false;
7117
- this.templateNode = makeTemplateNode(settings.templateNode || (settings.name ? document.getElementById(settings.name).cloneNode(true) : this.$element));
7173
+ this.templateNode = makeTemplateNode(
7174
+ settings.templateNode || (settings.name ? document.getElementById(settings.name).cloneNode(true) : this.$element)
7175
+ );
7118
7176
  ["afterAdd", "beforeRemove", "afterQueueFlush", "beforeQueueFlush"].forEach((p) => {
7119
7177
  this[p] = settings[p] || this.allBindings.get(p);
7120
7178
  });
@@ -7269,7 +7327,10 @@ ${name} ${msg} of
7269
7327
  var templateClone = this.templateNode.cloneNode(true);
7270
7328
  children = virtualElements_exports.childNodes(templateClone);
7271
7329
  this.updateFirstLastNodesList(index + i, children);
7272
- const bindingResult = applyBindingsToDescendants(this.generateContext(valuesToAdd[i]), templateClone);
7330
+ const bindingResult = applyBindingsToDescendants(
7331
+ this.generateContext(valuesToAdd[i]),
7332
+ templateClone
7333
+ );
7273
7334
  asyncBindingResults.push(bindingResult);
7274
7335
  }
7275
7336
  allChildNodes.push(...children);
@@ -7593,7 +7654,11 @@ ${name} ${msg} of
7593
7654
  adds.forEach((change) => this.addChange(...change));
7594
7655
  }
7595
7656
  addChange(index, jsx) {
7596
- this.nodeArrayOrObservableAtIndex.splice(index, 0, this.injectNode(jsx, this.lastNodeFor(index)));
7657
+ this.nodeArrayOrObservableAtIndex.splice(
7658
+ index,
7659
+ 0,
7660
+ this.injectNode(jsx, this.lastNodeFor(index))
7661
+ );
7597
7662
  }
7598
7663
  injectNode(jsx, nextNode) {
7599
7664
  let nodeArrayOrObservable;
@@ -7604,7 +7669,9 @@ ${name} ${msg} of
7604
7669
  } else if (typeof jsx !== "string" && isIterable(jsx)) {
7605
7670
  nodeArrayOrObservable = [];
7606
7671
  for (const child of jsx) {
7607
- nodeArrayOrObservable.unshift(this.injectNode(child, nextNode));
7672
+ nodeArrayOrObservable.unshift(
7673
+ this.injectNode(child, nextNode)
7674
+ );
7608
7675
  }
7609
7676
  } else {
7610
7677
  const $context = contextFor(this.parentNode);
@@ -7628,7 +7695,9 @@ ${name} ${msg} of
7628
7695
  return node.nodeType === 1 || node.nodeType === 8;
7629
7696
  }
7630
7697
  delChange(index) {
7631
- this.removeNodeArrayOrObservable(this.nodeArrayOrObservableAtIndex[index]);
7698
+ this.removeNodeArrayOrObservable(
7699
+ this.nodeArrayOrObservableAtIndex[index]
7700
+ );
7632
7701
  this.nodeArrayOrObservableAtIndex.splice(index, 1);
7633
7702
  }
7634
7703
  getSubscriptionsForNode(node) {
@@ -7695,9 +7764,11 @@ ${name} ${msg} of
7695
7764
  node[ORIGINAL_JSX_SYM] = jsx;
7696
7765
  if (isObservable(jsx.attributes)) {
7697
7766
  const subscriptions = this.getSubscriptionsForNode(node);
7698
- subscriptions.push(jsx.attributes.subscribe((attrs) => {
7699
- this.updateAttributes(node, unwrap(attrs));
7700
- }));
7767
+ subscriptions.push(
7768
+ jsx.attributes.subscribe((attrs) => {
7769
+ this.updateAttributes(node, unwrap(attrs));
7770
+ })
7771
+ );
7701
7772
  }
7702
7773
  this.updateAttributes(node, unwrap(jsx.attributes));
7703
7774
  this.addDisposable(new JsxObserver(jsx.children, node, null, xmlns, this.noInitialBinding));
@@ -7716,7 +7787,9 @@ ${name} ${msg} of
7716
7787
  for (const [name, value2] of Object.entries(attributes || {})) {
7717
7788
  toRemove.delete(name);
7718
7789
  if (isObservable(value2)) {
7719
- subscriptions.push(value2.subscribe((attr2) => this.setNodeAttribute(node, name, value2)));
7790
+ subscriptions.push(
7791
+ value2.subscribe((attr2) => this.setNodeAttribute(node, name, value2))
7792
+ );
7720
7793
  }
7721
7794
  this.setNodeAttribute(node, name, value2);
7722
7795
  }
@@ -7824,7 +7897,9 @@ ${name} ${msg} of
7824
7897
  var ComponentBinding = class extends DescendantBindingHandler {
7825
7898
  constructor(params) {
7826
7899
  super(params);
7827
- this.originalChildNodes = makeArray(virtualElements_exports.childNodes(this.$element));
7900
+ this.originalChildNodes = makeArray(
7901
+ virtualElements_exports.childNodes(this.$element)
7902
+ );
7828
7903
  this.computed("computeApplyComponent");
7829
7904
  }
7830
7905
  cloneTemplateIntoElement(componentName, template, element) {
@@ -7879,7 +7954,9 @@ ${name} ${msg} of
7879
7954
  const ctxExtender = (ctx) => Object.assign(ctx, {
7880
7955
  $component,
7881
7956
  $componentTemplateNodes: this.originalChildNodes,
7882
- $componentTemplateSlotNodes: this.makeTemplateSlotNodes(this.originalChildNodes)
7957
+ $componentTemplateSlotNodes: this.makeTemplateSlotNodes(
7958
+ this.originalChildNodes
7959
+ )
7883
7960
  });
7884
7961
  return this.$context.createChildContext($component, void 0, ctxExtender);
7885
7962
  }
@@ -8057,7 +8134,7 @@ ${name} ${msg} of
8057
8134
  { each: bindings4.foreach }
8058
8135
  ]
8059
8136
  });
8060
- var version = "4.0.0-beta1.3";
8137
+ var version = "4.0.0-beta1.5";
8061
8138
  var src_default = builder.create({
8062
8139
  jsx: {
8063
8140
  createElement,