@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,4 +1,10 @@
1
- import escapeStringRegexp from "escape-string-regexp";
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
+ exports.default = urlEncode;
7
+ const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
2
8
  const replaces = {
3
9
  " ": "+",
4
10
  "&": "%26",
@@ -7,12 +13,12 @@ const replaces = {
7
13
  "/": "%2F",
8
14
  "?": "%3F"
9
15
  };
10
- const regexp = new RegExp(`(${Object.keys(replaces).map(escapeStringRegexp).join("|")})`, "g");
16
+ const regexp = new RegExp(`(${Object.keys(replaces).map(escape_string_regexp_1.default).join("|")})`, "g");
11
17
  /**
12
18
  * @param {string} string
13
19
  * @returns {string}
14
20
  */
15
- export default function urlEncode(string) {
21
+ function urlEncode(string) {
16
22
  return String(string).replaceAll(regexp, (character) => replaces[character]);
17
23
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWVuY29kZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXJsLWVuY29kZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBO0FBRXJELE1BQU0sUUFBUSxHQUFHO0lBQ2YsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0NBQ1gsQ0FBQTtBQUVELE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUU5Rjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxVQUFVLFNBQVMsQ0FBQyxNQUFNO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXNjYXBlU3RyaW5nUmVnZXhwIGZyb20gXCJlc2NhcGUtc3RyaW5nLXJlZ2V4cFwiXG5cbmNvbnN0IHJlcGxhY2VzID0ge1xuICBcIiBcIjogXCIrXCIsXG4gIFwiJlwiOiBcIiUyNlwiLFxuICBcIiNcIjogXCIlMjNcIixcbiAgXCIrXCI6IFwiJTJCXCIsXG4gIFwiL1wiOiBcIiUyRlwiLFxuICBcIj9cIjogXCIlM0ZcIlxufVxuXG5jb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKGAoJHtPYmplY3Qua2V5cyhyZXBsYWNlcykubWFwKGVzY2FwZVN0cmluZ1JlZ2V4cCkuam9pbihcInxcIil9KWAsIFwiZ1wiKVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVybEVuY29kZShzdHJpbmcpIHtcbiAgcmV0dXJuIFN0cmluZyhzdHJpbmcpLnJlcGxhY2VBbGwocmVnZXhwLCAoY2hhcmFjdGVyKSA9PiByZXBsYWNlc1tjaGFyYWN0ZXJdKVxufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWVuY29kZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXJsLWVuY29kZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWlCQSw0QkFFQztBQW5CRCxnRkFBcUQ7QUFFckQsTUFBTSxRQUFRLEdBQUc7SUFDZixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7Q0FDWCxDQUFBO0FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw4QkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBRTlGOzs7R0FHRztBQUNILFNBQXdCLFNBQVMsQ0FBQyxNQUFNO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXNjYXBlU3RyaW5nUmVnZXhwIGZyb20gXCJlc2NhcGUtc3RyaW5nLXJlZ2V4cFwiXG5cbmNvbnN0IHJlcGxhY2VzID0ge1xuICBcIiBcIjogXCIrXCIsXG4gIFwiJlwiOiBcIiUyNlwiLFxuICBcIiNcIjogXCIlMjNcIixcbiAgXCIrXCI6IFwiJTJCXCIsXG4gIFwiL1wiOiBcIiUyRlwiLFxuICBcIj9cIjogXCIlM0ZcIlxufVxuXG5jb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKGAoJHtPYmplY3Qua2V5cyhyZXBsYWNlcykubWFwKGVzY2FwZVN0cmluZ1JlZ2V4cCkuam9pbihcInxcIil9KWAsIFwiZ1wiKVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVybEVuY29kZShzdHJpbmcpIHtcbiAgcmV0dXJuIFN0cmluZyhzdHJpbmcpLnJlcGxhY2VBbGwocmVnZXhwLCAoY2hhcmFjdGVyKSA9PiByZXBsYWNlc1tjaGFyYWN0ZXJdKVxufVxuIl19
@@ -1,15 +1,53 @@
1
- import { useCallback } from "react";
2
- import config from "./config.js";
3
- import { Dimensions } from "react-native";
4
- import * as inflection from "inflection";
5
- import isExpo from "./is-expo.js";
6
- import useEventEmitter from "./use-event-emitter.js";
7
- import useEventListener from "./use-event-listener.js";
8
- 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 config_js_1 = __importDefault(require("./config.js"));
41
+ const react_native_1 = require("react-native");
42
+ const inflection = __importStar(require("inflection"));
43
+ const is_expo_js_1 = __importDefault(require("./is-expo.js"));
44
+ const use_event_emitter_js_1 = __importDefault(require("./use-event-emitter.js"));
45
+ const use_event_listener_js_1 = __importDefault(require("./use-event-listener.js"));
46
+ const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
9
47
  function calculateBreakPoint(breakpoints) {
10
48
  let windowWidth;
11
- if (isExpo) {
12
- windowWidth = Dimensions.get("window").width;
49
+ if (is_expo_js_1.default) {
50
+ windowWidth = react_native_1.Dimensions.get("window").width;
13
51
  }
14
52
  else if (typeof window !== "undefined" && window.innerWidth !== undefined) {
15
53
  // Use 'window.innerWidth' outside Expo because sometimes window width excludes scroll
@@ -38,25 +76,25 @@ function calculateBreakPoint(breakpoints) {
38
76
  }
39
77
  const sizeTypes = ["down", "up"];
40
78
  const useBreakpoint = (args = {}) => {
41
- const s = useShape(args);
42
- s.meta.breakpoints ||= config.getBreakpoints();
43
- const checkAndUpdateBreakpoint = useCallback(() => {
79
+ const s = (0, use_shape_js_1.default)(args);
80
+ s.meta.breakpoints ||= config_js_1.default.getBreakpoints();
81
+ const checkAndUpdateBreakpoint = (0, react_1.useCallback)(() => {
44
82
  const breakpoint = calculateBreakPoint(s.m.breakpoints);
45
83
  if (breakpoint.name != s.s.breakpoint.name) {
46
84
  s.set({ breakpoint });
47
85
  }
48
86
  }, []);
49
- const onDimensionsChange = useCallback(() => {
87
+ const onDimensionsChange = (0, react_1.useCallback)(() => {
50
88
  checkAndUpdateBreakpoint();
51
89
  }, []);
52
- const onBreakpointsChange = useCallback(({ newValue }) => {
90
+ const onBreakpointsChange = (0, react_1.useCallback)(({ newValue }) => {
53
91
  s.meta.breakpoints = newValue;
54
92
  checkAndUpdateBreakpoint();
55
93
  }, []);
56
94
  s.useStates({
57
95
  breakpoint: () => calculateBreakPoint(s.m.breakpoints)
58
96
  });
59
- const styling = useCallback((args) => {
97
+ const styling = (0, react_1.useCallback)((args) => {
60
98
  const style = Object.assign({}, args.base);
61
99
  for (const breakpointData of s.m.breakpoints) {
62
100
  const breakpoint = breakpointData[0];
@@ -69,12 +107,12 @@ const useBreakpoint = (args = {}) => {
69
107
  }
70
108
  return style;
71
109
  }, []);
72
- useEventEmitter(config.getEvents(), "onBreakpointsChange", onBreakpointsChange);
73
- useEventListener(Dimensions, "change", onDimensionsChange);
110
+ (0, use_event_emitter_js_1.default)(config_js_1.default.getEvents(), "onBreakpointsChange", onBreakpointsChange);
111
+ (0, use_event_listener_js_1.default)(react_native_1.Dimensions, "change", onDimensionsChange);
74
112
  return {
75
113
  styling,
76
114
  ...s.s.breakpoint
77
115
  };
78
116
  };
79
- export default useBreakpoint;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWJyZWFrcG9pbnQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1icmVha3BvaW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDakMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDdkMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sZ0JBQWdCLE1BQU0seUJBQXlCLENBQUE7QUFDdEQsT0FBTyxRQUFRLE1BQU0sc0NBQXNDLENBQUE7QUFFM0QsU0FBUyxtQkFBbUIsQ0FBQyxXQUFXO0lBQ3RDLElBQUksV0FBVyxDQUFBO0lBRWYsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUM5QyxDQUFDO1NBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM1RSxzRkFBc0Y7UUFDdEYsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUE7SUFDakMsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUVqQixLQUFLLE1BQU0sY0FBYyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwQyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFF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LENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFBO2dCQUNwRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtJQUMvRSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFFMUQsT0FBTztRQUNMLE9BQU87UUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtLQUNsQixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsZUFBZSxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWcuanNcIlxuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IGlzRXhwbyBmcm9tIFwiLi9pcy1leHBvLmpzXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWVtaXR0ZXIuanNcIlxuaW1wb3J0IHVzZUV2ZW50TGlzdGVuZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWxpc3RlbmVyLmpzXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvdXNlLXNoYXBlLmpzXCJcblxuZnVuY3Rpb24gY2FsY3VsYXRlQnJlYWtQb2ludChicmVha3BvaW50cykge1xuICBsZXQgd2luZG93V2lkdGhcblxuICBpZiAoaXNFeHBvKSB7XG4gICAgd2luZG93V2lkdGggPSBEaW1lbnNpb25zLmdldChcIndpbmRvd1wiKS53aWR0aFxuICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmlubmVyV2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIFVzZSAnd2luZG93LmlubmVyV2lkdGgnIG91dHNpZGUgRXhwbyBiZWNhdXNlIHNvbWV0aW1lcyB3aW5kb3cgd2lkdGggZXhjbHVkZXMgc2Nyb2xsXG4gICAgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aFxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkRpZG4ndCBrbm93IHdoZXJlIHRvIGdldCB3aW5kb3cgd2lkdGggZnJvbVwiKVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0ge31cblxuICBmb3IgKGNvbnN0IGJyZWFrcG9pbnREYXRhIG9mIGJyZWFrcG9pbnRzKSB7XG4gICAgY29uc3QgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnREYXRhWzBdXG4gICAgY29uc3Qgd2lkdGggPSBicmVha3BvaW50RGF0YVsxXVxuXG4gICAgaWYgKCFyZXN1bHQubmFtZSAmJiB3aW5kb3dXaWR0aCA+PSB3aWR0aCkge1xuICAgICAgcmVzdWx0Lm5hbWUgPSBicmVha3BvaW50XG4gICAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1Eb3duYF0gPSB0cnVlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtgJHticmVha3BvaW50fURvd25gXSA9ICFyZXN1bHQubmFtZVxuICAgIH1cblxuICAgIHJlc3VsdFtgJHticmVha3BvaW50fVVwYF0gPSBCb29sZWFuKHJlc3VsdC5uYW1lKVxuICB9XG5cbiAgaWYgKHJlc3VsdC5uYW1lKSB7XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBub3QgZmluZCBicmVha3BvaW50IGZyb20gd2luZG93IHdpZHRoOiAke3dpbmRvd1dpZHRofWApXG59XG5cbmNvbnN0IHNpemVUeXBlcyA9IFtcImRvd25cIiwgXCJ1cFwiXVxuXG5jb25zdCB1c2VCcmVha3BvaW50ID0gKGFyZ3MgPSB7fSkgPT4ge1xuICBjb25zdCBzID0gdXNlU2hhcGUoYXJncylcblxuICBzLm1ldGEuYnJlYWtwb2ludHMgfHw9IGNvbmZpZy5nZXRCcmVha3BvaW50cygpXG5cbiAgY29uc3QgY2hlY2tBbmRVcGRhdGVCcmVha3BvaW50ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBjYWxjdWxhdGVCcmVha1BvaW50KHMubS5icmVha3BvaW50cylcblxuICAgIGlmIChicmVha3BvaW50Lm5hbWUgIT0gcy5zLmJyZWFrcG9pbnQubmFtZSkge1xuICAgICAgcy5zZXQoe2JyZWFrcG9pbnR9KVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EaW1lbnNpb25zQ2hhbmdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNoZWNrQW5kVXBkYXRlQnJlYWtwb2ludCgpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uQnJlYWtwb2ludHNDaGFuZ2UgPSB1c2VDYWxsYmFjaygoe25ld1ZhbHVlfSkgPT4ge1xuICAgIHMubWV0YS5icmVha3BvaW50cyA9IG5ld1ZhbHVlXG4gICAgY2hlY2tBbmRVcGRhdGVCcmVha3BvaW50KClcbiAgfSwgW10pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIGJyZWFrcG9pbnQ6ICgpID0+IGNhbGN1bGF0ZUJyZWFrUG9pbnQocy5tLmJyZWFrcG9pbnRzKVxuICB9KVxuXG4gIGNvbnN0IHN0eWxpbmcgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGNvbnN0IHN0eWxlID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncy5iYXNlKVxuXG4gICAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBzLm0uYnJlYWtwb2ludHMpIHtcbiAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBicmVha3BvaW50RGF0YVswXVxuXG4gICAgICBmb3IgKGNvbnN0IHNpemVUeXBlIG9mIHNpemVUeXBlcykge1xuICAgICAgICBjb25zdCBicmVha3BvaW50V2l0aFNpemVUeXBlID0gYCR7YnJlYWtwb2ludH0ke2luZmxlY3Rpb24uY2FtZWxpemUoc2l6ZVR5cGUpfWBcblxuICAgICAgICBpZiAoYXJnc1ticmVha3BvaW50V2l0aFNpemVUeXBlXSAmJiBzLnMuYnJlYWtwb2ludFticmVha3BvaW50V2l0aFNpemVUeXBlXSkge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oc3R5bGUsIGFyZ3NbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVcbiAgfSwgW10pXG5cbiAgdXNlRXZlbnRFbWl0dGVyKGNvbmZpZy5nZXRFdmVudHMoKSwgXCJvbkJyZWFrcG9pbnRzQ2hhbmdlXCIsIG9uQnJlYWtwb2ludHNDaGFuZ2UpXG4gIHVzZUV2ZW50TGlzdGVuZXIoRGltZW5zaW9ucywgXCJjaGFuZ2VcIiwgb25EaW1lbnNpb25zQ2hhbmdlKVxuXG4gIHJldHVybiB7XG4gICAgc3R5bGluZyxcbiAgICAuLi5zLnMuYnJlYWtwb2ludFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZUJyZWFrcG9pbnRcbiJdfQ==
117
+ exports.default = useBreakpoint;
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWJyZWFrcG9pbnQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1icmVha3BvaW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQWlDO0FBQ2pDLDREQUFnQztBQUNoQywrQ0FBdUM7QUFDdkMsdURBQXdDO0FBQ3hDLDhEQUFpQztBQUNqQyxrRkFBb0Q7QUFDcEQsb0ZBQXNEO0FBQ3RELHdGQUEyRDtBQUUzRCxTQUFTLG1CQUFtQixDQUFDLFdBQVc7SUFDdEMsSUFBSSxXQUFXLENBQUE7SUFFZixJQUFJLG9CQUFNLEVBQUUsQ0FBQztRQUNYLFdBQVcsR0FBRyx5QkFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDOUMsQ0FBQztTQUFNLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDNUUsc0ZBQXNGO1FBQ3RGLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFBO0lBQ2pDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7SUFFakIsS0FBSyxNQUFNLGNBQWMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDcEMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRS9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQTtZQUN4QixNQUFNLENBQUMsR0FBRyxVQUFVLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQTtRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxHQUFHLFVBQVUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFBO1FBQzVDLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxVQUFVLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELFdBQVcsRUFBRSxDQUFDLENBQUE7QUFDbkYsQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBRWhDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQ2xDLE1BQU0sQ0FBQyxHQUFHLElBQUEsc0JBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQTtJQUV4QixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxtQkFBTSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBRTlDLE1BQU0sd0JBQXdCLEdBQUcsSUFBQSxtQkFBVyxFQUFDLEdBQUcsRUFBRTtRQUNoRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXZELElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQTtRQUNyQixDQUFDO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sTUFBTSxrQkFBa0IsR0FBRyxJQUFBLG1CQUFXLEVBQUMsR0FBRyxFQUFFO1FBQzFDLHdCQUF3QixFQUFFLENBQUE7SUFDNUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sTUFBTSxtQkFBbUIsR0FBRyxJQUFBLG1CQUFXLEVBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUU7UUFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFBO1FBQzdCLHdCQUF3QixFQUFFLENBQUE7SUFDNUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztLQUN2RCxDQUFDLENBQUE7SUFFRixNQUFNLE9BQU8sR0FBRyxJQUFBLG1CQUFXLEVBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFMUMsS0FBSyxNQUFNLGNBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUVwQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtnQkFFOUUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7b0JBQzNFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUE7Z0JBQ3BELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sSUFBQSw4QkFBZSxFQUFDLG1CQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtJQUMvRSxJQUFBLCtCQUFnQixFQUFDLHlCQUFVLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFFMUQsT0FBTztRQUNMLE9BQU87UUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtLQUNsQixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsa0JBQWUsYUFBYSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VDYWxsYmFja30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnLmpzXCJcbmltcG9ydCB7RGltZW5zaW9uc30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBpc0V4cG8gZnJvbSBcIi4vaXMtZXhwby5qc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCIuL3VzZS1ldmVudC1lbWl0dGVyLmpzXCJcbmltcG9ydCB1c2VFdmVudExpc3RlbmVyIGZyb20gXCIuL3VzZS1ldmVudC1saXN0ZW5lci5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUJyZWFrUG9pbnQoYnJlYWtwb2ludHMpIHtcbiAgbGV0IHdpbmRvd1dpZHRoXG5cbiAgaWYgKGlzRXhwbykge1xuICAgIHdpbmRvd1dpZHRoID0gRGltZW5zaW9ucy5nZXQoXCJ3aW5kb3dcIikud2lkdGhcbiAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5pbm5lcldpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBVc2UgJ3dpbmRvdy5pbm5lcldpZHRoJyBvdXRzaWRlIEV4cG8gYmVjYXVzZSBzb21ldGltZXMgd2luZG93IHdpZHRoIGV4Y2x1ZGVzIHNjcm9sbFxuICAgIHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGhcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJEaWRuJ3Qga25vdyB3aGVyZSB0byBnZXQgd2luZG93IHdpZHRoIGZyb21cIilcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHt9XG5cbiAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBicmVha3BvaW50cykge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBicmVha3BvaW50RGF0YVswXVxuICAgIGNvbnN0IHdpZHRoID0gYnJlYWtwb2ludERhdGFbMV1cblxuICAgIGlmICghcmVzdWx0Lm5hbWUgJiYgd2luZG93V2lkdGggPj0gd2lkdGgpIHtcbiAgICAgIHJlc3VsdC5uYW1lID0gYnJlYWtwb2ludFxuICAgICAgcmVzdWx0W2Ake2JyZWFrcG9pbnR9RG93bmBdID0gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1Eb3duYF0gPSAhcmVzdWx0Lm5hbWVcbiAgICB9XG5cbiAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1VcGBdID0gQm9vbGVhbihyZXN1bHQubmFtZSlcbiAgfVxuXG4gIGlmIChyZXN1bHQubmFtZSkge1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3Qgbm90IGZpbmQgYnJlYWtwb2ludCBmcm9tIHdpbmRvdyB3aWR0aDogJHt3aW5kb3dXaWR0aH1gKVxufVxuXG5jb25zdCBzaXplVHlwZXMgPSBbXCJkb3duXCIsIFwidXBcIl1cblxuY29uc3QgdXNlQnJlYWtwb2ludCA9IChhcmdzID0ge30pID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKGFyZ3MpXG5cbiAgcy5tZXRhLmJyZWFrcG9pbnRzIHx8PSBjb25maWcuZ2V0QnJlYWtwb2ludHMoKVxuXG4gIGNvbnN0IGNoZWNrQW5kVXBkYXRlQnJlYWtwb2ludCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gY2FsY3VsYXRlQnJlYWtQb2ludChzLm0uYnJlYWtwb2ludHMpXG5cbiAgICBpZiAoYnJlYWtwb2ludC5uYW1lICE9IHMucy5icmVha3BvaW50Lm5hbWUpIHtcbiAgICAgIHMuc2V0KHticmVha3BvaW50fSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGltZW5zaW9uc0NoYW5nZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjaGVja0FuZFVwZGF0ZUJyZWFrcG9pbnQoKVxuICB9LCBbXSlcblxuICBjb25zdCBvbkJyZWFrcG9pbnRzQ2hhbmdlID0gdXNlQ2FsbGJhY2soKHtuZXdWYWx1ZX0pID0+IHtcbiAgICBzLm1ldGEuYnJlYWtwb2ludHMgPSBuZXdWYWx1ZVxuICAgIGNoZWNrQW5kVXBkYXRlQnJlYWtwb2ludCgpXG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBicmVha3BvaW50OiAoKSA9PiBjYWxjdWxhdGVCcmVha1BvaW50KHMubS5icmVha3BvaW50cylcbiAgfSlcblxuICBjb25zdCBzdHlsaW5nID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBjb25zdCBzdHlsZSA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MuYmFzZSlcblxuICAgIGZvciAoY29uc3QgYnJlYWtwb2ludERhdGEgb2Ygcy5tLmJyZWFrcG9pbnRzKSB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cblxuICAgICAgZm9yIChjb25zdCBzaXplVHlwZSBvZiBzaXplVHlwZXMpIHtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFdpdGhTaXplVHlwZSA9IGAke2JyZWFrcG9pbnR9JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNpemVUeXBlKX1gXG5cbiAgICAgICAgaWYgKGFyZ3NbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0gJiYgcy5zLmJyZWFrcG9pbnRbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBhcmdzW2JyZWFrcG9pbnRXaXRoU2l6ZVR5cGVdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlXG4gIH0sIFtdKVxuXG4gIHVzZUV2ZW50RW1pdHRlcihjb25maWcuZ2V0RXZlbnRzKCksIFwib25CcmVha3BvaW50c0NoYW5nZVwiLCBvbkJyZWFrcG9pbnRzQ2hhbmdlKVxuICB1c2VFdmVudExpc3RlbmVyKERpbWVuc2lvbnMsIFwiY2hhbmdlXCIsIG9uRGltZW5zaW9uc0NoYW5nZSlcblxuICByZXR1cm4ge1xuICAgIHN0eWxpbmcsXG4gICAgLi4ucy5zLmJyZWFrcG9pbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VCcmVha3BvaW50XG4iXX0=
@@ -1,31 +1,37 @@
1
- import CanCan from "./can-can.js";
2
- import { useCallback, useMemo } from "react";
3
- import useCurrentUser from "./use-current-user.js";
4
- import useEventEmitter from "./use-event-emitter.js";
5
- 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
+ exports.default = useCanCan;
7
+ const can_can_js_1 = __importDefault(require("./can-can.js"));
8
+ const react_1 = require("react");
9
+ const use_current_user_js_1 = __importDefault(require("./use-current-user.js"));
10
+ const use_event_emitter_js_1 = __importDefault(require("./use-event-emitter.js"));
11
+ const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
6
12
  /**
7
13
  * @param {function() : Array} abilitiesCallback
8
14
  * @param {Array} dependencies
9
15
  * @returns {CanCan}
10
16
  */
11
- export default function useCanCan(abilitiesCallback, dependencies) {
12
- const currentUser = useCurrentUser();
13
- const s = useShape({ abilitiesCallback });
17
+ function useCanCan(abilitiesCallback, dependencies) {
18
+ const currentUser = (0, use_current_user_js_1.default)();
19
+ const s = (0, use_shape_js_1.default)({ abilitiesCallback });
14
20
  s.useStates({
15
21
  canCan: null,
16
22
  lastUpdate: () => new Date()
17
23
  });
18
- const loadAbilities = useCallback(async () => {
19
- const canCan = CanCan.current();
24
+ const loadAbilities = (0, react_1.useCallback)(async () => {
25
+ const canCan = can_can_js_1.default.current();
20
26
  const abilities = s.p.abilitiesCallback();
21
27
  await canCan.loadAbilities(abilities);
22
28
  s.set({ canCan, lastUpdate: new Date() });
23
29
  }, []);
24
- const onResetAbilities = useCallback(() => {
30
+ const onResetAbilities = (0, react_1.useCallback)(() => {
25
31
  s.set({ canCan: null }, { silent: true });
26
32
  loadAbilities();
27
33
  }, []);
28
- const loadAbilitiesOnNew = useCallback(async () => {
34
+ const loadAbilitiesOnNew = (0, react_1.useCallback)(async () => {
29
35
  const canCan = s.s.canCan;
30
36
  s.set({ canCan: null }, { silent: true });
31
37
  if (canCan) {
@@ -39,10 +45,10 @@ export default function useCanCan(abilitiesCallback, dependencies) {
39
45
  // @ts-expect-error
40
46
  dependencies = [currentUser?.id()];
41
47
  }
42
- useMemo(() => {
48
+ (0, react_1.useMemo)(() => {
43
49
  loadAbilitiesOnNew();
44
50
  }, dependencies);
45
- useEventEmitter(CanCan.current().events, "onResetAbilities", onResetAbilities);
51
+ (0, use_event_emitter_js_1.default)(can_can_js_1.default.current().events, "onResetAbilities", onResetAbilities);
46
52
  return s.s.canCan;
47
53
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNhbi1jYW4uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jYW4tY2FuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMxQyxPQUFPLGNBQWMsTUFBTSx1QkFBdUIsQ0FBQTtBQUNsRCxPQUFPLGVBQWUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRCxPQUFPLFFBQVEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUUzRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsWUFBWTtJQUMvRCxNQUFNLFdBQVcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtJQUNwQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxDQUFDLENBQUE7SUFFdkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFO0tBQzdCLENBQUMsQ0FBQTtJQUVGLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRXpDLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVyQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFDLENBQUMsQ0FBQTtJQUN6QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDeEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO1FBQ3JDLGFBQWEsRUFBRSxDQUFBO0lBQ2pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBRXpCLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtRQUVyQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUE7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGFBQWEsRUFBRSxDQUFBO1FBQ3ZCLENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsbUJBQW1CO1FBQ25CLFlBQVksR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ1gsa0JBQWtCLEVBQUUsQ0FBQTtJQUN0QixDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFFaEIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUU5RSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2FuQ2FuIGZyb20gXCIuL2Nhbi1jYW4uanNcIlxuaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB1c2VDdXJyZW50VXNlciBmcm9tIFwiLi91c2UtY3VycmVudC11c2VyLmpzXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWVtaXR0ZXIuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IEFycmF5fSBhYmlsaXRpZXNDYWxsYmFja1xuICogQHBhcmFtIHtBcnJheX0gZGVwZW5kZW5jaWVzXG4gKiBAcmV0dXJucyB7Q2FuQ2FufVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VDYW5DYW4oYWJpbGl0aWVzQ2FsbGJhY2ssIGRlcGVuZGVuY2llcykge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZUN1cnJlbnRVc2VyKClcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHthYmlsaXRpZXNDYWxsYmFja30pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIGNhbkNhbjogbnVsbCxcbiAgICBsYXN0VXBkYXRlOiAoKSA9PiBuZXcgRGF0ZSgpXG4gIH0pXG5cbiAgY29uc3QgbG9hZEFiaWxpdGllcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjYW5DYW4gPSBDYW5DYW4uY3VycmVudCgpXG4gICAgY29uc3QgYWJpbGl0aWVzID0gcy5wLmFiaWxpdGllc0NhbGxiYWNrKClcblxuICAgIGF3YWl0IGNhbkNhbi5sb2FkQWJpbGl0aWVzKGFiaWxpdGllcylcblxuICAgIHMuc2V0KHtjYW5DYW4sIGxhc3RVcGRhdGU6IG5ldyBEYXRlKCl9KVxuICB9LCBbXSlcblxuICBjb25zdCBvblJlc2V0QWJpbGl0aWVzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHMuc2V0KHtjYW5DYW46IG51bGx9LCB7c2lsZW50OiB0cnVlfSlcbiAgICBsb2FkQWJpbGl0aWVzKClcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZEFiaWxpdGllc09uTmV3ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNhbkNhbiA9IHMucy5jYW5DYW5cblxuICAgIHMuc2V0KHtjYW5DYW46IG51bGx9LCB7c2lsZW50OiB0cnVlfSlcblxuICAgIGlmIChjYW5DYW4pIHtcbiAgICAgIGF3YWl0IGNhbkNhbj8ucmVzZXRBYmlsaXRpZXMoKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBsb2FkQWJpbGl0aWVzKClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGlmICghZGVwZW5kZW5jaWVzKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGRlcGVuZGVuY2llcyA9IFtjdXJyZW50VXNlcj8uaWQoKV1cbiAgfVxuXG4gIHVzZU1lbW8oKCkgPT4ge1xuICAgIGxvYWRBYmlsaXRpZXNPbk5ldygpXG4gIH0sIGRlcGVuZGVuY2llcylcblxuICB1c2VFdmVudEVtaXR0ZXIoQ2FuQ2FuLmN1cnJlbnQoKS5ldmVudHMsIFwib25SZXNldEFiaWxpdGllc1wiLCBvblJlc2V0QWJpbGl0aWVzKVxuXG4gIHJldHVybiBzLnMuY2FuQ2FuXG59XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNhbi1jYW4uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jYW4tY2FuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBV0EsNEJBK0NDO0FBMURELDhEQUFpQztBQUNqQyxpQ0FBMEM7QUFDMUMsZ0ZBQWtEO0FBQ2xELGtGQUFvRDtBQUNwRCx3RkFBMkQ7QUFFM0Q7Ozs7R0FJRztBQUNILFNBQXdCLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZO0lBQy9ELE1BQU0sV0FBVyxHQUFHLElBQUEsNkJBQWMsR0FBRSxDQUFBO0lBQ3BDLE1BQU0sQ0FBQyxHQUFHLElBQUEsc0JBQVEsRUFBQyxFQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQTtJQUV2QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUU7S0FDN0IsQ0FBQyxDQUFBO0lBRUYsTUFBTSxhQUFhLEdBQUcsSUFBQSxtQkFBVyxFQUFDLEtBQUssSUFBSSxFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLG9CQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRXpDLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVyQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFDLENBQUMsQ0FBQTtJQUN6QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLGdCQUFnQixHQUFHLElBQUEsbUJBQVcsRUFBQyxHQUFHLEVBQUU7UUFDeEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO1FBQ3JDLGFBQWEsRUFBRSxDQUFBO0lBQ2pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxtQkFBVyxFQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBRXpCLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtRQUVyQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUE7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGFBQWEsRUFBRSxDQUFBO1FBQ3ZCLENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsbUJBQW1CO1FBQ25CLFlBQVksR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxJQUFBLGVBQU8sRUFBQyxHQUFHLEVBQUU7UUFDWCxrQkFBa0IsRUFBRSxDQUFBO0lBQ3RCLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUVoQixJQUFBLDhCQUFlLEVBQUMsb0JBQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUU5RSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2FuQ2FuIGZyb20gXCIuL2Nhbi1jYW4uanNcIlxuaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB1c2VDdXJyZW50VXNlciBmcm9tIFwiLi91c2UtY3VycmVudC11c2VyLmpzXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWVtaXR0ZXIuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IEFycmF5fSBhYmlsaXRpZXNDYWxsYmFja1xuICogQHBhcmFtIHtBcnJheX0gZGVwZW5kZW5jaWVzXG4gKiBAcmV0dXJucyB7Q2FuQ2FufVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VDYW5DYW4oYWJpbGl0aWVzQ2FsbGJhY2ssIGRlcGVuZGVuY2llcykge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZUN1cnJlbnRVc2VyKClcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHthYmlsaXRpZXNDYWxsYmFja30pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIGNhbkNhbjogbnVsbCxcbiAgICBsYXN0VXBkYXRlOiAoKSA9PiBuZXcgRGF0ZSgpXG4gIH0pXG5cbiAgY29uc3QgbG9hZEFiaWxpdGllcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjYW5DYW4gPSBDYW5DYW4uY3VycmVudCgpXG4gICAgY29uc3QgYWJpbGl0aWVzID0gcy5wLmFiaWxpdGllc0NhbGxiYWNrKClcblxuICAgIGF3YWl0IGNhbkNhbi5sb2FkQWJpbGl0aWVzKGFiaWxpdGllcylcblxuICAgIHMuc2V0KHtjYW5DYW4sIGxhc3RVcGRhdGU6IG5ldyBEYXRlKCl9KVxuICB9LCBbXSlcblxuICBjb25zdCBvblJlc2V0QWJpbGl0aWVzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHMuc2V0KHtjYW5DYW46IG51bGx9LCB7c2lsZW50OiB0cnVlfSlcbiAgICBsb2FkQWJpbGl0aWVzKClcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZEFiaWxpdGllc09uTmV3ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNhbkNhbiA9IHMucy5jYW5DYW5cblxuICAgIHMuc2V0KHtjYW5DYW46IG51bGx9LCB7c2lsZW50OiB0cnVlfSlcblxuICAgIGlmIChjYW5DYW4pIHtcbiAgICAgIGF3YWl0IGNhbkNhbj8ucmVzZXRBYmlsaXRpZXMoKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBsb2FkQWJpbGl0aWVzKClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGlmICghZGVwZW5kZW5jaWVzKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGRlcGVuZGVuY2llcyA9IFtjdXJyZW50VXNlcj8uaWQoKV1cbiAgfVxuXG4gIHVzZU1lbW8oKCkgPT4ge1xuICAgIGxvYWRBYmlsaXRpZXNPbk5ldygpXG4gIH0sIGRlcGVuZGVuY2llcylcblxuICB1c2VFdmVudEVtaXR0ZXIoQ2FuQ2FuLmN1cnJlbnQoKS5ldmVudHMsIFwib25SZXNldEFiaWxpdGllc1wiLCBvblJlc2V0QWJpbGl0aWVzKVxuXG4gIHJldHVybiBzLnMuY2FuQ2FuXG59XG4iXX0=
@@ -1,11 +1,49 @@
1
- import debounce from "debounce";
2
- import { digg } from "diggerize";
3
- import * as inflection from "inflection";
4
- import ModelEvents from "./model-events.js";
5
- import { useCallback, useLayoutEffect, useMemo } from "react";
6
- import useCreatedEvent from "./use-created-event.js";
7
- import useShape from "set-state-compare/build/use-shape.js";
8
- import useQueryParams from "on-location-changed/build/use-query-params.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 debounce_1 = __importDefault(require("debounce"));
40
+ const diggerize_1 = require("diggerize");
41
+ const inflection = __importStar(require("inflection"));
42
+ const model_events_js_1 = __importDefault(require("./model-events.js"));
43
+ const react_1 = require("react");
44
+ const use_created_event_js_1 = __importDefault(require("./use-created-event.js"));
45
+ const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
46
+ const use_query_params_js_1 = __importDefault(require("on-location-changed/build/use-query-params.js"));
9
47
  /**
10
48
  * @param {object} props
11
49
  * @param {Record<string, string[]>} props.abilities
@@ -47,17 +85,17 @@ const useCollection = (props, cacheKeys = []) => {
47
85
  if (Object.keys(restProps).length > 0) {
48
86
  throw new Error(`Unknown props given to useCollection: ${Object.keys(restProps).join(", ")}`);
49
87
  }
50
- const s = useShape(props);
51
- const queryName = initialQueryName || digg(modelClass.modelClassData(), "collectionKey");
52
- s.meta.queryParams = useQueryParams();
53
- const hasQParams = useCallback(() => {
88
+ const s = (0, use_shape_js_1.default)(props);
89
+ const queryName = initialQueryName || (0, diggerize_1.digg)(modelClass.modelClassData(), "collectionKey");
90
+ s.meta.queryParams = (0, use_query_params_js_1.default)();
91
+ const hasQParams = (0, react_1.useCallback)(() => {
54
92
  if (s.s.queryQName in s.m.queryParams)
55
93
  return true;
56
94
  return false;
57
95
  }, []);
58
- const qParams = useCallback(() => {
96
+ const qParams = (0, react_1.useCallback)(() => {
59
97
  if (hasQParams())
60
- return JSON.parse(digg(s.m.queryParams, s.s.queryQName));
98
+ return JSON.parse((0, diggerize_1.digg)(s.m.queryParams, s.s.queryQName));
61
99
  return {};
62
100
  }, []);
63
101
  s.useStates({
@@ -87,7 +125,7 @@ const useCollection = (props, cacheKeys = []) => {
87
125
  else {
88
126
  modelIdsCacheString = s.s.models.map((model) => model.cacheKey())?.join("---");
89
127
  }
90
- const loadOverallCount = useCallback(async () => {
128
+ const loadOverallCount = (0, react_1.useCallback)(async () => {
91
129
  const baseQuery = s.p.collection || s.p.modelClass.all();
92
130
  const overallCount = await baseQuery.count();
93
131
  s.set({
@@ -96,7 +134,7 @@ const useCollection = (props, cacheKeys = []) => {
96
134
  showNoRecordsFoundContent: showNoRecordsFoundContent({ overallCount })
97
135
  });
98
136
  }, []);
99
- const loadQParams = useCallback(() => {
137
+ const loadQParams = (0, react_1.useCallback)(() => {
100
138
  const qParamsToSet = hasQParams() ? qParams() : Object.assign({}, s.props.defaultParams);
101
139
  const searchParams = [];
102
140
  if (s.m.queryParams[s.s.querySName]) {
@@ -110,7 +148,7 @@ const useCollection = (props, cacheKeys = []) => {
110
148
  searchParams
111
149
  });
112
150
  }, []);
113
- const loadModels = useCallback(async () => {
151
+ const loadModels = (0, react_1.useCallback)(async () => {
114
152
  let query = s.props.collection?.clone() || s.p.modelClass.ransack();
115
153
  if (s.props.pagination) {
116
154
  const page = s.m.queryParams[s.s.queryPageName] || 1;
@@ -167,19 +205,19 @@ const useCollection = (props, cacheKeys = []) => {
167
205
  showNoRecordsFoundContent: showNoRecordsFoundContent({ models })
168
206
  });
169
207
  }, []);
170
- const loadModelsDebounce = useCallback(debounce(loadModels), []);
171
- const onModelDestroyed = useCallback((args) => {
208
+ const loadModelsDebounce = (0, react_1.useCallback)((0, debounce_1.default)(loadModels), []);
209
+ const onModelDestroyed = (0, react_1.useCallback)((args) => {
172
210
  s.set({
173
211
  models: s.s.models.filter((model) => model.id() != args.model.id())
174
212
  });
175
213
  }, []);
176
- const onModelUpdated = useCallback((args) => {
177
- const updatedModel = digg(args, "model");
214
+ const onModelUpdated = (0, react_1.useCallback)((args) => {
215
+ const updatedModel = (0, diggerize_1.digg)(args, "model");
178
216
  const foundModel = s.s.models.find((model) => model.id() == updatedModel.id());
179
217
  if (foundModel)
180
218
  loadModelsDebounce();
181
219
  }, []);
182
- const showNoRecordsAvailableContent = useCallback((args) => {
220
+ const showNoRecordsAvailableContent = (0, react_1.useCallback)((args) => {
183
221
  let models, overallCount;
184
222
  if (args.models !== undefined) {
185
223
  models = args.models;
@@ -198,7 +236,7 @@ const useCollection = (props, cacheKeys = []) => {
198
236
  if (models.length === 0 && overallCount === 0 && s.p.noRecordsAvailableContent)
199
237
  return true;
200
238
  }, []);
201
- const showNoRecordsFoundContent = useCallback((args) => {
239
+ const showNoRecordsFoundContent = (0, react_1.useCallback)((args) => {
202
240
  let models, overallCount;
203
241
  if (args.models !== undefined) {
204
242
  models = args.models;
@@ -220,10 +258,10 @@ const useCollection = (props, cacheKeys = []) => {
220
258
  if (models.length === 0 && s.props.noRecordsFoundContent)
221
259
  return true;
222
260
  }, []);
223
- const onCreated = useCallback(() => {
261
+ const onCreated = (0, react_1.useCallback)(() => {
224
262
  loadModelsDebounce();
225
263
  }, []);
226
- useMemo(() => {
264
+ (0, react_1.useMemo)(() => {
227
265
  if (!("ifCondition" in s.props) || s.props.ifCondition) {
228
266
  loadQParams();
229
267
  loadModels();
@@ -236,18 +274,18 @@ const useCollection = (props, cacheKeys = []) => {
236
274
  s.m.queryParams[s.s.querySName],
237
275
  collection
238
276
  ].concat(cacheKeys));
239
- useMemo(() => {
277
+ (0, react_1.useMemo)(() => {
240
278
  if (s.props.noRecordsAvailableContent) {
241
279
  loadOverallCount();
242
280
  }
243
281
  }, []);
244
- useCreatedEvent(s.p.modelClass, onCreated);
245
- useLayoutEffect(() => {
282
+ (0, use_created_event_js_1.default)(s.p.modelClass, onCreated);
283
+ (0, react_1.useLayoutEffect)(() => {
246
284
  const connections = [];
247
285
  if (s.s.models) {
248
286
  for (const model of s.s.models) {
249
- connections.push(ModelEvents.connectUpdated(model, onModelUpdated));
250
- connections.push(ModelEvents.connectDestroyed(model, onModelDestroyed));
287
+ connections.push(model_events_js_1.default.connectUpdated(model, onModelUpdated));
288
+ connections.push(model_events_js_1.default.connectDestroyed(model, onModelDestroyed));
251
289
  }
252
290
  }
253
291
  return () => {
@@ -262,5 +300,5 @@ const useCollection = (props, cacheKeys = []) => {
262
300
  result[modelVariableName] = s.s.models;
263
301
  return result;
264
302
  };
265
- export default useCollection;
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jb2xsZWN0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQTtBQUMvQixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMzRCxPQUFPLGVBQWUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRCxPQUFPLFFBQVEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUMzRCxPQUFPLGNBQWMsTUFBTSwrQ0FBK0MsQ0FBQTtBQUUxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDOUMsTUFBTSxFQUNKLFNBQVMsRUFDVCxVQUFVLEVBQ1YsYUFBYSxFQUNiLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFVBQVUsRUFDVix5QkFBeUIsR0FBRyxTQUFTLEVBQ3JDLHFCQUFxQixHQUFHLFNBQVMsRUFDakMsY0FBYyxFQUNkLFVBQVUsR0FBRyxLQUFLLEVBQ2xCLFFBQVEsR0FBRyxFQUFFLEVBQ2IsV0FBVyxFQUNYLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0IsT0FBTyxFQUNQLE1BQU0sR0FBRyxFQUFFLEVBQ1gsYUFBYSxFQUNiLEdBQUcsU0FBUyxFQUNiLEdBQUcsS0FBSyxDQUFBO0lBRVQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksS0FBSyxD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QztnQkFDcEMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUE7SUFDSCxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUE7SUFFekIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUUzRyxNQUFNLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUE7SUFDaEQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFFdEMsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxlQUFlLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJvdW5jZSBmcm9tIFwiZGVib3VuY2VcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlQ3JlYXRlZEV2ZW50IGZyb20gXCIuL3VzZS1jcmVhdGVkLWV2ZW50LmpzXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvdXNlLXNoYXBlLmpzXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBwcm9wcy5hYmlsaXRpZXNcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9IHByb3BzLmNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcHJvcHMuZGVmYXVsdFBhcmFtc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gcHJvcHMuZ3JvdXBCeVxuICogQHBhcmFtIHtmdW5jdGlvbigpIDogYm9vbGVhbn0gcHJvcHMuaWZDb25kaXRpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy5saW1pdFxuICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IHByb3BzLm1vZGVsQ2xhc3NcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IGltcG9ydChcInJlYWN0XCIpLlJlYWN0Tm9kZX0gcHJvcHMubm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudFxuICogQHBhcmFtIHtmdW5jdGlvbigpIDogaW1wb3J0KFwicmVhY3RcIikuUmVhY3ROb2RlfSBwcm9wcy5ub1JlY29yZHNGb3VuZENvbnRlbnRcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IHZvaWR9IHByb3BzLm9uTW9kZWxzTG9hZGVkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLnBhZ2luYXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzLnByZWxvYWRzXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKHtxdWVyeTogaW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9KSA6IGltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBwcm9wcy5xdWVyeU1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLnF1ZXJ5TmFtZVxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBwcm9wcy5yYW5zYWNrXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gcHJvcHMuc2VsZWN0XG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gcHJvcHMuc2VsZWN0Q29sdW1uc1xuICogQHBhcmFtIHthbnlbXX0gY2FjaGVLZXlzXG4gKiBAcmV0dXJucyB7e1xuICogICBtb2RlbHM6IEFycmF5PGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0PixcbiAqICAgbW9kZWxJZHNDYWNoZVN0cmluZzogQXJyYXk8bnVtYmVyfHN0cmluZz4sXG4gKiAgIG92ZXJhbGxDb3VudDogbnVtYmVyLFxuICogICBxdWVyeTogaW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHQsXG4gKiAgIHF1ZXJ5TmFtZTogc3RyaW5nLFxuICogICBxdWVyeVBlcktleTogc3RyaW5nLFxuICogICBxdWVyeVFOYW1lOiBzdHJpbmcsXG4gKiAgIHF1ZXJ5U05hbWU6IHN0cmluZyxcbiAqICAgcXVlcnlQYWdlTmFtZTogc3RyaW5nLFxuICogICByZXN1bHQ6IGltcG9ydChcIi4vcmVzdWx0LmpzXCIpLmRlZmF1bHQsXG4gKiAgIHNlYXJjaFBhcmFtczogc3RyaW5nW10sXG4gKiAgIHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50OiBmYWxzZSB8IGltcG9ydChcInJlYWN0XCIpLlJlYWN0Tm9kZSxcbiAqICAgc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudDogZmFsc2UgfCBpbXBvcnQoXCJyZWFjdFwiKS5SZWFjdE5vZGVcbiAqIH19XG4gKi9cbmNvbnN0IHVzZUNvbGxlY3Rpb24gPSAocHJvcHMsIGNhY2hlS2V5cyA9IFtdKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhYmlsaXRpZXMsXG4gICAgY29sbGVjdGlvbixcbiAgICBkZWZhdWx0UGFyYW1zLFxuICAgIGdyb3VwQnksXG4gICAgaWZDb25kaXRpb24sXG4gICAgbGltaXQsXG4gICAgbW9kZWxDbGFzcyxcbiAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50ID0gdW5kZWZpbmVkLFxuICAgIG5vUmVjb3Jkc0ZvdW5kQ29udGVudCA9IHVuZGVmaW5lZCxcbiAgICBvbk1vZGVsc0xvYWRlZCxcbiAgICBwYWdpbmF0aW9uID0gZmFsc2UsXG4gICAgcHJlbG9hZHMgPSBbXSxcbiAgICBxdWVyeU1ldGhvZCxcbiAgICBxdWVyeU5hbWU6IGluaXRpYWxRdWVyeU5hbWUsXG4gICAgcmFuc2FjayxcbiAgICBzZWxlY3QgPSB7fSxcbiAgICBzZWxlY3RDb2x1bW5zLFxuICAgIC4uLnJlc3RQcm9wc1xuICB9ID0gcHJvcHNcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIHVzZUNvbGxlY3Rpb246ICR7T2JqZWN0LmtleXMocmVzdFByb3BzKS5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShwcm9wcylcbiAgY29uc3QgcXVlcnlOYW1lID0gaW5pdGlhbFF1ZXJ5TmFtZSB8fCBkaWdnKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJjb2xsZWN0aW9uS2V5XCIpXG5cbiAgcy5tZXRhLnF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuXG4gIGNvbnN0IGhhc1FQYXJhbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHMucy5xdWVyeVFOYW1lIGluIHMubS5xdWVyeVBhcmFtcykgcmV0dXJuIHRydWVcblxuICAgIHJldHVybiBmYWxzZVxuICB9LCBbXSlcblxuICBjb25zdCBxUGFyYW1zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChoYXNRUGFyYW1zKCkpIHJldHVybiBKU09OLnBhcnNlKGRpZ2cocy5tLnF1ZXJ5UGFyYW1zLCBzLnMucXVlcnlRTmFtZSkpXG5cbiAgICByZXR1cm4ge31cbiAgfSwgW10pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIG1vZGVsczogdW5kZWZpbmVkLFxuICAgIG92ZXJhbGxDb3VudDogdW5kZWZpbmVkLFxuICAgIHF1ZXJ5OiB1bmRlZmluZWQsXG4gICAgcXVlcnlOYW1lLFxuICAgIHF1ZXJ5UGVyS2V5OiBgJHtxdWVyeU5hbWV9X3BlcmAsXG4gICAgcXVlcnlRTmFtZTogYCR7cXVlcnlOYW1lfV9xYCxcbiAgICBxdWVyeVNOYW1lOiBgJHtxdWVyeU5hbWV9X3NgLFxuICAgIHF1ZXJ5UGFnZU5hbWU6IGAke3F1ZXJ5TmFtZX1fcGFnZWAsXG4gICAgcmVzdWx0OiB1bmRlZmluZWQsXG4gICAgc2VhcmNoUGFyYW1zOiB1bmRlZmluZWQsXG4gICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IGZhbHNlLFxuICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IGZhbHNlXG4gIH0pXG4gIHMudXNlU3RhdGVzKHtcbiAgICBxUGFyYW1zOiAoKSA9PiBxUGFyYW1zKClcbiAgfSlcblxuICBsZXQgbW9kZWxJZHNDYWNoZVN0cmluZ1xuXG4gIGlmIChzLnMubW9kZWxzID09PSB1bmRlZmluZWQpIHtcbiAgICBtb2RlbElkc0NhY2hlU3RyaW5nID0gXCJtb2RlbHMtdW5kZWZpbmVkXCJcbiAgfSBlbHNlIGlmIChzLnMubW9kZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIG1vZGVsSWRzQ2FjaGVTdHJpbmcgPSBcIm5vLW1vZGVsc1wiXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxJZHNDYWNoZVN0cmluZyA9IHMucy5tb2RlbHMubWFwKChtb2RlbCkgPT4gbW9kZWwuY2FjaGVLZXkoKSk/LmpvaW4oXCItLS1cIilcbiAgfVxuXG4gIGNvbnN0IGxvYWRPdmVyYWxsQ291bnQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYmFzZVF1ZXJ5ID0gcy5wLmNvbGxlY3Rpb24gfHwgcy5wLm1vZGVsQ2xhc3MuYWxsKClcbiAgICBjb25zdCBvdmVyYWxsQ291bnQgPSBhd2FpdCBiYXNlUXVlcnkuY291bnQoKVxuXG4gICAgcy5zZXQoe1xuICAgICAgb3ZlcmFsbENvdW50LFxuICAgICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50KHtvdmVyYWxsQ291bnR9KSxcbiAgICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQoe292ZXJhbGxDb3VudH0pXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZFFQYXJhbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgcVBhcmFtc1RvU2V0ID0gaGFzUVBhcmFtcygpID8gcVBhcmFtcygpIDogT2JqZWN0LmFzc2lnbih7fSwgcy5wcm9wcy5kZWZhdWx0UGFyYW1zKVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IFtdXG5cbiAgICBpZiAocy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVNOYW1lXSkge1xuICAgICAgZm9yIChjb25zdCByYXdTZWFyY2hQYXJhbSBvZiBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5U05hbWVdKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFNlYXJjaFBhcmFtID0gSlNPTi5wYXJzZShyYXdTZWFyY2hQYXJhbSlcblxuICAgICAgICBzZWFyY2hQYXJhbXMucHVzaChwYXJzZWRTZWFyY2hQYXJhbSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzLnNldCh7XG4gICAgICBxUGFyYW1zOiBxUGFyYW1zVG9TZXQsXG4gICAgICBzZWFyY2hQYXJhbXNcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGxldCBxdWVyeSA9IHMucHJvcHMuY29sbGVjdGlvbj8uY2xvbmUoKSB8fCBzLnAubW9kZWxDbGFzcy5yYW5zYWNrKClcblxuICAgIGlmIChzLnByb3BzLnBhZ2luYXRpb24pIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UGFnZU5hbWVdIHx8IDFcbiAgICAgIGxldCBwZXIgPSBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UGVyS2V5XSB8fCAzMFxuXG4gICAgICBpZiAocGVyID09IFwiYWxsXCIpIHtcbiAgICAgICAgcGVyID0gOTk5Xzk5OV85OTlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlciA9IE51bWJlcihwZXIpXG4gICAgICB9XG5cbiAgICAgIHF1ZXJ5LnBhZ2UocGFnZSkucGVyKHBlcilcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5ncm91cEJ5KSBxdWVyeSA9IHF1ZXJ5Lmdyb3VwQnkoLi4ucy5wLmdyb3VwQnkpXG5cbiAgICBxdWVyeSA9IHF1ZXJ5XG4gICAgICAucmFuc2FjayhzLnMucVBhcmFtcylcbiAgICAgIC5zZWFyY2gocy5zLnNlYXJjaFBhcmFtcylcbiAgICAgIC5zZWFyY2hLZXkocy5zLnF1ZXJ5UU5hbWUpXG4gICAgICAucGFnZUtleShzLnMucXVlcnlQYWdlTmFtZSlcbiAgICAgIC5wZXJLZXkocy5zLnF1ZXJ5UGVyS2V5KVxuXG4gICAgaWYgKHMucHJvcHMuYWJpbGl0aWVzKSBxdWVyeS5hYmlsaXRpZXMocy5wLmFiaWxpdGllcylcbiAgICBpZiAocy5wcm9wcy5saW1pdCAhPT0gdW5kZWZpbmVkKSBxdWVyeS5saW1pdChzLnAubGltaXQpXG4gICAgaWYgKHMucHJvcHMucHJlbG9hZHMpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWRzKVxuICAgIGlmIChzLnByb3BzLnJhbnNhY2spIHF1ZXJ5LnJhbnNhY2socy5wcm9wcy5yYW5zYWNrKVxuICAgIGlmIChzLnByb3BzLnNlbGVjdCkgcXVlcnkuc2VsZWN0KHMucC5zZWxlY3QpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0Q29sdW1ucykgcXVlcnkuc2VsZWN0Q29sdW1ucyhzLnAuc2VsZWN0Q29sdW1ucylcblxuICAgIGxldCByZXN1bHRcblxuICAgIGlmIChzLnByb3BzLnF1ZXJ5TWV0aG9kKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBzLnAucXVlcnlNZXRob2Qoe3F1ZXJ5fSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgcXVlcnkucmVzdWx0KClcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbHMgPSByZXN1bHQubW9kZWxzKClcblxuICAgIGlmIChzLnByb3BzLm9uTW9kZWxzTG9hZGVkKSB7XG4gICAgICBzLnAub25Nb2RlbHNMb2FkZWQoe1xuICAgICAgICBtb2RlbHMsXG4gICAgICAgIHFQYXJhbXM6IHMucy5xUGFyYW1zLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgcmVzdWx0XG4gICAgICB9KVxuICAgIH1cblxuICAgIHMuc2V0KHtcbiAgICAgIG1vZGVsczogcmVzdWx0Lm1vZGVscygpLFxuICAgICAgcXVlcnksXG4gICAgICByZXN1bHQsXG4gICAgICBzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQoe21vZGVsc30pLFxuICAgICAgc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudDogc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCh7bW9kZWxzfSlcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWxzRGVib3VuY2UgPSB1c2VDYWxsYmFjayhkZWJvdW5jZShsb2FkTW9kZWxzKSwgW10pXG4gIGNvbnN0IG9uTW9kZWxEZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIHMuc2V0KHtcbiAgICAgIG1vZGVsczogcy5zLm1vZGVscy5maWx0ZXIoKG1vZGVsKSA9PiBtb2RlbC5pZCgpICE9IGFyZ3MubW9kZWwuaWQoKSlcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBvbk1vZGVsVXBkYXRlZCA9IHVzZUNhbGxiYWNrKChhcmdzKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZE1vZGVsID0gZGlnZyhhcmdzLCBcIm1vZGVsXCIpXG4gICAgY29uc3QgZm91bmRNb2RlbCA9IHMucy5tb2RlbHMuZmluZCgobW9kZWwpID0+IG1vZGVsLmlkKCkgPT0gdXBkYXRlZE1vZGVsLmlkKCkpXG5cbiAgICBpZiAoZm91bmRNb2RlbCkgbG9hZE1vZGVsc0RlYm91bmNlKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGxldCBtb2RlbHMsIG92ZXJhbGxDb3VudFxuXG4gICAgaWYgKGFyZ3MubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IGFyZ3MubW9kZWxzXG4gICAgfSBlbHNlIGlmIChzLnMubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IHMucy5tb2RlbHNcbiAgICB9XG5cbiAgICBpZiAoYXJncy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gYXJncy5vdmVyYWxsQ291bnRcbiAgICB9IGVsc2UgaWYgKHMucy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gcy5zLm92ZXJhbGxDb3VudFxuICAgIH1cblxuICAgIGlmIChtb2RlbHMgPT09IHVuZGVmaW5lZCB8fCBvdmVyYWxsQ291bnQgPT09IHVuZGVmaW5lZCB8fCBzLnAubm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2VcbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCAmJiBvdmVyYWxsQ291bnQgPT09IDAgJiYgcy5wLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQpIHJldHVybiB0cnVlXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGxldCBtb2RlbHMsIG92ZXJhbGxDb3VudFxuXG4gICAgaWYgKGFyZ3MubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IGFyZ3MubW9kZWxzXG4gICAgfSBlbHNlIGlmIChzLnMubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IHMucy5tb2RlbHNcbiAgICB9XG5cbiAgICBpZiAoYXJncy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gYXJncy5vdmVyYWxsQ291bnRcbiAgICB9IGVsc2UgaWYgKHMucy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gcy5zLm92ZXJhbGxDb3VudFxuICAgIH1cblxuICAgIGlmIChtb2RlbHMgPT09IHVuZGVmaW5lZCB8fCBzLnByb3BzLm5vUmVjb3Jkc0ZvdW5kQ29udGVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2VcblxuICAgIC8vIERvbnQgc2hvdyBub1JlY29yZHNBdmFpbGFibGVDb250ZW50IHRvZ2V0aGVyIHdpdGggbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudFxuICAgIGlmIChtb2RlbHMubGVuZ3RoID09PSAwICYmIG92ZXJhbGxDb3VudCA9PT0gMCAmJiBzLnByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQpIHJldHVybiBmYWxzZVxuICAgIGlmIChtb2RlbHMubGVuZ3RoID09PSAwICYmIHMucHJvcHMubm9SZWNvcmRzRm91bmRDb250ZW50KSByZXR1cm4gdHJ1ZVxuICB9LCBbXSlcblxuICBjb25zdCBvbkNyZWF0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsc0RlYm91bmNlKClcbiAgfSwgW10pXG5cbiAgdXNlTWVtbyhcbiAgICAoKSA9PiB7XG4gICAgICBpZiAoIShcImlmQ29uZGl0aW9uXCIgaW4gcy5wcm9wcykgfHwgcy5wcm9wcy5pZkNvbmRpdGlvbikge1xuICAgICAgICBsb2FkUVBhcmFtcygpXG4gICAgICAgIGxvYWRNb2RlbHMoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgcy5wcm9wcy5pZkNvbmRpdGlvbixcbiAgICAgIHMubS5xdWVyeVBhcmFtc1tzLnMucXVlcnlRTmFtZV0sXG4gICAgICBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UGFnZU5hbWVdLFxuICAgICAgcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBlcktleV0sXG4gICAgICBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5U05hbWVdLFxuICAgICAgY29sbGVjdGlvblxuICAgIF0uY29uY2F0KGNhY2hlS2V5cylcbiAgKVxuXG4gIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChzLnByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQpIHtcbiAgICAgIGxvYWRPdmVyYWxsQ291bnQoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlQ3JlYXRlZEV2ZW50KHMucC5tb2RlbENsYXNzLCBvbkNyZWF0ZWQpXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjb25uZWN0aW9ucyA9IFtdXG5cbiAgICBpZiAocy5zLm1vZGVscykge1xuICAgICAgZm9yKGNvbnN0IG1vZGVsIG9mIHMucy5tb2RlbHMpIHtcbiAgICAgICAgY29ubmVjdGlvbnMucHVzaChNb2RlbEV2ZW50cy5jb25uZWN0VXBkYXRlZChtb2RlbCwgb25Nb2RlbFVwZGF0ZWQpKVxuICAgICAgICBjb25uZWN0aW9ucy5wdXNoKE1vZGVsRXZlbnRzLmNvbm5lY3REZXN0cm95ZWQobW9kZWwsIG9uTW9kZWxEZXN0cm95ZWQpKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBmb3IoY29uc3QgY29ubmVjdGlvbiBvZiBjb25uZWN0aW9ucykge1xuICAgICAgICBjb25uZWN0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFttb2RlbElkc0NhY2hlU3RyaW5nXSlcblxuICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBzLnN0YXRlKVxuICBjb25zdCBtb2RlbFZhcmlhYmxlTmFtZSA9IGluZmxlY3Rpb24ucGx1cmFsaXplKGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpKVxuXG4gIHJlc3VsdC5tb2RlbElkc0NhY2hlU3RyaW5nID0gbW9kZWxJZHNDYWNoZVN0cmluZ1xuICByZXN1bHRbbW9kZWxWYXJpYWJsZU5hbWVdID0gcy5zLm1vZGVsc1xuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlQ29sbGVjdGlvblxuIl19
303
+ exports.default = useCollection;
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jb2xsZWN0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQStCO0FBQy9CLHlDQUE4QjtBQUM5Qix1REFBd0M7QUFDeEMsd0VBQTJDO0FBQzNDLGlDQUEyRDtBQUMzRCxrRkFBb0Q7QUFDcEQsd0ZBQTJEO0FBQzNELHdHQUEwRTtBQUUxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDOUMsTUFBTSxFQUNKLFNBQVMsRUFDVCxVQUFVLEVBQ1YsYUFBYSxFQUNiLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFVBQVUsRUFDVix5QkFBeUIsR0FBRyxTQUFTLEVBQ3JDLHFCQUFxQixHQUFHLFNBQVMsRUFDakMsY0FBYyxFQUNkLFVBQVUsR0FBRyxLQUFLLEVBQ2xCLFFBQVEsR0FBRyxFQUFFLEVBQ2IsV0FBVyxFQUNYLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0IsT0FBTyxFQUNQLE1BQU0sR0FBRyxFQUFFLEVBQ1gsYUFBYSxFQUNiLEdBQUcsU0FBUyxFQUNiLEdBQUcsS0FBSyxDQUFBO0lBRVQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDL0YsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLElBQUEsc0JBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QixNQUFNLFNBQVMs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O1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUE7SUFDSCxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUE7SUFFekIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUUzRyxNQUFNLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUE7SUFDaEQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFFdEMsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxrQkFBZSxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVib3VuY2UgZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZUNyZWF0ZWRFdmVudCBmcm9tIFwiLi91c2UtY3JlYXRlZC1ldmVudC5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gcHJvcHMuYWJpbGl0aWVzXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBwcm9wcy5jb2xsZWN0aW9uXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHByb3BzLmRlZmF1bHRQYXJhbXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzLmdyb3VwQnlcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IGJvb2xlYW59IHByb3BzLmlmQ29uZGl0aW9uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMubGltaXRcbiAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fSBwcm9wcy5tb2RlbENsYXNzXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCkgOiBpbXBvcnQoXCJyZWFjdFwiKS5SZWFjdE5vZGV9IHByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnRcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IGltcG9ydChcInJlYWN0XCIpLlJlYWN0Tm9kZX0gcHJvcHMubm9SZWNvcmRzRm91bmRDb250ZW50XG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCkgOiB2b2lkfSBwcm9wcy5vbk1vZGVsc0xvYWRlZFxuICogQHBhcmFtIHtib29sZWFufSBwcm9wcy5wYWdpbmF0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwcm9wcy5wcmVsb2Fkc1xuICogQHBhcmFtIHtmdW5jdGlvbih7cXVlcnk6IGltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSkgOiBpbXBvcnQoXCIuL2NvbGxlY3Rpb24uanNcIikuZGVmYXVsdH0gcHJvcHMucXVlcnlNZXRob2RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5xdWVyeU5hbWVcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcHJvcHMucmFuc2Fja1xuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT59IHByb3BzLnNlbGVjdFxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT59IHByb3BzLnNlbGVjdENvbHVtbnNcbiAqIEBwYXJhbSB7YW55W119IGNhY2hlS2V5c1xuICogQHJldHVybnMge3tcbiAqICAgbW9kZWxzOiBBcnJheTxpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdD4sXG4gKiAgIG1vZGVsSWRzQ2FjaGVTdHJpbmc6IEFycmF5PG51bWJlcnxzdHJpbmc+LFxuICogICBvdmVyYWxsQ291bnQ6IG51bWJlcixcbiAqICAgcXVlcnk6IGltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0LFxuICogICBxdWVyeU5hbWU6IHN0cmluZyxcbiAqICAgcXVlcnlQZXJLZXk6IHN0cmluZyxcbiAqICAgcXVlcnlRTmFtZTogc3RyaW5nLFxuICogICBxdWVyeVNOYW1lOiBzdHJpbmcsXG4gKiAgIHF1ZXJ5UGFnZU5hbWU6IHN0cmluZyxcbiAqICAgcmVzdWx0OiBpbXBvcnQoXCIuL3Jlc3VsdC5qc1wiKS5kZWZhdWx0LFxuICogICBzZWFyY2hQYXJhbXM6IHN0cmluZ1tdLFxuICogICBzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogZmFsc2UgfCBpbXBvcnQoXCJyZWFjdFwiKS5SZWFjdE5vZGUsXG4gKiAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IGZhbHNlIHwgaW1wb3J0KFwicmVhY3RcIikuUmVhY3ROb2RlXG4gKiB9fVxuICovXG5jb25zdCB1c2VDb2xsZWN0aW9uID0gKHByb3BzLCBjYWNoZUtleXMgPSBbXSkgPT4ge1xuICBjb25zdCB7XG4gICAgYWJpbGl0aWVzLFxuICAgIGNvbGxlY3Rpb24sXG4gICAgZGVmYXVsdFBhcmFtcyxcbiAgICBncm91cEJ5LFxuICAgIGlmQ29uZGl0aW9uLFxuICAgIGxpbWl0LFxuICAgIG1vZGVsQ2xhc3MsXG4gICAgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCA9IHVuZGVmaW5lZCxcbiAgICBub1JlY29yZHNGb3VuZENvbnRlbnQgPSB1bmRlZmluZWQsXG4gICAgb25Nb2RlbHNMb2FkZWQsXG4gICAgcGFnaW5hdGlvbiA9IGZhbHNlLFxuICAgIHByZWxvYWRzID0gW10sXG4gICAgcXVlcnlNZXRob2QsXG4gICAgcXVlcnlOYW1lOiBpbml0aWFsUXVlcnlOYW1lLFxuICAgIHJhbnNhY2ssXG4gICAgc2VsZWN0ID0ge30sXG4gICAgc2VsZWN0Q29sdW1ucyxcbiAgICAuLi5yZXN0UHJvcHNcbiAgfSA9IHByb3BzXG5cbiAgaWYgKE9iamVjdC5rZXlzKHJlc3RQcm9wcykubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9wcyBnaXZlbiB0byB1c2VDb2xsZWN0aW9uOiAke09iamVjdC5rZXlzKHJlc3RQcm9wcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzID0gdXNlU2hhcGUocHJvcHMpXG4gIGNvbnN0IHF1ZXJ5TmFtZSA9IGluaXRpYWxRdWVyeU5hbWUgfHwgZGlnZyhtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwiY29sbGVjdGlvbktleVwiKVxuXG4gIHMubWV0YS5xdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcblxuICBjb25zdCBoYXNRUGFyYW1zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChzLnMucXVlcnlRTmFtZSBpbiBzLm0ucXVlcnlQYXJhbXMpIHJldHVybiB0cnVlXG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW10pXG5cbiAgY29uc3QgcVBhcmFtcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoaGFzUVBhcmFtcygpKSByZXR1cm4gSlNPTi5wYXJzZShkaWdnKHMubS5xdWVyeVBhcmFtcywgcy5zLnF1ZXJ5UU5hbWUpKVxuXG4gICAgcmV0dXJuIHt9XG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbHM6IHVuZGVmaW5lZCxcbiAgICBvdmVyYWxsQ291bnQ6IHVuZGVmaW5lZCxcbiAgICBxdWVyeTogdW5kZWZpbmVkLFxuICAgIHF1ZXJ5TmFtZSxcbiAgICBxdWVyeVBlcktleTogYCR7cXVlcnlOYW1lfV9wZXJgLFxuICAgIHF1ZXJ5UU5hbWU6IGAke3F1ZXJ5TmFtZX1fcWAsXG4gICAgcXVlcnlTTmFtZTogYCR7cXVlcnlOYW1lfV9zYCxcbiAgICBxdWVyeVBhZ2VOYW1lOiBgJHtxdWVyeU5hbWV9X3BhZ2VgLFxuICAgIHJlc3VsdDogdW5kZWZpbmVkLFxuICAgIHNlYXJjaFBhcmFtczogdW5kZWZpbmVkLFxuICAgIHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50OiBmYWxzZSxcbiAgICBzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50OiBmYWxzZVxuICB9KVxuICBzLnVzZVN0YXRlcyh7XG4gICAgcVBhcmFtczogKCkgPT4gcVBhcmFtcygpXG4gIH0pXG5cbiAgbGV0IG1vZGVsSWRzQ2FjaGVTdHJpbmdcblxuICBpZiAocy5zLm1vZGVscyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbW9kZWxJZHNDYWNoZVN0cmluZyA9IFwibW9kZWxzLXVuZGVmaW5lZFwiXG4gIH0gZWxzZSBpZiAocy5zLm1vZGVscy5sZW5ndGggPT09IDApIHtcbiAgICBtb2RlbElkc0NhY2hlU3RyaW5nID0gXCJuby1tb2RlbHNcIlxuICB9IGVsc2Uge1xuICAgIG1vZGVsSWRzQ2FjaGVTdHJpbmcgPSBzLnMubW9kZWxzLm1hcCgobW9kZWwpID0+IG1vZGVsLmNhY2hlS2V5KCkpPy5qb2luKFwiLS0tXCIpXG4gIH1cblxuICBjb25zdCBsb2FkT3ZlcmFsbENvdW50ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGJhc2VRdWVyeSA9IHMucC5jb2xsZWN0aW9uIHx8IHMucC5tb2RlbENsYXNzLmFsbCgpXG4gICAgY29uc3Qgb3ZlcmFsbENvdW50ID0gYXdhaXQgYmFzZVF1ZXJ5LmNvdW50KClcblxuICAgIHMuc2V0KHtcbiAgICAgIG92ZXJhbGxDb3VudCxcbiAgICAgIHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50OiBzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCh7b3ZlcmFsbENvdW50fSksXG4gICAgICBzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50OiBzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50KHtvdmVyYWxsQ291bnR9KVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxvYWRRUGFyYW1zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHFQYXJhbXNUb1NldCA9IGhhc1FQYXJhbXMoKSA/IHFQYXJhbXMoKSA6IE9iamVjdC5hc3NpZ24oe30sIHMucHJvcHMuZGVmYXVsdFBhcmFtcylcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBbXVxuXG4gICAgaWYgKHMubS5xdWVyeVBhcmFtc1tzLnMucXVlcnlTTmFtZV0pIHtcbiAgICAgIGZvciAoY29uc3QgcmF3U2VhcmNoUGFyYW0gb2Ygcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVNOYW1lXSkge1xuICAgICAgICBjb25zdCBwYXJzZWRTZWFyY2hQYXJhbSA9IEpTT04ucGFyc2UocmF3U2VhcmNoUGFyYW0pXG5cbiAgICAgICAgc2VhcmNoUGFyYW1zLnB1c2gocGFyc2VkU2VhcmNoUGFyYW0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgcy5zZXQoe1xuICAgICAgcVBhcmFtczogcVBhcmFtc1RvU2V0LFxuICAgICAgc2VhcmNoUGFyYW1zXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVscyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBsZXQgcXVlcnkgPSBzLnByb3BzLmNvbGxlY3Rpb24/LmNsb25lKCkgfHwgcy5wLm1vZGVsQ2xhc3MucmFuc2FjaygpXG5cbiAgICBpZiAocy5wcm9wcy5wYWdpbmF0aW9uKSB7XG4gICAgICBjb25zdCBwYWdlID0gcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBhZ2VOYW1lXSB8fCAxXG4gICAgICBsZXQgcGVyID0gcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBlcktleV0gfHwgMzBcblxuICAgICAgaWYgKHBlciA9PSBcImFsbFwiKSB7XG4gICAgICAgIHBlciA9IDk5OV85OTlfOTk5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZXIgPSBOdW1iZXIocGVyKVxuICAgICAgfVxuXG4gICAgICBxdWVyeS5wYWdlKHBhZ2UpLnBlcihwZXIpXG4gICAgfVxuXG4gICAgaWYgKHMucHJvcHMuZ3JvdXBCeSkgcXVlcnkgPSBxdWVyeS5ncm91cEJ5KC4uLnMucC5ncm91cEJ5KVxuXG4gICAgcXVlcnkgPSBxdWVyeVxuICAgICAgLnJhbnNhY2socy5zLnFQYXJhbXMpXG4gICAgICAuc2VhcmNoKHMucy5zZWFyY2hQYXJhbXMpXG4gICAgICAuc2VhcmNoS2V5KHMucy5xdWVyeVFOYW1lKVxuICAgICAgLnBhZ2VLZXkocy5zLnF1ZXJ5UGFnZU5hbWUpXG4gICAgICAucGVyS2V5KHMucy5xdWVyeVBlcktleSlcblxuICAgIGlmIChzLnByb3BzLmFiaWxpdGllcykgcXVlcnkuYWJpbGl0aWVzKHMucC5hYmlsaXRpZXMpXG4gICAgaWYgKHMucHJvcHMubGltaXQgIT09IHVuZGVmaW5lZCkgcXVlcnkubGltaXQocy5wLmxpbWl0KVxuICAgIGlmIChzLnByb3BzLnByZWxvYWRzKSBxdWVyeS5wcmVsb2FkKHMucC5wcmVsb2FkcylcbiAgICBpZiAocy5wcm9wcy5yYW5zYWNrKSBxdWVyeS5yYW5zYWNrKHMucHJvcHMucmFuc2FjaylcbiAgICBpZiAocy5wcm9wcy5zZWxlY3QpIHF1ZXJ5LnNlbGVjdChzLnAuc2VsZWN0KVxuICAgIGlmIChzLnByb3BzLnNlbGVjdENvbHVtbnMpIHF1ZXJ5LnNlbGVjdENvbHVtbnMocy5wLnNlbGVjdENvbHVtbnMpXG5cbiAgICBsZXQgcmVzdWx0XG5cbiAgICBpZiAocy5wcm9wcy5xdWVyeU1ldGhvZCkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgcy5wLnF1ZXJ5TWV0aG9kKHtxdWVyeX0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHF1ZXJ5LnJlc3VsdCgpXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxzID0gcmVzdWx0Lm1vZGVscygpXG5cbiAgICBpZiAocy5wcm9wcy5vbk1vZGVsc0xvYWRlZCkge1xuICAgICAgcy5wLm9uTW9kZWxzTG9hZGVkKHtcbiAgICAgICAgbW9kZWxzLFxuICAgICAgICBxUGFyYW1zOiBzLnMucVBhcmFtcyxcbiAgICAgICAgcXVlcnksXG4gICAgICAgIHJlc3VsdFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBzLnNldCh7XG4gICAgICBtb2RlbHM6IHJlc3VsdC5tb2RlbHMoKSxcbiAgICAgIHF1ZXJ5LFxuICAgICAgcmVzdWx0LFxuICAgICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50KHttb2RlbHN9KSxcbiAgICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQoe21vZGVsc30pXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVsc0RlYm91bmNlID0gdXNlQ2FsbGJhY2soZGVib3VuY2UobG9hZE1vZGVscyksIFtdKVxuICBjb25zdCBvbk1vZGVsRGVzdHJveWVkID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBzLnNldCh7XG4gICAgICBtb2RlbHM6IHMucy5tb2RlbHMuZmlsdGVyKChtb2RlbCkgPT4gbW9kZWwuaWQoKSAhPSBhcmdzLm1vZGVsLmlkKCkpXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25Nb2RlbFVwZGF0ZWQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRNb2RlbCA9IGRpZ2coYXJncywgXCJtb2RlbFwiKVxuICAgIGNvbnN0IGZvdW5kTW9kZWwgPSBzLnMubW9kZWxzLmZpbmQoKG1vZGVsKSA9PiBtb2RlbC5pZCgpID09IHVwZGF0ZWRNb2RlbC5pZCgpKVxuXG4gICAgaWYgKGZvdW5kTW9kZWwpIGxvYWRNb2RlbHNEZWJvdW5jZSgpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50ID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBsZXQgbW9kZWxzLCBvdmVyYWxsQ291bnRcblxuICAgIGlmIChhcmdzLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBhcmdzLm1vZGVsc1xuICAgIH0gZWxzZSBpZiAocy5zLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBzLnMubW9kZWxzXG4gICAgfVxuXG4gICAgaWYgKGFyZ3Mub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IGFyZ3Mub3ZlcmFsbENvdW50XG4gICAgfSBlbHNlIGlmIChzLnMub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IHMucy5vdmVyYWxsQ291bnRcbiAgICB9XG5cbiAgICBpZiAobW9kZWxzID09PSB1bmRlZmluZWQgfHwgb3ZlcmFsbENvdW50ID09PSB1bmRlZmluZWQgfHwgcy5wLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlXG4gICAgaWYgKG1vZGVscy5sZW5ndGggPT09IDAgJiYgb3ZlcmFsbENvdW50ID09PSAwICYmIHMucC5ub1JlY29yZHNBdmFpbGFibGVDb250ZW50KSByZXR1cm4gdHJ1ZVxuICB9LCBbXSlcblxuICBjb25zdCBzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50ID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBsZXQgbW9kZWxzLCBvdmVyYWxsQ291bnRcblxuICAgIGlmIChhcmdzLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBhcmdzLm1vZGVsc1xuICAgIH0gZWxzZSBpZiAocy5zLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBzLnMubW9kZWxzXG4gICAgfVxuXG4gICAgaWYgKGFyZ3Mub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IGFyZ3Mub3ZlcmFsbENvdW50XG4gICAgfSBlbHNlIGlmIChzLnMub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IHMucy5vdmVyYWxsQ291bnRcbiAgICB9XG5cbiAgICBpZiAobW9kZWxzID09PSB1bmRlZmluZWQgfHwgcy5wcm9wcy5ub1JlY29yZHNGb3VuZENvbnRlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAvLyBEb250IHNob3cgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCB0b2dldGhlciB3aXRoIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnRcbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCAmJiBvdmVyYWxsQ291bnQgPT09IDAgJiYgcy5wcm9wcy5ub1JlY29yZHNBdmFpbGFibGVDb250ZW50KSByZXR1cm4gZmFsc2VcbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCAmJiBzLnByb3BzLm5vUmVjb3Jkc0ZvdW5kQ29udGVudCkgcmV0dXJuIHRydWVcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25DcmVhdGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbHNEZWJvdW5jZSgpXG4gIH0sIFtdKVxuXG4gIHVzZU1lbW8oXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKCEoXCJpZkNvbmRpdGlvblwiIGluIHMucHJvcHMpIHx8IHMucHJvcHMuaWZDb25kaXRpb24pIHtcbiAgICAgICAgbG9hZFFQYXJhbXMoKVxuICAgICAgICBsb2FkTW9kZWxzKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIHMucHJvcHMuaWZDb25kaXRpb24sXG4gICAgICBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UU5hbWVdLFxuICAgICAgcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBhZ2VOYW1lXSxcbiAgICAgIHMubS5xdWVyeVBhcmFtc1tzLnMucXVlcnlQZXJLZXldLFxuICAgICAgcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVNOYW1lXSxcbiAgICAgIGNvbGxlY3Rpb25cbiAgICBdLmNvbmNhdChjYWNoZUtleXMpXG4gIClcblxuICB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocy5wcm9wcy5ub1JlY29yZHNBdmFpbGFibGVDb250ZW50KSB7XG4gICAgICBsb2FkT3ZlcmFsbENvdW50KClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUNyZWF0ZWRFdmVudChzLnAubW9kZWxDbGFzcywgb25DcmVhdGVkKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29ubmVjdGlvbnMgPSBbXVxuXG4gICAgaWYgKHMucy5tb2RlbHMpIHtcbiAgICAgIGZvcihjb25zdCBtb2RlbCBvZiBzLnMubW9kZWxzKSB7XG4gICAgICAgIGNvbm5lY3Rpb25zLnB1c2goTW9kZWxFdmVudHMuY29ubmVjdFVwZGF0ZWQobW9kZWwsIG9uTW9kZWxVcGRhdGVkKSlcbiAgICAgICAgY29ubmVjdGlvbnMucHVzaChNb2RlbEV2ZW50cy5jb25uZWN0RGVzdHJveWVkKG1vZGVsLCBvbk1vZGVsRGVzdHJveWVkKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZm9yKGNvbnN0IGNvbm5lY3Rpb24gb2YgY29ubmVjdGlvbnMpIHtcbiAgICAgICAgY29ubmVjdGlvbi51bnN1YnNjcmliZSgpXG4gICAgICB9XG4gICAgfVxuICB9LCBbbW9kZWxJZHNDYWNoZVN0cmluZ10pXG5cbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgcy5zdGF0ZSlcbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLnBsdXJhbGl6ZShpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKSlcblxuICByZXN1bHQubW9kZWxJZHNDYWNoZVN0cmluZyA9IG1vZGVsSWRzQ2FjaGVTdHJpbmdcbiAgcmVzdWx0W21vZGVsVmFyaWFibGVOYW1lXSA9IHMucy5tb2RlbHNcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZUNvbGxlY3Rpb25cbiJdfQ==