@kaspernj/api-maker 1.0.2030 → 1.0.2032

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.
@@ -42,9 +42,7 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
42
42
  this.wholeRefBackup = useRef();
43
43
  this.wholeRef = this.props.wholeRef || this.wholeRefBackup;
44
44
  }
45
- getInputRef() {
46
- return this.props.inputRef || this.inputRef;
47
- }
45
+ getInputRef = () => this.props.inputRef || this.inputRef;
48
46
  render() {
49
47
  const {
50
48
  attribute,
@@ -72,11 +70,11 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
72
70
  defaultValue: this.inputDefaultValue(),
73
71
  disabled: disabled,
74
72
  id: this.inputId(),
75
- onBlur: digg(this, "setAmount"),
76
- onChange: digg(this, "setCents"),
77
- onKeyUp: digg(this, "setCents"),
73
+ onBlur: this.tt.setAmount,
74
+ onChange: this.tt.setCents,
75
+ onKeyUp: this.tt.setCents,
78
76
  placeholder: this.props.placeholder,
79
- ref: this.wholeRef,
77
+ ref: this.tt.wholeRef,
80
78
  type: "text"
81
79
  }), showCurrencyOptions && /*#__PURE__*/React.createElement("select", {
82
80
  className: "money-currency",
@@ -84,16 +82,14 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
84
82
  disabled: disabled,
85
83
  id: this.inputCurrencyId(),
86
84
  name: this.inputCurrencyName(),
87
- onChange: digg(this, "onCurrencyChanged"),
88
- ref: this.currencyRef
85
+ onChange: this.tt.onCurrencyChanged,
86
+ ref: this.tt.currencyRef
89
87
  }, /*#__PURE__*/React.createElement("option", null), currenciesCollection.map(option => /*#__PURE__*/React.createElement("option", {
90
88
  key: `select-option-${option[1]}`,
91
89
  value: option[1]
92
90
  }, this.props.small && option[1], !this.props.small && option[0]))));
93
91
  }
94
- inputCurrencyId() {
95
- return `${this.inputId()}_currency`;
96
- }
92
+ inputCurrencyId = () => `${this.inputId()}_currency`;
97
93
  inputCurrencyName() {
98
94
  if ("currencyName" in this.props) return this.props.currencyName;
99
95
  return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_currency]`;
@@ -134,21 +130,18 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
134
130
  return MoneyFormatter.amountFromMoney(defaultValue);
135
131
  }
136
132
  }
137
- inputCentsId() {
138
- return `${this.inputId()}_cents`;
139
- }
133
+ inputCentsId = () => `${this.inputId()}_cents`;
140
134
  inputCentsName() {
141
135
  if ("name" in this.props) return this.props.name;
142
136
  return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_cents]`;
143
137
  }
144
- inputId() {
145
- return idForComponent(this);
146
- }
138
+ inputId = () => idForComponent(this);
147
139
  onCurrencyChanged = () => {
148
140
  if (this.props.onChange) this.props.onChange();
149
141
  };
150
142
  setAmount = () => {
151
143
  const inputElement = this.getInputRef().current;
144
+ if (!inputElement) return;
152
145
  if (!inputElement.value && inputElement.value == "") {
153
146
  this.wholeRef.current.value = "";
154
147
  } else {
@@ -165,6 +158,7 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
165
158
  };
166
159
  setCents = () => {
167
160
  const inputElement = this.getInputRef().current;
161
+ if (!inputElement) return;
168
162
  let whole = MoneyFormatter.stringToFloat(this.wholeRef.current.value);
169
163
  let cents = parseInt(whole * 100, 10);
170
164
  let oldCents = parseInt(inputElement.value, 10);
@@ -176,4 +170,4 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
176
170
  if (this.props.onChange && oldCents != cents) this.props.onChange();
177
171
  };
178
172
  }));
179
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInNoYXBlQ29tcG9uZW50IiwiU2hhcGVDb21wb25lbnQiLCJjbGFzc05hbWVzIiwiQ29uZmlnIiwiZGlnZyIsImlkRm9yQ29tcG9uZW50IiwiaW5mbGVjdGlvbiIsIm1lbW8iLCJNb25leUZvcm1hdHRlciIsIlByb3BUeXBlcyIsIlByb3BUeXBlc0V4YWN0IiwiQXBpTWFrZXJJbnB1dHNNb25leSIsImRlZmF1bHRQcm9wcyIsImRpc2FibGVkIiwic2hvd0N1cnJlbmN5T3B0aW9ucyIsInByb3BUeXBlcyIsImF0dHJpYnV0ZSIsInN0cmluZyIsImNlbnRzSW5wdXROYW1lIiwiY2xhc3NOYW1lIiwiY3VycmVuY2llc0NvbGxlY3Rpb24iLCJhcnJheSIsImN1cnJlbmN5TmFtZSIsImN1cnJlbmN5UmVmIiwib2JqZWN0IiwiZGVmYXVsdFZhbHVlIiwiYm9vbCIsImlzUmVxdWlyZWQiLCJpZCIsImlucHV0UmVmIiwibGFiZWwiLCJub2RlIiwibW9kZWwiLCJuYW1lIiwib25DaGFuZ2UiLCJmdW5jIiwicGxhY2Vob2xkZXIiLCJzbWFsbCIsInR5cGUiLCJ3aG9sZVJlZiIsInNldHVwIiwiY3VycmVuY3lSZWZCYWNrdXAiLCJwcm9wcyIsIndob2xlUmVmQmFja3VwIiwiZ2V0SW5wdXRSZWYiLCJyZW5kZXIiLCJnZXRDdXJyZW5jaWVzQ29sbGVjdGlvbiIsImNyZWF0ZUVsZW1lbnQiLCJpbnB1dERlZmF1bHRDZW50c1ZhbHVlIiwiaW5wdXRDZW50c0lkIiwiaW5wdXRDZW50c05hbWUiLCJyZWYiLCJpbnB1dERlZmF1bHRWYWx1ZSIsImlucHV0SWQiLCJvbkJsdXIiLCJvbktleVVwIiwiaW5wdXRDdXJyZW5jeVZhbHVlIiwiaW5wdXRDdXJyZW5jeUlkIiwiaW5wdXRDdXJyZW5jeU5hbWUiLCJtYXAiLCJvcHRpb24iLCJrZXkiLCJ2YWx1ZSIsIm1vZGVsQ2xhc3NEYXRhIiwicGFyYW1LZXkiLCJ1bmRlcnNjb3JlIiwiY3VycmVuY3lGcm9tTW9uZXkiLCJjb2RlIiwiZnJvbU1vbmV5IiwiYW1vdW50IiwiY3VycmVuY3kiLCJkZWNpbWFscyIsImV4Y2x1ZGVDdXJyZW5jeSIsInRvU3RyaW5nIiwiY3VycmVudCIsImFtb3VudEZyb21Nb25leSIsIm9uQ3VycmVuY3lDaGFuZ2VkIiwic2V0QW1vdW50IiwiaW5wdXRFbGVtZW50IiwiY2VudHMiLCJwYXJzZUZsb2F0IiwiZm9ybWF0dGVkIiwic2V0Q2VudHMiLCJ3aG9sZSIsInN0cmluZ1RvRmxvYXQiLCJwYXJzZUludCIsIm9sZENlbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0cy9tb25leS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudCwgU2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBDb25maWcgZnJvbSBcIi4uL2NvbmZpZ1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IGlkRm9yQ29tcG9uZW50IGZyb20gXCIuL2lkLWZvci1jb21wb25lbnRcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IE1vbmV5Rm9ybWF0dGVyIGZyb20gXCIuLi9tb25leS1mb3JtYXR0ZXJcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VySW5wdXRzTW9uZXkgZXh0ZW5kcyBTaGFwZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIHNob3dDdXJyZW5jeU9wdGlvbnM6IHRydWVcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBQcm9wVHlwZXNFeGFjdCh7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNlbnRzSW5wdXROYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjdXJyZW5jaWVzQ29sbGVjdGlvbjogUHJvcFR5cGVzLmFycmF5LFxuICAgIGN1cnJlbmN5TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjdXJyZW5jeVJlZjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkZWZhdWx0VmFsdWU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaW5wdXRSZWY6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMubm9kZSxcbiAgICBzaG93Q3VycmVuY3lPcHRpb25zOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzbWFsbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB3aG9sZVJlZjogUHJvcFR5cGVzLm9iamVjdFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMuaW5wdXRSZWYgPSB1c2VSZWYoKVxuICAgIHRoaXMuY3VycmVuY3lSZWZCYWNrdXAgPSB1c2VSZWYoKVxuICAgIHRoaXMuY3VycmVuY3lSZWYgPSB0aGlzLnByb3BzLmN1cnJlbmN5UmVmIHx8IHRoaXMuY3VycmVuY3lSZWZCYWNrdXBcbiAgICB0aGlzLndob2xlUmVmQmFja3VwID0gdXNlUmVmKClcbiAgICB0aGlzLndob2xlUmVmID0gdGhpcy5wcm9wcy53aG9sZVJlZiB8fCB0aGlzLndob2xlUmVmQmFja3VwXG4gIH1cblxuICBnZXRJbnB1dFJlZiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuaW5wdXRSZWYgfHwgdGhpcy5pbnB1dFJlZlxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlLCBjbGFzc05hbWUsIGRpc2FibGVkLCBtb2RlbCwgc2hvd0N1cnJlbmN5T3B0aW9uc30gPSB0aGlzLnByb3BzXG4gICAgbGV0IHtjdXJyZW5jaWVzQ29sbGVjdGlvbn0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoIWN1cnJlbmNpZXNDb2xsZWN0aW9uKSBjdXJyZW5jaWVzQ29sbGVjdGlvbiA9IENvbmZpZy5nZXRDdXJyZW5jaWVzQ29sbGVjdGlvbigpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGktbWFrZXItaW5wdXRzLW1vbmV5XCIgZGF0YS1hdHRyaWJ1dGU9e2F0dHJpYnV0ZX0gZGF0YS1tb2RlbC1pZD17bW9kZWw/LmlkKCl9PlxuICAgICAgICA8aW5wdXQgZGVmYXVsdFZhbHVlPXt0aGlzLmlucHV0RGVmYXVsdENlbnRzVmFsdWUoKX0gaWQ9e3RoaXMuaW5wdXRDZW50c0lkKCl9IG5hbWU9e3RoaXMuaW5wdXRDZW50c05hbWUoKX0gcmVmPXt0aGlzLmdldElucHV0UmVmKCl9IHR5cGU9XCJoaWRkZW5cIiAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJtb25leS1jZW50c1wiLCBjbGFzc05hbWUpfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dGhpcy5pbnB1dERlZmF1bHRWYWx1ZSgpfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpZD17dGhpcy5pbnB1dElkKCl9XG4gICAgICAgICAgb25CbHVyPXtkaWdnKHRoaXMsIFwic2V0QW1vdW50XCIpfVxuICAgICAgICAgIG9uQ2hhbmdlPXtkaWdnKHRoaXMsIFwic2V0Q2VudHNcIil9XG4gICAgICAgICAgb25LZXlVcD17ZGlnZyh0aGlzLCBcInNldENlbnRzXCIpfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgIHJlZj17dGhpcy53aG9sZVJlZn1cbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93Q3VycmVuY3lPcHRpb25zICYmXG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibW9uZXktY3VycmVuY3lcIlxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt0aGlzLmlucHV0Q3VycmVuY3lWYWx1ZSgpfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgaWQ9e3RoaXMuaW5wdXRDdXJyZW5jeUlkKCl9XG4gICAgICAgICAgICBuYW1lPXt0aGlzLmlucHV0Q3VycmVuY3lOYW1lKCl9XG4gICAgICAgICAgICBvbkNoYW5nZT17ZGlnZyh0aGlzLCBcIm9uQ3VycmVuY3lDaGFuZ2VkXCIpfVxuICAgICAgICAgICAgcmVmPXt0aGlzLmN1cnJlbmN5UmVmfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxvcHRpb24+PC9vcHRpb24+XG4gICAgICAgICAgICB7Y3VycmVuY2llc0NvbGxlY3Rpb24ubWFwKChvcHRpb24pID0+IChcbiAgICAgICAgICAgICAgPG9wdGlvbiBrZXk9e2BzZWxlY3Qtb3B0aW9uLSR7b3B0aW9uWzFdfWB9IHZhbHVlPXtvcHRpb25bMV19PlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNtYWxsICYmIG9wdGlvblsxXX1cbiAgICAgICAgICAgICAgICB7IXRoaXMucHJvcHMuc21hbGwgJiYgb3B0aW9uWzBdfVxuICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cblxuICBpbnB1dEN1cnJlbmN5SWQgKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmlucHV0SWQoKX1fY3VycmVuY3lgXG4gIH1cblxuICBpbnB1dEN1cnJlbmN5TmFtZSAoKSB7XG4gICAgaWYgKFwiY3VycmVuY3lOYW1lXCIgaW4gdGhpcy5wcm9wcylcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmN1cnJlbmN5TmFtZVxuXG4gICAgcmV0dXJuIGAke3RoaXMucHJvcHMubW9kZWwubW9kZWxDbGFzc0RhdGEoKS5wYXJhbUtleX1bJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUodGhpcy5wcm9wcy5hdHRyaWJ1dGUpfV9jdXJyZW5jeV1gXG4gIH1cblxuICBpbnB1dEN1cnJlbmN5VmFsdWUgKCkge1xuICAgIGNvbnN0IHtkZWZhdWx0VmFsdWV9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIE1vbmV5Rm9ybWF0dGVyLmN1cnJlbmN5RnJvbU1vbmV5KGRlZmF1bHRWYWx1ZSkuY29kZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJES0tcIlxuICAgIH1cbiAgfVxuXG4gIGlucHV0RGVmYXVsdFZhbHVlICgpIHtcbiAgICBjb25zdCB7ZGVmYXVsdFZhbHVlfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiBNb25leUZvcm1hdHRlci5mcm9tTW9uZXkoe2Ftb3VudDogZGVmYXVsdFZhbHVlLmFtb3VudCwgY3VycmVuY3k6IHRoaXMuaW5wdXRDdXJyZW5jeVZhbHVlKCl9LCB7ZGVjaW1hbHM6IDIsIGV4Y2x1ZGVDdXJyZW5jeTogdHJ1ZX0pLnRvU3RyaW5nKClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwiXCJcbiAgICB9XG4gIH1cblxuICBpbnB1dERlZmF1bHRDZW50c1ZhbHVlICgpIHtcbiAgICBjb25zdCB7ZGVmYXVsdFZhbHVlfSA9IHRoaXMucHJvcHNcblxuICAgIGlmICh0aGlzLmdldElucHV0UmVmKCkuY3VycmVudCkge1xuICAgICAgcmV0dXJuIGRpZ2codGhpcy5nZXRJbnB1dFJlZigpLCBcImN1cnJlbnRcIiwgXCJ2YWx1ZVwiKVxuICAgIH0gZWxzZSBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gTW9uZXlGb3JtYXR0ZXIuYW1vdW50RnJvbU1vbmV5KGRlZmF1bHRWYWx1ZSlcbiAgICB9XG4gIH1cblxuICBpbnB1dENlbnRzSWQgKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmlucHV0SWQoKX1fY2VudHNgXG4gIH1cblxuICBpbnB1dENlbnRzTmFtZSAoKSB7XG4gICAgaWYgKFwibmFtZVwiIGluIHRoaXMucHJvcHMpXG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5uYW1lXG5cbiAgICByZXR1cm4gYCR7dGhpcy5wcm9wcy5tb2RlbC5tb2RlbENsYXNzRGF0YSgpLnBhcmFtS2V5fVske2luZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLnByb3BzLmF0dHJpYnV0ZSl9X2NlbnRzXWBcbiAgfVxuXG4gIGlucHV0SWQgKCkge1xuICAgIHJldHVybiBpZEZvckNvbXBvbmVudCh0aGlzKVxuICB9XG5cbiAgb25DdXJyZW5jeUNoYW5nZWQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UpXG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKClcbiAgfVxuXG4gIHNldEFtb3VudCA9ICgpID0+IHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmdldElucHV0UmVmKCkuY3VycmVudFxuXG4gICAgaWYgKCFpbnB1dEVsZW1lbnQudmFsdWUgJiYgaW5wdXRFbGVtZW50LnZhbHVlID09IFwiXCIpIHtcbiAgICAgIHRoaXMud2hvbGVSZWYuY3VycmVudC52YWx1ZSA9IFwiXCJcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2VudHMgPSBwYXJzZUZsb2F0KGlucHV0RWxlbWVudC52YWx1ZSlcbiAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IE1vbmV5Rm9ybWF0dGVyLmZyb21Nb25leSh7YW1vdW50OiBjZW50cywgY3VycmVuY3k6IHRoaXMuaW5wdXRDdXJyZW5jeVZhbHVlKCl9LCB7ZGVjaW1hbHM6IDIsIGV4Y2x1ZGVDdXJyZW5jeTogdHJ1ZX0pLnRvU3RyaW5nKClcblxuICAgICAgdGhpcy53aG9sZVJlZi5jdXJyZW50LnZhbHVlID0gZm9ybWF0dGVkXG4gICAgfVxuICB9XG5cbiAgc2V0Q2VudHMgPSAoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5nZXRJbnB1dFJlZigpLmN1cnJlbnRcblxuICAgIGxldCB3aG9sZSA9IE1vbmV5Rm9ybWF0dGVyLnN0cmluZ1RvRmxvYXQodGhpcy53aG9sZVJlZi5jdXJyZW50LnZhbHVlKVxuICAgIGxldCBjZW50cyA9IHBhcnNlSW50KHdob2xlICogMTAwLCAxMClcbiAgICBsZXQgb2xkQ2VudHMgPSBwYXJzZUludChpbnB1dEVsZW1lbnQudmFsdWUsIDEwKVxuXG4gICAgaWYgKHR5cGVvZiBjZW50cyA9PSBcIm51bWJlclwiKSB7XG4gICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSBjZW50c1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSAnJ1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLm9uQ2hhbmdlICYmIG9sZENlbnRzICE9IGNlbnRzKVxuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSgpXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxLQUFLLElBQUdDLE1BQU0sUUFBTyxPQUFPO0FBQ25DLFNBQVFDLGNBQWMsRUFBRUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRixPQUFPQyxVQUFVLE1BQU0sWUFBWTtBQUNuQyxP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
173
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInNoYXBlQ29tcG9uZW50IiwiU2hhcGVDb21wb25lbnQiLCJjbGFzc05hbWVzIiwiQ29uZmlnIiwiZGlnZyIsImlkRm9yQ29tcG9uZW50IiwiaW5mbGVjdGlvbiIsIm1lbW8iLCJNb25leUZvcm1hdHRlciIsIlByb3BUeXBlcyIsIlByb3BUeXBlc0V4YWN0IiwiQXBpTWFrZXJJbnB1dHNNb25leSIsImRlZmF1bHRQcm9wcyIsImRpc2FibGVkIiwic2hvd0N1cnJlbmN5T3B0aW9ucyIsInByb3BUeXBlcyIsImF0dHJpYnV0ZSIsInN0cmluZyIsImNlbnRzSW5wdXROYW1lIiwiY2xhc3NOYW1lIiwiY3VycmVuY2llc0NvbGxlY3Rpb24iLCJhcnJheSIsImN1cnJlbmN5TmFtZSIsImN1cnJlbmN5UmVmIiwib2JqZWN0IiwiZGVmYXVsdFZhbHVlIiwiYm9vbCIsImlzUmVxdWlyZWQiLCJpZCIsImlucHV0UmVmIiwibGFiZWwiLCJub2RlIiwibW9kZWwiLCJuYW1lIiwib25DaGFuZ2UiLCJmdW5jIiwicGxhY2Vob2xkZXIiLCJzbWFsbCIsInR5cGUiLCJ3aG9sZVJlZiIsInNldHVwIiwiY3VycmVuY3lSZWZCYWNrdXAiLCJwcm9wcyIsIndob2xlUmVmQmFja3VwIiwiZ2V0SW5wdXRSZWYiLCJyZW5kZXIiLCJnZXRDdXJyZW5jaWVzQ29sbGVjdGlvbiIsImNyZWF0ZUVsZW1lbnQiLCJpbnB1dERlZmF1bHRDZW50c1ZhbHVlIiwiaW5wdXRDZW50c0lkIiwiaW5wdXRDZW50c05hbWUiLCJyZWYiLCJpbnB1dERlZmF1bHRWYWx1ZSIsImlucHV0SWQiLCJvbkJsdXIiLCJ0dCIsInNldEFtb3VudCIsInNldENlbnRzIiwib25LZXlVcCIsImlucHV0Q3VycmVuY3lWYWx1ZSIsImlucHV0Q3VycmVuY3lJZCIsImlucHV0Q3VycmVuY3lOYW1lIiwib25DdXJyZW5jeUNoYW5nZWQiLCJtYXAiLCJvcHRpb24iLCJrZXkiLCJ2YWx1ZSIsIm1vZGVsQ2xhc3NEYXRhIiwicGFyYW1LZXkiLCJ1bmRlcnNjb3JlIiwiY3VycmVuY3lGcm9tTW9uZXkiLCJjb2RlIiwiZnJvbU1vbmV5IiwiYW1vdW50IiwiY3VycmVuY3kiLCJkZWNpbWFscyIsImV4Y2x1ZGVDdXJyZW5jeSIsInRvU3RyaW5nIiwiY3VycmVudCIsImFtb3VudEZyb21Nb25leSIsImlucHV0RWxlbWVudCIsImNlbnRzIiwicGFyc2VGbG9hdCIsImZvcm1hdHRlZCIsIndob2xlIiwic3RyaW5nVG9GbG9hdCIsInBhcnNlSW50Iiwib2xkQ2VudHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5wdXRzL21vbmV5LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50LCBTaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgaWRGb3JDb21wb25lbnQgZnJvbSBcIi4vaWQtZm9yLWNvbXBvbmVudFwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgTW9uZXlGb3JtYXR0ZXIgZnJvbSBcIi4uL21vbmV5LWZvcm1hdHRlclwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBQcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJJbnB1dHNNb25leSBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgc2hvd0N1cnJlbmN5T3B0aW9uczogdHJ1ZVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IFByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2VudHNJbnB1dE5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGN1cnJlbmNpZXNDb2xsZWN0aW9uOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgY3VycmVuY3lOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGN1cnJlbmN5UmVmOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpbnB1dFJlZjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5ub2RlLFxuICAgIHNob3dDdXJyZW5jeU9wdGlvbnM6IFByb3BUeXBlcy5ib29sLFxuICAgIHNtYWxsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHdob2xlUmVmOiBQcm9wVHlwZXMub2JqZWN0XG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5pbnB1dFJlZiA9IHVzZVJlZigpXG4gICAgdGhpcy5jdXJyZW5jeVJlZkJhY2t1cCA9IHVzZVJlZigpXG4gICAgdGhpcy5jdXJyZW5jeVJlZiA9IHRoaXMucHJvcHMuY3VycmVuY3lSZWYgfHwgdGhpcy5jdXJyZW5jeVJlZkJhY2t1cFxuICAgIHRoaXMud2hvbGVSZWZCYWNrdXAgPSB1c2VSZWYoKVxuICAgIHRoaXMud2hvbGVSZWYgPSB0aGlzLnByb3BzLndob2xlUmVmIHx8IHRoaXMud2hvbGVSZWZCYWNrdXBcbiAgfVxuXG4gIGdldElucHV0UmVmID0gKCkgPT4gdGhpcy5wcm9wcy5pbnB1dFJlZiB8fCB0aGlzLmlucHV0UmVmXG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlLCBjbGFzc05hbWUsIGRpc2FibGVkLCBtb2RlbCwgc2hvd0N1cnJlbmN5T3B0aW9uc30gPSB0aGlzLnByb3BzXG4gICAgbGV0IHtjdXJyZW5jaWVzQ29sbGVjdGlvbn0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoIWN1cnJlbmNpZXNDb2xsZWN0aW9uKSBjdXJyZW5jaWVzQ29sbGVjdGlvbiA9IENvbmZpZy5nZXRDdXJyZW5jaWVzQ29sbGVjdGlvbigpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGktbWFrZXItaW5wdXRzLW1vbmV5XCIgZGF0YS1hdHRyaWJ1dGU9e2F0dHJpYnV0ZX0gZGF0YS1tb2RlbC1pZD17bW9kZWw/LmlkKCl9PlxuICAgICAgICA8aW5wdXQgZGVmYXVsdFZhbHVlPXt0aGlzLmlucHV0RGVmYXVsdENlbnRzVmFsdWUoKX0gaWQ9e3RoaXMuaW5wdXRDZW50c0lkKCl9IG5hbWU9e3RoaXMuaW5wdXRDZW50c05hbWUoKX0gcmVmPXt0aGlzLmdldElucHV0UmVmKCl9IHR5cGU9XCJoaWRkZW5cIiAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJtb25leS1jZW50c1wiLCBjbGFzc05hbWUpfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dGhpcy5pbnB1dERlZmF1bHRWYWx1ZSgpfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpZD17dGhpcy5pbnB1dElkKCl9XG4gICAgICAgICAgb25CbHVyPXt0aGlzLnR0LnNldEFtb3VudH1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy50dC5zZXRDZW50c31cbiAgICAgICAgICBvbktleVVwPXt0aGlzLnR0LnNldENlbnRzfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgIHJlZj17dGhpcy50dC53aG9sZVJlZn1cbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93Q3VycmVuY3lPcHRpb25zICYmXG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibW9uZXktY3VycmVuY3lcIlxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt0aGlzLmlucHV0Q3VycmVuY3lWYWx1ZSgpfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgaWQ9e3RoaXMuaW5wdXRDdXJyZW5jeUlkKCl9XG4gICAgICAgICAgICBuYW1lPXt0aGlzLmlucHV0Q3VycmVuY3lOYW1lKCl9XG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy50dC5vbkN1cnJlbmN5Q2hhbmdlZH1cbiAgICAgICAgICAgIHJlZj17dGhpcy50dC5jdXJyZW5jeVJlZn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uPjwvb3B0aW9uPlxuICAgICAgICAgICAge2N1cnJlbmNpZXNDb2xsZWN0aW9uLm1hcCgob3B0aW9uKSA9PiAoXG4gICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtgc2VsZWN0LW9wdGlvbi0ke29wdGlvblsxXX1gfSB2YWx1ZT17b3B0aW9uWzFdfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zbWFsbCAmJiBvcHRpb25bMV19XG4gICAgICAgICAgICAgICAgeyF0aGlzLnByb3BzLnNtYWxsICYmIG9wdGlvblswXX1cbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgaW5wdXRDdXJyZW5jeUlkID0gKCkgPT4gYCR7dGhpcy5pbnB1dElkKCl9X2N1cnJlbmN5YFxuXG4gIGlucHV0Q3VycmVuY3lOYW1lICgpIHtcbiAgICBpZiAoXCJjdXJyZW5jeU5hbWVcIiBpbiB0aGlzLnByb3BzKSByZXR1cm4gdGhpcy5wcm9wcy5jdXJyZW5jeU5hbWVcblxuICAgIHJldHVybiBgJHt0aGlzLnByb3BzLm1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkucGFyYW1LZXl9WyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKHRoaXMucHJvcHMuYXR0cmlidXRlKX1fY3VycmVuY3ldYFxuICB9XG5cbiAgaW5wdXRDdXJyZW5jeVZhbHVlICgpIHtcbiAgICBjb25zdCB7ZGVmYXVsdFZhbHVlfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiBNb25leUZvcm1hdHRlci5jdXJyZW5jeUZyb21Nb25leShkZWZhdWx0VmFsdWUpLmNvZGVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwiREtLXCJcbiAgICB9XG4gIH1cblxuICBpbnB1dERlZmF1bHRWYWx1ZSAoKSB7XG4gICAgY29uc3Qge2RlZmF1bHRWYWx1ZX0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gTW9uZXlGb3JtYXR0ZXIuZnJvbU1vbmV5KHthbW91bnQ6IGRlZmF1bHRWYWx1ZS5hbW91bnQsIGN1cnJlbmN5OiB0aGlzLmlucHV0Q3VycmVuY3lWYWx1ZSgpfSwge2RlY2ltYWxzOiAyLCBleGNsdWRlQ3VycmVuY3k6IHRydWV9KS50b1N0cmluZygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIlwiXG4gICAgfVxuICB9XG5cbiAgaW5wdXREZWZhdWx0Q2VudHNWYWx1ZSAoKSB7XG4gICAgY29uc3Qge2RlZmF1bHRWYWx1ZX0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAodGhpcy5nZXRJbnB1dFJlZigpLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiBkaWdnKHRoaXMuZ2V0SW5wdXRSZWYoKSwgXCJjdXJyZW50XCIsIFwidmFsdWVcIilcbiAgICB9IGVsc2UgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIE1vbmV5Rm9ybWF0dGVyLmFtb3VudEZyb21Nb25leShkZWZhdWx0VmFsdWUpXG4gICAgfVxuICB9XG5cbiAgaW5wdXRDZW50c0lkID0gKCkgPT4gYCR7dGhpcy5pbnB1dElkKCl9X2NlbnRzYFxuXG4gIGlucHV0Q2VudHNOYW1lICgpIHtcbiAgICBpZiAoXCJuYW1lXCIgaW4gdGhpcy5wcm9wcykgcmV0dXJuIHRoaXMucHJvcHMubmFtZVxuXG4gICAgcmV0dXJuIGAke3RoaXMucHJvcHMubW9kZWwubW9kZWxDbGFzc0RhdGEoKS5wYXJhbUtleX1bJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUodGhpcy5wcm9wcy5hdHRyaWJ1dGUpfV9jZW50c11gXG4gIH1cblxuICBpbnB1dElkID0gKCkgPT4gaWRGb3JDb21wb25lbnQodGhpcylcblxuICBvbkN1cnJlbmN5Q2hhbmdlZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkgdGhpcy5wcm9wcy5vbkNoYW5nZSgpXG4gIH1cblxuICBzZXRBbW91bnQgPSAoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5nZXRJbnB1dFJlZigpLmN1cnJlbnRcblxuICAgIGlmICghaW5wdXRFbGVtZW50KSByZXR1cm5cblxuICAgIGlmICghaW5wdXRFbGVtZW50LnZhbHVlICYmIGlucHV0RWxlbWVudC52YWx1ZSA9PSBcIlwiKSB7XG4gICAgICB0aGlzLndob2xlUmVmLmN1cnJlbnQudmFsdWUgPSBcIlwiXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNlbnRzID0gcGFyc2VGbG9hdChpbnB1dEVsZW1lbnQudmFsdWUpXG4gICAgICBjb25zdCBmb3JtYXR0ZWQgPSBNb25leUZvcm1hdHRlci5mcm9tTW9uZXkoe2Ftb3VudDogY2VudHMsIGN1cnJlbmN5OiB0aGlzLmlucHV0Q3VycmVuY3lWYWx1ZSgpfSwge2RlY2ltYWxzOiAyLCBleGNsdWRlQ3VycmVuY3k6IHRydWV9KS50b1N0cmluZygpXG5cbiAgICAgIHRoaXMud2hvbGVSZWYuY3VycmVudC52YWx1ZSA9IGZvcm1hdHRlZFxuICAgIH1cbiAgfVxuXG4gIHNldENlbnRzID0gKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuZ2V0SW5wdXRSZWYoKS5jdXJyZW50XG5cbiAgICBpZiAoIWlucHV0RWxlbWVudCkgcmV0dXJuXG5cbiAgICBsZXQgd2hvbGUgPSBNb25leUZvcm1hdHRlci5zdHJpbmdUb0Zsb2F0KHRoaXMud2hvbGVSZWYuY3VycmVudC52YWx1ZSlcbiAgICBsZXQgY2VudHMgPSBwYXJzZUludCh3aG9sZSAqIDEwMCwgMTApXG4gICAgbGV0IG9sZENlbnRzID0gcGFyc2VJbnQoaW5wdXRFbGVtZW50LnZhbHVlLCAxMClcblxuICAgIGlmICh0eXBlb2YgY2VudHMgPT0gXCJudW1iZXJcIikge1xuICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gY2VudHNcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gJydcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSAmJiBvbGRDZW50cyAhPSBjZW50cykgdGhpcy5wcm9wcy5vbkNoYW5nZSgpXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxLQUFLLElBQUdDLE1BQU0sUUFBTyxPQUFPO0FBQ25DLFNBQVFDLGNBQWMsRUFBRUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRixPQUFPQyxVQUFVLE1BQU0sWUFBWTtBQUNuQyxPQUFPQyxNQUFNLE1BQU0sV0FBVztBQUM5QixTQUFRQyxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPQyxjQUFjLE1BQU0sb0JBQW9CO0FBQy9DLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFDeEMsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxjQUFjLE1BQU0sb0JBQW9CO0FBQy9DLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFFN0MsZUFBZUgsSUFBSSxDQUFDUCxjQUFjLENBQUMsTUFBTVcsbUJBQW1CLFNBQVNWLGNBQWMsQ0FBQztFQUNsRixPQUFPVyxZQUFZLEdBQUc7SUFDcEJDLFFBQVEsRUFBRSxLQUFLO0lBQ2ZDLG1CQUFtQixFQUFFO0VBQ3ZCLENBQUM7RUFFRCxPQUFPQyxTQUFTLEdBQUdMLGNBQWMsQ0FBQztJQUNoQ00sU0FBUyxFQUFFUCxTQUFTLENBQUNRLE1BQU07SUFDM0JDLGNBQWMsRUFBRVQsU0FBUyxDQUFDUSxNQUFNO0lBQ2hDRSxTQUFTLEVBQUVWLFNBQVMsQ0FBQ1EsTUFBTTtJQUMzQkcsb0JBQW9CLEVBQUVYLFNBQVMsQ0FBQ1ksS0FBSztJQUNyQ0MsWUFBWSxFQUFFYixTQUFTLENBQUNRLE1BQU07SUFDOUJNLFdBQVcsRUFBRWQsU0FBUyxDQUFDZSxNQUFNO0lBQzdCQyxZQUFZLEVBQUVoQixTQUFTLENBQUNlLE1BQU07SUFDOUJYLFFBQVEsRUFBRUosU0FBUyxDQUFDaUIsSUFBSSxDQUFDQyxVQUFVO0lBQ25DQyxFQUFFLEVBQUVuQixTQUFTLENBQUNRLE1BQU07SUFDcEJZLFFBQVEsRUFBRXBCLFNBQVMsQ0FBQ2UsTUFBTTtJQUMxQk0sS0FBSyxFQUFFckIsU0FBUyxDQUFDc0IsSUFBSTtJQUNyQkMsS0FBSyxFQUFFdkIsU0FBUyxDQUFDZSxNQUFNO0lBQ3ZCUyxJQUFJLEVBQUV4QixTQUFTLENBQUNRLE1BQU07SUFDdEJpQixRQUFRLEVBQUV6QixTQUFTLENBQUMwQixJQUFJO0lBQ3hCQyxXQUFXLEVBQUUzQixTQUFTLENBQUNzQixJQUFJO0lBQzNCakIsbUJBQW1CLEVBQUVMLFNBQVMsQ0FBQ2lCLElBQUk7SUFDbkNXLEtBQUssRUFBRTVCLFNBQVMsQ0FBQ2lCLElBQUk7SUFDckJZLElBQUksRUFBRTdCLFNBQVMsQ0FBQ1EsTUFBTTtJQUN0QnNCLFFBQVEsRUFBRTlCLFNBQVMsQ0FBQ2U7RUFDdEIsQ0FBQyxDQUFDO0VBRUZnQixLQUFLQSxDQUFBLEVBQUc7SUFDTixJQUFJLENBQUNYLFFBQVEsR0FBRzlCLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLElBQUksQ0FBQzBDLGlCQUFpQixHQUFHMUMsTUFBTSxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDd0IsV0FBVyxHQUFHLElBQUksQ0FBQ21CLEtBQUssQ0FBQ25CLFdBQVcsSUFBSSxJQUFJLENBQUNrQixpQkFBaUI7SUFDbkUsSUFBSSxDQUFDRSxjQUFjLEdBQUc1QyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUN3QyxRQUFRLEdBQUcsSUFBSSxDQUFDRyxLQUFLLENBQUNILFFBQVEsSUFBSSxJQUFJLENBQUNJLGNBQWM7RUFDNUQ7RUFFQUMsV0FBVyxHQUFHQSxDQUFBLEtBQU0sSUFBSSxDQUFDRixLQUFLLENBQUNiLFFBQVEsSUFBSSxJQUFJLENBQUNBLFFBQVE7RUFFeERnQixNQUFNQSxDQUFBLEVBQUk7SUFDUixNQUFNO01BQUM3QixTQUFTO01BQUVHLFNBQVM7TUFBRU4sUUFBUTtNQUFFbUIsS0FBSztNQUFFbEI7SUFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQzRCLEtBQUs7SUFDL0UsSUFBSTtNQUFDdEI7SUFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQ3NCLEtBQUs7SUFFdkMsSUFBSSxDQUFDdEIsb0JBQW9CLEVBQUVBLG9CQUFvQixHQUFHakIsTUFBTSxDQUFDMkMsdUJBQXVCLENBQUMsQ0FBQztJQUVsRixvQkFDRWhELEtBQUEsQ0FBQWlELGFBQUE7TUFBSzVCLFNBQVMsRUFBQyx3QkFBd0I7TUFBQyxrQkFBZ0JILFNBQVU7TUFBQyxpQkFBZWdCLEtBQUssRUFBRUosRUFBRSxDQUFDO0lBQUUsZ0JBQzVGOUIsS0FBQSxDQUFBaUQsYUFBQTtNQUFPdEIsWUFBWSxFQUFFLElBQUksQ0FBQ3VCLHNCQUFzQixDQUFDLENBQUU7TUFBQ3BCLEVBQUUsRUFBRSxJQUFJLENBQUNxQixZQUFZLENBQUMsQ0FBRTtNQUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQ2lCLGNBQWMsQ0FBQyxDQUFFO01BQUNDLEdBQUcsRUFBRSxJQUFJLENBQUNQLFdBQVcsQ0FBQyxDQUFFO01BQUNOLElBQUksRUFBQztJQUFRLENBQUUsQ0FBQyxlQUNuSnhDLEtBQUEsQ0FBQWlELGFBQUE7TUFDRTVCLFNBQVMsRUFBRWpCLFVBQVUsQ0FBQyxhQUFhLEVBQUVpQixTQUFTLENBQUU7TUFDaERNLFlBQVksRUFBRSxJQUFJLENBQUMyQixpQkFBaUIsQ0FBQyxDQUFFO01BQ3ZDdkMsUUFBUSxFQUFFQSxRQUFTO01BQ25CZSxFQUFFLEVBQUUsSUFBSSxDQUFDeUIsT0FBTyxDQUFDLENBQUU7TUFDbkJDLE1BQU0sRUFBRSxJQUFJLENBQUNDLEVBQUUsQ0FBQ0MsU0FBVTtNQUMxQnRCLFFBQVEsRUFBRSxJQUFJLENBQUNxQixFQUFFLENBQUNFLFFBQVM7TUFDM0JDLE9BQU8sRUFBRSxJQUFJLENBQUNILEVBQUUsQ0FBQ0UsUUFBUztNQUMxQnJCLFdBQVcsRUFBRSxJQUFJLENBQUNNLEtBQUssQ0FBQ04sV0FBWTtNQUNwQ2UsR0FBRyxFQUFFLElBQUksQ0FBQ0ksRUFBRSxDQUFDaEIsUUFBUztNQUN0QkQsSUFBSSxFQUFDO0lBQU0sQ0FDWixDQUFDLEVBQ0R4QixtQkFBbUIsaUJBQ2xCaEIsS0FBQSxDQUFBaUQsYUFBQTtNQUNFNUIsU0FBUyxFQUFDLGdCQUFnQjtNQUMxQk0sWUFBWSxFQUFFLElBQUksQ0FBQ2tDLGtCQUFrQixDQUFDLENBQUU7TUFDeEM5QyxRQUFRLEVBQUVBLFFBQVM7TUFDbkJlLEVBQUUsRUFBRSxJQUFJLENBQUNnQyxlQUFlLENBQUMsQ0FBRTtNQUMzQjNCLElBQUksRUFBRSxJQUFJLENBQUM0QixpQkFBaUIsQ0FBQyxDQUFFO01BQy9CM0IsUUFBUSxFQUFFLElBQUksQ0FBQ3FCLEVBQUUsQ0FBQ08saUJBQWtCO01BQ3BDWCxHQUFHLEVBQUUsSUFBSSxDQUFDSSxFQUFFLENBQUNoQztJQUFZLGdCQUV6QnpCLEtBQUEsQ0FBQWlELGFBQUEsZUFBZ0IsQ0FBQyxFQUNoQjNCLG9CQUFvQixDQUFDMkMsR0FBRyxDQUFFQyxNQUFNLGlCQUMvQmxFLEtBQUEsQ0FBQWlELGFBQUE7TUFBUWtCLEdBQUcsRUFBRSxpQkFBaUJELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRztNQUFDRSxLQUFLLEVBQUVGLE1BQU0sQ0FBQyxDQUFDO0lBQUUsR0FDekQsSUFBSSxDQUFDdEIsS0FBSyxDQUFDTCxLQUFLLElBQUkyQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQzdCLENBQUMsSUFBSSxDQUFDdEIsS0FBSyxDQUFDTCxLQUFLLElBQUkyQixNQUFNLENBQUMsQ0FBQyxDQUN4QixDQUNULENBQ0ssQ0FFUCxDQUFDO0VBRVY7RUFFQUosZUFBZSxHQUFHQSxDQUFBLEtBQU0sR0FBRyxJQUFJLENBQUNQLE9BQU8sQ0FBQyxDQUFDLFdBQVc7RUFFcERRLGlCQUFpQkEsQ0FBQSxFQUFJO0lBQ25CLElBQUksY0FBYyxJQUFJLElBQUksQ0FBQ25CLEtBQUssRUFBRSxPQUFPLElBQUksQ0FBQ0EsS0FBSyxDQUFDcEIsWUFBWTtJQUVoRSxPQUFPLEdBQUcsSUFBSSxDQUFDb0IsS0FBSyxDQUFDVixLQUFLLENBQUNtQyxjQUFjLENBQUMsQ0FBQyxDQUFDQyxRQUFRLElBQUk5RCxVQUFVLENBQUMrRCxVQUFVLENBQUMsSUFBSSxDQUFDM0IsS0FBSyxDQUFDMUIsU0FBUyxDQUFDLFlBQVk7RUFDakg7RUFFQTJDLGtCQUFrQkEsQ0FBQSxFQUFJO0lBQ3BCLE1BQU07TUFBQ2xDO0lBQVksQ0FBQyxHQUFHLElBQUksQ0FBQ2lCLEtBQUs7SUFFakMsSUFBSWpCLFlBQVksRUFBRTtNQUNoQixPQUFPakIsY0FBYyxDQUFDOEQsaUJBQWlCLENBQUM3QyxZQUFZLENBQUMsQ0FBQzhDLElBQUk7SUFDNUQsQ0FBQyxNQUFNO01BQ0wsT0FBTyxLQUFLO0lBQ2Q7RUFDRjtFQUVBbkIsaUJBQWlCQSxDQUFBLEVBQUk7SUFDbkIsTUFBTTtNQUFDM0I7SUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDaUIsS0FBSztJQUVqQyxJQUFJakIsWUFBWSxFQUFFO01BQ2hCLE9BQU9qQixjQUFjLENBQUNnRSxTQUFTLENBQUM7UUFBQ0MsTUFBTSxFQUFFaEQsWUFBWSxDQUFDZ0QsTUFBTTtRQUFFQyxRQUFRLEVBQUUsSUFBSSxDQUFDZixrQkFBa0IsQ0FBQztNQUFDLENBQUMsRUFBRTtRQUFDZ0IsUUFBUSxFQUFFLENBQUM7UUFBRUMsZUFBZSxFQUFFO01BQUksQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RKLENBQUMsTUFBTTtNQUNMLE9BQU8sRUFBRTtJQUNYO0VBQ0Y7RUFFQTdCLHNCQUFzQkEsQ0FBQSxFQUFJO0lBQ3hCLE1BQU07TUFBQ3ZCO0lBQVksQ0FBQyxHQUFHLElBQUksQ0FBQ2lCLEtBQUs7SUFFakMsSUFBSSxJQUFJLENBQUNFLFdBQVcsQ0FBQyxDQUFDLENBQUNrQyxPQUFPLEVBQUU7TUFDOUIsT0FBTzFFLElBQUksQ0FBQyxJQUFJLENBQUN3QyxXQUFXLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUM7SUFDckQsQ0FBQyxNQUFNLElBQUluQixZQUFZLEVBQUU7TUFDdkIsT0FBT2pCLGNBQWMsQ0FBQ3VFLGVBQWUsQ0FBQ3RELFlBQVksQ0FBQztJQUNyRDtFQUNGO0VBRUF3QixZQUFZLEdBQUdBLENBQUEsS0FBTSxHQUFHLElBQUksQ0FBQ0ksT0FBTyxDQUFDLENBQUMsUUFBUTtFQUU5Q0gsY0FBY0EsQ0FBQSxFQUFJO0lBQ2hCLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQ1IsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDQSxLQUFLLENBQUNULElBQUk7SUFFaEQsT0FBTyxHQUFHLElBQUksQ0FBQ1MsS0FBSyxDQUFDVixLQUFLLENBQUNtQyxjQUFjLENBQUMsQ0FBQyxDQUFDQyxRQUFRLElBQUk5RCxVQUFVLENBQUMrRCxVQUFVLENBQUMsSUFBSSxDQUFDM0IsS0FBSyxDQUFDMUIsU0FBUyxDQUFDLFNBQVM7RUFDOUc7RUFFQXFDLE9BQU8sR0FBR0EsQ0FBQSxLQUFNaEQsY0FBYyxDQUFDLElBQUksQ0FBQztFQUVwQ3lELGlCQUFpQixHQUFHQSxDQUFBLEtBQU07SUFDeEIsSUFBSSxJQUFJLENBQUNwQixLQUFLLENBQUNSLFFBQVEsRUFBRSxJQUFJLENBQUNRLEtBQUssQ0FBQ1IsUUFBUSxDQUFDLENBQUM7RUFDaEQsQ0FBQztFQUVEc0IsU0FBUyxHQUFHQSxDQUFBLEtBQU07SUFDaEIsTUFBTXdCLFlBQVksR0FBRyxJQUFJLENBQUNwQyxXQUFXLENBQUMsQ0FBQyxDQUFDa0MsT0FBTztJQUUvQyxJQUFJLENBQUNFLFlBQVksRUFBRTtJQUVuQixJQUFJLENBQUNBLFlBQVksQ0FBQ2QsS0FBSyxJQUFJYyxZQUFZLENBQUNkLEtBQUssSUFBSSxFQUFFLEVBQUU7TUFDbkQsSUFBSSxDQUFDM0IsUUFBUSxDQUFDdUMsT0FBTyxDQUFDWixLQUFLLEdBQUcsRUFBRTtJQUNsQyxDQUFDLE1BQU07TUFDTCxNQUFNZSxLQUFLLEdBQUdDLFVBQVUsQ0FBQ0YsWUFBWSxDQUFDZCxLQUFLLENBQUM7TUFDNUMsTUFBTWlCLFNBQVMsR0FBRzNFLGNBQWMsQ0FBQ2dFLFNBQVMsQ0FBQztRQUFDQyxNQUFNLEVBQUVRLEtBQUs7UUFBRVAsUUFBUSxFQUFFLElBQUksQ0FBQ2Ysa0JBQWtCLENBQUM7TUFBQyxDQUFDLEVBQUU7UUFBQ2dCLFFBQVEsRUFBRSxDQUFDO1FBQUVDLGVBQWUsRUFBRTtNQUFJLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQztNQUVqSixJQUFJLENBQUN0QyxRQUFRLENBQUN1QyxPQUFPLENBQUNaLEtBQUssR0FBR2lCLFNBQVM7SUFDekM7RUFDRixDQUFDO0VBRUQxQixRQUFRLEdBQUdBLENBQUEsS0FBTTtJQUNmLE1BQU11QixZQUFZLEdBQUcsSUFBSSxDQUFDcEMsV0FBVyxDQUFDLENBQUMsQ0FBQ2tDLE9BQU87SUFFL0MsSUFBSSxDQUFDRSxZQUFZLEVBQUU7SUFFbkIsSUFBSUksS0FBSyxHQUFHNUUsY0FBYyxDQUFDNkUsYUFBYSxDQUFDLElBQUksQ0FBQzlDLFFBQVEsQ0FBQ3VDLE9BQU8sQ0FBQ1osS0FBSyxDQUFDO0lBQ3JFLElBQUllLEtBQUssR0FBR0ssUUFBUSxDQUFDRixLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNyQyxJQUFJRyxRQUFRLEdBQUdELFFBQVEsQ0FBQ04sWUFBWSxDQUFDZCxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBRS9DLElBQUksT0FBT2UsS0FBSyxJQUFJLFFBQVEsRUFBRTtNQUM1QkQsWUFBWSxDQUFDZCxLQUFLLEdBQUdlLEtBQUs7SUFDNUIsQ0FBQyxNQUFNO01BQ0xELFlBQVksQ0FBQ2QsS0FBSyxHQUFHLEVBQUU7SUFDekI7SUFFQSxJQUFJLElBQUksQ0FBQ3hCLEtBQUssQ0FBQ1IsUUFBUSxJQUFJcUQsUUFBUSxJQUFJTixLQUFLLEVBQUUsSUFBSSxDQUFDdkMsS0FBSyxDQUFDUixRQUFRLENBQUMsQ0FBQztFQUNyRSxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,26 +1,44 @@
1
- import React, { createContext, useCallback, useContext, useMemo } from "react";
1
+ import React, { useCallback, useContext, useMemo } from "react";
2
2
  import Devise from "./devise";
3
3
  import { digg } from "diggerize";
4
+ import EventEmitter from "events";
4
5
  import * as inflection from "inflection";
5
6
  import Logger from "./logger";
6
7
  import Services from "./services";
7
8
  import useEventEmitter from "./use-event-emitter";
8
9
  import useShape from "set-state-compare/src/use-shape";
10
+ const events = new EventEmitter();
9
11
  const logger = new Logger({
10
12
  name: "ApiMaker / useCurrentUser"
11
13
  });
12
-
13
- // logger.setDebug(true)
14
-
15
- const useCurrentUser = props => {
16
- const scope = props?.scope || "user";
14
+ logger.setDebug(false);
15
+ const useCurrentUser = (props = {}) => {
16
+ const {
17
+ scope = "user",
18
+ withData,
19
+ ...restProps
20
+ } = props;
21
+ if (Object.keys(restProps).length > 0) {
22
+ throw new Error(`Unknown props given to useCurrentUser: ${Object.keys(restProps).join(", ")}`);
23
+ }
17
24
  const scopeInstance = Devise.getScope(scope);
18
25
  const currentUserContext = useContext(scopeInstance.getContext());
19
- return currentUserContext;
26
+ if (withData) {
27
+ return currentUserContext;
28
+ } else {
29
+ return currentUserContext.model;
30
+ }
20
31
  };
21
- const WithCurrentUser = props => {
22
- const s = useShape(props || {});
23
- const scope = props?.scope || "user";
32
+ const WithCurrentUser = (props = {}) => {
33
+ const {
34
+ children,
35
+ scope = "user",
36
+ ...restProps
37
+ } = props;
38
+ if (Object.keys(restProps).length > 0) {
39
+ throw new Error(`Unknown props given to WithCurrentUser: ${Object.keys(restProps).join(", ")}`);
40
+ }
41
+ const s = useShape(props);
24
42
  const scopeName = `current${inflection.camelize(scope)}`;
25
43
  const scopeInstance = Devise.getScope(scope);
26
44
  const ScopeContext = scopeInstance.getContext();
@@ -40,9 +58,14 @@ const WithCurrentUser = props => {
40
58
  const current = digg(result, "current")[0];
41
59
  if (current) Devise.updateSession(current);
42
60
  s.set({
61
+ result: {
62
+ loaded: true,
63
+ model: current
64
+ }
65
+ });
66
+ events.emit("currentUserLoaded", {
43
67
  current
44
68
  });
45
- if (s.props.onCurrentUserLoaded) setTimeout(() => s.props.onCurrentUserLoaded(current), 0);
46
69
  }, []);
47
70
  const defaultCurrentUser = useCallback(() => {
48
71
  const {
@@ -57,17 +80,25 @@ const WithCurrentUser = props => {
57
80
  current = Devise[scopeName]();
58
81
  logger.debug(() => `Setting ${scope} from global current scope: ${current?.id()}`);
59
82
  }
60
- if (current && s.props.onCurrentUserLoaded) {
61
- setTimeout(() => s.props.onCurrentUserLoaded(current), 0);
83
+ if (current) {
84
+ events.emit("currentUserLoaded", {
85
+ current
86
+ });
62
87
  }
63
88
  return current;
64
89
  }, []);
65
90
  s.useStates({
66
- current: () => defaultCurrentUser()
91
+ result: () => ({
92
+ loaded: false,
93
+ model: defaultCurrentUser()
94
+ })
67
95
  });
68
96
  const updateCurrentUser = useCallback(() => {
69
97
  s.set({
70
- current: Devise[s.m.scopeName]()
98
+ result: {
99
+ loaded: true,
100
+ model: Devise[s.m.scopeName]()
101
+ }
71
102
  });
72
103
  }, []);
73
104
  useMemo(() => {
@@ -85,9 +116,9 @@ const WithCurrentUser = props => {
85
116
  useEventEmitter(Devise.events(), "onDeviseSignIn", onDeviseSignIn);
86
117
  useEventEmitter(Devise.events(), "onDeviseSignOut", onDeviseSignOut);
87
118
  return /*#__PURE__*/React.createElement(ScopeContext.Provider, {
88
- value: s.s.current
89
- }, props.children);
119
+ value: s.s.result
120
+ }, children);
90
121
  };
91
- export { WithCurrentUser };
122
+ export { events, WithCurrentUser };
92
123
  export default useCurrentUser;
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDYWxsYmFjayIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwiRGV2aXNlIiwiZGlnZyIsImluZmxlY3Rpb24iLCJMb2dnZXIiLCJTZXJ2aWNlcyIsInVzZUV2ZW50RW1pdHRlciIsInVzZVNoYXBlIiwibG9nZ2VyIiwibmFtZSIsInVzZUN1cnJlbnRVc2VyIiwicHJvcHMiLCJzY29wZSIsInNjb3BlSW5zdGFuY2UiLCJnZXRTY29wZSIsImN1cnJlbnRVc2VyQ29udGV4dCIsImdldENvbnRleHQiLCJXaXRoQ3VycmVudFVzZXIiLCJzIiwic2NvcGVOYW1lIiwiY2FtZWxpemUiLCJTY29wZUNvbnRleHQiLCJtZXRhIiwibG9hZEN1cnJlbnRVc2VyRnJvbVJlcXVlc3QiLCJtIiwiZ2V0QXJnc01ldGhvZE5hbWUiLCJhcmdzIiwiZGVidWciLCJyZXN1bHQiLCJjdXJyZW50Iiwic2VuZFJlcXVlc3QiLCJxdWVyeSIsInVwZGF0ZVNlc3Npb24iLCJzZXQiLCJvbkN1cnJlbnRVc2VyTG9hZGVkIiwic2V0VGltZW91dCIsImRlZmF1bHRDdXJyZW50VXNlciIsImhhc0N1cnJlbnRTY29wZSIsImdldEN1cnJlbnRTY29wZSIsImlkIiwiaGFzR2xvYmFsQ3VycmVudFNjb3BlIiwidXNlU3RhdGVzIiwidXBkYXRlQ3VycmVudFVzZXIiLCJvbkRldmlzZVNpZ25JbiIsIm9uRGV2aXNlU2lnbk91dCIsImV2ZW50cyIsImNyZWF0ZUVsZW1lbnQiLCJQcm92aWRlciIsInZhbHVlIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi9zcmMvdXNlLWN1cnJlbnQtdXNlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCIuL3VzZS1ldmVudC1lbWl0dGVyXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3VzZS1zaGFwZVwiXG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoe25hbWU6IFwiQXBpTWFrZXIgLyB1c2VDdXJyZW50VXNlclwifSlcblxuLy8gbG9nZ2VyLnNldERlYnVnKHRydWUpXG5cbmNvbnN0IHVzZUN1cnJlbnRVc2VyID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHNjb3BlID0gcHJvcHM/LnNjb3BlIHx8IFwidXNlclwiXG4gIGNvbnN0IHNjb3BlSW5zdGFuY2UgPSBEZXZpc2UuZ2V0U2NvcGUoc2NvcGUpXG4gIGNvbnN0IGN1cnJlbnRVc2VyQ29udGV4dCA9IHVzZUNvbnRleHQoc2NvcGVJbnN0YW5jZS5nZXRDb250ZXh0KCkpXG5cbiAgcmV0dXJuIGN1cnJlbnRVc2VyQ29udGV4dFxufVxuXG5jb25zdCBXaXRoQ3VycmVudFVzZXIgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHByb3BzIHx8IHt9KVxuICBjb25zdCBzY29wZSA9IHByb3BzPy5zY29wZSB8fCBcInVzZXJcIlxuICBjb25zdCBzY29wZU5hbWUgPSBgY3VycmVudCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSl9YFxuICBjb25zdCBzY29wZUluc3RhbmNlID0gRGV2aXNlLmdldFNjb3BlKHNjb3BlKVxuICBjb25zdCBTY29wZUNvbnRleHQgPSBzY29wZUluc3RhbmNlLmdldENvbnRleHQoKVxuXG4gIHMubWV0YS5zY29wZSA9IHNjb3BlXG4gIHMubWV0YS5zY29wZU5hbWUgPSBzY29wZU5hbWVcblxuICBjb25zdCBsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7c2NvcGV9ID0gcy5tXG4gICAgY29uc3QgZ2V0QXJnc01ldGhvZE5hbWUgPSBgZ2V0JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlKX1BcmdzYFxuICAgIGNvbnN0IGFyZ3MgPSBEZXZpc2VbZ2V0QXJnc01ldGhvZE5hbWVdKClcblxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgTG9hZGluZyAke3Njb3BlfSB3aXRoIHJlcXVlc3RgKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpDdXJyZW50XCIsIHtxdWVyeTogYXJncy5xdWVyeSwgc2NvcGV9KVxuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWdnKHJlc3VsdCwgXCJjdXJyZW50XCIpWzBdXG5cbiAgICBpZiAoY3VycmVudCkgRGV2aXNlLnVwZGF0ZVNlc3Npb24oY3VycmVudClcblxuICAgIHMuc2V0KHtjdXJyZW50fSlcblxuICAgIGlmIChzLnByb3BzLm9uQ3VycmVudFVzZXJMb2FkZWQpIHNldFRpbWVvdXQoKCkgPT4gcy5wcm9wcy5vbkN1cnJlbnRVc2VyTG9hZGVkKGN1cnJlbnQpLCAwKVxuICB9LCBbXSlcblxuICBjb25zdCBkZWZhdWx0Q3VycmVudFVzZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qge3Njb3BlLCBzY29wZU5hbWV9ID0gcy5tXG4gICAgbGV0IGN1cnJlbnRcblxuICAgIGlmIChEZXZpc2UuY3VycmVudCgpLmhhc0N1cnJlbnRTY29wZShzLm0uc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpXG5cbiAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgU2V0dGluZyAke3Njb3BlfSBmcm9tIGN1cnJlbnQgc2NvcGU6ICR7Y3VycmVudD8uaWQoKX1gKVxuICAgIH0gZWxzZSBpZiAoRGV2aXNlLmN1cnJlbnQoKS5oYXNHbG9iYWxDdXJyZW50U2NvcGUoc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlW3Njb3BlTmFtZV0oKVxuXG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYFNldHRpbmcgJHtzY29wZX0gZnJvbSBnbG9iYWwgY3VycmVudCBzY29wZTogJHtjdXJyZW50Py5pZCgpfWApXG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnQgJiYgcy5wcm9wcy5vbkN1cnJlbnRVc2VyTG9hZGVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHMucHJvcHMub25DdXJyZW50VXNlckxvYWRlZChjdXJyZW50KSwgMClcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFxuICB9LCBbXSlcblxuICBzLnVzZVN0YXRlcyh7Y3VycmVudDogKCkgPT4gZGVmYXVsdEN1cnJlbnRVc2VyKCl9KVxuXG4gIGNvbnN0IHVwZGF0ZUN1cnJlbnRVc2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHMuc2V0KHtjdXJyZW50OiBEZXZpc2Vbcy5tLnNjb3BlTmFtZV0oKX0pXG4gIH0sIFtdKVxuXG4gIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghRGV2aXNlLmN1cnJlbnQoKS5oYXNHbG9iYWxDdXJyZW50U2NvcGUocy5tLnNjb3BlKSAmJiAhRGV2aXNlLmN1cnJlbnQoKS5oYXNDdXJyZW50U2NvcGUocy5tLnNjb3BlKSkge1xuICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBEZXZpc2UgaGFzbid0IGdvdCBjdXJyZW50IHNjb3BlICR7cy5tLnNjb3BlfSBzbyBsb2FkaW5nIGZyb20gcmVxdWVzdGApXG4gICAgICBsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCgpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBvbkRldmlzZVNpZ25JbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1cGRhdGVDdXJyZW50VXNlcigpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGV2aXNlU2lnbk91dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1cGRhdGVDdXJyZW50VXNlcigpXG4gIH0sIFtdKVxuXG4gIHVzZUV2ZW50RW1pdHRlcihEZXZpc2UuZXZlbnRzKCksIFwib25EZXZpc2VTaWduSW5cIiwgb25EZXZpc2VTaWduSW4pXG4gIHVzZUV2ZW50RW1pdHRlcihEZXZpc2UuZXZlbnRzKCksIFwib25EZXZpc2VTaWduT3V0XCIsIG9uRGV2aXNlU2lnbk91dClcblxuICByZXR1cm4gKFxuICAgIDxTY29wZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Mucy5jdXJyZW50fT5cbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICA8L1Njb3BlQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5leHBvcnQge1dpdGhDdXJyZW50VXNlcn1cbmV4cG9ydCBkZWZhdWx0IHVzZUN1cnJlbnRVc2VyXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBR0MsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDNUUsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxNQUFNLE1BQU0sVUFBVTtBQUM3QixPQUFPQyxRQUFRLE1BQU0sWUFBWTtBQUNqQyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLFFBQVEsTUFBTSxpQ0FBaUM7QUFFdEQsTUFBTUMsTUFBTSxHQUFHLElBQUlKLE1BQU0sQ0FBQztFQUFDSyxJQUFJLEVBQUU7QUFBMkIsQ0FBQyxDQUFDOztBQUU5RDs7QUFFQSxNQUFNQyxjQUFjLEdBQUlDLEtBQUssSUFBSztFQUNoQyxNQUFNQyxLQUFLLEdBQUdELEtBQUssRUFBRUMsS0FBSyxJQUFJLE1BQU07RUFDcEMsTUFBTUMsYUFBYSxHQUFHWixNQUFNLENBQUNhLFFB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
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZU1lbW8iLCJEZXZpc2UiLCJkaWdnIiwiRXZlbnRFbWl0dGVyIiwiaW5mbGVjdGlvbiIsIkxvZ2dlciIsIlNlcnZpY2VzIiwidXNlRXZlbnRFbWl0dGVyIiwidXNlU2hhcGUiLCJldmVudHMiLCJsb2dnZXIiLCJuYW1lIiwic2V0RGVidWciLCJ1c2VDdXJyZW50VXNlciIsInByb3BzIiwic2NvcGUiLCJ3aXRoRGF0YSIsInJlc3RQcm9wcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJFcnJvciIsImpvaW4iLCJzY29wZUluc3RhbmNlIiwiZ2V0U2NvcGUiLCJjdXJyZW50VXNlckNvbnRleHQiLCJnZXRDb250ZXh0IiwibW9kZWwiLCJXaXRoQ3VycmVudFVzZXIiLCJjaGlsZHJlbiIsInMiLCJzY29wZU5hbWUiLCJjYW1lbGl6ZSIsIlNjb3BlQ29udGV4dCIsIm1ldGEiLCJsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCIsIm0iLCJnZXRBcmdzTWV0aG9kTmFtZSIsImFyZ3MiLCJkZWJ1ZyIsInJlc3VsdCIsImN1cnJlbnQiLCJzZW5kUmVxdWVzdCIsInF1ZXJ5IiwidXBkYXRlU2Vzc2lvbiIsInNldCIsImxvYWRlZCIsImVtaXQiLCJkZWZhdWx0Q3VycmVudFVzZXIiLCJoYXNDdXJyZW50U2NvcGUiLCJnZXRDdXJyZW50U2NvcGUiLCJpZCIsImhhc0dsb2JhbEN1cnJlbnRTY29wZSIsInVzZVN0YXRlcyIsInVwZGF0ZUN1cnJlbnRVc2VyIiwib25EZXZpc2VTaWduSW4iLCJvbkRldmlzZVNpZ25PdXQiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtY3VycmVudC11c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IERldmlzZSBmcm9tIFwiLi9kZXZpc2VcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSBcImV2ZW50c1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCIuL3VzZS1ldmVudC1lbWl0dGVyXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3VzZS1zaGFwZVwiXG5cbmNvbnN0IGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcih7bmFtZTogXCJBcGlNYWtlciAvIHVzZUN1cnJlbnRVc2VyXCJ9KVxuXG5sb2dnZXIuc2V0RGVidWcoZmFsc2UpXG5cbmNvbnN0IHVzZUN1cnJlbnRVc2VyID0gKHByb3BzID0ge30pID0+IHtcbiAgY29uc3Qge3Njb3BlID0gXCJ1c2VyXCIsIHdpdGhEYXRhLCAuLi5yZXN0UHJvcHN9ID0gcHJvcHNcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIHVzZUN1cnJlbnRVc2VyOiAke09iamVjdC5rZXlzKHJlc3RQcm9wcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzY29wZUluc3RhbmNlID0gRGV2aXNlLmdldFNjb3BlKHNjb3BlKVxuICBjb25zdCBjdXJyZW50VXNlckNvbnRleHQgPSB1c2VDb250ZXh0KHNjb3BlSW5zdGFuY2UuZ2V0Q29udGV4dCgpKVxuXG4gIGlmICh3aXRoRGF0YSkge1xuICAgIHJldHVybiBjdXJyZW50VXNlckNvbnRleHRcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3VycmVudFVzZXJDb250ZXh0Lm1vZGVsXG4gIH1cbn1cblxuY29uc3QgV2l0aEN1cnJlbnRVc2VyID0gKHByb3BzID0ge30pID0+IHtcbiAgY29uc3Qge2NoaWxkcmVuLCBzY29wZSA9IFwidXNlclwiLCAuLi5yZXN0UHJvcHN9ID0gcHJvcHNcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIFdpdGhDdXJyZW50VXNlcjogJHtPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmpvaW4oXCIsIFwiKX1gKVxuICB9XG5cbiAgY29uc3QgcyA9IHVzZVNoYXBlKHByb3BzKVxuICBjb25zdCBzY29wZU5hbWUgPSBgY3VycmVudCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSl9YFxuICBjb25zdCBzY29wZUluc3RhbmNlID0gRGV2aXNlLmdldFNjb3BlKHNjb3BlKVxuICBjb25zdCBTY29wZUNvbnRleHQgPSBzY29wZUluc3RhbmNlLmdldENvbnRleHQoKVxuXG4gIHMubWV0YS5zY29wZSA9IHNjb3BlXG4gIHMubWV0YS5zY29wZU5hbWUgPSBzY29wZU5hbWVcblxuICBjb25zdCBsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7c2NvcGV9ID0gcy5tXG4gICAgY29uc3QgZ2V0QXJnc01ldGhvZE5hbWUgPSBgZ2V0JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlKX1BcmdzYFxuICAgIGNvbnN0IGFyZ3MgPSBEZXZpc2VbZ2V0QXJnc01ldGhvZE5hbWVdKClcblxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgTG9hZGluZyAke3Njb3BlfSB3aXRoIHJlcXVlc3RgKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpDdXJyZW50XCIsIHtxdWVyeTogYXJncy5xdWVyeSwgc2NvcGV9KVxuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWdnKHJlc3VsdCwgXCJjdXJyZW50XCIpWzBdXG5cbiAgICBpZiAoY3VycmVudCkgRGV2aXNlLnVwZGF0ZVNlc3Npb24oY3VycmVudClcblxuICAgIHMuc2V0KHtcbiAgICAgIHJlc3VsdDoge1xuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIG1vZGVsOiBjdXJyZW50XG4gICAgICB9XG4gICAgfSlcblxuICAgIGV2ZW50cy5lbWl0KFwiY3VycmVudFVzZXJMb2FkZWRcIiwge2N1cnJlbnR9KVxuICB9LCBbXSlcblxuICBjb25zdCBkZWZhdWx0Q3VycmVudFVzZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qge3Njb3BlLCBzY29wZU5hbWV9ID0gcy5tXG4gICAgbGV0IGN1cnJlbnRcblxuICAgIGlmIChEZXZpc2UuY3VycmVudCgpLmhhc0N1cnJlbnRTY29wZShzLm0uc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpXG5cbiAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgU2V0dGluZyAke3Njb3BlfSBmcm9tIGN1cnJlbnQgc2NvcGU6ICR7Y3VycmVudD8uaWQoKX1gKVxuICAgIH0gZWxzZSBpZiAoRGV2aXNlLmN1cnJlbnQoKS5oYXNHbG9iYWxDdXJyZW50U2NvcGUoc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlW3Njb3BlTmFtZV0oKVxuXG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYFNldHRpbmcgJHtzY29wZX0gZnJvbSBnbG9iYWwgY3VycmVudCBzY29wZTogJHtjdXJyZW50Py5pZCgpfWApXG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgIGV2ZW50cy5lbWl0KFwiY3VycmVudFVzZXJMb2FkZWRcIiwge2N1cnJlbnR9KVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50XG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICByZXN1bHQ6ICgpID0+ICh7XG4gICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgbW9kZWw6IGRlZmF1bHRDdXJyZW50VXNlcigpXG4gICAgfSlcbiAgfSlcblxuICBjb25zdCB1cGRhdGVDdXJyZW50VXNlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzLnNldCh7XG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBtb2RlbDogRGV2aXNlW3MubS5zY29wZU5hbWVdKClcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIURldmlzZS5jdXJyZW50KCkuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHMubS5zY29wZSkgJiYgIURldmlzZS5jdXJyZW50KCkuaGFzQ3VycmVudFNjb3BlKHMubS5zY29wZSkpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgRGV2aXNlIGhhc24ndCBnb3QgY3VycmVudCBzY29wZSAke3MubS5zY29wZX0gc28gbG9hZGluZyBmcm9tIHJlcXVlc3RgKVxuICAgICAgbG9hZEN1cnJlbnRVc2VyRnJvbVJlcXVlc3QoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXZpc2VTaWduSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdXBkYXRlQ3VycmVudFVzZXIoKVxuICB9LCBbXSlcblxuICBjb25zdCBvbkRldmlzZVNpZ25PdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdXBkYXRlQ3VycmVudFVzZXIoKVxuICB9LCBbXSlcblxuICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbkluXCIsIG9uRGV2aXNlU2lnbkluKVxuICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbk91dFwiLCBvbkRldmlzZVNpZ25PdXQpXG5cbiAgcmV0dXJuIChcbiAgICA8U2NvcGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtzLnMucmVzdWx0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1Njb3BlQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5leHBvcnQge2V2ZW50cywgV2l0aEN1cnJlbnRVc2VyfVxuZXhwb3J0IGRlZmF1bHQgdXNlQ3VycmVudFVzZXJcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDN0QsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBT0MsWUFBWSxNQUFNLFFBQVE7QUFDakMsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxNQUFNLE1BQU0sVUFBVTtBQUM3QixPQUFPQyxRQUFRLE1BQU0sWUFBWTtBQUNqQyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLFFBQVEsTUFBTSxpQ0FBaUM7QUFFdEQsTUFBTUMsTUFBTSxHQUFHLElBQUlOLFlBQVksQ0FBQyxDQUFDO0FBQ2pDLE1BQU1PLE1BQU0sR0FBRyxJQUFJTCxNQUFNLENBQUM7RUFBQ00sSUFBSSxFQUFFO0FBQTJCLENBQUMsQ0FBQztBQUU5REQsTUFBTSxDQUFDRSxRQUFRLENBQUMsS0FBSyxDQUFDO0FBRXRCLE1BQU1DLGNBQWMsR0FBR0EsQ0FBQ0MsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLO0VBQ3JDLE1BQU07SUFBQ0MsS0FBSyxHQUFHLE1BQU07SUFBRUMsUUFBUTtJQUFFLEdBQUdDO0VBQVMsQ0FBQyxHQUFHSCxLQUFLO0VBRXRELElBQUlJLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDRixTQUFTLENBQUMsQ0FBQ0csTUFBTSxHQUFHLENBQUMsRUFBRTtJQUNyQyxNQUFNLElBQUlDLEtBQUssQ0FBQywwQ0FBMENILE1BQU0sQ0FBQ0MsSUFBSSxDQUFDRixTQUFTLENBQUMsQ0FBQ0ssSUFBSSxDQUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspernj/api-maker",
3
- "version": "1.0.2030",
3
+ "version": "1.0.2032",
4
4
  "description": "My new module",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
@@ -46,9 +46,7 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
46
46
  this.wholeRef = this.props.wholeRef || this.wholeRefBackup
47
47
  }
48
48
 
49
- getInputRef () {
50
- return this.props.inputRef || this.inputRef
51
- }
49
+ getInputRef = () => this.props.inputRef || this.inputRef
52
50
 
53
51
  render () {
54
52
  const {attribute, className, disabled, model, showCurrencyOptions} = this.props
@@ -64,11 +62,11 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
64
62
  defaultValue={this.inputDefaultValue()}
65
63
  disabled={disabled}
66
64
  id={this.inputId()}
67
- onBlur={digg(this, "setAmount")}
68
- onChange={digg(this, "setCents")}
69
- onKeyUp={digg(this, "setCents")}
65
+ onBlur={this.tt.setAmount}
66
+ onChange={this.tt.setCents}
67
+ onKeyUp={this.tt.setCents}
70
68
  placeholder={this.props.placeholder}
71
- ref={this.wholeRef}
69
+ ref={this.tt.wholeRef}
72
70
  type="text"
73
71
  />
74
72
  {showCurrencyOptions &&
@@ -78,8 +76,8 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
78
76
  disabled={disabled}
79
77
  id={this.inputCurrencyId()}
80
78
  name={this.inputCurrencyName()}
81
- onChange={digg(this, "onCurrencyChanged")}
82
- ref={this.currencyRef}
79
+ onChange={this.tt.onCurrencyChanged}
80
+ ref={this.tt.currencyRef}
83
81
  >
84
82
  <option></option>
85
83
  {currenciesCollection.map((option) => (
@@ -94,13 +92,10 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
94
92
  )
95
93
  }
96
94
 
97
- inputCurrencyId () {
98
- return `${this.inputId()}_currency`
99
- }
95
+ inputCurrencyId = () => `${this.inputId()}_currency`
100
96
 
101
97
  inputCurrencyName () {
102
- if ("currencyName" in this.props)
103
- return this.props.currencyName
98
+ if ("currencyName" in this.props) return this.props.currencyName
104
99
 
105
100
  return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_currency]`
106
101
  }
@@ -135,29 +130,25 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
135
130
  }
136
131
  }
137
132
 
138
- inputCentsId () {
139
- return `${this.inputId()}_cents`
140
- }
133
+ inputCentsId = () => `${this.inputId()}_cents`
141
134
 
142
135
  inputCentsName () {
143
- if ("name" in this.props)
144
- return this.props.name
136
+ if ("name" in this.props) return this.props.name
145
137
 
146
138
  return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_cents]`
147
139
  }
148
140
 
149
- inputId () {
150
- return idForComponent(this)
151
- }
141
+ inputId = () => idForComponent(this)
152
142
 
153
143
  onCurrencyChanged = () => {
154
- if (this.props.onChange)
155
- this.props.onChange()
144
+ if (this.props.onChange) this.props.onChange()
156
145
  }
157
146
 
158
147
  setAmount = () => {
159
148
  const inputElement = this.getInputRef().current
160
149
 
150
+ if (!inputElement) return
151
+
161
152
  if (!inputElement.value && inputElement.value == "") {
162
153
  this.wholeRef.current.value = ""
163
154
  } else {
@@ -171,6 +162,8 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
171
162
  setCents = () => {
172
163
  const inputElement = this.getInputRef().current
173
164
 
165
+ if (!inputElement) return
166
+
174
167
  let whole = MoneyFormatter.stringToFloat(this.wholeRef.current.value)
175
168
  let cents = parseInt(whole * 100, 10)
176
169
  let oldCents = parseInt(inputElement.value, 10)
@@ -181,7 +174,6 @@ export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeCompon
181
174
  inputElement.value = ''
182
175
  }
183
176
 
184
- if (this.props.onChange && oldCents != cents)
185
- this.props.onChange()
177
+ if (this.props.onChange && oldCents != cents) this.props.onChange()
186
178
  }
187
179
  }))
@@ -1,27 +1,43 @@
1
- import React, {createContext, useCallback, useContext, useMemo} from "react"
1
+ import React, {useCallback, useContext, useMemo} from "react"
2
2
  import Devise from "./devise"
3
3
  import {digg} from "diggerize"
4
+ import EventEmitter from "events"
4
5
  import * as inflection from "inflection"
5
6
  import Logger from "./logger"
6
7
  import Services from "./services"
7
8
  import useEventEmitter from "./use-event-emitter"
8
9
  import useShape from "set-state-compare/src/use-shape"
9
10
 
11
+ const events = new EventEmitter()
10
12
  const logger = new Logger({name: "ApiMaker / useCurrentUser"})
11
13
 
12
- // logger.setDebug(true)
14
+ logger.setDebug(false)
15
+
16
+ const useCurrentUser = (props = {}) => {
17
+ const {scope = "user", withData, ...restProps} = props
18
+
19
+ if (Object.keys(restProps).length > 0) {
20
+ throw new Error(`Unknown props given to useCurrentUser: ${Object.keys(restProps).join(", ")}`)
21
+ }
13
22
 
14
- const useCurrentUser = (props) => {
15
- const scope = props?.scope || "user"
16
23
  const scopeInstance = Devise.getScope(scope)
17
24
  const currentUserContext = useContext(scopeInstance.getContext())
18
25
 
19
- return currentUserContext
26
+ if (withData) {
27
+ return currentUserContext
28
+ } else {
29
+ return currentUserContext.model
30
+ }
20
31
  }
21
32
 
22
- const WithCurrentUser = (props) => {
23
- const s = useShape(props || {})
24
- const scope = props?.scope || "user"
33
+ const WithCurrentUser = (props = {}) => {
34
+ const {children, scope = "user", ...restProps} = props
35
+
36
+ if (Object.keys(restProps).length > 0) {
37
+ throw new Error(`Unknown props given to WithCurrentUser: ${Object.keys(restProps).join(", ")}`)
38
+ }
39
+
40
+ const s = useShape(props)
25
41
  const scopeName = `current${inflection.camelize(scope)}`
26
42
  const scopeInstance = Devise.getScope(scope)
27
43
  const ScopeContext = scopeInstance.getContext()
@@ -41,9 +57,14 @@ const WithCurrentUser = (props) => {
41
57
 
42
58
  if (current) Devise.updateSession(current)
43
59
 
44
- s.set({current})
60
+ s.set({
61
+ result: {
62
+ loaded: true,
63
+ model: current
64
+ }
65
+ })
45
66
 
46
- if (s.props.onCurrentUserLoaded) setTimeout(() => s.props.onCurrentUserLoaded(current), 0)
67
+ events.emit("currentUserLoaded", {current})
47
68
  }, [])
48
69
 
49
70
  const defaultCurrentUser = useCallback(() => {
@@ -60,17 +81,27 @@ const WithCurrentUser = (props) => {
60
81
  logger.debug(() => `Setting ${scope} from global current scope: ${current?.id()}`)
61
82
  }
62
83
 
63
- if (current && s.props.onCurrentUserLoaded) {
64
- setTimeout(() => s.props.onCurrentUserLoaded(current), 0)
84
+ if (current) {
85
+ events.emit("currentUserLoaded", {current})
65
86
  }
66
87
 
67
88
  return current
68
89
  }, [])
69
90
 
70
- s.useStates({current: () => defaultCurrentUser()})
91
+ s.useStates({
92
+ result: () => ({
93
+ loaded: false,
94
+ model: defaultCurrentUser()
95
+ })
96
+ })
71
97
 
72
98
  const updateCurrentUser = useCallback(() => {
73
- s.set({current: Devise[s.m.scopeName]()})
99
+ s.set({
100
+ result: {
101
+ loaded: true,
102
+ model: Devise[s.m.scopeName]()
103
+ }
104
+ })
74
105
  }, [])
75
106
 
76
107
  useMemo(() => {
@@ -92,11 +123,11 @@ const WithCurrentUser = (props) => {
92
123
  useEventEmitter(Devise.events(), "onDeviseSignOut", onDeviseSignOut)
93
124
 
94
125
  return (
95
- <ScopeContext.Provider value={s.s.current}>
96
- {props.children}
126
+ <ScopeContext.Provider value={s.s.result}>
127
+ {children}
97
128
  </ScopeContext.Provider>
98
129
  )
99
130
  }
100
131
 
101
- export {WithCurrentUser}
132
+ export {events, WithCurrentUser}
102
133
  export default useCurrentUser