@sapui5/sap.fe.base 1.141.2 → 1.142.1

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.
@@ -174,6 +174,9 @@ export type IfElseExpression<T> = BaseExpression<T> & {
174
174
  export function isProperty(serviceObject: unknown): serviceObject is Property {
175
175
  return (serviceObject as Property)?._type === "Property";
176
176
  }
177
+ function isActionParameter(serviceObject: unknown): serviceObject is ActionParameter {
178
+ return (serviceObject as ActionParameter)?._type === "ActionParameter";
179
+ }
177
180
 
178
181
  /**
179
182
  * An expression that evaluates to type T.
@@ -1664,16 +1667,18 @@ export function formatWithTypeInformation<T>(
1664
1667
  parseAsString: false
1665
1668
  });
1666
1669
  }
1667
- if (outExpression.type === "sap.ui.model.odata.type.String" && isProperty(property)) {
1670
+ if (outExpression.type === "sap.ui.model.odata.type.String" && (isProperty(property) || isActionParameter(property))) {
1668
1671
  if (outExpression.constraints?.isDigitSequence || (outExpression.constraints?.nullable !== false && property.nullable === true)) {
1669
1672
  outExpression.formatOptions.parseKeepsEmptyString = false;
1670
1673
  } else {
1671
1674
  outExpression.formatOptions.parseKeepsEmptyString = true;
1672
1675
  }
1673
- const fiscalType = getFiscalType(property);
1674
- if (fiscalType) {
1675
- outExpression.formatOptions.fiscalType = fiscalType;
1676
- outExpression.type = "sap.fe.core.type.FiscalDate";
1676
+ if (isProperty(property)) {
1677
+ const fiscalType = getFiscalType(property);
1678
+ if (fiscalType) {
1679
+ outExpression.formatOptions.fiscalType = fiscalType;
1680
+ outExpression.type = "sap.fe.core.type.FiscalDate";
1681
+ }
1677
1682
  }
1678
1683
  }
1679
1684
  const typesSupportingParseEmptyValueToZero = [
@@ -1781,7 +1786,8 @@ export function addTypeInformation<T, U extends Fn<T>>(
1781
1786
  currencyPath.mode = "OneTime";
1782
1787
  oFormatOptions ??= {};
1783
1788
  if (oConstraintOptions?.skipDecimalsValidation === true) {
1784
- oFormatOptions.decimals = 99; // setting to 99 to avoid rounding in currency conversion
1789
+ // This doesn't do anything because it gets overwritten by the `decimals` from the currency code list
1790
+ oFormatOptions.maxFractionDigits = 99; // setting to 99 to avoid rounding in currency conversion
1785
1791
  }
1786
1792
 
1787
1793
  oFormatOptions.preserveDecimals = oConstraintOptions?.skipDecimalsValidation ?? false; // default value since we don't have a CLDR
@@ -1800,6 +1806,7 @@ export function addTypeInformation<T, U extends Fn<T>>(
1800
1806
 
1801
1807
  type ComplexTypeFormatOptions = {
1802
1808
  decimals?: number;
1809
+ maxFractionDigits?: number;
1803
1810
  showNumber?: boolean;
1804
1811
  showMeasure?: boolean;
1805
1812
  parseAsString?: boolean;
@@ -1897,6 +1904,29 @@ export function isEmpty(expression: BindingToolkitExpression<string>): BindingTo
1897
1904
  });
1898
1905
  return and(...aBindings);
1899
1906
  }
1907
+ /**
1908
+ * Shortcut function to determine if a binding can be statically resolvable.
1909
+ * @param exp The expression to evaluate
1910
+ * @returns A Boolean evaluating if there is no relative path dependent on the current context
1911
+ */
1912
+ export function isExpressionStaticallyResolvable(exp: BindingToolkitExpression<boolean>): boolean {
1913
+ const referencedPaths: string[] = [];
1914
+ transformRecursively(
1915
+ exp,
1916
+ "PathInModel",
1917
+ (pathExp) => {
1918
+ if (pathExp.modelName === undefined && typeof pathExp.path === "string") {
1919
+ referencedPaths.push(pathExp.path);
1920
+ }
1921
+ return pathExp;
1922
+ },
1923
+ true
1924
+ );
1925
+ if (referencedPaths.length === 0) {
1926
+ return true;
1927
+ }
1928
+ return referencedPaths.every((p) => p.startsWith("/"));
1929
+ }
1900
1930
 
1901
1931
  export function concat(...inExpressions: ExpressionOrPrimitive<string>[]): BindingToolkitExpression<string> {
1902
1932
  const expressions = inExpressions.map(wrapPrimitive);
@@ -53,10 +53,19 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/ui
53
53
  _inheritsLoose(BuildingBlockBase, _Control);
54
54
  BuildingBlockBase.render = function render(oRm, oControl) {
55
55
  if (!oControl.content || oControl.getVisible() === false) {
56
+ // If there is no content, we render an invisible renderer to avoid the control being
56
57
  InvisibleRenderer.render(oRm, oControl);
57
58
  } else {
58
59
  oRm.renderControl(oControl.content);
59
60
  }
61
+ };
62
+ var _proto = BuildingBlockBase.prototype;
63
+ _proto.setBindingContext = function setBindingContext(context, model) {
64
+ _Control.prototype.setBindingContext.call(this, context, model);
65
+ if (model === undefined && context) {
66
+ this.invalidate();
67
+ }
68
+ return this;
60
69
  }
61
70
 
62
71
  /**
@@ -65,7 +74,6 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/ui
65
74
  * @param bindingInfo The binding info
66
75
  * @returns The instance of the building block for chaining
67
76
  */;
68
- var _proto = BuildingBlockBase.prototype;
69
77
  _proto.bindProperty = function bindProperty(name, bindingInfo) {
70
78
  const propertyMetadata = this.getMetadata().getProperty(name);
71
79
  if (propertyMetadata?.bindable === false && propertyMetadata.group === "Data") {
@@ -180,4 +188,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/ui
180
188
  }), _class2)) || _class);
181
189
  return BuildingBlockBase;
182
190
  }, false);
183
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiYWdncmVnYXRpb24iLCJ0eXBlIiwibXVsdGlwbGUiLCJpc0RlZmF1bHQiLCJfZGVjMyIsImFzc29jaWF0aW9uIiwic2luZ3VsYXJOYW1lIiwiX2RlYzQiLCJkZWZpbmVTdGF0ZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbCIsInNldHRpbmdzIiwib3RoZXJzIiwic2NvcGUiLCJfdGhpcyIsImlkIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfb2xkRG9tUmVmIiwiX2luaGVyaXRzTG9vc2UiLCJyZW5kZXIiLCJvUm0iLCJvQ29udHJvbCIsImNvbnRlbnQiLCJnZXRWaXNpYmxlIiwiSW52aXNpYmxlUmVuZGVyZXIiLCJyZW5kZXJDb250cm9sIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiYmluZFByb3BlcnR5IiwibmFtZSIsImJpbmRpbmdJbmZvIiwicHJvcGVydHlNZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiZ2V0UHJvcGVydHkiLCJiaW5kYWJsZSIsImdyb3VwIiwib25BZnRlclJlbmRlcmluZyIsImV2ZW50IiwiZG9tUmVmIiwiZ2V0RG9tUmVmIiwiV2Vha1JlZiIsInN1ZmZpeCIsIm9Db250ZW50IiwiZGVyZWYiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZ2V0Rm9jdXNEb21SZWYiLCJlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlIiwiX29FbGVtZW50IiwibUFyaWFQcm9wcyIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJnZXRBY2Nlc3NpYmlsaXR5SW5mbyIsImFjY2Vzc2liaWxpdHlJbmZvIiwiaXNBIiwiZ2V0SWRGb3JMYWJlbCIsImFkZFN0eWxlQ2xhc3MiLCJzdHlsZUNsYXNzIiwicmVtb3ZlU3R5bGVDbGFzcyIsImJpbmRTdGF0ZSIsInBhdGgiLCJCaW5kaW5nVG9vbGtpdCIsInN0YXRlIiwiQ29udHJvbCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQnVpbGRpbmdCbG9ja0Jhc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25zdGFudEV4cHJlc3Npb24sIFBhdGhJbk1vZGVsRXhwcmVzc2lvbiwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0ICogYXMgQmluZGluZ1Rvb2xraXQgZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiwgU3RhdGVPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBhc3NvY2lhdGlvbiwgZGVmaW5lU3RhdGUsIGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgSW52aXNpYmxlUmVuZGVyZXIgZnJvbSBcInNhcC91aS9jb3JlL0ludmlzaWJsZVJlbmRlcmVyXCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IEFjY2Vzc2liaWxpdHlJbmZvIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcblxuaW50ZXJmYWNlIEJ1aWxkaW5nQmxvY2tCYXNlPFQgZXh0ZW5kcyBVSTVFbGVtZW50ID0gQ29udHJvbCwgSyBleHRlbmRzIG9iamVjdCA9IHt9PiB7XG5cdC8vIEZvcmNlIGEgc3RhdGUgdXBkYXRlXG5cdF91cGRhdGVTdGF0ZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGJ1aWxkaW5nIGJsb2Nrcy5cbiAqIFRoaXMgY29udGFpbnMgdGhlIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IG9mIGhhdmluZyBhIGNvbnRlbnQgYWdncmVnYXRpb24gYW5kIGhhbmRsaW5nIHRoZSByZW5kZXJpbmcgb2YgdGhlIGNvbnRlbnQgd2l0aG91dCBhbiBhY3R1YWwgRE9NIGVsZW1lbnQuXG4gKiBUaGUgYnVpbGRpbmcgYmxvY2sgYWxzbyBkZWZpbmVzIGEgc3RhdGUgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gc3RvcmUgdGhlIHN0YXRlIG9mIHRoZSBidWlsZGluZyBibG9jay5cbiAqIEFjY2Vzc2liaWxpdHkgYW5kIGNsYXNzZXMgaW5mb3JtYXRpb24gYXJlIGZvcndhcmRlZCB0byB0aGUgY29udGVudCBjb250cm9sLlxuICogQHB1YmxpY1xuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuYmFzZS5CdWlsZGluZ0Jsb2NrQmFzZVwiKVxuY2xhc3MgQnVpbGRpbmdCbG9ja0Jhc2U8VCBleHRlbmRzIFVJNUVsZW1lbnQgPSBDb250cm9sLCBLIGV4dGVuZHMgb2JqZWN0ID0ge30+IGV4dGVuZHMgQ29udHJvbCB7XG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuRWxlbWVudFwiLCBtdWx0aXBsZTogZmFsc2UsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRjb250ZW50PzogVDtcblxuXHQvKipcblx0ICogQXNzb2NpYXRpb24gdG8gY29udHJvbHMgLyBJRHMgdGhhdCBsYWJlbCB0aGlzIGNvbnRyb2wgKHNlZSBXQUktQVJJQSBhdHRyaWJ1dGUgYXJpYS1sYWJlbGxlZGJ5KS5cblx0ICovXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSwgc2luZ3VsYXJOYW1lOiBcImFyaWFMYWJlbGxlZEJ5XCIgfSlcblx0YXJpYUxhYmVsbGVkQnkhOiBzdHJpbmdbXTtcblxuXHRAZGVmaW5lU3RhdGUoKVxuXHRwcm90ZWN0ZWQgc3RhdGUhOiBTdGF0ZU9mPEs+O1xuXG5cdGNvbnN0cnVjdG9yKHNldHRpbmdzPzogc3RyaW5nIHwgUHJvcGVydGllc09mPEJ1aWxkaW5nQmxvY2tCYXNlPFQ+Piwgb3RoZXJzPzogUHJvcGVydGllc09mPEJ1aWxkaW5nQmxvY2tCYXNlPFQ+Piwgc2NvcGU/OiBvYmplY3QpIHtcblx0XHRpZiAodHlwZW9mIHNldHRpbmdzID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRvdGhlcnMgPz89IHt9O1xuXHRcdFx0b3RoZXJzLmlkID0gc2V0dGluZ3M7XG5cdFx0fVxuXHRcdC8vIFNjb3BlIGlzIGRlZmluZWQgYW5kIGlzIHRoZXJlLCBidXQgc29tZWhvdyBkb2Vzbid0IGFwcGVhciBvbiBhbGwgdGhlIGNoaWxkcmVuIG9mIE1hbmFnZWRPYmplY3Rcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHN1cGVyKHNldHRpbmdzIGFzIHVua25vd24gYXMgc3RyaW5nLCBvdGhlcnMsIHNjb3BlKTtcblx0fVxuXG5cdHByaXZhdGUgX29sZERvbVJlZjogV2Vha1JlZjxFbGVtZW50PiB8IG51bGwgPSBudWxsO1xuXG5cdHN0YXRpYyByZW5kZXI8VCBleHRlbmRzIENvbnRyb2w+KG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IEJ1aWxkaW5nQmxvY2tCYXNlPFQ+KTogdm9pZCB7XG5cdFx0aWYgKCFvQ29udHJvbC5jb250ZW50IHx8IG9Db250cm9sLmdldFZpc2libGUoKSA9PT0gZmFsc2UpIHtcblx0XHRcdEludmlzaWJsZVJlbmRlcmVyLnJlbmRlcihvUm0sIG9Db250cm9sKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRyb2wuY29udGVudCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIE92ZXJyaWRlIHRoZSBiaW5kUHJvcGVydHkgdG8gZGVhbCB3aXRoIHRoZSBjYXNlIHdoZXJlIHRoZSBwcm9wZXJ0eSBpcyBhIGJpbmRpbmcgaW5mby5cblx0ICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGUgcHJvcGVydHlcblx0ICogQHBhcmFtIGJpbmRpbmdJbmZvIFRoZSBiaW5kaW5nIGluZm9cblx0ICogQHJldHVybnMgVGhlIGluc3RhbmNlIG9mIHRoZSBidWlsZGluZyBibG9jayBmb3IgY2hhaW5pbmdcblx0ICovXG5cdG92ZXJyaWRlIGJpbmRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIGJpbmRpbmdJbmZvOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogdGhpcyB7XG5cdFx0Y29uc3QgcHJvcGVydHlNZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRQcm9wZXJ0eShuYW1lKTtcblx0XHRpZiAocHJvcGVydHlNZXRhZGF0YT8uYmluZGFibGUgPT09IGZhbHNlICYmIHByb3BlcnR5TWV0YWRhdGEuZ3JvdXAgPT09IFwiRGF0YVwiKSB7XG5cdFx0XHQodGhpcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZV0gPSBiaW5kaW5nSW5mbztcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3VwZXIuYmluZFByb3BlcnR5KG5hbWUsIGJpbmRpbmdJbmZvKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvL3NldCB0aGUgb2xkIGRvbSByZWZcblx0b3ZlcnJpZGUgb25BZnRlclJlbmRlcmluZyhldmVudDogSlF1ZXJ5LkV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgZG9tUmVmID0gdGhpcy5nZXREb21SZWYoKTtcblx0XHRpZiAoZG9tUmVmKSB7XG5cdFx0XHR0aGlzLl9vbGREb21SZWYgPSBuZXcgV2Vha1JlZihkb21SZWYpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9vbGREb21SZWYgPSBudWxsO1xuXHRcdH1cblx0XHRzdXBlci5vbkFmdGVyUmVuZGVyaW5nKGV2ZW50KTtcblx0fVxuXG5cdG92ZXJyaWRlIGdldERvbVJlZihzdWZmaXg/OiBzdHJpbmcpOiBFbGVtZW50IHwgbnVsbCB7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0bGV0IGRvbVJlZjogRWxlbWVudCB8IG51bGwgPSBvQ29udGVudD8uZ2V0RG9tUmVmKHN1ZmZpeCkgPz8gc3VwZXIuZ2V0RG9tUmVmKHN1ZmZpeCk7XG5cdFx0aWYgKCFkb21SZWYgJiYgIXN1ZmZpeCkge1xuXHRcdFx0ZG9tUmVmID0gdGhpcy5fb2xkRG9tUmVmPy5kZXJlZigpID8/IG51bGw7XG5cdFx0XHRpZiAoZG9tUmVmKSB7XG5cdFx0XHRcdHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkb21SZWYuaWQpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZG9tUmVmO1xuXHR9XG5cblx0b3ZlcnJpZGUgZ2V0Rm9jdXNEb21SZWYoKTogRWxlbWVudCB8IG51bGwge1xuXHRcdGNvbnN0IG9Db250ZW50ID0gdGhpcy5jb250ZW50O1xuXHRcdHJldHVybiBvQ29udGVudCA/IG9Db250ZW50LmdldEZvY3VzRG9tUmVmKCkgOiBzdXBlci5nZXRGb2N1c0RvbVJlZigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gYXNrcyB1cCB0aGUgY29udHJvbCB0cmVlIHRvIGVuaGFuY2UgdGhlIGFjY2Vzc2liaWxpdHkgc3RhdGUgb2YgdGhlIGNvbnRyb2wuXG5cdCAqIEBwYXJhbSBfb0VsZW1lbnQgVGhlIGVsZW1lbnQgdG8gZW5oYW5jZVxuXHQgKiBAcGFyYW0gbUFyaWFQcm9wcyBUaGUgY3VycmVudCBhcmlhIHByb3BlcnRpZXNcblx0ICogQHJldHVybnMgVGhlIGVuaGFuY2VkIGFyaWEgcHJvcGVydGllc1xuXHQgKi9cblx0b3ZlcnJpZGUgZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZShfb0VsZW1lbnQ6IG9iamVjdCwgbUFyaWFQcm9wczogb2JqZWN0KTogb2JqZWN0IHtcblx0XHRjb25zdCBvUGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKTtcblxuXHRcdGlmIChvUGFyZW50ICYmIChvUGFyZW50IGFzIE1hbmFnZWRPYmplY3QgJiB7IGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGU/OiBGdW5jdGlvbiB9KS5lbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKSB7XG5cdFx0XHQvLyBmb3J3YXJkICBlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlIGNhbGwgdG8gdGhlIHBhcmVudFxuXHRcdFx0KG9QYXJlbnQgYXMgTWFuYWdlZE9iamVjdCAmIHsgZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZTogRnVuY3Rpb24gfSkuZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZShfb0VsZW1lbnQsIG1BcmlhUHJvcHMpO1xuXHRcdH1cblxuXHRcdHJldHVybiBtQXJpYVByb3BzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gKGlmIGF2YWlsYWJsZSBvbiB0aGUgY29uY3JldGUgY29udHJvbCkgcHJvdmlkZXMgdGhlIGN1cnJlbnQgYWNjZXNzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgY29udHJvbC5cblx0ICogQHJldHVybnMgVGhlIGFjY2Vzc2liaWxpdHkgaW5mb3JtYXRpb24gZm9yIHRoZSBjb250cm9sLlxuXHQgKi9cblx0b3ZlcnJpZGUgZ2V0QWNjZXNzaWJpbGl0eUluZm8oKTogQWNjZXNzaWJpbGl0eUluZm8ge1xuXHRcdGxldCBhY2Nlc3NpYmlsaXR5SW5mbyA9IHt9O1xuXHRcdGlmICh0aGlzLmNvbnRlbnQ/LmlzQTxDb250cm9sPihcInNhcC51aS5jb3JlLkNvbnRyb2xcIikgJiYgdGhpcy5jb250ZW50LmdldEFjY2Vzc2liaWxpdHlJbmZvKSB7XG5cdFx0XHRhY2Nlc3NpYmlsaXR5SW5mbyA9IHRoaXMuY29udGVudC5nZXRBY2Nlc3NpYmlsaXR5SW5mbygpO1xuXHRcdH1cblx0XHRyZXR1cm4gYWNjZXNzaWJpbGl0eUluZm87XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgRE9NTm9kZSBJRCB0byBiZSB1c2VkIGZvciB0aGUgXCJsYWJlbEZvclwiIGF0dHJpYnV0ZS5cblx0ICpcblx0ICogV2UgZm9yd2FyZCB0aGUgY2FsbCBvZiB0aGlzIG1ldGhvZCB0byB0aGUgY29udGVudCBjb250cm9sLlxuXHQgKiBAcmV0dXJucyBJRCB0byBiZSB1c2VkIGZvciB0aGUgPGNvZGU+bGFiZWxGb3I8L2NvZGU+XG5cdCAqL1xuXHRvdmVycmlkZSBnZXRJZEZvckxhYmVsKCk6IHN0cmluZyB7XG5cdFx0aWYgKHRoaXMuY29udGVudD8uaXNBPENvbnRyb2w+KFwic2FwLnVpLmNvcmUuQ29udHJvbFwiKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuY29udGVudC5nZXRJZEZvckxhYmVsKCk7XG5cdFx0fVxuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cblx0b3ZlcnJpZGUgYWRkU3R5bGVDbGFzcyhzdHlsZUNsYXNzOiBzdHJpbmcpOiB0aGlzIHtcblx0XHQodGhpcy5jb250ZW50IGFzIHVua25vd24gYXMgQ29udHJvbCk/LmFkZFN0eWxlQ2xhc3Moc3R5bGVDbGFzcyk7XG5cdFx0c3VwZXIuYWRkU3R5bGVDbGFzcyhzdHlsZUNsYXNzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdG92ZXJyaWRlIHJlbW92ZVN0eWxlQ2xhc3Moc3R5bGVDbGFzczogc3RyaW5nKTogdGhpcyB7XG5cdFx0KHRoaXMuY29udGVudCBhcyB1bmtub3duIGFzIENvbnRyb2wpPy5yZW1vdmVTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpO1xuXHRcdHN1cGVyLnJlbW92ZVN0eWxlQ2xhc3Moc3R5bGVDbGFzcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2hvcnRoYW5kIGZvciB0aGUgQmluZGluZ1Rvb2xraXQuYmluZFN0YXRlIGZ1bmN0aW9uIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2JqZWN0LlxuXHQgKiBAcGFyYW0gcGF0aCBBIHByb3BlcnR5IGluIHRoZSBzdGF0ZSBvYmplY3Rcblx0ICogQHJldHVybnMgVGhlIGJpbmRpbmcgdG9vbGtpdCBleHByZXNzaW9uIGZvciB0aGUgc3RhdGVcblx0ICovXG5cdHByb3RlY3RlZCBiaW5kU3RhdGU8U1QgZXh0ZW5kcyBQcmltaXRpdmVUeXBlPihwYXRoOiBrZXlvZiBLKTogUGF0aEluTW9kZWxFeHByZXNzaW9uPFNUPiB8IENvbnN0YW50RXhwcmVzc2lvbjxTVD4ge1xuXHRcdHJldHVybiBCaW5kaW5nVG9vbGtpdC5iaW5kU3RhdGUodGhpcy5zdGF0ZSBhcyBLLCBwYXRoKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBCdWlsZGluZ0Jsb2NrQmFzZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFOQSxJQVFNQSxpQkFBaUIsSUFBQUMsSUFBQSxHQUR0QkMsY0FBYyxDQUFDLCtCQUErQixDQUFDLEVBQUFDLEtBQUEsR0FFOUNDLFdBQVcsQ0FBQztJQUFFQyxJQUFJLEVBQUUscUJBQXFCO0lBQUVDLFFBQVEsRUFBRSxLQUFLO0lBQUVDLFNBQVMsRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBTTlFQyxXQUFXLENBQUM7SUFBRUosSUFBSSxFQUFFLHFCQUFxQjtJQUFFQyxRQUFRLEVBQUUsSUFBSTtJQUFFSSxZQUFZLEVBQUU7RUFBaUIsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHNUZDLFdBQVcsQ0FBQyxDQUFDLEVBQUFYLElBQUEsQ0FBQVksTUFBQSxJ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
191
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiYWdncmVnYXRpb24iLCJ0eXBlIiwibXVsdGlwbGUiLCJpc0RlZmF1bHQiLCJfZGVjMyIsImFzc29jaWF0aW9uIiwic2luZ3VsYXJOYW1lIiwiX2RlYzQiLCJkZWZpbmVTdGF0ZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbCIsInNldHRpbmdzIiwib3RoZXJzIiwic2NvcGUiLCJfdGhpcyIsImlkIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfb2xkRG9tUmVmIiwiX2luaGVyaXRzTG9vc2UiLCJyZW5kZXIiLCJvUm0iLCJvQ29udHJvbCIsImNvbnRlbnQiLCJnZXRWaXNpYmxlIiwiSW52aXNpYmxlUmVuZGVyZXIiLCJyZW5kZXJDb250cm9sIiwiX3Byb3RvIiwicHJvdG90eXBlIiwic2V0QmluZGluZ0NvbnRleHQiLCJjb250ZXh0IiwibW9kZWwiLCJ1bmRlZmluZWQiLCJpbnZhbGlkYXRlIiwiYmluZFByb3BlcnR5IiwibmFtZSIsImJpbmRpbmdJbmZvIiwicHJvcGVydHlNZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiZ2V0UHJvcGVydHkiLCJiaW5kYWJsZSIsImdyb3VwIiwib25BZnRlclJlbmRlcmluZyIsImV2ZW50IiwiZG9tUmVmIiwiZ2V0RG9tUmVmIiwiV2Vha1JlZiIsInN1ZmZpeCIsIm9Db250ZW50IiwiZGVyZWYiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZ2V0Rm9jdXNEb21SZWYiLCJlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlIiwiX29FbGVtZW50IiwibUFyaWFQcm9wcyIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJnZXRBY2Nlc3NpYmlsaXR5SW5mbyIsImFjY2Vzc2liaWxpdHlJbmZvIiwiaXNBIiwiZ2V0SWRGb3JMYWJlbCIsImFkZFN0eWxlQ2xhc3MiLCJzdHlsZUNsYXNzIiwicmVtb3ZlU3R5bGVDbGFzcyIsImJpbmRTdGF0ZSIsInBhdGgiLCJCaW5kaW5nVG9vbGtpdCIsInN0YXRlIiwiQ29udHJvbCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQnVpbGRpbmdCbG9ja0Jhc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25zdGFudEV4cHJlc3Npb24sIFBhdGhJbk1vZGVsRXhwcmVzc2lvbiwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0ICogYXMgQmluZGluZ1Rvb2xraXQgZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiwgU3RhdGVPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBhc3NvY2lhdGlvbiwgZGVmaW5lU3RhdGUsIGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgSW52aXNpYmxlUmVuZGVyZXIgZnJvbSBcInNhcC91aS9jb3JlL0ludmlzaWJsZVJlbmRlcmVyXCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSB7IEFjY2Vzc2liaWxpdHlJbmZvIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5cbmludGVyZmFjZSBCdWlsZGluZ0Jsb2NrQmFzZTxUIGV4dGVuZHMgVUk1RWxlbWVudCA9IENvbnRyb2wsIEsgZXh0ZW5kcyBvYmplY3QgPSB7fT4ge1xuXHQvLyBGb3JjZSBhIHN0YXRlIHVwZGF0ZVxuXHRfdXBkYXRlU3RhdGUoKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBidWlsZGluZyBibG9ja3MuXG4gKiBUaGlzIGNvbnRhaW5zIHRoZSBsb3cgbGV2ZWwgZnVuY3Rpb25hbGl0eSBvZiBoYXZpbmcgYSBjb250ZW50IGFnZ3JlZ2F0aW9uIGFuZCBoYW5kbGluZyB0aGUgcmVuZGVyaW5nIG9mIHRoZSBjb250ZW50IHdpdGhvdXQgYW4gYWN0dWFsIERPTSBlbGVtZW50LlxuICogVGhlIGJ1aWxkaW5nIGJsb2NrIGFsc28gZGVmaW5lcyBhIHN0YXRlIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIHRoZSBzdGF0ZSBvZiB0aGUgYnVpbGRpbmcgYmxvY2suXG4gKiBBY2Nlc3NpYmlsaXR5IGFuZCBjbGFzc2VzIGluZm9ybWF0aW9uIGFyZSBmb3J3YXJkZWQgdG8gdGhlIGNvbnRlbnQgY29udHJvbC5cbiAqIEBwdWJsaWNcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmJhc2UuQnVpbGRpbmdCbG9ja0Jhc2VcIilcbmNsYXNzIEJ1aWxkaW5nQmxvY2tCYXNlPFQgZXh0ZW5kcyBVSTVFbGVtZW50ID0gQ29udHJvbCwgSyBleHRlbmRzIG9iamVjdCA9IHt9PiBleHRlbmRzIENvbnRyb2wge1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkVsZW1lbnRcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudD86IFQ7XG5cblx0LyoqXG5cdCAqIEFzc29jaWF0aW9uIHRvIGNvbnRyb2xzIC8gSURzIHRoYXQgbGFiZWwgdGhpcyBjb250cm9sIChzZWUgV0FJLUFSSUEgYXR0cmlidXRlIGFyaWEtbGFiZWxsZWRieSkuXG5cdCAqL1xuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUsIHNpbmd1bGFyTmFtZTogXCJhcmlhTGFiZWxsZWRCeVwiIH0pXG5cdGFyaWFMYWJlbGxlZEJ5ITogc3RyaW5nW107XG5cblx0QGRlZmluZVN0YXRlKClcblx0cHJvdGVjdGVkIHN0YXRlITogU3RhdGVPZjxLPjtcblxuXHRjb25zdHJ1Y3RvcihzZXR0aW5ncz86IHN0cmluZyB8IFByb3BlcnRpZXNPZjxCdWlsZGluZ0Jsb2NrQmFzZTxUPj4sIG90aGVycz86IFByb3BlcnRpZXNPZjxCdWlsZGluZ0Jsb2NrQmFzZTxUPj4sIHNjb3BlPzogb2JqZWN0KSB7XG5cdFx0aWYgKHR5cGVvZiBzZXR0aW5ncyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0b3RoZXJzID8/PSB7fTtcblx0XHRcdG90aGVycy5pZCA9IHNldHRpbmdzO1xuXHRcdH1cblx0XHQvLyBTY29wZSBpcyBkZWZpbmVkIGFuZCBpcyB0aGVyZSwgYnV0IHNvbWVob3cgZG9lc24ndCBhcHBlYXIgb24gYWxsIHRoZSBjaGlsZHJlbiBvZiBNYW5hZ2VkT2JqZWN0XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRzdXBlcihzZXR0aW5ncyBhcyB1bmtub3duIGFzIHN0cmluZywgb3RoZXJzLCBzY29wZSk7XG5cdH1cblxuXHRwcml2YXRlIF9vbGREb21SZWY6IFdlYWtSZWY8RWxlbWVudD4gfCBudWxsID0gbnVsbDtcblxuXHRzdGF0aWMgcmVuZGVyPFQgZXh0ZW5kcyBDb250cm9sPihvUm06IFJlbmRlck1hbmFnZXIsIG9Db250cm9sOiBCdWlsZGluZ0Jsb2NrQmFzZTxUPik6IHZvaWQge1xuXHRcdGlmICghb0NvbnRyb2wuY29udGVudCB8fCBvQ29udHJvbC5nZXRWaXNpYmxlKCkgPT09IGZhbHNlKSB7XG5cdFx0XHQvLyBJZiB0aGVyZSBpcyBubyBjb250ZW50LCB3ZSByZW5kZXIgYW4gaW52aXNpYmxlIHJlbmRlcmVyIHRvIGF2b2lkIHRoZSBjb250cm9sIGJlaW5nXG5cdFx0XHRJbnZpc2libGVSZW5kZXJlci5yZW5kZXIob1JtLCBvQ29udHJvbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHRcdH1cblx0fVxuXG5cdHNldEJpbmRpbmdDb250ZXh0KGNvbnRleHQ6IENvbnRleHQsIG1vZGVsPzogc3RyaW5nKTogdGhpcyB7XG5cdFx0c3VwZXIuc2V0QmluZGluZ0NvbnRleHQoY29udGV4dCwgbW9kZWwpO1xuXHRcdGlmIChtb2RlbCA9PT0gdW5kZWZpbmVkICYmIGNvbnRleHQpIHtcblx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBPdmVycmlkZSB0aGUgYmluZFByb3BlcnR5IHRvIGRlYWwgd2l0aCB0aGUgY2FzZSB3aGVyZSB0aGUgcHJvcGVydHkgaXMgYSBiaW5kaW5nIGluZm8uXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRlIHByb3BlcnR5XG5cdCAqIEBwYXJhbSBiaW5kaW5nSW5mbyBUaGUgYmluZGluZyBpbmZvXG5cdCAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBvZiB0aGUgYnVpbGRpbmcgYmxvY2sgZm9yIGNoYWluaW5nXG5cdCAqL1xuXHRvdmVycmlkZSBiaW5kUHJvcGVydHkobmFtZTogc3RyaW5nLCBiaW5kaW5nSW5mbzogUHJvcGVydHlCaW5kaW5nSW5mbyk6IHRoaXMge1xuXHRcdGNvbnN0IHByb3BlcnR5TWV0YWRhdGEgPSB0aGlzLmdldE1ldGFkYXRhKCkuZ2V0UHJvcGVydHkobmFtZSk7XG5cdFx0aWYgKHByb3BlcnR5TWV0YWRhdGE/LmJpbmRhYmxlID09PSBmYWxzZSAmJiBwcm9wZXJ0eU1ldGFkYXRhLmdyb3VwID09PSBcIkRhdGFcIikge1xuXHRcdFx0KHRoaXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW25hbWVdID0gYmluZGluZ0luZm87XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN1cGVyLmJpbmRQcm9wZXJ0eShuYW1lLCBiaW5kaW5nSW5mbyk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0Ly9zZXQgdGhlIG9sZCBkb20gcmVmXG5cdG92ZXJyaWRlIG9uQWZ0ZXJSZW5kZXJpbmcoZXZlbnQ6IEpRdWVyeS5FdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IGRvbVJlZiA9IHRoaXMuZ2V0RG9tUmVmKCk7XG5cdFx0aWYgKGRvbVJlZikge1xuXHRcdFx0dGhpcy5fb2xkRG9tUmVmID0gbmV3IFdlYWtSZWYoZG9tUmVmKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fb2xkRG9tUmVmID0gbnVsbDtcblx0XHR9XG5cdFx0c3VwZXIub25BZnRlclJlbmRlcmluZyhldmVudCk7XG5cdH1cblxuXHRvdmVycmlkZSBnZXREb21SZWYoc3VmZml4Pzogc3RyaW5nKTogRWxlbWVudCB8IG51bGwge1xuXHRcdGNvbnN0IG9Db250ZW50ID0gdGhpcy5jb250ZW50O1xuXHRcdGxldCBkb21SZWY6IEVsZW1lbnQgfCBudWxsID0gb0NvbnRlbnQ/LmdldERvbVJlZihzdWZmaXgpID8/IHN1cGVyLmdldERvbVJlZihzdWZmaXgpO1xuXHRcdGlmICghZG9tUmVmICYmICFzdWZmaXgpIHtcblx0XHRcdGRvbVJlZiA9IHRoaXMuX29sZERvbVJlZj8uZGVyZWYoKSA/PyBudWxsO1xuXHRcdFx0aWYgKGRvbVJlZikge1xuXHRcdFx0XHRyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZG9tUmVmLmlkKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGRvbVJlZjtcblx0fVxuXG5cdG92ZXJyaWRlIGdldEZvY3VzRG9tUmVmKCk6IEVsZW1lbnQgfCBudWxsIHtcblx0XHRjb25zdCBvQ29udGVudCA9IHRoaXMuY29udGVudDtcblx0XHRyZXR1cm4gb0NvbnRlbnQgPyBvQ29udGVudC5nZXRGb2N1c0RvbVJlZigpIDogc3VwZXIuZ2V0Rm9jdXNEb21SZWYoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGFza3MgdXAgdGhlIGNvbnRyb2wgdHJlZSB0byBlbmhhbmNlIHRoZSBhY2Nlc3NpYmlsaXR5IHN0YXRlIG9mIHRoZSBjb250cm9sLlxuXHQgKiBAcGFyYW0gX29FbGVtZW50IFRoZSBlbGVtZW50IHRvIGVuaGFuY2Vcblx0ICogQHBhcmFtIG1BcmlhUHJvcHMgVGhlIGN1cnJlbnQgYXJpYSBwcm9wZXJ0aWVzXG5cdCAqIEByZXR1cm5zIFRoZSBlbmhhbmNlZCBhcmlhIHByb3BlcnRpZXNcblx0ICovXG5cdG92ZXJyaWRlIGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUoX29FbGVtZW50OiBvYmplY3QsIG1BcmlhUHJvcHM6IG9iamVjdCk6IG9iamVjdCB7XG5cdFx0Y29uc3Qgb1BhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCk7XG5cblx0XHRpZiAob1BhcmVudCAmJiAob1BhcmVudCBhcyBNYW5hZ2VkT2JqZWN0ICYgeyBlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlPzogRnVuY3Rpb24gfSkuZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSkge1xuXHRcdFx0Ly8gZm9yd2FyZCAgZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSBjYWxsIHRvIHRoZSBwYXJlbnRcblx0XHRcdChvUGFyZW50IGFzIE1hbmFnZWRPYmplY3QgJiB7IGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGU6IEZ1bmN0aW9uIH0pLmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUoX29FbGVtZW50LCBtQXJpYVByb3BzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbUFyaWFQcm9wcztcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIChpZiBhdmFpbGFibGUgb24gdGhlIGNvbmNyZXRlIGNvbnRyb2wpIHByb3ZpZGVzIHRoZSBjdXJyZW50IGFjY2Vzc2liaWxpdHkgc3RhdGUgb2YgdGhlIGNvbnRyb2wuXG5cdCAqIEByZXR1cm5zIFRoZSBhY2Nlc3NpYmlsaXR5IGluZm9ybWF0aW9uIGZvciB0aGUgY29udHJvbC5cblx0ICovXG5cdG92ZXJyaWRlIGdldEFjY2Vzc2liaWxpdHlJbmZvKCk6IEFjY2Vzc2liaWxpdHlJbmZvIHtcblx0XHRsZXQgYWNjZXNzaWJpbGl0eUluZm8gPSB7fTtcblx0XHRpZiAodGhpcy5jb250ZW50Py5pc0E8Q29udHJvbD4oXCJzYXAudWkuY29yZS5Db250cm9sXCIpICYmIHRoaXMuY29udGVudC5nZXRBY2Nlc3NpYmlsaXR5SW5mbykge1xuXHRcdFx0YWNjZXNzaWJpbGl0eUluZm8gPSB0aGlzLmNvbnRlbnQuZ2V0QWNjZXNzaWJpbGl0eUluZm8oKTtcblx0XHR9XG5cdFx0cmV0dXJuIGFjY2Vzc2liaWxpdHlJbmZvO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIERPTU5vZGUgSUQgdG8gYmUgdXNlZCBmb3IgdGhlIFwibGFiZWxGb3JcIiBhdHRyaWJ1dGUuXG5cdCAqXG5cdCAqIFdlIGZvcndhcmQgdGhlIGNhbGwgb2YgdGhpcyBtZXRob2QgdG8gdGhlIGNvbnRlbnQgY29udHJvbC5cblx0ICogQHJldHVybnMgSUQgdG8gYmUgdXNlZCBmb3IgdGhlIDxjb2RlPmxhYmVsRm9yPC9jb2RlPlxuXHQgKi9cblx0b3ZlcnJpZGUgZ2V0SWRGb3JMYWJlbCgpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLmNvbnRlbnQ/LmlzQTxDb250cm9sPihcInNhcC51aS5jb3JlLkNvbnRyb2xcIikpIHtcblx0XHRcdHJldHVybiB0aGlzLmNvbnRlbnQuZ2V0SWRGb3JMYWJlbCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdG92ZXJyaWRlIGFkZFN0eWxlQ2xhc3Moc3R5bGVDbGFzczogc3RyaW5nKTogdGhpcyB7XG5cdFx0KHRoaXMuY29udGVudCBhcyB1bmtub3duIGFzIENvbnRyb2wpPy5hZGRTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpO1xuXHRcdHN1cGVyLmFkZFN0eWxlQ2xhc3Moc3R5bGVDbGFzcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRvdmVycmlkZSByZW1vdmVTdHlsZUNsYXNzKHN0eWxlQ2xhc3M6IHN0cmluZyk6IHRoaXMge1xuXHRcdCh0aGlzLmNvbnRlbnQgYXMgdW5rbm93biBhcyBDb250cm9sKT8ucmVtb3ZlU3R5bGVDbGFzcyhzdHlsZUNsYXNzKTtcblx0XHRzdXBlci5yZW1vdmVTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNob3J0aGFuZCBmb3IgdGhlIEJpbmRpbmdUb29sa2l0LmJpbmRTdGF0ZSBmdW5jdGlvbiB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9iamVjdC5cblx0ICogQHBhcmFtIHBhdGggQSBwcm9wZXJ0eSBpbiB0aGUgc3RhdGUgb2JqZWN0XG5cdCAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIHRvb2xraXQgZXhwcmVzc2lvbiBmb3IgdGhlIHN0YXRlXG5cdCAqL1xuXHRwcm90ZWN0ZWQgYmluZFN0YXRlPFNUIGV4dGVuZHMgUHJpbWl0aXZlVHlwZT4ocGF0aDoga2V5b2YgSyk6IFBhdGhJbk1vZGVsRXhwcmVzc2lvbjxTVD4gfCBDb25zdGFudEV4cHJlc3Npb248U1Q+IHtcblx0XHRyZXR1cm4gQmluZGluZ1Rvb2xraXQuYmluZFN0YXRlKHRoaXMuc3RhdGUgYXMgSywgcGF0aCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQnVpbGRpbmdCbG9ja0Jhc2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTkEsSUFRTUEsaUJBQWlCLElBQUFDLElBQUEsR0FEdEJDLGNBQWMsQ0FBQywrQkFBK0IsQ0FBQyxFQUFBQyxLQUFBLEdBRTlDQyxXQUFXLENBQUM7SUFBRUMsSUFBSSxFQUFFLHFCQUFxQjtJQUFFQyxRQUFRLEVBQUUsS0FBSztJQUFFQyxTQUFTLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU05RUMsV0FBVyxDQUFDO0lBQUVKLElBQUksRUFBRSxxQkFBcUI7SUFBRUMsUUFBUSxFQUFFLElBQUk7SUFBRUksWUFBWSxFQUFFO0VBQWlCLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBRzVGQyxXQUFXLENBQUMsQ0FBQyxFQUFBWCxJQUFBLENBQUFZLE1BQUEsSUFBQUMsT0FBQSwwQkFBQUMsUUFBQTtJQUdkLFNBQUFmLGtCQUFZZ0IsUUFBc0QsRUFBRUMsTUFBMkMsRUFBRUMsS0FBYyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUNoSSxJQUFJLE9BQU9ILFFBQVEsS0FBSyxRQUFRLEVBQUU7UUFDakNDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDYkEsTUFBTSxDQUFDRyxFQUFFLEdBQUdKLFFBQVE7TUFDckI7TUFDQTtNQUNBO01BQ0E7TUFDQUcsS0FBQSxHQUFBSixRQUFBLENBQUFNLElBQUEsT0FBTUwsUUFBUSxFQUF1QkMsTUFBTSxFQUFFQyxLQUFLLENBQUM7TUFBQ0ksMEJBQUEsQ0FBQUgsS0FBQSxhQUFBSSxXQUFBLEVBQUFKLEtBQUE7TUFqQnJEO0FBQ0Q7QUFDQTtNQUZDRywwQkFBQSxDQUFBSCxLQUFBLG9CQUFBSyxZQUFBLEVBQUFMLEtBQUE7TUFBQUcsMEJBQUEsQ0FBQUgsS0FBQSxXQUFBTSxZQUFBLEVBQUFOLEtBQUE7TUFBQUEsS0FBQSxDQW9CUU8sVUFBVSxHQUE0QixJQUFJO01BQUEsT0FBQVAsS0FBQTtJQUZsRDtJQUFDUSxjQUFBLENBQUEzQixpQkFBQSxFQUFBZSxRQUFBO0lBQUFmLGlCQUFBLENBSU00QixNQUFNLEdBQWIsU0FBT0EsTUFBTUEsQ0FBb0JDLEdBQWtCLEVBQUVDLFFBQThCLEVBQVE7TUFDMUYsSUFBSSxDQUFDQSxRQUFRLENBQUNDLE9BQU8sSUFBSUQsUUFBUSxDQUFDRSxVQUFVLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUN6RDtRQUNBQyxpQkFBaUIsQ0FBQ0wsTUFBTSxDQUFDQyxHQUFHLEVBQUVDLFFBQVEsQ0FBQztNQUN4QyxDQUFDLE1BQU07UUFDTkQsR0FBRyxDQUFDSyxhQUFhLENBQUNKLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDO01BQ3BDO0lBQ0QsQ0FBQztJQUFBLElBQUFJLE1BQUEsR0FBQW5DLGlCQUFBLENBQUFvQyxTQUFBO0lBQUFELE1BQUEsQ0FFREUsaUJBQWlCLEdBQWpCLFNBQUFBLGlCQUFpQkEsQ0FBQ0MsT0FBZ0IsRUFBRUMsS0FBYyxFQUFRO01BQ3pEeEIsUUFBQSxDQUFBcUIsU0FBQSxDQUFNQyxpQkFBaUIsQ0FBQWhCLElBQUEsT0FBQ2lCLE9BQU8sRUFBRUMsS0FBSztNQUN0QyxJQUFJQSxLQUFLLEtBQUtDLFNBQVMsSUFBSUYsT0FBTyxFQUFFO1FBQ25DLElBQUksQ0FBQ0csVUFBVSxDQUFDLENBQUM7TUFDbEI7TUFDQSxPQUFPLElBQUk7SUFDWjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBTixNQUFBLENBTVNPLFlBQVksR0FBckIsU0FBU0EsWUFBWUEsQ0FBQ0MsSUFBWSxFQUFFQyxXQUFnQyxFQUFRO01BQzNFLE1BQU1DLGdCQUFnQixHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDSixJQUFJLENBQUM7TUFDN0QsSUFBSUUsZ0JBQWdCLEVBQUVHLFFBQVEsS0FBSyxLQUFLLElBQUlILGdCQUFnQixDQUFDSSxLQUFLLEtBQUssTUFBTSxFQUFFO1FBQzdFLElBQUksQ0FBNkJOLElBQUksQ0FBQyxHQUFHQyxXQUFXO01BQ3RELENBQUMsTUFBTTtRQUNON0IsUUFBQSxDQUFBcUIsU0FBQSxDQUFNTSxZQUFZLENBQUFyQixJQUFBLE9BQUNzQixJQUFJLEVBQUVDLFdBQVc7TUFDckM7TUFDQSxPQUFPLElBQUk7SUFDWjs7SUFFQTtJQUFBO0lBQUFULE1BQUEsQ0FDU2UsZ0JBQWdCLEdBQXpCLFNBQVNBLGdCQUFnQkEsQ0FBQ0MsS0FBbUIsRUFBUTtNQUNwRCxNQUFNQyxNQUFNLEdBQUcsSUFBSSxDQUFDQyxTQUFTLENBQUMsQ0FBQztNQUMvQixJQUFJRCxNQUFNLEVBQUU7UUFDWCxJQUFJLENBQUMxQixVQUFVLEdBQUcsSUFBSTRCLE9BQU8sQ0FBQ0YsTUFBTSxDQUFDO01BQ3RDLENBQUMsTUFBTTtRQUNOLElBQUksQ0FBQzFCLFVBQVUsR0FBRyxJQUFJO01BQ3ZCO01BQ0FYLFFBQUEsQ0FBQXFCLFNBQUEsQ0FBTWMsZ0JBQWdCLENBQUE3QixJQUFBLE9BQUM4QixLQUFLO0lBQzdCLENBQUM7SUFBQWhCLE1BQUEsQ0FFUWtCLFNBQVMsR0FBbEIsU0FBU0EsU0FBU0EsQ0FBQ0UsTUFBZSxFQUFrQjtNQUNuRCxNQUFNQyxRQUFRLEdBQUcsSUFBSSxDQUFDekIsT0FBTztNQUM3QixJQUFJcUIsTUFBc0IsR0FBR0ksUUFBUSxFQUFFSCxTQUFTLENBQUNFLE1BQU0sQ0FBQyxJQUFBeEMsUUFBQSxDQUFBcUIsU0FBQSxDQUFVaUIsU0FBUyxDQUFBaEMsSUFBQSxPQUFDa0MsTUFBTSxDQUFDO01BQ25GLElBQUksQ0FBQ0gsTUFBTSxJQUFJLENBQUNHLE1BQU0sRUFBRTtRQUN2QkgsTUFBTSxHQUFHLElBQUksQ0FBQzFCLFVBQVUsRUFBRStCLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSTtRQUN6QyxJQUFJTCxNQUFNLEVBQUU7VUFDWCxPQUFPTSxRQUFRLENBQUNDLGNBQWMsQ0FBQ1AsTUFBTSxDQUFDaEMsRUFBRSxDQUFDO1FBQzFDO01BQ0Q7TUFDQSxPQUFPZ0MsTUFBTTtJQUNkLENBQUM7SUFBQWpCLE1BQUEsQ0FFUXlCLGNBQWMsR0FBdkIsU0FBU0EsY0FBY0EsQ0FBQSxFQUFtQjtNQUN6QyxNQUFNSixRQUFRLEdBQUcsSUFBSSxDQUFDekIsT0FBTztNQUM3QixPQUFPeUIsUUFBUSxHQUFHQSxRQUFRLENBQUNJLGNBQWMsQ0FBQyxDQUFDLEdBQUE3QyxRQUFBLENBQUFxQixTQUFBLENBQVN3QixjQUFjLENBQUF2QyxJQUFBLE1BQUU7SUFDckU7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEM7SUFBQWMsTUFBQSxDQU1TMEIseUJBQXlCLEdBQWxDLFNBQVNBLHlCQUF5QkEsQ0FBQ0MsU0FBaUIsRUFBRUMsVUFBa0IsRUFBVTtNQUNqRixNQUFNQyxPQUFPLEdBQUcsSUFBSSxDQUFDQyxTQUFTLENBQUMsQ0FBQztNQUVoQyxJQUFJRCxPQUFPLElBQUtBLE9BQU8sQ0FBOERILHlCQUF5QixFQUFFO1FBQy9HO1FBQ0NHLE9BQU8sQ0FBNkRILHlCQUF5QixDQUFDQyxTQUFTLEVBQUVDLFVBQVUsQ0FBQztNQUN0SDtNQUVBLE9BQU9BLFVBQVU7SUFDbEI7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBNUIsTUFBQSxDQUlTK0Isb0JBQW9CLEdBQTdCLFNBQVNBLG9CQUFvQkEsQ0FBQSxFQUFzQjtNQUNsRCxJQUFJQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7TUFDMUIsSUFBSSxJQUFJLENBQUNwQyxPQUFPLEVBQUVxQyxHQUFHLENBQVUscUJBQXFCLENBQUMsSUFBSSxJQUFJLENBQUNyQyxPQUFPLENBQUNtQyxvQkFBb0IsRUFBRTtRQUMzRkMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDcEMsT0FBTyxDQUFDbUMsb0JBQW9CLENBQUMsQ0FBQztNQUN4RDtNQUNBLE9BQU9DLGlCQUFpQjtJQUN6Qjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBaEMsTUFBQSxDQU1Ta0MsYUFBYSxHQUF0QixTQUFTQSxhQUFhQSxDQUFBLEVBQVc7TUFDaEMsSUFBSSxJQUFJLENBQUN0QyxPQUFPLEVBQUVxQyxHQUFHLENBQVUscUJBQXFCLENBQUMsRUFBRTtRQUN0RCxPQUFPLElBQUksQ0FBQ3JDLE9BQU8sQ0FBQ3NDLGFBQWEsQ0FBQyxDQUFDO01BQ3BDO01BQ0EsT0FBTyxFQUFFO0lBQ1YsQ0FBQztJQUFBbEMsTUFBQSxDQUVRbUMsYUFBYSxHQUF0QixTQUFTQSxhQUFhQSxDQUFDQyxVQUFrQixFQUFRO01BQy9DLElBQUksQ0FBQ3hDLE9BQU8sRUFBeUJ1QyxhQUFhLENBQUNDLFVBQVUsQ0FBQztNQUMvRHhELFFBQUEsQ0FBQXFCLFNBQUEsQ0FBTWtDLGFBQWEsQ0FBQWpELElBQUEsT0FBQ2tELFVBQVU7TUFDOUIsT0FBTyxJQUFJO0lBQ1osQ0FBQztJQUFBcEMsTUFBQSxDQUVRcUMsZ0JBQWdCLEdBQXpCLFNBQVNBLGdCQUFnQkEsQ0FBQ0QsVUFBa0IsRUFBUTtNQUNsRCxJQUFJLENBQUN4QyxPQUFPLEVBQXlCeUMsZ0JBQWdCLENBQUNELFVBQVUsQ0FBQztNQUNsRXhELFFBQUEsQ0FBQXFCLFNBQUEsQ0FBTW9DLGdCQUFnQixDQUFBbkQsSUFBQSxPQUFDa0QsVUFBVTtNQUNqQyxPQUFPLElBQUk7SUFDWjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXBDLE1BQUEsQ0FLVXNDLFNBQVMsR0FBbkIsU0FBVUEsU0FBU0EsQ0FBMkJDLElBQWEsRUFBc0Q7TUFDaEgsT0FBT0MsY0FBYyxDQUFDRixTQUFTLENBQUMsSUFBSSxDQUFDRyxLQUFLLEVBQU9GLElBQUksQ0FBQztJQUN2RCxDQUFDO0lBQUEsT0FBQTFFLGlCQUFBO0VBQUEsRUFwSnFGNkUsT0FBTyxHQUFBdEQsV0FBQSxHQUFBdUQseUJBQUEsQ0FBQWhFLE9BQUEsQ0FBQXNCLFNBQUEsY0FBQWpDLEtBQUE7SUFBQTRFLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBMUQsWUFBQSxHQUFBc0QseUJBQUEsQ0FBQWhFLE9BQUEsQ0FBQXNCLFNBQUEscUJBQUE1QixLQUFBO0lBQUF1RSxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXpELFlBQUEsR0FBQXFELHlCQUFBLENBQUFoRSxPQUFBLENBQUFzQixTQUFBLFlBQUF6QixLQUFBO0lBQUFvRSxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXBFLE9BQUEsTUFBQUQsTUFBQTtFQUFBLE9BdUovRWIsaUJBQWlCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -9,6 +9,7 @@ import type UI5Element from "sap/ui/core/Element";
9
9
  import InvisibleRenderer from "sap/ui/core/InvisibleRenderer";
10
10
  import type RenderManager from "sap/ui/core/RenderManager";
11
11
  import type { AccessibilityInfo } from "sap/ui/core/library";
12
+ import type Context from "sap/ui/model/Context";
12
13
 
13
14
  interface BuildingBlockBase<T extends UI5Element = Control, K extends object = {}> {
14
15
  // Force a state update
@@ -51,12 +52,21 @@ class BuildingBlockBase<T extends UI5Element = Control, K extends object = {}> e
51
52
 
52
53
  static render<T extends Control>(oRm: RenderManager, oControl: BuildingBlockBase<T>): void {
53
54
  if (!oControl.content || oControl.getVisible() === false) {
55
+ // If there is no content, we render an invisible renderer to avoid the control being
54
56
  InvisibleRenderer.render(oRm, oControl);
55
57
  } else {
56
58
  oRm.renderControl(oControl.content);
57
59
  }
58
60
  }
59
61
 
62
+ setBindingContext(context: Context, model?: string): this {
63
+ super.setBindingContext(context, model);
64
+ if (model === undefined && context) {
65
+ this.invalidate();
66
+ }
67
+ return this;
68
+ }
69
+
60
70
  /**
61
71
  * Override the bindProperty to deal with the case where the property is a binding info.
62
72
  * @param name The name of te property