@bigbinary/neeto-molecules 1.19.10 → 1.19.12

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 (266) hide show
  1. package/README.md +0 -2
  2. package/dist/Breadcrumbs.js +1 -1
  3. package/dist/Builder.js +5 -1
  4. package/dist/Builder.js.map +1 -1
  5. package/dist/CalendarView.js +8 -2
  6. package/dist/CalendarView.js.map +1 -1
  7. package/dist/{Chevron-c639aa31.js → Chevron-fe44fbdd.js} +2 -2
  8. package/dist/{Chevron-c639aa31.js.map → Chevron-fe44fbdd.js.map} +1 -1
  9. package/dist/Codeblock.js +1 -1
  10. package/dist/Columns.js +6 -2
  11. package/dist/Columns.js.map +1 -1
  12. package/dist/ConfigurePageSidebar.js +3 -2
  13. package/dist/ConfigurePageSidebar.js.map +1 -1
  14. package/dist/ConfirmationModal.js +5 -2
  15. package/dist/ConfirmationModal.js.map +1 -1
  16. package/dist/CopyToClipboardButton.js +1 -1
  17. package/dist/Currency.js +2 -2
  18. package/dist/CustomDomain.js +13 -3
  19. package/dist/CustomDomain.js.map +1 -1
  20. package/dist/CustomDomainDashboard.js +16 -4
  21. package/dist/CustomDomainDashboard.js.map +1 -1
  22. package/dist/DateFormat.js +2 -1
  23. package/dist/DateFormat.js.map +1 -1
  24. package/dist/DateRangeFilter.js +2 -1
  25. package/dist/DateRangeFilter.js.map +1 -1
  26. package/dist/DeleteArchiveModal.js +4 -1
  27. package/dist/DeleteArchiveModal.js.map +1 -1
  28. package/dist/DocumentEditor.js +2 -2
  29. package/dist/DownloadMobileAppCallout.js +1 -1
  30. package/dist/DynamicVariables.js +2 -1
  31. package/dist/DynamicVariables.js.map +1 -1
  32. package/dist/EmailForm.js +16 -4
  33. package/dist/EmailForm.js.map +1 -1
  34. package/dist/EmailPreview.js +11 -8
  35. package/dist/EmailPreview.js.map +1 -1
  36. package/dist/EmojiPicker.js +1 -1
  37. package/dist/EmojiReactions.js +2 -1
  38. package/dist/EmojiReactions.js.map +1 -1
  39. package/dist/ErrorPage.js +2 -1
  40. package/dist/ErrorPage.js.map +1 -1
  41. package/dist/FloatingActionMenu.js +8 -1
  42. package/dist/FloatingActionMenu.js.map +1 -1
  43. package/dist/Header.js +5 -1
  44. package/dist/Header.js.map +1 -1
  45. package/dist/HelpPopover.js +3 -1
  46. package/dist/HelpPopover.js.map +1 -1
  47. package/dist/IconPicker.js +6 -1
  48. package/dist/IconPicker.js.map +1 -1
  49. package/dist/InlineInput.js +2 -1
  50. package/dist/InlineInput.js.map +1 -1
  51. package/dist/Insights.js +6 -1
  52. package/dist/Insights.js.map +1 -1
  53. package/dist/IntegrationCard.js +6 -1
  54. package/dist/IntegrationCard.js.map +1 -1
  55. package/dist/IntegrationDisconnectAlert.js +1 -1
  56. package/dist/IntegrationWalkthroughModal.js +3 -1
  57. package/dist/IntegrationWalkthroughModal.js.map +1 -1
  58. package/dist/IpRestriction.js +10 -2
  59. package/dist/IpRestriction.js.map +1 -1
  60. package/dist/KeyboardShortcuts.js +3 -1
  61. package/dist/KeyboardShortcuts.js.map +1 -1
  62. package/dist/LoginPage.js +5 -2
  63. package/dist/LoginPage.js.map +1 -1
  64. package/dist/MadeWith.js +2 -2
  65. package/dist/MadeWith.js.map +1 -1
  66. package/dist/MenuBar.js +3 -1
  67. package/dist/MenuBar.js.map +1 -1
  68. package/dist/Metadata.js +2 -1
  69. package/dist/Metadata.js.map +1 -1
  70. package/dist/MoreDropdown.js +3 -1
  71. package/dist/MoreDropdown.js.map +1 -1
  72. package/dist/NavigationHeader.js +6 -1
  73. package/dist/NavigationHeader.js.map +1 -1
  74. package/dist/NeetoWidget.js +11 -2
  75. package/dist/NeetoWidget.js.map +1 -1
  76. package/dist/Onboarding.js +3 -1
  77. package/dist/Onboarding.js.map +1 -1
  78. package/dist/OptionFields.js +5 -1
  79. package/dist/OptionFields.js.map +1 -1
  80. package/dist/PageLoader.js +1 -1
  81. package/dist/PhoneNumber.js +4 -1
  82. package/dist/PhoneNumber.js.map +1 -1
  83. package/dist/ProductEmbed.js +11 -1
  84. package/dist/ProductEmbed.js.map +1 -1
  85. package/dist/PublishBlock.js +3 -1
  86. package/dist/PublishBlock.js.map +1 -1
  87. package/dist/PublishYourItem.js +1 -1
  88. package/dist/Rename.js +5 -1
  89. package/dist/Rename.js.map +1 -1
  90. package/dist/ResponsiveDevicePicker.js +1 -1
  91. package/dist/Schedule.js +8 -2
  92. package/dist/Schedule.js.map +1 -1
  93. package/dist/Search.js +1 -1
  94. package/dist/SendToFields.js +6 -2
  95. package/dist/SendToFields.js.map +1 -1
  96. package/dist/Settings.js +7 -1
  97. package/dist/Settings.js.map +1 -1
  98. package/dist/ShareRecordingPane.js +7 -1
  99. package/dist/ShareRecordingPane.js.map +1 -1
  100. package/dist/ShareViaEmail.js +14 -2
  101. package/dist/ShareViaEmail.js.map +1 -1
  102. package/dist/ShareViaLink.js +9 -2
  103. package/dist/ShareViaLink.js.map +1 -1
  104. package/dist/Sidebar.js +3 -2
  105. package/dist/Sidebar.js.map +1 -1
  106. package/dist/StickyRibbonsContainer.js +1 -1
  107. package/dist/SubHeader.js +7 -2
  108. package/dist/SubHeader.js.map +1 -1
  109. package/dist/SuffixedInput.js +2 -2
  110. package/dist/Taxonomy.js +16 -3
  111. package/dist/Taxonomy.js.map +1 -1
  112. package/dist/TimeFormat.js +2 -1
  113. package/dist/TimeFormat.js.map +1 -1
  114. package/dist/TimezoneMismatchModal.js +3 -1
  115. package/dist/TimezoneMismatchModal.js.map +1 -1
  116. package/dist/ToggleFeatureCard.js +6 -2
  117. package/dist/ToggleFeatureCard.js.map +1 -1
  118. package/dist/cjs/Breadcrumbs.js +3 -2
  119. package/dist/cjs/Breadcrumbs.js.map +1 -1
  120. package/dist/cjs/Builder.js +21 -14
  121. package/dist/cjs/Builder.js.map +1 -1
  122. package/dist/cjs/CalendarView.js +22 -12
  123. package/dist/cjs/CalendarView.js.map +1 -1
  124. package/dist/cjs/{Chevron-5fe59f57.js → Chevron-37ef38ee.js} +6 -5
  125. package/dist/cjs/{Chevron-5fe59f57.js.map → Chevron-37ef38ee.js.map} +1 -1
  126. package/dist/cjs/Codeblock.js +1 -1
  127. package/dist/cjs/Columns.js +6 -2
  128. package/dist/cjs/Columns.js.map +1 -1
  129. package/dist/cjs/ConfigurePageSidebar.js +5 -3
  130. package/dist/cjs/ConfigurePageSidebar.js.map +1 -1
  131. package/dist/cjs/ConfirmationModal.js +17 -9
  132. package/dist/cjs/ConfirmationModal.js.map +1 -1
  133. package/dist/cjs/CopyToClipboardButton.js +3 -2
  134. package/dist/cjs/CopyToClipboardButton.js.map +1 -1
  135. package/dist/cjs/Currency.js +6 -4
  136. package/dist/cjs/Currency.js.map +1 -1
  137. package/dist/cjs/CustomDomain.js +19 -6
  138. package/dist/cjs/CustomDomain.js.map +1 -1
  139. package/dist/cjs/CustomDomainDashboard.js +25 -9
  140. package/dist/cjs/CustomDomainDashboard.js.map +1 -1
  141. package/dist/cjs/DateFormat.js +6 -3
  142. package/dist/cjs/DateFormat.js.map +1 -1
  143. package/dist/cjs/DateRangeFilter.js +6 -3
  144. package/dist/cjs/DateRangeFilter.js.map +1 -1
  145. package/dist/cjs/DeleteArchiveModal.js +15 -8
  146. package/dist/cjs/DeleteArchiveModal.js.map +1 -1
  147. package/dist/cjs/DocumentEditor.js +6 -4
  148. package/dist/cjs/DocumentEditor.js.map +1 -1
  149. package/dist/cjs/DownloadMobileAppCallout.js +3 -2
  150. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -1
  151. package/dist/cjs/DynamicVariables.js +7 -4
  152. package/dist/cjs/DynamicVariables.js.map +1 -1
  153. package/dist/cjs/EmailForm.js +32 -13
  154. package/dist/cjs/EmailForm.js.map +1 -1
  155. package/dist/cjs/EmailPreview.js +20 -15
  156. package/dist/cjs/EmailPreview.js.map +1 -1
  157. package/dist/cjs/EmojiPicker.js +3 -2
  158. package/dist/cjs/EmojiPicker.js.map +1 -1
  159. package/dist/cjs/EmojiReactions.js +6 -3
  160. package/dist/cjs/EmojiReactions.js.map +1 -1
  161. package/dist/cjs/ErrorPage.js +8 -5
  162. package/dist/cjs/ErrorPage.js.map +1 -1
  163. package/dist/cjs/FloatingActionMenu.js +40 -27
  164. package/dist/cjs/FloatingActionMenu.js.map +1 -1
  165. package/dist/cjs/Header.js +7 -2
  166. package/dist/cjs/Header.js.map +1 -1
  167. package/dist/cjs/HelpPopover.js +11 -6
  168. package/dist/cjs/HelpPopover.js.map +1 -1
  169. package/dist/cjs/IconPicker.js +20 -9
  170. package/dist/cjs/IconPicker.js.map +1 -1
  171. package/dist/cjs/InlineInput.js +7 -4
  172. package/dist/cjs/InlineInput.js.map +1 -1
  173. package/dist/cjs/Insights.js +18 -11
  174. package/dist/cjs/Insights.js.map +1 -1
  175. package/dist/cjs/IntegrationCard.js +18 -8
  176. package/dist/cjs/IntegrationCard.js.map +1 -1
  177. package/dist/cjs/IntegrationDisconnectAlert.js +3 -2
  178. package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -1
  179. package/dist/cjs/IntegrationWalkthroughModal.js +10 -5
  180. package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -1
  181. package/dist/cjs/IpRestriction.js +43 -25
  182. package/dist/cjs/IpRestriction.js.map +1 -1
  183. package/dist/cjs/KeyboardShortcuts.js +13 -8
  184. package/dist/cjs/KeyboardShortcuts.js.map +1 -1
  185. package/dist/cjs/LoginPage.js +21 -13
  186. package/dist/cjs/LoginPage.js.map +1 -1
  187. package/dist/cjs/MadeWith.js +2 -2
  188. package/dist/cjs/MadeWith.js.map +1 -1
  189. package/dist/cjs/MenuBar.js +15 -10
  190. package/dist/cjs/MenuBar.js.map +1 -1
  191. package/dist/cjs/Metadata.js +10 -7
  192. package/dist/cjs/Metadata.js.map +1 -1
  193. package/dist/cjs/MoreDropdown.js +14 -9
  194. package/dist/cjs/MoreDropdown.js.map +1 -1
  195. package/dist/cjs/NavigationHeader.js +10 -3
  196. package/dist/cjs/NavigationHeader.js.map +1 -1
  197. package/dist/cjs/NeetoWidget.js +52 -32
  198. package/dist/cjs/NeetoWidget.js.map +1 -1
  199. package/dist/cjs/Onboarding.js +16 -11
  200. package/dist/cjs/Onboarding.js.map +1 -1
  201. package/dist/cjs/OptionFields.js +25 -16
  202. package/dist/cjs/OptionFields.js.map +1 -1
  203. package/dist/cjs/PageLoader.js +3 -2
  204. package/dist/cjs/PageLoader.js.map +1 -1
  205. package/dist/cjs/PhoneNumber.js +13 -6
  206. package/dist/cjs/PhoneNumber.js.map +1 -1
  207. package/dist/cjs/ProductEmbed.js +53 -32
  208. package/dist/cjs/ProductEmbed.js.map +1 -1
  209. package/dist/cjs/PublishBlock.js +12 -7
  210. package/dist/cjs/PublishBlock.js.map +1 -1
  211. package/dist/cjs/PublishYourItem.js +4 -3
  212. package/dist/cjs/PublishYourItem.js.map +1 -1
  213. package/dist/cjs/Rename.js +12 -5
  214. package/dist/cjs/Rename.js.map +1 -1
  215. package/dist/cjs/ResponsiveDevicePicker.js +3 -2
  216. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -1
  217. package/dist/cjs/Schedule.js +37 -23
  218. package/dist/cjs/Schedule.js.map +1 -1
  219. package/dist/cjs/Search.js +3 -2
  220. package/dist/cjs/Search.js.map +1 -1
  221. package/dist/cjs/SendToFields.js +30 -20
  222. package/dist/cjs/SendToFields.js.map +1 -1
  223. package/dist/cjs/Settings.js +15 -6
  224. package/dist/cjs/Settings.js.map +1 -1
  225. package/dist/cjs/ShareRecordingPane.js +21 -9
  226. package/dist/cjs/ShareRecordingPane.js.map +1 -1
  227. package/dist/cjs/ShareViaEmail.js +35 -15
  228. package/dist/cjs/ShareViaEmail.js.map +1 -1
  229. package/dist/cjs/ShareViaLink.js +37 -23
  230. package/dist/cjs/ShareViaLink.js.map +1 -1
  231. package/dist/cjs/Sidebar.js +7 -4
  232. package/dist/cjs/Sidebar.js.map +1 -1
  233. package/dist/cjs/StickyRibbonsContainer.js +3 -2
  234. package/dist/cjs/StickyRibbonsContainer.js.map +1 -1
  235. package/dist/cjs/SubHeader.js +11 -5
  236. package/dist/cjs/SubHeader.js.map +1 -1
  237. package/dist/cjs/SuffixedInput.js +4 -3
  238. package/dist/cjs/SuffixedInput.js.map +1 -1
  239. package/dist/cjs/Taxonomy.js +44 -21
  240. package/dist/cjs/Taxonomy.js.map +1 -1
  241. package/dist/cjs/TimeFormat.js +2 -1
  242. package/dist/cjs/TimeFormat.js.map +1 -1
  243. package/dist/cjs/TimezoneMismatchModal.js +15 -10
  244. package/dist/cjs/TimezoneMismatchModal.js.map +1 -1
  245. package/dist/cjs/ToggleFeatureCard.js +22 -12
  246. package/dist/cjs/ToggleFeatureCard.js.map +1 -1
  247. package/dist/cjs/{index-9b0c3047.js → index-5189db17.js} +36 -20
  248. package/dist/cjs/{index-9b0c3047.js.map → index-5189db17.js.map} +1 -1
  249. package/dist/cjs/{useColumns-9978cf70.js → useColumns-5660bfea.js} +19 -10
  250. package/dist/cjs/{useColumns-9978cf70.js.map → useColumns-5660bfea.js.map} +1 -1
  251. package/dist/{index-8fd0cad5.js → index-e29acf27.js} +10 -3
  252. package/dist/{index-8fd0cad5.js.map → index-e29acf27.js.map} +1 -1
  253. package/dist/{useColumns-751e9192.js → useColumns-cec6e827.js} +6 -2
  254. package/dist/{useColumns-751e9192.js.map → useColumns-cec6e827.js.map} +1 -1
  255. package/package.json +24 -3
  256. package/src/translations/en.json +0 -84
  257. package/dist/Security.js +0 -341
  258. package/dist/Security.js.map +0 -1
  259. package/dist/ThemeSidebar.js +0 -1410
  260. package/dist/ThemeSidebar.js.map +0 -1
  261. package/dist/cjs/Security.js +0 -372
  262. package/dist/cjs/Security.js.map +0 -1
  263. package/dist/cjs/ThemeSidebar.js +0 -1443
  264. package/dist/cjs/ThemeSidebar.js.map +0 -1
  265. package/types/Security.d.ts +0 -35
  266. package/types/themeSidebar.d.ts +0 -80
@@ -5,12 +5,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var neetoCist = require('@bigbinary/neeto-cist');
7
7
  var withT = require('@bigbinary/neeto-commons-frontend/react-utils/withT');
8
- var neetoui = require('@bigbinary/neetoui');
8
+ var Modal = require('@bigbinary/neetoui/Modal');
9
+ var Button = require('@bigbinary/neetoui/Button');
10
+ var Typography = require('@bigbinary/neetoui/Typography');
9
11
 
10
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
13
 
12
14
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
15
  var withT__default = /*#__PURE__*/_interopDefaultLegacy(withT);
16
+ var Modal__default = /*#__PURE__*/_interopDefaultLegacy(Modal);
17
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
18
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
14
19
 
15
20
  var IntegrationWalkthroughModal = function IntegrationWalkthroughModal(_ref) {
16
21
  var t = _ref.t,
@@ -21,14 +26,14 @@ var IntegrationWalkthroughModal = function IntegrationWalkthroughModal(_ref) {
21
26
  _ref$videoUrl = _ref.videoUrl,
22
27
  videoUrl = _ref$videoUrl === void 0 ? "" : _ref$videoUrl,
23
28
  children = _ref.children;
24
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Modal, {
29
+ return /*#__PURE__*/React__default["default"].createElement(Modal__default["default"], {
25
30
  isOpen: isOpen,
26
31
  onClose: onClose,
27
32
  size: "large"
28
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
33
+ }, /*#__PURE__*/React__default["default"].createElement(Modal__default["default"].Header, null, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
29
34
  style: "h2",
30
35
  weight: "semibold"
31
- }, t("neetoMolecules.integrationWalkthroughModal.header"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
36
+ }, t("neetoMolecules.integrationWalkthroughModal.header"))), /*#__PURE__*/React__default["default"].createElement(Modal__default["default"].Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
32
37
  className: "w-full py-6"
33
38
  }, /*#__PURE__*/React__default["default"].createElement("video", {
34
39
  autoPlay: true,
@@ -38,7 +43,7 @@ var IntegrationWalkthroughModal = function IntegrationWalkthroughModal(_ref) {
38
43
  id: "walkthrough-video"
39
44
  }, /*#__PURE__*/React__default["default"].createElement("source", {
40
45
  src: videoUrl
41
- })), children)), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Footer, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
46
+ })), children)), /*#__PURE__*/React__default["default"].createElement(Modal__default["default"].Footer, null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
42
47
  label: t("neetoMolecules.integrationWalkthroughModal.continue"),
43
48
  onClick: onClose
44
49
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationWalkthroughModal.js","sources":["../../src/components/IntegrationWalkthroughModal/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Modal, Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst IntegrationWalkthroughModal = ({\n t,\n isOpen = false,\n onClose = noop,\n videoUrl = \"\",\n children,\n}) => (\n <Modal {...{ isOpen, onClose }} size=\"large\">\n <Modal.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.integrationWalkthroughModal.header\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <div className=\"w-full py-6\">\n <video\n autoPlay\n controls\n muted\n className=\"neeto-ui-rounded-md w-full cursor-pointer\"\n id=\"walkthrough-video\"\n >\n <source src={videoUrl} />\n </video>\n {children}\n </div>\n </Modal.Body>\n <Modal.Footer>\n <Button\n label={t(\"neetoMolecules.integrationWalkthroughModal.continue\")}\n onClick={onClose}\n />\n </Modal.Footer>\n </Modal>\n);\n\nIntegrationWalkthroughModal.propTypes = {\n /**\n * To specify video URL of integration walkthrough that will be embedded.\n */\n videoUrl: PropTypes.string,\n /**\n * To specify whether the integration modal should be opened or closed.\n */\n isOpen: PropTypes.bool,\n /**\n * Handler function that is triggered when the continue or close button is clicked.\n */\n onClose: PropTypes.func,\n};\n\nconst WrappedIntegrationWalkthroughModal = withT(IntegrationWalkthroughModal);\nWrappedIntegrationWalkthroughModal.displayName = \"IntegrationWalkthroughModal\";\n\nexport { IntegrationWalkthroughModal };\nexport default WrappedIntegrationWalkthroughModal;\n"],"names":["IntegrationWalkthroughModal","_ref","t","_ref$isOpen","isOpen","_ref$onClose","onClose","noop","_ref$videoUrl","videoUrl","children","React","createElement","Modal","size","Header","Typography","style","weight","Body","className","autoPlay","controls","muted","id","src","Footer","Button","label","onClick","WrappedIntegrationWalkthroughModal","withT","displayName"],"mappings":";;;;;;;;;;;;;;AAOA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAC/BC,CAAC,GAAAD,IAAA,CAADC,CAAC;IAAAC,WAAA,GAAAF,IAAA,CACDG,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,WAAA;IAAAE,YAAA,GAAAJ,IAAA,CACdK,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAGE,KAAAA,CAAAA,GAAAA,cAAI,GAAAF,YAAA;IAAAG,aAAA,GAAAP,IAAA,CACdQ,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA;IACbE,QAAQ,GAAAT,IAAA,CAARS,QAAQ,CAAA;AAAA,EAAA,oBAERC,yBAAA,CAAAC,aAAA,CAACC,aAAK,EAAA;AAAOT,IAAAA,MAAM,EAANA,MAAM;AAAEE,IAAAA,OAAO,EAAPA,OAAO;AAAIQ,IAAAA,IAAI,EAAC,OAAA;AAAO,GAAA,eAC1CH,yBAAA,CAAAC,aAAA,CAACC,aAAK,CAACE,MAAM,EAAA,IAAA,eACXJ,yBAAA,CAAAC,aAAA,CAACI,kBAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,IAAI;AAACC,IAAAA,MAAM,EAAC,UAAA;AAAU,GAAA,EACrChB,CAAC,CAAC,mDAAmD,CAC5C,CACA,CAAC,eACfS,yBAAA,CAAAC,aAAA,CAACC,aAAK,CAACM,IAAI,EACTR,IAAAA,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKQ,IAAAA,SAAS,EAAC,aAAA;GACbT,eAAAA,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;IACES,QAAQ,EAAA,IAAA;IACRC,QAAQ,EAAA,IAAA;IACRC,KAAK,EAAA,IAAA;AACLH,IAAAA,SAAS,EAAC,2CAA2C;AACrDI,IAAAA,EAAE,EAAC,mBAAA;GAEHb,eAAAA,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQa,IAAAA,GAAG,EAAEhB,QAAAA;AAAS,GAAE,CACnB,CAAC,EACPC,QACE,CACK,CAAC,eACbC,yBAAA,CAAAC,aAAA,CAACC,aAAK,CAACa,MAAM,EAAA,IAAA,eACXf,yBAAA,CAAAC,aAAA,CAACe,cAAM,EAAA;AACLC,IAAAA,KAAK,EAAE1B,CAAC,CAAC,qDAAqD,CAAE;AAChE2B,IAAAA,OAAO,EAAEvB,OAAAA;GACV,CACW,CACT,CAAC,CAAA;AAAA,EACT;AAiBD,IAAMwB,kCAAkC,GAAGC,yBAAK,CAAC/B,2BAA2B,EAAC;AAC7E8B,kCAAkC,CAACE,WAAW,GAAG,6BAA6B;;;;;"}
1
+ {"version":3,"file":"IntegrationWalkthroughModal.js","sources":["../../src/components/IntegrationWalkthroughModal/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Modal, Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst IntegrationWalkthroughModal = ({\n t,\n isOpen = false,\n onClose = noop,\n videoUrl = \"\",\n children,\n}) => (\n <Modal {...{ isOpen, onClose }} size=\"large\">\n <Modal.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.integrationWalkthroughModal.header\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <div className=\"w-full py-6\">\n <video\n autoPlay\n controls\n muted\n className=\"neeto-ui-rounded-md w-full cursor-pointer\"\n id=\"walkthrough-video\"\n >\n <source src={videoUrl} />\n </video>\n {children}\n </div>\n </Modal.Body>\n <Modal.Footer>\n <Button\n label={t(\"neetoMolecules.integrationWalkthroughModal.continue\")}\n onClick={onClose}\n />\n </Modal.Footer>\n </Modal>\n);\n\nIntegrationWalkthroughModal.propTypes = {\n /**\n * To specify video URL of integration walkthrough that will be embedded.\n */\n videoUrl: PropTypes.string,\n /**\n * To specify whether the integration modal should be opened or closed.\n */\n isOpen: PropTypes.bool,\n /**\n * Handler function that is triggered when the continue or close button is clicked.\n */\n onClose: PropTypes.func,\n};\n\nconst WrappedIntegrationWalkthroughModal = withT(IntegrationWalkthroughModal);\nWrappedIntegrationWalkthroughModal.displayName = \"IntegrationWalkthroughModal\";\n\nexport { IntegrationWalkthroughModal };\nexport default WrappedIntegrationWalkthroughModal;\n"],"names":["IntegrationWalkthroughModal","_ref","t","_ref$isOpen","isOpen","_ref$onClose","onClose","noop","_ref$videoUrl","videoUrl","children","React","createElement","Modal","size","Header","Typography","style","weight","Body","className","autoPlay","controls","muted","id","src","Footer","Button","label","onClick","WrappedIntegrationWalkthroughModal","withT","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;AAOA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAC/BC,CAAC,GAAAD,IAAA,CAADC,CAAC;IAAAC,WAAA,GAAAF,IAAA,CACDG,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,WAAA;IAAAE,YAAA,GAAAJ,IAAA,CACdK,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAGE,KAAAA,CAAAA,GAAAA,cAAI,GAAAF,YAAA;IAAAG,aAAA,GAAAP,IAAA,CACdQ,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA;IACbE,QAAQ,GAAAT,IAAA,CAARS,QAAQ,CAAA;AAAA,EAAA,oBAERC,yBAAA,CAAAC,aAAA,CAACC,yBAAK,EAAA;AAAOT,IAAAA,MAAM,EAANA,MAAM;AAAEE,IAAAA,OAAO,EAAPA,OAAO;AAAIQ,IAAAA,IAAI,EAAC,OAAA;AAAO,GAAA,eAC1CH,yBAAA,CAAAC,aAAA,CAACC,yBAAK,CAACE,MAAM,EAAA,IAAA,eACXJ,yBAAA,CAAAC,aAAA,CAACI,8BAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,IAAI;AAACC,IAAAA,MAAM,EAAC,UAAA;AAAU,GAAA,EACrChB,CAAC,CAAC,mDAAmD,CAC5C,CACA,CAAC,eACfS,yBAAA,CAAAC,aAAA,CAACC,yBAAK,CAACM,IAAI,EACTR,IAAAA,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKQ,IAAAA,SAAS,EAAC,aAAA;GACbT,eAAAA,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;IACES,QAAQ,EAAA,IAAA;IACRC,QAAQ,EAAA,IAAA;IACRC,KAAK,EAAA,IAAA;AACLH,IAAAA,SAAS,EAAC,2CAA2C;AACrDI,IAAAA,EAAE,EAAC,mBAAA;GAEHb,eAAAA,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQa,IAAAA,GAAG,EAAEhB,QAAAA;AAAS,GAAE,CACnB,CAAC,EACPC,QACE,CACK,CAAC,eACbC,yBAAA,CAAAC,aAAA,CAACC,yBAAK,CAACa,MAAM,EAAA,IAAA,eACXf,yBAAA,CAAAC,aAAA,CAACe,0BAAM,EAAA;AACLC,IAAAA,KAAK,EAAE1B,CAAC,CAAC,qDAAqD,CAAE;AAChE2B,IAAAA,OAAO,EAAEvB,OAAAA;GACV,CACW,CACT,CAAC,CAAA;AAAA,EACT;AAiBD,IAAMwB,kCAAkC,GAAGC,yBAAK,CAAC/B,2BAA2B,EAAC;AAC7E8B,kCAAkC,CAACE,WAAW,GAAG,6BAA6B;;;;;"}
@@ -2,13 +2,21 @@
2
2
 
3
3
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
4
  var React = require('react');
5
- var neetoui = require('@bigbinary/neetoui');
6
- var formik = require('@bigbinary/neetoui/formik');
5
+ var Typography = require('@bigbinary/neetoui/Typography');
6
+ var Alert = require('@bigbinary/neetoui/Alert');
7
+ var Callout = require('@bigbinary/neetoui/Callout');
8
+ var Button = require('@bigbinary/neetoui/Button');
9
+ var Form = require('@bigbinary/neetoui/formik/Form');
10
+ var Checkbox = require('@bigbinary/neetoui/formik/Checkbox');
11
+ var Button$1 = require('@bigbinary/neetoui/formik/Button');
12
+ var BlockNavigation = require('@bigbinary/neetoui/formik/BlockNavigation');
7
13
  var reactI18next = require('react-i18next');
8
14
  var PageLoader = require('./PageLoader.js');
9
- var formik$1 = require('formik');
15
+ var formik = require('formik');
10
16
  var withT = require('@bigbinary/neeto-commons-frontend/react-utils/withT');
11
17
  var neetoIcons = require('@bigbinary/neeto-icons');
18
+ var Input = require('@bigbinary/neetoui/formik/Input');
19
+ var Select = require('@bigbinary/neetoui/formik/Select');
12
20
  var i18next = require('i18next');
13
21
  var yup = require('yup');
14
22
  var ipNum = require('ip-num');
@@ -42,7 +50,17 @@ function _interopNamespace(e) {
42
50
 
43
51
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
44
52
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
53
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
54
+ var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
55
+ var Callout__default = /*#__PURE__*/_interopDefaultLegacy(Callout);
56
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
57
+ var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
58
+ var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
59
+ var Button__default$1 = /*#__PURE__*/_interopDefaultLegacy(Button$1);
60
+ var BlockNavigation__default = /*#__PURE__*/_interopDefaultLegacy(BlockNavigation);
45
61
  var withT__default = /*#__PURE__*/_interopDefaultLegacy(withT);
62
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
63
+ var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
46
64
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
47
65
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
48
66
  var useMutationWithInvalidation__default = /*#__PURE__*/_interopDefaultLegacy(useMutationWithInvalidation);
@@ -183,7 +201,7 @@ var AllowedIpRange = withT__default["default"](function (_ref) {
183
201
  arrayHelpers = _ref.arrayHelpers;
184
202
  return /*#__PURE__*/React__default["default"].createElement("div", {
185
203
  className: "neeto-ui-bg-white neeto-ui-rounded-lg grid grid-cols-2 gap-4 p-3 sm:grid-cols-12"
186
- }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
204
+ }, /*#__PURE__*/React__default["default"].createElement(Input__default["default"], {
187
205
  className: "col-span-1 text-left sm:col-span-4",
188
206
  "data-cy": "ip-start-text-field",
189
207
  label: t("neetoMolecules.ipRestriction.ipStart"),
@@ -192,7 +210,7 @@ var AllowedIpRange = withT__default["default"](function (_ref) {
192
210
  },
193
211
  name: "allowedIpRanges.".concat(index, ".ipStart"),
194
212
  placeholder: t("neetoMolecules.ipRestriction.ipStart")
195
- }), /*#__PURE__*/React__default["default"].createElement(formik.Input, {
213
+ }), /*#__PURE__*/React__default["default"].createElement(Input__default["default"], {
196
214
  className: "col-span-1 text-left sm:col-span-4",
197
215
  "data-cy": "ip-end-text-field",
198
216
  label: t("neetoMolecules.ipRestriction.ipEnd"),
@@ -201,7 +219,7 @@ var AllowedIpRange = withT__default["default"](function (_ref) {
201
219
  },
202
220
  name: "allowedIpRanges.".concat(index, ".ipEnd"),
203
221
  placeholder: t("neetoMolecules.ipRestriction.ipEnd")
204
- }), /*#__PURE__*/React__default["default"].createElement(formik.Select, {
222
+ }), /*#__PURE__*/React__default["default"].createElement(Select__default["default"], {
205
223
  className: "col-span-1 text-left sm:col-span-2",
206
224
  "data-testid": "address-type-select-field",
207
225
  label: t("neetoMolecules.ipRestriction.type"),
@@ -212,7 +230,7 @@ var AllowedIpRange = withT__default["default"](function (_ref) {
212
230
  options: ADDRESS_TYPE_SELECT_OPTIONS
213
231
  }), /*#__PURE__*/React__default["default"].createElement("div", {
214
232
  className: "col-span-1 flex sm:col-span-2 sm:justify-center"
215
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
233
+ }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
216
234
  className: "mt-auto sm:mt-0",
217
235
  "data-testid": "allowed-ip-range-delete-btn",
218
236
  icon: neetoIcons.Delete,
@@ -232,28 +250,28 @@ var AllowedIpRanges = withT__default["default"](function (_ref) {
232
250
  return /*#__PURE__*/React__default["default"].createElement("div", {
233
251
  className: "space-y-6",
234
252
  "data-cy": "allowed-ip-range-container"
235
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
253
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
236
254
  "data-cy": "allowed-ip-range-heading",
237
255
  style: "h4"
238
256
  }, t("neetoMolecules.ipRestriction.allowedIpRangeTitle")), /*#__PURE__*/React__default["default"].createElement("div", {
239
257
  className: "space-y-4"
240
258
  }, /*#__PURE__*/React__default["default"].createElement("div", {
241
259
  className: "hidden grid-cols-12 gap-4 px-3 sm:grid"
242
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
260
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
243
261
  className: "neeto-ui-text-gray-700 col-span-4 uppercase",
244
262
  style: "h6"
245
- }, t("neetoMolecules.ipRestriction.ipStart"), "*"), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
263
+ }, t("neetoMolecules.ipRestriction.ipStart"), "*"), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
246
264
  className: "neeto-ui-text-gray-700 col-span-4 uppercase",
247
265
  style: "h6"
248
- }, t("neetoMolecules.ipRestriction.ipEnd"), "*"), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
266
+ }, t("neetoMolecules.ipRestriction.ipEnd"), "*"), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
249
267
  className: "neeto-ui-text-gray-700 col-span-2 uppercase",
250
268
  style: "h6"
251
- }, t("neetoMolecules.ipRestriction.type"), "*"), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
269
+ }, t("neetoMolecules.ipRestriction.type"), "*"), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
252
270
  className: "neeto-ui-text-gray-700 col-span-2 text-center uppercase",
253
271
  style: "h6"
254
272
  }, t("neetoMolecules.ipRestriction.actions"))), /*#__PURE__*/React__default["default"].createElement("div", {
255
273
  className: "w-full space-y-2"
256
- }, /*#__PURE__*/React__default["default"].createElement(formik$1.FieldArray, {
274
+ }, /*#__PURE__*/React__default["default"].createElement(formik.FieldArray, {
257
275
  name: "allowedIpRanges"
258
276
  }, function (arrayHelpers) {
259
277
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, arrayHelpers.form.values.allowedIpRanges.map(function (allowedIpRange, index) {
@@ -263,7 +281,7 @@ var AllowedIpRanges = withT__default["default"](function (_ref) {
263
281
  index: index,
264
282
  key: allowedIpRange.createdAt
265
283
  });
266
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
284
+ }), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
267
285
  "data-cy": "add-allowed-ip-range-button",
268
286
  label: t("neetoMolecules.ipRestriction.addNew"),
269
287
  style: "link",
@@ -298,7 +316,7 @@ var CurrentIp = function CurrentIp() {
298
316
  return /*#__PURE__*/React__default["default"].createElement("div", {
299
317
  className: "flex flex-wrap items-baseline gap-1",
300
318
  "data-cy": "current-ip-container"
301
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, null, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
319
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], null, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
302
320
  i18nKey: "neetoMolecules.ipRestriction.currentIpMessage",
303
321
  values: {
304
322
  ip: isLoading ? "..." : data.ip
@@ -417,7 +435,7 @@ var IpRestriction = function IpRestriction() {
417
435
  }
418
436
  });
419
437
  };
420
- return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
438
+ return /*#__PURE__*/React__default["default"].createElement(Form__default["default"], {
421
439
  className: "mx-auto mb-4 w-full sm:max-w-screen-sm md:max-w-screen-md lg:max-w-3xl",
422
440
  formikProps: {
423
441
  initialValues: buildInitialValue(isIpRestrictionEnabled, allowedIpRanges),
@@ -432,29 +450,29 @@ var IpRestriction = function IpRestriction() {
432
450
  setFieldValue = _ref2.setFieldValue,
433
451
  resetForm = _ref2.resetForm,
434
452
  setSubmitting = _ref2.setSubmitting;
435
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(formik.BlockNavigation, null), /*#__PURE__*/React__default["default"].createElement("div", {
453
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(BlockNavigation__default["default"], null), /*#__PURE__*/React__default["default"].createElement("div", {
436
454
  className: "neeto-ui-bg-white neeto-ui-border-gray-200 neeto-ui-rounded-lg mx-auto mb-4 w-full overflow-hidden border sm:max-w-screen-sm md:max-w-screen-md lg:max-w-3xl",
437
455
  "data-cy": "ip-restrictions-card"
438
456
  }, /*#__PURE__*/React__default["default"].createElement("div", {
439
457
  className: "space-y-2 p-6"
440
- }, /*#__PURE__*/React__default["default"].createElement(formik.Checkbox, {
458
+ }, /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
441
459
  checked: values.ipRestriction,
442
460
  className: "flex-grow-0",
443
461
  "data-cy": "enable-ip-restriction-checkbox",
444
462
  disabled: isFetchingIpRestriction || isUpdating,
445
463
  name: "ipRestriction",
446
- label: /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
464
+ label: /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
447
465
  style: "h3"
448
466
  }, t("neetoMolecules.ipRestriction.switchLabel")),
449
467
  onChange: function onChange() {
450
468
  return setFieldValue("ipRestriction", !values.ipRestriction);
451
469
  }
452
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
470
+ }), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
453
471
  "data-cy": "ip-restriction-description",
454
472
  style: "body2"
455
473
  }, t("neetoMolecules.ipRestriction.description"))), values.ipRestriction && /*#__PURE__*/React__default["default"].createElement("div", {
456
474
  className: "neeto-ui-bg-gray-100 w-full space-y-6 p-6"
457
- }, /*#__PURE__*/React__default["default"].createElement(CurrentIp$1, null), /*#__PURE__*/React__default["default"].createElement(AllowedIpRanges$1, null), /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
475
+ }, /*#__PURE__*/React__default["default"].createElement(CurrentIp$1, null), /*#__PURE__*/React__default["default"].createElement(AllowedIpRanges$1, null), /*#__PURE__*/React__default["default"].createElement(Callout__default["default"], {
458
476
  style: "warning"
459
477
  }, /*#__PURE__*/React__default["default"].createElement("div", {
460
478
  className: "leading-2 block whitespace-pre-wrap py-1"
@@ -462,24 +480,24 @@ var IpRestriction = function IpRestriction() {
462
480
  i18nKey: "neetoMolecules.ipRestriction.warningMessage"
463
481
  }))))), /*#__PURE__*/React__default["default"].createElement("div", {
464
482
  className: "flex flex-wrap items-center justify-between gap-4"
465
- }, dirty && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
483
+ }, dirty && /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
466
484
  className: "neeto-ui-text-error-500",
467
485
  style: "body2"
468
486
  }, t("neetoMolecules.ipRestriction.validations.unsavedChanges")), /*#__PURE__*/React__default["default"].createElement("div", {
469
487
  className: "ml-auto flex justify-between"
470
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
488
+ }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
471
489
  className: "mr-2",
472
490
  disabled: !dirty,
473
491
  label: t("neetoMolecules.common.actions.reset"),
474
492
  style: "secondary",
475
493
  type: "reset",
476
494
  onClick: resetForm
477
- }), /*#__PURE__*/React__default["default"].createElement(formik.Button, {
495
+ }), /*#__PURE__*/React__default["default"].createElement(Button__default$1["default"], {
478
496
  "data-cy": "ip-restriction-save-changes",
479
497
  "data-testid": "save-changes-button",
480
498
  isLoading: isUpdating,
481
499
  type: "submit"
482
- }, t("neetoMolecules.common.actions.saveChanges")))), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
500
+ }, t("neetoMolecules.common.actions.saveChanges")))), /*#__PURE__*/React__default["default"].createElement(Alert__default["default"], {
483
501
  isOpen: isAlertOpen,
484
502
  isSubmitting: isUpdating,
485
503
  title: t("neetoMolecules.ipRestriction.enableAlert.title"),
@@ -1 +1 @@
1
- {"version":3,"file":"IpRestriction.js","sources":["../../src/components/IpRestriction/utils.js","../../src/components/IpRestriction/constants.js","../../src/components/IpRestriction/AllowedIpRanges/AllowedIpRange.jsx","../../src/components/IpRestriction/AllowedIpRanges/index.jsx","../../src/components/IpRestriction/apis/current_ip.js","../../src/components/IpRestriction/hooks/reactQuery/useCurrentIp.js","../../src/components/IpRestriction/CurrentIp.jsx","../../src/components/IpRestriction/apis/allowed_ip_ranges.js","../../src/components/IpRestriction/hooks/reactQuery/useAllowedIpRanges.js","../../src/components/IpRestriction/apis/ip_restriction.js","../../src/components/IpRestriction/hooks/reactQuery/useIpRestrictions.js","../../src/components/IpRestriction/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { IPv4, IPv6, Validator } from \"ip-num\";\nimport { assoc, isNil, isNotNil } from \"ramda\";\nimport * as yup from \"yup\";\n\nconst toLabelAndValue = value => ({\n label: humanizeIpAddressFormat(value),\n value,\n});\n\nconst isValidIPv4String = ip =>\n isNotNil(ip) && Validator.isValidIPv4String(ip)[0];\n\nconst isValidIPv6String = ip =>\n isNotNil(ip) && Validator.isValidIPv6String(ip)[0];\n\nconst isValidIpString = ip => isValidIPv4String(ip) || isValidIPv6String(ip);\n\nconst areIpAddressesInSameFormat = (ipStart, ipEnd) =>\n (isValidIPv4String(ipStart) && isValidIPv4String(ipEnd)) ||\n (isValidIPv6String(ipStart) && isValidIPv6String(ipEnd));\n\nconst isValidIPv4Range = (ipStart, ipEnd) => {\n const ipStartAddr = IPv4.fromDecimalDottedString(ipStart);\n const ipEndAddr = IPv4.fromDecimalDottedString(ipEnd);\n\n return ipStartAddr.isLessThanOrEquals(ipEndAddr);\n};\n\nconst isValidIPv6Range = (ipStart, ipEnd) => {\n const ipStartAddr = IPv6.fromString(ipStart);\n const ipEndAddr = IPv6.fromString(ipEnd);\n\n return ipStartAddr.isLessThanOrEquals(ipEndAddr);\n};\n\nconst isValidIPRange = (ipStart, ipEnd) => {\n if (isValidIPv4String(ipStart) && isValidIPv4String(ipEnd)) {\n return isValidIPv4Range(ipStart, ipEnd);\n }\n\n if (isValidIPv6String(ipStart) && isValidIPv6String(ipEnd)) {\n return isValidIPv6Range(ipStart, ipEnd);\n }\n\n return false;\n};\n\nyup.addMethod(yup.string, \"validIp\", function (errorMessage) {\n return this.test(\"valid-ip\", errorMessage, function (value) {\n if (isNil(value)) {\n return this;\n }\n\n const isValidIp = isValidIpString(value);\n\n return (\n isValidIp || this.createError({ path: this.path, message: errorMessage })\n );\n });\n});\n\nexport const getIpRestrictionValidationSchema = () =>\n yup.object().shape({\n ipStart: yup\n .string()\n .validIp(t(\"neetoMolecules.ipRestriction.validations.invalidIp\"))\n .required(t(\"neetoMolecules.ipRestriction.validations.ipStartRequired\")),\n ipEnd: yup\n .string()\n .validIp(t(\"neetoMolecules.ipRestriction.validations.invalidIp\"))\n .when(\"ipStart\", (ipStart, schema) =>\n schema.test({\n test: ipEnd => areIpAddressesInSameFormat(ipStart, ipEnd),\n message: t(\n \"neetoMolecules.ipRestriction.validations.eitherIpv4OrIpv6\"\n ),\n })\n )\n .when(\"ipStart\", (ipStart, schema) =>\n schema.test({\n test: ipEnd => isValidIPRange(ipStart, ipEnd),\n message: t(\n \"neetoMolecules.ipRestriction.validations.ipEndGreaterThanIpStart\"\n ),\n })\n )\n .required(t(\"neetoMolecules.ipRestriction.validations.ipEndRequired\")),\n addressType: yup\n .object()\n .shape({\n value: yup.string().required(),\n label: yup.string().required(),\n })\n .nullable()\n .required(\n t(\"neetoMolecules.ipRestriction.validations.addressTypeRequired\")\n ),\n });\n\nexport const humanizeIpAddressFormat = addressFormat => {\n const addressFormats = { ipv4: \"IPv4\", ipv6: \"IPv6\" };\n\n return addressFormats[addressFormat];\n};\n\nexport const buildInitialValue = (isIpRestrictionEnabled, allowedIpRanges) => ({\n ipRestriction: isIpRestrictionEnabled,\n allowedIpRanges: buildAllowedIpRangesFormData(allowedIpRanges),\n});\n\nexport const buildAllowedIpRangesFormData = allowedIpRanges =>\n allowedIpRanges?.map(allowedIpRange =>\n assoc(\n \"addressType\",\n toLabelAndValue(allowedIpRange.addressType),\n allowedIpRange\n )\n );\n\nexport const buildIpRestrictionPayload = values => {\n const allowedIpRangesWithTransformedAddressType = values.allowedIpRanges.map(\n allowedIpRange =>\n assoc(\"addressType\", allowedIpRange.addressType.value, allowedIpRange)\n );\n\n return {\n isIpRestrictionEnabled: values.ipRestriction,\n allowedIpRanges: allowedIpRangesWithTransformedAddressType,\n };\n};\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { getIpRestrictionValidationSchema } from \"./utils\";\n\nexport const IP_RESTRICTIONS_ENGINE_BASE_URL = \"/ip_restrictions/api/v1\";\n\nexport const QUERY_KEYS = {\n IP_RESTRICTION: \"IP_RESTRICTION\",\n ALLOWED_IP_RANGES: \"ALLOWED_IP_RANGES\",\n CURRENT_IP: \"CURRENT_IP\",\n};\n\nexport const TRUNCATE_LENGTH = 18;\n\nexport const ADDRESS_TYPE_SELECT_OPTIONS = [\n { label: t(\"neetoMolecules.ipRestriction.ipv4\"), value: \"ipv4\" },\n { label: t(\"neetoMolecules.ipRestriction.ipv6\"), value: \"ipv6\" },\n];\n\nexport const INITIAL_VALUES = {\n ipStart: \"\",\n ipEnd: \"\",\n addressType: ADDRESS_TYPE_SELECT_OPTIONS[0].value,\n};\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n ipRestriction: yup.boolean(),\n allowedIpRanges: yup.array().of(getIpRestrictionValidationSchema()),\n});\n\nexport const NEW_ALLOWED_IP_RANGE = {\n ipStart: \"\",\n ipEnd: \"\",\n addressType: null,\n createdAt: new Date().toISOString(),\n};\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input, Select } from \"neetoui/formik\";\n\nimport { ADDRESS_TYPE_SELECT_OPTIONS } from \"../constants\";\n\nconst AllowedIpRange = withT(({ t, index, arrayHelpers }) => (\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-lg grid grid-cols-2 gap-4 p-3 sm:grid-cols-12\">\n <Input\n className=\"col-span-1 text-left sm:col-span-4\"\n data-cy=\"ip-start-text-field\"\n label={t(\"neetoMolecules.ipRestriction.ipStart\")}\n labelProps={{ className: \"sm:hidden\" }}\n name={`allowedIpRanges.${index}.ipStart`}\n placeholder={t(\"neetoMolecules.ipRestriction.ipStart\")}\n />\n <Input\n className=\"col-span-1 text-left sm:col-span-4\"\n data-cy=\"ip-end-text-field\"\n label={t(\"neetoMolecules.ipRestriction.ipEnd\")}\n labelProps={{ className: \"sm:hidden\" }}\n name={`allowedIpRanges.${index}.ipEnd`}\n placeholder={t(\"neetoMolecules.ipRestriction.ipEnd\")}\n />\n <Select\n className=\"col-span-1 text-left sm:col-span-2\"\n data-testid=\"address-type-select-field\"\n label={t(\"neetoMolecules.ipRestriction.type\")}\n labelProps={{ className: \"sm:hidden\" }}\n name={`allowedIpRanges.${index}.addressType`}\n options={ADDRESS_TYPE_SELECT_OPTIONS}\n />\n <div className=\"col-span-1 flex sm:col-span-2 sm:justify-center\">\n <Button\n className=\"mt-auto sm:mt-0\"\n data-testid=\"allowed-ip-range-delete-btn\"\n icon={Delete}\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.discard\"),\n position: \"top\",\n }}\n onClick={() => arrayHelpers.remove(index)}\n />\n </div>\n </div>\n));\n\nexport default AllowedIpRange;\n","import React from \"react\";\n\nimport { FieldArray } from \"formik\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Button, Typography } from \"neetoui\";\n\nimport AllowedIpRange from \"./AllowedIpRange\";\n\nimport { NEW_ALLOWED_IP_RANGE } from \"../constants\";\n\nconst AllowedIpRanges = withT(({ t }) => (\n <div className=\"space-y-6\" data-cy=\"allowed-ip-range-container\">\n <Typography data-cy=\"allowed-ip-range-heading\" style=\"h4\">\n {t(\"neetoMolecules.ipRestriction.allowedIpRangeTitle\")}\n </Typography>\n <div className=\"space-y-4\">\n <div className=\"hidden grid-cols-12 gap-4 px-3 sm:grid\">\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-4 uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.ipStart\")}*\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-4 uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.ipEnd\")}*\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-2 uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.type\")}*\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-2 text-center uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.actions\")}\n </Typography>\n </div>\n <div className=\"w-full space-y-2\">\n <FieldArray name=\"allowedIpRanges\">\n {arrayHelpers => (\n <>\n {arrayHelpers.form.values.allowedIpRanges.map(\n (allowedIpRange, index) => (\n <AllowedIpRange\n {...{ allowedIpRange, arrayHelpers, index }}\n key={allowedIpRange.createdAt}\n />\n )\n )}\n <Button\n data-cy=\"add-allowed-ip-range-button\"\n label={t(\"neetoMolecules.ipRestriction.addNew\")}\n style=\"link\"\n onClick={() => arrayHelpers.push(NEW_ALLOWED_IP_RANGE)}\n />\n </>\n )}\n </FieldArray>\n </div>\n </div>\n </div>\n));\n\nexport default React.memo(AllowedIpRanges);\n","import axios from \"axios\";\n\nimport { IP_RESTRICTIONS_ENGINE_BASE_URL } from \"../constants\";\n\nconst show = params =>\n axios.get(`${IP_RESTRICTIONS_ENGINE_BASE_URL}/current_ip`, { params });\n\nconst currentIpApi = { show };\n\nexport default currentIpApi;\n","import { useQuery } from \"react-query\";\n\nimport currentIpApi from \"../../apis/current_ip\";\nimport { QUERY_KEYS } from \"../../constants\";\n\nconst { CURRENT_IP } = QUERY_KEYS;\n\nconst useShowCurrentIp = () =>\n useQuery([CURRENT_IP], () => currentIpApi.show());\n\nexport { useShowCurrentIp };\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport { useShowCurrentIp } from \"./hooks/reactQuery/useCurrentIp\";\n\nconst CurrentIp = () => {\n const { data, isLoading } = useShowCurrentIp();\n\n return (\n <div\n className=\"flex flex-wrap items-baseline gap-1\"\n data-cy=\"current-ip-container\"\n >\n <Typography>\n <Trans\n i18nKey=\"neetoMolecules.ipRestriction.currentIpMessage\"\n values={{ ip: isLoading ? \"...\" : data.ip }}\n />\n </Typography>\n </div>\n );\n};\n\nexport default React.memo(CurrentIp);\n","import axios from \"axios\";\n\nimport { IP_RESTRICTIONS_ENGINE_BASE_URL } from \"../constants\";\n\nconst allowedIpRangesUrl = `${IP_RESTRICTIONS_ENGINE_BASE_URL}/allowed_ips`;\n\nconst fetch = () => axios.get(allowedIpRangesUrl);\n\nconst create = payload =>\n axios.post(allowedIpRangesUrl, { allowedIpRange: payload });\n\nconst destroy = id => axios.delete(`${allowedIpRangesUrl}/${id}`);\n\nconst update = ({ id, payload }) =>\n axios.patch(`${allowedIpRangesUrl}/${id}`, {\n allowedIpRange: payload,\n });\n\nconst allowedIpRangesApi = { fetch, create, destroy, update };\n\nexport default allowedIpRangesApi;\n","import useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\nimport { useQuery } from \"react-query\";\n\nimport allowedIpRangesApi from \"../../apis/allowed_ip_ranges\";\nimport { QUERY_KEYS } from \"../../constants\";\n\nconst { ALLOWED_IP_RANGES } = QUERY_KEYS;\n\nconst useFetchAllowedIpRanges = options =>\n useQuery([ALLOWED_IP_RANGES], () => allowedIpRangesApi.fetch(), options);\n\nconst useCreateAllowedIpRanges = () =>\n useMutationWithInvalidation(allowedIpRangesApi.create, {\n keysToInvalidate: [ALLOWED_IP_RANGES],\n });\n\nconst useDestroyAllowedIpRanges = () =>\n useMutationWithInvalidation(allowedIpRangesApi.destroy, {\n keysToInvalidate: [ALLOWED_IP_RANGES],\n });\n\nconst useUpdateAllowedIpRanges = () =>\n useMutationWithInvalidation(allowedIpRangesApi.update, {\n keysToInvalidate: [ALLOWED_IP_RANGES],\n });\n\nexport {\n useFetchAllowedIpRanges,\n useCreateAllowedIpRanges,\n useDestroyAllowedIpRanges,\n useUpdateAllowedIpRanges,\n};\n","import axios from \"axios\";\n\nimport { IP_RESTRICTIONS_ENGINE_BASE_URL } from \"../constants\";\n\nconst ipRestrictionUrl = `${IP_RESTRICTIONS_ENGINE_BASE_URL}/ip_restriction`;\n\nconst update = params =>\n axios.patch(ipRestrictionUrl, { ipRestriction: params });\n\nconst show = () => axios.get(ipRestrictionUrl);\n\nconst ipRestrictionApi = { update, show };\n\nexport default ipRestrictionApi;\n","import useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\nimport { useQuery } from \"react-query\";\n\nimport ipRestrictionApi from \"../../apis/ip_restriction\";\nimport { QUERY_KEYS } from \"../../constants\";\n\nconst { IP_RESTRICTION, ALLOWED_IP_RANGES } = QUERY_KEYS;\n\nconst useShowIpRestriction = () =>\n useQuery([IP_RESTRICTION], () => ipRestrictionApi.show());\n\nconst useUpdateIpRestriction = () =>\n useMutationWithInvalidation(ipRestrictionApi.update, {\n keysToInvalidate: [IP_RESTRICTION, ALLOWED_IP_RANGES],\n });\n\nexport { useShowIpRestriction, useUpdateIpRestriction };\n","import React, { useState } from \"react\";\n\nimport { Typography, Alert, Callout, Button } from \"neetoui\";\nimport {\n Form as NeetoUIForm,\n Checkbox,\n Button as FormikButton,\n BlockNavigation,\n} from \"neetoui/formik\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport PageLoader from \"components/PageLoader\";\n\nimport AllowedIpRanges from \"./AllowedIpRanges\";\nimport { VALIDATION_SCHEMA } from \"./constants\";\nimport CurrentIp from \"./CurrentIp\";\nimport { useFetchAllowedIpRanges } from \"./hooks/reactQuery/useAllowedIpRanges\";\nimport {\n useShowIpRestriction,\n useUpdateIpRestriction,\n} from \"./hooks/reactQuery/useIpRestrictions\";\nimport { buildInitialValue, buildIpRestrictionPayload } from \"./utils\";\n\nconst IpRestriction = () => {\n const { t } = useTranslation();\n const [isAlertOpen, setIsAlertOpen] = useState(false);\n\n const {\n data: { isIpRestrictionEnabled } = {},\n isLoading: isFetchingIpRestriction,\n } = useShowIpRestriction();\n\n const {\n data: allowedIpRanges,\n isLoading: isFetchingAllowedIpRanges,\n isRefetching,\n } = useFetchAllowedIpRanges({ enabled: isIpRestrictionEnabled });\n\n const { mutate: updateIpRestriction, isLoading: isUpdating } =\n useUpdateIpRestriction();\n\n if (isFetchingIpRestriction || isFetchingAllowedIpRanges || isRefetching) {\n return (\n <div className=\"h-screen\">\n <PageLoader />\n </div>\n );\n }\n\n const handleSubmit = (values, formikBag) => {\n if (values.ipRestriction) setIsAlertOpen(true);\n else handleUpdateIpRestriction(values, formikBag);\n };\n\n const handleCloseAlert = setSubmitting => {\n setIsAlertOpen(false);\n setSubmitting(false);\n };\n\n const handleUpdateIpRestriction = (values, { setSubmitting, resetForm }) => {\n updateIpRestriction(buildIpRestrictionPayload(values), {\n onSuccess: () => {\n setIsAlertOpen(false);\n setSubmitting(false);\n resetForm({ values });\n },\n onError: () => {\n setIsAlertOpen(false);\n setSubmitting(false);\n },\n });\n };\n\n return (\n <NeetoUIForm\n className=\"mx-auto mb-4 w-full sm:max-w-screen-sm md:max-w-screen-md lg:max-w-3xl\"\n formikProps={{\n initialValues: buildInitialValue(\n isIpRestrictionEnabled,\n allowedIpRanges\n ),\n validationSchema: VALIDATION_SCHEMA,\n validateOnBlur: true,\n enableReinitialize: true,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, dirty, setFieldValue, resetForm, setSubmitting }) => (\n <>\n <BlockNavigation />\n <div\n className=\"neeto-ui-bg-white neeto-ui-border-gray-200 neeto-ui-rounded-lg mx-auto mb-4 w-full overflow-hidden border sm:max-w-screen-sm md:max-w-screen-md lg:max-w-3xl\"\n data-cy=\"ip-restrictions-card\"\n >\n <div className=\"space-y-2 p-6\">\n <Checkbox\n checked={values.ipRestriction}\n className=\"flex-grow-0\"\n data-cy=\"enable-ip-restriction-checkbox\"\n disabled={isFetchingIpRestriction || isUpdating}\n name=\"ipRestriction\"\n label={\n <Typography style=\"h3\">\n {t(\"neetoMolecules.ipRestriction.switchLabel\")}\n </Typography>\n }\n onChange={() =>\n setFieldValue(\"ipRestriction\", !values.ipRestriction)\n }\n />\n <Typography data-cy=\"ip-restriction-description\" style=\"body2\">\n {t(\"neetoMolecules.ipRestriction.description\")}\n </Typography>\n </div>\n {values.ipRestriction && (\n <div className=\"neeto-ui-bg-gray-100 w-full space-y-6 p-6\">\n <CurrentIp />\n <AllowedIpRanges />\n <Callout style=\"warning\">\n <div className=\"leading-2 block whitespace-pre-wrap py-1\">\n <Trans i18nKey=\"neetoMolecules.ipRestriction.warningMessage\" />\n </div>\n </Callout>\n </div>\n )}\n </div>\n <div className=\"flex flex-wrap items-center justify-between gap-4\">\n {dirty && (\n <Typography className=\"neeto-ui-text-error-500\" style=\"body2\">\n {t(\"neetoMolecules.ipRestriction.validations.unsavedChanges\")}\n </Typography>\n )}\n <div className=\"ml-auto flex justify-between\">\n <Button\n className=\"mr-2\"\n disabled={!dirty}\n label={t(\"neetoMolecules.common.actions.reset\")}\n style=\"secondary\"\n type=\"reset\"\n onClick={resetForm}\n />\n <FormikButton\n data-cy=\"ip-restriction-save-changes\"\n data-testid=\"save-changes-button\"\n isLoading={isUpdating}\n type=\"submit\"\n >\n {t(\"neetoMolecules.common.actions.saveChanges\")}\n </FormikButton>\n </div>\n </div>\n <Alert\n isOpen={isAlertOpen}\n isSubmitting={isUpdating}\n title={t(\"neetoMolecules.ipRestriction.enableAlert.title\")}\n message={\n <Trans i18nKey=\"neetoMolecules.ipRestriction.enableAlert.message\" />\n }\n submitButtonLabel={t(\n \"neetoMolecules.ipRestriction.enableAlert.submitButtonLabel\"\n )}\n onClose={() => handleCloseAlert(setSubmitting)}\n onSubmit={() =>\n handleUpdateIpRestriction(values, { setSubmitting, resetForm })\n }\n />\n </>\n )}\n </NeetoUIForm>\n );\n};\n\nexport default React.memo(IpRestriction);\n"],"names":["toLabelAndValue","value","label","humanizeIpAddressFormat","isValidIPv4String","ip","isNotNil","Validator","isValidIPv6String","isValidIpString","areIpAddressesInSameFormat","ipStart","ipEnd","isValidIPv4Range","ipStartAddr","IPv4","fromDecimalDottedString","ipEndAddr","isLessThanOrEquals","isValidIPv6Range","IPv6","fromString","isValidIPRange","yup","addMethod","string","errorMessage","test","isNil","isValidIp","createError","path","message","getIpRestrictionValidationSchema","object","shape","validIp","t","required","when","schema","addressType","nullable","addressFormat","addressFormats","ipv4","ipv6","buildInitialValue","isIpRestrictionEnabled","allowedIpRanges","ipRestriction","buildAllowedIpRangesFormData","map","allowedIpRange","assoc","buildIpRestrictionPayload","values","allowedIpRangesWithTransformedAddressType","IP_RESTRICTIONS_ENGINE_BASE_URL","QUERY_KEYS","IP_RESTRICTION","ALLOWED_IP_RANGES","CURRENT_IP","ADDRESS_TYPE_SELECT_OPTIONS","VALIDATION_SCHEMA","array","of","NEW_ALLOWED_IP_RANGE","createdAt","Date","toISOString","AllowedIpRange","withT","_ref","index","arrayHelpers","React","createElement","className","Input","labelProps","name","concat","placeholder","Select","options","Button","icon","Delete","style","tooltipProps","content","position","onClick","remove","AllowedIpRanges","Typography","FieldArray","Fragment","form","key","push","memo","show","params","axios","get","currentIpApi","useShowCurrentIp","useQuery","CurrentIp","_useShowCurrentIp","data","isLoading","Trans","i18nKey","allowedIpRangesUrl","fetch","create","payload","post","destroy","id","update","patch","allowedIpRangesApi","useFetchAllowedIpRanges","ipRestrictionUrl","ipRestrictionApi","useShowIpRestriction","useUpdateIpRestriction","useMutationWithInvalidation","keysToInvalidate","IpRestriction","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","isAlertOpen","setIsAlertOpen","_useShowIpRestriction","_useShowIpRestriction2","_useShowIpRestriction3","isFetchingIpRestriction","_useFetchAllowedIpRan","enabled","isFetchingAllowedIpRanges","isRefetching","_useUpdateIpRestricti","updateIpRestriction","mutate","isUpdating","PageLoader","handleSubmit","formikBag","handleUpdateIpRestriction","handleCloseAlert","setSubmitting","resetForm","onSuccess","onError","NeetoUIForm","formikProps","initialValues","validationSchema","validateOnBlur","enableReinitialize","onSubmit","_ref2","dirty","setFieldValue","BlockNavigation","Checkbox","checked","disabled","onChange","Callout","type","FormikButton","Alert","isOpen","isSubmitting","title","submitButtonLabel","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"IpRestriction.js","sources":["../../src/components/IpRestriction/utils.js","../../src/components/IpRestriction/constants.js","../../src/components/IpRestriction/AllowedIpRanges/AllowedIpRange.jsx","../../src/components/IpRestriction/AllowedIpRanges/index.jsx","../../src/components/IpRestriction/apis/current_ip.js","../../src/components/IpRestriction/hooks/reactQuery/useCurrentIp.js","../../src/components/IpRestriction/CurrentIp.jsx","../../src/components/IpRestriction/apis/allowed_ip_ranges.js","../../src/components/IpRestriction/hooks/reactQuery/useAllowedIpRanges.js","../../src/components/IpRestriction/apis/ip_restriction.js","../../src/components/IpRestriction/hooks/reactQuery/useIpRestrictions.js","../../src/components/IpRestriction/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { IPv4, IPv6, Validator } from \"ip-num\";\nimport { assoc, isNil, isNotNil } from \"ramda\";\nimport * as yup from \"yup\";\n\nconst toLabelAndValue = value => ({\n label: humanizeIpAddressFormat(value),\n value,\n});\n\nconst isValidIPv4String = ip =>\n isNotNil(ip) && Validator.isValidIPv4String(ip)[0];\n\nconst isValidIPv6String = ip =>\n isNotNil(ip) && Validator.isValidIPv6String(ip)[0];\n\nconst isValidIpString = ip => isValidIPv4String(ip) || isValidIPv6String(ip);\n\nconst areIpAddressesInSameFormat = (ipStart, ipEnd) =>\n (isValidIPv4String(ipStart) && isValidIPv4String(ipEnd)) ||\n (isValidIPv6String(ipStart) && isValidIPv6String(ipEnd));\n\nconst isValidIPv4Range = (ipStart, ipEnd) => {\n const ipStartAddr = IPv4.fromDecimalDottedString(ipStart);\n const ipEndAddr = IPv4.fromDecimalDottedString(ipEnd);\n\n return ipStartAddr.isLessThanOrEquals(ipEndAddr);\n};\n\nconst isValidIPv6Range = (ipStart, ipEnd) => {\n const ipStartAddr = IPv6.fromString(ipStart);\n const ipEndAddr = IPv6.fromString(ipEnd);\n\n return ipStartAddr.isLessThanOrEquals(ipEndAddr);\n};\n\nconst isValidIPRange = (ipStart, ipEnd) => {\n if (isValidIPv4String(ipStart) && isValidIPv4String(ipEnd)) {\n return isValidIPv4Range(ipStart, ipEnd);\n }\n\n if (isValidIPv6String(ipStart) && isValidIPv6String(ipEnd)) {\n return isValidIPv6Range(ipStart, ipEnd);\n }\n\n return false;\n};\n\nyup.addMethod(yup.string, \"validIp\", function (errorMessage) {\n return this.test(\"valid-ip\", errorMessage, function (value) {\n if (isNil(value)) {\n return this;\n }\n\n const isValidIp = isValidIpString(value);\n\n return (\n isValidIp || this.createError({ path: this.path, message: errorMessage })\n );\n });\n});\n\nexport const getIpRestrictionValidationSchema = () =>\n yup.object().shape({\n ipStart: yup\n .string()\n .validIp(t(\"neetoMolecules.ipRestriction.validations.invalidIp\"))\n .required(t(\"neetoMolecules.ipRestriction.validations.ipStartRequired\")),\n ipEnd: yup\n .string()\n .validIp(t(\"neetoMolecules.ipRestriction.validations.invalidIp\"))\n .when(\"ipStart\", (ipStart, schema) =>\n schema.test({\n test: ipEnd => areIpAddressesInSameFormat(ipStart, ipEnd),\n message: t(\n \"neetoMolecules.ipRestriction.validations.eitherIpv4OrIpv6\"\n ),\n })\n )\n .when(\"ipStart\", (ipStart, schema) =>\n schema.test({\n test: ipEnd => isValidIPRange(ipStart, ipEnd),\n message: t(\n \"neetoMolecules.ipRestriction.validations.ipEndGreaterThanIpStart\"\n ),\n })\n )\n .required(t(\"neetoMolecules.ipRestriction.validations.ipEndRequired\")),\n addressType: yup\n .object()\n .shape({\n value: yup.string().required(),\n label: yup.string().required(),\n })\n .nullable()\n .required(\n t(\"neetoMolecules.ipRestriction.validations.addressTypeRequired\")\n ),\n });\n\nexport const humanizeIpAddressFormat = addressFormat => {\n const addressFormats = { ipv4: \"IPv4\", ipv6: \"IPv6\" };\n\n return addressFormats[addressFormat];\n};\n\nexport const buildInitialValue = (isIpRestrictionEnabled, allowedIpRanges) => ({\n ipRestriction: isIpRestrictionEnabled,\n allowedIpRanges: buildAllowedIpRangesFormData(allowedIpRanges),\n});\n\nexport const buildAllowedIpRangesFormData = allowedIpRanges =>\n allowedIpRanges?.map(allowedIpRange =>\n assoc(\n \"addressType\",\n toLabelAndValue(allowedIpRange.addressType),\n allowedIpRange\n )\n );\n\nexport const buildIpRestrictionPayload = values => {\n const allowedIpRangesWithTransformedAddressType = values.allowedIpRanges.map(\n allowedIpRange =>\n assoc(\"addressType\", allowedIpRange.addressType.value, allowedIpRange)\n );\n\n return {\n isIpRestrictionEnabled: values.ipRestriction,\n allowedIpRanges: allowedIpRangesWithTransformedAddressType,\n };\n};\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { getIpRestrictionValidationSchema } from \"./utils\";\n\nexport const IP_RESTRICTIONS_ENGINE_BASE_URL = \"/ip_restrictions/api/v1\";\n\nexport const QUERY_KEYS = {\n IP_RESTRICTION: \"IP_RESTRICTION\",\n ALLOWED_IP_RANGES: \"ALLOWED_IP_RANGES\",\n CURRENT_IP: \"CURRENT_IP\",\n};\n\nexport const TRUNCATE_LENGTH = 18;\n\nexport const ADDRESS_TYPE_SELECT_OPTIONS = [\n { label: t(\"neetoMolecules.ipRestriction.ipv4\"), value: \"ipv4\" },\n { label: t(\"neetoMolecules.ipRestriction.ipv6\"), value: \"ipv6\" },\n];\n\nexport const INITIAL_VALUES = {\n ipStart: \"\",\n ipEnd: \"\",\n addressType: ADDRESS_TYPE_SELECT_OPTIONS[0].value,\n};\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n ipRestriction: yup.boolean(),\n allowedIpRanges: yup.array().of(getIpRestrictionValidationSchema()),\n});\n\nexport const NEW_ALLOWED_IP_RANGE = {\n ipStart: \"\",\n ipEnd: \"\",\n addressType: null,\n createdAt: new Date().toISOString(),\n};\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input, Select } from \"neetoui/formik\";\n\nimport { ADDRESS_TYPE_SELECT_OPTIONS } from \"../constants\";\n\nconst AllowedIpRange = withT(({ t, index, arrayHelpers }) => (\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-lg grid grid-cols-2 gap-4 p-3 sm:grid-cols-12\">\n <Input\n className=\"col-span-1 text-left sm:col-span-4\"\n data-cy=\"ip-start-text-field\"\n label={t(\"neetoMolecules.ipRestriction.ipStart\")}\n labelProps={{ className: \"sm:hidden\" }}\n name={`allowedIpRanges.${index}.ipStart`}\n placeholder={t(\"neetoMolecules.ipRestriction.ipStart\")}\n />\n <Input\n className=\"col-span-1 text-left sm:col-span-4\"\n data-cy=\"ip-end-text-field\"\n label={t(\"neetoMolecules.ipRestriction.ipEnd\")}\n labelProps={{ className: \"sm:hidden\" }}\n name={`allowedIpRanges.${index}.ipEnd`}\n placeholder={t(\"neetoMolecules.ipRestriction.ipEnd\")}\n />\n <Select\n className=\"col-span-1 text-left sm:col-span-2\"\n data-testid=\"address-type-select-field\"\n label={t(\"neetoMolecules.ipRestriction.type\")}\n labelProps={{ className: \"sm:hidden\" }}\n name={`allowedIpRanges.${index}.addressType`}\n options={ADDRESS_TYPE_SELECT_OPTIONS}\n />\n <div className=\"col-span-1 flex sm:col-span-2 sm:justify-center\">\n <Button\n className=\"mt-auto sm:mt-0\"\n data-testid=\"allowed-ip-range-delete-btn\"\n icon={Delete}\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.discard\"),\n position: \"top\",\n }}\n onClick={() => arrayHelpers.remove(index)}\n />\n </div>\n </div>\n));\n\nexport default AllowedIpRange;\n","import React from \"react\";\n\nimport { FieldArray } from \"formik\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Button, Typography } from \"neetoui\";\n\nimport AllowedIpRange from \"./AllowedIpRange\";\n\nimport { NEW_ALLOWED_IP_RANGE } from \"../constants\";\n\nconst AllowedIpRanges = withT(({ t }) => (\n <div className=\"space-y-6\" data-cy=\"allowed-ip-range-container\">\n <Typography data-cy=\"allowed-ip-range-heading\" style=\"h4\">\n {t(\"neetoMolecules.ipRestriction.allowedIpRangeTitle\")}\n </Typography>\n <div className=\"space-y-4\">\n <div className=\"hidden grid-cols-12 gap-4 px-3 sm:grid\">\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-4 uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.ipStart\")}*\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-4 uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.ipEnd\")}*\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-2 uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.type\")}*\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-700 col-span-2 text-center uppercase\"\n style=\"h6\"\n >\n {t(\"neetoMolecules.ipRestriction.actions\")}\n </Typography>\n </div>\n <div className=\"w-full space-y-2\">\n <FieldArray name=\"allowedIpRanges\">\n {arrayHelpers => (\n <>\n {arrayHelpers.form.values.allowedIpRanges.map(\n (allowedIpRange, index) => (\n <AllowedIpRange\n {...{ allowedIpRange, arrayHelpers, index }}\n key={allowedIpRange.createdAt}\n />\n )\n )}\n <Button\n data-cy=\"add-allowed-ip-range-button\"\n label={t(\"neetoMolecules.ipRestriction.addNew\")}\n style=\"link\"\n onClick={() => arrayHelpers.push(NEW_ALLOWED_IP_RANGE)}\n />\n </>\n )}\n </FieldArray>\n </div>\n </div>\n </div>\n));\n\nexport default React.memo(AllowedIpRanges);\n","import axios from \"axios\";\n\nimport { IP_RESTRICTIONS_ENGINE_BASE_URL } from \"../constants\";\n\nconst show = params =>\n axios.get(`${IP_RESTRICTIONS_ENGINE_BASE_URL}/current_ip`, { params });\n\nconst currentIpApi = { show };\n\nexport default currentIpApi;\n","import { useQuery } from \"react-query\";\n\nimport currentIpApi from \"../../apis/current_ip\";\nimport { QUERY_KEYS } from \"../../constants\";\n\nconst { CURRENT_IP } = QUERY_KEYS;\n\nconst useShowCurrentIp = () =>\n useQuery([CURRENT_IP], () => currentIpApi.show());\n\nexport { useShowCurrentIp };\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport { useShowCurrentIp } from \"./hooks/reactQuery/useCurrentIp\";\n\nconst CurrentIp = () => {\n const { data, isLoading } = useShowCurrentIp();\n\n return (\n <div\n className=\"flex flex-wrap items-baseline gap-1\"\n data-cy=\"current-ip-container\"\n >\n <Typography>\n <Trans\n i18nKey=\"neetoMolecules.ipRestriction.currentIpMessage\"\n values={{ ip: isLoading ? \"...\" : data.ip }}\n />\n </Typography>\n </div>\n );\n};\n\nexport default React.memo(CurrentIp);\n","import axios from \"axios\";\n\nimport { IP_RESTRICTIONS_ENGINE_BASE_URL } from \"../constants\";\n\nconst allowedIpRangesUrl = `${IP_RESTRICTIONS_ENGINE_BASE_URL}/allowed_ips`;\n\nconst fetch = () => axios.get(allowedIpRangesUrl);\n\nconst create = payload =>\n axios.post(allowedIpRangesUrl, { allowedIpRange: payload });\n\nconst destroy = id => axios.delete(`${allowedIpRangesUrl}/${id}`);\n\nconst update = ({ id, payload }) =>\n axios.patch(`${allowedIpRangesUrl}/${id}`, {\n allowedIpRange: payload,\n });\n\nconst allowedIpRangesApi = { fetch, create, destroy, update };\n\nexport default allowedIpRangesApi;\n","import useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\nimport { useQuery } from \"react-query\";\n\nimport allowedIpRangesApi from \"../../apis/allowed_ip_ranges\";\nimport { QUERY_KEYS } from \"../../constants\";\n\nconst { ALLOWED_IP_RANGES } = QUERY_KEYS;\n\nconst useFetchAllowedIpRanges = options =>\n useQuery([ALLOWED_IP_RANGES], () => allowedIpRangesApi.fetch(), options);\n\nconst useCreateAllowedIpRanges = () =>\n useMutationWithInvalidation(allowedIpRangesApi.create, {\n keysToInvalidate: [ALLOWED_IP_RANGES],\n });\n\nconst useDestroyAllowedIpRanges = () =>\n useMutationWithInvalidation(allowedIpRangesApi.destroy, {\n keysToInvalidate: [ALLOWED_IP_RANGES],\n });\n\nconst useUpdateAllowedIpRanges = () =>\n useMutationWithInvalidation(allowedIpRangesApi.update, {\n keysToInvalidate: [ALLOWED_IP_RANGES],\n });\n\nexport {\n useFetchAllowedIpRanges,\n useCreateAllowedIpRanges,\n useDestroyAllowedIpRanges,\n useUpdateAllowedIpRanges,\n};\n","import axios from \"axios\";\n\nimport { IP_RESTRICTIONS_ENGINE_BASE_URL } from \"../constants\";\n\nconst ipRestrictionUrl = `${IP_RESTRICTIONS_ENGINE_BASE_URL}/ip_restriction`;\n\nconst update = params =>\n axios.patch(ipRestrictionUrl, { ipRestriction: params });\n\nconst show = () => axios.get(ipRestrictionUrl);\n\nconst ipRestrictionApi = { update, show };\n\nexport default ipRestrictionApi;\n","import useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\nimport { useQuery } from \"react-query\";\n\nimport ipRestrictionApi from \"../../apis/ip_restriction\";\nimport { QUERY_KEYS } from \"../../constants\";\n\nconst { IP_RESTRICTION, ALLOWED_IP_RANGES } = QUERY_KEYS;\n\nconst useShowIpRestriction = () =>\n useQuery([IP_RESTRICTION], () => ipRestrictionApi.show());\n\nconst useUpdateIpRestriction = () =>\n useMutationWithInvalidation(ipRestrictionApi.update, {\n keysToInvalidate: [IP_RESTRICTION, ALLOWED_IP_RANGES],\n });\n\nexport { useShowIpRestriction, useUpdateIpRestriction };\n","import React, { useState } from \"react\";\n\nimport { Typography, Alert, Callout, Button } from \"neetoui\";\nimport {\n Form as NeetoUIForm,\n Checkbox,\n Button as FormikButton,\n BlockNavigation,\n} from \"neetoui/formik\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport PageLoader from \"components/PageLoader\";\n\nimport AllowedIpRanges from \"./AllowedIpRanges\";\nimport { VALIDATION_SCHEMA } from \"./constants\";\nimport CurrentIp from \"./CurrentIp\";\nimport { useFetchAllowedIpRanges } from \"./hooks/reactQuery/useAllowedIpRanges\";\nimport {\n useShowIpRestriction,\n useUpdateIpRestriction,\n} from \"./hooks/reactQuery/useIpRestrictions\";\nimport { buildInitialValue, buildIpRestrictionPayload } from \"./utils\";\n\nconst IpRestriction = () => {\n const { t } = useTranslation();\n const [isAlertOpen, setIsAlertOpen] = useState(false);\n\n const {\n data: { isIpRestrictionEnabled } = {},\n isLoading: isFetchingIpRestriction,\n } = useShowIpRestriction();\n\n const {\n data: allowedIpRanges,\n isLoading: isFetchingAllowedIpRanges,\n isRefetching,\n } = useFetchAllowedIpRanges({ enabled: isIpRestrictionEnabled });\n\n const { mutate: updateIpRestriction, isLoading: isUpdating } =\n useUpdateIpRestriction();\n\n if (isFetchingIpRestriction || isFetchingAllowedIpRanges || isRefetching) {\n return (\n <div className=\"h-screen\">\n <PageLoader />\n </div>\n );\n }\n\n const handleSubmit = (values, formikBag) => {\n if (values.ipRestriction) setIsAlertOpen(true);\n else handleUpdateIpRestriction(values, formikBag);\n };\n\n const handleCloseAlert = setSubmitting => {\n setIsAlertOpen(false);\n setSubmitting(false);\n };\n\n const handleUpdateIpRestriction = (values, { setSubmitting, resetForm }) => {\n updateIpRestriction(buildIpRestrictionPayload(values), {\n onSuccess: () => {\n setIsAlertOpen(false);\n setSubmitting(false);\n resetForm({ values });\n },\n onError: () => {\n setIsAlertOpen(false);\n setSubmitting(false);\n },\n });\n };\n\n return (\n <NeetoUIForm\n className=\"mx-auto mb-4 w-full sm:max-w-screen-sm md:max-w-screen-md lg:max-w-3xl\"\n formikProps={{\n initialValues: buildInitialValue(\n isIpRestrictionEnabled,\n allowedIpRanges\n ),\n validationSchema: VALIDATION_SCHEMA,\n validateOnBlur: true,\n enableReinitialize: true,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, dirty, setFieldValue, resetForm, setSubmitting }) => (\n <>\n <BlockNavigation />\n <div\n className=\"neeto-ui-bg-white neeto-ui-border-gray-200 neeto-ui-rounded-lg mx-auto mb-4 w-full overflow-hidden border sm:max-w-screen-sm md:max-w-screen-md lg:max-w-3xl\"\n data-cy=\"ip-restrictions-card\"\n >\n <div className=\"space-y-2 p-6\">\n <Checkbox\n checked={values.ipRestriction}\n className=\"flex-grow-0\"\n data-cy=\"enable-ip-restriction-checkbox\"\n disabled={isFetchingIpRestriction || isUpdating}\n name=\"ipRestriction\"\n label={\n <Typography style=\"h3\">\n {t(\"neetoMolecules.ipRestriction.switchLabel\")}\n </Typography>\n }\n onChange={() =>\n setFieldValue(\"ipRestriction\", !values.ipRestriction)\n }\n />\n <Typography data-cy=\"ip-restriction-description\" style=\"body2\">\n {t(\"neetoMolecules.ipRestriction.description\")}\n </Typography>\n </div>\n {values.ipRestriction && (\n <div className=\"neeto-ui-bg-gray-100 w-full space-y-6 p-6\">\n <CurrentIp />\n <AllowedIpRanges />\n <Callout style=\"warning\">\n <div className=\"leading-2 block whitespace-pre-wrap py-1\">\n <Trans i18nKey=\"neetoMolecules.ipRestriction.warningMessage\" />\n </div>\n </Callout>\n </div>\n )}\n </div>\n <div className=\"flex flex-wrap items-center justify-between gap-4\">\n {dirty && (\n <Typography className=\"neeto-ui-text-error-500\" style=\"body2\">\n {t(\"neetoMolecules.ipRestriction.validations.unsavedChanges\")}\n </Typography>\n )}\n <div className=\"ml-auto flex justify-between\">\n <Button\n className=\"mr-2\"\n disabled={!dirty}\n label={t(\"neetoMolecules.common.actions.reset\")}\n style=\"secondary\"\n type=\"reset\"\n onClick={resetForm}\n />\n <FormikButton\n data-cy=\"ip-restriction-save-changes\"\n data-testid=\"save-changes-button\"\n isLoading={isUpdating}\n type=\"submit\"\n >\n {t(\"neetoMolecules.common.actions.saveChanges\")}\n </FormikButton>\n </div>\n </div>\n <Alert\n isOpen={isAlertOpen}\n isSubmitting={isUpdating}\n title={t(\"neetoMolecules.ipRestriction.enableAlert.title\")}\n message={\n <Trans i18nKey=\"neetoMolecules.ipRestriction.enableAlert.message\" />\n }\n submitButtonLabel={t(\n \"neetoMolecules.ipRestriction.enableAlert.submitButtonLabel\"\n )}\n onClose={() => handleCloseAlert(setSubmitting)}\n onSubmit={() =>\n handleUpdateIpRestriction(values, { setSubmitting, resetForm })\n }\n />\n </>\n )}\n </NeetoUIForm>\n );\n};\n\nexport default React.memo(IpRestriction);\n"],"names":["toLabelAndValue","value","label","humanizeIpAddressFormat","isValidIPv4String","ip","isNotNil","Validator","isValidIPv6String","isValidIpString","areIpAddressesInSameFormat","ipStart","ipEnd","isValidIPv4Range","ipStartAddr","IPv4","fromDecimalDottedString","ipEndAddr","isLessThanOrEquals","isValidIPv6Range","IPv6","fromString","isValidIPRange","yup","addMethod","string","errorMessage","test","isNil","isValidIp","createError","path","message","getIpRestrictionValidationSchema","object","shape","validIp","t","required","when","schema","addressType","nullable","addressFormat","addressFormats","ipv4","ipv6","buildInitialValue","isIpRestrictionEnabled","allowedIpRanges","ipRestriction","buildAllowedIpRangesFormData","map","allowedIpRange","assoc","buildIpRestrictionPayload","values","allowedIpRangesWithTransformedAddressType","IP_RESTRICTIONS_ENGINE_BASE_URL","QUERY_KEYS","IP_RESTRICTION","ALLOWED_IP_RANGES","CURRENT_IP","ADDRESS_TYPE_SELECT_OPTIONS","VALIDATION_SCHEMA","array","of","NEW_ALLOWED_IP_RANGE","createdAt","Date","toISOString","AllowedIpRange","withT","_ref","index","arrayHelpers","React","createElement","className","Input","labelProps","name","concat","placeholder","Select","options","Button","icon","Delete","style","tooltipProps","content","position","onClick","remove","AllowedIpRanges","Typography","FieldArray","Fragment","form","key","push","memo","show","params","axios","get","currentIpApi","useShowCurrentIp","useQuery","CurrentIp","_useShowCurrentIp","data","isLoading","Trans","i18nKey","allowedIpRangesUrl","fetch","create","payload","post","destroy","id","update","patch","allowedIpRangesApi","useFetchAllowedIpRanges","ipRestrictionUrl","ipRestrictionApi","useShowIpRestriction","useUpdateIpRestriction","useMutationWithInvalidation","keysToInvalidate","IpRestriction","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","isAlertOpen","setIsAlertOpen","_useShowIpRestriction","_useShowIpRestriction2","_useShowIpRestriction3","isFetchingIpRestriction","_useFetchAllowedIpRan","enabled","isFetchingAllowedIpRanges","isRefetching","_useUpdateIpRestricti","updateIpRestriction","mutate","isUpdating","PageLoader","handleSubmit","formikBag","handleUpdateIpRestriction","handleCloseAlert","setSubmitting","resetForm","onSuccess","onError","NeetoUIForm","formikProps","initialValues","validationSchema","validateOnBlur","enableReinitialize","onSubmit","_ref2","dirty","setFieldValue","BlockNavigation","Checkbox","checked","disabled","onChange","Callout","type","FormikButton","Alert","isOpen","isSubmitting","title","submitButtonLabel","onClose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,KAAK,EAAA;EAAA,OAAK;AAChCC,IAAAA,KAAK,EAAEC,uBAAuB,CAACF,KAAK,CAAC;AACrCA,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AAAA,CAAC,CAAA;AAEF,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,EAAE,EAAA;AAAA,EAAA,OAC1BC,cAAQ,CAACD,EAAE,CAAC,IAAIE,eAAS,CAACH,iBAAiB,CAACC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEpD,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGH,EAAE,EAAA;AAAA,EAAA,OAC1BC,cAAQ,CAACD,EAAE,CAAC,IAAIE,eAAS,CAACC,iBAAiB,CAACH,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEpD,IAAMI,eAAe,GAAG,SAAlBA,eAAeA,CAAGJ,EAAE,EAAA;EAAA,OAAID,iBAAiB,CAACC,EAAE,CAAC,IAAIG,iBAAiB,CAACH,EAAE,CAAC,CAAA;AAAA,CAAA,CAAA;AAE5E,IAAMK,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAIC,OAAO,EAAEC,KAAK,EAAA;AAAA,EAAA,OAC/CR,iBAAiB,CAACO,OAAO,CAAC,IAAIP,iBAAiB,CAACQ,KAAK,CAAC,IACtDJ,iBAAiB,CAACG,OAAO,CAAC,IAAIH,iBAAiB,CAACI,KAAK,CAAE,CAAA;AAAA,CAAA,CAAA;AAE1D,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIF,OAAO,EAAEC,KAAK,EAAK;AAC3C,EAAA,IAAME,WAAW,GAAGC,UAAI,CAACC,uBAAuB,CAACL,OAAO,CAAC,CAAA;AACzD,EAAA,IAAMM,SAAS,GAAGF,UAAI,CAACC,uBAAuB,CAACJ,KAAK,CAAC,CAAA;AAErD,EAAA,OAAOE,WAAW,CAACI,kBAAkB,CAACD,SAAS,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIR,OAAO,EAAEC,KAAK,EAAK;AAC3C,EAAA,IAAME,WAAW,GAAGM,UAAI,CAACC,UAAU,CAACV,OAAO,CAAC,CAAA;AAC5C,EAAA,IAAMM,SAAS,GAAGG,UAAI,CAACC,UAAU,CAACT,KAAK,CAAC,CAAA;AAExC,EAAA,OAAOE,WAAW,CAACI,kBAAkB,CAACD,SAAS,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIX,OAAO,EAAEC,KAAK,EAAK;EACzC,IAAIR,iBAAiB,CAACO,OAAO,CAAC,IAAIP,iBAAiB,CAACQ,KAAK,CAAC,EAAE;AAC1D,IAAA,OAAOC,gBAAgB,CAACF,OAAO,EAAEC,KAAK,CAAC,CAAA;AACzC,GAAA;EAEA,IAAIJ,iBAAiB,CAACG,OAAO,CAAC,IAAIH,iBAAiB,CAACI,KAAK,CAAC,EAAE;AAC1D,IAAA,OAAOO,gBAAgB,CAACR,OAAO,EAAEC,KAAK,CAAC,CAAA;AACzC,GAAA;AAEA,EAAA,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAEDW,cAAG,CAACC,SAAS,CAACD,cAAG,CAACE,MAAM,EAAE,SAAS,EAAE,UAAUC,YAAY,EAAE;EAC3D,OAAO,IAAI,CAACC,IAAI,CAAC,UAAU,EAAED,YAAY,EAAE,UAAUzB,KAAK,EAAE;AAC1D,IAAA,IAAI2B,WAAK,CAAC3B,KAAK,CAAC,EAAE;AAChB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAM4B,SAAS,GAAGpB,eAAe,CAACR,KAAK,CAAC,CAAA;AAExC,IAAA,OACE4B,SAAS,IAAI,IAAI,CAACC,WAAW,CAAC;MAAEC,IAAI,EAAE,IAAI,CAACA,IAAI;AAAEC,MAAAA,OAAO,EAAEN,YAAAA;AAAa,KAAC,CAAC,CAAA;AAE7E,GAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEK,IAAMO,gCAAgC,GAAG,SAAnCA,gCAAgCA,GAAA;AAAA,EAAA,OAC3CV,cAAG,CAACW,MAAM,EAAE,CAACC,KAAK,CAAC;IACjBxB,OAAO,EAAEY,cAAG,CACTE,MAAM,EAAE,CACRW,OAAO,CAACC,SAAC,CAAC,oDAAoD,CAAC,CAAC,CAChEC,QAAQ,CAACD,SAAC,CAAC,0DAA0D,CAAC,CAAC;IAC1EzB,KAAK,EAAEW,cAAG,CACPE,MAAM,EAAE,CACRW,OAAO,CAACC,SAAC,CAAC,oDAAoD,CAAC,CAAC,CAChEE,IAAI,CAAC,SAAS,EAAE,UAAC5B,OAAO,EAAE6B,MAAM,EAAA;MAAA,OAC/BA,MAAM,CAACb,IAAI,CAAC;QACVA,IAAI,EAAE,SAAAA,IAAAA,CAAAf,KAAK,EAAA;AAAA,UAAA,OAAIF,0BAA0B,CAACC,OAAO,EAAEC,KAAK,CAAC,CAAA;AAAA,SAAA;QACzDoB,OAAO,EAAEK,SAAC,CACR,2DACF,CAAA;AACF,OAAC,CAAC,CAAA;KACJ,CAAC,CACAE,IAAI,CAAC,SAAS,EAAE,UAAC5B,OAAO,EAAE6B,MAAM,EAAA;MAAA,OAC/BA,MAAM,CAACb,IAAI,CAAC;QACVA,IAAI,EAAE,SAAAA,IAAAA,CAAAf,KAAK,EAAA;AAAA,UAAA,OAAIU,cAAc,CAACX,OAAO,EAAEC,KAAK,CAAC,CAAA;AAAA,SAAA;QAC7CoB,OAAO,EAAEK,SAAC,CACR,kEACF,CAAA;AACF,OAAC,CAAC,CAAA;KACJ,CAAC,CACAC,QAAQ,CAACD,SAAC,CAAC,wDAAwD,CAAC,CAAC;IACxEI,WAAW,EAAElB,cAAG,CACbW,MAAM,EAAE,CACRC,KAAK,CAAC;MACLlC,KAAK,EAAEsB,cAAG,CAACE,MAAM,EAAE,CAACa,QAAQ,EAAE;MAC9BpC,KAAK,EAAEqB,cAAG,CAACE,MAAM,EAAE,CAACa,QAAQ,EAAC;KAC9B,CAAC,CACDI,QAAQ,EAAE,CACVJ,QAAQ,CACPD,SAAC,CAAC,8DAA8D,CAClE,CAAA;AACJ,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEG,IAAMlC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGwC,aAAa,EAAI;AACtD,EAAA,IAAMC,cAAc,GAAG;AAAEC,IAAAA,IAAI,EAAE,MAAM;AAAEC,IAAAA,IAAI,EAAE,MAAA;GAAQ,CAAA;EAErD,OAAOF,cAAc,CAACD,aAAa,CAAC,CAAA;AACtC,CAAC,CAAA;AAEM,IAAMI,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,sBAAsB,EAAEC,eAAe,EAAA;EAAA,OAAM;AAC7EC,IAAAA,aAAa,EAAEF,sBAAsB;IACrCC,eAAe,EAAEE,4BAA4B,CAACF,eAAe,CAAA;GAC9D,CAAA;AAAA,CAAC,CAAA;AAEK,IAAME,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAGF,eAAe,EAAA;EAAA,OACzDA,eAAe,aAAfA,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,eAAe,CAAEG,GAAG,CAAC,UAAAC,cAAc,EAAA;AAAA,IAAA,OACjCC,WAAK,CACH,aAAa,EACbtD,eAAe,CAACqD,cAAc,CAACZ,WAAW,CAAC,EAC3CY,cACF,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAAA,CAAA,CAAA;AAEI,IAAME,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAGC,MAAM,EAAI;EACjD,IAAMC,yCAAyC,GAAGD,MAAM,CAACP,eAAe,CAACG,GAAG,CAC1E,UAAAC,cAAc,EAAA;IAAA,OACZC,WAAK,CAAC,aAAa,EAAED,cAAc,CAACZ,WAAW,CAACxC,KAAK,EAAEoD,cAAc,CAAC,CAAA;AAAA,GAC1E,CAAC,CAAA;EAED,OAAO;IACLL,sBAAsB,EAAEQ,MAAM,CAACN,aAAa;AAC5CD,IAAAA,eAAe,EAAEQ,yCAAAA;GAClB,CAAA;AACH,CAAC;;AC7HM,IAAMC,+BAA+B,GAAG,yBAAyB,CAAA;AAEjE,IAAMC,UAAU,GAAG;AACxBC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,iBAAiB,EAAE,mBAAmB;AACtCC,EAAAA,UAAU,EAAE,YAAA;AACd,CAAC,CAAA;AAIM,IAAMC,2BAA2B,GAAG,CACzC;AAAE7D,EAAAA,KAAK,EAAEmC,SAAC,CAAC,mCAAmC,CAAC;AAAEpC,EAAAA,KAAK,EAAE,MAAA;AAAO,CAAC,EAChE;AAAEC,EAAAA,KAAK,EAAEmC,SAAC,CAAC,mCAAmC,CAAC;AAAEpC,EAAAA,KAAK,EAAE,MAAA;AAAO,CAAC,CACjE,CAAA;CAE6B;AAC5BU,EAAAA,OAAO,EAAE,EAAE;AACXC,EAAAA,KAAK,EAAE,EAAE;AACT6B,EAAAA,WAAW,EAAEsB,2BAA2B,CAAC,CAAC,CAAC,CAAC9D,KAAAA;AAC9C,GAAC;AAEM,IAAM+D,iBAAiB,GAAGzC,cAAG,CAACW,MAAM,EAAE,CAACC,KAAK,CAAC;AAClDe,EAAAA,aAAa,EAAE3B,cAAG,CAAQ,SAAA,CAAA,EAAE;EAC5B0B,eAAe,EAAE1B,cAAG,CAAC0C,KAAK,EAAE,CAACC,EAAE,CAACjC,gCAAgC,EAAE,CAAA;AACpE,CAAC,CAAC,CAAA;AAEK,IAAMkC,oBAAoB,GAAG;AAClCxD,EAAAA,OAAO,EAAE,EAAE;AACXC,EAAAA,KAAK,EAAE,EAAE;AACT6B,EAAAA,WAAW,EAAE,IAAI;AACjB2B,EAAAA,SAAS,EAAE,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAC;AACpC,CAAC;;AC3BD,IAAMC,cAAc,GAAGC,yBAAK,CAAC,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGpC,CAAC,GAAAoC,IAAA,CAADpC,CAAC;IAAEqC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,YAAY,GAAAF,IAAA,CAAZE,YAAY,CAAA;EAAA,oBACpDC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,kFAAA;AAAkF,GAAA,eAC/FF,yBAAA,CAAAC,aAAA,CAACE,yBAAK,EAAA;AACJD,IAAAA,SAAS,EAAC,oCAAoC;AAC9C,IAAA,SAAA,EAAQ,qBAAqB;AAC7B5E,IAAAA,KAAK,EAAEmC,CAAC,CAAC,sCAAsC,CAAE;AACjD2C,IAAAA,UAAU,EAAE;AAAEF,MAAAA,SAAS,EAAE,WAAA;KAAc;AACvCG,IAAAA,IAAI,EAAAC,kBAAAA,CAAAA,MAAA,CAAqBR,KAAK,EAAW,UAAA,CAAA;IACzCS,WAAW,EAAE9C,CAAC,CAAC,sCAAsC,CAAA;AAAE,GACxD,CAAC,eACFuC,yBAAA,CAAAC,aAAA,CAACE,yBAAK,EAAA;AACJD,IAAAA,SAAS,EAAC,oCAAoC;AAC9C,IAAA,SAAA,EAAQ,mBAAmB;AAC3B5E,IAAAA,KAAK,EAAEmC,CAAC,CAAC,oCAAoC,CAAE;AAC/C2C,IAAAA,UAAU,EAAE;AAAEF,MAAAA,SAAS,EAAE,WAAA;KAAc;AACvCG,IAAAA,IAAI,EAAAC,kBAAAA,CAAAA,MAAA,CAAqBR,KAAK,EAAS,QAAA,CAAA;IACvCS,WAAW,EAAE9C,CAAC,CAAC,oCAAoC,CAAA;AAAE,GACtD,CAAC,eACFuC,yBAAA,CAAAC,aAAA,CAACO,0BAAM,EAAA;AACLN,IAAAA,SAAS,EAAC,oCAAoC;AAC9C,IAAA,aAAA,EAAY,2BAA2B;AACvC5E,IAAAA,KAAK,EAAEmC,CAAC,CAAC,mCAAmC,CAAE;AAC9C2C,IAAAA,UAAU,EAAE;AAAEF,MAAAA,SAAS,EAAE,WAAA;KAAc;AACvCG,IAAAA,IAAI,EAAAC,kBAAAA,CAAAA,MAAA,CAAqBR,KAAK,EAAe,cAAA,CAAA;AAC7CW,IAAAA,OAAO,EAAEtB,2BAAAA;AAA4B,GACtC,CAAC,eACFa,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,iDAAA;AAAiD,GAAA,eAC9DF,yBAAA,CAAAC,aAAA,CAACS,0BAAM,EAAA;AACLR,IAAAA,SAAS,EAAC,iBAAiB;AAC3B,IAAA,aAAA,EAAY,6BAA6B;AACzCS,IAAAA,IAAI,EAAEC,iBAAO;AACbC,IAAAA,KAAK,EAAC,MAAM;AACZC,IAAAA,YAAY,EAAE;AACZC,MAAAA,OAAO,EAAEtD,CAAC,CAAC,uCAAuC,CAAC;AACnDuD,MAAAA,QAAQ,EAAE,KAAA;KACV;IACFC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,MAAA,OAAMlB,YAAY,CAACmB,MAAM,CAACpB,KAAK,CAAC,CAAA;AAAA,KAAA;GAC1C,CACE,CACF,CAAC,CAAA;AAAA,CACP,CAAC;;ACvCF,IAAMqB,eAAe,GAAGvB,yBAAK,CAAC,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGpC,CAAC,GAAAoC,IAAA,CAADpC,CAAC,CAAA;EAAA,oBAChCuC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,WAAW;IAAC,SAAQ,EAAA,4BAAA;AAA4B,GAAA,eAC7DF,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AAAC,IAAA,SAAA,EAAQ,0BAA0B;AAACP,IAAAA,KAAK,EAAC,IAAA;GAClDpD,EAAAA,CAAC,CAAC,kDAAkD,CAC3C,CAAC,eACbuC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,WAAA;GACbF,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wCAAA;AAAwC,GAAA,eACrDF,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AACTlB,IAAAA,SAAS,EAAC,6CAA6C;AACvDW,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EAETpD,CAAC,CAAC,sCAAsC,CAAC,EAAC,GACjC,CAAC,eACbuC,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AACTlB,IAAAA,SAAS,EAAC,6CAA6C;AACvDW,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EAETpD,CAAC,CAAC,oCAAoC,CAAC,EAAC,GAC/B,CAAC,eACbuC,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AACTlB,IAAAA,SAAS,EAAC,6CAA6C;AACvDW,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EAETpD,CAAC,CAAC,mCAAmC,CAAC,EAAC,GAC9B,CAAC,eACbuC,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AACTlB,IAAAA,SAAS,EAAC,yDAAyD;AACnEW,IAAAA,KAAK,EAAC,IAAA;GAELpD,EAAAA,CAAC,CAAC,sCAAsC,CAC/B,CACT,CAAC,eACNuC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,kBAAA;AAAkB,GAAA,eAC/BF,yBAAA,CAAAC,aAAA,CAACoB,iBAAU,EAAA;AAAChB,IAAAA,IAAI,EAAC,iBAAA;AAAiB,GAAA,EAC/B,UAAAN,YAAY,EAAA;IAAA,oBACXC,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAsB,QAAA,QACGvB,YAAY,CAACwB,IAAI,CAAC3C,MAAM,CAACP,eAAe,CAACG,GAAG,CAC3C,UAACC,cAAc,EAAEqB,KAAK,EAAA;AAAA,MAAA,oBACpBE,yBAAA,CAAAC,aAAA,CAACN,cAAc,EAAA;AACPlB,QAAAA,cAAc,EAAdA,cAAc;AAAEsB,QAAAA,YAAY,EAAZA,YAAY;AAAED,QAAAA,KAAK,EAALA,KAAK;QACzC0B,GAAG,EAAE/C,cAAc,CAACe,SAAAA;AAAU,OAC/B,CAAC,CAAA;AAAA,KAEN,CAAC,eACDQ,yBAAA,CAAAC,aAAA,CAACS,0BAAM,EAAA;AACL,MAAA,SAAA,EAAQ,6BAA6B;AACrCpF,MAAAA,KAAK,EAAEmC,CAAC,CAAC,qCAAqC,CAAE;AAChDoD,MAAAA,KAAK,EAAC,MAAM;MACZI,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,QAAA,OAAMlB,YAAY,CAAC0B,IAAI,CAAClC,oBAAoB,CAAC,CAAA;AAAA,OAAA;AAAC,KACxD,CACD,CAAC,CAAA;GAEK,CACT,CACF,CACF,CAAC,CAAA;AAAA,CACP,CAAC,CAAA;AAEF,wBAAA,aAAeS,yBAAK,CAAC0B,IAAI,CAACP,eAAe,CAAC;;AChE1C,IAAMQ,MAAI,GAAG,SAAPA,IAAIA,CAAGC,MAAM,EAAA;AAAA,EAAA,OACjBC,yBAAK,CAACC,GAAG,IAAAxB,MAAA,CAAIxB,+BAA+B,EAAe,aAAA,CAAA,EAAA;AAAE8C,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAExE,IAAMG,YAAY,GAAG;AAAEJ,EAAAA,IAAI,EAAJA,MAAAA;AAAK,CAAC;;ACF7B,IAAQzC,UAAU,GAAKH,UAAU,CAAzBG,UAAU,CAAA;AAElB,IAAM8C,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAA;AAAA,EAAA,OACpBC,mBAAQ,CAAC,CAAC/C,UAAU,CAAC,EAAE,YAAA;AAAA,IAAA,OAAM6C,YAAY,CAACJ,IAAI,EAAE,CAAA;GAAC,CAAA,CAAA;AAAA,CAAA;;ACDnD,IAAMO,SAAS,GAAG,SAAZA,SAASA,GAAS;AACtB,EAAA,IAAAC,iBAAA,GAA4BH,gBAAgB,EAAE;IAAtCI,IAAI,GAAAD,iBAAA,CAAJC,IAAI;IAAEC,SAAS,GAAAF,iBAAA,CAATE,SAAS,CAAA;EAEvB,oBACErC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,qCAAqC;IAC/C,SAAQ,EAAA,sBAAA;GAERF,eAAAA,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,qBACTpB,yBAAA,CAAAC,aAAA,CAACqC,kBAAK,EAAA;AACJC,IAAAA,OAAO,EAAC,+CAA+C;AACvD3D,IAAAA,MAAM,EAAE;AAAEnD,MAAAA,EAAE,EAAE4G,SAAS,GAAG,KAAK,GAAGD,IAAI,CAAC3G,EAAAA;AAAG,KAAA;GAC3C,CACS,CACT,CAAC,CAAA;AAEV,CAAC,CAAA;AAED,kBAAA,aAAeuE,yBAAK,CAAC0B,IAAI,CAACQ,SAAS,CAAC;;ACrBpC,IAAMM,kBAAkB,GAAA,EAAA,CAAAlC,MAAA,CAAMxB,+BAA+B,EAAc,cAAA,CAAA,CAAA;AAE3E,IAAM2D,KAAK,GAAG,SAARA,KAAKA,GAAA;AAAA,EAAA,OAASZ,yBAAK,CAACC,GAAG,CAACU,kBAAkB,CAAC,CAAA;AAAA,CAAA,CAAA;AAEjD,IAAME,MAAM,GAAG,SAATA,MAAMA,CAAGC,OAAO,EAAA;AAAA,EAAA,OACpBd,yBAAK,CAACe,IAAI,CAACJ,kBAAkB,EAAE;AAAE/D,IAAAA,cAAc,EAAEkE,OAAAA;AAAQ,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE7D,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAGC,EAAE,EAAA;EAAA,OAAIjB,yBAAK,CAAO,QAAA,CAAA,CAAA,EAAA,CAAAvB,MAAA,CAAIkC,kBAAkB,EAAA,GAAA,CAAA,CAAAlC,MAAA,CAAIwC,EAAE,CAAE,CAAC,CAAA;AAAA,CAAA,CAAA;AAEjE,IAAMC,QAAM,GAAG,SAATA,MAAMA,CAAAlD,IAAA,EAAA;AAAA,EAAA,IAAMiD,EAAE,GAAAjD,IAAA,CAAFiD,EAAE;IAAEH,OAAO,GAAA9C,IAAA,CAAP8C,OAAO,CAAA;EAAA,OAC3Bd,yBAAK,CAACmB,KAAK,CAAA1C,EAAAA,CAAAA,MAAA,CAAIkC,kBAAkB,EAAAlC,GAAAA,CAAAA,CAAAA,MAAA,CAAIwC,EAAE,CAAI,EAAA;AACzCrE,IAAAA,cAAc,EAAEkE,OAAAA;AAClB,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEJ,IAAMM,kBAAkB,GAAG;AAAER,EAAAA,KAAK,EAALA,KAAK;AAAEC,EAAAA,MAAM,EAANA,MAAM;AAAEG,EAAAA,OAAO,EAAPA,OAAO;AAAEE,EAAAA,MAAM,EAANA,QAAAA;AAAO,CAAC;;ACZ7D,IAAQ9D,mBAAiB,GAAKF,UAAU,CAAhCE,iBAAiB,CAAA;AAEzB,IAAMiE,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGzC,OAAO,EAAA;AAAA,EAAA,OACrCwB,mBAAQ,CAAC,CAAChD,mBAAiB,CAAC,EAAE,YAAA;AAAA,IAAA,OAAMgE,kBAAkB,CAACR,KAAK,EAAE,CAAA;AAAA,GAAA,EAAEhC,OAAO,CAAC,CAAA;AAAA,CAAA;;ACL1E,IAAM0C,gBAAgB,GAAA,EAAA,CAAA7C,MAAA,CAAMxB,+BAA+B,EAAiB,iBAAA,CAAA,CAAA;AAE5E,IAAMiE,MAAM,GAAG,SAATA,MAAMA,CAAGnB,MAAM,EAAA;AAAA,EAAA,OACnBC,yBAAK,CAACmB,KAAK,CAACG,gBAAgB,EAAE;AAAE7E,IAAAA,aAAa,EAAEsD,MAAAA;AAAO,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE1D,IAAMD,IAAI,GAAG,SAAPA,IAAIA,GAAA;AAAA,EAAA,OAASE,yBAAK,CAACC,GAAG,CAACqB,gBAAgB,CAAC,CAAA;AAAA,CAAA,CAAA;AAE9C,IAAMC,gBAAgB,GAAG;AAAEL,EAAAA,MAAM,EAANA,MAAM;AAAEpB,EAAAA,IAAI,EAAJA,IAAAA;AAAK,CAAC;;ACLzC,IAAQ3C,cAAc,GAAwBD,UAAU,CAAhDC,cAAc;EAAEC,iBAAiB,GAAKF,UAAU,CAAhCE,iBAAiB,CAAA;AAEzC,IAAMoE,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAA;AAAA,EAAA,OACxBpB,mBAAQ,CAAC,CAACjD,cAAc,CAAC,EAAE,YAAA;AAAA,IAAA,OAAMoE,gBAAgB,CAACzB,IAAI,EAAE,CAAA;GAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AAE3D,IAAM2B,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAA;AAAA,EAAA,OAC1BC,+CAA2B,CAACH,gBAAgB,CAACL,MAAM,EAAE;AACnDS,IAAAA,gBAAgB,EAAE,CAACxE,cAAc,EAAEC,iBAAiB,CAAA;AACtD,GAAC,CAAC,CAAA;AAAA,CAAA;;ACSJ,IAAMwE,aAAa,GAAG,SAAhBA,aAAaA,GAAS;AAC1B,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBlG,CAAC,GAAAiG,eAAA,CAADjG,CAAC,CAAA;AACT,EAAA,IAAAmG,SAAA,GAAsCC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,kCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA9CI,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAAI,qBAAA,GAGIb,oBAAoB,EAAE;IAAAc,sBAAA,GAAAD,qBAAA,CAFxB9B,IAAI;AAAAgC,IAAAA,sBAAA,GAAAD,sBAAA,KAAA,KAAA,CAAA,GAA+B,EAAE,GAAAA,sBAAA;IAA7B/F,sBAAsB,GAAAgG,sBAAA,CAAtBhG,sBAAsB;IACnBiG,uBAAuB,GAAAH,qBAAA,CAAlC7B,SAAS,CAAA;EAGX,IAAAiC,qBAAA,GAIIpB,uBAAuB,CAAC;AAAEqB,MAAAA,OAAO,EAAEnG,sBAAAA;AAAuB,KAAC,CAAC;IAHxDC,eAAe,GAAAiG,qBAAA,CAArBlC,IAAI;IACOoC,yBAAyB,GAAAF,qBAAA,CAApCjC,SAAS;IACToC,YAAY,GAAAH,qBAAA,CAAZG,YAAY,CAAA;AAGd,EAAA,IAAAC,qBAAA,GACEpB,sBAAsB,EAAE;IADVqB,mBAAmB,GAAAD,qBAAA,CAA3BE,MAAM;IAAkCC,UAAU,GAAAH,qBAAA,CAArBrC,SAAS,CAAA;AAG9C,EAAA,IAAIgC,uBAAuB,IAAIG,yBAAyB,IAAIC,YAAY,EAAE;IACxE,oBACEzE,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,UAAA;AAAU,KAAA,eACvBF,yBAAA,CAAAC,aAAA,CAAC6E,UAAU,EAAA,IAAE,CACV,CAAC,CAAA;AAEV,GAAA;EAEA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAInG,MAAM,EAAEoG,SAAS,EAAK;AAC1C,IAAA,IAAIpG,MAAM,CAACN,aAAa,EAAE2F,cAAc,CAAC,IAAI,CAAC,CAAC,KAC1CgB,yBAAyB,CAACrG,MAAM,EAAEoG,SAAS,CAAC,CAAA;GAClD,CAAA;AAED,EAAA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,aAAa,EAAI;IACxClB,cAAc,CAAC,KAAK,CAAC,CAAA;IACrBkB,aAAa,CAAC,KAAK,CAAC,CAAA;GACrB,CAAA;EAED,IAAMF,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIrG,MAAM,EAAAiB,IAAA,EAAmC;AAAA,IAAA,IAA/BsF,aAAa,GAAAtF,IAAA,CAAbsF,aAAa;MAAEC,SAAS,GAAAvF,IAAA,CAATuF,SAAS,CAAA;AACnET,IAAAA,mBAAmB,CAAChG,yBAAyB,CAACC,MAAM,CAAC,EAAE;MACrDyG,SAAS,EAAE,SAAAA,SAAAA,GAAM;QACfpB,cAAc,CAAC,KAAK,CAAC,CAAA;QACrBkB,aAAa,CAAC,KAAK,CAAC,CAAA;AACpBC,QAAAA,SAAS,CAAC;AAAExG,UAAAA,MAAM,EAANA,MAAAA;AAAO,SAAC,CAAC,CAAA;OACtB;MACD0G,OAAO,EAAE,SAAAA,OAAAA,GAAM;QACbrB,cAAc,CAAC,KAAK,CAAC,CAAA;QACrBkB,aAAa,CAAC,KAAK,CAAC,CAAA;AACtB,OAAA;AACF,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,oBACEnF,yBAAA,CAAAC,aAAA,CAACsF,wBAAW,EAAA;AACVrF,IAAAA,SAAS,EAAC,wEAAwE;AAClFsF,IAAAA,WAAW,EAAE;AACXC,MAAAA,aAAa,EAAEtH,iBAAiB,CAC9BC,sBAAsB,EACtBC,eACF,CAAC;AACDqH,MAAAA,gBAAgB,EAAEtG,iBAAiB;AACnCuG,MAAAA,cAAc,EAAE,IAAI;AACpBC,MAAAA,kBAAkB,EAAE,IAAI;AACxBC,MAAAA,QAAQ,EAAEd,YAAAA;AACZ,KAAA;AAAE,GAAA,EAED,UAAAe,KAAA,EAAA;AAAA,IAAA,IAAGlH,MAAM,GAAAkH,KAAA,CAANlH,MAAM;MAAEmH,KAAK,GAAAD,KAAA,CAALC,KAAK;MAAEC,aAAa,GAAAF,KAAA,CAAbE,aAAa;MAAEZ,SAAS,GAAAU,KAAA,CAATV,SAAS;MAAED,aAAa,GAAAW,KAAA,CAAbX,aAAa,CAAA;AAAA,IAAA,oBACxDnF,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAsB,QAAA,EACEtB,IAAAA,eAAAA,yBAAA,CAAAC,aAAA,CAACgG,mCAAe,EAAA,IAAE,CAAC,eACnBjG,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEC,MAAAA,SAAS,EAAC,8JAA8J;MACxK,SAAQ,EAAA,sBAAA;KAERF,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,eAAA;AAAe,KAAA,eAC5BF,yBAAA,CAAAC,aAAA,CAACiG,4BAAQ,EAAA;MACPC,OAAO,EAAEvH,MAAM,CAACN,aAAc;AAC9B4B,MAAAA,SAAS,EAAC,aAAa;AACvB,MAAA,SAAA,EAAQ,gCAAgC;MACxCkG,QAAQ,EAAE/B,uBAAuB,IAAIQ,UAAW;AAChDxE,MAAAA,IAAI,EAAC,eAAe;AACpB/E,MAAAA,KAAK,eACH0E,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AAACP,QAAAA,KAAK,EAAC,IAAA;AAAI,OAAA,EACnBpD,CAAC,CAAC,0CAA0C,CACnC,CACb;MACD4I,QAAQ,EAAE,SAAAA,QAAA,GAAA;QAAA,OACRL,aAAa,CAAC,eAAe,EAAE,CAACpH,MAAM,CAACN,aAAa,CAAC,CAAA;AAAA,OAAA;AACtD,KACF,CAAC,eACF0B,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AAAC,MAAA,SAAA,EAAQ,4BAA4B;AAACP,MAAAA,KAAK,EAAC,OAAA;AAAO,KAAA,EAC3DpD,CAAC,CAAC,0CAA0C,CACnC,CACT,CAAC,EACLmB,MAAM,CAACN,aAAa,iBACnB0B,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,2CAAA;KACbF,eAAAA,yBAAA,CAAAC,aAAA,CAACiC,WAAS,EAAE,IAAA,CAAC,eACblC,yBAAA,CAAAC,aAAA,CAACkB,iBAAe,MAAE,CAAC,eACnBnB,yBAAA,CAAAC,aAAA,CAACqG,2BAAO,EAAA;AAACzF,MAAAA,KAAK,EAAC,SAAA;KACbb,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,0CAAA;AAA0C,KAAA,eACvDF,yBAAA,CAAAC,aAAA,CAACqC,kBAAK,EAAA;AAACC,MAAAA,OAAO,EAAC,6CAAA;KAA+C,CAC3D,CACE,CACN,CAEJ,CAAC,eACNvC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,mDAAA;AAAmD,KAAA,EAC/D6F,KAAK,iBACJ/F,yBAAA,CAAAC,aAAA,CAACmB,8BAAU,EAAA;AAAClB,MAAAA,SAAS,EAAC,yBAAyB;AAACW,MAAAA,KAAK,EAAC,OAAA;KACnDpD,EAAAA,CAAC,CAAC,yDAAyD,CAClD,CACb,eACDuC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,8BAAA;AAA8B,KAAA,eAC3CF,yBAAA,CAAAC,aAAA,CAACS,0BAAM,EAAA;AACLR,MAAAA,SAAS,EAAC,MAAM;MAChBkG,QAAQ,EAAE,CAACL,KAAM;AACjBzK,MAAAA,KAAK,EAAEmC,CAAC,CAAC,qCAAqC,CAAE;AAChDoD,MAAAA,KAAK,EAAC,WAAW;AACjB0F,MAAAA,IAAI,EAAC,OAAO;AACZtF,MAAAA,OAAO,EAAEmE,SAAAA;AAAU,KACpB,CAAC,eACFpF,yBAAA,CAAAC,aAAA,CAACuG,4BAAY,EAAA;AACX,MAAA,SAAA,EAAQ,6BAA6B;AACrC,MAAA,aAAA,EAAY,qBAAqB;AACjCnE,MAAAA,SAAS,EAAEwC,UAAW;AACtB0B,MAAAA,IAAI,EAAC,QAAA;AAAQ,KAAA,EAEZ9I,CAAC,CAAC,2CAA2C,CAClC,CACX,CACF,CAAC,eACNuC,yBAAA,CAAAC,aAAA,CAACwG,yBAAK,EAAA;AACJC,MAAAA,MAAM,EAAE1C,WAAY;AACpB2C,MAAAA,YAAY,EAAE9B,UAAW;AACzB+B,MAAAA,KAAK,EAAEnJ,CAAC,CAAC,gDAAgD,CAAE;AAC3DL,MAAAA,OAAO,eACL4C,yBAAA,CAAAC,aAAA,CAACqC,kBAAK,EAAA;AAACC,QAAAA,OAAO,EAAC,kDAAA;AAAkD,OAAE,CACpE;AACDsE,MAAAA,iBAAiB,EAAEpJ,CAAC,CAClB,4DACF,CAAE;MACFqJ,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAM5B,gBAAgB,CAACC,aAAa,CAAC,CAAA;OAAC;MAC/CU,QAAQ,EAAE,SAAAA,QAAA,GAAA;QAAA,OACRZ,yBAAyB,CAACrG,MAAM,EAAE;AAAEuG,UAAAA,aAAa,EAAbA,aAAa;AAAEC,UAAAA,SAAS,EAATA,SAAAA;AAAU,SAAC,CAAC,CAAA;AAAA,OAAA;AAChE,KACF,CACD,CAAC,CAAA;AAAA,GAEM,CAAC,CAAA;AAElB,CAAC,CAAA;AAED,YAAA,aAAepF,yBAAK,CAAC0B,IAAI,CAAC+B,aAAa,CAAC;;;;"}
@@ -6,11 +6,13 @@ var zustand = require('zustand');
6
6
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
7
  var React = require('react');
8
8
  var neetoIcons = require('@bigbinary/neeto-icons');
9
- var neetoui = require('@bigbinary/neetoui');
9
+ var Typography = require('@bigbinary/neetoui/Typography');
10
+ var Button = require('@bigbinary/neetoui/Button');
10
11
  var managers = require('@bigbinary/neetoui/managers');
11
12
  var classnames = require('classnames');
12
13
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
13
14
  var reactI18next = require('react-i18next');
15
+ var Kbd = require('@bigbinary/neetoui/Kbd');
14
16
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
15
17
  var i18next = require('i18next');
16
18
  var platform = require('platform');
@@ -22,8 +24,11 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
22
24
  var withImmutableActions__default = /*#__PURE__*/_interopDefaultLegacy(withImmutableActions);
23
25
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
24
26
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
28
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
25
29
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
26
30
  var useHotkeys__default = /*#__PURE__*/_interopDefaultLegacy(useHotkeys);
31
+ var Kbd__default = /*#__PURE__*/_interopDefaultLegacy(Kbd);
27
32
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
28
33
  var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
29
34
  var platform__default = /*#__PURE__*/_interopDefaultLegacy(platform);
@@ -167,7 +172,7 @@ var HotKey = function HotKey(_ref) {
167
172
  className: "flex items-center justify-between gap-3",
168
173
  "data-cy": "hotkey-item",
169
174
  "data-testid": "hotkey-item"
170
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
175
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
171
176
  className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
172
177
  lineHeight: "normal",
173
178
  style: "body2"
@@ -176,10 +181,10 @@ var HotKey = function HotKey(_ref) {
176
181
  }, sequences.map(function (keyName, idx) {
177
182
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
178
183
  key: idx
179
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
184
+ }, /*#__PURE__*/React__default["default"].createElement(Kbd__default["default"], {
180
185
  keyName: keyName,
181
186
  tooltipProps: getTooltipProps(keyName)
182
- }), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
187
+ }), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/React__default["default"].createElement(Kbd__default["default"], {
183
188
  keyName: "then"
184
189
  }));
185
190
  }))));
@@ -196,7 +201,7 @@ var HotKeyList = function HotKeyList(_ref) {
196
201
  return /*#__PURE__*/React__default["default"].createElement("div", {
197
202
  className: "mt-4 px-4",
198
203
  key: categoryName
199
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
204
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
200
205
  style: "h6",
201
206
  textTransform: "uppercase",
202
207
  weight: "bold"
@@ -210,7 +215,7 @@ var HotKeyList = function HotKeyList(_ref) {
210
215
  key: sequence,
211
216
  sequence: sequence
212
217
  });
213
- }), fullShortcutsLink && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
218
+ }), fullShortcutsLink && /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
214
219
  className: "mb-3",
215
220
  href: fullShortcutsLink,
216
221
  style: "link",
@@ -257,10 +262,10 @@ var KeyboardShortcutsPane = function KeyboardShortcutsPane(_ref) {
257
262
  className: "h-full w-80 overflow-y-auto"
258
263
  }, /*#__PURE__*/React__default["default"].createElement("div", {
259
264
  className: "neeto-ui-border-gray-300 my-2 flex items-center justify-between border-b px-4 pb-2"
260
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
265
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
261
266
  "data-cy": "keyboard-shortcuts-pane-title",
262
267
  style: "h4"
263
- }, t("neetoMolecules.keyboardShortcuts.title")), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
268
+ }, t("neetoMolecules.keyboardShortcuts.title")), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
264
269
  "data-cy": "keyboard-shortcuts-pane-close-button",
265
270
  icon: neetoIcons.Close,
266
271
  style: "text",