@tko/build.knockout 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.knockout 🥊 4.0.0-beta1.3 IIFE
1
+ "use strict";
2
+ // @tko/build.knockout 🥊 4.0.0-beta1.5 IIFE
2
3
  var ko = (() => {
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -2087,6 +2088,7 @@ var ko = (() => {
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 ko = (() => {
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 ko = (() => {
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 ko = (() => {
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 ko = (() => {
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 ko = (() => {
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
  }
@@ -6430,7 +6480,10 @@ ${name} ${msg} of
6430
6480
  constructor(...args) {
6431
6481
  super(...args);
6432
6482
  if (ieVersion < 11) {
6433
- this.addEventListener("propertychange", (event) => event.propertyName === "value" && this.updateModel(event));
6483
+ this.addEventListener(
6484
+ "propertychange",
6485
+ (event) => event.propertyName === "value" && this.updateModel(event)
6486
+ );
6434
6487
  }
6435
6488
  if (ieVersion >= 8 && ieVersion < 10) {
6436
6489
  this.watchForSelectionChangeEvent();
@@ -6516,7 +6569,10 @@ ${name} ${msg} of
6516
6569
  constructor(...args) {
6517
6570
  super(...args);
6518
6571
  if (this.isCheckboxOrRadio) {
6519
- applyBindingAccessorsToNode(this.$element, { checkedValue: this.valueAccessor });
6572
+ applyBindingAccessorsToNode(
6573
+ this.$element,
6574
+ { checkedValue: this.valueAccessor }
6575
+ );
6520
6576
  return;
6521
6577
  }
6522
6578
  this.propertyChangedFired = false;
@@ -6885,7 +6941,9 @@ ${name} ${msg} of
6885
6941
  this.container = virtualElements_exports.isStartComment(this.$element) ? this.$element.parentNode : this.$element;
6886
6942
  this.generateContext = this.createContextGenerator(this.as);
6887
6943
  this.$indexHasBeenRequested = false;
6888
- this.templateNode = makeTemplateNode(settings.templateNode || (settings.name ? document.getElementById(settings.name).cloneNode(true) : this.$element));
6944
+ this.templateNode = makeTemplateNode(
6945
+ settings.templateNode || (settings.name ? document.getElementById(settings.name).cloneNode(true) : this.$element)
6946
+ );
6889
6947
  ["afterAdd", "beforeRemove", "afterQueueFlush", "beforeQueueFlush"].forEach((p) => {
6890
6948
  this[p] = settings[p] || this.allBindings.get(p);
6891
6949
  });
@@ -7040,7 +7098,10 @@ ${name} ${msg} of
7040
7098
  var templateClone = this.templateNode.cloneNode(true);
7041
7099
  children = virtualElements_exports.childNodes(templateClone);
7042
7100
  this.updateFirstLastNodesList(index + i, children);
7043
- const bindingResult = applyBindingsToDescendants(this.generateContext(valuesToAdd[i]), templateClone);
7101
+ const bindingResult = applyBindingsToDescendants(
7102
+ this.generateContext(valuesToAdd[i]),
7103
+ templateClone
7104
+ );
7044
7105
  asyncBindingResults.push(bindingResult);
7045
7106
  }
7046
7107
  allChildNodes.push(...children);
@@ -7406,7 +7467,11 @@ ${name} ${msg} of
7406
7467
  adds.forEach((change) => this.addChange(...change));
7407
7468
  }
7408
7469
  addChange(index, jsx) {
7409
- this.nodeArrayOrObservableAtIndex.splice(index, 0, this.injectNode(jsx, this.lastNodeFor(index)));
7470
+ this.nodeArrayOrObservableAtIndex.splice(
7471
+ index,
7472
+ 0,
7473
+ this.injectNode(jsx, this.lastNodeFor(index))
7474
+ );
7410
7475
  }
7411
7476
  injectNode(jsx, nextNode) {
7412
7477
  let nodeArrayOrObservable;
@@ -7417,7 +7482,9 @@ ${name} ${msg} of
7417
7482
  } else if (typeof jsx !== "string" && isIterable(jsx)) {
7418
7483
  nodeArrayOrObservable = [];
7419
7484
  for (const child of jsx) {
7420
- nodeArrayOrObservable.unshift(this.injectNode(child, nextNode));
7485
+ nodeArrayOrObservable.unshift(
7486
+ this.injectNode(child, nextNode)
7487
+ );
7421
7488
  }
7422
7489
  } else {
7423
7490
  const $context = contextFor(this.parentNode);
@@ -7441,7 +7508,9 @@ ${name} ${msg} of
7441
7508
  return node.nodeType === 1 || node.nodeType === 8;
7442
7509
  }
7443
7510
  delChange(index) {
7444
- this.removeNodeArrayOrObservable(this.nodeArrayOrObservableAtIndex[index]);
7511
+ this.removeNodeArrayOrObservable(
7512
+ this.nodeArrayOrObservableAtIndex[index]
7513
+ );
7445
7514
  this.nodeArrayOrObservableAtIndex.splice(index, 1);
7446
7515
  }
7447
7516
  getSubscriptionsForNode(node) {
@@ -7508,9 +7577,11 @@ ${name} ${msg} of
7508
7577
  node[ORIGINAL_JSX_SYM] = jsx;
7509
7578
  if (isObservable(jsx.attributes)) {
7510
7579
  const subscriptions = this.getSubscriptionsForNode(node);
7511
- subscriptions.push(jsx.attributes.subscribe((attrs) => {
7512
- this.updateAttributes(node, unwrap(attrs));
7513
- }));
7580
+ subscriptions.push(
7581
+ jsx.attributes.subscribe((attrs) => {
7582
+ this.updateAttributes(node, unwrap(attrs));
7583
+ })
7584
+ );
7514
7585
  }
7515
7586
  this.updateAttributes(node, unwrap(jsx.attributes));
7516
7587
  this.addDisposable(new JsxObserver(jsx.children, node, null, xmlns, this.noInitialBinding));
@@ -7529,7 +7600,9 @@ ${name} ${msg} of
7529
7600
  for (const [name, value2] of Object.entries(attributes || {})) {
7530
7601
  toRemove.delete(name);
7531
7602
  if (isObservable(value2)) {
7532
- subscriptions.push(value2.subscribe((attr2) => this.setNodeAttribute(node, name, value2)));
7603
+ subscriptions.push(
7604
+ value2.subscribe((attr2) => this.setNodeAttribute(node, name, value2))
7605
+ );
7533
7606
  }
7534
7607
  this.setNodeAttribute(node, name, value2);
7535
7608
  }
@@ -7630,7 +7703,9 @@ ${name} ${msg} of
7630
7703
  var ComponentBinding = class extends DescendantBindingHandler {
7631
7704
  constructor(params) {
7632
7705
  super(params);
7633
- this.originalChildNodes = makeArray(virtualElements_exports.childNodes(this.$element));
7706
+ this.originalChildNodes = makeArray(
7707
+ virtualElements_exports.childNodes(this.$element)
7708
+ );
7634
7709
  this.computed("computeApplyComponent");
7635
7710
  }
7636
7711
  cloneTemplateIntoElement(componentName, template, element) {
@@ -7685,7 +7760,9 @@ ${name} ${msg} of
7685
7760
  const ctxExtender = (ctx) => Object.assign(ctx, {
7686
7761
  $component,
7687
7762
  $componentTemplateNodes: this.originalChildNodes,
7688
- $componentTemplateSlotNodes: this.makeTemplateSlotNodes(this.originalChildNodes)
7763
+ $componentTemplateSlotNodes: this.makeTemplateSlotNodes(
7764
+ this.originalChildNodes
7765
+ )
7689
7766
  });
7690
7767
  return this.$context.createChildContext($component, void 0, ctxExtender);
7691
7768
  }
@@ -7882,7 +7959,7 @@ ${name} ${msg} of
7882
7959
  bindingStringPreparsers: [functionRewrite]
7883
7960
  }
7884
7961
  });
7885
- var version = "4.0.0-beta1.3";
7962
+ var version = "4.0.0-beta1.5";
7886
7963
  var src_default = builder.create({
7887
7964
  version,
7888
7965
  components: dist_default,