@kaspernj/api-maker 1.0.2059 → 1.0.2061

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 (243) hide show
  1. package/build/api.d.ts +89 -14
  2. package/build/api.d.ts.map +1 -1
  3. package/build/api.js +100 -32
  4. package/build/attribute-not-loaded-error.js +2 -5
  5. package/build/base-component.js +3 -6
  6. package/build/base-error.js +9 -15
  7. package/build/base-model/attribute.js +4 -10
  8. package/build/base-model/column.js +2 -5
  9. package/build/base-model/reflection.js +10 -49
  10. package/build/base-model/scope.js +5 -41
  11. package/build/base-model.js +76 -115
  12. package/build/bootstrap/attribute-row.js +39 -71
  13. package/build/bootstrap/attribute-rows.js +14 -20
  14. package/build/bootstrap/card.js +57 -72
  15. package/build/bootstrap/checkbox.js +40 -35
  16. package/build/bootstrap/checkboxes.js +45 -69
  17. package/build/bootstrap/index.js +1 -2
  18. package/build/bootstrap/input.d.ts +1 -1
  19. package/build/bootstrap/input.js +69 -48
  20. package/build/bootstrap/invalid-feedback.d.ts +5 -2
  21. package/build/bootstrap/invalid-feedback.d.ts.map +1 -1
  22. package/build/bootstrap/invalid-feedback.js +12 -17
  23. package/build/bootstrap/paginate.js +74 -74
  24. package/build/bootstrap/radio-buttons.d.ts +1 -1
  25. package/build/bootstrap/radio-buttons.js +38 -33
  26. package/build/bootstrap/select.d.ts +1 -1
  27. package/build/bootstrap/select.js +46 -34
  28. package/build/bootstrap/sort-link.js +35 -68
  29. package/build/cable-connection-pool.d.ts +6 -7
  30. package/build/cable-connection-pool.d.ts.map +1 -1
  31. package/build/cable-connection-pool.js +12 -18
  32. package/build/cable-subscription-pool.js +19 -58
  33. package/build/cable-subscription.js +6 -12
  34. package/build/cache-key-generator.js +5 -11
  35. package/build/can-can.js +17 -56
  36. package/build/channels-consumer.js +5 -10
  37. package/build/collection-loader.js +31 -36
  38. package/build/collection.js +19 -58
  39. package/build/command-submit-data.js +4 -10
  40. package/build/commands-pool.js +33 -39
  41. package/build/compose.js +2 -5
  42. package/build/config.js +5 -40
  43. package/build/custom-error.js +4 -9
  44. package/build/data-set-to-attributes.js +3 -39
  45. package/build/deserializer.js +18 -57
  46. package/build/destroy-error.js +4 -9
  47. package/build/devise.js +16 -55
  48. package/build/draggable-sort/controller.js +11 -14
  49. package/build/draggable-sort/index.js +32 -69
  50. package/build/draggable-sort/item.js +33 -70
  51. package/build/error-logger.js +8 -14
  52. package/build/error-messages.js +5 -8
  53. package/build/event-connection.d.ts +4 -1
  54. package/build/event-connection.d.ts.map +1 -1
  55. package/build/event-connection.js +12 -18
  56. package/build/event-emitter-listener.js +4 -9
  57. package/build/event-model-class.d.ts +4 -1
  58. package/build/event-model-class.d.ts.map +1 -1
  59. package/build/event-model-class.js +11 -17
  60. package/build/events.js +4 -6
  61. package/build/form.d.ts +3 -2
  62. package/build/form.d.ts.map +1 -1
  63. package/build/form.js +31 -69
  64. package/build/history-expo.js +6 -11
  65. package/build/history-react-native.js +9 -14
  66. package/build/history.js +3 -5
  67. package/build/index.js +2 -5
  68. package/build/inputs/attachment.js +34 -29
  69. package/build/inputs/auto-submit.js +6 -42
  70. package/build/inputs/checkbox.js +37 -73
  71. package/build/inputs/checkboxes.d.ts +1 -1
  72. package/build/inputs/checkboxes.js +40 -68
  73. package/build/inputs/id-for-component.js +3 -39
  74. package/build/inputs/input-wrapper.d.ts +2 -1
  75. package/build/inputs/input-wrapper.d.ts.map +1 -1
  76. package/build/inputs/input-wrapper.js +6 -12
  77. package/build/inputs/input.d.ts +1 -1
  78. package/build/inputs/input.js +66 -101
  79. package/build/inputs/money.js +56 -85
  80. package/build/inputs/name-for-component.js +3 -39
  81. package/build/inputs/select.d.ts +1 -1
  82. package/build/inputs/select.js +33 -32
  83. package/build/instance-of-class-name.js +5 -7
  84. package/build/is-expo.js +6 -8
  85. package/build/key-value-store.js +4 -10
  86. package/build/link.js +15 -21
  87. package/build/logger.js +2 -5
  88. package/build/merge-styles.js +4 -7
  89. package/build/modal.js +24 -25
  90. package/build/model-class-require.js +4 -40
  91. package/build/model-events.js +14 -20
  92. package/build/model-name.js +5 -44
  93. package/build/model-prop-type.js +9 -15
  94. package/build/model-recipes-loader.js +8 -14
  95. package/build/model-recipes-model-loader.d.ts +7 -7
  96. package/build/model-recipes-model-loader.js +18 -57
  97. package/build/models-response-reader.js +7 -46
  98. package/build/models.js +5 -10
  99. package/build/money-formatter.d.ts +2 -2
  100. package/build/money-formatter.d.ts.map +1 -1
  101. package/build/money-formatter.js +13 -19
  102. package/build/not-loaded-error.js +2 -5
  103. package/build/params.js +13 -19
  104. package/build/preloaded.js +5 -44
  105. package/build/resize-observer.js +6 -11
  106. package/build/rest-props-validator.js +2 -4
  107. package/build/result.js +2 -5
  108. package/build/router/route.d.ts +4 -4
  109. package/build/router/route.d.ts.map +1 -1
  110. package/build/router/route.js +50 -82
  111. package/build/router/switch.d.ts +2 -1
  112. package/build/router/switch.d.ts.map +1 -1
  113. package/build/router/switch.js +18 -56
  114. package/build/router.d.ts +2 -1
  115. package/build/router.d.ts.map +1 -1
  116. package/build/router.js +24 -59
  117. package/build/routes-native.js +15 -54
  118. package/build/routes.js +13 -49
  119. package/build/run-last.js +2 -5
  120. package/build/serializer.js +5 -8
  121. package/build/services.js +4 -10
  122. package/build/session-status-updater.js +14 -53
  123. package/build/source-maps-loader.js +11 -50
  124. package/build/super-admin/config-reader.js +9 -45
  125. package/build/super-admin/edit-page/edit-attribute-checkbox.js +24 -61
  126. package/build/super-admin/edit-page/edit-attribute-content.js +16 -21
  127. package/build/super-admin/edit-page/edit-attribute-input.js +37 -71
  128. package/build/super-admin/edit-page/edit-attribute.js +33 -66
  129. package/build/super-admin/edit-page.js +50 -79
  130. package/build/super-admin/has-edit-config.js +4 -9
  131. package/build/super-admin/index-page.js +13 -17
  132. package/build/super-admin/index.js +72 -84
  133. package/build/super-admin/layout/header/index.d.ts +25 -1
  134. package/build/super-admin/layout/header/index.d.ts.map +1 -1
  135. package/build/super-admin/layout/header/index.js +49 -71
  136. package/build/super-admin/layout/index.js +59 -78
  137. package/build/super-admin/layout/menu/index.d.ts +4 -1
  138. package/build/super-admin/layout/menu/index.d.ts.map +1 -1
  139. package/build/super-admin/layout/menu/index.js +90 -105
  140. package/build/super-admin/layout/menu/menu-content.js +23 -60
  141. package/build/super-admin/layout/menu/menu-item.js +20 -23
  142. package/build/super-admin/layout/no-access.js +16 -20
  143. package/build/super-admin/model-class-table.js +25 -64
  144. package/build/super-admin/models.js +3 -38
  145. package/build/super-admin/show-nav.js +33 -61
  146. package/build/super-admin/show-page/belongs-to-attribute-row.js +20 -52
  147. package/build/super-admin/show-page/index.js +29 -63
  148. package/build/super-admin/show-reflection-actions.js +27 -62
  149. package/build/super-admin/show-reflection-link.js +17 -19
  150. package/build/super-admin/show-reflection-page.js +27 -63
  151. package/build/table/column-content.js +14 -54
  152. package/build/table/column-identifier.js +2 -5
  153. package/build/table/column-visible.js +2 -5
  154. package/build/table/components/column.js +8 -14
  155. package/build/table/components/flat-list.js +8 -14
  156. package/build/table/components/header.js +10 -16
  157. package/build/table/components/row.js +10 -16
  158. package/build/table/filters/attribute-element.js +24 -26
  159. package/build/table/filters/filter-form.js +124 -118
  160. package/build/table/filters/filter.js +36 -32
  161. package/build/table/filters/index.js +55 -43
  162. package/build/table/filters/load-search-modal.js +67 -81
  163. package/build/table/filters/reflection-element.js +20 -22
  164. package/build/table/filters/save-search-modal.js +29 -27
  165. package/build/table/filters/scope-element.js +17 -19
  166. package/build/table/header-column-content.js +27 -28
  167. package/build/table/header-column.js +45 -80
  168. package/build/table/header-select.js +39 -32
  169. package/build/table/model-callback-args.js +3 -39
  170. package/build/table/model-column.js +45 -75
  171. package/build/table/model-row.js +57 -79
  172. package/build/table/select-calculator.js +13 -52
  173. package/build/table/settings/column-row.js +25 -57
  174. package/build/table/settings/download-action.js +45 -31
  175. package/build/table/settings/index.js +42 -66
  176. package/build/table/table-settings.js +31 -70
  177. package/build/table/table.js +242 -212
  178. package/build/table/use-sorting.js +6 -12
  179. package/build/table/widths.js +9 -12
  180. package/build/table/worker-plugins-check-all-checkbox.js +25 -64
  181. package/build/table/worker-plugins-checkbox.js +22 -61
  182. package/build/translated-attributes.js +2 -5
  183. package/build/translated-collections.js +8 -14
  184. package/build/updated-attribute.d.ts +2 -1
  185. package/build/updated-attribute.d.ts.map +1 -1
  186. package/build/updated-attribute.js +15 -21
  187. package/build/url-encode.js +4 -10
  188. package/build/use-breakpoint.js +20 -58
  189. package/build/use-can-can.js +15 -21
  190. package/build/use-collection.d.ts +4 -4
  191. package/build/use-collection.d.ts.map +1 -1
  192. package/build/use-collection.js +32 -70
  193. package/build/use-created-event.js +22 -27
  194. package/build/use-current-user-context.d.ts +1 -1
  195. package/build/use-current-user-context.d.ts.map +1 -1
  196. package/build/use-current-user-context.js +37 -74
  197. package/build/use-current-user.js +11 -17
  198. package/build/use-destroyed-event.js +15 -20
  199. package/build/use-event-emitter.js +7 -13
  200. package/build/use-event-listener.js +7 -12
  201. package/build/use-input.js +28 -33
  202. package/build/use-model-event.js +13 -18
  203. package/build/use-model.js +28 -66
  204. package/build/use-resize-observer.js +10 -15
  205. package/build/use-router.d.ts +5 -2
  206. package/build/use-router.d.ts.map +1 -1
  207. package/build/use-router.js +35 -66
  208. package/build/use-screen-layout.d.ts.map +1 -1
  209. package/build/use-screen-layout.js +13 -8
  210. package/build/use-styles.d.ts +1 -1
  211. package/build/use-styles.d.ts.map +1 -1
  212. package/build/use-styles.js +16 -54
  213. package/build/use-updated-event.d.ts.map +1 -1
  214. package/build/use-updated-event.js +18 -21
  215. package/build/use-validation-errors.d.ts.map +1 -1
  216. package/build/use-validation-errors.js +10 -14
  217. package/build/utils/button.js +35 -33
  218. package/build/utils/card.js +30 -61
  219. package/build/utils/checkbox.js +28 -60
  220. package/build/utils/checkboxes.js +47 -78
  221. package/build/utils/default-style.d.ts +7 -3
  222. package/build/utils/default-style.d.ts.map +1 -1
  223. package/build/utils/default-style.js +18 -58
  224. package/build/utils/header.d.ts +2 -1
  225. package/build/utils/header.d.ts.map +1 -1
  226. package/build/utils/header.js +6 -12
  227. package/build/utils/icon.js +22 -61
  228. package/build/utils/invalid-feedback.js +13 -17
  229. package/build/utils/modal.js +29 -60
  230. package/build/utils/text.js +10 -14
  231. package/build/validation-error.js +6 -45
  232. package/build/validation-errors.d.ts.map +1 -1
  233. package/build/validation-errors.js +19 -59
  234. package/build/with-api-maker.js +13 -52
  235. package/build/with-collection.js +11 -50
  236. package/build/with-current-user.d.ts +2 -1
  237. package/build/with-current-user.d.ts.map +1 -1
  238. package/build/with-current-user.js +6 -12
  239. package/build/with-model.js +8 -14
  240. package/build/with-router.d.ts +6 -2
  241. package/build/with-router.d.ts.map +1 -1
  242. package/build/with-router.js +12 -13
  243. package/package.json +5 -3
@@ -1,42 +1,46 @@
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 jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_native_1 = require("react-native");
8
- const base_component_js_1 = __importDefault(require("../../base-component.js"));
9
- const icon_1 = __importDefault(require("../../utils/icon"));
10
- const prop_types_1 = __importDefault(require("prop-types"));
11
- const prop_types_exact_1 = __importDefault(require("prop-types-exact"));
12
- const memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
13
- const react_1 = __importDefault(require("react"));
14
- const shape_component_js_1 = require("set-state-compare/build/shape-component.js");
15
- const text_1 = __importDefault(require("../../utils/text"));
16
- exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)(class ApiMakerTableFilter extends base_component_js_1.default {
1
+ import { Pressable, View } from "react-native";
2
+ import BaseComponent from "../../base-component.js";
3
+ import Icon from "../../utils/icon";
4
+ import PropTypes from "prop-types";
5
+ import PropTypesExact from "prop-types-exact";
6
+ import memo from "set-state-compare/build/memo.js";
7
+ import React from "react";
8
+ import { shapeComponent } from "set-state-compare/build/shape-component.js";
9
+ import Text from "../../utils/text";
10
+ export default memo(shapeComponent(class ApiMakerTableFilter extends BaseComponent {
17
11
  static defaultProps = {
18
12
  a: null,
19
13
  pre: null
20
14
  };
21
- static propTypes = (0, prop_types_exact_1.default)({
22
- a: prop_types_1.default.string,
23
- filterIndex: prop_types_1.default.number.isRequired,
24
- onClick: prop_types_1.default.func.isRequired,
25
- onRemoveClicked: prop_types_1.default.func.isRequired,
26
- p: prop_types_1.default.array.isRequired,
27
- pre: prop_types_1.default.string,
28
- sc: prop_types_1.default.string,
29
- v: prop_types_1.default.string.isRequired
15
+ static propTypes = PropTypesExact({
16
+ a: PropTypes.string,
17
+ filterIndex: PropTypes.number.isRequired,
18
+ onClick: PropTypes.func.isRequired,
19
+ onRemoveClicked: PropTypes.func.isRequired,
20
+ p: PropTypes.array.isRequired,
21
+ pre: PropTypes.string,
22
+ sc: PropTypes.string,
23
+ v: PropTypes.string.isRequired
30
24
  });
31
25
  render() {
32
26
  const { p, v } = this.p;
33
27
  const { a, pre, sc } = this.props;
34
- return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: this.cache("rootViewStyle", { alignItems: "center", flexDirection: "row", backgroundColor: "grey", paddingVertical: 10, paddingHorizontal: 6 }), children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { dataSet: {
35
- attribute: a,
36
- class: "filter-label",
37
- scope: sc
38
- }, onPress: this.tt.onFilterPressed, children: (0, jsx_runtime_1.jsxs)(text_1.default, { children: [p.length > 0 &&
39
- `${p.join(".")}.`, a, " ", sc, " ", pre, " ", v] }) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { dataSet: this.cache("removeFilterButtonDataSet", { class: "remove-filter-button" }), onPress: this.tt.onRemoveFilterPressed, style: this.cache("removeFilterButtonStyle", { marginLeft: 6 }), children: (0, jsx_runtime_1.jsx)(icon_1.default, { name: "remove" }) })] }));
28
+ return (<View style={this.cache("rootViewStyle", { alignItems: "center", flexDirection: "row", backgroundColor: "grey", paddingVertical: 10, paddingHorizontal: 6 })}>
29
+ <Pressable dataSet={{
30
+ attribute: a,
31
+ class: "filter-label",
32
+ scope: sc
33
+ }} onPress={this.tt.onFilterPressed}>
34
+ <Text>
35
+ {p.length > 0 &&
36
+ `${p.join(".")}.`}
37
+ {a} {sc} {pre} {v}
38
+ </Text>
39
+ </Pressable>
40
+ <Pressable dataSet={this.cache("removeFilterButtonDataSet", { class: "remove-filter-button" })} onPress={this.tt.onRemoveFilterPressed} style={this.cache("removeFilterButtonStyle", { marginLeft: 6 })}>
41
+ <Icon name="remove"/>
42
+ </Pressable>
43
+ </View>);
40
44
  }
41
45
  onFilterPressed = (e) => {
42
46
  e.preventDefault();
@@ -49,4 +53,4 @@ exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent
49
53
  this.props.onRemoveClicked({ filterIndex: this.p.filterIndex });
50
54
  };
51
55
  }));
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ0YWJsZS9maWx0ZXJzL2ZpbHRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQTRDO0FBQzVDLGdGQUFtRDtBQUNuRCw0REFBbUM7QUFDbkMsNERBQWtDO0FBQ2xDLHdFQUE2QztBQUM3Qyw4RUFBa0Q7QUFDbEQsa0RBQXlCO0FBQ3pCLG1GQUF5RTtBQUN6RSw0REFBbUM7QUFFbkMsa0JBQWUsSUFBQSxpQkFBSSxFQUFDLElBQUEsbUNBQWMsRUFBQyxNQUFNLG1CQUFvQixTQUFRLDJCQUFhO0lBQ2hGLE1BQU0sQ0FBQyxZQUFZLEdBQUc7UUFDcEIsQ0FBQyxFQUFFLElBQUk7UUFDUCxHQUFHLEVBQUUsSUFBSTtLQUNWLENBQUE7SUFFRCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUEsMEJBQWMsRUFBQztRQUNoQyxDQUFDLEVBQUUsb0JBQVMsQ0FBQyxNQUFNO1FBQ25CLFdBQVcsRUFBRSxvQkFBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ3hDLE9BQU8sRUFBRSxvQkFBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ2xDLGVBQWUsRUFBRSxvQkFBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQzFDLENBQUMsRUFBRSxvQkFBUyxDQUFDLEtBQUssQ0FBQyxVQUFVO1FBQzdCLEdBQUcsRUFBRSxvQkFBUyxDQUFDLE1BQU07UUFDckIsRUFBRSxFQUFFLG9CQUFTLENBQUMsTUFBTTtRQUNwQixDQUFDLEVBQUUsb0JBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtLQUMvQixDQUFDLENBQUE7SUFFRixNQUFNO1FBQ0osTUFBTSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3JCLE1BQU0sRUFBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFFL0IsT0FBTyxDQUNMLHdCQUFDLG1CQUFJLElBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUMsQ0FBQyxhQUN4Six1QkFBQyx3QkFBUyxJQUNSLE9BQU8sRUFBRTt3QkFDUCxTQUFTLEVBQUUsQ0FBQzt3QkFDWixLQUFLLEVBQUUsY0FBYzt3QkFDckIsS0FBSyxFQUFFLEVBQUU7cUJBQ1YsRUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLFlBRWhDLHdCQUFDLGNBQUksZUFDRixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7Z0NBQ1gsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBRWxCLENBQUMsT0FBRyxFQUFFLE9BQUcsR0FBRyxPQUFHLENBQUMsSUFDWixHQUNHLEVBQ1osdUJBQUMsd0JBQVMsSUFDUixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxFQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBQyxDQUFDLEVBQ2pGLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxFQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxZQUU3RCx1QkFBQyxjQUFJLElBQUMsSUFBSSxFQUFDLFFBQVEsR0FBRyxHQUNaLElBQ1AsQ0FDUixDQUFBO0lBQ0gsQ0FBQztJQUVELGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3RCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUVsQixNQUFNLEVBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDMUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFFdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUE7SUFDckQsQ0FBQyxDQUFBO0lBRUQscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUM1QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7UUFFbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFBO0lBQy9ELENBQUMsQ0FBQTtDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQcmVzc2FibGUsIFZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50LmpzXCJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi91dGlscy9pY29uXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vLi4vdXRpbHMvdGV4dFwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJUYWJsZUZpbHRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGE6IG51bGwsXG4gICAgcHJlOiBudWxsXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0gUHJvcFR5cGVzRXhhY3Qoe1xuICAgIGE6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZmlsdGVySW5kZXg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uUmVtb3ZlQ2xpY2tlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBwOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICBwcmU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2M6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH0pXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtwLCB2fSA9IHRoaXMucFxuICAgIGNvbnN0IHthLCBwcmUsIHNjfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBzdHlsZT17dGhpcy5jYWNoZShcInJvb3RWaWV3U3R5bGVcIiwge2FsaWduSXRlbXM6IFwiY2VudGVyXCIsIGZsZXhEaXJlY3Rpb246IFwicm93XCIsIGJhY2tncm91bmRDb2xvcjogXCJncmV5XCIsIHBhZGRpbmdWZXJ0aWNhbDogMTAsIHBhZGRpbmdIb3Jpem9udGFsOiA2fSl9PlxuICAgICAgICA8UHJlc3NhYmxlXG4gICAgICAgICAgZGF0YVNldD17e1xuICAgICAgICAgICAgYXR0cmlidXRlOiBhLFxuICAgICAgICAgICAgY2xhc3M6IFwiZmlsdGVyLWxhYmVsXCIsXG4gICAgICAgICAgICBzY29wZTogc2NcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25GaWx0ZXJQcmVzc2VkfVxuICAgICAgICA+XG4gICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICB7cC5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgIGAke3Auam9pbihcIi5cIil9LmBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHthfSB7c2N9IHtwcmV9IHt2fVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICBkYXRhU2V0PXt0aGlzLmNhY2hlKFwicmVtb3ZlRmlsdGVyQnV0dG9uRGF0YVNldFwiLCB7Y2xhc3M6IFwicmVtb3ZlLWZpbHRlci1idXR0b25cIn0pfVxuICAgICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25SZW1vdmVGaWx0ZXJQcmVzc2VkfVxuICAgICAgICAgIHN0eWxlPXt0aGlzLmNhY2hlKFwicmVtb3ZlRmlsdGVyQnV0dG9uU3R5bGVcIiwge21hcmdpbkxlZnQ6IDZ9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxJY29uIG5hbWU9XCJyZW1vdmVcIiAvPlxuICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBvbkZpbHRlclByZXNzZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgY29uc3Qge2EsIGZpbHRlckluZGV4LCBwLCBwcmUsIHZ9ID0gdGhpcy5wXG4gICAgY29uc3Qge3NjfSA9IHRoaXMucHJvcHNcblxuICAgIHRoaXMucHJvcHMub25DbGljayh7YSwgZmlsdGVySW5kZXgsIHAsIHByZSwgc2MsIHZ9KVxuICB9XG5cbiAgb25SZW1vdmVGaWx0ZXJQcmVzc2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIHRoaXMucHJvcHMub25SZW1vdmVDbGlja2VkKHtmaWx0ZXJJbmRleDogdGhpcy5wLmZpbHRlckluZGV4fSlcbiAgfVxufSkpXG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ0YWJsZS9maWx0ZXJzL2ZpbHRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDNUMsT0FBTyxhQUFhLE1BQU0seUJBQXlCLENBQUE7QUFDbkQsT0FBTyxJQUFJLE1BQU0sa0JBQWtCLENBQUE7QUFDbkMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sSUFBSSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekUsT0FBTyxJQUFJLE1BQU0sa0JBQWtCLENBQUE7QUFFbkMsZUFBZSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sbUJBQW9CLFNBQVEsYUFBYTtJQUNoRixNQUFNLENBQUMsWUFBWSxHQUFHO1FBQ3BCLENBQUMsRUFBRSxJQUFJO1FBQ1AsR0FBRyxFQUFFLElBQUk7S0FDVixDQUFBO0lBRUQsTUFBTSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDaEMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ25CLFdBQVcsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDeEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVTtRQUNsQyxlQUFlLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQzFDLENBQUMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVU7UUFDN0IsR0FBRyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3JCLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTTtRQUNwQixDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0tBQy9CLENBQUMsQ0FBQTtJQUVGLE1BQU07UUFDSixNQUFNLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDckIsTUFBTSxFQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUUvQixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FDeko7UUFBQSxDQUFDLFNBQVMsQ0FDUixPQUFPLENBQUMsQ0FBQztnQkFDUCxTQUFTLEVBQUUsQ0FBQztnQkFDWixLQUFLLEVBQUUsY0FBYztnQkFDckIsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLENBQ0YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FFakM7VUFBQSxDQUFDLElBQUksQ0FDSDtZQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FDaEIsQ0FDQTtZQUFBLENBQUMsQ0FBQyxDQUFFLENBQUEsQ0FBQyxFQUFFLENBQUUsQ0FBQSxDQUFDLEdBQUcsQ0FBRSxDQUFBLENBQUMsQ0FBQyxDQUNuQjtVQUFBLEVBQUUsSUFBSSxDQUNSO1FBQUEsRUFBRSxTQUFTLENBQ1g7UUFBQSxDQUFDLFNBQVMsQ0FDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDLENBQUMsQ0FBQyxDQUNsRixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQ3ZDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsRUFBQyxVQUFVLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUU5RDtVQUFBLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQ3JCO1FBQUEsRUFBRSxTQUFTLENBQ2I7TUFBQSxFQUFFLElBQUksQ0FBQyxDQUNSLENBQUE7SUFDSCxDQUFDO0lBRUQsZUFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDdEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBRWxCLE1BQU0sRUFBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUMxQyxNQUFNLEVBQUMsRUFBRSxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUV2QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDLENBQUE7SUFFRCxxQkFBcUIsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQzVCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUVsQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQUE7SUFDL0QsQ0FBQyxDQUFBO0NBQ0YsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vLi4vYmFzZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL3V0aWxzL2ljb25cIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL21lbW8uanNcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCBUZXh0IGZyb20gXCIuLi8uLi91dGlscy90ZXh0XCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclRhYmxlRmlsdGVyIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgYTogbnVsbCxcbiAgICBwcmU6IG51bGxcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBQcm9wVHlwZXNFeGFjdCh7XG4gICAgYTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBmaWx0ZXJJbmRleDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25SZW1vdmVDbGlja2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHA6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIHByZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzYzogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB2OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgfSlcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3AsIHZ9ID0gdGhpcy5wXG4gICAgY29uc3Qge2EsIHByZSwgc2N9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IHN0eWxlPXt0aGlzLmNhY2hlKFwicm9vdFZpZXdTdHlsZVwiLCB7YWxpZ25JdGVtczogXCJjZW50ZXJcIiwgZmxleERpcmVjdGlvbjogXCJyb3dcIiwgYmFja2dyb3VuZENvbG9yOiBcImdyZXlcIiwgcGFkZGluZ1ZlcnRpY2FsOiAxMCwgcGFkZGluZ0hvcml6b250YWw6IDZ9KX0+XG4gICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICBkYXRhU2V0PXt7XG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGEsXG4gICAgICAgICAgICBjbGFzczogXCJmaWx0ZXItbGFiZWxcIixcbiAgICAgICAgICAgIHNjb3BlOiBzY1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vbkZpbHRlclByZXNzZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHtwLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgYCR7cC5qb2luKFwiLlwiKX0uYFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge2F9IHtzY30ge3ByZX0ge3Z9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJyZW1vdmVGaWx0ZXJCdXR0b25EYXRhU2V0XCIsIHtjbGFzczogXCJyZW1vdmUtZmlsdGVyLWJ1dHRvblwifSl9XG4gICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vblJlbW92ZUZpbHRlclByZXNzZWR9XG4gICAgICAgICAgc3R5bGU9e3RoaXMuY2FjaGUoXCJyZW1vdmVGaWx0ZXJCdXR0b25TdHlsZVwiLCB7bWFyZ2luTGVmdDogNn0pfVxuICAgICAgICA+XG4gICAgICAgICAgPEljb24gbmFtZT1cInJlbW92ZVwiIC8+XG4gICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIG9uRmlsdGVyUHJlc3NlZCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICBjb25zdCB7YSwgZmlsdGVySW5kZXgsIHAsIHByZSwgdn0gPSB0aGlzLnBcbiAgICBjb25zdCB7c2N9ID0gdGhpcy5wcm9wc1xuXG4gICAgdGhpcy5wcm9wcy5vbkNsaWNrKHthLCBmaWx0ZXJJbmRleCwgcCwgcHJlLCBzYywgdn0pXG4gIH1cblxuICBvblJlbW92ZUZpbHRlclByZXNzZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgdGhpcy5wcm9wcy5vblJlbW92ZUNsaWNrZWQoe2ZpbHRlckluZGV4OiB0aGlzLnAuZmlsdGVySW5kZXh9KVxuICB9XG59KSlcbiJdfQ==
@@ -1,35 +1,29 @@
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 jsx_runtime_1 = require("react/jsx-runtime");
7
- const base_component_js_1 = __importDefault(require("../../base-component.js"));
8
- const diggerize_1 = require("diggerize");
9
- const filter_1 = __importDefault(require("./filter"));
10
- const filter_form_1 = __importDefault(require("./filter-form"));
11
- const flash_notifications_1 = require("flash-notifications");
12
- const load_search_modal_1 = __importDefault(require("./load-search-modal"));
13
- const save_search_modal_1 = __importDefault(require("./save-search-modal"));
14
- const params_js_1 = __importDefault(require("../../params.js"));
15
- const prop_types_1 = __importDefault(require("prop-types"));
16
- const models_js_1 = require("models.js");
17
- const memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
18
- const shape_component_js_1 = require("set-state-compare/build/shape-component.js");
19
- const react_1 = __importDefault(require("react"));
20
- const use_i18n_mjs_1 = __importDefault(require("i18n-on-steroids/src/use-i18n.mjs"));
21
- const use_query_params_js_1 = __importDefault(require("on-location-changed/build/use-query-params.js"));
22
- const react_native_1 = require("react-native");
23
- exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)(class ApiMakerTableFilters extends base_component_js_1.default {
1
+ import BaseComponent from "../../base-component.js";
2
+ import { digg, digs } from "diggerize";
3
+ import Filter from "./filter";
4
+ import FilterForm from "./filter-form";
5
+ import { FlashNotifications } from "flash-notifications";
6
+ import LoadSearchModal from "./load-search-modal";
7
+ import SaveSearchModal from "./save-search-modal";
8
+ import Params from "../../params.js";
9
+ import PropTypes from "prop-types";
10
+ import { TableSearch } from "models.js";
11
+ import memo from "set-state-compare/build/memo.js";
12
+ import { shapeComponent } from "set-state-compare/build/shape-component.js";
13
+ import React from "react";
14
+ import useI18n from "i18n-on-steroids/src/use-i18n.mjs";
15
+ import useQueryParams from "on-location-changed/build/use-query-params.js";
16
+ import { View } from "react-native";
17
+ export default memo(shapeComponent(class ApiMakerTableFilters extends BaseComponent {
24
18
  static propTypes = {
25
- currentUser: prop_types_1.default.object,
26
- modelClass: prop_types_1.default.func.isRequired,
27
- queryName: prop_types_1.default.string.isRequired,
28
- querySName: prop_types_1.default.string.isRequired
19
+ currentUser: PropTypes.object,
20
+ modelClass: PropTypes.func.isRequired,
21
+ queryName: PropTypes.string.isRequired,
22
+ querySName: PropTypes.string.isRequired
29
23
  };
30
24
  setup() {
31
- const { t } = (0, use_i18n_mjs_1.default)({ namespace: "js.api_maker.table.filters" });
32
- this.queryParams = (0, use_query_params_js_1.default)();
25
+ const { t } = useI18n({ namespace: "js.api_maker.table.filters" });
26
+ this.queryParams = useQueryParams();
33
27
  this.t = t;
34
28
  this.useStates({
35
29
  filter: undefined,
@@ -38,18 +32,36 @@ exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent
38
32
  });
39
33
  }
40
34
  render() {
41
- const { modelClass, querySName } = (0, diggerize_1.digs)(this.props, "modelClass", "querySName");
35
+ const { modelClass, querySName } = digs(this.props, "modelClass", "querySName");
42
36
  const { currentUser } = this.props;
43
- const { filter, showLoadSearchModal, showSaveSearchModal } = (0, diggerize_1.digs)(this.state, "filter", "showLoadSearchModal", "showSaveSearchModal");
37
+ const { filter, showLoadSearchModal, showSaveSearchModal } = digs(this.state, "filter", "showLoadSearchModal", "showSaveSearchModal");
44
38
  const currentFilters = this.currentFilters();
45
- return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { dataSet: this.cache("rootViewDataSet", { class: "api-maker--table--filters" }), style: this.cache("rootViewStyle", { alignItems: "flex-start" }), children: [filter &&
46
- (0, jsx_runtime_1.jsx)(filter_form_1.default, { filter: filter, modelClass: modelClass, onApplyClicked: this.tt.onApplyClicked, onRequestClose: this.tt.onFilterFormRequestClose, querySearchName: querySName }, `filter-${filter.filterIndex}`), showLoadSearchModal &&
47
- (0, jsx_runtime_1.jsx)(load_search_modal_1.default, { currentUser: currentUser, modelClass: modelClass, onEditSearchPressed: (0, diggerize_1.digg)(this, "onEditSearchPressed"), onRequestClose: (0, diggerize_1.digg)(this, "onRequestCloseLoadSearchModal"), querySearchName: querySName }), showSaveSearchModal &&
48
- (0, jsx_runtime_1.jsx)(save_search_modal_1.default, { currentFilters: (0, diggerize_1.digg)(this, "currentFilters"), currentUser: currentUser, onRequestClose: (0, diggerize_1.digg)(this, "onRequestCloseSaveSearchModal"), search: showSaveSearchModal }), currentFilters?.map((filterData, filterIndex) => (0, jsx_runtime_1.jsx)(filter_1.default, { filterIndex: filterIndex, onClick: this.tt.onFilterClicked, onRemoveClicked: this.tt.onRemoveClicked, ...filterData }, filterIndex)), (0, jsx_runtime_1.jsxs)(react_native_1.View, { dataSet: this.cache("filterActionsDataSet", { class: "filter-actions" }), style: this.cache("filterActionsStyle", { flexDirection: "row", marginTop: 10 }), children: [(0, jsx_runtime_1.jsx)("button", { className: "add-new-filter-button", onClick: this.tt.onAddFilterClicked, children: this.t(".add_new_filter", { defaultValue: "Add new filter" }) }), currentUser &&
49
- (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("button", { className: "save-search-button", onClick: this.tt.onSaveSearchClicked, style: { marginLeft: 10 }, children: this.t(".save_search", { defaultValue: "Save search" }) }), (0, jsx_runtime_1.jsx)("button", { className: "load-search-button", onClick: this.tt.onLoadSearchClicked, style: { marginLeft: 10 }, children: this.t(".load_search", { defaultValue: "Load search" }) })] })] })] }));
39
+ return (<View dataSet={this.cache("rootViewDataSet", { class: "api-maker--table--filters" })} style={this.cache("rootViewStyle", { alignItems: "flex-start" })}>
40
+ {filter &&
41
+ <FilterForm filter={filter} key={`filter-${filter.filterIndex}`} modelClass={modelClass} onApplyClicked={this.tt.onApplyClicked} onRequestClose={this.tt.onFilterFormRequestClose} querySearchName={querySName}/>}
42
+ {showLoadSearchModal &&
43
+ <LoadSearchModal currentUser={currentUser} modelClass={modelClass} onEditSearchPressed={digg(this, "onEditSearchPressed")} onRequestClose={digg(this, "onRequestCloseLoadSearchModal")} querySearchName={querySName}/>}
44
+ {showSaveSearchModal &&
45
+ <SaveSearchModal currentFilters={digg(this, "currentFilters")} currentUser={currentUser} onRequestClose={digg(this, "onRequestCloseSaveSearchModal")} search={showSaveSearchModal}/>}
46
+ {currentFilters?.map((filterData, filterIndex) => <Filter key={filterIndex} filterIndex={filterIndex} onClick={this.tt.onFilterClicked} onRemoveClicked={this.tt.onRemoveClicked} {...filterData}/>)}
47
+ <View dataSet={this.cache("filterActionsDataSet", { class: "filter-actions" })} style={this.cache("filterActionsStyle", { flexDirection: "row", marginTop: 10 })}>
48
+ <button className="add-new-filter-button" onClick={this.tt.onAddFilterClicked}>
49
+ {this.t(".add_new_filter", { defaultValue: "Add new filter" })}
50
+ </button>
51
+ {currentUser &&
52
+ <>
53
+ <button className="save-search-button" onClick={this.tt.onSaveSearchClicked} style={{ marginLeft: 10 }}>
54
+ {this.t(".save_search", { defaultValue: "Save search" })}
55
+ </button>
56
+ <button className="load-search-button" onClick={this.tt.onLoadSearchClicked} style={{ marginLeft: 10 }}>
57
+ {this.t(".load_search", { defaultValue: "Load search" })}
58
+ </button>
59
+ </>}
60
+ </View>
61
+ </View>);
50
62
  }
51
63
  currentFilters = () => {
52
- const { querySName } = (0, diggerize_1.digs)(this.props, "querySName");
64
+ const { querySName } = digs(this.props, "querySName");
53
65
  const currentFilters = this.queryParams[querySName] || [];
54
66
  return currentFilters.map((currentFilter) => JSON.parse(currentFilter));
55
67
  };
@@ -78,12 +90,12 @@ exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent
78
90
  });
79
91
  };
80
92
  onRemoveClicked = ({ filterIndex }) => {
81
- const { querySName } = (0, diggerize_1.digs)(this.props, "querySName");
82
- const searchParams = params_js_1.default.parse()[querySName] || {};
93
+ const { querySName } = digs(this.props, "querySName");
94
+ const searchParams = Params.parse()[querySName] || {};
83
95
  delete searchParams[filterIndex];
84
96
  const newParams = {};
85
97
  newParams[querySName] = searchParams;
86
- params_js_1.default.changeParams(newParams);
98
+ Params.changeParams(newParams);
87
99
  this.setState({
88
100
  filter: undefined
89
101
  });
@@ -93,12 +105,12 @@ exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent
93
105
  onSaveSearchClicked = (e) => {
94
106
  e.preventDefault();
95
107
  if (this.hasAnyFilters()) {
96
- this.setState({ showSaveSearchModal: new models_js_1.TableSearch() });
108
+ this.setState({ showSaveSearchModal: new TableSearch() });
97
109
  }
98
110
  else {
99
- flash_notifications_1.FlashNotifications.alert(this.t(".no_filters_has_been_set", { defaultValue: "No filters has been set" }));
111
+ FlashNotifications.alert(this.t(".no_filters_has_been_set", { defaultValue: "No filters has been set" }));
100
112
  }
101
113
  };
102
114
  hasAnyFilters = () => Object.keys(this.currentFilters()).length > 0;
103
115
  }));
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2ZpbHRlcnMvaW5kZXguanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdGQUFtRDtBQUNuRCx5Q0FBb0M7QUFDcEMsc0RBQTZCO0FBQzdCLGdFQUFzQztBQUN0Qyw2REFBc0Q7QUFDdEQsNEVBQWlEO0FBQ2pELDRFQUFpRDtBQUNqRCxnRUFBb0M7QUFDcEMsNERBQWtDO0FBQ2xDLHlDQUFxQztBQUNyQyw4RUFBa0Q7QUFDbEQsbUZBQXlFO0FBQ3pFLGtEQUF5QjtBQUN6QixxRkFBdUQ7QUFDdkQsd0dBQTBFO0FBQzFFLCtDQUFpQztBQUVqQyxrQkFBZSxJQUFBLGlCQUFJLEVBQUMsSUFBQSxtQ0FBYyxFQUFDLE1BQU0sb0JBQXFCLFNBQVEsMkJBQWE7SUFDakYsTUFBTSxDQUFDLFNBQVMsR0FBRztRQUNqQixXQUFXLEVBQUUsb0JBQVMsQ0FBQyxNQUFNO1FBQzdCLFVBQVUsRUFBRSxvQkFBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ3JDLFNBQVMsRUFBRSxvQkFBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ3RDLFVBQVUsRUFBRSxvQkFBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0tBQ3hDLENBQUE7SUFFRCxLQUFLO1FBQ0gsTUFBTSxFQUFDLENBQUMsRUFBQyxHQUFHLElBQUEsc0JBQU8sRUFBQyxFQUFDLFNBQVMsRUFBRSw0QkFBNEIsRUFBQyxDQUFDLENBQUE7UUFFOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFBLDZCQUFjLEdBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNWLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixNQUFNLEVBQUUsU0FBUztZQUNqQixtQkFBbUIsRUFBRSxTQUFTO1lBQzlCLG1CQUFtQixFQUFFLEtBQUs7U0FDM0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE1BQU07UUFDSixNQUFN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QUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7SUFDakYsNkJBQTZCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLG1CQUFtQixFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7SUFFckYsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUMxQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7UUFFbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsbUJBQW1CLEVBQUUsSUFBSSx1QkFBVyxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBQ3pELENBQUM7YUFBTSxDQUFDO1lBQ04sd0NBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsRUFBQyxZQUFZLEVBQUUseUJBQXlCLEVBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekcsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7Q0FDcEUsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vLi4vYmFzZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IHtkaWdnLCBkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBGaWx0ZXIgZnJvbSBcIi4vZmlsdGVyXCJcbmltcG9ydCBGaWx0ZXJGb3JtIGZyb20gXCIuL2ZpbHRlci1mb3JtXCJcbmltcG9ydCB7Rmxhc2hOb3RpZmljYXRpb25zfSBmcm9tIFwiZmxhc2gtbm90aWZpY2F0aW9uc1wiXG5pbXBvcnQgTG9hZFNlYXJjaE1vZGFsIGZyb20gXCIuL2xvYWQtc2VhcmNoLW1vZGFsXCJcbmltcG9ydCBTYXZlU2VhcmNoTW9kYWwgZnJvbSBcIi4vc2F2ZS1zZWFyY2gtbW9kYWxcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vLi4vcGFyYW1zLmpzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHtUYWJsZVNlYXJjaH0gZnJvbSBcIm1vZGVscy5qc1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZUkxOG4gZnJvbSBcImkxOG4tb24tc3Rlcm9pZHMvc3JjL3VzZS1pMThuLm1qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQge1ZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVGFibGVGaWx0ZXJzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY3VycmVudFVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBxdWVyeU5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBxdWVyeVNOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgfVxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHt0fSA9IHVzZUkxOG4oe25hbWVzcGFjZTogXCJqcy5hcGlfbWFrZXIudGFibGUuZmlsdGVyc1wifSlcblxuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG4gICAgdGhpcy50ID0gdFxuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGZpbHRlcjogdW5kZWZpbmVkLFxuICAgICAgc2hvd0xvYWRTZWFyY2hNb2RhbDogdW5kZWZpbmVkLFxuICAgICAgc2hvd1NhdmVTZWFyY2hNb2RhbDogZmFsc2VcbiAgICB9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzLCBxdWVyeVNOYW1lfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJtb2RlbENsYXNzXCIsIFwicXVlcnlTTmFtZVwiKVxuICAgIGNvbnN0IHtjdXJyZW50VXNlcn0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge2ZpbHRlciwgc2hvd0xvYWRTZWFyY2hNb2RhbCwgc2hvd1NhdmVTZWFyY2hNb2RhbH0gPSBkaWdzKHRoaXMuc3RhdGUsIFwiZmlsdGVyXCIsIFwic2hvd0xvYWRTZWFyY2hNb2RhbFwiLCBcInNob3dTYXZlU2VhcmNoTW9kYWxcIilcbiAgICBjb25zdCBjdXJyZW50RmlsdGVycyA9IHRoaXMuY3VycmVudEZpbHRlcnMoKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJyb290Vmlld0RhdGFTZXRcIiwge2NsYXNzOiBcImFwaS1tYWtlci0tdGFibGUtLWZpbHRlcnNcIn0pfSBzdHlsZT17dGhpcy5jYWNoZShcInJvb3RWaWV3U3R5bGVcIiwge2FsaWduSXRlbXM6IFwiZmxleC1zdGFydFwifSl9PlxuICAgICAgICB7ZmlsdGVyICYmXG4gICAgICAgICAgPEZpbHRlckZvcm1cbiAgICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgICAga2V5PXtgZmlsdGVyLSR7ZmlsdGVyLmZpbHRlckluZGV4fWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgICAgb25BcHBseUNsaWNrZWQ9e3RoaXMudHQub25BcHBseUNsaWNrZWR9XG4gICAgICAgICAgICBvblJlcXVlc3RDbG9zZT17dGhpcy50dC5vbkZpbHRlckZvcm1SZXF1ZXN0Q2xvc2V9XG4gICAgICAgICAgICBxdWVyeVNlYXJjaE5hbWU9e3F1ZXJ5U05hbWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7c2hvd0xvYWRTZWFyY2hNb2RhbCAmJlxuICAgICAgICAgIDxMb2FkU2VhcmNoTW9kYWxcbiAgICAgICAgICAgIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBvbkVkaXRTZWFyY2hQcmVzc2VkPXtkaWdnKHRoaXMsIFwib25FZGl0U2VhcmNoUHJlc3NlZFwiKX1cbiAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXtkaWdnKHRoaXMsIFwib25SZXF1ZXN0Q2xvc2VMb2FkU2VhcmNoTW9kYWxcIil9XG4gICAgICAgICAgICBxdWVyeVNlYXJjaE5hbWU9e3F1ZXJ5U05hbWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7c2hvd1NhdmVTZWFyY2hNb2RhbCAmJlxuICAgICAgICAgIDxTYXZlU2VhcmNoTW9kYWxcbiAgICAgICAgICAgIGN1cnJlbnRGaWx0ZXJzPXtkaWdnKHRoaXMsIFwiY3VycmVudEZpbHRlcnNcIil9XG4gICAgICAgICAgICBjdXJyZW50VXNlcj17Y3VycmVudFVzZXJ9XG4gICAgICAgICAgICBvblJlcXVlc3RDbG9zZT17ZGlnZyh0aGlzLCBcIm9uUmVxdWVzdENsb3NlU2F2ZVNlYXJjaE1vZGFsXCIpfVxuICAgICAgICAgICAgc2VhcmNoPXtzaG93U2F2ZVNlYXJjaE1vZGFsfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge2N1cnJlbnRGaWx0ZXJzPy5tYXAoKGZpbHRlckRhdGEsIGZpbHRlckluZGV4KSA9PlxuICAgICAgICAgIDxGaWx0ZXJcbiAgICAgICAgICAgIGtleT17ZmlsdGVySW5kZXh9XG4gICAgICAgICAgICBmaWx0ZXJJbmRleD17ZmlsdGVySW5kZXh9XG4gICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnR0Lm9uRmlsdGVyQ2xpY2tlZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlQ2xpY2tlZD17dGhpcy50dC5vblJlbW92ZUNsaWNrZWR9XG4gICAgICAgICAgICB7Li4uZmlsdGVyRGF0YX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8VmlldyBkYXRhU2V0PXt0aGlzLmNhY2hlKFwiZmlsdGVyQWN0aW9uc0RhdGFTZXRcIiwge2NsYXNzOiBcImZpbHRlci1hY3Rpb25zXCJ9KX0gc3R5bGU9e3RoaXMuY2FjaGUoXCJmaWx0ZXJBY3Rpb25zU3R5bGVcIiwge2ZsZXhEaXJlY3Rpb246IFwicm93XCIsIG1hcmdpblRvcDogMTB9KX0+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhZGQtbmV3LWZpbHRlci1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uQWRkRmlsdGVyQ2xpY2tlZH0+XG4gICAgICAgICAgICB7dGhpcy50KFwiLmFkZF9uZXdfZmlsdGVyXCIsIHtkZWZhdWx0VmFsdWU6IFwiQWRkIG5ldyBmaWx0ZXJcIn0pfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIHtjdXJyZW50VXNlciAmJlxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJzYXZlLXNlYXJjaC1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uU2F2ZVNlYXJjaENsaWNrZWR9IHN0eWxlPXt7bWFyZ2luTGVmdDogMTB9fT5cbiAgICAgICAgICAgICAgICB7dGhpcy50KFwiLnNhdmVfc2VhcmNoXCIsIHtkZWZhdWx0VmFsdWU6IFwiU2F2ZSBzZWFyY2hcIn0pfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJsb2FkLXNlYXJjaC1idXR0b25cIiBvbkNsaWNrPXt0aGlzLnR0Lm9uTG9hZFNlYXJjaENsaWNrZWR9IHN0eWxlPXt7bWFyZ2luTGVmdDogMTB9fT5cbiAgICAgICAgICAgICAgICB7dGhpcy50KFwiLmxvYWRfc2VhcmNoXCIsIHtkZWZhdWx0VmFsdWU6IFwiTG9hZCBzZWFyY2hcIn0pfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIGN1cnJlbnRGaWx0ZXJzID0gKCkgPT4ge1xuICAgIGNvbnN0IHtxdWVyeVNOYW1lfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJxdWVyeVNOYW1lXCIpXG4gICAgY29uc3QgY3VycmVudEZpbHRlcnMgPSB0aGlzLnF1ZXJ5UGFyYW1zW3F1ZXJ5U05hbWVdIHx8IFtdXG5cbiAgICByZXR1cm4gY3VycmVudEZpbHRlcnMubWFwKChjdXJyZW50RmlsdGVyKSA9PiBKU09OLnBhcnNlKGN1cnJlbnRGaWx0ZXIpKVxuICB9XG5cbiAgb25BZGRGaWx0ZXJDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGNvbnN0IG5ld0ZpbHRlckluZGV4ID0gdGhpcy5jdXJyZW50RmlsdGVycygpLmxlbmd0aFxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgZmlsdGVySW5kZXg6IG5ld0ZpbHRlckluZGV4XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uQXBwbHlDbGlja2VkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7ZmlsdGVyOiB1bmRlZmluZWR9KVxuXG4gIG9uRWRpdFNlYXJjaFByZXNzZWQgPSAoe3NlYXJjaH0pID0+IHtcbiAgICB0aGlzLm9uUmVxdWVzdENsb3NlTG9hZFNlYXJjaE1vZGFsKClcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNob3dTYXZlU2VhcmNoTW9kYWw6IHNlYXJjaFxuICAgIH0pXG4gIH1cblxuICBvbkZpbHRlckNsaWNrZWQgPSAoZmlsdGVyKSA9PiB0aGlzLnNldFN0YXRlKHtmaWx0ZXJ9KVxuICBvbkZpbHRlckZvcm1SZXF1ZXN0Q2xvc2UgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtmaWx0ZXI6IHVuZGVmaW5lZH0pXG5cbiAgb25Mb2FkU2VhcmNoQ2xpY2tlZCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNob3dMb2FkU2VhcmNoTW9kYWw6IHRydWVcbiAgICB9KVxuICB9XG5cbiAgb25SZW1vdmVDbGlja2VkID0gKHtmaWx0ZXJJbmRleH0pID0+IHtcbiAgICBjb25zdCB7cXVlcnlTTmFtZX0gPSBkaWdzKHRoaXMucHJvcHMsIFwicXVlcnlTTmFtZVwiKVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IFBhcmFtcy5wYXJzZSgpW3F1ZXJ5U05hbWVdIHx8IHt9XG5cbiAgICBkZWxldGUgc2VhcmNoUGFyYW1zW2ZpbHRlckluZGV4XVxuXG4gICAgY29uc3QgbmV3UGFyYW1zID0ge31cblxuICAgIG5ld1BhcmFtc1txdWVyeVNOYW1lXSA9IHNlYXJjaFBhcmFtc1xuXG4gICAgUGFyYW1zLmNoYW5nZVBhcmFtcyhuZXdQYXJhbXMpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGZpbHRlcjogdW5kZWZpbmVkXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVxdWVzdENsb3NlTG9hZFNlYXJjaE1vZGFsID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7c2hvd0xvYWRTZWFyY2hNb2RhbDogZmFsc2V9KVxuICBvblJlcXVlc3RDbG9zZVNhdmVTZWFyY2hNb2RhbCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe3Nob3dTYXZlU2VhcmNoTW9kYWw6IHVuZGVmaW5lZH0pXG5cbiAgb25TYXZlU2VhcmNoQ2xpY2tlZCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICBpZiAodGhpcy5oYXNBbnlGaWx0ZXJzKCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dTYXZlU2VhcmNoTW9kYWw6IG5ldyBUYWJsZVNlYXJjaCgpfSlcbiAgICB9IGVsc2Uge1xuICAgICAgRmxhc2hOb3RpZmljYXRpb25zLmFsZXJ0KHRoaXMudChcIi5ub19maWx0ZXJzX2hhc19iZWVuX3NldFwiLCB7ZGVmYXVsdFZhbHVlOiBcIk5vIGZpbHRlcnMgaGFzIGJlZW4gc2V0XCJ9KSlcbiAgICB9XG4gIH1cblxuICBoYXNBbnlGaWx0ZXJzID0gKCkgPT4gT2JqZWN0LmtleXModGhpcy5jdXJyZW50RmlsdGVycygpKS5sZW5ndGggPiAwXG59KSlcbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2ZpbHRlcnMvaW5kZXguanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sYUFBYSxNQUFNLHlCQUF5QixDQUFBO0FBQ25ELE9BQU8sRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUM3QixPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUE7QUFDdEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxlQUFlLE1BQU0scUJBQXFCLENBQUE7QUFDakQsT0FBTyxlQUFlLE1BQU0scUJBQXFCLENBQUE7QUFDakQsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDcEMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDckMsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDbEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLE9BQU8sTUFBTSxtQ0FBbUMsQ0FBQTtBQUN2RCxPQUFPLGNBQWMsTUFBTSwrQ0FBK0MsQ0FBQTtBQUMxRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBRWpDLGVBQWUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLG9CQUFxQixTQUFRLGFBQWE7SUFDakYsTUFBTSxDQUFDLFNBQVMsR0FBRztRQUNqQixXQUFXLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDN0IsVUFBVSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVTtRQUNyQyxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ3RDLFVBQVUsRUFBRSxTQUFT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LFFBQVEsQ0FBQyxFQUFDLG1CQUFtQixFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7SUFFckYsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUMxQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7UUFFbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsbUJBQW1CLEVBQUUsSUFBSSxXQUFXLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDTixrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsRUFBRSxFQUFDLFlBQVksRUFBRSx5QkFBeUIsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUN6RyxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtDQUNwRSxDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi8uLi9iYXNlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQge2RpZ2csIGRpZ3N9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IEZpbHRlciBmcm9tIFwiLi9maWx0ZXJcIlxuaW1wb3J0IEZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyLWZvcm1cIlxuaW1wb3J0IHtGbGFzaE5vdGlmaWNhdGlvbnN9IGZyb20gXCJmbGFzaC1ub3RpZmljYXRpb25zXCJcbmltcG9ydCBMb2FkU2VhcmNoTW9kYWwgZnJvbSBcIi4vbG9hZC1zZWFyY2gtbW9kYWxcIlxuaW1wb3J0IFNhdmVTZWFyY2hNb2RhbCBmcm9tIFwiLi9zYXZlLXNlYXJjaC1tb2RhbFwiXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi8uLi9wYXJhbXMuanNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQge1RhYmxlU2VhcmNofSBmcm9tIFwibW9kZWxzLmpzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlSTE4biBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkcy9zcmMvdXNlLWkxOG4ubWpzXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcbmltcG9ydCB7Vmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJUYWJsZUZpbHRlcnMgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjdXJyZW50VXNlcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBtb2RlbENsYXNzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHF1ZXJ5TmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHF1ZXJ5U05hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxuICB9XG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge3R9ID0gdXNlSTE4bih7bmFtZXNwYWNlOiBcImpzLmFwaV9tYWtlci50YWJsZS5maWx0ZXJzXCJ9KVxuXG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgICB0aGlzLnQgPSB0XG4gICAgdGhpcy51c2VTdGF0ZXMoe1xuICAgICAgZmlsdGVyOiB1bmRlZmluZWQsXG4gICAgICBzaG93TG9hZFNlYXJjaE1vZGFsOiB1bmRlZmluZWQsXG4gICAgICBzaG93U2F2ZVNlYXJjaE1vZGFsOiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3MsIHF1ZXJ5U05hbWV9ID0gZGlncyh0aGlzLnByb3BzLCBcIm1vZGVsQ2xhc3NcIiwgXCJxdWVyeVNOYW1lXCIpXG4gICAgY29uc3Qge2N1cnJlbnRVc2VyfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7ZmlsdGVyLCBzaG93TG9hZFNlYXJjaE1vZGFsLCBzaG93U2F2ZVNlYXJjaE1vZGFsfSA9IGRpZ3ModGhpcy5zdGF0ZSwgXCJmaWx0ZXJcIiwgXCJzaG93TG9hZFNlYXJjaE1vZGFsXCIsIFwic2hvd1NhdmVTZWFyY2hNb2RhbFwiKVxuICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXJzID0gdGhpcy5jdXJyZW50RmlsdGVycygpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17dGhpcy5jYWNoZShcInJvb3RWaWV3RGF0YVNldFwiLCB7Y2xhc3M6IFwiYXBpLW1ha2VyLS10YWJsZS0tZmlsdGVyc1wifSl9IHN0eWxlPXt0aGlzLmNhY2hlKFwicm9vdFZpZXdTdHlsZVwiLCB7YWxpZ25JdGVtczogXCJmbGV4LXN0YXJ0XCJ9KX0+XG4gICAgICAgIHtmaWx0ZXIgJiZcbiAgICAgICAgICA8RmlsdGVyRm9ybVxuICAgICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgICBrZXk9e2BmaWx0ZXItJHtmaWx0ZXIuZmlsdGVySW5kZXh9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBvbkFwcGx5Q2xpY2tlZD17dGhpcy50dC5vbkFwcGx5Q2xpY2tlZH1cbiAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXt0aGlzLnR0Lm9uRmlsdGVyRm9ybVJlcXVlc3RDbG9zZX1cbiAgICAgICAgICAgIHF1ZXJ5U2VhcmNoTmFtZT17cXVlcnlTTmFtZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtzaG93TG9hZFNlYXJjaE1vZGFsICYmXG4gICAgICAgICAgPExvYWRTZWFyY2hNb2RhbFxuICAgICAgICAgICAgY3VycmVudFVzZXI9e2N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgbW9kZWxDbGFzcz17bW9kZWxDbGFzc31cbiAgICAgICAgICAgIG9uRWRpdFNlYXJjaFByZXNzZWQ9e2RpZ2codGhpcywgXCJvbkVkaXRTZWFyY2hQcmVzc2VkXCIpfVxuICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U9e2RpZ2codGhpcywgXCJvblJlcXVlc3RDbG9zZUxvYWRTZWFyY2hNb2RhbFwiKX1cbiAgICAgICAgICAgIHF1ZXJ5U2VhcmNoTmFtZT17cXVlcnlTTmFtZX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHtzaG93U2F2ZVNlYXJjaE1vZGFsICYmXG4gICAgICAgICAgPFNhdmVTZWFyY2hNb2RhbFxuICAgICAgICAgICAgY3VycmVudEZpbHRlcnM9e2RpZ2codGhpcywgXCJjdXJyZW50RmlsdGVyc1wiKX1cbiAgICAgICAgICAgIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn1cbiAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXtkaWdnKHRoaXMsIFwib25SZXF1ZXN0Q2xvc2VTYXZlU2VhcmNoTW9kYWxcIil9XG4gICAgICAgICAgICBzZWFyY2g9e3Nob3dTYXZlU2VhcmNoTW9kYWx9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7Y3VycmVudEZpbHRlcnM/Lm1hcCgoZmlsdGVyRGF0YSwgZmlsdGVySW5kZXgpID0+XG4gICAgICAgICAgPEZpbHRlclxuICAgICAgICAgICAga2V5PXtmaWx0ZXJJbmRleH1cbiAgICAgICAgICAgIGZpbHRlckluZGV4PXtmaWx0ZXJJbmRleH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMudHQub25GaWx0ZXJDbGlja2VkfVxuICAgICAgICAgICAgb25SZW1vdmVDbGlja2VkPXt0aGlzLnR0Lm9uUmVtb3ZlQ2xpY2tlZH1cbiAgICAgICAgICAgIHsuLi5maWx0ZXJEYXRhfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxWaWV3IGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJmaWx0ZXJBY3Rpb25zRGF0YVNldFwiLCB7Y2xhc3M6IFwiZmlsdGVyLWFjdGlvbnNcIn0pfSBzdHlsZT17dGhpcy5jYWNoZShcImZpbHRlckFjdGlvbnNTdHlsZVwiLCB7ZmxleERpcmVjdGlvbjogXCJyb3dcIiwgbWFyZ2luVG9wOiAxMH0pfT5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImFkZC1uZXctZmlsdGVyLWJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMudHQub25BZGRGaWx0ZXJDbGlja2VkfT5cbiAgICAgICAgICAgIHt0aGlzLnQoXCIuYWRkX25ld19maWx0ZXJcIiwge2RlZmF1bHRWYWx1ZTogXCJBZGQgbmV3IGZpbHRlclwifSl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAge2N1cnJlbnRVc2VyICYmXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInNhdmUtc2VhcmNoLWJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMudHQub25TYXZlU2VhcmNoQ2xpY2tlZH0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAxMH19PlxuICAgICAgICAgICAgICAgIHt0aGlzLnQoXCIuc2F2ZV9zZWFyY2hcIiwge2RlZmF1bHRWYWx1ZTogXCJTYXZlIHNlYXJjaFwifSl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImxvYWQtc2VhcmNoLWJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMudHQub25Mb2FkU2VhcmNoQ2xpY2tlZH0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAxMH19PlxuICAgICAgICAgICAgICAgIHt0aGlzLnQoXCIubG9hZF9zZWFyY2hcIiwge2RlZmF1bHRWYWx1ZTogXCJMb2FkIHNlYXJjaFwifSl9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgY3VycmVudEZpbHRlcnMgPSAoKSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5U05hbWV9ID0gZGlncyh0aGlzLnByb3BzLCBcInF1ZXJ5U05hbWVcIilcbiAgICBjb25zdCBjdXJyZW50RmlsdGVycyA9IHRoaXMucXVlcnlQYXJhbXNbcXVlcnlTTmFtZV0gfHwgW11cblxuICAgIHJldHVybiBjdXJyZW50RmlsdGVycy5tYXAoKGN1cnJlbnRGaWx0ZXIpID0+IEpTT04ucGFyc2UoY3VycmVudEZpbHRlcikpXG4gIH1cblxuICBvbkFkZEZpbHRlckNsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgY29uc3QgbmV3RmlsdGVySW5kZXggPSB0aGlzLmN1cnJlbnRGaWx0ZXJzKCkubGVuZ3RoXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGZpbHRlcjoge1xuICAgICAgICBmaWx0ZXJJbmRleDogbmV3RmlsdGVySW5kZXhcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgb25BcHBseUNsaWNrZWQgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtmaWx0ZXI6IHVuZGVmaW5lZH0pXG5cbiAgb25FZGl0U2VhcmNoUHJlc3NlZCA9ICh7c2VhcmNofSkgPT4ge1xuICAgIHRoaXMub25SZXF1ZXN0Q2xvc2VMb2FkU2VhcmNoTW9kYWwoKVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2hvd1NhdmVTZWFyY2hNb2RhbDogc2VhcmNoXG4gICAgfSlcbiAgfVxuXG4gIG9uRmlsdGVyQ2xpY2tlZCA9IChmaWx0ZXIpID0+IHRoaXMuc2V0U3RhdGUoe2ZpbHRlcn0pXG4gIG9uRmlsdGVyRm9ybVJlcXVlc3RDbG9zZSA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe2ZpbHRlcjogdW5kZWZpbmVkfSlcblxuICBvbkxvYWRTZWFyY2hDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2hvd0xvYWRTZWFyY2hNb2RhbDogdHJ1ZVxuICAgIH0pXG4gIH1cblxuICBvblJlbW92ZUNsaWNrZWQgPSAoe2ZpbHRlckluZGV4fSkgPT4ge1xuICAgIGNvbnN0IHtxdWVyeVNOYW1lfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJxdWVyeVNOYW1lXCIpXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gUGFyYW1zLnBhcnNlKClbcXVlcnlTTmFtZV0gfHwge31cblxuICAgIGRlbGV0ZSBzZWFyY2hQYXJhbXNbZmlsdGVySW5kZXhdXG5cbiAgICBjb25zdCBuZXdQYXJhbXMgPSB7fVxuXG4gICAgbmV3UGFyYW1zW3F1ZXJ5U05hbWVdID0gc2VhcmNoUGFyYW1zXG5cbiAgICBQYXJhbXMuY2hhbmdlUGFyYW1zKG5ld1BhcmFtcylcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZmlsdGVyOiB1bmRlZmluZWRcbiAgICB9KVxuICB9XG5cbiAgb25SZXF1ZXN0Q2xvc2VMb2FkU2VhcmNoTW9kYWwgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzaG93TG9hZFNlYXJjaE1vZGFsOiBmYWxzZX0pXG4gIG9uUmVxdWVzdENsb3NlU2F2ZVNlYXJjaE1vZGFsID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7c2hvd1NhdmVTZWFyY2hNb2RhbDogdW5kZWZpbmVkfSlcblxuICBvblNhdmVTZWFyY2hDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGlmICh0aGlzLmhhc0FueUZpbHRlcnMoKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1NhdmVTZWFyY2hNb2RhbDogbmV3IFRhYmxlU2VhcmNoKCl9KVxuICAgIH0gZWxzZSB7XG4gICAgICBGbGFzaE5vdGlmaWNhdGlvbnMuYWxlcnQodGhpcy50KFwiLm5vX2ZpbHRlcnNfaGFzX2JlZW5fc2V0XCIsIHtkZWZhdWx0VmFsdWU6IFwiTm8gZmlsdGVycyBoYXMgYmVlbiBzZXRcIn0pKVxuICAgIH1cbiAgfVxuXG4gIGhhc0FueUZpbHRlcnMgPSAoKSA9PiBPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRGaWx0ZXJzKCkpLmxlbmd0aCA+IDBcbn0pKVxuIl19
@@ -1,77 +1,56 @@
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 jsx_runtime_1 = require("react/jsx-runtime");
40
- const react_1 = __importStar(require("react"));
41
- const react_native_1 = require("react-native");
42
- const config_js_1 = __importDefault(require("@kaspernj/api-maker/build/config.js"));
43
- const base_component_js_1 = __importDefault(require("../../base-component.js"));
44
- const classnames_1 = __importDefault(require("classnames"));
45
- const diggerize_1 = require("diggerize");
46
- const memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
47
- const shape_component_js_1 = require("set-state-compare/build/shape-component.js");
48
- const params_js_1 = __importDefault(require("../../params.js"));
49
- const models_js_1 = require("models.js");
50
- const text_1 = __importDefault(require("../../utils/text"));
51
- const use_i18n_mjs_1 = __importDefault(require("i18n-on-steroids/src/use-i18n.mjs"));
52
- const SearchLink = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)(class SearchLink extends base_component_js_1.default {
1
+ import React, { useMemo } from "react";
2
+ import { Pressable, View } from "react-native";
3
+ import apiMakerConfig from "@kaspernj/api-maker/build/config.js";
4
+ import BaseComponent from "../../base-component.js";
5
+ import classNames from "classnames";
6
+ import { digg } from "diggerize";
7
+ import memo from "set-state-compare/build/memo.js";
8
+ import { shapeComponent } from "set-state-compare/build/shape-component.js";
9
+ import Params from "../../params.js";
10
+ import { TableSearch } from "models.js";
11
+ import Text from "../../utils/text";
12
+ import useI18n from "i18n-on-steroids/src/use-i18n.mjs";
13
+ const SearchLink = memo(shapeComponent(class SearchLink extends BaseComponent {
53
14
  render() {
54
15
  const { search } = this.props;
55
- return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { dataSet: this.cache("rootViewStyle", { class: "search-row", searchId: search.id() }, [search.id()]), style: this.cache("rootViewStyleStyle", { flexDirection: "row", width: "100%" }), children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { dataSet: this.cache("loadSearchLinkPressableDataSet", { class: "load-search-link" }), onPress: this.tt.onSearchClicked, style: this.cache("loadSearchLinkPressableStyle", { justifyContent: "center" }), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: search.name() }) }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: this.cache("actionsViewStyle", { flexDirection: "row", marginLeft: "auto" }), children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { dataSet: this.cache("editSearchButtonDataSet", { class: "edit-search-button" }), onPress: this.tt.onEditPressed, style: this.cache("editSearchButtonStyle", {
56
- alignItems: "center",
57
- justifyContent: "center",
58
- width: 25,
59
- height: 25,
60
- backgroundColor: "#fff",
61
- border: "1px solid #007bff",
62
- borderRadius: 5,
63
- color: "#007bff"
64
- }), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u270E" }) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { dataSet: this.cache("deleteSearchButtonDataSet", { class: "delete-search-button" }), onPress: this.tt.onDeletePressed, style: this.cache("deleteSearchButtonStyle", {
65
- alignItems: "center",
66
- justifyContent: "center",
67
- marginLeft: 5,
68
- width: 25,
69
- height: 25,
70
- backgroundColor: "#fff",
71
- border: "1px solid #dc3545",
72
- borderRadius: 5,
73
- color: "#dc3545"
74
- }), children: (0, jsx_runtime_1.jsx)(text_1.default, { children: "\u2715" }) })] })] }));
16
+ return (<View dataSet={this.cache("rootViewStyle", { class: "search-row", searchId: search.id() }, [search.id()])} style={this.cache("rootViewStyleStyle", { flexDirection: "row", width: "100%" })}>
17
+ <Pressable dataSet={this.cache("loadSearchLinkPressableDataSet", { class: "load-search-link" })} onPress={this.tt.onSearchClicked} style={this.cache("loadSearchLinkPressableStyle", { justifyContent: "center" })}>
18
+ <Text>
19
+ {search.name()}
20
+ </Text>
21
+ </Pressable>
22
+ <View style={this.cache("actionsViewStyle", { flexDirection: "row", marginLeft: "auto" })}>
23
+ <Pressable dataSet={this.cache("editSearchButtonDataSet", { class: "edit-search-button" })} onPress={this.tt.onEditPressed} style={this.cache("editSearchButtonStyle", {
24
+ alignItems: "center",
25
+ justifyContent: "center",
26
+ width: 25,
27
+ height: 25,
28
+ backgroundColor: "#fff",
29
+ border: "1px solid #007bff",
30
+ borderRadius: 5,
31
+ color: "#007bff"
32
+ })}>
33
+ <Text>
34
+ &#x270E;
35
+ </Text>
36
+ </Pressable>
37
+ <Pressable dataSet={this.cache("deleteSearchButtonDataSet", { class: "delete-search-button" })} onPress={this.tt.onDeletePressed} style={this.cache("deleteSearchButtonStyle", {
38
+ alignItems: "center",
39
+ justifyContent: "center",
40
+ marginLeft: 5,
41
+ width: 25,
42
+ height: 25,
43
+ backgroundColor: "#fff",
44
+ border: "1px solid #dc3545",
45
+ borderRadius: 5,
46
+ color: "#dc3545"
47
+ })}>
48
+ <Text>
49
+ &#x2715;
50
+ </Text>
51
+ </Pressable>
52
+ </View>
53
+ </View>);
75
54
  }
76
55
  onDeletePressed = async () => {
77
56
  if (!confirm("Are you sure?")) {
@@ -84,22 +63,22 @@ const SearchLink = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponen
84
63
  onEditPressed = () => this.props.onEditPressed({ search: this.props.search });
85
64
  onSearchClicked = () => this.props.onClick({ search: this.props.search });
86
65
  }));
87
- exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)(class ApiMakerTableFiltersLoadSearchModal extends base_component_js_1.default {
66
+ export default memo(shapeComponent(class ApiMakerTableFiltersLoadSearchModal extends BaseComponent {
88
67
  setup() {
89
- const { t } = (0, use_i18n_mjs_1.default)({ namespace: "js.api_maker.table.filters.load_search_modal" });
68
+ const { t } = useI18n({ namespace: "js.api_maker.table.filters.load_search_modal" });
90
69
  this.useStates({
91
70
  editSearch: undefined,
92
71
  searches: undefined
93
72
  });
94
73
  this.setInstance({ t });
95
- (0, react_1.useMemo)(() => {
74
+ useMemo(() => {
96
75
  this.loadSearches();
97
76
  }, []);
98
77
  }
99
78
  loadSearches = async () => {
100
79
  const { currentUser } = this.props;
101
- const userType = (0, diggerize_1.digg)(currentUser.modelClassData(), "name");
102
- const searches = await models_js_1.TableSearch
80
+ const userType = digg(currentUser.modelClassData(), "name");
81
+ const searches = await TableSearch
103
82
  .ransack({ user_id_eq: currentUser.id(), user_type_eq: userType })
104
83
  .toArray();
105
84
  this.setState({ searches });
@@ -107,15 +86,22 @@ exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent
107
86
  render() {
108
87
  const { t } = this.tt;
109
88
  const { className, currentUser, modelClass, onEditSearchPressed, onRequestClose, querySearchName, ...restProps } = this.props;
110
- const Modal = config_js_1.default.getModal();
111
- return ((0, jsx_runtime_1.jsxs)(Modal, { className: (0, classnames_1.default)("api-maker--table--filters--load-search-modal", className), onRequestClose: onRequestClose, ...restProps, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { children: (0, jsx_runtime_1.jsx)(text_1.default, { children: t(".choose_a_search", { defaultValue: "Choose a search" }) }) }), this.state.searches?.map((search) => (0, jsx_runtime_1.jsx)(SearchLink, { onClick: this.tt.onSearchClicked, onDeleted: this.tt.onSearchDeleted, onEditPressed: onEditSearchPressed, search: search }, search.id()))] }));
89
+ const Modal = apiMakerConfig.getModal();
90
+ return (<Modal className={classNames("api-maker--table--filters--load-search-modal", className)} onRequestClose={onRequestClose} {...restProps}>
91
+ <View>
92
+ <Text>
93
+ {t(".choose_a_search", { defaultValue: "Choose a search" })}
94
+ </Text>
95
+ </View>
96
+ {this.state.searches?.map((search) => <SearchLink key={search.id()} onClick={this.tt.onSearchClicked} onDeleted={this.tt.onSearchDeleted} onEditPressed={onEditSearchPressed} search={search}/>)}
97
+ </Modal>);
112
98
  }
113
99
  onSearchClicked = ({ search }) => {
114
100
  const { onRequestClose, querySearchName } = this.props;
115
101
  const queryParams = search.queryParams();
116
102
  const newParams = {};
117
103
  newParams[querySearchName] = queryParams.map((queryParam) => JSON.stringify(queryParam));
118
- params_js_1.default.changeParams(newParams);
104
+ Params.changeParams(newParams);
119
105
  onRequestClose();
120
106
  };
121
107
  onSearchDeleted = ({ search }) => {
@@ -124,4 +110,4 @@ exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent
124
110
  });
125
111
  };
126
112
  }));
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1zZWFyY2gtbW9kYWwuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2ZpbHRlcnMvbG9hZC1zZWFyY2gtbW9kYWwuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFvQztBQUNwQywrQ0FBNEM7QUFDNUMsb0ZBQWdFO0FBQ2hFLGdGQUFtRDtBQUNuRCw0REFBbUM7QUFDbkMseUNBQThCO0FBQzlCLDhFQUFrRDtBQUNsRCxtRkFBeUU7QUFDekUsZ0VBQW9DO0FBQ3BDLHlDQUFxQztBQUNyQyw0REFBbUM7QUFDbkMscUZBQXVEO0FBRXZELE1BQU0sVUFBVSxHQUFHLElBQUEsaUJBQUksRUFBQyxJQUFBLG1DQUFjLEVBQUMsTUFBTSxVQUFXLFNBQVEsMkJBQWE7SUFDM0UsTUFBTTtRQUNKLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBRTNCLE9BQU8sQ0FDTCx3QkFBQyxtQkFBSSxJQUNILE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDakcsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxhQUU5RSx1QkFBQyx3QkFBUyxJQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLEVBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFDLENBQUMsRUFDbEYsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFD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Q0FBQyxFQUFFLEVBQUUsQ0FBQztTQUM3RixDQUFDLENBQUE7SUFDSixDQUFDLENBQUE7Q0FDRixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgYXBpTWFrZXJDb25maWcgZnJvbSBcIkBrYXNwZXJuai9hcGktbWFrZXIvYnVpbGQvY29uZmlnLmpzXCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi8uLi9iYXNlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL21lbW8uanNcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi8uLi9wYXJhbXMuanNcIlxuaW1wb3J0IHtUYWJsZVNlYXJjaH0gZnJvbSBcIm1vZGVscy5qc1wiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgdXNlSTE4biBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkcy9zcmMvdXNlLWkxOG4ubWpzXCJcblxuY29uc3QgU2VhcmNoTGluayA9IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgU2VhcmNoTGluayBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3NlYXJjaH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXdcbiAgICAgICAgZGF0YVNldD17dGhpcy5jYWNoZShcInJvb3RWaWV3U3R5bGVcIiwge2NsYXNzOiBcInNlYXJjaC1yb3dcIiwgc2VhcmNoSWQ6IHNlYXJjaC5pZCgpfSwgW3NlYXJjaC5pZCgpXSl9XG4gICAgICAgIHN0eWxlPXt0aGlzLmNhY2hlKFwicm9vdFZpZXdTdHlsZVN0eWxlXCIsIHtmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCB3aWR0aDogXCIxMDAlXCJ9KX1cbiAgICAgID5cbiAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJsb2FkU2VhcmNoTGlua1ByZXNzYWJsZURhdGFTZXRcIiwge2NsYXNzOiBcImxvYWQtc2VhcmNoLWxpbmtcIn0pfVxuICAgICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25TZWFyY2hDbGlja2VkfVxuICAgICAgICAgIHN0eWxlPXt0aGlzLmNhY2hlKFwibG9hZFNlYXJjaExpbmtQcmVzc2FibGVTdHlsZVwiLCB7anVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCJ9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAge3NlYXJjaC5uYW1lKCl9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgICAgPFZpZXcgc3R5bGU9e3RoaXMuY2FjaGUoXCJhY3Rpb25zVmlld1N0eWxlXCIsIHtmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBtYXJnaW5MZWZ0OiBcImF1dG9cIn0pfT5cbiAgICAgICAgICA8UHJlc3NhYmxlXG4gICAgICAgICAgICBkYXRhU2V0PXt0aGlzLmNhY2hlKFwiZWRpdFNlYXJjaEJ1dHRvbkRhdGFTZXRcIiwge2NsYXNzOiBcImVkaXQtc2VhcmNoLWJ1dHRvblwifSl9XG4gICAgICAgICAgICBvblByZXNzPXt0aGlzLnR0Lm9uRWRpdFByZXNzZWR9XG4gICAgICAgICAgICBzdHlsZT17dGhpcy5jYWNoZShcImVkaXRTZWFyY2hCdXR0b25TdHlsZVwiLCB7XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmXCIsXG4gICAgICAgICAgICAgIGJvcmRlcjogXCIxcHggc29saWQgIzAwN2JmZlwiLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDUsXG4gICAgICAgICAgICAgIGNvbG9yOiBcIiMwMDdiZmZcIlxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICYjeDI3MEU7XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgICAgZGF0YVNldD17dGhpcy5jYWNoZShcImRlbGV0ZVNlYXJjaEJ1dHRvbkRhdGFTZXRcIiwge2NsYXNzOiBcImRlbGV0ZS1zZWFyY2gtYnV0dG9uXCJ9KX1cbiAgICAgICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25EZWxldGVQcmVzc2VkfVxuICAgICAgICAgICAgc3R5bGU9e3RoaXMuY2FjaGUoXCJkZWxldGVTZWFyY2hCdXR0b25TdHlsZVwiLCB7XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA1LFxuICAgICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmXCIsXG4gICAgICAgICAgICAgIGJvcmRlcjogXCIxcHggc29saWQgI2RjMzU0NVwiLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDUsXG4gICAgICAgICAgICAgIGNvbG9yOiBcIiNkYzM1NDVcIlxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICYjeDI3MTU7XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgIDwvVmlldz5cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBvbkRlbGV0ZVByZXNzZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFjb25maXJtKFwiQXJlIHlvdSBzdXJlP1wiKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qge3NlYXJjaH0gPSB0aGlzLnByb3BzXG5cbiAgICBhd2FpdCBzZWFyY2guZGVzdHJveSgpXG4gICAgdGhpcy5wcm9wcy5vbkRlbGV0ZWQoe3NlYXJjaH0pXG4gIH1cblxuICBvbkVkaXRQcmVzc2VkID0gKCkgPT4gdGhpcy5wcm9wcy5vbkVkaXRQcmVzc2VkKHtzZWFyY2g6IHRoaXMucHJvcHMuc2VhcmNofSlcbiAgb25TZWFyY2hDbGlja2VkID0gKCkgPT4gdGhpcy5wcm9wcy5vbkNsaWNrKHtzZWFyY2g6IHRoaXMucHJvcHMuc2VhcmNofSlcbn0pKVxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVGFibGVGaWx0ZXJzTG9hZFNlYXJjaE1vZGFsIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHt0fSA9IHVzZUkxOG4oe25hbWVzcGFjZTogXCJqcy5hcGlfbWFrZXIudGFibGUuZmlsdGVycy5sb2FkX3NlYXJjaF9tb2RhbFwifSlcblxuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGVkaXRTZWFyY2g6IHVuZGVmaW5lZCxcbiAgICAgIHNlYXJjaGVzOiB1bmRlZmluZWRcbiAgICB9KVxuICAgIHRoaXMuc2V0SW5zdGFuY2Uoe3R9KVxuXG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRTZWFyY2hlcygpXG4gICAgfSwgW10pXG4gIH1cblxuICBsb2FkU2VhcmNoZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qge2N1cnJlbnRVc2VyfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB1c2VyVHlwZSA9IGRpZ2coY3VycmVudFVzZXIubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgY29uc3Qgc2VhcmNoZXMgPSBhd2FpdCBUYWJsZVNlYXJjaFxuICAgICAgLnJhbnNhY2soe3VzZXJfaWRfZXE6IGN1cnJlbnRVc2VyLmlkKCksIHVzZXJfdHlwZV9lcTogdXNlclR5cGV9KVxuICAgICAgLnRvQXJyYXkoKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7c2VhcmNoZXN9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHt0fSA9IHRoaXMudHRcbiAgICBjb25zdCB7Y2xhc3NOYW1lLCBjdXJyZW50VXNlciwgbW9kZWxDbGFzcywgb25FZGl0U2VhcmNoUHJlc3NlZCwgb25SZXF1ZXN0Q2xvc2UsIHF1ZXJ5U2VhcmNoTmFtZSwgLi4ucmVzdFByb3BzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBNb2RhbCA9IGFwaU1ha2VyQ29uZmlnLmdldE1vZGFsKClcblxuICAgIHJldHVybiAoXG4gICAgICA8TW9kYWwgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwiYXBpLW1ha2VyLS10YWJsZS0tZmlsdGVycy0tbG9hZC1zZWFyY2gtbW9kYWxcIiwgY2xhc3NOYW1lKX0gb25SZXF1ZXN0Q2xvc2U9e29uUmVxdWVzdENsb3NlfSB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgPFZpZXc+XG4gICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICB7dChcIi5jaG9vc2VfYV9zZWFyY2hcIiwge2RlZmF1bHRWYWx1ZTogXCJDaG9vc2UgYSBzZWFyY2hcIn0pfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgICB7dGhpcy5zdGF0ZS5zZWFyY2hlcz8ubWFwKChzZWFyY2gpID0+XG4gICAgICAgICAgPFNlYXJjaExpbmtcbiAgICAgICAgICAgIGtleT17c2VhcmNoLmlkKCl9XG4gICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnR0Lm9uU2VhcmNoQ2xpY2tlZH1cbiAgICAgICAgICAgIG9uRGVsZXRlZD17dGhpcy50dC5vblNlYXJjaERlbGV0ZWR9XG4gICAgICAgICAgICBvbkVkaXRQcmVzc2VkPXtvbkVkaXRTZWFyY2hQcmVzc2VkfVxuICAgICAgICAgICAgc2VhcmNoPXtzZWFyY2h9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvTW9kYWw+XG4gICAgKVxuICB9XG5cbiAgb25TZWFyY2hDbGlja2VkID0gKHtzZWFyY2h9KSA9PiB7XG4gICAgY29uc3Qge29uUmVxdWVzdENsb3NlLCBxdWVyeVNlYXJjaE5hbWV9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gc2VhcmNoLnF1ZXJ5UGFyYW1zKClcbiAgICBjb25zdCBuZXdQYXJhbXMgPSB7fVxuXG4gICAgbmV3UGFyYW1zW3F1ZXJ5U2VhcmNoTmFtZV0gPSBxdWVyeVBhcmFtcy5tYXAoKHF1ZXJ5UGFyYW0pID0+IEpTT04uc3RyaW5naWZ5KHF1ZXJ5UGFyYW0pKVxuXG4gICAgUGFyYW1zLmNoYW5nZVBhcmFtcyhuZXdQYXJhbXMpXG5cbiAgICBvblJlcXVlc3RDbG9zZSgpXG4gIH1cblxuICBvblNlYXJjaERlbGV0ZWQgPSAoe3NlYXJjaH0pID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNlYXJjaGVzOiB0aGlzLnN0YXRlLnNlYXJjaGVzLmZpbHRlcigoZXhpc3RpbmdTZWFyY2gpID0+IGV4aXN0aW5nU2VhcmNoLmlkKCkgIT0gc2VhcmNoLmlkKCkpXG4gICAgfSlcbiAgfVxufSkpXG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1zZWFyY2gtbW9kYWwuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2ZpbHRlcnMvbG9hZC1zZWFyY2gtbW9kYWwuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQzVDLE9BQU8sY0FBYyxNQUFNLHFDQUFxQyxDQUFBO0FBQ2hFLE9BQU8sYUFBYSxNQUFNLHlCQUF5QixDQUFBO0FBQ25ELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sSUFBSSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN6RSxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQTtBQUNwQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQ3JDLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sT0FBTyxNQUFNLG1DQUFtQyxDQUFBO0FBRXZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxVQUFXLFNBQVEsYUFBYTtJQUMzRSxNQUFNO1FBQ0osTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFFM0IsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUNILE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ2xH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Q0FBQyxDQUNuQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDZixDQUNILENBQ0g7TUFBQSxFQUFFLEtBQUssQ0FBQyxDQUNULENBQUE7SUFDSCxDQUFDO0lBRUQsZUFBZSxHQUFHLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFFO1FBQzdCLE1BQU0sRUFBQyxjQUFjLEVBQUUsZUFBZSxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUNwRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDeEMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBRXBCLFNBQVMsQ0FBQyxlQUFlLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFFeEYsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUU5QixjQUFjLEVBQUUsQ0FBQTtJQUNsQixDQUFDLENBQUE7SUFFRCxlQUFlLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNaLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDN0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFBO0NBQ0YsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtQcmVzc2FibGUsIFZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IGFwaU1ha2VyQ29uZmlnIGZyb20gXCJAa2FzcGVybmovYXBpLW1ha2VyL2J1aWxkL2NvbmZpZy5qc1wiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vLi4vYmFzZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vLi4vcGFyYW1zLmpzXCJcbmltcG9ydCB7VGFibGVTZWFyY2h9IGZyb20gXCJtb2RlbHMuanNcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4uLy4uL3V0aWxzL3RleHRcIlxuaW1wb3J0IHVzZUkxOG4gZnJvbSBcImkxOG4tb24tc3Rlcm9pZHMvc3JjL3VzZS1pMThuLm1qc1wiXG5cbmNvbnN0IFNlYXJjaExpbmsgPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIFNlYXJjaExpbmsgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtzZWFyY2h9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3XG4gICAgICAgIGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJyb290Vmlld1N0eWxlXCIsIHtjbGFzczogXCJzZWFyY2gtcm93XCIsIHNlYXJjaElkOiBzZWFyY2guaWQoKX0sIFtzZWFyY2guaWQoKV0pfVxuICAgICAgICBzdHlsZT17dGhpcy5jYWNoZShcInJvb3RWaWV3U3R5bGVTdHlsZVwiLCB7ZmxleERpcmVjdGlvbjogXCJyb3dcIiwgd2lkdGg6IFwiMTAwJVwifSl9XG4gICAgICA+XG4gICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICBkYXRhU2V0PXt0aGlzLmNhY2hlKFwibG9hZFNlYXJjaExpbmtQcmVzc2FibGVEYXRhU2V0XCIsIHtjbGFzczogXCJsb2FkLXNlYXJjaC1saW5rXCJ9KX1cbiAgICAgICAgICBvblByZXNzPXt0aGlzLnR0Lm9uU2VhcmNoQ2xpY2tlZH1cbiAgICAgICAgICBzdHlsZT17dGhpcy5jYWNoZShcImxvYWRTZWFyY2hMaW5rUHJlc3NhYmxlU3R5bGVcIiwge2p1c3RpZnlDb250ZW50OiBcImNlbnRlclwifSl9XG4gICAgICAgID5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHtzZWFyY2gubmFtZSgpfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgIDxWaWV3IHN0eWxlPXt0aGlzLmNhY2hlKFwiYWN0aW9uc1ZpZXdTdHlsZVwiLCB7ZmxleERpcmVjdGlvbjogXCJyb3dcIiwgbWFyZ2luTGVmdDogXCJhdXRvXCJ9KX0+XG4gICAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgICAgZGF0YVNldD17dGhpcy5jYWNoZShcImVkaXRTZWFyY2hCdXR0b25EYXRhU2V0XCIsIHtjbGFzczogXCJlZGl0LXNlYXJjaC1idXR0b25cIn0pfVxuICAgICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vbkVkaXRQcmVzc2VkfVxuICAgICAgICAgICAgc3R5bGU9e3RoaXMuY2FjaGUoXCJlZGl0U2VhcmNoQnV0dG9uU3R5bGVcIiwge1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICAgICAgICBib3JkZXI6IFwiMXB4IHNvbGlkICMwMDdiZmZcIixcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA1LFxuICAgICAgICAgICAgICBjb2xvcjogXCIjMDA3YmZmXCJcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAmI3gyNzBFO1xuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJkZWxldGVTZWFyY2hCdXR0b25EYXRhU2V0XCIsIHtjbGFzczogXCJkZWxldGUtc2VhcmNoLWJ1dHRvblwifSl9XG4gICAgICAgICAgICBvblByZXNzPXt0aGlzLnR0Lm9uRGVsZXRlUHJlc3NlZH1cbiAgICAgICAgICAgIHN0eWxlPXt0aGlzLmNhY2hlKFwiZGVsZXRlU2VhcmNoQnV0dG9uU3R5bGVcIiwge1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgbWFyZ2luTGVmdDogNSxcbiAgICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICAgICAgICBib3JkZXI6IFwiMXB4IHNvbGlkICNkYzM1NDVcIixcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA1LFxuICAgICAgICAgICAgICBjb2xvcjogXCIjZGMzNTQ1XCJcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAmI3gyNzE1O1xuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgb25EZWxldGVQcmVzc2VkID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghY29uZmlybShcIkFyZSB5b3Ugc3VyZT9cIikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHtzZWFyY2h9ID0gdGhpcy5wcm9wc1xuXG4gICAgYXdhaXQgc2VhcmNoLmRlc3Ryb3koKVxuICAgIHRoaXMucHJvcHMub25EZWxldGVkKHtzZWFyY2h9KVxuICB9XG5cbiAgb25FZGl0UHJlc3NlZCA9ICgpID0+IHRoaXMucHJvcHMub25FZGl0UHJlc3NlZCh7c2VhcmNoOiB0aGlzLnByb3BzLnNlYXJjaH0pXG4gIG9uU2VhcmNoQ2xpY2tlZCA9ICgpID0+IHRoaXMucHJvcHMub25DbGljayh7c2VhcmNoOiB0aGlzLnByb3BzLnNlYXJjaH0pXG59KSlcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclRhYmxlRmlsdGVyc0xvYWRTZWFyY2hNb2RhbCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzZXR1cCgpIHtcbiAgICBjb25zdCB7dH0gPSB1c2VJMThuKHtuYW1lc3BhY2U6IFwianMuYXBpX21ha2VyLnRhYmxlLmZpbHRlcnMubG9hZF9zZWFyY2hfbW9kYWxcIn0pXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBlZGl0U2VhcmNoOiB1bmRlZmluZWQsXG4gICAgICBzZWFyY2hlczogdW5kZWZpbmVkXG4gICAgfSlcbiAgICB0aGlzLnNldEluc3RhbmNlKHt0fSlcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkU2VhcmNoZXMoKVxuICAgIH0sIFtdKVxuICB9XG5cbiAgbG9hZFNlYXJjaGVzID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHtjdXJyZW50VXNlcn0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdXNlclR5cGUgPSBkaWdnKGN1cnJlbnRVc2VyLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuICAgIGNvbnN0IHNlYXJjaGVzID0gYXdhaXQgVGFibGVTZWFyY2hcbiAgICAgIC5yYW5zYWNrKHt1c2VyX2lkX2VxOiBjdXJyZW50VXNlci5pZCgpLCB1c2VyX3R5cGVfZXE6IHVzZXJUeXBlfSlcbiAgICAgIC50b0FycmF5KClcblxuICAgIHRoaXMuc2V0U3RhdGUoe3NlYXJjaGVzfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7dH0gPSB0aGlzLnR0XG4gICAgY29uc3Qge2NsYXNzTmFtZSwgY3VycmVudFVzZXIsIG1vZGVsQ2xhc3MsIG9uRWRpdFNlYXJjaFByZXNzZWQsIG9uUmVxdWVzdENsb3NlLCBxdWVyeVNlYXJjaE5hbWUsIC4uLnJlc3RQcm9wc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgTW9kYWwgPSBhcGlNYWtlckNvbmZpZy5nZXRNb2RhbCgpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1vZGFsIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImFwaS1tYWtlci0tdGFibGUtLWZpbHRlcnMtLWxvYWQtc2VhcmNoLW1vZGFsXCIsIGNsYXNzTmFtZSl9IG9uUmVxdWVzdENsb3NlPXtvblJlcXVlc3RDbG9zZX0gey4uLnJlc3RQcm9wc30+XG4gICAgICAgIDxWaWV3PlxuICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAge3QoXCIuY2hvb3NlX2Ffc2VhcmNoXCIsIHtkZWZhdWx0VmFsdWU6IFwiQ2hvb3NlIGEgc2VhcmNoXCJ9KX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvVmlldz5cbiAgICAgICAge3RoaXMuc3RhdGUuc2VhcmNoZXM/Lm1hcCgoc2VhcmNoKSA9PlxuICAgICAgICAgIDxTZWFyY2hMaW5rXG4gICAgICAgICAgICBrZXk9e3NlYXJjaC5pZCgpfVxuICAgICAgICAgICAgb25DbGljaz17dGhpcy50dC5vblNlYXJjaENsaWNrZWR9XG4gICAgICAgICAgICBvbkRlbGV0ZWQ9e3RoaXMudHQub25TZWFyY2hEZWxldGVkfVxuICAgICAgICAgICAgb25FZGl0UHJlc3NlZD17b25FZGl0U2VhcmNoUHJlc3NlZH1cbiAgICAgICAgICAgIHNlYXJjaD17c2VhcmNofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L01vZGFsPlxuICAgIClcbiAgfVxuXG4gIG9uU2VhcmNoQ2xpY2tlZCA9ICh7c2VhcmNofSkgPT4ge1xuICAgIGNvbnN0IHtvblJlcXVlc3RDbG9zZSwgcXVlcnlTZWFyY2hOYW1lfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHNlYXJjaC5xdWVyeVBhcmFtcygpXG4gICAgY29uc3QgbmV3UGFyYW1zID0ge31cblxuICAgIG5ld1BhcmFtc1txdWVyeVNlYXJjaE5hbWVdID0gcXVlcnlQYXJhbXMubWFwKChxdWVyeVBhcmFtKSA9PiBKU09OLnN0cmluZ2lmeShxdWVyeVBhcmFtKSlcblxuICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMobmV3UGFyYW1zKVxuXG4gICAgb25SZXF1ZXN0Q2xvc2UoKVxuICB9XG5cbiAgb25TZWFyY2hEZWxldGVkID0gKHtzZWFyY2h9KSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzZWFyY2hlczogdGhpcy5zdGF0ZS5zZWFyY2hlcy5maWx0ZXIoKGV4aXN0aW5nU2VhcmNoKSA9PiBleGlzdGluZ1NlYXJjaC5pZCgpICE9IHNlYXJjaC5pZCgpKVxuICAgIH0pXG4gIH1cbn0pKVxuIl19