@bigbinary/neeto-molecules 1.3.10 → 1.3.11

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 (115) hide show
  1. package/dist/cjs/Breadcrumbs.js +51 -0
  2. package/dist/cjs/Breadcrumbs.js.map +1 -0
  3. package/dist/cjs/BrowserSupport.js +426 -0
  4. package/dist/cjs/BrowserSupport.js.map +1 -0
  5. package/dist/cjs/Builder.js +712 -0
  6. package/dist/cjs/Builder.js.map +1 -0
  7. package/dist/cjs/CalendarView.js +549 -0
  8. package/dist/cjs/CalendarView.js.map +1 -0
  9. package/dist/cjs/Codeblock.js +251 -0
  10. package/dist/cjs/Codeblock.js.map +1 -0
  11. package/dist/cjs/Columns.js +248 -0
  12. package/dist/cjs/Columns.js.map +1 -0
  13. package/dist/cjs/ConfirmationModal.js +120 -0
  14. package/dist/cjs/ConfirmationModal.js.map +1 -0
  15. package/dist/cjs/Container.js +1218 -0
  16. package/dist/cjs/Container.js.map +1 -0
  17. package/dist/cjs/CopyToClipboardButton.js +215 -0
  18. package/dist/cjs/CopyToClipboardButton.js.map +1 -0
  19. package/dist/cjs/CustomDomain.js +743 -0
  20. package/dist/cjs/CustomDomain.js.map +1 -0
  21. package/dist/cjs/CustomDomainDashboard.js +2348 -0
  22. package/dist/cjs/CustomDomainDashboard.js.map +1 -0
  23. package/dist/cjs/DateFormat.js +53 -0
  24. package/dist/cjs/DateFormat.js.map +1 -0
  25. package/dist/cjs/DateRangeFilter.js +236 -0
  26. package/dist/cjs/DateRangeFilter.js.map +1 -0
  27. package/dist/cjs/DocumentEditor.js +283 -0
  28. package/dist/cjs/DocumentEditor.js.map +1 -0
  29. package/dist/cjs/DownloadMobileAppCallout.js +45 -0
  30. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
  31. package/dist/cjs/DynamicVariables.js +189 -0
  32. package/dist/cjs/DynamicVariables.js.map +1 -0
  33. package/dist/cjs/EmailForm.js +2057 -0
  34. package/dist/cjs/EmailForm.js.map +1 -0
  35. package/dist/cjs/EmailPreview.js +1319 -0
  36. package/dist/cjs/EmailPreview.js.map +1 -0
  37. package/dist/cjs/ErrorPage.js +188 -0
  38. package/dist/cjs/ErrorPage.js.map +1 -0
  39. package/dist/cjs/Header.js +179 -0
  40. package/dist/cjs/Header.js.map +1 -0
  41. package/dist/cjs/IconPicker.js +324 -0
  42. package/dist/cjs/IconPicker.js.map +1 -0
  43. package/dist/cjs/ImageWithFallback.js +188 -0
  44. package/dist/cjs/ImageWithFallback.js.map +1 -0
  45. package/dist/cjs/InlineInput.js +734 -0
  46. package/dist/cjs/InlineInput.js.map +1 -0
  47. package/dist/cjs/IntegrationCard.js +400 -0
  48. package/dist/cjs/IntegrationCard.js.map +1 -0
  49. package/dist/cjs/IntegrationDisconnectAlert.js +89 -0
  50. package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
  51. package/dist/cjs/IntegrationWalkthroughModal.js +50 -0
  52. package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
  53. package/dist/cjs/IpRestriction.js +683 -0
  54. package/dist/cjs/IpRestriction.js.map +1 -0
  55. package/dist/cjs/KeyboardShortcuts.js +370 -0
  56. package/dist/cjs/KeyboardShortcuts.js.map +1 -0
  57. package/dist/cjs/LoginPage.js +620 -0
  58. package/dist/cjs/LoginPage.js.map +1 -0
  59. package/dist/cjs/MenuBar.js +1468 -0
  60. package/dist/cjs/MenuBar.js.map +1 -0
  61. package/dist/cjs/Metadata.js +215 -0
  62. package/dist/cjs/Metadata.js.map +1 -0
  63. package/dist/cjs/MoreDropdown.js +210 -0
  64. package/dist/cjs/MoreDropdown.js.map +1 -0
  65. package/dist/cjs/NavigationHeader.js +867 -0
  66. package/dist/cjs/NavigationHeader.js.map +1 -0
  67. package/dist/cjs/NeetoWidget.js +1078 -0
  68. package/dist/cjs/NeetoWidget.js.map +1 -0
  69. package/dist/cjs/PageLoader.js +159 -0
  70. package/dist/cjs/PageLoader.js.map +1 -0
  71. package/dist/cjs/PhoneNumber.js +492 -0
  72. package/dist/cjs/PhoneNumber.js.map +1 -0
  73. package/dist/cjs/PublishBlock.js +165 -0
  74. package/dist/cjs/PublishBlock.js.map +1 -0
  75. package/dist/cjs/PublishYourItem.js +1239 -0
  76. package/dist/cjs/PublishYourItem.js.map +1 -0
  77. package/dist/cjs/Rename.js +625 -0
  78. package/dist/cjs/Rename.js.map +1 -0
  79. package/dist/cjs/ResponsiveDevicePicker.js +200 -0
  80. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
  81. package/dist/cjs/Schedule.js +1130 -0
  82. package/dist/cjs/Schedule.js.map +1 -0
  83. package/dist/cjs/Scrollable.js +129 -0
  84. package/dist/cjs/Scrollable.js.map +1 -0
  85. package/dist/cjs/Search.js +217 -0
  86. package/dist/cjs/Search.js.map +1 -0
  87. package/dist/cjs/Security.js +1930 -0
  88. package/dist/cjs/Security.js.map +1 -0
  89. package/dist/cjs/SendToFields.js +353 -0
  90. package/dist/cjs/SendToFields.js.map +1 -0
  91. package/dist/cjs/Settings.js +492 -0
  92. package/dist/cjs/Settings.js.map +1 -0
  93. package/dist/cjs/ShareViaEmail.js +2005 -0
  94. package/dist/cjs/ShareViaEmail.js.map +1 -0
  95. package/dist/cjs/ShareViaLink.js +729 -0
  96. package/dist/cjs/ShareViaLink.js.map +1 -0
  97. package/dist/cjs/Sidebar.js +930 -0
  98. package/dist/cjs/Sidebar.js.map +1 -0
  99. package/dist/cjs/SubHeader.js +224 -0
  100. package/dist/cjs/SubHeader.js.map +1 -0
  101. package/dist/cjs/SuffixedInput.js +216 -0
  102. package/dist/cjs/SuffixedInput.js.map +1 -0
  103. package/dist/cjs/TableWrapper.js +33 -0
  104. package/dist/cjs/TableWrapper.js.map +1 -0
  105. package/dist/cjs/Taxonomy.js +2125 -0
  106. package/dist/cjs/Taxonomy.js.map +1 -0
  107. package/dist/cjs/ThemeSidebar.js +2052 -0
  108. package/dist/cjs/ThemeSidebar.js.map +1 -0
  109. package/dist/cjs/TimeFormat.js +55 -0
  110. package/dist/cjs/TimeFormat.js.map +1 -0
  111. package/dist/cjs/TimezoneMismatchModal.js +176 -0
  112. package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
  113. package/dist/cjs/ToggleFeatureCard.js +330 -0
  114. package/dist/cjs/ToggleFeatureCard.js.map +1 -0
  115. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IpRestriction.js","sources":["../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../src/assets/images/neeto.svg","../../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../../src/components/PageLoader/index.jsx","../../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":["export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","<svg width=\"50\" height=\"50\" viewBox=\"0 0 415 415\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M414.989 207.495C414.989 92.8986 322.091 0 207.495 0H0V414.989H414.989V207.495Z\" fill=\"#0043AC\"/>\n <mask id=\"mask0_4209_5356\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"415\" height=\"415\">\n <path d=\"M414.989 207.495C414.989 92.8986 322.091 0 207.495 0H0V414.989H414.989V207.495Z\" fill=\"#0043AC\"/>\n </mask>\n <g mask=\"url(#mask0_4209_5356)\">\n <path d=\"M233.747 348.74C322.326 449.885 405.762 465.151 436.408 460.141V492.632H-8.03214V230.487C35.6531 227.761 145.168 247.595 233.747 348.74Z\" fill=\"url(#paint0_radial_4209_5356)\"/>\n </g>\n <defs>\n <radialGradient id=\"paint0_radial_4209_5356\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"translate(86.9393 230.252) rotate(47.1183) scale(427.964 725.049)\">\n <stop stop-color=\"#0043AC\"/>\n <stop offset=\"1\" stop-color=\"#3DB1CA\" stop-opacity=\"0.8\"/>\n </radialGradient>\n </defs>\n</svg>\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Neeto from \"assets/images/neeto\";\n\nimport \"./page-loader.scss\";\n\nconst PageLoader = ({ text = \"\", ...otherProps }) => (\n <div className=\"neeto-molecules-pageloader__wrapper\" {...otherProps}>\n <div className=\"neeto-molecules-pageloader neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-justify-center\">\n <div\n className=\"neeto-molecules-pageloader__content neeto-ui-flex neeto-ui-flex-shrink-0 neeto-ui-items-center neeto-ui-justify-center\"\n data-cy=\"neeto-molecules-pageloader\"\n >\n <Neeto className=\"neeto-molecules-pageloader__logo\" size={50} />\n <div className=\"neeto-molecules-pageloader__spinner\">\n <div className=\"neeto-molecules-pageloader__rect1\" />\n <div className=\"neeto-molecules-pageloader__rect2\" />\n <div className=\"neeto-molecules-pageloader__rect3\" />\n <div className=\"neeto-molecules-pageloader__rect4\" />\n <div className=\"neeto-molecules-pageloader__rect5\" />\n </div>\n </div>\n {text && (\n <Typography style=\"h5\" weight=\"semibold\">\n {text}\n </Typography>\n )}\n </div>\n </div>\n);\n\nPageLoader.propTypes = {\n /**\n * Text to indicate loading status (optional).\n */\n text: PropTypes.string,\n};\n\nexport default React.memo(PageLoader);\n","import { t } from \"i18next\";\nimport { IPv4, IPv6, Validator } from \"ip-num\";\nimport { assoc, isNil, isNotNil } from \"ramda\";\nimport * as yup from \"yup\";\n\n// We need to apply a transformation for the label. Hence disabling this lint warning.\n// eslint-disable-next-line @bigbinary/neeto/use-functions-and-hooks-from-neeto-commons-frontend\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\";\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\";\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\";\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\";\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":["arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_extends","objectWithoutPropertiesLoose","React","PageLoader","_ref","_ref$text","text","otherProps","_objectWithoutProperties","_excluded","createElement","className","Neeto","size","Typography","style","weight","memo","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","index","arrayHelpers","Input","labelProps","name","concat","placeholder","Select","options","Button","icon","Delete","tooltipProps","content","position","onClick","remove","AllowedIpRanges","FieldArray","Fragment","form","key","push","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","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAe,SAAS,eAAe,CAAC,GAAG,EAAE;AAC7C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;AACrC;;ACFe,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE;AACpD,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AACnG,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE;AACjB,IAAI,IAAI,CAAC;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,GAAG,EAAE;AACZ,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACb,IAAI,IAAI;AACR,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;AAC7C,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO;AACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,OAAO,MAAM,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9F,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK,SAAS;AACd,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO;AACtF,OAAO,SAAS;AAChB,QAAQ,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACvB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH;;AC1Be,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE;AACpD,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AACxD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE,EAAE,OAAO,IAAI,CAAC;AACd;;ACHe,SAAS,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE;AAC/D,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO;AACjB,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,OAAOA,iBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;AAC9D,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAOA,iBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAClH;;ACRe,SAAS,gBAAgB,GAAG;AAC3C,EAAE,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC,CAAC;AACnK;;ACEe,SAAS,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE;AAC/C,EAAE,OAAOC,eAAc,CAAC,GAAG,CAAC,IAAIC,qBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAIC,2BAA0B,CAAC,GAAG,EAAE,CAAC,CAAC,IAAIC,gBAAe,EAAE,CAAC;AACxH;;ACNe,SAASC,UAAQ,GAAG;AACnC,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE;AACtE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC9B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC/D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ,EAAE,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACzC;;ACbe,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE;AACxE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;AAChC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACb,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;AAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB;;ACVe,SAAS,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACnE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;AAChC,EAAE,IAAI,MAAM,GAAGC,6BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC9D,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACb,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACpC,IAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAChE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS;AAC7E,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB;;ACfA,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC;AAC7B,SAAS,QAAQ,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEnV,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,EAAE,oBAAoBC,gBAAK,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,aAAa;AAC1B,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgBA,gBAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,gFAAgF;AACvF,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,eAAeA,gBAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAChD,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,KAAK,EAAE;AACX,MAAM,QAAQ,EAAE,OAAO;AACvB,KAAK;AACL,IAAI,SAAS,EAAE,gBAAgB;AAC/B,IAAI,CAAC,EAAE,CAAC;AACR,IAAI,CAAC,EAAE,CAAC;AACR,IAAI,KAAK,EAAE,GAAG;AACd,IAAI,MAAM,EAAE,GAAG;AACf,GAAG,EAAE,MAAM,KAAK,MAAM,gBAAgBA,gBAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE,gFAAgF;AACvF,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,gBAAgBA,gBAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AAC1D,IAAI,IAAI,EAAE,oBAAoB;AAC9B,GAAG,eAAeA,gBAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC9C,IAAI,CAAC,EAAE,iIAAiI;AACxI,IAAI,IAAI,EAAE,oBAAoB;AAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgBA,gBAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,eAAeA,gBAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE;AAC5H,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,CAAC,EAAE,CAAC;AACR,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,wDAAwD;AAC/E,GAAG,eAAeA,gBAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC9C,IAAI,SAAS,EAAE,SAAS;AACxB,GAAG,CAAC,eAAeA,gBAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAC/C,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,WAAW,EAAE,GAAG;AACpB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;;AC7CD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;ACSruB,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAAC,SAAA,GAAAD,IAAA,CAAME,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,SAAA;AAAKE,IAAAA,UAAU,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,EAAA,oBAC5CP,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAAV,UAAA,CAAA;AAAKW,IAAAA,SAAS,EAAC,qCAAA;AAAqC,GAAA,EAAKJ,UAAU,CAAA,eACjEL,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,0GAAA;GACbT,eAAAA,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,wHAAwH;IAClI,SAAQ,EAAA,4BAAA;AAA4B,GAAA,eAEpCT,yBAAA,CAAAQ,aAAA,CAACE,QAAK,EAAA;AAACD,IAAAA,SAAS,EAAC,kCAAkC;AAACE,IAAAA,IAAI,EAAE,EAAA;AAAG,GAAE,CAAC,eAChEX,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,qCAAA;GACbT,eAAAA,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,mCAAA;AAAmC,GAAE,CAAC,eACrDT,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,mCAAA;AAAmC,GAAE,CAAC,eACrDT,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,mCAAA;AAAmC,GAAE,CAAC,eACrDT,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,mCAAA;AAAmC,GAAE,CAAC,eACrDT,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,mCAAA;GAAqC,CACjD,CACF,CAAC,EACLL,IAAI,iBACHJ,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,IAAI;AAACC,IAAAA,MAAM,EAAC,UAAA;GAC3BV,EAAAA,IACS,CAEX,CACF,CAAC,CAAA;AAAA,CACP,CAAA;AASD,mBAAA,aAAeJ,yBAAK,CAACe,IAAI,CAACd,UAAU,CAAC;;ACpCrC;AACA;AACA,IAAMe,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;AAAA,EAAA,OACzDA,eAAe,CAACG,GAAG,CAAC,UAAAC,cAAc,EAAA;AAAA,IAAA,OAChCC,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;;AC/HM,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,gBAAK,CAAC,UAAAtF,IAAA,EAAA;AAAA,EAAA,IAAGmD,CAAC,GAAAnD,IAAA,CAADmD,CAAC;IAAEoC,KAAK,GAAAvF,IAAA,CAALuF,KAAK;IAAEC,YAAY,GAAAxF,IAAA,CAAZwF,YAAY,CAAA;EAAA,oBACpD1F,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,kFAAA;AAAkF,GAAA,eAC/FT,yBAAA,CAAAQ,aAAA,CAACmF,YAAK,EAAA;AACJlF,IAAAA,SAAS,EAAC,oCAAoC;AAC9C,IAAA,SAAA,EAAQ,qBAAqB;AAC7BS,IAAAA,KAAK,EAAEmC,CAAC,CAAC,sCAAsC,CAAE;AACjDuC,IAAAA,UAAU,EAAE;AAAEnF,MAAAA,SAAS,EAAE,WAAA;KAAc;AACvCoF,IAAAA,IAAI,EAAAC,kBAAAA,CAAAA,MAAA,CAAqBL,KAAK,EAAW,UAAA,CAAA;IACzCM,WAAW,EAAE1C,CAAC,CAAC,sCAAsC,CAAA;AAAE,GACxD,CAAC,eACFrD,yBAAA,CAAAQ,aAAA,CAACmF,YAAK,EAAA;AACJlF,IAAAA,SAAS,EAAC,oCAAoC;AAC9C,IAAA,SAAA,EAAQ,mBAAmB;AAC3BS,IAAAA,KAAK,EAAEmC,CAAC,CAAC,oCAAoC,CAAE;AAC/CuC,IAAAA,UAAU,EAAE;AAAEnF,MAAAA,SAAS,EAAE,WAAA;KAAc;AACvCoF,IAAAA,IAAI,EAAAC,kBAAAA,CAAAA,MAAA,CAAqBL,KAAK,EAAS,QAAA,CAAA;IACvCM,WAAW,EAAE1C,CAAC,CAAC,oCAAoC,CAAA;AAAE,GACtD,CAAC,eACFrD,yBAAA,CAAAQ,aAAA,CAACwF,aAAM,EAAA;AACLvF,IAAAA,SAAS,EAAC,oCAAoC;AAC9C,IAAA,aAAA,EAAY,2BAA2B;AACvCS,IAAAA,KAAK,EAAEmC,CAAC,CAAC,mCAAmC,CAAE;AAC9CuC,IAAAA,UAAU,EAAE;AAAEnF,MAAAA,SAAS,EAAE,WAAA;KAAc;AACvCoF,IAAAA,IAAI,EAAAC,kBAAAA,CAAAA,MAAA,CAAqBL,KAAK,EAAe,cAAA,CAAA;AAC7CQ,IAAAA,OAAO,EAAElB,2BAAAA;AAA4B,GACtC,CAAC,eACF/E,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,iDAAA;AAAiD,GAAA,eAC9DT,yBAAA,CAAAQ,aAAA,CAAC0F,cAAM,EAAA;AACLzF,IAAAA,SAAS,EAAC,iBAAiB;AAC3B,IAAA,aAAA,EAAY,6BAA6B;AACzC0F,IAAAA,IAAI,EAAEC,iBAAO;AACbvF,IAAAA,KAAK,EAAC,MAAM;AACZwF,IAAAA,YAAY,EAAE;AACZC,MAAAA,OAAO,EAAEjD,CAAC,CAAC,uCAAuC,CAAC;AACnDkD,MAAAA,QAAQ,EAAE,KAAA;KACV;IACFC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,MAAA,OAAMd,YAAY,CAACe,MAAM,CAAChB,KAAK,CAAC,CAAA;AAAA,KAAA;GAC1C,CACE,CACF,CAAC,CAAA;AAAA,CACP,CAAC;;ACvCF,IAAMiB,eAAe,GAAGlB,gBAAK,CAAC,UAAAtF,IAAA,EAAA;AAAA,EAAA,IAAGmD,CAAC,GAAAnD,IAAA,CAADmD,CAAC,CAAA;EAAA,oBAChCrD,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,WAAW;IAAC,SAAQ,EAAA,4BAAA;AAA4B,GAAA,eAC7DT,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AAAC,IAAA,SAAA,EAAQ,0BAA0B;AAACC,IAAAA,KAAK,EAAC,IAAA;GAClDwC,EAAAA,CAAC,CAAC,kDAAkD,CAC3C,CAAC,eACbrD,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,WAAA;GACbT,eAAAA,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wCAAA;AAAwC,GAAA,eACrDT,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AACTH,IAAAA,SAAS,EAAC,6CAA6C;AACvDI,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EAETwC,CAAC,CAAC,sCAAsC,CAAC,EAAC,GACjC,CAAC,eACbrD,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AACTH,IAAAA,SAAS,EAAC,6CAA6C;AACvDI,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EAETwC,CAAC,CAAC,oCAAoC,CAAC,EAAC,GAC/B,CAAC,eACbrD,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AACTH,IAAAA,SAAS,EAAC,6CAA6C;AACvDI,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EAETwC,CAAC,CAAC,mCAAmC,CAAC,EAAC,GAC9B,CAAC,eACbrD,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AACTH,IAAAA,SAAS,EAAC,yDAAyD;AACnEI,IAAAA,KAAK,EAAC,IAAA;GAELwC,EAAAA,CAAC,CAAC,sCAAsC,CAC/B,CACT,CAAC,eACNrD,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,kBAAA;AAAkB,GAAA,eAC/BT,yBAAA,CAAAQ,aAAA,CAACmG,mBAAU,EAAA;AAACd,IAAAA,IAAI,EAAC,iBAAA;AAAiB,GAAA,EAC/B,UAAAH,YAAY,EAAA;IAAA,oBACX1F,yBAAA,CAAAQ,aAAA,CAAAR,yBAAA,CAAA4G,QAAA,QACGlB,YAAY,CAACmB,IAAI,CAACrC,MAAM,CAACP,eAAe,CAACG,GAAG,CAC3C,UAACC,cAAc,EAAEoB,KAAK,EAAA;AAAA,MAAA,oBACpBzF,yBAAA,CAAAQ,aAAA,CAAC+E,cAAc,EAAA;AACPlB,QAAAA,cAAc,EAAdA,cAAc;AAAEqB,QAAAA,YAAY,EAAZA,YAAY;AAAED,QAAAA,KAAK,EAALA,KAAK;QACzCqB,GAAG,EAAEzC,cAAc,CAACe,SAAAA;AAAU,OAC/B,CAAC,CAAA;AAAA,KAEN,CAAC,eACDpF,yBAAA,CAAAQ,aAAA,CAAC0F,cAAM,EAAA;AACL,MAAA,SAAA,EAAQ,6BAA6B;AACrChF,MAAAA,KAAK,EAAEmC,CAAC,CAAC,qCAAqC,CAAE;AAChDxC,MAAAA,KAAK,EAAC,MAAM;MACZ2F,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,QAAA,OAAMd,YAAY,CAACqB,IAAI,CAAC5B,oBAAoB,CAAC,CAAA;AAAA,OAAA;AAAC,KACxD,CACD,CAAC,CAAA;GAEK,CACT,CACF,CACF,CAAC,CAAA;AAAA,CACP,CAAC,CAAA;AAEF,wBAAA,aAAenF,yBAAK,CAACe,IAAI,CAAC2F,eAAe,CAAC;;AChE1C,IAAMM,MAAI,GAAG,SAAPA,IAAIA,CAAGC,MAAM,EAAA;AAAA,EAAA,OACjBC,yBAAK,CAACC,GAAG,IAAArB,MAAA,CAAIpB,+BAA+B,EAAe,aAAA,CAAA,EAAA;AAAEuC,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAExE,IAAMG,YAAY,GAAG;AAAEJ,EAAAA,IAAI,EAAJA,MAAAA;AAAK,CAAC;;ACF7B,IAAQlC,UAAU,GAAKH,UAAU,CAAzBG,UAAU,CAAA;AAElB,IAAMuC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAA;AAAA,EAAA,OACpBC,mBAAQ,CAAC,CAACxC,UAAU,CAAC,EAAE,YAAA;AAAA,IAAA,OAAMsC,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,oBACE1H,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAC,qCAAqC;IAC/C,SAAQ,EAAA,sBAAA;GAERT,eAAAA,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,qBACTZ,yBAAA,CAAAQ,aAAA,CAACmH,kBAAK,EAAA;AACJC,IAAAA,OAAO,EAAC,+CAA+C;AACvDpD,IAAAA,MAAM,EAAE;AAAEnD,MAAAA,EAAE,EAAEqG,SAAS,GAAG,KAAK,GAAGD,IAAI,CAACpG,EAAAA;AAAG,KAAA;GAC3C,CACS,CACT,CAAC,CAAA;AAEV,CAAC,CAAA;AAED,kBAAA,aAAerB,yBAAK,CAACe,IAAI,CAACwG,SAAS,CAAC;;ACrBpC,IAAMM,kBAAkB,GAAA,EAAA,CAAA/B,MAAA,CAAMpB,+BAA+B,EAAc,cAAA,CAAA,CAAA;AAE3E,IAAMoD,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;AAAExD,IAAAA,cAAc,EAAE2D,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,CAAApB,MAAA,CAAI+B,kBAAkB,EAAA,GAAA,CAAA,CAAA/B,MAAA,CAAIqC,EAAE,CAAE,CAAC,CAAA;AAAA,CAAA,CAAA;AAEjE,IAAMC,QAAM,GAAG,SAATA,MAAMA,CAAAlI,IAAA,EAAA;AAAA,EAAA,IAAMiI,EAAE,GAAAjI,IAAA,CAAFiI,EAAE;IAAEH,OAAO,GAAA9H,IAAA,CAAP8H,OAAO,CAAA;EAAA,OAC3Bd,yBAAK,CAACmB,KAAK,CAAAvC,EAAAA,CAAAA,MAAA,CAAI+B,kBAAkB,EAAA/B,GAAAA,CAAAA,CAAAA,MAAA,CAAIqC,EAAE,CAAI,EAAA;AACzC9D,IAAAA,cAAc,EAAE2D,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,IAAQvD,mBAAiB,GAAKF,UAAU,CAAhCE,iBAAiB,CAAA;AAEzB,IAAM0D,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGtC,OAAO,EAAA;AAAA,EAAA,OACrCqB,mBAAQ,CAAC,CAACzC,mBAAiB,CAAC,EAAE,YAAA;AAAA,IAAA,OAAMyD,kBAAkB,CAACR,KAAK,EAAE,CAAA;AAAA,GAAA,EAAE7B,OAAO,CAAC,CAAA;AAAA,CAAA;;ACL1E,IAAMuC,gBAAgB,GAAA,EAAA,CAAA1C,MAAA,CAAMpB,+BAA+B,EAAiB,iBAAA,CAAA,CAAA;AAE5E,IAAM0D,MAAM,GAAG,SAATA,MAAMA,CAAGnB,MAAM,EAAA;AAAA,EAAA,OACnBC,yBAAK,CAACmB,KAAK,CAACG,gBAAgB,EAAE;AAAEtE,IAAAA,aAAa,EAAE+C,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,IAAQpC,cAAc,GAAwBD,UAAU,CAAhDC,cAAc;EAAEC,iBAAiB,GAAKF,UAAU,CAAhCE,iBAAiB,CAAA;AAEzC,IAAM6D,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAA;AAAA,EAAA,OACxBpB,mBAAQ,CAAC,CAAC1C,cAAc,CAAC,EAAE,YAAA;AAAA,IAAA,OAAM6D,gBAAgB,CAACzB,IAAI,EAAE,CAAA;GAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AAE3D,IAAM2B,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAA;AAAA,EAAA,OAC1BC,sCAA2B,CAACH,gBAAgB,CAACL,MAAM,EAAE;AACnDS,IAAAA,gBAAgB,EAAE,CAACjE,cAAc,EAAEC,iBAAiB,CAAA;AACtD,GAAC,CAAC,CAAA;AAAA,CAAA;;ACSJ,IAAMiE,aAAa,GAAG,SAAhBA,aAAaA,GAAS;AAC1B,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtB3F,CAAC,GAAA0F,eAAA,CAAD1F,CAAC,CAAA;AACT,EAAA,IAAA4F,SAAA,GAAsCC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,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;IAA7BxF,sBAAsB,GAAAyF,sBAAA,CAAtBzF,sBAAsB;IACnB0F,uBAAuB,GAAAH,qBAAA,CAAlC7B,SAAS,CAAA;EAGX,IAAAiC,qBAAA,GAIIpB,uBAAuB,CAAC;AAAEqB,MAAAA,OAAO,EAAE5F,sBAAAA;AAAuB,KAAC,CAAC;IAHxDC,eAAe,GAAA0F,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,oBACE9J,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,UAAA;AAAU,KAAA,eACvBT,yBAAA,CAAAQ,aAAA,CAACP,YAAU,EAAA,IAAE,CACV,CAAC,CAAA;AAEV,GAAA;EAEA,IAAMkK,YAAY,GAAG,SAAfA,YAAYA,CAAI3F,MAAM,EAAE4F,SAAS,EAAK;AAC1C,IAAA,IAAI5F,MAAM,CAACN,aAAa,EAAEoF,cAAc,CAAC,IAAI,CAAC,CAAC,KAC1Ce,yBAAyB,CAAC7F,MAAM,EAAE4F,SAAS,CAAC,CAAA;GAClD,CAAA;AAED,EAAA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,aAAa,EAAI;IACxCjB,cAAc,CAAC,KAAK,CAAC,CAAA;IACrBiB,aAAa,CAAC,KAAK,CAAC,CAAA;GACrB,CAAA;EAED,IAAMF,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAI7F,MAAM,EAAAtE,IAAA,EAAmC;AAAA,IAAA,IAA/BqK,aAAa,GAAArK,IAAA,CAAbqK,aAAa;MAAEC,SAAS,GAAAtK,IAAA,CAATsK,SAAS,CAAA;AACnER,IAAAA,mBAAmB,CAACzF,yBAAyB,CAACC,MAAM,CAAC,EAAE;MACrDiG,SAAS,EAAE,SAAAA,SAAAA,GAAM;QACfnB,cAAc,CAAC,KAAK,CAAC,CAAA;QACrBiB,aAAa,CAAC,KAAK,CAAC,CAAA;AACpBC,QAAAA,SAAS,CAAC;AAAEhG,UAAAA,MAAM,EAANA,MAAAA;AAAO,SAAC,CAAC,CAAA;OACtB;MACDkG,OAAO,EAAE,SAAAA,OAAAA,GAAM;QACbpB,cAAc,CAAC,KAAK,CAAC,CAAA;QACrBiB,aAAa,CAAC,KAAK,CAAC,CAAA;AACtB,OAAA;AACF,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,oBACEvK,yBAAA,CAAAQ,aAAA,CAACmK,WAAW,EAAA;AACVlK,IAAAA,SAAS,EAAC,wEAAwE;AAClFmK,IAAAA,WAAW,EAAE;AACXC,MAAAA,aAAa,EAAE9G,iBAAiB,CAC9BC,sBAAsB,EACtBC,eACF,CAAC;AACD6G,MAAAA,gBAAgB,EAAE9F,iBAAiB;AACnC+F,MAAAA,cAAc,EAAE,IAAI;AACpBC,MAAAA,kBAAkB,EAAE,IAAI;AACxBC,MAAAA,QAAQ,EAAEd,YAAAA;AACZ,KAAA;AAAE,GAAA,EAED,UAAAe,KAAA,EAAA;AAAA,IAAA,IAAG1G,MAAM,GAAA0G,KAAA,CAAN1G,MAAM;MAAE2G,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,oBACxDvK,yBAAA,CAAAQ,aAAA,CAAAR,yBAAA,CAAA4G,QAAA,EACE5G,IAAAA,eAAAA,yBAAA,CAAAQ,aAAA,CAAC6K,sBAAe,EAAA,IAAE,CAAC,eACnBrL,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AACEC,MAAAA,SAAS,EAAC,8JAA8J;MACxK,SAAQ,EAAA,sBAAA;KAERT,eAAAA,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,eAAA;AAAe,KAAA,eAC5BT,yBAAA,CAAAQ,aAAA,CAAC8K,eAAQ,EAAA;MACPC,OAAO,EAAE/G,MAAM,CAACN,aAAc;AAC9BzD,MAAAA,SAAS,EAAC,aAAa;AACvB,MAAA,SAAA,EAAQ,gCAAgC;MACxC+K,QAAQ,EAAE9B,uBAAuB,IAAIQ,UAAW;AAChDrE,MAAAA,IAAI,EAAC,eAAe;AACpB3E,MAAAA,KAAK,eACHlB,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAA;AAAI,OAAA,EACnBwC,CAAC,CAAC,0CAA0C,CACnC,CACb;MACDoI,QAAQ,EAAE,SAAAA,QAAA,GAAA;QAAA,OACRL,aAAa,CAAC,eAAe,EAAE,CAAC5G,MAAM,CAACN,aAAa,CAAC,CAAA;AAAA,OAAA;AACtD,KACF,CAAC,eACFlE,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AAAC,MAAA,SAAA,EAAQ,4BAA4B;AAACC,MAAAA,KAAK,EAAC,OAAA;AAAO,KAAA,EAC3DwC,CAAC,CAAC,0CAA0C,CACnC,CACT,CAAC,EACLmB,MAAM,CAACN,aAAa,iBACnBlE,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,2CAAA;KACbT,eAAAA,yBAAA,CAAAQ,aAAA,CAAC+G,WAAS,EAAE,IAAA,CAAC,eACbvH,yBAAA,CAAAQ,aAAA,CAACkG,iBAAe,MAAE,CAAC,eACnB1G,yBAAA,CAAAQ,aAAA,CAACkL,eAAO,EAAA;AAAC7K,MAAAA,KAAK,EAAC,SAAA;KACbb,eAAAA,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,0CAAA;AAA0C,KAAA,eACvDT,yBAAA,CAAAQ,aAAA,CAACmH,kBAAK,EAAA;AAACC,MAAAA,OAAO,EAAC,6CAAA;KAA+C,CAC3D,CACE,CACN,CAEJ,CAAC,eACN5H,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,mDAAA;AAAmD,KAAA,EAC/D0K,KAAK,iBACJnL,yBAAA,CAAAQ,aAAA,CAACI,kBAAU,EAAA;AAACH,MAAAA,SAAS,EAAC,yBAAyB;AAACI,MAAAA,KAAK,EAAC,OAAA;KACnDwC,EAAAA,CAAC,CAAC,yDAAyD,CAClD,CACb,eACDrD,yBAAA,CAAAQ,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,8BAAA;AAA8B,KAAA,eAC3CT,yBAAA,CAAAQ,aAAA,CAAC0F,cAAM,EAAA;AACLzF,MAAAA,SAAS,EAAC,MAAM;MAChB+K,QAAQ,EAAE,CAACL,KAAM;AACjBjK,MAAAA,KAAK,EAAEmC,CAAC,CAAC,qCAAqC,CAAE;AAChDxC,MAAAA,KAAK,EAAC,WAAW;AACjB8K,MAAAA,IAAI,EAAC,OAAO;AACZnF,MAAAA,OAAO,EAAEgE,SAAAA;AAAU,KACpB,CAAC,eACFxK,yBAAA,CAAAQ,aAAA,CAACoL,aAAY,EAAA;AACX,MAAA,SAAA,EAAQ,6BAA6B;AACrC,MAAA,aAAA,EAAY,qBAAqB;AACjClE,MAAAA,SAAS,EAAEwC,UAAW;AACtByB,MAAAA,IAAI,EAAC,QAAA;AAAQ,KAAA,EAEZtI,CAAC,CAAC,2CAA2C,CAClC,CACX,CACF,CAAC,eACNrD,yBAAA,CAAAQ,aAAA,CAACqL,aAAK,EAAA;AACJC,MAAAA,MAAM,EAAEzC,WAAY;AACpB0C,MAAAA,YAAY,EAAE7B,UAAW;AACzB8B,MAAAA,KAAK,EAAE3I,CAAC,CAAC,gDAAgD,CAAE;AAC3DL,MAAAA,OAAO,eACLhD,yBAAA,CAAAQ,aAAA,CAACmH,kBAAK,EAAA;AAACC,QAAAA,OAAO,EAAC,kDAAA;AAAkD,OAAE,CACpE;AACDqE,MAAAA,iBAAiB,EAAE5I,CAAC,CAClB,4DACF,CAAE;MACF6I,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAM5B,gBAAgB,CAACC,aAAa,CAAC,CAAA;OAAC;MAC/CU,QAAQ,EAAE,SAAAA,QAAA,GAAA;QAAA,OACRZ,yBAAyB,CAAC7F,MAAM,EAAE;AAAE+F,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,aAAexK,yBAAK,CAACe,IAAI,CAAC+H,aAAa,CAAC;;;;"}
@@ -0,0 +1,370 @@
1
+ 'use strict';
2
+
3
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
4
+ var zustand = require('zustand');
5
+ var shallow = require('zustand/shallow');
6
+ var React = require('react');
7
+ var neetoIcons = require('@bigbinary/neeto-icons');
8
+ var neetoui = require('@bigbinary/neetoui');
9
+ var managers = require('@bigbinary/neetoui/managers');
10
+ var classnames = require('classnames');
11
+ var reactI18next = require('react-i18next');
12
+ var i18next = require('i18next');
13
+ var platform = require('platform');
14
+ var ramda = require('ramda');
15
+
16
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
+
18
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
20
+ var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
21
+ var platform__default = /*#__PURE__*/_interopDefaultLegacy(platform);
22
+
23
+ /** @type {import("neetocommons/react-utils").ZustandStoreHook} */
24
+ var useKeyboardShortcutsStore = zustand.create(reactUtils.withImmutableActions(function (set) {
25
+ return {
26
+ isOpen: false,
27
+ setIsOpen: function setIsOpen(arg) {
28
+ if (typeof arg === "function") {
29
+ set(function (state) {
30
+ return {
31
+ isOpen: arg(state.isOpen)
32
+ };
33
+ });
34
+ } else {
35
+ set({
36
+ isOpen: arg
37
+ });
38
+ }
39
+ }
40
+ };
41
+ }));
42
+ var useKeyboardShortcutsPaneState = function useKeyboardShortcutsPaneState() {
43
+ return useKeyboardShortcutsStore(function (_ref) {
44
+ var isOpen = _ref.isOpen,
45
+ setIsOpen = _ref.setIsOpen;
46
+ return [isOpen, setIsOpen];
47
+ }, shallow.shallow);
48
+ };
49
+
50
+ function _arrayWithHoles(arr) {
51
+ if (Array.isArray(arr)) return arr;
52
+ }
53
+
54
+ function _iterableToArrayLimit(r, l) {
55
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
56
+ if (null != t) {
57
+ var e,
58
+ n,
59
+ i,
60
+ u,
61
+ a = [],
62
+ f = !0,
63
+ o = !1;
64
+ try {
65
+ if (i = (t = t.call(r)).next, 0 === l) {
66
+ if (Object(t) !== t) return;
67
+ f = !1;
68
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
69
+ } catch (r) {
70
+ o = !0, n = r;
71
+ } finally {
72
+ try {
73
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
74
+ } finally {
75
+ if (o) throw n;
76
+ }
77
+ }
78
+ return a;
79
+ }
80
+ }
81
+
82
+ function _arrayLikeToArray(arr, len) {
83
+ if (len == null || len > arr.length) len = arr.length;
84
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
85
+ return arr2;
86
+ }
87
+
88
+ function _unsupportedIterableToArray(o, minLen) {
89
+ if (!o) return;
90
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
91
+ var n = Object.prototype.toString.call(o).slice(8, -1);
92
+ if (n === "Object" && o.constructor) n = o.constructor.name;
93
+ if (n === "Map" || n === "Set") return Array.from(o);
94
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
95
+ }
96
+
97
+ function _nonIterableRest() {
98
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
99
+ }
100
+
101
+ function _slicedToArray(arr, i) {
102
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
103
+ }
104
+
105
+ var KEY_SHORTFORM_MAP = {
106
+ command: "⌘",
107
+ escape: "esc",
108
+ control: "ctrl",
109
+ option: "opt",
110
+ "return": "enter"
111
+ };
112
+ var MAC_TO_WINDOWS_KEYS_MAP = {
113
+ option: "alt",
114
+ command: "ctrl",
115
+ "return": "enter",
116
+ "delete": "backspace"
117
+ };
118
+ var OS = {
119
+ mac: "OS X",
120
+ windows: "Windows"
121
+ };
122
+ var FULL_SHORTCUTS_LINK_PROP_NAME = "fullShortcutsLink";
123
+ var TOOLTIP_CONTENT = {
124
+ "⌘": "command",
125
+ esc: "escape",
126
+ ctrl: "control",
127
+ opt: "option",
128
+ backspace: "delete"
129
+ };
130
+
131
+ function _typeof(o) {
132
+ "@babel/helpers - typeof";
133
+
134
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
135
+ return typeof o;
136
+ } : function (o) {
137
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
138
+ }, _typeof(o);
139
+ }
140
+
141
+ function _toPrimitive(input, hint) {
142
+ if (_typeof(input) !== "object" || input === null) return input;
143
+ var prim = input[Symbol.toPrimitive];
144
+ if (prim !== undefined) {
145
+ var res = prim.call(input, hint || "default");
146
+ if (_typeof(res) !== "object") return res;
147
+ throw new TypeError("@@toPrimitive must return a primitive value.");
148
+ }
149
+ return (hint === "string" ? String : Number)(input);
150
+ }
151
+
152
+ function _toPropertyKey(arg) {
153
+ var key = _toPrimitive(arg, "string");
154
+ return _typeof(key) === "symbol" ? key : String(key);
155
+ }
156
+
157
+ function _defineProperty(obj, key, value) {
158
+ key = _toPropertyKey(key);
159
+ if (key in obj) {
160
+ Object.defineProperty(obj, key, {
161
+ value: value,
162
+ enumerable: true,
163
+ configurable: true,
164
+ writable: true
165
+ });
166
+ } else {
167
+ obj[key] = value;
168
+ }
169
+ return obj;
170
+ }
171
+
172
+ var isMultipleHotkey = function isMultipleHotkey(hotkey) {
173
+ return Array.isArray(hotkey);
174
+ };
175
+ var replaceKeys = function replaceKeys(hotkey, keyName, replaceWith) {
176
+ return isMultipleHotkey(hotkey) ? hotkey.map(function (item) {
177
+ return item.replaceAll(keyName, replaceWith);
178
+ }) : hotkey.replaceAll(keyName, replaceWith);
179
+ };
180
+ var convertHotKeyToWindows = function convertHotKeyToWindows(hotkey) {
181
+ ramda.toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(function (_ref) {
182
+ var _ref2 = _slicedToArray(_ref, 2),
183
+ macKey = _ref2[0],
184
+ windowsKey = _ref2[1];
185
+ hotkey = replaceKeys(hotkey, macKey, windowsKey);
186
+ });
187
+ return hotkey;
188
+ };
189
+ var convertHotkeyToUsersPlatform = function convertHotkeyToUsersPlatform(hotkey) {
190
+ var _platformInfo$os, _platformInfo$os$fami;
191
+ var platformInfo = platform__default["default"].parse(navigator.userAgent);
192
+ var isOSX = (_platformInfo$os = platformInfo.os) === null || _platformInfo$os === void 0 ? void 0 : (_platformInfo$os$fami = _platformInfo$os.family) === null || _platformInfo$os$fami === void 0 ? void 0 : _platformInfo$os$fami.includes(OS.mac);
193
+ if (isOSX) return hotkey;
194
+ return convertHotKeyToWindows(hotkey);
195
+ };
196
+ var shortenHotKey = function shortenHotKey(hotkey) {
197
+ var result = hotkey;
198
+ Object.entries(KEY_SHORTFORM_MAP).forEach(function (_ref3) {
199
+ var _ref4 = _slicedToArray(_ref3, 2),
200
+ longform = _ref4[0],
201
+ shortform = _ref4[1];
202
+ result = result.replaceAll(longform, shortform);
203
+ });
204
+ return result;
205
+ };
206
+ var getGlobalShortcuts = function getGlobalShortcuts() {
207
+ return _defineProperty({}, i18next__default["default"].t("neetoMolecules.keyboardShortcuts.global.categoryName"), {
208
+ openKeyboardShortcutsPane: {
209
+ sequence: "shift+/",
210
+ description: i18next__default["default"].t("neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane")
211
+ },
212
+ close: {
213
+ sequence: "esc",
214
+ description: i18next__default["default"].t("neetoMolecules.keyboardShortcuts.global.close")
215
+ },
216
+ submitForm: {
217
+ sequence: "command+return",
218
+ description: i18next__default["default"].t("neetoMolecules.keyboardShortcuts.global.submitForm")
219
+ }
220
+ });
221
+ };
222
+ var getTooltipProps = function getTooltipProps(key) {
223
+ if (TOOLTIP_CONTENT[key]) {
224
+ return {
225
+ position: "top",
226
+ content: TOOLTIP_CONTENT[key],
227
+ followCursor: "horizontal"
228
+ };
229
+ }
230
+ return null;
231
+ };
232
+
233
+ var HotKey = function HotKey(_ref) {
234
+ var description = _ref.description,
235
+ sequence = _ref.sequence;
236
+ var hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));
237
+ var isSequentialHotkey = hotkey.includes(" ");
238
+ var isSimultaneousHotkey = hotkey.includes("+");
239
+ var isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;
240
+ var sequences = [];
241
+ if (isSingleKeyHotkey) {
242
+ sequences = [hotkey];
243
+ } else if (isSequentialHotkey) {
244
+ sequences = hotkey.split(" ");
245
+ } else if (isSimultaneousHotkey) {
246
+ sequences = hotkey.split("+");
247
+ }
248
+ return /*#__PURE__*/React__default["default"].createElement("div", {
249
+ className: "my-3 w-full"
250
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
251
+ className: "flex items-center justify-between gap-3",
252
+ "data-cy": "hotkey-item",
253
+ "data-testid": "hotkey-item"
254
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
255
+ className: "neeto-ui-text-gray-800 min-w-0 flex-grow break-words",
256
+ lineHeight: "normal",
257
+ style: "body2"
258
+ }, description), /*#__PURE__*/React__default["default"].createElement("div", {
259
+ className: "flex flex-shrink-0 items-center gap-1"
260
+ }, sequences.map(function (keyName, idx) {
261
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
262
+ key: idx
263
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
264
+ keyName: keyName,
265
+ tooltipProps: getTooltipProps(keyName)
266
+ }), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
267
+ keyName: "then"
268
+ }));
269
+ }))));
270
+ };
271
+ var HotKey$1 = /*#__PURE__*/React__default["default"].memo(HotKey);
272
+
273
+ var HotKeyList = function HotKeyList(_ref) {
274
+ var hotkeys = _ref.hotkeys;
275
+ var _useTranslation = reactI18next.useTranslation(),
276
+ t = _useTranslation.t;
277
+ return Object.keys(hotkeys).map(function (categoryName) {
278
+ var categoryValues = hotkeys[categoryName];
279
+ var fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];
280
+ return /*#__PURE__*/React__default["default"].createElement("div", {
281
+ className: "mt-4 px-4",
282
+ key: categoryName
283
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
284
+ style: "h6",
285
+ textTransform: "uppercase",
286
+ weight: "bold"
287
+ }, categoryName), Object.entries(categoryValues).map(function (_ref2) {
288
+ var _ref3 = _slicedToArray(_ref2, 2),
289
+ _ref3$ = _ref3[1],
290
+ sequence = _ref3$.sequence,
291
+ description = _ref3$.description;
292
+ return sequence && /*#__PURE__*/React__default["default"].createElement(HotKey$1, {
293
+ description: description,
294
+ key: sequence,
295
+ sequence: sequence
296
+ });
297
+ }), fullShortcutsLink && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
298
+ className: "mb-3",
299
+ href: fullShortcutsLink,
300
+ style: "link",
301
+ target: "_blank",
302
+ label: t("neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts")
303
+ }));
304
+ });
305
+ };
306
+ var HotKeyList$1 = /*#__PURE__*/React__default["default"].memo(HotKeyList);
307
+
308
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
309
+
310
+ var css = ".neeto-molecules-keyboard-shortcuts-pane{flex-grow:0;flex-shrink:0;z-index:calc(var(--neeto-ui-modal-z-index) + 1)}";
311
+ n(css,{});
312
+
313
+ var KeyboardShortcutsPane = function KeyboardShortcutsPane(_ref) {
314
+ var _ref$productShortcuts = _ref.productShortcuts,
315
+ productShortcuts = _ref$productShortcuts === void 0 ? {} : _ref$productShortcuts;
316
+ var _useKeyboardShortcuts = useKeyboardShortcutsPaneState(),
317
+ _useKeyboardShortcuts2 = _slicedToArray(_useKeyboardShortcuts, 2),
318
+ isOpen = _useKeyboardShortcuts2[0],
319
+ setIsOpen = _useKeyboardShortcuts2[1];
320
+ var hasOverlays = managers.manager.hasOverlays();
321
+ // eslint-disable-next-line @bigbinary/neeto/no-dangling-constants
322
+ var GLOBAL_SHORTCUTS = getGlobalShortcuts();
323
+ var _useTranslation = reactI18next.useTranslation(),
324
+ t = _useTranslation.t;
325
+ var shortcuts = GLOBAL_SHORTCUTS[t("neetoMolecules.keyboardShortcuts.global.categoryName")];
326
+ reactUtils.useHotKeys(shortcuts.openKeyboardShortcutsPane.sequence, function () {
327
+ return setIsOpen(function (prevIsOpen) {
328
+ return !prevIsOpen;
329
+ });
330
+ });
331
+ reactUtils.useHotKeys(shortcuts.close.sequence, function () {
332
+ return setIsOpen(false);
333
+ });
334
+ return /*#__PURE__*/React__default["default"].createElement("div", {
335
+ "data-cy": "keyboard-shortcuts-pane",
336
+ className: classnames__default["default"]("neeto-molecules-keyboard-shortcuts-pane neeto-ui-border-gray-300 transition-width neeto-ui-bg-white ml-auto h-screen overflow-hidden border-l duration-300 ease-in-out", {
337
+ "w-80": isOpen,
338
+ "w-0": !isOpen,
339
+ absolute: hasOverlays,
340
+ "right-0": hasOverlays
341
+ })
342
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
343
+ className: "h-full w-80 overflow-y-auto"
344
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
345
+ className: "neeto-ui-border-gray-300 my-2 flex items-center justify-between border-b px-4 pb-2"
346
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
347
+ "data-cy": "keyboard-shortcuts-pane-title",
348
+ style: "h4"
349
+ }, t("neetoMolecules.keyboardShortcuts.title")), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
350
+ "data-cy": "keyboard-shortcuts-pane-close-button",
351
+ icon: neetoIcons.Close,
352
+ style: "text",
353
+ onClick: function onClick() {
354
+ return setIsOpen(false);
355
+ }
356
+ })), /*#__PURE__*/React__default["default"].createElement(HotKeyList$1, {
357
+ hotkeys: GLOBAL_SHORTCUTS
358
+ }), /*#__PURE__*/React__default["default"].createElement(HotKeyList$1, {
359
+ hotkeys: productShortcuts
360
+ })));
361
+ };
362
+
363
+ var KeyboardShortcuts = {
364
+ Pane: KeyboardShortcutsPane,
365
+ usePaneState: useKeyboardShortcutsPaneState,
366
+ GLOBAL_SHORTCUTS: getGlobalShortcuts()
367
+ };
368
+
369
+ module.exports = KeyboardShortcuts;
370
+ //# sourceMappingURL=KeyboardShortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyboardShortcuts.js","sources":["../../src/components/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../src/components/KeyboardShortcuts/Pane/constants.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../src/components/KeyboardShortcuts/Pane/utils.js","../../src/components/KeyboardShortcuts/Pane/HotKey.jsx","../../src/components/KeyboardShortcuts/Pane/HotKeyList.jsx","../../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../../src/components/KeyboardShortcuts/Pane/index.jsx","../../src/components/KeyboardShortcuts/index.js"],"sourcesContent":["import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\nimport { shallow } from \"zustand/shallow\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useKeyboardShortcutsStore = create(\n withImmutableActions(set => ({\n isOpen: false,\n\n setIsOpen: arg => {\n if (typeof arg === \"function\") {\n set(state => ({ isOpen: arg(state.isOpen) }));\n } else {\n set({ isOpen: arg });\n }\n },\n }))\n);\n\nconst useKeyboardShortcutsPaneState = () =>\n useKeyboardShortcutsStore(\n ({ isOpen, setIsOpen }) => [isOpen, setIsOpen],\n shallow\n );\n\nexport default useKeyboardShortcutsPaneState;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export const KEY_SHORTFORM_MAP = {\n command: \"⌘\",\n escape: \"esc\",\n control: \"ctrl\",\n option: \"opt\",\n return: \"enter\",\n};\n\nexport const MAC_TO_WINDOWS_KEYS_MAP = {\n option: \"alt\",\n command: \"ctrl\",\n return: \"enter\",\n delete: \"backspace\",\n};\n\nexport const OS = { mac: \"OS X\", windows: \"Windows\" };\n\nexport const FULL_SHORTCUTS_LINK_PROP_NAME = \"fullShortcutsLink\";\n\nexport const TOOLTIP_CONTENT = {\n \"⌘\": \"command\",\n esc: \"escape\",\n ctrl: \"control\",\n opt: \"option\",\n backspace: \"delete\",\n};\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import i18next from \"i18next\";\nimport platform from \"platform\";\nimport { toPairs } from \"ramda\";\n\nimport {\n KEY_SHORTFORM_MAP,\n MAC_TO_WINDOWS_KEYS_MAP,\n OS,\n TOOLTIP_CONTENT,\n} from \"./constants\";\n\nconst isMultipleHotkey = hotkey => Array.isArray(hotkey);\n\nconst replaceKeys = (hotkey, keyName, replaceWith) =>\n isMultipleHotkey(hotkey)\n ? hotkey.map(item => item.replaceAll(keyName, replaceWith))\n : hotkey.replaceAll(keyName, replaceWith);\n\nconst convertHotKeyToWindows = hotkey => {\n toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(([macKey, windowsKey]) => {\n hotkey = replaceKeys(hotkey, macKey, windowsKey);\n });\n\n return hotkey;\n};\n\nexport const convertHotkeyToUsersPlatform = hotkey => {\n const platformInfo = platform.parse(navigator.userAgent);\n const isOSX = platformInfo.os?.family?.includes(OS.mac);\n if (isOSX) return hotkey;\n\n return convertHotKeyToWindows(hotkey);\n};\n\nexport const shortenHotKey = hotkey => {\n let result = hotkey;\n Object.entries(KEY_SHORTFORM_MAP).forEach(([longform, shortform]) => {\n result = result.replaceAll(longform, shortform);\n });\n\n return result;\n};\n\nexport const getGlobalShortcuts = () => ({\n [i18next.t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")]: {\n openKeyboardShortcutsPane: {\n sequence: \"shift+/\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane\"\n ),\n },\n close: {\n sequence: \"esc\",\n description: i18next.t(\"neetoMolecules.keyboardShortcuts.global.close\"),\n },\n submitForm: {\n sequence: \"command+return\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.submitForm\"\n ),\n },\n },\n});\n\nexport const getTooltipProps = key => {\n if (TOOLTIP_CONTENT[key]) {\n return {\n position: \"top\",\n content: TOOLTIP_CONTENT[key],\n followCursor: \"horizontal\",\n };\n }\n\n return null;\n};\n","import React from \"react\";\n\n// eslint-disable-next-line @bigbinary/neeto/use-webpack-alias\nimport { Kbd, Typography } from \"@bigbinary/neetoui\";\n\nimport {\n convertHotkeyToUsersPlatform,\n shortenHotKey,\n getTooltipProps,\n} from \"./utils\";\n\nconst HotKey = ({ description, sequence }) => {\n const hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));\n const isSequentialHotkey = hotkey.includes(\" \");\n const isSimultaneousHotkey = hotkey.includes(\"+\");\n const isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;\n let sequences = [];\n\n if (isSingleKeyHotkey) {\n sequences = [hotkey];\n } else if (isSequentialHotkey) {\n sequences = hotkey.split(\" \");\n } else if (isSimultaneousHotkey) {\n sequences = hotkey.split(\"+\");\n }\n\n return (\n <div className=\"my-3 w-full\">\n <div\n className=\"flex items-center justify-between gap-3\"\n data-cy=\"hotkey-item\"\n data-testid=\"hotkey-item\"\n >\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n <div className=\"flex flex-shrink-0 items-center gap-1\">\n {sequences.map((keyName, idx) => (\n <React.Fragment key={idx}>\n <Kbd {...{ keyName }} tooltipProps={getTooltipProps(keyName)} />\n {isSequentialHotkey && idx + 1 !== sequences.length && (\n <Kbd keyName=\"then\" />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default React.memo(HotKey);\n","import React from \"react\";\n\n// eslint-disable-next-line @bigbinary/neeto/use-webpack-alias\nimport { Button, Typography } from \"@bigbinary/neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FULL_SHORTCUTS_LINK_PROP_NAME } from \"./constants\";\nimport HotKey from \"./HotKey\";\n\nconst HotKeyList = ({ hotkeys }) => {\n const { t } = useTranslation();\n\n return Object.keys(hotkeys).map(categoryName => {\n const categoryValues = hotkeys[categoryName];\n const fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];\n\n return (\n <div className=\"mt-4 px-4\" key={categoryName}>\n <Typography style=\"h6\" textTransform=\"uppercase\" weight=\"bold\">\n {categoryName}\n </Typography>\n {Object.entries(categoryValues).map(\n ([, { sequence, description }]) =>\n sequence && (\n <HotKey\n description={description}\n key={sequence}\n sequence={sequence}\n />\n )\n )}\n {fullShortcutsLink && (\n <Button\n className=\"mb-3\"\n href={fullShortcutsLink}\n style=\"link\"\n target=\"_blank\"\n label={t(\n \"neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts\"\n )}\n />\n )}\n </div>\n );\n });\n};\n\nexport default React.memo(HotKeyList);\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","/* eslint-disable @bigbinary/neeto/use-webpack-alias */\nimport React from \"react\";\n\nimport { useHotKeys } from \"@bigbinary/neeto-commons-frontend/react-utils\";\nimport { Close } from \"@bigbinary/neeto-icons\";\nimport { Typography, Button } from \"@bigbinary/neetoui\";\nimport { manager } from \"@bigbinary/neetoui/managers\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport HotKeyList from \"./HotKeyList\";\nimport \"./keyboard-shortcuts.scss\";\nimport { getGlobalShortcuts } from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../hooks/useKeyboardShortcutsPaneState\";\n\nconst KeyboardShortcutsPane = ({ productShortcuts = {} }) => {\n const [isOpen, setIsOpen] = useKeyboardShortcutsPaneState();\n const hasOverlays = manager.hasOverlays();\n // eslint-disable-next-line @bigbinary/neeto/no-dangling-constants\n const GLOBAL_SHORTCUTS = getGlobalShortcuts();\n const { t } = useTranslation();\n\n const shortcuts =\n GLOBAL_SHORTCUTS[t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")];\n\n useHotKeys(shortcuts.openKeyboardShortcutsPane.sequence, () =>\n setIsOpen(prevIsOpen => !prevIsOpen)\n );\n\n useHotKeys(shortcuts.close.sequence, () => setIsOpen(false));\n\n return (\n <div\n data-cy=\"keyboard-shortcuts-pane\"\n className={classnames(\n \"neeto-molecules-keyboard-shortcuts-pane neeto-ui-border-gray-300 transition-width neeto-ui-bg-white ml-auto h-screen overflow-hidden border-l duration-300 ease-in-out\",\n {\n \"w-80\": isOpen,\n \"w-0\": !isOpen,\n absolute: hasOverlays,\n \"right-0\": hasOverlays,\n }\n )}\n >\n <div className=\"h-full w-80 overflow-y-auto\">\n <div className=\"neeto-ui-border-gray-300 my-2 flex items-center justify-between border-b px-4 pb-2\">\n <Typography data-cy=\"keyboard-shortcuts-pane-title\" style=\"h4\">\n {t(\"neetoMolecules.keyboardShortcuts.title\")}\n </Typography>\n <Button\n data-cy=\"keyboard-shortcuts-pane-close-button\"\n icon={Close}\n style=\"text\"\n onClick={() => setIsOpen(false)}\n />\n </div>\n <HotKeyList hotkeys={GLOBAL_SHORTCUTS} />\n <HotKeyList hotkeys={productShortcuts} />\n </div>\n </div>\n );\n};\n\nKeyboardShortcutsPane.propTypes = {\n /**\n * Used to pass in the product specific keyboard shortcuts.\n */\n productShortcuts: PropTypes.object,\n};\n\nexport default KeyboardShortcutsPane;\n","import useKeyboardShortcutsPaneState from \"./hooks/useKeyboardShortcutsPaneState\";\nimport KeyboardShortcutsPane from \"./Pane\";\nimport { getGlobalShortcuts } from \"./Pane/utils\";\n\nconst KeyboardShortcuts = {\n Pane: KeyboardShortcutsPane,\n usePaneState: useKeyboardShortcutsPaneState,\n GLOBAL_SHORTCUTS: getGlobalShortcuts(),\n};\n\nexport default KeyboardShortcuts;\n"],"names":["useKeyboardShortcutsStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useKeyboardShortcutsPaneState","_ref","shallow","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","KEY_SHORTFORM_MAP","command","escape","control","option","MAC_TO_WINDOWS_KEYS_MAP","OS","mac","windows","FULL_SHORTCUTS_LINK_PROP_NAME","TOOLTIP_CONTENT","esc","ctrl","opt","backspace","toPrimitive","toPropertyKey","isMultipleHotkey","hotkey","Array","isArray","replaceKeys","keyName","replaceWith","map","item","replaceAll","convertHotKeyToWindows","toPairs","forEach","_ref2","_slicedToArray","macKey","windowsKey","convertHotkeyToUsersPlatform","_platformInfo$os","_platformInfo$os$fami","platformInfo","platform","parse","navigator","userAgent","isOSX","os","family","includes","shortenHotKey","result","Object","entries","_ref3","_ref4","longform","shortform","getGlobalShortcuts","_defineProperty","i18next","t","openKeyboardShortcutsPane","sequence","description","close","submitForm","getTooltipProps","key","position","content","followCursor","HotKey","isSequentialHotkey","isSimultaneousHotkey","isSingleKeyHotkey","sequences","split","React","createElement","className","Typography","lineHeight","style","idx","Fragment","Kbd","tooltipProps","length","memo","HotKeyList","hotkeys","_useTranslation","useTranslation","keys","categoryName","categoryValues","fullShortcutsLink","textTransform","weight","_ref3$","Button","href","target","label","KeyboardShortcutsPane","_ref$productShortcuts","productShortcuts","_useKeyboardShortcuts","_useKeyboardShortcuts2","hasOverlays","manager","GLOBAL_SHORTCUTS","shortcuts","useHotKeys","prevIsOpen","classnames","absolute","icon","Close","onClick","KeyboardShortcuts","Pane","usePaneState"],"mappings":"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"}