@kaspernj/api-maker 1.0.2056 → 1.0.2058

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.
Files changed (211) hide show
  1. package/build/api.js +22 -16
  2. package/build/attribute-not-loaded-error.js +5 -2
  3. package/build/base-component.js +6 -3
  4. package/build/base-error.js +15 -9
  5. package/build/base-model/attribute.js +10 -4
  6. package/build/base-model/column.js +5 -2
  7. package/build/base-model/reflection.js +49 -10
  8. package/build/base-model/scope.js +41 -5
  9. package/build/base-model.js +115 -76
  10. package/build/bootstrap/attribute-row.js +71 -33
  11. package/build/bootstrap/attribute-rows.js +20 -15
  12. package/build/bootstrap/card.js +72 -34
  13. package/build/bootstrap/checkbox.js +35 -30
  14. package/build/bootstrap/checkboxes.js +69 -31
  15. package/build/bootstrap/index.d.ts +1 -0
  16. package/build/bootstrap/index.js +2 -0
  17. package/build/bootstrap/input.js +48 -43
  18. package/build/bootstrap/invalid-feedback.js +17 -11
  19. package/build/bootstrap/paginate.js +73 -35
  20. package/build/bootstrap/radio-buttons.js +33 -28
  21. package/build/bootstrap/select.js +34 -29
  22. package/build/bootstrap/sort-link.js +68 -30
  23. package/build/cable-connection-pool.js +18 -12
  24. package/build/cable-subscription-pool.js +58 -19
  25. package/build/cable-subscription.d.ts +2 -2
  26. package/build/cable-subscription.d.ts.map +1 -1
  27. package/build/cable-subscription.js +12 -6
  28. package/build/cache-key-generator.js +11 -5
  29. package/build/can-can.d.ts +2 -2
  30. package/build/can-can.d.ts.map +1 -1
  31. package/build/can-can.js +56 -17
  32. package/build/channels-consumer.js +10 -5
  33. package/build/collection-loader.js +36 -31
  34. package/build/collection.js +58 -19
  35. package/build/command-submit-data.d.ts +1 -1
  36. package/build/command-submit-data.d.ts.map +1 -1
  37. package/build/command-submit-data.js +10 -4
  38. package/build/commands-pool.js +39 -33
  39. package/build/compose.js +5 -2
  40. package/build/config.d.ts +3 -3
  41. package/build/config.d.ts.map +1 -1
  42. package/build/config.js +40 -6
  43. package/build/custom-error.js +9 -4
  44. package/build/data-set-to-attributes.js +39 -3
  45. package/build/deserializer.js +57 -18
  46. package/build/destroy-error.js +9 -4
  47. package/build/devise.d.ts +1 -1
  48. package/build/devise.d.ts.map +1 -1
  49. package/build/devise.js +55 -16
  50. package/build/draggable-sort/controller.js +14 -11
  51. package/build/draggable-sort/index.js +69 -31
  52. package/build/draggable-sort/item.js +70 -32
  53. package/build/error-logger.js +14 -8
  54. package/build/error-messages.js +8 -5
  55. package/build/event-connection.js +18 -12
  56. package/build/event-emitter-listener.js +9 -4
  57. package/build/event-model-class.js +17 -11
  58. package/build/events.d.ts +2 -2
  59. package/build/events.d.ts.map +1 -1
  60. package/build/events.js +6 -5
  61. package/build/form.js +69 -27
  62. package/build/history-expo.js +11 -6
  63. package/build/history-react-native.js +14 -9
  64. package/build/history.js +5 -3
  65. package/build/index.js +5 -2
  66. package/build/inputs/attachment.js +29 -24
  67. package/build/inputs/auto-submit.js +42 -6
  68. package/build/inputs/checkbox.js +73 -35
  69. package/build/inputs/checkboxes.js +68 -30
  70. package/build/inputs/id-for-component.js +39 -3
  71. package/build/inputs/input-wrapper.js +12 -7
  72. package/build/inputs/input.js +101 -62
  73. package/build/inputs/money.js +85 -47
  74. package/build/inputs/name-for-component.js +39 -3
  75. package/build/inputs/select.js +32 -26
  76. package/build/instance-of-class-name.js +7 -5
  77. package/build/is-expo.js +8 -6
  78. package/build/key-value-store.js +10 -4
  79. package/build/link.js +21 -16
  80. package/build/logger.js +5 -2
  81. package/build/merge-styles.js +7 -4
  82. package/build/modal.js +15 -10
  83. package/build/model-class-require.js +39 -4
  84. package/build/model-events.js +20 -14
  85. package/build/model-name.js +44 -5
  86. package/build/model-prop-type.js +15 -9
  87. package/build/model-recipes-loader.js +14 -8
  88. package/build/model-recipes-model-loader.d.ts +1 -1
  89. package/build/model-recipes-model-loader.js +57 -18
  90. package/build/models-response-reader.js +46 -7
  91. package/build/models.js +10 -5
  92. package/build/money-formatter.d.ts +2 -2
  93. package/build/money-formatter.d.ts.map +1 -1
  94. package/build/money-formatter.js +19 -13
  95. package/build/not-loaded-error.js +5 -2
  96. package/build/params.js +19 -13
  97. package/build/preloaded.js +44 -5
  98. package/build/resize-observer.js +11 -6
  99. package/build/rest-props-validator.js +4 -2
  100. package/build/result.js +5 -2
  101. package/build/router/route.js +82 -40
  102. package/build/router/switch.js +56 -17
  103. package/build/router.js +59 -21
  104. package/build/routes-native.js +54 -15
  105. package/build/routes.js +49 -13
  106. package/build/run-last.js +5 -2
  107. package/build/serializer.js +8 -5
  108. package/build/services.js +10 -4
  109. package/build/session-status-updater.js +53 -14
  110. package/build/source-maps-loader.js +50 -11
  111. package/build/super-admin/config-reader.d.ts +2 -2
  112. package/build/super-admin/config-reader.js +45 -9
  113. package/build/super-admin/edit-page/edit-attribute-checkbox.js +61 -23
  114. package/build/super-admin/edit-page/edit-attribute-content.js +21 -16
  115. package/build/super-admin/edit-page/edit-attribute-input.js +59 -21
  116. package/build/super-admin/edit-page/edit-attribute.js +65 -27
  117. package/build/super-admin/edit-page.js +72 -34
  118. package/build/super-admin/has-edit-config.js +9 -4
  119. package/build/super-admin/index-page.js +17 -12
  120. package/build/super-admin/index.js +84 -46
  121. package/build/super-admin/layout/header/index.js +63 -25
  122. package/build/super-admin/layout/index.js +78 -40
  123. package/build/super-admin/layout/menu/index.js +47 -42
  124. package/build/super-admin/layout/menu/menu-content.js +60 -22
  125. package/build/super-admin/layout/menu/menu-item.js +23 -18
  126. package/build/super-admin/layout/no-access.js +20 -15
  127. package/build/super-admin/model-class-table.js +64 -26
  128. package/build/super-admin/models.js +38 -3
  129. package/build/super-admin/show-nav.js +61 -23
  130. package/build/super-admin/show-page/belongs-to-attribute-row.js +52 -14
  131. package/build/super-admin/show-page/index.js +63 -25
  132. package/build/super-admin/show-reflection-actions.js +62 -24
  133. package/build/super-admin/show-reflection-link.js +19 -14
  134. package/build/super-admin/show-reflection-page.js +63 -25
  135. package/build/table/column-content.js +54 -15
  136. package/build/table/column-identifier.js +5 -2
  137. package/build/table/column-visible.js +5 -2
  138. package/build/table/components/column.js +14 -9
  139. package/build/table/components/flat-list.js +14 -9
  140. package/build/table/components/header.js +16 -11
  141. package/build/table/components/row.js +16 -11
  142. package/build/table/filters/attribute-element.js +26 -21
  143. package/build/table/filters/filter-form.js +109 -71
  144. package/build/table/filters/filter.js +29 -24
  145. package/build/table/filters/index.js +43 -38
  146. package/build/table/filters/load-search-modal.js +64 -26
  147. package/build/table/filters/reflection-element.js +22 -17
  148. package/build/table/filters/save-search-modal.js +27 -22
  149. package/build/table/filters/scope-element.js +19 -14
  150. package/build/table/header-column-content.js +27 -22
  151. package/build/table/header-column.js +71 -33
  152. package/build/table/header-select.js +29 -24
  153. package/build/table/model-callback-args.js +39 -3
  154. package/build/table/model-column.js +75 -37
  155. package/build/table/model-row.js +79 -41
  156. package/build/table/select-calculator.js +52 -13
  157. package/build/table/settings/column-row.js +57 -19
  158. package/build/table/settings/download-action.js +31 -26
  159. package/build/table/settings/index.js +61 -23
  160. package/build/table/table-settings.js +70 -31
  161. package/build/table/table.js +196 -158
  162. package/build/table/use-sorting.js +12 -6
  163. package/build/table/widths.js +12 -9
  164. package/build/table/worker-plugins-check-all-checkbox.js +64 -26
  165. package/build/table/worker-plugins-checkbox.js +61 -23
  166. package/build/translated-attributes.js +5 -2
  167. package/build/translated-collections.js +14 -8
  168. package/build/updated-attribute.js +21 -15
  169. package/build/url-encode.js +10 -4
  170. package/build/use-breakpoint.js +58 -20
  171. package/build/use-can-can.js +21 -15
  172. package/build/use-collection.js +70 -32
  173. package/build/use-created-event.js +27 -22
  174. package/build/use-current-user-context.js +74 -36
  175. package/build/use-current-user.d.ts +2 -2
  176. package/build/use-current-user.d.ts.map +1 -1
  177. package/build/use-current-user.js +17 -11
  178. package/build/use-destroyed-event.js +18 -13
  179. package/build/use-event-emitter.js +13 -7
  180. package/build/use-event-listener.js +12 -7
  181. package/build/use-input.js +33 -28
  182. package/build/use-model-event.js +18 -13
  183. package/build/use-model.d.ts +26 -20
  184. package/build/use-model.d.ts.map +1 -1
  185. package/build/use-model.js +76 -35
  186. package/build/use-resize-observer.js +13 -8
  187. package/build/use-router.js +62 -24
  188. package/build/use-screen-layout.js +7 -5
  189. package/build/use-styles.js +52 -13
  190. package/build/use-updated-event.js +18 -13
  191. package/build/use-validation-errors.js +14 -9
  192. package/build/utils/button.js +33 -28
  193. package/build/utils/card.js +61 -23
  194. package/build/utils/checkbox.js +60 -22
  195. package/build/utils/checkboxes.js +78 -40
  196. package/build/utils/default-style.js +56 -15
  197. package/build/utils/header.js +12 -7
  198. package/build/utils/icon.js +61 -23
  199. package/build/utils/invalid-feedback.js +17 -12
  200. package/build/utils/modal.js +55 -17
  201. package/build/utils/text.js +14 -9
  202. package/build/validation-error.js +45 -6
  203. package/build/validation-errors.js +59 -19
  204. package/build/with-api-maker.js +52 -12
  205. package/build/with-collection.js +50 -12
  206. package/build/with-current-user.js +12 -7
  207. package/build/with-model.js +14 -9
  208. package/build/with-router.js +12 -7
  209. package/package.json +4 -3
  210. package/build/source-maps-loader.d.ts +0 -37
  211. package/build/source-maps-loader.d.ts.map +0 -1
@@ -1,10 +1,15 @@
1
- import { dig, digg } from "diggerize";
2
- import { useCallback, useEffect, useMemo, useRef } from "react";
3
- import idForComponent from "./inputs/id-for-component.js";
4
- import nameForComponent from "./inputs/name-for-component.js";
5
- import strftime from "strftime";
6
- import useShape from "set-state-compare/build/use-shape.js";
7
- import useValidationErrors from "./use-validation-errors.js";
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const diggerize_1 = require("diggerize");
7
+ const react_1 = require("react");
8
+ const id_for_component_js_1 = __importDefault(require("./inputs/id-for-component.js"));
9
+ const name_for_component_js_1 = __importDefault(require("./inputs/name-for-component.js"));
10
+ const strftime_1 = __importDefault(require("strftime"));
11
+ const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
12
+ const use_validation_errors_js_1 = __importDefault(require("./use-validation-errors.js"));
8
13
  /**
9
14
  * @param {object} args
10
15
  * @param {object} args.props
@@ -22,18 +27,18 @@ const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
22
27
  if (useInputRestPropsKeys.length > 0) {
23
28
  throw new Error(`Unknown props given to useInput: ${useInputRestPropsKeys.join(", ")}`);
24
29
  }
25
- const s = useShape(props);
26
- const backupRef = useRef();
30
+ const s = (0, use_shape_js_1.default)(props);
31
+ const backupRef = (0, react_1.useRef)();
27
32
  s.useStates({
28
33
  form: undefined
29
34
  });
30
- useEffect(() => {
35
+ (0, react_1.useEffect)(() => {
31
36
  setForm();
32
37
  }, [s.props.inputRef?.current]);
33
38
  s.meta.fakeComponent = { props };
34
39
  s.meta.isCheckbox = props.type == "checkbox" || wrapperOptions?.type == "checkbox";
35
40
  s.meta.isSelect = wrapperOptions?.type == "select";
36
- const formatValue = useCallback((value) => {
41
+ const formatValue = (0, react_1.useCallback)((value) => {
37
42
  const { formatValue } = s.props;
38
43
  if (formatValue) {
39
44
  return formatValue(value);
@@ -41,15 +46,15 @@ const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
41
46
  else if (value instanceof Date && !isNaN(value.getTime())) {
42
47
  // We need to use a certain format for datetime-local
43
48
  if (inputType() == "datetime-local") {
44
- return strftime("%Y-%m-%dT%H:%M:%S", value);
49
+ return (0, strftime_1.default)("%Y-%m-%dT%H:%M:%S", value);
45
50
  }
46
51
  else if (inputType() == "date") {
47
- return strftime("%Y-%m-%d", value);
52
+ return (0, strftime_1.default)("%Y-%m-%d", value);
48
53
  }
49
54
  }
50
55
  return value;
51
56
  }, []);
52
- const inputDefaultChecked = useCallback(() => {
57
+ const inputDefaultChecked = (0, react_1.useCallback)(() => {
53
58
  if ("defaultChecked" in s.props) {
54
59
  return s.props.defaultChecked;
55
60
  }
@@ -59,19 +64,19 @@ const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
59
64
  return s.props.model[s.props.attribute]();
60
65
  }
61
66
  }, []);
62
- const inputDefaultValue = useCallback(() => {
67
+ const inputDefaultValue = (0, react_1.useCallback)(() => {
63
68
  if ("defaultValue" in s.props) {
64
69
  return formatValue(s.props.defaultValue);
65
70
  }
66
71
  else if (s.props.model && s.props.attribute) {
67
72
  if (!s.props.model[s.props.attribute]) {
68
- throw new Error(`No such attribute defined on resource: ${digg(s.props.model.modelClassData(), "name")}#${s.props.attribute}`);
73
+ throw new Error(`No such attribute defined on resource: ${(0, diggerize_1.digg)(s.props.model.modelClassData(), "name")}#${s.props.attribute}`);
69
74
  }
70
75
  return formatValue(s.props.model[s.props.attribute]());
71
76
  }
72
77
  }, []);
73
- const inputRef = useCallback(() => s.props.inputRef || backupRef);
74
- const inputType = useCallback(() => {
78
+ const inputRef = (0, react_1.useCallback)(() => s.props.inputRef || backupRef);
79
+ const inputType = (0, react_1.useCallback)(() => {
75
80
  if ("type" in s.props) {
76
81
  return s.props.type;
77
82
  }
@@ -82,7 +87,7 @@ const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
82
87
  return "text";
83
88
  }
84
89
  }, []);
85
- const label = useCallback(() => {
90
+ const label = (0, react_1.useCallback)(() => {
86
91
  if ("label" in s.props) {
87
92
  return s.props.label;
88
93
  }
@@ -90,17 +95,17 @@ const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
90
95
  return s.props.model.modelClass().humanAttributeName(s.props.attribute);
91
96
  }
92
97
  }, []);
93
- const setForm = useCallback(() => {
98
+ const setForm = (0, react_1.useCallback)(() => {
94
99
  const inputElement = inputRef().current;
95
100
  let form;
96
101
  if (inputElement)
97
- form = dig(inputElement, "form");
102
+ form = (0, diggerize_1.dig)(inputElement, "form");
98
103
  if (form && form != s.s.form)
99
104
  s.set({ form });
100
105
  }, []);
101
- const getId = useCallback(() => idForComponent(s.m.fakeComponent), []);
102
- const getName = useCallback(() => nameForComponent(s.m.fakeComponent), []);
103
- const getInputProps = useCallback(() => {
106
+ const getId = (0, react_1.useCallback)(() => (0, id_for_component_js_1.default)(s.m.fakeComponent), []);
107
+ const getName = (0, react_1.useCallback)(() => (0, name_for_component_js_1.default)(s.m.fakeComponent), []);
108
+ const getInputProps = (0, react_1.useCallback)(() => {
104
109
  const givenInputProps = s.props.inputProps || {};
105
110
  const inputProps = Object.assign({
106
111
  id: getId(),
@@ -126,12 +131,12 @@ const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
126
131
  const { inputProps: oldInputProps, wrapperOpts: oldWrapperOpts, ...restProps } = props;
127
132
  const type = inputType();
128
133
  s.meta.inputProps = getInputProps();
129
- s.meta.inputNameWithoutId = useMemo(() => s.m.inputProps.name?.replace(/\[(.+)_id\]$/, "[$1]"), [s.m.inputProps.name]);
134
+ s.meta.inputNameWithoutId = (0, react_1.useMemo)(() => s.m.inputProps.name?.replace(/\[(.+)_id\]$/, "[$1]"), [s.m.inputProps.name]);
130
135
  if (!s.m.inputProps.ref)
131
136
  throw new Error("No input ref?");
132
137
  if (!s.m.isSelect)
133
138
  s.m.inputProps.type = type;
134
- const { validationErrors } = useValidationErrors((validationError) => validationError.inputName &&
139
+ const { validationErrors } = (0, use_validation_errors_js_1.default)((validationError) => validationError.inputName &&
135
140
  s.m.inputProps.name &&
136
141
  (validationError.inputName == s.m.inputProps.name || validationError.inputName == s.m.inputNameWithoutId));
137
142
  const wrapperOpts = {
@@ -145,5 +150,5 @@ const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
145
150
  restProps
146
151
  };
147
152
  };
148
- export default useInput;
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWlucHV0LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtaW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUM3RCxPQUFPLGNBQWMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN6RCxPQUFPLGdCQUFnQixNQUFNLGdDQUFnQyxDQUFBO0FBQzdELE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQTtBQUMvQixPQUFPLFFBQVEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUMzRCxPQUFPLG1CQUFtQixNQUFNLDRCQUE0QixDQUFBO0FBRTVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsR0FBRyxpQkFBaUIsRUFBQyxFQUFFLEVBQUU7SUFDakUsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFNUQsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN6RixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFBO0lBRTFCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDVixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDLEVBQUUsQ0FBQyxD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QUFDLFFBQVE7UUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO0lBRTdDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxHQUFHLG1CQUFtQixDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDakUsZUFBZSxDQUFDLFNBQVM7UUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUNuQixDQUFDLGVBQWUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUM1RyxDQUFBO0lBRUQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2QsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUNmLENBQUE7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUMxQixXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxlQUFlLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnLCBkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGlkRm9yQ29tcG9uZW50IGZyb20gXCIuL2lucHV0cy9pZC1mb3ItY29tcG9uZW50LmpzXCJcbmltcG9ydCBuYW1lRm9yQ29tcG9uZW50IGZyb20gXCIuL2lucHV0cy9uYW1lLWZvci1jb21wb25lbnQuanNcIlxuaW1wb3J0IHN0cmZ0aW1lIGZyb20gXCJzdHJmdGltZVwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5pbXBvcnQgdXNlVmFsaWRhdGlvbkVycm9ycyBmcm9tIFwiLi91c2UtdmFsaWRhdGlvbi1lcnJvcnMuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncy5wcm9wc1xuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MucHJvcHMuaW5wdXRSZWZcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnByb3BzLnR5cGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzLnByb3BzLmlucHV0UHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnByb3BzLmlucHV0UHJvcHMubmFtZVxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MucHJvcHMuaW5wdXRQcm9wcy53cmFwcGVyT3B0c1xuICogQHBhcmFtIHtvYmplY3R9IGFyZ3Mud3JhcHBlck9wdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLndyYXBwZXJPcHRpb25zLnR5cGVcbiAqIEByZXR1cm5zIHt7aW5wdXRQcm9wczogb2JqZWN0LCB3cmFwcGVyT3B0czogb2JqZWN0LCByZXN0UHJvcHM6IG9iamVjdH19XG4gKi9cbmNvbnN0IHVzZUlucHV0ID0gKHtwcm9wcywgd3JhcHBlck9wdGlvbnMsIC4uLnVzZUlucHV0UmVzdFByb3BzfSkgPT4ge1xuICBjb25zdCB1c2VJbnB1dFJlc3RQcm9wc0tleXMgPSBPYmplY3Qua2V5cyh1c2VJbnB1dFJlc3RQcm9wcylcblxuICBpZiAodXNlSW5wdXRSZXN0UHJvcHNLZXlzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvcHMgZ2l2ZW4gdG8gdXNlSW5wdXQ6ICR7dXNlSW5wdXRSZXN0UHJvcHNLZXlzLmpvaW4oXCIsIFwiKX1gKVxuICB9XG5cbiAgY29uc3QgcyA9IHVzZVNoYXBlKHByb3BzKVxuICBjb25zdCBiYWNrdXBSZWYgPSB1c2VSZWYoKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBmb3JtOiB1bmRlZmluZWRcbiAgfSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEZvcm0oKVxuICB9LCBbcy5wcm9wcy5pbnB1dFJlZj8uY3VycmVudF0pXG5cbiAgcy5tZXRhLmZha2VDb21wb25lbnQgPSB7cHJvcHN9XG4gIHMubWV0YS5pc0NoZWNrYm94ID0gcHJvcHMudHlwZSA9PSBcImNoZWNrYm94XCIgfHwgd3JhcHBlck9wdGlvbnM/LnR5cGUgPT0gXCJjaGVja2JveFwiXG4gIHMubWV0YS5pc1NlbGVjdCA9IHdyYXBwZXJPcHRpb25zPy50eXBlID09IFwic2VsZWN0XCJcblxuICBjb25zdCBmb3JtYXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHtmb3JtYXRWYWx1ZX0gPSBzLnByb3BzXG5cbiAgICBpZiAoZm9ybWF0VmFsdWUpIHtcbiAgICAgIHJldHVybiBmb3JtYXRWYWx1ZSh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkge1xuICAgICAgLy8gV2UgbmVlZCB0byB1c2UgYSBjZXJ0YWluIGZvcm1hdCBmb3IgZGF0ZXRpbWUtbG9jYWxcbiAgICAgIGlmIChpbnB1dFR5cGUoKSA9PSBcImRhdGV0aW1lLWxvY2FsXCIpIHtcbiAgICAgICAgcmV0dXJuIHN0cmZ0aW1lKFwiJVktJW0tJWRUJUg6JU06JVNcIiwgdmFsdWUpXG4gICAgICB9IGVsc2UgaWYgKGlucHV0VHlwZSgpID09IFwiZGF0ZVwiKSB7XG4gICAgICAgIHJldHVybiBzdHJmdGltZShcIiVZLSVtLSVkXCIsIHZhbHVlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9LCBbXSlcblxuICBjb25zdCBpbnB1dERlZmF1bHRDaGVja2VkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChcImRlZmF1bHRDaGVja2VkXCIgaW4gcy5wcm9wcykge1xuICAgICAgcmV0dXJuIHMucHJvcHMuZGVmYXVsdENoZWNrZWRcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMuYXR0cmlidXRlICYmIHMucHJvcHMubW9kZWwpIHtcbiAgICAgIGlmICghcy5wcm9wcy5tb2RlbFtzLnByb3BzLmF0dHJpYnV0ZV0pXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBhdHRyaWJ1dGU6ICR7cy5wcm9wcy5hdHRyaWJ1dGV9YClcblxuICAgICAgcmV0dXJuIHMucHJvcHMubW9kZWxbcy5wcm9wcy5hdHRyaWJ1dGVdKClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGlucHV0RGVmYXVsdFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChcImRlZmF1bHRWYWx1ZVwiIGluIHMucHJvcHMpIHtcbiAgICAgIHJldHVybiBmb3JtYXRWYWx1ZShzLnByb3BzLmRlZmF1bHRWYWx1ZSlcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubW9kZWwgJiYgcy5wcm9wcy5hdHRyaWJ1dGUpIHtcbiAgICAgIGlmICghcy5wcm9wcy5tb2RlbFtzLnByb3BzLmF0dHJpYnV0ZV0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIGF0dHJpYnV0ZSBkZWZpbmVkIG9uIHJlc291cmNlOiAke2RpZ2cocy5wcm9wcy5tb2RlbC5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIil9IyR7cy5wcm9wcy5hdHRyaWJ1dGV9YClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcm1hdFZhbHVlKHMucHJvcHMubW9kZWxbcy5wcm9wcy5hdHRyaWJ1dGVdKCkpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBpbnB1dFJlZiA9IHVzZUNhbGxiYWNrKCgpID0+IHMucHJvcHMuaW5wdXRSZWYgfHwgYmFja3VwUmVmKVxuXG4gIGNvbnN0IGlucHV0VHlwZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoXCJ0eXBlXCIgaW4gcy5wcm9wcykge1xuICAgICAgcmV0dXJuIHMucHJvcHMudHlwZVxuICAgIH0gZWxzZSBpZiAocy5tLmlzQ2hlY2tib3gpIHtcbiAgICAgIHJldHVybiBcImNoZWNrYm94XCJcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwidGV4dFwiXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBsYWJlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoXCJsYWJlbFwiIGluIHMucHJvcHMpIHtcbiAgICAgIHJldHVybiBzLnByb3BzLmxhYmVsXG4gICAgfSBlbHNlIGlmIChzLnByb3BzLmF0dHJpYnV0ZSAmJiBzLnByb3BzLm1vZGVsKSB7XG4gICAgICByZXR1cm4gcy5wcm9wcy5tb2RlbC5tb2RlbENsYXNzKCkuaHVtYW5BdHRyaWJ1dGVOYW1lKHMucHJvcHMuYXR0cmlidXRlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgc2V0Rm9ybSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBpbnB1dFJlZigpLmN1cnJlbnRcblxuICAgIGxldCBmb3JtXG5cbiAgICBpZiAoaW5wdXRFbGVtZW50KSBmb3JtID0gZGlnKGlucHV0RWxlbWVudCwgXCJmb3JtXCIpXG4gICAgaWYgKGZvcm0gJiYgZm9ybSAhPSBzLnMuZm9ybSkgcy5zZXQoe2Zvcm19KVxuICB9LCBbXSlcblxuICBjb25zdCBnZXRJZCA9IHVzZUNhbGxiYWNrKCgpID0+IGlkRm9yQ29tcG9uZW50KHMubS5mYWtlQ29tcG9uZW50KSwgW10pXG4gIGNvbnN0IGdldE5hbWUgPSB1c2VDYWxsYmFjaygoKSA9PiBuYW1lRm9yQ29tcG9uZW50KHMubS5mYWtlQ29tcG9uZW50KSwgW10pXG5cbiAgY29uc3QgZ2V0SW5wdXRQcm9wcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBnaXZlbklucHV0UHJvcHMgPSBzLnByb3BzLmlucHV0UHJvcHMgfHwge31cbiAgICBjb25zdCBpbnB1dFByb3BzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgaWQ6IGdldElkKCksXG4gICAgICAgIG5hbWU6IGdldE5hbWUoKSxcbiAgICAgICAgcmVmOiBpbnB1dFJlZigpXG4gICAgICB9LFxuICAgICAgZ2l2ZW5JbnB1dFByb3BzXG4gICAgKVxuXG4gICAgaWYgKHMubS5pc0NoZWNrYm94KSB7XG4gICAgICBpZiAoXCJjaGVja2VkXCIgaW4gcy5wcm9wcykge1xuICAgICAgICBpbnB1dFByb3BzLmNoZWNrZWQgPSBzLnByb3BzLmNoZWNrZWRcbiAgICAgIH1cblxuICAgICAgaWYgKFwiZGVmYXVsdENoZWNrZWRcIiBpbiBzLnByb3BzIHx8IChzLnByb3BzLmF0dHJpYnV0ZSAmJiBzLnByb3BzLm1vZGVsKSkge1xuICAgICAgICBpbnB1dFByb3BzLmRlZmF1bHRDaGVja2VkID0gaW5wdXREZWZhdWx0Q2hlY2tlZCgpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcInZhbHVlXCIgaW4gcy5wcm9wcykge1xuICAgICAgaW5wdXRQcm9wcy52YWx1ZSA9IHMucHJvcHMudmFsdWVcbiAgICB9IGVsc2UgaWYgKCEoXCJ2YWx1ZVwiIGluIHMucHJvcHMpKSB7XG4gICAgICBpbnB1dFByb3BzLmRlZmF1bHRWYWx1ZSA9IGlucHV0RGVmYXVsdFZhbHVlKClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXRQcm9wc1xuICB9LCBbXSlcblxuICBjb25zdCB7aW5wdXRQcm9wczogb2xkSW5wdXRQcm9wcywgd3JhcHBlck9wdHM6IG9sZFdyYXBwZXJPcHRzLCAuLi5yZXN0UHJvcHN9ID0gcHJvcHNcbiAgY29uc3QgdHlwZSA9IGlucHV0VHlwZSgpXG5cbiAgcy5tZXRhLmlucHV0UHJvcHMgPSBnZXRJbnB1dFByb3BzKClcbiAgcy5tZXRhLmlucHV0TmFtZVdpdGhvdXRJZCA9IHVzZU1lbW8oKCkgPT4gcy5tLmlucHV0UHJvcHMubmFtZT8ucmVwbGFjZSgvXFxbKC4rKV9pZFxcXSQvLCBcIlskMV1cIiksIFtzLm0uaW5wdXRQcm9wcy5uYW1lXSlcblxuICBpZiAoIXMubS5pbnB1dFByb3BzLnJlZikgdGhyb3cgbmV3IEVycm9yKFwiTm8gaW5wdXQgcmVmP1wiKVxuICBpZiAoIXMubS5pc1NlbGVjdCkgcy5tLmlucHV0UHJvcHMudHlwZSA9IHR5cGVcblxuICBjb25zdCB7dmFsaWRhdGlvbkVycm9yc30gPSB1c2VWYWxpZGF0aW9uRXJyb3JzKCh2YWxpZGF0aW9uRXJyb3IpID0+XG4gICAgdmFsaWRhdGlvbkVycm9yLmlucHV0TmFtZSAmJlxuICAgICAgcy5tLmlucHV0UHJvcHMubmFtZSAmJlxuICAgICAgKHZhbGlkYXRpb25FcnJvci5pbnB1dE5hbWUgPT0gcy5tLmlucHV0UHJvcHMubmFtZSB8fCB2YWxpZGF0aW9uRXJyb3IuaW5wdXROYW1lID09IHMubS5pbnB1dE5hbWVXaXRob3V0SWQpXG4gIClcblxuICBjb25zdCB3cmFwcGVyT3B0cyA9IHtcbiAgICBlcnJvcnM6IHZhbGlkYXRpb25FcnJvcnMsXG4gICAgZm9ybTogcy5zLmZvcm0sXG4gICAgbGFiZWw6IGxhYmVsKClcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaW5wdXRQcm9wczogcy5tLmlucHV0UHJvcHMsXG4gICAgd3JhcHBlck9wdHMsXG4gICAgcmVzdFByb3BzXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlSW5wdXRcbiJdfQ==
153
+ exports.default = useInput;
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWlucHV0LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtaW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FBbUM7QUFDbkMsaUNBQTZEO0FBQzdELHVGQUF5RDtBQUN6RCwyRkFBNkQ7QUFDN0Qsd0RBQStCO0FBQy9CLHdGQUEyRDtBQUMzRCwwRkFBNEQ7QUFFNUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLGlCQUFpQixFQUFDLEVBQUUsRUFBRTtJQUNqRSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUU1RCxJQUFJLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3pGLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxJQUFBLHNCQUFRLEVBQUMsS0FBSyxDQUFDLENBQUE7SUFDekIsTUFBTSxTQUFTLEdBQUcsSUFBQSxjQUFNLEdBQUUsQ0FBQTtJQUUxQixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ1YsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQyxDQUFBO0lBRUYsSUFBQSxpQkFBUyxFQUFDLEdBQUcsRUFBRTtRQUNiLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUUvQixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFDLEtBQUssRUFBQyxDQUFBO0lBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksVUFBVSxJQUFJLGNBQWMs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QUMsZ0JBQWdCLEVBQUMsR0FBRyxJQUFBLGtDQUFtQixFQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDakUsZUFBZSxDQUFDLFNBQVM7UUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUNuQixDQUFDLGVBQWUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUM1RyxDQUFBO0lBRUQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2QsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUNmLENBQUE7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUMxQixXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxrQkFBZSxRQUFRLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RpZywgZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBpZEZvckNvbXBvbmVudCBmcm9tIFwiLi9pbnB1dHMvaWQtZm9yLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgbmFtZUZvckNvbXBvbmVudCBmcm9tIFwiLi9pbnB1dHMvbmFtZS1mb3ItY29tcG9uZW50LmpzXCJcbmltcG9ydCBzdHJmdGltZSBmcm9tIFwic3RyZnRpbWVcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuaW1wb3J0IHVzZVZhbGlkYXRpb25FcnJvcnMgZnJvbSBcIi4vdXNlLXZhbGlkYXRpb24tZXJyb3JzLmpzXCJcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MucHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzLnByb3BzLmlucHV0UmVmXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5wcm9wcy50eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncy5wcm9wcy5pbnB1dFByb3BzXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5wcm9wcy5pbnB1dFByb3BzLm5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzLnByb3BzLmlucHV0UHJvcHMud3JhcHBlck9wdHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzLndyYXBwZXJPcHRpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy53cmFwcGVyT3B0aW9ucy50eXBlXG4gKiBAcmV0dXJucyB7e2lucHV0UHJvcHM6IG9iamVjdCwgd3JhcHBlck9wdHM6IG9iamVjdCwgcmVzdFByb3BzOiBvYmplY3R9fVxuICovXG5jb25zdCB1c2VJbnB1dCA9ICh7cHJvcHMsIHdyYXBwZXJPcHRpb25zLCAuLi51c2VJbnB1dFJlc3RQcm9wc30pID0+IHtcbiAgY29uc3QgdXNlSW5wdXRSZXN0UHJvcHNLZXlzID0gT2JqZWN0LmtleXModXNlSW5wdXRSZXN0UHJvcHMpXG5cbiAgaWYgKHVzZUlucHV0UmVzdFByb3BzS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIHVzZUlucHV0OiAke3VzZUlucHV0UmVzdFByb3BzS2V5cy5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShwcm9wcylcbiAgY29uc3QgYmFja3VwUmVmID0gdXNlUmVmKClcblxuICBzLnVzZVN0YXRlcyh7XG4gICAgZm9ybTogdW5kZWZpbmVkXG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRGb3JtKClcbiAgfSwgW3MucHJvcHMuaW5wdXRSZWY/LmN1cnJlbnRdKVxuXG4gIHMubWV0YS5mYWtlQ29tcG9uZW50ID0ge3Byb3BzfVxuICBzLm1ldGEuaXNDaGVja2JveCA9IHByb3BzLnR5cGUgPT0gXCJjaGVja2JveFwiIHx8IHdyYXBwZXJPcHRpb25zPy50eXBlID09IFwiY2hlY2tib3hcIlxuICBzLm1ldGEuaXNTZWxlY3QgPSB3cmFwcGVyT3B0aW9ucz8udHlwZSA9PSBcInNlbGVjdFwiXG5cbiAgY29uc3QgZm9ybWF0VmFsdWUgPSB1c2VDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICBjb25zdCB7Zm9ybWF0VmFsdWV9ID0gcy5wcm9wc1xuXG4gICAgaWYgKGZvcm1hdFZhbHVlKSB7XG4gICAgICByZXR1cm4gZm9ybWF0VmFsdWUodmFsdWUpXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gdXNlIGEgY2VydGFpbiBmb3JtYXQgZm9yIGRhdGV0aW1lLWxvY2FsXG4gICAgICBpZiAoaW5wdXRUeXBlKCkgPT0gXCJkYXRldGltZS1sb2NhbFwiKSB7XG4gICAgICAgIHJldHVybiBzdHJmdGltZShcIiVZLSVtLSVkVCVIOiVNOiVTXCIsIHZhbHVlKVxuICAgICAgfSBlbHNlIGlmIChpbnB1dFR5cGUoKSA9PSBcImRhdGVcIikge1xuICAgICAgICByZXR1cm4gc3RyZnRpbWUoXCIlWS0lbS0lZFwiLCB2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfSwgW10pXG5cbiAgY29uc3QgaW5wdXREZWZhdWx0Q2hlY2tlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoXCJkZWZhdWx0Q2hlY2tlZFwiIGluIHMucHJvcHMpIHtcbiAgICAgIHJldHVybiBzLnByb3BzLmRlZmF1bHRDaGVja2VkXG4gICAgfSBlbHNlIGlmIChzLnByb3BzLmF0dHJpYnV0ZSAmJiBzLnByb3BzLm1vZGVsKSB7XG4gICAgICBpZiAoIXMucHJvcHMubW9kZWxbcy5wcm9wcy5hdHRyaWJ1dGVdKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggYXR0cmlidXRlOiAke3MucHJvcHMuYXR0cmlidXRlfWApXG5cbiAgICAgIHJldHVybiBzLnByb3BzLm1vZGVsW3MucHJvcHMuYXR0cmlidXRlXSgpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBpbnB1dERlZmF1bHRWYWx1ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoXCJkZWZhdWx0VmFsdWVcIiBpbiBzLnByb3BzKSB7XG4gICAgICByZXR1cm4gZm9ybWF0VmFsdWUocy5wcm9wcy5kZWZhdWx0VmFsdWUpXG4gICAgfSBlbHNlIGlmIChzLnByb3BzLm1vZGVsICYmIHMucHJvcHMuYXR0cmlidXRlKSB7XG4gICAgICBpZiAoIXMucHJvcHMubW9kZWxbcy5wcm9wcy5hdHRyaWJ1dGVdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBhdHRyaWJ1dGUgZGVmaW5lZCBvbiByZXNvdXJjZTogJHtkaWdnKHMucHJvcHMubW9kZWwubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpfSMke3MucHJvcHMuYXR0cmlidXRlfWApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmb3JtYXRWYWx1ZShzLnByb3BzLm1vZGVsW3MucHJvcHMuYXR0cmlidXRlXSgpKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VDYWxsYmFjaygoKSA9PiBzLnByb3BzLmlucHV0UmVmIHx8IGJhY2t1cFJlZilcblxuICBjb25zdCBpbnB1dFR5cGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKFwidHlwZVwiIGluIHMucHJvcHMpIHtcbiAgICAgIHJldHVybiBzLnByb3BzLnR5cGVcbiAgICB9IGVsc2UgaWYgKHMubS5pc0NoZWNrYm94KSB7XG4gICAgICByZXR1cm4gXCJjaGVja2JveFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcInRleHRcIlxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgbGFiZWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKFwibGFiZWxcIiBpbiBzLnByb3BzKSB7XG4gICAgICByZXR1cm4gcy5wcm9wcy5sYWJlbFxuICAgIH0gZWxzZSBpZiAocy5wcm9wcy5hdHRyaWJ1dGUgJiYgcy5wcm9wcy5tb2RlbCkge1xuICAgICAgcmV0dXJuIHMucHJvcHMubW9kZWwubW9kZWxDbGFzcygpLmh1bWFuQXR0cmlidXRlTmFtZShzLnByb3BzLmF0dHJpYnV0ZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNldEZvcm0gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXRSZWYoKS5jdXJyZW50XG5cbiAgICBsZXQgZm9ybVxuXG4gICAgaWYgKGlucHV0RWxlbWVudCkgZm9ybSA9IGRpZyhpbnB1dEVsZW1lbnQsIFwiZm9ybVwiKVxuICAgIGlmIChmb3JtICYmIGZvcm0gIT0gcy5zLmZvcm0pIHMuc2V0KHtmb3JtfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0SWQgPSB1c2VDYWxsYmFjaygoKSA9PiBpZEZvckNvbXBvbmVudChzLm0uZmFrZUNvbXBvbmVudCksIFtdKVxuICBjb25zdCBnZXROYW1lID0gdXNlQ2FsbGJhY2soKCkgPT4gbmFtZUZvckNvbXBvbmVudChzLm0uZmFrZUNvbXBvbmVudCksIFtdKVxuXG4gIGNvbnN0IGdldElucHV0UHJvcHMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgZ2l2ZW5JbnB1dFByb3BzID0gcy5wcm9wcy5pbnB1dFByb3BzIHx8IHt9XG4gICAgY29uc3QgaW5wdXRQcm9wcyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIGlkOiBnZXRJZCgpLFxuICAgICAgICBuYW1lOiBnZXROYW1lKCksXG4gICAgICAgIHJlZjogaW5wdXRSZWYoKVxuICAgICAgfSxcbiAgICAgIGdpdmVuSW5wdXRQcm9wc1xuICAgIClcblxuICAgIGlmIChzLm0uaXNDaGVja2JveCkge1xuICAgICAgaWYgKFwiY2hlY2tlZFwiIGluIHMucHJvcHMpIHtcbiAgICAgICAgaW5wdXRQcm9wcy5jaGVja2VkID0gcy5wcm9wcy5jaGVja2VkXG4gICAgICB9XG5cbiAgICAgIGlmIChcImRlZmF1bHRDaGVja2VkXCIgaW4gcy5wcm9wcyB8fCAocy5wcm9wcy5hdHRyaWJ1dGUgJiYgcy5wcm9wcy5tb2RlbCkpIHtcbiAgICAgICAgaW5wdXRQcm9wcy5kZWZhdWx0Q2hlY2tlZCA9IGlucHV0RGVmYXVsdENoZWNrZWQoKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXCJ2YWx1ZVwiIGluIHMucHJvcHMpIHtcbiAgICAgIGlucHV0UHJvcHMudmFsdWUgPSBzLnByb3BzLnZhbHVlXG4gICAgfSBlbHNlIGlmICghKFwidmFsdWVcIiBpbiBzLnByb3BzKSkge1xuICAgICAgaW5wdXRQcm9wcy5kZWZhdWx0VmFsdWUgPSBpbnB1dERlZmF1bHRWYWx1ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0UHJvcHNcbiAgfSwgW10pXG5cbiAgY29uc3Qge2lucHV0UHJvcHM6IG9sZElucHV0UHJvcHMsIHdyYXBwZXJPcHRzOiBvbGRXcmFwcGVyT3B0cywgLi4ucmVzdFByb3BzfSA9IHByb3BzXG4gIGNvbnN0IHR5cGUgPSBpbnB1dFR5cGUoKVxuXG4gIHMubWV0YS5pbnB1dFByb3BzID0gZ2V0SW5wdXRQcm9wcygpXG4gIHMubWV0YS5pbnB1dE5hbWVXaXRob3V0SWQgPSB1c2VNZW1vKCgpID0+IHMubS5pbnB1dFByb3BzLm5hbWU/LnJlcGxhY2UoL1xcWyguKylfaWRcXF0kLywgXCJbJDFdXCIpLCBbcy5tLmlucHV0UHJvcHMubmFtZV0pXG5cbiAgaWYgKCFzLm0uaW5wdXRQcm9wcy5yZWYpIHRocm93IG5ldyBFcnJvcihcIk5vIGlucHV0IHJlZj9cIilcbiAgaWYgKCFzLm0uaXNTZWxlY3QpIHMubS5pbnB1dFByb3BzLnR5cGUgPSB0eXBlXG5cbiAgY29uc3Qge3ZhbGlkYXRpb25FcnJvcnN9ID0gdXNlVmFsaWRhdGlvbkVycm9ycygodmFsaWRhdGlvbkVycm9yKSA9PlxuICAgIHZhbGlkYXRpb25FcnJvci5pbnB1dE5hbWUgJiZcbiAgICAgIHMubS5pbnB1dFByb3BzLm5hbWUgJiZcbiAgICAgICh2YWxpZGF0aW9uRXJyb3IuaW5wdXROYW1lID09IHMubS5pbnB1dFByb3BzLm5hbWUgfHwgdmFsaWRhdGlvbkVycm9yLmlucHV0TmFtZSA9PSBzLm0uaW5wdXROYW1lV2l0aG91dElkKVxuICApXG5cbiAgY29uc3Qgd3JhcHBlck9wdHMgPSB7XG4gICAgZXJyb3JzOiB2YWxpZGF0aW9uRXJyb3JzLFxuICAgIGZvcm06IHMucy5mb3JtLFxuICAgIGxhYmVsOiBsYWJlbCgpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlucHV0UHJvcHM6IHMubS5pbnB1dFByb3BzLFxuICAgIHdyYXBwZXJPcHRzLFxuICAgIHJlc3RQcm9wc1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZUlucHV0XG4iXX0=
@@ -1,7 +1,12 @@
1
- import { useCallback, useLayoutEffect, useMemo } from "react";
2
- import debounceFunction from "debounce";
3
- import ModelEvents from "./model-events.js";
4
- import useShape from "set-state-compare/build/use-shape.js";
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = require("react");
7
+ const debounce_1 = __importDefault(require("debounce"));
8
+ const model_events_js_1 = __importDefault(require("./model-events.js"));
9
+ const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
5
10
  /**
6
11
  * @param {import("./base-model.js").default} model
7
12
  * @param {string} event
@@ -17,17 +22,17 @@ const apiMakerUseModelEvent = (model, event, onCallback, props) => {
17
22
  if (Object.keys(restProps).length > 0) {
18
23
  throw new Error(`Unknown props given to apiMakerUseModelEvent: ${Object.keys(restProps).join(", ")}`);
19
24
  }
20
- const s = useShape({ active, debounce, model, onCallback });
21
- const debounceCallback = useMemo(() => {
25
+ const s = (0, use_shape_js_1.default)({ active, debounce, model, onCallback });
26
+ const debounceCallback = (0, react_1.useMemo)(() => {
22
27
  if (typeof debounce == "number") {
23
- return debounceFunction(s.p.onCallback, debounce);
28
+ return (0, debounce_1.default)(s.p.onCallback, debounce);
24
29
  }
25
30
  else {
26
- return debounceFunction(s.p.onCallback);
31
+ return (0, debounce_1.default)(s.p.onCallback);
27
32
  }
28
33
  }, [debounce]);
29
34
  s.updateMeta({ debounceCallback });
30
- const onCallbackCallback = useCallback((...args) => {
35
+ const onCallbackCallback = (0, react_1.useCallback)((...args) => {
31
36
  if (!s.p.active) {
32
37
  return;
33
38
  }
@@ -38,10 +43,10 @@ const apiMakerUseModelEvent = (model, event, onCallback, props) => {
38
43
  s.p.onCallback(...args);
39
44
  }
40
45
  }, []);
41
- useLayoutEffect(() => {
46
+ (0, react_1.useLayoutEffect)(() => {
42
47
  let connectEvent, onConnectedListener;
43
48
  if (model) {
44
- connectEvent = ModelEvents.connect(model, event, onCallbackCallback);
49
+ connectEvent = model_events_js_1.default.connect(model, event, onCallbackCallback);
45
50
  if (onConnected) {
46
51
  onConnectedListener = connectEvent.events.addListener("connected", onConnected);
47
52
  }
@@ -56,5 +61,5 @@ const apiMakerUseModelEvent = (model, event, onCallback, props) => {
56
61
  };
57
62
  }, [model?.id()]);
58
63
  };
59
- export default apiMakerUseModelEvent;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLWV2ZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwtZXZlbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQzNELE9BQU8sZ0JBQWdCLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sUUFBUSxNQUFNLHNDQUFzQyxDQUFBO0FBRTNEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEVBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsU0FBUyxFQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQTtJQUV4RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN2RyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtJQUV6RCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDcEMsSUFBSSxPQUFPLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3pDLENBQUM7SUFDSCxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBRWQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLGdCQUFnQixFQUFDLENBQUMsQ0FBQTtJQUVoQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDakQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTTtRQUNSLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sZUFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLFlBQVksRUFBRSxtQkFBbUIsQ0FBQTtRQUVyQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsWUFBWSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1lBRXBFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNqRixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixZQUFZLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUVELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUM1QixDQUFDO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuQixDQUFDLENBQUE7QUFFRCxlQUFlLHFCQUFxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGRlYm91bmNlRnVuY3Rpb24gZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IG1vZGVsXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uQ2FsbGJhY2tcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtvYmplY3R9IHByb3BzLmFjdGl2ZVxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLmRlYm91bmNlXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBwcm9wcy5vbkNvbm5lY3RlZFxuICogQHJldHVybiB7dm9pZH1cbiAqL1xuY29uc3QgYXBpTWFrZXJVc2VNb2RlbEV2ZW50ID0gKG1vZGVsLCBldmVudCwgb25DYWxsYmFjaywgcHJvcHMpID0+IHtcbiAgY29uc3Qge2FjdGl2ZSA9IHRydWUsIGRlYm91bmNlLCBvbkNvbm5lY3RlZCwgLi4ucmVzdFByb3BzfSA9IHByb3BzIHx8IHt9XG5cbiAgaWYgKE9iamVjdC5rZXlzKHJlc3RQcm9wcykubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9wcyBnaXZlbiB0byBhcGlNYWtlclVzZU1vZGVsRXZlbnQ6ICR7T2JqZWN0LmtleXMocmVzdFByb3BzKS5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZSh7YWN0aXZlLCBkZWJvdW5jZSwgbW9kZWwsIG9uQ2FsbGJhY2t9KVxuXG4gIGNvbnN0IGRlYm91bmNlQ2FsbGJhY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09IFwibnVtYmVyXCIpIHtcbiAgICAgIHJldHVybiBkZWJvdW5jZUZ1bmN0aW9uKHMucC5vbkNhbGxiYWNrLCBkZWJvdW5jZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24ocy5wLm9uQ2FsbGJhY2spXG4gICAgfVxuICB9LCBbZGVib3VuY2VdKVxuXG4gIHMudXBkYXRlTWV0YSh7ZGVib3VuY2VDYWxsYmFja30pXG5cbiAgY29uc3Qgb25DYWxsYmFja0NhbGxiYWNrID0gdXNlQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICBpZiAoIXMucC5hY3RpdmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzLnAuZGVib3VuY2UpIHtcbiAgICAgIHMubS5kZWJvdW5jZUNhbGxiYWNrKC4uLmFyZ3MpXG4gICAgfSBlbHNlIHtcbiAgICAgIHMucC5vbkNhbGxiYWNrKC4uLmFyZ3MpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb25uZWN0RXZlbnQsIG9uQ29ubmVjdGVkTGlzdGVuZXJcblxuICAgIGlmIChtb2RlbCkge1xuICAgICAgY29ubmVjdEV2ZW50ID0gTW9kZWxFdmVudHMuY29ubmVjdChtb2RlbCwgZXZlbnQsIG9uQ2FsbGJhY2tDYWxsYmFjaylcblxuICAgICAgaWYgKG9uQ29ubmVjdGVkKSB7XG4gICAgICAgIG9uQ29ubmVjdGVkTGlzdGVuZXIgPSBjb25uZWN0RXZlbnQuZXZlbnRzLmFkZExpc3RlbmVyKFwiY29ubmVjdGVkXCIsIG9uQ29ubmVjdGVkKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob25Db25uZWN0ZWRMaXN0ZW5lcikge1xuICAgICAgICBjb25uZWN0RXZlbnQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFwiY29ubmVjdGVkXCIsIG9uQ29ubmVjdGVkKVxuICAgICAgfVxuXG4gICAgICBpZiAoY29ubmVjdEV2ZW50KSB7XG4gICAgICAgIGNvbm5lY3RFdmVudC51bnN1YnNjcmliZSgpXG4gICAgICB9XG4gICAgfVxuICB9LCBbbW9kZWw/LmlkKCldKVxufVxuXG5leHBvcnQgZGVmYXVsdCBhcGlNYWtlclVzZU1vZGVsRXZlbnRcbiJdfQ==
64
+ exports.default = apiMakerUseModelEvent;
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLWV2ZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwtZXZlbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBMkQ7QUFDM0Qsd0RBQXVDO0FBQ3ZDLHdFQUEyQztBQUMzQyx3RkFBMkQ7QUFFM0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQ2hFLE1BQU0sRUFBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEVBQUMsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFBO0lBRXhFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZHLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxJQUFBLHNCQUFRLEVBQUMsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSxlQUFPLEVBQUMsR0FBRyxFQUFFO1FBQ3BDLElBQUksT0FBTyxRQUFRLElBQUksUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFBLGtCQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFBLGtCQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNILENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFFZCxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUMsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO0lBRWhDLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxtQkFBVyxFQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixJQUFBLHVCQUFlLEVBQUMsR0FBRyxFQUFFO1FBQ25CLElBQUksWUFBWSxFQUFFLG1CQUFtQixDQUFBO1FBRXJDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixZQUFZLEdBQUcseUJBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1lBRXBFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNqRixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixZQUFZLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUVELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUM1QixDQUFDO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuQixDQUFDLENBQUE7QUFFRCxrQkFBZSxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBkZWJvdW5jZUZ1bmN0aW9uIGZyb20gXCJkZWJvdW5jZVwiXG5pbXBvcnQgTW9kZWxFdmVudHMgZnJvbSBcIi4vbW9kZWwtZXZlbnRzLmpzXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvdXNlLXNoYXBlLmpzXCJcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fSBtb2RlbFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBvbkNhbGxiYWNrXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcy5hY3RpdmVcbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy5kZWJvdW5jZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gcHJvcHMub25Db25uZWN0ZWRcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKi9cbmNvbnN0IGFwaU1ha2VyVXNlTW9kZWxFdmVudCA9IChtb2RlbCwgZXZlbnQsIG9uQ2FsbGJhY2ssIHByb3BzKSA9PiB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBkZWJvdW5jZSwgb25Db25uZWN0ZWQsIC4uLnJlc3RQcm9wc30gPSBwcm9wcyB8fCB7fVxuXG4gIGlmIChPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvcHMgZ2l2ZW4gdG8gYXBpTWFrZXJVc2VNb2RlbEV2ZW50OiAke09iamVjdC5rZXlzKHJlc3RQcm9wcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzID0gdXNlU2hhcGUoe2FjdGl2ZSwgZGVib3VuY2UsIG1vZGVsLCBvbkNhbGxiYWNrfSlcblxuICBjb25zdCBkZWJvdW5jZUNhbGxiYWNrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkZWJvdW5jZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICByZXR1cm4gZGVib3VuY2VGdW5jdGlvbihzLnAub25DYWxsYmFjaywgZGVib3VuY2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWJvdW5jZUZ1bmN0aW9uKHMucC5vbkNhbGxiYWNrKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlXSlcblxuICBzLnVwZGF0ZU1ldGEoe2RlYm91bmNlQ2FsbGJhY2t9KVxuXG4gIGNvbnN0IG9uQ2FsbGJhY2tDYWxsYmFjayA9IHVzZUNhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgaWYgKCFzLnAuYWN0aXZlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAocy5wLmRlYm91bmNlKSB7XG4gICAgICBzLm0uZGVib3VuY2VDYWxsYmFjayguLi5hcmdzKVxuICAgIH0gZWxzZSB7XG4gICAgICBzLnAub25DYWxsYmFjayguLi5hcmdzKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdEV2ZW50LCBvbkNvbm5lY3RlZExpc3RlbmVyXG5cbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIGNvbm5lY3RFdmVudCA9IE1vZGVsRXZlbnRzLmNvbm5lY3QobW9kZWwsIGV2ZW50LCBvbkNhbGxiYWNrQ2FsbGJhY2spXG5cbiAgICAgIGlmIChvbkNvbm5lY3RlZCkge1xuICAgICAgICBvbkNvbm5lY3RlZExpc3RlbmVyID0gY29ubmVjdEV2ZW50LmV2ZW50cy5hZGRMaXN0ZW5lcihcImNvbm5lY3RlZFwiLCBvbkNvbm5lY3RlZClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9uQ29ubmVjdGVkTGlzdGVuZXIpIHtcbiAgICAgICAgY29ubmVjdEV2ZW50LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihcImNvbm5lY3RlZFwiLCBvbkNvbm5lY3RlZClcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbm5lY3RFdmVudCkge1xuICAgICAgICBjb25uZWN0RXZlbnQudW5zdWJzY3JpYmUoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW21vZGVsPy5pZCgpXSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXBpTWFrZXJVc2VNb2RlbEV2ZW50XG4iXX0=
@@ -1,28 +1,34 @@
1
1
  export default useModel;
2
- /**
3
- * @param {function|object} modelClassArg
4
- * @param {object} argsArg
5
- * @param {(arg: object) => function} argsArg.callback
6
- * @param {(arg: object) => object} argsArg.args
7
- * @param {() => number|string} argsArg.loadByQueryParam
8
- * @param {any[]} argsArg.cacheArgs
9
- * @param {{params: object}} argsArg.match
10
- * @param {(ctx: { model: import("./base-model.js").default }) => void} argsArg.onDestroyed
11
- * @param {import("./collection.js").default} argsArg.query
12
- */
13
- declare function useModel(modelClassArg: Function | object, argsArg?: {
14
- callback: (arg: object) => Function;
15
- args: (arg: object) => object;
16
- loadByQueryParam: () => number | string;
17
- cacheArgs: any[];
18
- match: {
2
+ export type useModelArgs = {
3
+ callback?: (arg: object) => Function;
4
+ args?: (arg: object) => object;
5
+ loadByQueryParam?: () => number | string;
6
+ cacheArgs?: any[];
7
+ match?: {
19
8
  params: object;
20
9
  };
21
- onDestroyed: (ctx: {
10
+ onDestroyed?: (ctx: {
22
11
  model: import("./base-model.js").default;
23
12
  }) => void;
24
- query: import("./collection.js").default<any>;
25
- }): {
13
+ query?: import("./collection.js").default<any>;
14
+ };
15
+ /**
16
+ * @typedef {object} useModelArgs
17
+ * @property {(arg: object) => function} [callback]
18
+ * @property {(arg: object) => object} [args]
19
+ * @property {() => number|string} [loadByQueryParam]
20
+ * @property {any[]} [cacheArgs]
21
+ * @property {{params: object}} [match]
22
+ * @property {(ctx: { model: import("./base-model.js").default }) => void} [onDestroyed]
23
+ * @property {import("./collection.js").default} [query]
24
+ */
25
+ /**
26
+ * @param {function|object} modelClassArg
27
+ * @param {object | function({modelClass: typeof import("./base-model.js").default}): useModelArgs} [argsArg]
28
+ */
29
+ declare function useModel(modelClassArg: Function | object, argsArg?: object | ((arg0: {
30
+ modelClass: typeof import("./base-model.js").default;
31
+ }) => useModelArgs)): {
26
32
  model: any;
27
33
  modelId: any;
28
34
  notFound: any;
@@ -1 +1 @@
1
- {"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";AAOA;;;;;;;;;;GAUG;AACH,yCAVW,WAAS,MAAM,YAEvB;IAA2C,QAAQ,EAA3C,CAAC,GAAG,EAAE,MAAM,aAAa;IACQ,IAAI,EAArC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;IACM,gBAAgB,EAA7C,MAAM,MAAM,GAAC,MAAM;IACJ,SAAS,EAAxB,GAAG,EAAE;IACqB,KAAK,EAA/B;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IACqD,WAAW,EAAhF,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;IAChB,KAAK,EAAhD,sCAAiC;CAC3C;;;;EAoLA"}
1
+ {"version":3,"file":"use-model.d.ts","sourceRoot":"/src/","sources":["use-model.js"],"names":[],"mappings":";;eASc,CAAC,GAAG,EAAE,MAAM,aAAa;WACzB,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;uBACvB,MAAM,MAAM,GAAC,MAAM;gBACnB,GAAG,EAAE;YACL;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;kBAChB,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI;;;AAPzE;;;;;;;;;GASG;AAEH;;;GAGG;AACH,yCAHW,WAAS,MAAM,YACf,MAAM,IAAG,CAAS,IAAsD,EAAtD;IAAC,UAAU,EAAE,cAAc,iBAAiB,EAAE,OAAO,CAAA;CAAC,KAAG,YAAY,CAAA;;;;EAqLjG"}
@@ -1,22 +1,63 @@
1
- import { useCallback, useLayoutEffect, useMemo } from "react";
2
- import Devise from "./devise.js";
3
- import * as inflection from "inflection";
4
- import ModelEvents from "./model-events.js";
5
- import useQueryParams from "on-location-changed/build/use-query-params.js";
6
- import useShape from "set-state-compare/build/use-shape.js";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const react_1 = require("react");
40
+ const devise_js_1 = __importDefault(require("./devise.js"));
41
+ const inflection = __importStar(require("inflection"));
42
+ const model_events_js_1 = __importDefault(require("./model-events.js"));
43
+ const use_query_params_js_1 = __importDefault(require("on-location-changed/build/use-query-params.js"));
44
+ const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
45
+ /**
46
+ * @typedef {object} useModelArgs
47
+ * @property {(arg: object) => function} [callback]
48
+ * @property {(arg: object) => object} [args]
49
+ * @property {() => number|string} [loadByQueryParam]
50
+ * @property {any[]} [cacheArgs]
51
+ * @property {{params: object}} [match]
52
+ * @property {(ctx: { model: import("./base-model.js").default }) => void} [onDestroyed]
53
+ * @property {import("./collection.js").default} [query]
54
+ */
7
55
  /**
8
56
  * @param {function|object} modelClassArg
9
- * @param {object} argsArg
10
- * @param {(arg: object) => function} argsArg.callback
11
- * @param {(arg: object) => object} argsArg.args
12
- * @param {() => number|string} argsArg.loadByQueryParam
13
- * @param {any[]} argsArg.cacheArgs
14
- * @param {{params: object}} argsArg.match
15
- * @param {(ctx: { model: import("./base-model.js").default }) => void} argsArg.onDestroyed
16
- * @param {import("./collection.js").default} argsArg.query
57
+ * @param {object | function({modelClass: typeof import("./base-model.js").default}): useModelArgs} [argsArg]
17
58
  */
18
59
  const useModel = (modelClassArg, argsArg = {}) => {
19
- const queryParams = useQueryParams();
60
+ const queryParams = (0, use_query_params_js_1.default)();
20
61
  let args, modelClass;
21
62
  if (typeof argsArg == "function") {
22
63
  args = argsArg({ modelClass });
@@ -24,7 +65,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
24
65
  else {
25
66
  args = argsArg;
26
67
  }
27
- const s = useShape(args);
68
+ const s = (0, use_shape_js_1.default)(args);
28
69
  s.useStates({
29
70
  model: undefined,
30
71
  notFound: undefined
@@ -53,7 +94,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
53
94
  }
54
95
  const modelVariableName = inflection.camelize(modelClass.modelClassData().name, true);
55
96
  const cacheArgs = [modelId];
56
- const loadExistingModel = useCallback(async () => {
97
+ const loadExistingModel = (0, react_1.useCallback)(async () => {
57
98
  let query;
58
99
  if (s.m.modelId) {
59
100
  query = modelClass.ransack({ id_eq: s.m.modelId });
@@ -73,7 +114,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
73
114
  const model = await query.first();
74
115
  s.set({ model, notFound: !model });
75
116
  }, []);
76
- const loadNewModel = useCallback(async () => {
117
+ const loadNewModel = (0, react_1.useCallback)(async () => {
77
118
  const ModelClass = modelClass;
78
119
  const paramKey = ModelClass.modelName().paramKey();
79
120
  const modelDataFromParams = s.m.queryParams[paramKey] || {};
@@ -88,7 +129,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
88
129
  });
89
130
  s.set({ model });
90
131
  }, []);
91
- const loadModel = useCallback(async () => {
132
+ const loadModel = (0, react_1.useCallback)(async () => {
92
133
  if (!s.m.active) {
93
134
  // Not active - don't do anything
94
135
  }
@@ -99,23 +140,23 @@ const useModel = (modelClassArg, argsArg = {}) => {
99
140
  return await loadExistingModel();
100
141
  }
101
142
  }, []);
102
- const onDestroyed = useCallback(({ model }) => {
143
+ const onDestroyed = (0, react_1.useCallback)(({ model }) => {
103
144
  const forwardArgs = { model };
104
145
  forwardArgs[s.m.modelVariableName] = model;
105
146
  s.p.onDestroyed(forwardArgs);
106
147
  }, []);
107
- const onSignedIn = useCallback(() => {
148
+ const onSignedIn = (0, react_1.useCallback)(() => {
108
149
  loadModel();
109
150
  }, []);
110
- const onSignedOut = useCallback(() => {
151
+ const onSignedOut = (0, react_1.useCallback)(() => {
111
152
  loadModel();
112
153
  }, []);
113
154
  if (args.cacheArgs) {
114
155
  cacheArgs.push(...args.cacheArgs);
115
156
  }
116
157
  s.updateMeta({ args, modelId, modelVariableName, queryParams });
117
- useMemo(() => { loadModel(); }, cacheArgs);
118
- useLayoutEffect(() => {
158
+ (0, react_1.useMemo)(() => { loadModel(); }, cacheArgs);
159
+ (0, react_1.useLayoutEffect)(() => {
119
160
  let reloadModelCallback;
120
161
  if (args.events) {
121
162
  reloadModelCallback = args.events.addListener("reloadModel", loadModel);
@@ -126,27 +167,27 @@ const useModel = (modelClassArg, argsArg = {}) => {
126
167
  }
127
168
  };
128
169
  }, [args.events]);
129
- useLayoutEffect(() => {
170
+ (0, react_1.useLayoutEffect)(() => {
130
171
  let connectUpdated;
131
172
  if (s.s.model && args.eventUpdated) {
132
- connectUpdated = ModelEvents.connectUpdated(s.s.model, loadModel);
173
+ connectUpdated = model_events_js_1.default.connectUpdated(s.s.model, loadModel);
133
174
  }
134
175
  return () => {
135
176
  connectUpdated?.unsubscribe();
136
177
  };
137
178
  }, [args.eventUpdated, s.s.model?.id()]);
138
- useLayoutEffect(() => {
139
- Devise.events().addListener("onDeviseSignIn", onSignedIn);
140
- Devise.events().addListener("onDeviseSignOut", onSignedOut);
179
+ (0, react_1.useLayoutEffect)(() => {
180
+ devise_js_1.default.events().addListener("onDeviseSignIn", onSignedIn);
181
+ devise_js_1.default.events().addListener("onDeviseSignOut", onSignedOut);
141
182
  return () => {
142
- Devise.events().removeListener("onDeviseSignIn", onSignedIn);
143
- Devise.events().removeListener("onDeviseSignOut", onSignedOut);
183
+ devise_js_1.default.events().removeListener("onDeviseSignIn", onSignedIn);
184
+ devise_js_1.default.events().removeListener("onDeviseSignOut", onSignedOut);
144
185
  };
145
186
  });
146
- useLayoutEffect(() => {
187
+ (0, react_1.useLayoutEffect)(() => {
147
188
  let connectDestroyed;
148
189
  if (s.s.model && args.onDestroyed) {
149
- connectDestroyed = ModelEvents.connectDestroyed(s.s.model, onDestroyed);
190
+ connectDestroyed = model_events_js_1.default.connectDestroyed(s.s.model, onDestroyed);
150
191
  }
151
192
  return () => {
152
193
  connectDestroyed?.unsubscribe();
@@ -162,5 +203,5 @@ const useModel = (modelClassArg, argsArg = {}) => {
162
203
  result[`${modelVariableName}NotFound`] = s.s.notFound;
163
204
  return result;
164
205
  };
165
- export default useModel;
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQzNELE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLFdBQVcsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLGNBQWMsTUFBTSwrQ0FBK0MsQ0FBQTtBQUMxRSxPQUFPLFFBQVEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUUzRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO0lBQ3BDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQTtJQUVwQixJQUFJLE9BQU8sT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksR0FBRyxPQUFPLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxHQUFHLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXhCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDVixLQUFLLEVBQUUsU0FBUztRQUNoQixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDLENBQUE7SUFFRixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDdkIsQ0FBQztTQUFNLENB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dCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXMuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb258b2JqZWN0fSBtb2RlbENsYXNzQXJnXG4gKiBAcGFyYW0ge29iamVjdH0gYXJnc0FyZ1xuICogQHBhcmFtIHsoYXJnOiBvYmplY3QpID0+IGZ1bmN0aW9ufSBhcmdzQXJnLmNhbGxiYWNrXG4gKiBAcGFyYW0geyhhcmc6IG9iamVjdCkgPT4gb2JqZWN0fSBhcmdzQXJnLmFyZ3NcbiAqIEBwYXJhbSB7KCkgPT4gbnVtYmVyfHN0cmluZ30gYXJnc0FyZy5sb2FkQnlRdWVyeVBhcmFtXG4gKiBAcGFyYW0ge2FueVtdfSBhcmdzQXJnLmNhY2hlQXJnc1xuICogQHBhcmFtIHt7cGFyYW1zOiBvYmplY3R9fSBhcmdzQXJnLm1hdGNoXG4gKiBAcGFyYW0geyhjdHg6IHsgbW9kZWw6IGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0IH0pID0+IHZvaWR9IGFyZ3NBcmcub25EZXN0cm95ZWRcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3NBcmcucXVlcnlcbiAqL1xuY29uc3QgdXNlTW9kZWwgPSAobW9kZWxDbGFzc0FyZywgYXJnc0FyZyA9IHt9KSA9PiB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuICBsZXQgYXJncywgbW9kZWxDbGFzc1xuXG4gIGlmICh0eXBlb2YgYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhcmdzID0gYXJnc0FyZyh7bW9kZWxDbGFzc30pXG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IGFyZ3NBcmdcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShhcmdzKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICBpZiAoXCJhY3RpdmVcIiBpbiBzLnByb3BzICYmICFzLnByb3BzLmFjdGl2ZSkge1xuICAgIHMubWV0YS5hY3RpdmUgPSBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHMubWV0YS5hY3RpdmUgPSB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3NBcmcgPT0gXCJvYmplY3RcIikge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnLmNhbGxiYWNrKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIGNvbnN0IHBhcmFtc1ZhcmlhYmxlTmFtZSA9IGAke21vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKX1faWRgXG4gIGxldCBtb2RlbElkXG5cbiAgaWYgKGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgIG1vZGVsSWQgPSBhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIGlmICghYXJncy5xdWVyeSkge1xuICAgIGlmICghYXJncy5tYXRjaCkgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAnbG9hZEJ5UXVlcnlQYXJhbScgYW5kICdtYXRjaCcgd2Fzbid0IGdpdmVuXCIpXG5cbiAgICBtb2RlbElkID0gYXJncy5tYXRjaC5wYXJhbXNbcGFyYW1zVmFyaWFibGVOYW1lXSB8fCBhcmdzLm1hdGNoLnBhcmFtcy5pZFxuICB9XG5cbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBjYWNoZUFyZ3MgPSBbbW9kZWxJZF1cblxuICBjb25zdCBsb2FkRXhpc3RpbmdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBsZXQgcXVlcnlcblxuICAgIGlmIChzLm0ubW9kZWxJZCkge1xuICAgICAgcXVlcnkgPSBtb2RlbENsYXNzLnJhbnNhY2soe2lkX2VxOiBzLm0ubW9kZWxJZH0pXG4gICAgfSBlbHNlIGlmIChzLm0uYXJncy5xdWVyeSkge1xuICAgICAgcXVlcnkgPSBzLm0uYXJncy5xdWVyeS5jbG9uZSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbW9kZWwgSUQgd2FzIGdpdmVuOiAke3MubS5tb2RlbElkfSBieSAnJHtwYXJhbXNWYXJpYWJsZU5hbWV9JyBpbiBxdWVyeSBwYXJhbXM6ICR7T2JqZWN0LmtleXMocy5wcm9wcy5tYXRjaC5wYXJhbXMpLmpvaW4oXCIsIFwiKX1gKVxuICAgIH1cblxuICAgIGlmIChzLnByb3BzLmFiaWxpdGllcykgcXVlcnkuYWJpbGl0aWVzKHMucC5hYmlsaXRpZXMpXG4gICAgaWYgKHMucHJvcHMucHJlbG9hZCkgcXVlcnkucHJlbG9hZChzLnAucHJlbG9hZClcbiAgICBpZiAocy5wcm9wcy5zZWxlY3QpIHF1ZXJ5LnNlbGVjdChzLnAuc2VsZWN0KVxuXG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBxdWVyeS5maXJzdCgpXG5cbiAgICBzLnNldCh7bW9kZWwsIG5vdEZvdW5kOiAhbW9kZWx9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTmV3TW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICBjb25zdCBwYXJhbUtleSA9IE1vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKVxuICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXNbcGFyYW1LZXldIHx8IHt9XG5cbiAgICBsZXQgZGVmYXVsdHMgPSB7fVxuXG4gICAgaWYgKHMucHJvcHMubmV3SWZOb0lkPy5kZWZhdWx0cykge1xuICAgICAgZGVmYXVsdHMgPSBhd2FpdCBzLnByb3BzLm5ld0lmTm9JZC5kZWZhdWx0cygpXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgIH0pXG5cbiAgICBzLnNldCh7bW9kZWx9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgICAvLyBOb3QgYWN0aXZlIC0gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWROZXdNb2RlbCgpXG4gICAgfSBlbHNlIGlmICghcy5wcm9wcy5vcHRpb25hbCB8fCBzLm0ubW9kZWxJZCB8IHMubS5hcmdzLnF1ZXJ5KSB7XG4gICAgICByZXR1cm4gYXdhaXQgbG9hZEV4aXN0aW5nTW9kZWwoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoe21vZGVsfSkgPT4ge1xuICAgIGNvbnN0IGZvcndhcmRBcmdzID0ge21vZGVsfVxuXG4gICAgZm9yd2FyZEFyZ3Nbcy5tLm1vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG5cbiAgICBzLnAub25EZXN0cm95ZWQoZm9yd2FyZEFyZ3MpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRPdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgaWYgKGFyZ3MuY2FjaGVBcmdzKSB7XG4gICAgY2FjaGVBcmdzLnB1c2goLi4uYXJncy5jYWNoZUFyZ3MpXG4gIH1cblxuICBzLnVwZGF0ZU1ldGEoe2FyZ3MsIG1vZGVsSWQsIG1vZGVsVmFyaWFibGVOYW1lLCBxdWVyeVBhcmFtc30pXG5cbiAgdXNlTWVtbyhcbiAgICAoKSA9PiB7IGxvYWRNb2RlbCgpIH0sXG4gICAgY2FjaGVBcmdzXG4gIClcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZWxvYWRNb2RlbENhbGxiYWNrXG5cbiAgICBpZiAoYXJncy5ldmVudHMpIHtcbiAgICAgIHJlbG9hZE1vZGVsQ2FsbGJhY2sgPSBhcmdzLmV2ZW50cy5hZGRMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbG9hZE1vZGVsQ2FsbGJhY2spIHtcbiAgICAgICAgYXJncy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJncy5ldmVudHNdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3RVcGRhdGVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3MuZXZlbnRVcGRhdGVkKSB7XG4gICAgICBjb25uZWN0VXBkYXRlZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3RVcGRhdGVkKHMucy5tb2RlbCwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0VXBkYXRlZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRVcGRhdGVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcbiAgICB9XG4gIH0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdERlc3Ryb3llZFxuXG4gICAgaWYgKHMucy5tb2RlbCAmJiBhcmdzLm9uRGVzdHJveWVkKSB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkID0gTW9kZWxFdmVudHMuY29ubmVjdERlc3Ryb3llZChzLnMubW9kZWwsIG9uRGVzdHJveWVkKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5vbkRlc3Ryb3llZCwgcy5zLm1vZGVsPy5pZCgpXSlcblxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgbW9kZWw6IHMucy5tb2RlbCxcbiAgICBtb2RlbElkLFxuICAgIG5vdEZvdW5kOiBzLnMubm90Rm91bmRcbiAgfVxuXG4gIHJlc3VsdFttb2RlbFZhcmlhYmxlTmFtZV0gPSBzLnMubW9kZWxcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfUlkYF0gPSBtb2RlbElkXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1Ob3RGb3VuZGBdID0gcy5zLm5vdEZvdW5kXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VNb2RlbFxuIl19
206
+ exports.default = useModel;
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBMkQ7QUFDM0QsNERBQWdDO0FBQ2hDLHVEQUF3QztBQUN4Qyx3RUFBMkM7QUFDM0Msd0dBQTBFO0FBQzFFLHdGQUEyRDtBQUUzRDs7Ozs7Ozs7O0dBU0c7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLFFBQVEsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBQSw2QkFBYyxHQUFFLENBQUE7SUFDcEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFBO0lBRXBCLElBQUksT0FBTyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxJQUFBLHNCQUFRLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUN2QixDQUFDO1NBQU0sQ0FBQztRQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUN0QixDQUFDO0lBRUQsSUFBSSxPQUFPLGFBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFDLFdBQVcsRUFBQyxDQUFDLENBQUE7SUFDcEQsQ0FBQztTQUFNLENBQUM7UUFDTixVQUFVLEdBQUcsYUFBYSxDQUFBO0lBQzVCLENBQUM7SUFFRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUE7SUFDcEUsSUFBSSxPQUFPLENBQUE7SUFFWCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7U0FBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQTtRQUVwRixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUE7SUFDekUsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3JGLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFM0IsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLG1CQUFXLEVBQUMsS0FBSyxJQUFJLEVBQUU7UUFDL0MsSUFBSSxLQUFLLENBQUE7UUFFVCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBQ2xELENBQUM7YUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzFCLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sUUFBUSxrQkFBa0Isc0JBQXNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0SixDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDckQsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU87WUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDL0MsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU07WUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFNUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUE7UUFFakMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE1BQU0sWUFBWSxHQUFHLElBQUEsbUJBQVcsRUFBQyxLQUFLLElBQUksRUFBRTtRQUMxQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDN0IsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2xELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBRTNELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUVqQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQy9DLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3JGLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzNCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLElBQUksRUFBRSxFQUFDLENBQUMsRUFBRSxTQUFTLEVBQUM7U0FDckIsQ0FBQyxDQUFBO1FBRUYsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7SUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sTUFBTSxTQUFTLEdBQUcsSUFBQSxtQkFBVyxFQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3ZDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLGlDQUFpQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0MsT0FBTyxNQUFNLFlBQVksRUFBRSxDQUFBO1FBQzdCLENBQUM7YUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0QsT0FBTyxNQUFNLGlCQUFpQixFQUFFLENBQUE7UUFDbEMsQ0FBQztJQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE1BQU0sV0FBVyxHQUFHLElBQUEsbUJBQVcsRUFBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRTtRQUMxQyxNQUFNLFdBQVcsR0FBRyxFQUFDLEtBQUssRUFBQyxDQUFBO1FBRTNCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsS0FBSyxDQUFBO1FBRTFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzlCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE1BQU0sVUFBVSxHQUFHLElBQUEsbUJBQVcsRUFBQyxHQUFHLEVBQUU7UUFDbEMsU0FBUyxFQUFFLENBQUE7SUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLFdBQVcsR0FBRyxJQUFBLG1CQUFXLEVBQUMsR0FBRyxFQUFFO1FBQ25DLFNBQVMsRUFBRSxDQUFBO0lBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQTtJQUU3RCxJQUFBLGVBQU8sRUFDTCxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQSxDQUFDLENBQUMsRUFDckIsU0FBUyxDQUNWLENBQUE7SUFFRCxJQUFBLHVCQUFlLEVBQUMsR0FBRyxFQUFFO1FBQ25CLElBQUksbUJBQW1CLENBQUE7UUFFdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFFRCxPQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQ3RELENBQUM7UUFDSCxDQUFDLENBQUE7SUFDSCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUVqQixJQUFBLHVCQUFlLEVBQUMsR0FBRyxFQUFFO1FBQ25CLElBQUksY0FBYyxDQUFBO1FBRWxCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25DLGNBQWMsR0FBRyx5QkFBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUNuRSxDQUFDO1FBRUQsT0FBTyxHQUFHLEVBQUU7WUFDVixjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFDL0IsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFeEMsSUFBQSx1QkFBZSxFQUFDLEdBQUcsRUFBRTtRQUNuQixtQkFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN6RCxtQkFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUUzRCxPQUFPLEdBQUcsRUFBRTtZQUNWLG1CQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFBO1lBQzVELG1CQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ2hFLENBQUMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBQSx1QkFBZSxFQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLGdCQUFnQixDQUFBO1FBRXBCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLHlCQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDekUsQ0FBQztRQUVELE9BQU8sR0FBRyxFQUFFO1lBQ1YsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFDakMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFdkMsTUFBTSxNQUFNLEdBQUc7UUFDYixLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQ2hCLE9BQU87UUFDUCxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0tBQ3ZCLENBQUE7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUNyQyxNQUFNLENBQUMsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFBO0lBQzFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtJQUVyRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELGtCQUFlLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gdXNlTW9kZWxBcmdzXG4gKiBAcHJvcGVydHkgeyhhcmc6IG9iamVjdCkgPT4gZnVuY3Rpb259IFtjYWxsYmFja11cbiAqIEBwcm9wZXJ0eSB7KGFyZzogb2JqZWN0KSA9PiBvYmplY3R9IFthcmdzXVxuICogQHByb3BlcnR5IHsoKSA9PiBudW1iZXJ8c3RyaW5nfSBbbG9hZEJ5UXVlcnlQYXJhbV1cbiAqIEBwcm9wZXJ0eSB7YW55W119IFtjYWNoZUFyZ3NdXG4gKiBAcHJvcGVydHkge3twYXJhbXM6IG9iamVjdH19IFttYXRjaF1cbiAqIEBwcm9wZXJ0eSB7KGN0eDogeyBtb2RlbDogaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQgfSkgPT4gdm9pZH0gW29uRGVzdHJveWVkXVxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL2NvbGxlY3Rpb24uanNcIikuZGVmYXVsdH0gW3F1ZXJ5XVxuICovXG5cbi8qKlxuICogQHBhcmFtIHtmdW5jdGlvbnxvYmplY3R9IG1vZGVsQ2xhc3NBcmdcbiAqIEBwYXJhbSB7b2JqZWN0IHwgZnVuY3Rpb24oe21vZGVsQ2xhc3M6IHR5cGVvZiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH0pOiB1c2VNb2RlbEFyZ3N9IFthcmdzQXJnXVxuICovXG5jb25zdCB1c2VNb2RlbCA9IChtb2RlbENsYXNzQXJnLCBhcmdzQXJnID0ge30pID0+IHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG4gIGxldCBhcmdzLCBtb2RlbENsYXNzXG5cbiAgaWYgKHR5cGVvZiBhcmdzQXJnID09IFwiZnVuY3Rpb25cIikge1xuICAgIGFyZ3MgPSBhcmdzQXJnKHttb2RlbENsYXNzfSlcbiAgfSBlbHNlIHtcbiAgICBhcmdzID0gYXJnc0FyZ1xuICB9XG5cbiAgY29uc3QgcyA9IHVzZVNoYXBlKGFyZ3MpXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIG1vZGVsOiB1bmRlZmluZWQsXG4gICAgbm90Rm91bmQ6IHVuZGVmaW5lZFxuICB9KVxuXG4gIGlmIChcImFjdGl2ZVwiIGluIHMucHJvcHMgJiYgIXMucHJvcHMuYWN0aXZlKSB7XG4gICAgcy5tZXRhLmFjdGl2ZSA9IGZhbHNlXG4gIH0gZWxzZSB7XG4gICAgcy5tZXRhLmFjdGl2ZSA9IHRydWVcbiAgfVxuXG4gIGlmICh0eXBlb2YgbW9kZWxDbGFzc0FyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmcuY2FsbGJhY2soe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIHtcbiAgICBtb2RlbENsYXNzID0gbW9kZWxDbGFzc0FyZ1xuICB9XG5cbiAgY29uc3QgcGFyYW1zVmFyaWFibGVOYW1lID0gYCR7bW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5wYXJhbUtleSgpfV9pZGBcbiAgbGV0IG1vZGVsSWRcblxuICBpZiAoYXJncy5sb2FkQnlRdWVyeVBhcmFtKSB7XG4gICAgbW9kZWxJZCA9IGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSh7cXVlcnlQYXJhbXN9KVxuICB9IGVsc2UgaWYgKCFhcmdzLnF1ZXJ5KSB7XG4gICAgaWYgKCFhcmdzLm1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoXCJCb3RoICdsb2FkQnlRdWVyeVBhcmFtJyBhbmQgJ21hdGNoJyB3YXNuJ3QgZ2l2ZW5cIilcblxuICAgIG1vZGVsSWQgPSBhcmdzLm1hdGNoLnBhcmFtc1twYXJhbXNWYXJpYWJsZU5hbWVdIHx8IGFyZ3MubWF0Y2gucGFyYW1zLmlkXG4gIH1cblxuICBjb25zdCBtb2RlbFZhcmlhYmxlTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpXG4gIGNvbnN0IGNhY2hlQXJncyA9IFttb2RlbElkXVxuXG4gIGNvbnN0IGxvYWRFeGlzdGluZ01vZGVsID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGxldCBxdWVyeVxuXG4gICAgaWYgKHMubS5tb2RlbElkKSB7XG4gICAgICBxdWVyeSA9IG1vZGVsQ2xhc3MucmFuc2Fjayh7aWRfZXE6IHMubS5tb2RlbElkfSlcbiAgICB9IGVsc2UgaWYgKHMubS5hcmdzLnF1ZXJ5KSB7XG4gICAgICBxdWVyeSA9IHMubS5hcmdzLnF1ZXJ5LmNsb25lKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtb2RlbCBJRCB3YXMgZ2l2ZW46ICR7cy5tLm1vZGVsSWR9IGJ5ICcke3BhcmFtc1ZhcmlhYmxlTmFtZX0nIGluIHF1ZXJ5IHBhcmFtczogJHtPYmplY3Qua2V5cyhzLnByb3BzLm1hdGNoLnBhcmFtcykuam9pbihcIiwgXCIpfWApXG4gICAgfVxuXG4gICAgaWYgKHMucHJvcHMuYWJpbGl0aWVzKSBxdWVyeS5hYmlsaXRpZXMocy5wLmFiaWxpdGllcylcbiAgICBpZiAocy5wcm9wcy5wcmVsb2FkKSBxdWVyeS5wcmVsb2FkKHMucC5wcmVsb2FkKVxuICAgIGlmIChzLnByb3BzLnNlbGVjdCkgcXVlcnkuc2VsZWN0KHMucC5zZWxlY3QpXG5cbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgIHMuc2V0KHttb2RlbCwgbm90Rm91bmQ6ICFtb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWROZXdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgIGNvbnN0IHBhcmFtS2V5ID0gTW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5wYXJhbUtleSgpXG4gICAgY29uc3QgbW9kZWxEYXRhRnJvbVBhcmFtcyA9IHMubS5xdWVyeVBhcmFtc1twYXJhbUtleV0gfHwge31cblxuICAgIGxldCBkZWZhdWx0cyA9IHt9XG5cbiAgICBpZiAocy5wcm9wcy5uZXdJZk5vSWQ/LmRlZmF1bHRzKSB7XG4gICAgICBkZWZhdWx0cyA9IGF3YWl0IHMucHJvcHMubmV3SWZOb0lkLmRlZmF1bHRzKClcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbERhdGEgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCBzLnByb3BzLm5ld0F0dHJpYnV0ZXMsIG1vZGVsRGF0YUZyb21QYXJhbXMpXG4gICAgY29uc3QgbW9kZWwgPSBuZXcgTW9kZWxDbGFzcyh7XG4gICAgICBpc05ld1JlY29yZDogdHJ1ZSxcbiAgICAgIGRhdGE6IHthOiBtb2RlbERhdGF9XG4gICAgfSlcblxuICAgIHMuc2V0KHttb2RlbH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWRNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIXMubS5hY3RpdmUpIHtcbiAgICAgIC8vIE5vdCBhY3RpdmUgLSBkb24ndCBkbyBhbnl0aGluZ1xuICAgIH0gZWxzZSBpZiAocy5wcm9wcy5uZXdJZk5vSWQgJiYgIXMubS5tb2RlbElkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgbG9hZE5ld01vZGVsKClcbiAgICB9IGVsc2UgaWYgKCFzLnByb3BzLm9wdGlvbmFsIHx8IHMubS5tb2RlbElkIHwgcy5tLmFyZ3MucXVlcnkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkRXhpc3RpbmdNb2RlbCgpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBvbkRlc3Ryb3llZCA9IHVzZUNhbGxiYWNrKCh7bW9kZWx9KSA9PiB7XG4gICAgY29uc3QgZm9yd2FyZEFyZ3MgPSB7bW9kZWx9XG5cbiAgICBmb3J3YXJkQXJnc1tzLm0ubW9kZWxWYXJpYWJsZU5hbWVdID0gbW9kZWxcblxuICAgIHMucC5vbkRlc3Ryb3llZChmb3J3YXJkQXJncylcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRJbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsb2FkTW9kZWwoKVxuICB9LCBbXSlcblxuICBjb25zdCBvblNpZ25lZE91dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsb2FkTW9kZWwoKVxuICB9LCBbXSlcblxuICBpZiAoYXJncy5jYWNoZUFyZ3MpIHtcbiAgICBjYWNoZUFyZ3MucHVzaCguLi5hcmdzLmNhY2hlQXJncylcbiAgfVxuXG4gIHMudXBkYXRlTWV0YSh7YXJncywgbW9kZWxJZCwgbW9kZWxWYXJpYWJsZU5hbWUsIHF1ZXJ5UGFyYW1zfSlcblxuICB1c2VNZW1vKFxuICAgICgpID0+IHsgbG9hZE1vZGVsKCkgfSxcbiAgICBjYWNoZUFyZ3NcbiAgKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlbG9hZE1vZGVsQ2FsbGJhY2tcblxuICAgIGlmIChhcmdzLmV2ZW50cykge1xuICAgICAgcmVsb2FkTW9kZWxDYWxsYmFjayA9IGFyZ3MuZXZlbnRzLmFkZExpc3RlbmVyKFwicmVsb2FkTW9kZWxcIiwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVsb2FkTW9kZWxDYWxsYmFjaykge1xuICAgICAgICBhcmdzLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthcmdzLmV2ZW50c10pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdFVwZGF0ZWRcblxuICAgIGlmIChzLnMubW9kZWwgJiYgYXJncy5ldmVudFVwZGF0ZWQpIHtcbiAgICAgIGNvbm5lY3RVcGRhdGVkID0gTW9kZWxFdmVudHMuY29ubmVjdFVwZGF0ZWQocy5zLm1vZGVsLCBsb2FkTW9kZWwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbm5lY3RVcGRhdGVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5ldmVudFVwZGF0ZWQsIHMucy5tb2RlbD8uaWQoKV0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCBvblNpZ25lZEluKVxuICAgIERldmlzZS5ldmVudHMoKS5hZGRMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBEZXZpc2UuZXZlbnRzKCkucmVtb3ZlTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25JblwiLCBvblNpZ25lZEluKVxuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduT3V0XCIsIG9uU2lnbmVkT3V0KVxuICAgIH1cbiAgfSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb25uZWN0RGVzdHJveWVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3Mub25EZXN0cm95ZWQpIHtcbiAgICAgIGNvbm5lY3REZXN0cm95ZWQgPSBNb2RlbEV2ZW50cy5jb25uZWN0RGVzdHJveWVkKHMucy5tb2RlbCwgb25EZXN0cm95ZWQpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbm5lY3REZXN0cm95ZWQ/LnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH0sIFthcmdzLm9uRGVzdHJveWVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBtb2RlbDogcy5zLm1vZGVsLFxuICAgIG1vZGVsSWQsXG4gICAgbm90Rm91bmQ6IHMucy5ub3RGb3VuZFxuICB9XG5cbiAgcmVzdWx0W21vZGVsVmFyaWFibGVOYW1lXSA9IHMucy5tb2RlbFxuICByZXN1bHRbYCR7bW9kZWxWYXJpYWJsZU5hbWV9SWRgXSA9IG1vZGVsSWRcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfU5vdEZvdW5kYF0gPSBzLnMubm90Rm91bmRcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZU1vZGVsXG4iXX0=