@bigbinary/neeto-integrations-frontend 3.1.7 → 3.1.8

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 (49) hide show
  1. package/README.md +1 -1
  2. package/app/javascript/src/translations/en.json +3 -2
  3. package/dist/Connect.js +14 -13
  4. package/dist/Connect.js.map +1 -1
  5. package/dist/Daily.js +2 -1
  6. package/dist/Daily.js.map +1 -1
  7. package/dist/DailyForm.js +2 -1
  8. package/dist/DailyForm.js.map +1 -1
  9. package/dist/Demo.js +10 -17
  10. package/dist/Demo.js.map +1 -1
  11. package/dist/Finish.js +11 -10
  12. package/dist/Finish.js.map +1 -1
  13. package/dist/{Form-BxWddtY4.js → Form-CPYZSV18.js} +12 -14
  14. package/dist/Form-CPYZSV18.js.map +1 -0
  15. package/dist/{Form-CYcwyCez.js → Form-DY3ljixO.js} +12 -14
  16. package/dist/Form-DY3ljixO.js.map +1 -0
  17. package/dist/GoogleCalendar.js +1 -0
  18. package/dist/GoogleCalendar.js.map +1 -1
  19. package/dist/Manage.js +62 -60
  20. package/dist/Manage.js.map +1 -1
  21. package/dist/Twilio.js +17 -18
  22. package/dist/Twilio.js.map +1 -1
  23. package/dist/ZapierForm.js +49 -42
  24. package/dist/ZapierForm.js.map +1 -1
  25. package/dist/cjs/Connect.js +14 -13
  26. package/dist/cjs/Connect.js.map +1 -1
  27. package/dist/cjs/Daily.js +2 -1
  28. package/dist/cjs/Daily.js.map +1 -1
  29. package/dist/cjs/DailyForm.js +2 -1
  30. package/dist/cjs/DailyForm.js.map +1 -1
  31. package/dist/cjs/Demo.js +10 -17
  32. package/dist/cjs/Demo.js.map +1 -1
  33. package/dist/cjs/Finish.js +11 -10
  34. package/dist/cjs/Finish.js.map +1 -1
  35. package/dist/cjs/GoogleCalendar.js +1 -0
  36. package/dist/cjs/GoogleCalendar.js.map +1 -1
  37. package/dist/cjs/Manage.js +62 -60
  38. package/dist/cjs/Manage.js.map +1 -1
  39. package/dist/cjs/Twilio.js +16 -17
  40. package/dist/cjs/Twilio.js.map +1 -1
  41. package/dist/cjs/ZapierForm.js +49 -42
  42. package/dist/cjs/ZapierForm.js.map +1 -1
  43. package/dist/cjs/index.js +2 -1
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/index.js +2 -1
  46. package/dist/index.js.map +1 -1
  47. package/package.json +14 -14
  48. package/dist/Form-BxWddtY4.js.map +0 -1
  49. package/dist/Form-CYcwyCez.js.map +0 -1
@@ -2,6 +2,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import { useState } from 'react';
3
3
  import i18next, { t } from 'i18next';
4
4
  import { useMutationWithInvalidation, withTitle } from '@bigbinary/neeto-commons-frontend/react-utils';
5
+ import CardLayout from '@bigbinary/neeto-molecules/CardLayout';
5
6
  import Container from '@bigbinary/neeto-molecules/Container';
6
7
  import Header from '@bigbinary/neeto-molecules/Header';
7
8
  import Button from '@bigbinary/neetoui/Button';
@@ -126,24 +127,15 @@ var Form = function Form(_ref) {
126
127
  }
127
128
  }
128
129
  }), /*#__PURE__*/jsxs("div", {
129
- className: "mx-auto w-full max-w-md",
130
+ className: "w-full",
130
131
  children: [/*#__PURE__*/jsx(FormikForm, {
131
132
  formikProps: {
132
133
  initialValues: MANAGE_DAILY_CO_FORM_INITIAL_VALUES,
133
134
  validationSchema: DAILY_CO_VALIDATION_SCHEMA,
134
135
  onSubmit: handleSubmit
135
136
  },
136
- children: /*#__PURE__*/jsxs("div", {
137
- className: "mt-14 w-full space-y-2",
138
- children: [/*#__PURE__*/jsx("div", {
139
- className: "block min-h-20",
140
- children: /*#__PURE__*/jsx(Input, {
141
- autoFocus: true,
142
- required: true,
143
- label: t("neetoIntegrations.daily.apiKey"),
144
- name: "apiKey"
145
- })
146
- }), /*#__PURE__*/jsx(ActionBlock, {
137
+ children: /*#__PURE__*/jsx(CardLayout, {
138
+ actionBlock: /*#__PURE__*/jsx(ActionBlock, {
147
139
  cancelButtonProps: {
148
140
  onClick: function onClick() {
149
141
  return history.goBack();
@@ -153,7 +145,13 @@ var Form = function Form(_ref) {
153
145
  submitButtonProps: {
154
146
  label: t("neetoIntegrations.common.connect")
155
147
  }
156
- })]
148
+ }),
149
+ children: /*#__PURE__*/jsx(Input, {
150
+ autoFocus: true,
151
+ required: true,
152
+ label: t("neetoIntegrations.daily.apiKey"),
153
+ name: "apiKey"
154
+ })
157
155
  })
158
156
  }), /*#__PURE__*/jsx(WalkthroughModal, {
159
157
  videoUrl: videoUrl,
@@ -168,4 +166,4 @@ var Form = function Form(_ref) {
168
166
  var Form$1 = withTitle(Form, i18next.t("neetoIntegrations.browserTitles.integrations.dailyco"));
169
167
 
170
168
  export { Form$1 as F, useDestroyDaily as a, useFetchDaily as u };
171
- //# sourceMappingURL=Form-CYcwyCez.js.map
169
+ //# sourceMappingURL=Form-DY3ljixO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form-DY3ljixO.js","sources":["../app/javascript/src/apis/dailies.js","../app/javascript/src/hooks/reactQuery/useDailiesApi.js","../app/javascript/src/components/Integrations/Daily/constants.js","../app/javascript/src/components/Integrations/Daily/Form.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { INTEGRATIONS_ENGINE_DAILY_URL } from \"src/constants/urls\";\n\nconst create = payload =>\n axios.post(INTEGRATIONS_ENGINE_DAILY_URL, { daily: payload });\n\nconst show = () => axios.get(INTEGRATIONS_ENGINE_DAILY_URL);\n\nconst destroy = () => axios.delete(INTEGRATIONS_ENGINE_DAILY_URL);\n\nconst dailiesApi = { create, show, destroy };\n\nexport default dailiesApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport dailiesApi from \"apis/dailies\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useCreateDaily = (options = {}) =>\n useMutationWithInvalidation(dailiesApi.create, {\n keysToInvalidate: [[QUERY_KEYS.DAILY_CO_DETAILS]],\n ...options,\n });\n\nexport const useFetchDaily = () =>\n useQuery({\n queryKey: [QUERY_KEYS.DAILY_CO_DETAILS],\n queryFn: dailiesApi.show,\n staleTime: DEFAULT_STALE_TIME,\n });\n\nexport const useDestroyDaily = ({ onSuccess }) =>\n useMutationWithInvalidation(dailiesApi.destroy, {\n keysToInvalidate: [[QUERY_KEYS.DAILY_CO_DETAILS]],\n onSuccess,\n });\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const MANAGE_DAILY_CO_FORM_INITIAL_VALUES = { apiKey: \"\" };\n\nexport const DAILY_CO_VALIDATION_SCHEMA = yup.object().shape({\n apiKey: yup\n .string()\n .trim()\n .required(\n t(\"neetoIntegrations.errors.required\", {\n entity: t(\"neetoIntegrations.daily.apiKey\"),\n })\n ),\n});\n","import { useState } from \"react\";\n\nimport i18next from \"i18next\";\nimport { withTitle } from \"neetocommons/react-utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport Container from \"neetomolecules/Container\";\nimport Header from \"neetomolecules/Header\";\nimport { Button, Spinner, Typography } from \"neetoui\";\nimport { Input, Form as FormikForm, ActionBlock } from \"neetoui/formik\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport WalkthroughModal from \"components/WalkthroughModal\";\nimport { useCreateDaily } from \"hooks/reactQuery/useDailiesApi\";\n\nimport {\n MANAGE_DAILY_CO_FORM_INITIAL_VALUES,\n DAILY_CO_VALIDATION_SCHEMA,\n} from \"./constants\";\n\nconst Form = ({ helpDocUrl, videoUrl, onConnect, breadcrumbs }) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const [isDemoModalOpen, setIsDemoModalOpen] = useState(false);\n\n const { mutate: createDaily, isPending: isConnecting } = useCreateDaily({\n onSuccess: () => onConnect?.(),\n });\n\n const handleSubmit = payload => createDaily(payload);\n\n if (isConnecting) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container isHeaderFixed>\n <Header\n {...{ breadcrumbs }}\n title={t(\"neetoIntegrations.daily.connect.title\")}\n titleHelpPopoverProps={{\n title: t(\"neetoIntegrations.daily.connect.title\"),\n description: (\n <Typography lineHeight=\"normal\" style=\"body2\">\n <Trans\n i18nKey=\"neetoIntegrations.daily.helpDoc\"\n components={{\n videoLink: (\n <Button\n style=\"link\"\n onClick={() => setIsDemoModalOpen(true)}\n />\n ),\n }}\n />\n </Typography>\n ),\n helpLinkProps: {\n href: helpDocUrl,\n \"data-cy\": \"api-key-help-doc-link\",\n },\n }}\n />\n <div className=\"w-full\">\n <FormikForm\n formikProps={{\n initialValues: MANAGE_DAILY_CO_FORM_INITIAL_VALUES,\n validationSchema: DAILY_CO_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <CardLayout\n actionBlock={\n <ActionBlock\n cancelButtonProps={{ onClick: () => history.goBack() }}\n isSubmitting={isConnecting}\n submitButtonProps={{\n label: t(\"neetoIntegrations.common.connect\"),\n }}\n />\n }\n >\n <Input\n autoFocus\n required\n label={t(\"neetoIntegrations.daily.apiKey\")}\n name=\"apiKey\"\n />\n </CardLayout>\n </FormikForm>\n <WalkthroughModal\n {...{ videoUrl }}\n isOpen={isDemoModalOpen}\n onClose={() => setIsDemoModalOpen(false)}\n />\n </div>\n </Container>\n );\n};\nexport default withTitle(\n Form,\n i18next.t(\"neetoIntegrations.browserTitles.integrations.dailyco\")\n);\n"],"names":["create","payload","axios","post","INTEGRATIONS_ENGINE_DAILY_URL","daily","show","get","destroy","dailiesApi","useCreateDaily","options","arguments","length","undefined","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","DAILY_CO_DETAILS","useFetchDaily","useQuery","queryKey","queryFn","staleTime","DEFAULT_STALE_TIME","useDestroyDaily","_ref","onSuccess","MANAGE_DAILY_CO_FORM_INITIAL_VALUES","apiKey","DAILY_CO_VALIDATION_SCHEMA","yup","object","shape","string","trim","required","t","entity","Form","helpDocUrl","videoUrl","onConnect","breadcrumbs","_useTranslation","useTranslation","history","useHistory","_useState","useState","_useState2","_slicedToArray","isDemoModalOpen","setIsDemoModalOpen","_useCreateDaily","createDaily","mutate","isConnecting","isPending","handleSubmit","_jsx","className","children","Spinner","_jsxs","Container","isHeaderFixed","Header","title","titleHelpPopoverProps","description","Typography","lineHeight","style","Trans","i18nKey","components","videoLink","Button","onClick","helpLinkProps","href","FormikForm","formikProps","initialValues","validationSchema","onSubmit","CardLayout","actionBlock","ActionBlock","cancelButtonProps","goBack","isSubmitting","submitButtonProps","label","Input","autoFocus","name","WalkthroughModal","isOpen","onClose","withTitle","i18next"],"mappings":"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"}
@@ -17,6 +17,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
17
17
  import '@bigbinary/neetoui/Modal';
18
18
  import 'classnames';
19
19
  import '@bigbinary/neeto-commons-frontend/react-utils';
20
+ import '@bigbinary/neeto-molecules/CardLayout';
20
21
  import './index-MS1ts-9f.js';
21
22
 
22
23
  var INTEGRATION_STEPS = [{
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleCalendar.js","sources":["../app/javascript/src/components/Integrations/GoogleCalender/constants.js","../app/javascript/src/components/Integrations/GoogleCalender/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const INTEGRATION_STEPS = [\n {\n step: \"1\",\n label: t(\"neetoIntegrations.common.connect\"),\n isActive: true,\n isCompleted: false,\n },\n {\n step: \"2\",\n label: t(\"neetoIntegrations.common.finish\"),\n isActive: false,\n isCompleted: false,\n },\n];\n\nexport const STEPS = {\n connect: t(\"neetoIntegrations.common.connect\"),\n finish: t(\"neetoIntegrations.common.finish\"),\n};\n","import { useState, useEffect } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { GoogleCalendar as GoogleCalendarIcon, Google } from \"neetoicons/misc\";\nimport { Typography, Callout, Button } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport IntegrationsModal from \"components/Modal\";\nimport Finish from \"components/Steps/Finish\";\n\nimport { INTEGRATION_STEPS, STEPS } from \"./constants\";\n\nconst GoogleCalendar = ({\n permissionImage,\n fetchAuthorizationUrl,\n handleClose,\n handleRedirect,\n}) => {\n const { t } = useTranslation();\n const [steps, setSteps] = useState(INTEGRATION_STEPS);\n const { status } = getQueryParams();\n\n const activeTab = isPresent(status) ? STEPS.finish : STEPS.connect;\n\n useEffect(() => {\n setSteps(() => {\n const stepsClone = [...steps];\n stepsClone[0] = {\n ...steps[0],\n isActive: activeTab === STEPS.connect,\n isCompleted: activeTab !== STEPS.connect,\n };\n\n stepsClone[1] = {\n ...steps[1],\n isActive: activeTab === STEPS.finish,\n isCompleted: activeTab === STEPS.finish,\n };\n\n return stepsClone;\n });\n }, [activeTab]);\n\n return (\n <IntegrationsModal {...{ steps }} isOpen onClose={handleClose}>\n {activeTab === STEPS.connect && (\n <div className=\"mx-auto w-full max-w-3xl\">\n <GoogleCalendarIcon size={48} />\n <Typography className=\"mb-4 mt-2\" style=\"h2\">\n {t(\"neetoIntegrations.google.connect.title\")}\n </Typography>\n <div className=\"flex w-full flex-col items-start\">\n <Callout className=\"block leading-5\">\n <Trans\n components={{ bold: <strong /> }}\n i18nKey=\"neetoIntegrations.google.connect.reminderToAcceptPermissions\"\n values={{\n selectCheckbox: t(\n \"neetoIntegrations.google.connect.selectCheckbox\"\n ),\n }}\n />\n </Callout>\n {permissionImage && (\n <div className=\"neeto-ui-border-gray-300 neeto-ui-rounded-md my-4 overflow-hidden border\">\n <img src={permissionImage} />\n </div>\n )}\n </div>\n <Button\n icon={Google}\n label={t(\"neetoIntegrations.google.connect.signIn\")}\n onClick={fetchAuthorizationUrl}\n />\n </div>\n )}\n {activeTab === STEPS.finish && (\n <Finish\n title={t(\"neetoIntegrations.google.finish.title\")}\n onClick={handleRedirect}\n />\n )}\n </IntegrationsModal>\n );\n};\n\nexport default GoogleCalendar;\n"],"names":["INTEGRATION_STEPS","step","label","t","isActive","isCompleted","STEPS","connect","finish","GoogleCalendar","_ref","permissionImage","fetchAuthorizationUrl","handleClose","handleRedirect","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","steps","setSteps","_getQueryParams","getQueryParams","status","activeTab","isPresent","useEffect","stepsClone","_toConsumableArray","_objectSpread","_jsxs","IntegrationsModal","isOpen","onClose","children","className","_jsx","GoogleCalendarIcon","size","Typography","style","Callout","Trans","components","bold","i18nKey","values","selectCheckbox","src","Button","icon","Google","onClick","Finish","title"],"mappings":"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"}
1
+ {"version":3,"file":"GoogleCalendar.js","sources":["../app/javascript/src/components/Integrations/GoogleCalender/constants.js","../app/javascript/src/components/Integrations/GoogleCalender/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const INTEGRATION_STEPS = [\n {\n step: \"1\",\n label: t(\"neetoIntegrations.common.connect\"),\n isActive: true,\n isCompleted: false,\n },\n {\n step: \"2\",\n label: t(\"neetoIntegrations.common.finish\"),\n isActive: false,\n isCompleted: false,\n },\n];\n\nexport const STEPS = {\n connect: t(\"neetoIntegrations.common.connect\"),\n finish: t(\"neetoIntegrations.common.finish\"),\n};\n","import { useState, useEffect } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { GoogleCalendar as GoogleCalendarIcon, Google } from \"neetoicons/misc\";\nimport { Typography, Callout, Button } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport IntegrationsModal from \"components/Modal\";\nimport Finish from \"components/Steps/Finish\";\n\nimport { INTEGRATION_STEPS, STEPS } from \"./constants\";\n\nconst GoogleCalendar = ({\n permissionImage,\n fetchAuthorizationUrl,\n handleClose,\n handleRedirect,\n}) => {\n const { t } = useTranslation();\n const [steps, setSteps] = useState(INTEGRATION_STEPS);\n const { status } = getQueryParams();\n\n const activeTab = isPresent(status) ? STEPS.finish : STEPS.connect;\n\n useEffect(() => {\n setSteps(() => {\n const stepsClone = [...steps];\n stepsClone[0] = {\n ...steps[0],\n isActive: activeTab === STEPS.connect,\n isCompleted: activeTab !== STEPS.connect,\n };\n\n stepsClone[1] = {\n ...steps[1],\n isActive: activeTab === STEPS.finish,\n isCompleted: activeTab === STEPS.finish,\n };\n\n return stepsClone;\n });\n }, [activeTab]);\n\n return (\n <IntegrationsModal {...{ steps }} isOpen onClose={handleClose}>\n {activeTab === STEPS.connect && (\n <div className=\"mx-auto w-full max-w-3xl\">\n <GoogleCalendarIcon size={48} />\n <Typography className=\"mb-4 mt-2\" style=\"h2\">\n {t(\"neetoIntegrations.google.connect.title\")}\n </Typography>\n <div className=\"flex w-full flex-col items-start\">\n <Callout className=\"block leading-5\">\n <Trans\n components={{ bold: <strong /> }}\n i18nKey=\"neetoIntegrations.google.connect.reminderToAcceptPermissions\"\n values={{\n selectCheckbox: t(\n \"neetoIntegrations.google.connect.selectCheckbox\"\n ),\n }}\n />\n </Callout>\n {permissionImage && (\n <div className=\"neeto-ui-border-gray-300 neeto-ui-rounded-md my-4 overflow-hidden border\">\n <img src={permissionImage} />\n </div>\n )}\n </div>\n <Button\n icon={Google}\n label={t(\"neetoIntegrations.google.connect.signIn\")}\n onClick={fetchAuthorizationUrl}\n />\n </div>\n )}\n {activeTab === STEPS.finish && (\n <Finish\n title={t(\"neetoIntegrations.google.finish.title\")}\n onClick={handleRedirect}\n />\n )}\n </IntegrationsModal>\n );\n};\n\nexport default GoogleCalendar;\n"],"names":["INTEGRATION_STEPS","step","label","t","isActive","isCompleted","STEPS","connect","finish","GoogleCalendar","_ref","permissionImage","fetchAuthorizationUrl","handleClose","handleRedirect","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","steps","setSteps","_getQueryParams","getQueryParams","status","activeTab","isPresent","useEffect","stepsClone","_toConsumableArray","_objectSpread","_jsxs","IntegrationsModal","isOpen","onClose","children","className","_jsx","GoogleCalendarIcon","size","Typography","style","Callout","Trans","components","bold","i18nKey","values","selectCheckbox","src","Button","icon","Google","onClick","Finish","title"],"mappings":"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"}
package/dist/Manage.js CHANGED
@@ -67,52 +67,55 @@ var Manage = withT(function (_ref) {
67
67
  children: [/*#__PURE__*/jsx("div", {
68
68
  className: "mx-auto w-full max-w-3xl",
69
69
  children: /*#__PURE__*/jsxs("div", {
70
- className: "neeto-ui-border-gray-300 neeto-ui-rounded-xl mt-10 w-full space-y-4 border p-6",
71
- children: [Icon && /*#__PURE__*/jsx(Icon, {
72
- className: "neeto-ui-text-gray-600",
73
- size: 48
74
- }), /*#__PURE__*/jsxs("div", {
75
- className: "space-y-2",
76
- children: [/*#__PURE__*/jsxs("div", {
77
- className: "flex items-center space-x-4",
78
- children: [/*#__PURE__*/jsx(Typography, {
79
- className: "neeto-ui-text-gray-800 mb-0.5",
80
- style: "h2",
81
- weight: "semibold",
82
- children: title
83
- }), isConnected && /*#__PURE__*/jsx("div", {
84
- className: "neeto-ui-bg-success-500 neeto-ui-text-white neeto-ui-rounded-full flex items-center justify-center p-1",
85
- children: /*#__PURE__*/jsx(Check, {
86
- size: 24
70
+ className: "neeto-ui-border-gray-300 neeto-ui-rounded-lg my-6 w-full border",
71
+ children: [/*#__PURE__*/jsxs("div", {
72
+ className: "space-y-4 p-4",
73
+ children: [Icon && /*#__PURE__*/jsx(Icon, {
74
+ className: "neeto-ui-text-gray-600",
75
+ size: 48
76
+ }), /*#__PURE__*/jsxs("div", {
77
+ className: "space-y-2",
78
+ children: [/*#__PURE__*/jsxs("div", {
79
+ className: "flex items-center space-x-4",
80
+ children: [/*#__PURE__*/jsx(Typography, {
81
+ className: "neeto-ui-text-gray-800 mb-0.5",
82
+ style: "h2",
83
+ weight: "semibold",
84
+ children: title
85
+ }), isConnected && /*#__PURE__*/jsx("div", {
86
+ className: "neeto-ui-bg-success-500 neeto-ui-text-white neeto-ui-rounded-full flex items-center justify-center p-1",
87
+ children: /*#__PURE__*/jsx(Check, {
88
+ size: 24
89
+ })
90
+ })]
91
+ }), /*#__PURE__*/jsx(Typography, {
92
+ style: "body1",
93
+ weight: "normal",
94
+ className: classnames("neeto-ui-text-gray-800", {
95
+ "break-all": isConnected
96
+ }),
97
+ children: description
98
+ }), helpDocUrl && /*#__PURE__*/jsx(Typography, {
99
+ className: "neeto-ui-text-gray-800",
100
+ style: "body2",
101
+ weight: "normal",
102
+ children: /*#__PURE__*/jsx(Trans, {
103
+ i18nKey: "neetoIntegrations.common.helpDocUrl",
104
+ components: {
105
+ helpLink: /*#__PURE__*/jsx(Button, {
106
+ href: helpDocUrl,
107
+ style: "link",
108
+ target: "_blank"
109
+ })
110
+ },
111
+ values: {
112
+ integration: integrationName || humanize(integration)
113
+ }
87
114
  })
88
115
  })]
89
- }), /*#__PURE__*/jsx(Typography, {
90
- style: "body1",
91
- weight: "normal",
92
- className: classnames("neeto-ui-text-gray-800", {
93
- "break-all": isConnected
94
- }),
95
- children: description
96
- }), helpDocUrl && /*#__PURE__*/jsx(Typography, {
97
- className: "neeto-ui-text-gray-800",
98
- style: "body2",
99
- weight: "normal",
100
- children: /*#__PURE__*/jsx(Trans, {
101
- i18nKey: "neetoIntegrations.common.helpDocUrl",
102
- components: {
103
- helpLink: /*#__PURE__*/jsx(Button, {
104
- href: helpDocUrl,
105
- style: "link",
106
- target: "_blank"
107
- })
108
- },
109
- values: {
110
- integration: integrationName || humanize(integration)
111
- }
112
- })
113
116
  })]
114
117
  }), isConnected ? /*#__PURE__*/jsxs("div", {
115
- className: "space-x-2",
118
+ className: "neeto-ui-bg-gray-50 neeto-ui-rounded-lg sticky bottom-0 w-full space-y-2 rounded-t-none p-4 md:space-x-2",
116
119
  children: [(managePath || manageUrl) && /*#__PURE__*/jsx(Button, _objectSpread({
117
120
  "data-cy": "manage-button",
118
121
  href: manageUrl,
@@ -131,24 +134,23 @@ var Manage = withT(function (_ref) {
131
134
  return setIsDisconnectAlertOpen(true);
132
135
  }
133
136
  }, secondaryButtonProps))]
134
- }) : /*#__PURE__*/jsx("div", {
135
- children: /*#__PURE__*/jsx(Tooltip, _objectSpread(_objectSpread({
136
- disabled: !isConnectDisabled
137
- }, connectTooltipProps), {}, {
138
- children: /*#__PURE__*/jsx("span", {
139
- children: (connectPath || connectUrl || onConnect) && /*#__PURE__*/jsx(Button, _objectSpread({
140
- "data-cy": "connect-button",
141
- disabled: isConnectDisabled,
142
- href: connectUrl,
143
- to: connectPath,
144
- label: t("neetoIntegrations.common.connectIntegration", {
145
- integration: integrationName || humanize(integration)
146
- }),
147
- onClick: onConnect
148
- }, buttonProps))
149
- })
150
- }))
151
- })]
137
+ }) : /*#__PURE__*/jsx(Tooltip, _objectSpread(_objectSpread({
138
+ disabled: !isConnectDisabled
139
+ }, connectTooltipProps), {}, {
140
+ children: (connectPath || connectUrl || onConnect) && /*#__PURE__*/jsx("div", {
141
+ className: "neeto-ui-bg-gray-50 neeto-ui-rounded-lg sticky bottom-0 w-full rounded-t-none p-4",
142
+ children: /*#__PURE__*/jsx(Button, _objectSpread({
143
+ "data-cy": "connect-button",
144
+ disabled: isConnectDisabled,
145
+ href: connectUrl,
146
+ to: connectPath,
147
+ label: t("neetoIntegrations.common.connectIntegration", {
148
+ integration: integrationName || humanize(integration)
149
+ }),
150
+ onClick: onConnect
151
+ }, buttonProps))
152
+ })
153
+ }))]
152
154
  })
153
155
  }), /*#__PURE__*/jsx(DisconnectAlert, {
154
156
  isDisconnecting: isDisconnecting,
@@ -1 +1 @@
1
- {"version":3,"file":"Manage.js","sources":["../app/javascript/src/components/commons/Manage.jsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { humanize, noop } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Button, Tooltip, Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport DisconnectAlert from \"components/DisconnectAlert\";\n\nconst Manage = withT(\n ({\n t,\n title = \"\",\n description = \"\",\n integration = \"\",\n isDisconnectAlertOpen = false,\n setIsDisconnectAlertOpen = noop,\n isDisconnecting = false,\n onConnect = undefined,\n onDisconnect = undefined,\n onClose = noop,\n Icon = null,\n isConnected = false,\n connectPath = \"\",\n connectUrl = \"\",\n helpDocUrl = \"\",\n managePath = \"\",\n manageUrl = \"\",\n integrationName = \"\",\n disconnectMessage = \"\",\n disconnectTitle = \"\",\n isConnectDisabled = false,\n connectTooltipProps = null,\n buttonProps = {},\n secondaryButtonProps = {},\n }) => (\n <>\n <div className=\"mx-auto w-full max-w-3xl\">\n <div className=\"neeto-ui-border-gray-300 neeto-ui-rounded-xl mt-10 w-full space-y-4 border p-6\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={48} />}\n <div className=\"space-y-2\">\n <div className=\"flex items-center space-x-4\">\n <Typography\n className=\"neeto-ui-text-gray-800 mb-0.5\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n {isConnected && (\n <div className=\"neeto-ui-bg-success-500 neeto-ui-text-white neeto-ui-rounded-full flex items-center justify-center p-1\">\n <Check size={24} />\n </div>\n )}\n </div>\n <Typography\n style=\"body1\"\n weight=\"normal\"\n className={classNames(\"neeto-ui-text-gray-800\", {\n \"break-all\": isConnected,\n })}\n >\n {description}\n </Typography>\n {helpDocUrl && (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"body2\"\n weight=\"normal\"\n >\n <Trans\n i18nKey=\"neetoIntegrations.common.helpDocUrl\"\n components={{\n helpLink: (\n <Button href={helpDocUrl} style=\"link\" target=\"_blank\" />\n ),\n }}\n values={{\n integration: integrationName || humanize(integration),\n }}\n />\n </Typography>\n )}\n </div>\n {isConnected ? (\n <div className=\"space-x-2\">\n {(managePath || manageUrl) && (\n <Button\n data-cy=\"manage-button\"\n href={manageUrl}\n target={manageUrl ? \"_blank\" : \"_self\"}\n to={managePath}\n label={t(\"neetoIntegrations.common.manageIntegration\", {\n integration: integrationName || humanize(integration),\n })}\n {...buttonProps}\n />\n )}\n {onDisconnect && (\n <Button\n data-cy=\"disconnect-button\"\n style=\"secondary\"\n label={t(\"neetoIntegrations.common.disconnectIntegration\", {\n integration: integrationName || humanize(integration),\n })}\n onClick={() => setIsDisconnectAlertOpen(true)}\n {...secondaryButtonProps}\n />\n )}\n </div>\n ) : (\n <div>\n <Tooltip disabled={!isConnectDisabled} {...connectTooltipProps}>\n <span>\n {(connectPath || connectUrl || onConnect) && (\n <Button\n data-cy=\"connect-button\"\n disabled={isConnectDisabled}\n href={connectUrl}\n to={connectPath}\n label={t(\"neetoIntegrations.common.connectIntegration\", {\n integration: integrationName || humanize(integration),\n })}\n onClick={onConnect}\n {...buttonProps}\n />\n )}\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n </div>\n <DisconnectAlert\n {...{ isDisconnecting, onClose, onDisconnect }}\n isOpen={isDisconnectAlertOpen}\n message={\n disconnectMessage ||\n t(`settings.integrations.${integration}.disconnect.message`)\n }\n title={\n disconnectTitle ||\n t(`settings.integrations.${integration}.disconnect.title`)\n }\n />\n </>\n )\n);\n\nexport default Manage;\n"],"names":["Manage","withT","_ref","t","_ref$title","title","_ref$description","description","_ref$integration","integration","_ref$isDisconnectAler","isDisconnectAlertOpen","_ref$setIsDisconnectA","setIsDisconnectAlertOpen","noop","_ref$isDisconnecting","isDisconnecting","_ref$onConnect","onConnect","undefined","_ref$onDisconnect","onDisconnect","_ref$onClose","onClose","_ref$Icon","Icon","_ref$isConnected","isConnected","_ref$connectPath","connectPath","_ref$connectUrl","connectUrl","_ref$helpDocUrl","helpDocUrl","_ref$managePath","managePath","_ref$manageUrl","manageUrl","_ref$integrationName","integrationName","_ref$disconnectMessag","disconnectMessage","_ref$disconnectTitle","disconnectTitle","_ref$isConnectDisable","isConnectDisabled","_ref$connectTooltipPr","connectTooltipProps","_ref$buttonProps","buttonProps","_ref$secondaryButtonP","secondaryButtonProps","_jsxs","_Fragment","children","_jsx","className","size","Typography","style","weight","Check","classNames","Trans","i18nKey","components","helpLink","Button","href","target","values","humanize","_objectSpread","to","label","onClick","Tooltip","disabled","DisconnectAlert","isOpen","message","concat"],"mappings":";;;;;;;;;;;;;;;;;AASA,IAAMA,MAAM,GAAGC,KAAK,CAClB,UAAAC,IAAA,EAAA;AAAA,EAAA,IACEC,CAAC,GAAAD,IAAA,CAADC,CAAC;IAAAC,UAAA,GAAAF,IAAA,CACDG,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IAAAE,gBAAA,GAAAJ,IAAA,CACVK,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAAE,gBAAA,GAAAN,IAAA,CAChBO,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAAE,qBAAA,GAAAR,IAAA,CAChBS,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAAAE,qBAAA,GAAAV,IAAA,CAC7BW,wBAAwB;AAAxBA,IAAAA,wBAAwB,GAAAD,qBAAA,KAAGE,KAAAA,CAAAA,GAAAA,IAAI,GAAAF,qBAAA;IAAAG,oBAAA,GAAAb,IAAA,CAC/Bc,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA;IAAAE,cAAA,GAAAf,IAAA,CACvBgB,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAGE,KAAAA,CAAAA,GAAAA,SAAS,GAAAF,cAAA;IAAAG,iBAAA,GAAAlB,IAAA,CACrBmB,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAGD,KAAAA,CAAAA,GAAAA,SAAS,GAAAC,iBAAA;IAAAE,YAAA,GAAApB,IAAA,CACxBqB,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAGR,KAAAA,CAAAA,GAAAA,IAAI,GAAAQ,YAAA;IAAAE,SAAA,GAAAtB,IAAA,CACduB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,SAAA;IAAAE,gBAAA,GAAAxB,IAAA,CACXyB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA;IAAAE,gBAAA,GAAA1B,IAAA,CACnB2B,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAAE,eAAA,GAAA5B,IAAA,CAChB6B,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,eAAA;IAAAE,eAAA,GAAA9B,IAAA,CACf+B,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,eAAA;IAAAE,eAAA,GAAAhC,IAAA,CACfiC,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,eAAA;IAAAE,cAAA,GAAAlC,IAAA,CACfmC,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAE,oBAAA,GAAApC,IAAA,CACdqC,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,oBAAA;IAAAE,qBAAA,GAAAtC,IAAA,CACpBuC,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAE,oBAAA,GAAAxC,IAAA,CACtByC,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,oBAAA;IAAAE,qBAAA,GAAA1C,IAAA,CACpB2C,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAAAE,qBAAA,GAAA5C,IAAA,CACzB6C,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAE,gBAAA,GAAA9C,IAAA,CAC1B+C,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,gBAAA;IAAAE,qBAAA,GAAAhD,IAAA,CAChBiD,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;EAAA,oBAEzBE,IAAA,CAAAC,QAAA,EAAA;AAAAC,IAAAA,QAAA,gBACEC,GAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,0BAA0B;AAAAF,MAAAA,QAAA,eACvCF,IAAA,CAAA,KAAA,EAAA;AAAKI,QAAAA,SAAS,EAAC,gFAAgF;AAAAF,QAAAA,QAAA,EAC5F7B,CAAAA,IAAI,iBAAI8B,GAAA,CAAC9B,IAAI,EAAA;AAAC+B,UAAAA,SAAS,EAAC,wBAAwB;AAACC,UAAAA,IAAI,EAAE;SAAK,CAAC,eAC9DL,IAAA,CAAA,KAAA,EAAA;AAAKI,UAAAA,SAAS,EAAC,WAAW;AAAAF,UAAAA,QAAA,gBACxBF,IAAA,CAAA,KAAA,EAAA;AAAKI,YAAAA,SAAS,EAAC,6BAA6B;YAAAF,QAAA,EAAA,cAC1CC,GAAA,CAACG,UAAU,EAAA;AACTF,cAAAA,SAAS,EAAC,+BAA+B;AACzCG,cAAAA,KAAK,EAAC,IAAI;AACVC,cAAAA,MAAM,EAAC,UAAU;AAAAN,cAAAA,QAAA,EAEhBjD;AAAK,aACI,CAAC,EACZsB,WAAW,iBACV4B,GAAA,CAAA,KAAA,EAAA;AAAKC,cAAAA,SAAS,EAAC,wGAAwG;cAAAF,QAAA,eACrHC,GAAA,CAACM,KAAK,EAAA;AAACJ,gBAAAA,IAAI,EAAE;eAAK;AAAC,aAChB,CACN;AAAA,WACE,CAAC,eACNF,GAAA,CAACG,UAAU,EAAA;AACTC,YAAAA,KAAK,EAAC,OAAO;AACbC,YAAAA,MAAM,EAAC,QAAQ;AACfJ,YAAAA,SAAS,EAAEM,UAAU,CAAC,wBAAwB,EAAE;AAC9C,cAAA,WAAW,EAAEnC;AACf,aAAC,CAAE;AAAA2B,YAAAA,QAAA,EAEF/C;AAAW,WACF,CAAC,EACZ0B,UAAU,iBACTsB,GAAA,CAACG,UAAU,EAAA;AACTF,YAAAA,SAAS,EAAC,wBAAwB;AAClCG,YAAAA,KAAK,EAAC,OAAO;AACbC,YAAAA,MAAM,EAAC,QAAQ;YAAAN,QAAA,eAEfC,GAAA,CAACQ,KAAK,EAAA;AACJC,cAAAA,OAAO,EAAC,qCAAqC;AAC7CC,cAAAA,UAAU,EAAE;gBACVC,QAAQ,eACNX,GAAA,CAACY,MAAM,EAAA;AAACC,kBAAAA,IAAI,EAAEnC,UAAW;AAAC0B,kBAAAA,KAAK,EAAC,MAAM;AAACU,kBAAAA,MAAM,EAAC;iBAAU;eAE1D;AACFC,cAAAA,MAAM,EAAE;AACN7D,gBAAAA,WAAW,EAAE8B,eAAe,IAAIgC,QAAQ,CAAC9D,WAAW;AACtD;aACD;AAAC,WACQ,CACb;AAAA,SACE,CAAC,EACLkB,WAAW,gBACVyB,IAAA,CAAA,KAAA,EAAA;AAAKI,UAAAA,SAAS,EAAC,WAAW;UAAAF,QAAA,EAAA,CACvB,CAACnB,UAAU,IAAIE,SAAS,kBACvBkB,GAAA,CAACY,MAAM,EAAAK,aAAA,CAAA;AACL,YAAA,SAAA,EAAQ,eAAe;AACvBJ,YAAAA,IAAI,EAAE/B,SAAU;AAChBgC,YAAAA,MAAM,EAAEhC,SAAS,GAAG,QAAQ,GAAG,OAAQ;AACvCoC,YAAAA,EAAE,EAAEtC,UAAW;AACfuC,YAAAA,KAAK,EAAEvE,CAAC,CAAC,4CAA4C,EAAE;AACrDM,cAAAA,WAAW,EAAE8B,eAAe,IAAIgC,QAAQ,CAAC9D,WAAW;aACrD;WACGwC,EAAAA,WAAW,CAChB,CACF,EACA5B,YAAY,iBACXkC,GAAA,CAACY,MAAM,EAAAK,aAAA,CAAA;AACL,YAAA,SAAA,EAAQ,mBAAmB;AAC3Bb,YAAAA,KAAK,EAAC,WAAW;AACjBe,YAAAA,KAAK,EAAEvE,CAAC,CAAC,gDAAgD,EAAE;AACzDM,cAAAA,WAAW,EAAE8B,eAAe,IAAIgC,QAAQ,CAAC9D,WAAW;AACtD,aAAC,CAAE;YACHkE,OAAO,EAAE,SAATA,OAAOA,GAAA;cAAA,OAAQ9D,wBAAwB,CAAC,IAAI,CAAC;AAAA;WACzCsC,EAAAA,oBAAoB,CACzB,CACF;SACE,CAAC,gBAENI,GAAA,CAAA,KAAA,EAAA;AAAAD,UAAAA,QAAA,eACEC,GAAA,CAACqB,OAAO,EAAAJ,aAAA,CAAAA,aAAA,CAAA;AAACK,YAAAA,QAAQ,EAAE,CAAChC;AAAkB,WAAA,EAAKE,mBAAmB,CAAA,EAAA,EAAA,EAAA;AAAAO,YAAAA,QAAA,eAC5DC,GAAA,CAAA,MAAA,EAAA;AAAAD,cAAAA,QAAA,EACG,CAACzB,WAAW,IAAIE,UAAU,IAAIb,SAAS,kBACtCqC,GAAA,CAACY,MAAM,EAAAK,aAAA,CAAA;AACL,gBAAA,SAAA,EAAQ,gBAAgB;AACxBK,gBAAAA,QAAQ,EAAEhC,iBAAkB;AAC5BuB,gBAAAA,IAAI,EAAErC,UAAW;AACjB0C,gBAAAA,EAAE,EAAE5C,WAAY;AAChB6C,gBAAAA,KAAK,EAAEvE,CAAC,CAAC,6CAA6C,EAAE;AACtDM,kBAAAA,WAAW,EAAE8B,eAAe,IAAIgC,QAAQ,CAAC9D,WAAW;AACtD,iBAAC,CAAE;AACHkE,gBAAAA,OAAO,EAAEzD;AAAU,eAAA,EACf+B,WAAW,CAChB;aAEC;WACC,CAAA;AAAC,SACP,CACN;OACE;AAAC,KACH,CAAC,eACNM,GAAA,CAACuB,eAAe,EAAA;AACR9D,MAAAA,eAAe,EAAfA,eAAe;AAAEO,MAAAA,OAAO,EAAPA,OAAO;AAAEF,MAAAA,YAAY,EAAZA,YAAY;AAC5C0D,MAAAA,MAAM,EAAEpE,qBAAsB;MAC9BqE,OAAO,EACLvC,iBAAiB,IACjBtC,CAAC,0BAAA8E,MAAA,CAA0BxE,WAAW,EAAA,qBAAA,CAAqB,CAC5D;MACDJ,KAAK,EACHsC,eAAe,IACfxC,CAAC,0BAAA8E,MAAA,CAA0BxE,WAAW,EAAmB,mBAAA,CAAA;AAC1D,KACF,CAAC;AAAA,GACF,CAAC;AAAA,CAEP;;;;"}
1
+ {"version":3,"file":"Manage.js","sources":["../app/javascript/src/components/commons/Manage.jsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { humanize, noop } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Button, Tooltip, Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport DisconnectAlert from \"components/DisconnectAlert\";\n\nconst Manage = withT(\n ({\n t,\n title = \"\",\n description = \"\",\n integration = \"\",\n isDisconnectAlertOpen = false,\n setIsDisconnectAlertOpen = noop,\n isDisconnecting = false,\n onConnect = undefined,\n onDisconnect = undefined,\n onClose = noop,\n Icon = null,\n isConnected = false,\n connectPath = \"\",\n connectUrl = \"\",\n helpDocUrl = \"\",\n managePath = \"\",\n manageUrl = \"\",\n integrationName = \"\",\n disconnectMessage = \"\",\n disconnectTitle = \"\",\n isConnectDisabled = false,\n connectTooltipProps = null,\n buttonProps = {},\n secondaryButtonProps = {},\n }) => (\n <>\n <div className=\"mx-auto w-full max-w-3xl\">\n <div className=\"neeto-ui-border-gray-300 neeto-ui-rounded-lg my-6 w-full border\">\n <div className=\"space-y-4 p-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={48} />}\n <div className=\"space-y-2\">\n <div className=\"flex items-center space-x-4\">\n <Typography\n className=\"neeto-ui-text-gray-800 mb-0.5\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n {isConnected && (\n <div className=\"neeto-ui-bg-success-500 neeto-ui-text-white neeto-ui-rounded-full flex items-center justify-center p-1\">\n <Check size={24} />\n </div>\n )}\n </div>\n <Typography\n style=\"body1\"\n weight=\"normal\"\n className={classNames(\"neeto-ui-text-gray-800\", {\n \"break-all\": isConnected,\n })}\n >\n {description}\n </Typography>\n {helpDocUrl && (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n style=\"body2\"\n weight=\"normal\"\n >\n <Trans\n i18nKey=\"neetoIntegrations.common.helpDocUrl\"\n components={{\n helpLink: (\n <Button\n href={helpDocUrl}\n style=\"link\"\n target=\"_blank\"\n />\n ),\n }}\n values={{\n integration: integrationName || humanize(integration),\n }}\n />\n </Typography>\n )}\n </div>\n </div>\n {isConnected ? (\n <div className=\"neeto-ui-bg-gray-50 neeto-ui-rounded-lg sticky bottom-0 w-full space-y-2 rounded-t-none p-4 md:space-x-2\">\n {(managePath || manageUrl) && (\n <Button\n data-cy=\"manage-button\"\n href={manageUrl}\n target={manageUrl ? \"_blank\" : \"_self\"}\n to={managePath}\n label={t(\"neetoIntegrations.common.manageIntegration\", {\n integration: integrationName || humanize(integration),\n })}\n {...buttonProps}\n />\n )}\n {onDisconnect && (\n <Button\n data-cy=\"disconnect-button\"\n style=\"secondary\"\n label={t(\"neetoIntegrations.common.disconnectIntegration\", {\n integration: integrationName || humanize(integration),\n })}\n onClick={() => setIsDisconnectAlertOpen(true)}\n {...secondaryButtonProps}\n />\n )}\n </div>\n ) : (\n <Tooltip disabled={!isConnectDisabled} {...connectTooltipProps}>\n {(connectPath || connectUrl || onConnect) && (\n <div className=\"neeto-ui-bg-gray-50 neeto-ui-rounded-lg sticky bottom-0 w-full rounded-t-none p-4\">\n <Button\n data-cy=\"connect-button\"\n disabled={isConnectDisabled}\n href={connectUrl}\n to={connectPath}\n label={t(\"neetoIntegrations.common.connectIntegration\", {\n integration: integrationName || humanize(integration),\n })}\n onClick={onConnect}\n {...buttonProps}\n />\n </div>\n )}\n </Tooltip>\n )}\n </div>\n </div>\n <DisconnectAlert\n {...{ isDisconnecting, onClose, onDisconnect }}\n isOpen={isDisconnectAlertOpen}\n message={\n disconnectMessage ||\n t(`settings.integrations.${integration}.disconnect.message`)\n }\n title={\n disconnectTitle ||\n t(`settings.integrations.${integration}.disconnect.title`)\n }\n />\n </>\n )\n);\n\nexport default Manage;\n"],"names":["Manage","withT","_ref","t","_ref$title","title","_ref$description","description","_ref$integration","integration","_ref$isDisconnectAler","isDisconnectAlertOpen","_ref$setIsDisconnectA","setIsDisconnectAlertOpen","noop","_ref$isDisconnecting","isDisconnecting","_ref$onConnect","onConnect","undefined","_ref$onDisconnect","onDisconnect","_ref$onClose","onClose","_ref$Icon","Icon","_ref$isConnected","isConnected","_ref$connectPath","connectPath","_ref$connectUrl","connectUrl","_ref$helpDocUrl","helpDocUrl","_ref$managePath","managePath","_ref$manageUrl","manageUrl","_ref$integrationName","integrationName","_ref$disconnectMessag","disconnectMessage","_ref$disconnectTitle","disconnectTitle","_ref$isConnectDisable","isConnectDisabled","_ref$connectTooltipPr","connectTooltipProps","_ref$buttonProps","buttonProps","_ref$secondaryButtonP","secondaryButtonProps","_jsxs","_Fragment","children","_jsx","className","size","Typography","style","weight","Check","classNames","Trans","i18nKey","components","helpLink","Button","href","target","values","humanize","_objectSpread","to","label","onClick","Tooltip","disabled","DisconnectAlert","isOpen","message","concat"],"mappings":"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"}
package/dist/Twilio.js CHANGED
@@ -1,13 +1,14 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { useEffect, useRef } from 'react';
3
3
  import { keysToSnakeCase, noop, _findBy } from '@bigbinary/neeto-cist';
4
+ import CardLayout from '@bigbinary/neeto-molecules/CardLayout';
4
5
  import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
5
6
  import FormikForm from '@bigbinary/neetoui/formik/Form';
6
7
  import { prop, equals } from 'ramda';
7
8
  import { useTranslation } from 'react-i18next';
8
9
  import Input from '@bigbinary/neetoui/formik/Input';
9
10
  import Select from '@bigbinary/neetoui/formik/Select';
10
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
11
+ import { jsxs, jsx } from 'react/jsx-runtime';
11
12
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
12
13
  import { useMutationWithInvalidation, useStateWithDependency } from '@bigbinary/neeto-commons-frontend/react-utils';
13
14
  import { useQuery } from '@tanstack/react-query';
@@ -254,7 +255,7 @@ var Twilio = function Twilio(_ref) {
254
255
  }), values) || isLoading;
255
256
  };
256
257
  return /*#__PURE__*/jsx(FormikForm, {
257
- className: "mx-auto flex w-full max-w-md flex-col p-5",
258
+ className: "w-full",
258
259
  formikProps: {
259
260
  enableReinitialize: true,
260
261
  validationSchema: buildTwilioConfigurationValidationSchema(!!phoneNumbers),
@@ -263,26 +264,24 @@ var Twilio = function Twilio(_ref) {
263
264
  onSubmit: handleSubmit
264
265
  },
265
266
  children: function children(formikProps) {
266
- return /*#__PURE__*/jsxs(Fragment, {
267
- children: [/*#__PURE__*/jsx(ConfigurationForm, {
267
+ return /*#__PURE__*/jsx(CardLayout, {
268
+ actionBlock: /*#__PURE__*/jsx(ActionBlock, {
269
+ isSubmitting: isSubmitting,
270
+ cancelButtonProps: {
271
+ onClick: onClose
272
+ },
273
+ submitButtonProps: {
274
+ label: phoneNumberOptions ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
275
+ disabled: isSubmitDisabled(formikProps.values) || isSubmitting,
276
+ loading: isSubmitting || isPhoneNumbersLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
277
+ }
278
+ }),
279
+ children: /*#__PURE__*/jsx(ConfigurationForm, {
268
280
  formikProps: formikProps,
269
281
  initialFocusRef: initialFocusRef,
270
282
  phoneNumberOptions: phoneNumberOptions,
271
283
  selectedPhoneNumber: selectedPhoneNumber
272
- }), /*#__PURE__*/jsx("div", {
273
- className: "mt-8",
274
- children: /*#__PURE__*/jsx(ActionBlock, {
275
- isSubmitting: isSubmitting,
276
- cancelButtonProps: {
277
- onClick: onClose
278
- },
279
- submitButtonProps: {
280
- label: phoneNumberOptions ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
281
- disabled: isSubmitDisabled(formikProps.values) || isSubmitting,
282
- loading: isSubmitting || isPhoneNumbersLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
283
- }
284
- })
285
- })]
284
+ })
286
285
  });
287
286
  }
288
287
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Twilio.js","sources":["../app/javascript/src/components/Integrations/Twilio/Form.jsx","../app/javascript/src/apis/twilio.js","../app/javascript/src/hooks/reactQuery/useTwilioApi.js","../app/javascript/src/components/Integrations/Twilio/hooks/useTwilio.js","../app/javascript/src/components/Integrations/Twilio/utils.js","../app/javascript/src/components/Integrations/Twilio/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { Input, Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ConfigurationForm = ({\n phoneNumberOptions,\n selectedPhoneNumber = null,\n initialFocusRef = null,\n isUsingOverlay = false,\n formikProps = {},\n}) => {\n const { t } = useTranslation();\n const { setFieldValue, setValues, errors, values, initialValues } =\n formikProps;\n\n useEffect(() => {\n selectedPhoneNumber &&\n setFieldValue(\"twilioPhoneNumber\", selectedPhoneNumber);\n }, [selectedPhoneNumber, initialValues]);\n\n return (\n <div className=\"flex w-full flex-col gap-y-4\">\n <div className=\"flex w-full\">\n <Input\n required\n autoFocus={!isUsingOverlay}\n data-testid=\"integrations-twilio-sid\"\n label={t(\"neetoIntegrations.twilio.sid\")}\n name=\"twilioSid\"\n ref={initialFocusRef}\n />\n </div>\n <div className=\"flex w-full\">\n <Input\n required\n data-testid=\"integrations-twilio-auth-token\"\n label={t(\"neetoIntegrations.twilio.authToken\")}\n name=\"twilioAuthToken\"\n />\n </div>\n {phoneNumberOptions && (\n <div className=\"flex w-full\">\n <Select\n error={errors.twilioPhoneNumber?.value}\n label={t(\"neetoIntegrations.common.phNo\")}\n name=\"twilioPhoneNumber\"\n options={phoneNumberOptions}\n size=\"large\"\n onChange={selected =>\n setValues({ ...values, twilioPhoneNumber: selected })\n }\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default ConfigurationForm;\n","import axios from \"axios\";\n\nimport { TWILIO_CONFIGURATION_BASE_URL } from \"src/constants/urls\";\n\nconst fetchTwilioSmsConfiguration = integrable =>\n axios.get(TWILIO_CONFIGURATION_BASE_URL, { params: integrable });\n\nconst removeTwilioConfiguration = () =>\n axios.delete(TWILIO_CONFIGURATION_BASE_URL);\n\nconst getTwilioPhoneNumbers = data =>\n axios.get(`${TWILIO_CONFIGURATION_BASE_URL}/new`, {\n params: data,\n });\n\nconst createTwilioConfiguration = (payload, integrable) =>\n axios.post(TWILIO_CONFIGURATION_BASE_URL, { ...payload, ...integrable });\n\nconst twilioApi = {\n fetchTwilioSmsConfiguration,\n removeTwilioConfiguration,\n getTwilioPhoneNumbers,\n createTwilioConfiguration,\n};\n\nexport default twilioApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { keysToSnakeCase } from \"neetocist\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport twilioApi from \"apis/twilio\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTwilioSmsConfiguration = ({ integrable }) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.TWILIO_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n queryFn: () => twilioApi.fetchTwilioSmsConfiguration(integrable),\n select: response => {\n const smsConfiguration = response.smsConfiguration;\n\n return {\n twilioSid: smsConfiguration?.twilioSid ?? \"\",\n twilioAuthToken: smsConfiguration?.twilioAuthToken ?? \"\",\n twilioPhoneNumber: smsConfiguration?.twilioPhoneNumber ?? \"\",\n };\n },\n });\n\nconst useFetchTwilioPhoneNumbers = ({ credentials, formRef }) =>\n useQuery({\n queryKey: [QUERY_KEYS.TWILIO_PHONE_NUMBERS, { credentials }],\n queryFn: () =>\n twilioApi.getTwilioPhoneNumbers(keysToSnakeCase(credentials)),\n enabled:\n !!credentials?.twilio_sid ||\n !!credentials?.twilioSid ||\n !!formRef?.current?.values?.twilioSid ||\n !!formRef?.current?.values?.twilioAuthToken,\n select: prop(\"phoneNumbers\"),\n retry: false,\n });\n\nconst useCreateTwilioConfiguration = ({ integrable }) =>\n useMutationWithInvalidation(\n payload => twilioApi.createTwilioConfiguration(payload, integrable),\n {\n keysToInvalidate: [\n [\n QUERY_KEYS.TWILIO_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n ],\n }\n );\n\nexport {\n useCreateTwilioConfiguration,\n useFetchTwilioPhoneNumbers,\n useFetchTwilioSmsConfiguration,\n};\n","import { noop } from \"neetocist\";\nimport { useStateWithDependency } from \"neetocommons/react-utils\";\n\nimport {\n useFetchTwilioPhoneNumbers,\n useCreateTwilioConfiguration,\n useFetchTwilioSmsConfiguration,\n} from \"hooks/reactQuery/useTwilioApi\";\n\nconst useTwilio = ({ onConnect = noop, formRef = null, integrable = null }) => {\n const { data: configuration = {}, isLoading: isConfigurationLoading } =\n useFetchTwilioSmsConfiguration({ integrable });\n const [credentials, setCredentials] = useStateWithDependency(configuration);\n const { data: phoneNumbers, isLoading: isPhoneNumbersLoading } =\n useFetchTwilioPhoneNumbers({ credentials, formRef });\n\n const { mutate: saveConfiguration, isPending: isSubmitting } =\n useCreateTwilioConfiguration({ integrable });\n\n const handleSubmit = values => {\n const payload = {\n twilio_sid: values.twilioSid,\n twilio_auth_token: values.twilioAuthToken,\n twilio_phone_number_sid: values.twilioPhoneNumber?.value,\n };\n\n if (!phoneNumbers && !configuration?.twilioPhoneNumber) {\n setCredentials(payload);\n\n return;\n }\n\n saveConfiguration(payload, { onSuccess: onConnect });\n };\n\n return {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n };\n};\n\nexport default useTwilio;\n","import i18next from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildTwilioConfigurationValidationSchema = isTwilioPhoneRequired =>\n yup.object().shape({\n twilioSid: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.sidReq\")),\n twilioAuthToken: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.authTokenReq\")),\n twilioPhoneNumber: isTwilioPhoneRequired\n ? yup.object().shape({\n label: yup.string(),\n value: yup\n .string()\n .required(\n i18next.t(\"neetoIntegrations.twilio.validations.phNumReq\")\n ),\n })\n : null,\n });\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers?.map(({ phoneNumber, sid }) => ({\n label: phoneNumber,\n value: sid,\n }));\n","import { useRef } from \"react\";\n\nimport { noop, _findBy } from \"neetocist\";\nimport { ActionBlock, Form as FormikFormWrapper } from \"neetoui/formik\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Form from \"./Form\";\nimport useTwilio from \"./hooks/useTwilio\";\nimport {\n buildPhoneNumberOptions,\n buildTwilioConfigurationValidationSchema,\n} from \"./utils\";\n\nconst Twilio = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef();\n const formRef = useRef();\n\n const {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n } = useTwilio({ onConnect, formRef, integrable });\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const selectedPhoneNumber = _findBy(\n { label: configuration?.twilioPhoneNumber },\n phoneNumberOptions\n );\n\n const isLoading = isPhoneNumbersLoading || isConfigurationLoading;\n\n const isSubmitDisabled = values =>\n equals(\n { ...configuration, twilioPhoneNumber: selectedPhoneNumber },\n values\n ) || isLoading;\n\n return (\n <FormikFormWrapper\n className=\"mx-auto flex w-full max-w-md flex-col p-5\"\n formikProps={{\n enableReinitialize: true,\n validationSchema: buildTwilioConfigurationValidationSchema(\n !!phoneNumbers\n ),\n initialValues: configuration,\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {formikProps => (\n <>\n <Form\n {...{\n formikProps,\n initialFocusRef,\n phoneNumberOptions,\n selectedPhoneNumber,\n }}\n />\n <div className=\"mt-8\">\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: phoneNumberOptions\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\"),\n disabled: isSubmitDisabled(formikProps.values) || isSubmitting,\n loading:\n isSubmitting ||\n (isPhoneNumbersLoading && !configuration?.twilioAuthToken),\n }}\n />\n </div>\n </>\n )}\n </FormikFormWrapper>\n );\n};\n\nexport default Twilio;\n"],"names":["ConfigurationForm","_ref","_errors$twilioPhoneNu","phoneNumberOptions","_ref$selectedPhoneNum","selectedPhoneNumber","_ref$initialFocusRef","initialFocusRef","_ref$isUsingOverlay","isUsingOverlay","_ref$formikProps","formikProps","_useTranslation","useTranslation","t","setFieldValue","setValues","errors","values","initialValues","useEffect","_jsxs","className","children","_jsx","Input","required","autoFocus","label","name","ref","Select","error","twilioPhoneNumber","value","options","size","onChange","selected","_objectSpread","fetchTwilioSmsConfiguration","integrable","axios","get","TWILIO_CONFIGURATION_BASE_URL","params","removeTwilioConfiguration","getTwilioPhoneNumbers","data","concat","createTwilioConfiguration","payload","post","twilioApi","useFetchTwilioSmsConfiguration","useQuery","queryKey","QUERY_KEYS","TWILIO_SMS_CONFIGURATION","integrableType","integrableId","queryFn","select","response","_smsConfiguration$twi","_smsConfiguration$twi2","_smsConfiguration$twi3","smsConfiguration","twilioSid","twilioAuthToken","useFetchTwilioPhoneNumbers","_ref2","_formRef$current","_formRef$current2","credentials","formRef","TWILIO_PHONE_NUMBERS","keysToSnakeCase","enabled","twilio_sid","current","prop","retry","useCreateTwilioConfiguration","_ref3","useMutationWithInvalidation","keysToInvalidate","useTwilio","_ref$onConnect","onConnect","noop","_ref$formRef","_ref$integrable","_useFetchTwilioSmsCon","_useFetchTwilioSmsCon2","configuration","isConfigurationLoading","isLoading","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","_slicedToArray","setCredentials","_useFetchTwilioPhoneN","phoneNumbers","isPhoneNumbersLoading","_useCreateTwilioConfi","saveConfiguration","mutate","isSubmitting","isPending","handleSubmit","_values$twilioPhoneNu","twilio_auth_token","twilio_phone_number_sid","onSuccess","buildTwilioConfigurationValidationSchema","isTwilioPhoneRequired","yup","object","shape","string","i18next","buildPhoneNumberOptions","map","phoneNumber","sid","Twilio","_ref$onClose","onClose","useRef","_useTwilio","_findBy","isSubmitDisabled","equals","FormikFormWrapper","enableReinitialize","validationSchema","innerRef","onSubmit","_Fragment","Form","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","loading"],"mappings":"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"}
1
+ {"version":3,"file":"Twilio.js","sources":["../app/javascript/src/components/Integrations/Twilio/Form.jsx","../app/javascript/src/apis/twilio.js","../app/javascript/src/hooks/reactQuery/useTwilioApi.js","../app/javascript/src/components/Integrations/Twilio/hooks/useTwilio.js","../app/javascript/src/components/Integrations/Twilio/utils.js","../app/javascript/src/components/Integrations/Twilio/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { Input, Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ConfigurationForm = ({\n phoneNumberOptions,\n selectedPhoneNumber = null,\n initialFocusRef = null,\n isUsingOverlay = false,\n formikProps = {},\n}) => {\n const { t } = useTranslation();\n const { setFieldValue, setValues, errors, values, initialValues } =\n formikProps;\n\n useEffect(() => {\n selectedPhoneNumber &&\n setFieldValue(\"twilioPhoneNumber\", selectedPhoneNumber);\n }, [selectedPhoneNumber, initialValues]);\n\n return (\n <div className=\"flex w-full flex-col gap-y-4\">\n <div className=\"flex w-full\">\n <Input\n required\n autoFocus={!isUsingOverlay}\n data-testid=\"integrations-twilio-sid\"\n label={t(\"neetoIntegrations.twilio.sid\")}\n name=\"twilioSid\"\n ref={initialFocusRef}\n />\n </div>\n <div className=\"flex w-full\">\n <Input\n required\n data-testid=\"integrations-twilio-auth-token\"\n label={t(\"neetoIntegrations.twilio.authToken\")}\n name=\"twilioAuthToken\"\n />\n </div>\n {phoneNumberOptions && (\n <div className=\"flex w-full\">\n <Select\n error={errors.twilioPhoneNumber?.value}\n label={t(\"neetoIntegrations.common.phNo\")}\n name=\"twilioPhoneNumber\"\n options={phoneNumberOptions}\n size=\"large\"\n onChange={selected =>\n setValues({ ...values, twilioPhoneNumber: selected })\n }\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default ConfigurationForm;\n","import axios from \"axios\";\n\nimport { TWILIO_CONFIGURATION_BASE_URL } from \"src/constants/urls\";\n\nconst fetchTwilioSmsConfiguration = integrable =>\n axios.get(TWILIO_CONFIGURATION_BASE_URL, { params: integrable });\n\nconst removeTwilioConfiguration = () =>\n axios.delete(TWILIO_CONFIGURATION_BASE_URL);\n\nconst getTwilioPhoneNumbers = data =>\n axios.get(`${TWILIO_CONFIGURATION_BASE_URL}/new`, {\n params: data,\n });\n\nconst createTwilioConfiguration = (payload, integrable) =>\n axios.post(TWILIO_CONFIGURATION_BASE_URL, { ...payload, ...integrable });\n\nconst twilioApi = {\n fetchTwilioSmsConfiguration,\n removeTwilioConfiguration,\n getTwilioPhoneNumbers,\n createTwilioConfiguration,\n};\n\nexport default twilioApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { keysToSnakeCase } from \"neetocist\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport twilioApi from \"apis/twilio\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTwilioSmsConfiguration = ({ integrable }) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.TWILIO_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n queryFn: () => twilioApi.fetchTwilioSmsConfiguration(integrable),\n select: response => {\n const smsConfiguration = response.smsConfiguration;\n\n return {\n twilioSid: smsConfiguration?.twilioSid ?? \"\",\n twilioAuthToken: smsConfiguration?.twilioAuthToken ?? \"\",\n twilioPhoneNumber: smsConfiguration?.twilioPhoneNumber ?? \"\",\n };\n },\n });\n\nconst useFetchTwilioPhoneNumbers = ({ credentials, formRef }) =>\n useQuery({\n queryKey: [QUERY_KEYS.TWILIO_PHONE_NUMBERS, { credentials }],\n queryFn: () =>\n twilioApi.getTwilioPhoneNumbers(keysToSnakeCase(credentials)),\n enabled:\n !!credentials?.twilio_sid ||\n !!credentials?.twilioSid ||\n !!formRef?.current?.values?.twilioSid ||\n !!formRef?.current?.values?.twilioAuthToken,\n select: prop(\"phoneNumbers\"),\n retry: false,\n });\n\nconst useCreateTwilioConfiguration = ({ integrable }) =>\n useMutationWithInvalidation(\n payload => twilioApi.createTwilioConfiguration(payload, integrable),\n {\n keysToInvalidate: [\n [\n QUERY_KEYS.TWILIO_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n ],\n }\n );\n\nexport {\n useCreateTwilioConfiguration,\n useFetchTwilioPhoneNumbers,\n useFetchTwilioSmsConfiguration,\n};\n","import { noop } from \"neetocist\";\nimport { useStateWithDependency } from \"neetocommons/react-utils\";\n\nimport {\n useFetchTwilioPhoneNumbers,\n useCreateTwilioConfiguration,\n useFetchTwilioSmsConfiguration,\n} from \"hooks/reactQuery/useTwilioApi\";\n\nconst useTwilio = ({ onConnect = noop, formRef = null, integrable = null }) => {\n const { data: configuration = {}, isLoading: isConfigurationLoading } =\n useFetchTwilioSmsConfiguration({ integrable });\n const [credentials, setCredentials] = useStateWithDependency(configuration);\n const { data: phoneNumbers, isLoading: isPhoneNumbersLoading } =\n useFetchTwilioPhoneNumbers({ credentials, formRef });\n\n const { mutate: saveConfiguration, isPending: isSubmitting } =\n useCreateTwilioConfiguration({ integrable });\n\n const handleSubmit = values => {\n const payload = {\n twilio_sid: values.twilioSid,\n twilio_auth_token: values.twilioAuthToken,\n twilio_phone_number_sid: values.twilioPhoneNumber?.value,\n };\n\n if (!phoneNumbers && !configuration?.twilioPhoneNumber) {\n setCredentials(payload);\n\n return;\n }\n\n saveConfiguration(payload, { onSuccess: onConnect });\n };\n\n return {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n };\n};\n\nexport default useTwilio;\n","import i18next from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildTwilioConfigurationValidationSchema = isTwilioPhoneRequired =>\n yup.object().shape({\n twilioSid: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.sidReq\")),\n twilioAuthToken: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.authTokenReq\")),\n twilioPhoneNumber: isTwilioPhoneRequired\n ? yup.object().shape({\n label: yup.string(),\n value: yup\n .string()\n .required(\n i18next.t(\"neetoIntegrations.twilio.validations.phNumReq\")\n ),\n })\n : null,\n });\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers?.map(({ phoneNumber, sid }) => ({\n label: phoneNumber,\n value: sid,\n }));\n","import { useRef } from \"react\";\n\nimport { noop, _findBy } from \"neetocist\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { ActionBlock, Form as FormikFormWrapper } from \"neetoui/formik\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Form from \"./Form\";\nimport useTwilio from \"./hooks/useTwilio\";\nimport {\n buildPhoneNumberOptions,\n buildTwilioConfigurationValidationSchema,\n} from \"./utils\";\n\nconst Twilio = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef();\n const formRef = useRef();\n\n const {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n } = useTwilio({ onConnect, formRef, integrable });\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const selectedPhoneNumber = _findBy(\n { label: configuration?.twilioPhoneNumber },\n phoneNumberOptions\n );\n\n const isLoading = isPhoneNumbersLoading || isConfigurationLoading;\n\n const isSubmitDisabled = values =>\n equals(\n { ...configuration, twilioPhoneNumber: selectedPhoneNumber },\n values\n ) || isLoading;\n\n return (\n <FormikFormWrapper\n className=\"w-full\"\n formikProps={{\n enableReinitialize: true,\n validationSchema: buildTwilioConfigurationValidationSchema(\n !!phoneNumbers\n ),\n initialValues: configuration,\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {formikProps => (\n <CardLayout\n actionBlock={\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: phoneNumberOptions\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\"),\n disabled: isSubmitDisabled(formikProps.values) || isSubmitting,\n loading:\n isSubmitting ||\n (isPhoneNumbersLoading && !configuration?.twilioAuthToken),\n }}\n />\n }\n >\n <Form\n {...{\n formikProps,\n initialFocusRef,\n phoneNumberOptions,\n selectedPhoneNumber,\n }}\n />\n </CardLayout>\n )}\n </FormikFormWrapper>\n );\n};\n\nexport default Twilio;\n"],"names":["ConfigurationForm","_ref","_errors$twilioPhoneNu","phoneNumberOptions","_ref$selectedPhoneNum","selectedPhoneNumber","_ref$initialFocusRef","initialFocusRef","_ref$isUsingOverlay","isUsingOverlay","_ref$formikProps","formikProps","_useTranslation","useTranslation","t","setFieldValue","setValues","errors","values","initialValues","useEffect","_jsxs","className","children","_jsx","Input","required","autoFocus","label","name","ref","Select","error","twilioPhoneNumber","value","options","size","onChange","selected","_objectSpread","fetchTwilioSmsConfiguration","integrable","axios","get","TWILIO_CONFIGURATION_BASE_URL","params","removeTwilioConfiguration","getTwilioPhoneNumbers","data","concat","createTwilioConfiguration","payload","post","twilioApi","useFetchTwilioSmsConfiguration","useQuery","queryKey","QUERY_KEYS","TWILIO_SMS_CONFIGURATION","integrableType","integrableId","queryFn","select","response","_smsConfiguration$twi","_smsConfiguration$twi2","_smsConfiguration$twi3","smsConfiguration","twilioSid","twilioAuthToken","useFetchTwilioPhoneNumbers","_ref2","_formRef$current","_formRef$current2","credentials","formRef","TWILIO_PHONE_NUMBERS","keysToSnakeCase","enabled","twilio_sid","current","prop","retry","useCreateTwilioConfiguration","_ref3","useMutationWithInvalidation","keysToInvalidate","useTwilio","_ref$onConnect","onConnect","noop","_ref$formRef","_ref$integrable","_useFetchTwilioSmsCon","_useFetchTwilioSmsCon2","configuration","isConfigurationLoading","isLoading","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","_slicedToArray","setCredentials","_useFetchTwilioPhoneN","phoneNumbers","isPhoneNumbersLoading","_useCreateTwilioConfi","saveConfiguration","mutate","isSubmitting","isPending","handleSubmit","_values$twilioPhoneNu","twilio_auth_token","twilio_phone_number_sid","onSuccess","buildTwilioConfigurationValidationSchema","isTwilioPhoneRequired","yup","object","shape","string","i18next","buildPhoneNumberOptions","map","phoneNumber","sid","Twilio","_ref$onClose","onClose","useRef","_useTwilio","_findBy","isSubmitDisabled","equals","FormikFormWrapper","enableReinitialize","validationSchema","innerRef","onSubmit","CardLayout","actionBlock","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","loading","Form"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAMjB;AAAA,EAAA,IAAAC,qBAAA;AAAA,EAAA,IALJC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;IAAAC,qBAAA,GAAAH,IAAA,CAClBI,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAE,oBAAA,GAAAL,IAAA,CAC1BM,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,oBAAA;IAAAE,mBAAA,GAAAP,IAAA,CACtBQ,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,mBAAA;IAAAE,gBAAA,GAAAT,IAAA,CACtBU,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,gBAAA;AAEhB,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAQC,aAAa,GACnBJ,WAAW,CADLI,aAAa;IAAEC,SAAS,GAC9BL,WAAW,CADUK,SAAS;IAAEC,MAAM,GACtCN,WAAW,CADqBM,MAAM;IAAEC,MAAM,GAC9CP,WAAW,CAD6BO,MAAM;IAAEC,aAAa,GAC7DR,WAAW,CADqCQ,aAAa;AAG/DC,EAAAA,SAAS,CAAC,YAAM;AACdf,IAAAA,mBAAmB,IACjBU,aAAa,CAAC,mBAAmB,EAAEV,mBAAmB,CAAC;AAC3D,GAAC,EAAE,CAACA,mBAAmB,EAAEc,aAAa,CAAC,CAAC;AAExC,EAAA,oBACEE,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,8BAA8B;AAAAC,IAAAA,QAAA,gBAC3CC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,aAAa;MAAAC,QAAA,eAC1BC,GAAA,CAACC,KAAK,EAAA;QACJC,QAAQ,EAAA,IAAA;QACRC,SAAS,EAAE,CAAClB,cAAe;AAC3B,QAAA,aAAA,EAAY,yBAAyB;AACrCmB,QAAAA,KAAK,EAAEd,CAAC,CAAC,8BAA8B,CAAE;AACzCe,QAAAA,IAAI,EAAC,WAAW;AAChBC,QAAAA,GAAG,EAAEvB;OACN;KACE,CAAC,eACNiB,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,aAAa;MAAAC,QAAA,eAC1BC,GAAA,CAACC,KAAK,EAAA;QACJC,QAAQ,EAAA,IAAA;AACR,QAAA,aAAA,EAAY,gCAAgC;AAC5CE,QAAAA,KAAK,EAAEd,CAAC,CAAC,oCAAoC,CAAE;AAC/Ce,QAAAA,IAAI,EAAC;OACN;AAAC,KACC,CAAC,EACL1B,kBAAkB,iBACjBqB,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,aAAa;MAAAC,QAAA,eAC1BC,GAAA,CAACO,MAAM,EAAA;QACLC,KAAK,EAAA,CAAA9B,qBAAA,GAAEe,MAAM,CAACgB,iBAAiB,MAAA,IAAA,IAAA/B,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAxBA,qBAAA,CAA0BgC,KAAM;AACvCN,QAAAA,KAAK,EAAEd,CAAC,CAAC,+BAA+B,CAAE;AAC1Ce,QAAAA,IAAI,EAAC,mBAAmB;AACxBM,QAAAA,OAAO,EAAEhC,kBAAmB;AAC5BiC,QAAAA,IAAI,EAAC,OAAO;AACZC,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,QAAQ,EAAA;AAAA,UAAA,OAChBtB,SAAS,CAAAuB,eAAA,CAAAA,eAAA,KAAMrB,MAAM,CAAA,EAAA,EAAA,EAAA;AAAEe,YAAAA,iBAAiB,EAAEK;AAAQ,WAAA,CAAE,CAAC;AAAA;OAExD;AAAC,KACC,CACN;AAAA,GACE,CAAC;AAEV,CAAC;;;;ACrDD,IAAME,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAGC,UAAU,EAAA;AAAA,EAAA,OAC5CC,KAAK,CAACC,GAAG,CAACC,6BAA6B,EAAE;AAAEC,IAAAA,MAAM,EAAEJ;AAAW,GAAC,CAAC;AAAA,CAAA;AAElE,IAAMK,yBAAyB,GAAG,SAA5BA,yBAAyBA,GAAA;AAAA,EAAA,OAC7BJ,KAAK,CAAA,QAAA,CAAO,CAACE,6BAA6B,CAAC;AAAA,CAAA;AAE7C,IAAMG,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,IAAI,EAAA;AAAA,EAAA,OAChCN,KAAK,CAACC,GAAG,IAAAM,MAAA,CAAIL,6BAA6B,EAAQ,MAAA,CAAA,EAAA;AAChDC,IAAAA,MAAM,EAAEG;AACV,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAME,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,OAAO,EAAEV,UAAU,EAAA;AAAA,EAAA,OACpDC,KAAK,CAACU,IAAI,CAACR,6BAA6B,EAAAL,eAAA,CAAAA,eAAA,CAAOY,EAAAA,EAAAA,OAAO,CAAKV,EAAAA,UAAU,CAAE,CAAC;AAAA,CAAA;AAE1E,IAAMY,SAAS,GAAG;AAChBb,EAAAA,2BAA2B,EAA3BA,2BAA2B;AAC3BM,EAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBC,EAAAA,qBAAqB,EAArBA,qBAAqB;AACrBG,EAAAA,yBAAyB,EAAzBA;AACF,CAAC;;ACfD,IAAMI,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAArD,IAAA,EAAA;AAAA,EAAA,IAAMwC,UAAU,GAAAxC,IAAA,CAAVwC,UAAU;AAAA,EAAA,OAClDc,QAAQ,CAAC;IACPC,QAAQ,EAAE,CACRC,UAAU,CAACC,wBAAwB,EACnCjB,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEkB,cAAc,EAC1BlB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEmB,YAAY,CACzB;IACDC,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQR,SAAS,CAACb,2BAA2B,CAACC,UAAU,CAAC;AAAA,KAAA;AAChEqB,IAAAA,MAAM,EAAE,SAARA,MAAMA,CAAEC,QAAQ,EAAI;AAAA,MAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;AAClB,MAAA,IAAMC,gBAAgB,GAAGJ,QAAQ,CAACI,gBAAgB;MAElD,OAAO;AACLC,QAAAA,SAAS,EAAAJ,CAAAA,qBAAA,GAAEG,gBAAgB,aAAhBA,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,gBAAgB,CAAEC,SAAS,MAAAJ,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,EAAE;AAC5CK,QAAAA,eAAe,EAAAJ,CAAAA,sBAAA,GAAEE,gBAAgB,aAAhBA,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,gBAAgB,CAAEE,eAAe,MAAAJ,IAAAA,IAAAA,sBAAA,KAAAA,KAAAA,CAAAA,GAAAA,sBAAA,GAAI,EAAE;AACxDhC,QAAAA,iBAAiB,EAAAiC,CAAAA,sBAAA,GAAEC,gBAAgB,aAAhBA,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,gBAAgB,CAAElC,iBAAiB,MAAA,IAAA,IAAAiC,sBAAA,KAAA,KAAA,CAAA,GAAAA,sBAAA,GAAI;OAC3D;AACH;AACF,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAMI,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAAC,KAAA,EAAA;EAAA,IAAAC,gBAAA,EAAAC,iBAAA;AAAA,EAAA,IAAMC,WAAW,GAAAH,KAAA,CAAXG,WAAW;IAAEC,OAAO,GAAAJ,KAAA,CAAPI,OAAO;AAAA,EAAA,OACxDpB,QAAQ,CAAC;AACPC,IAAAA,QAAQ,EAAE,CAACC,UAAU,CAACmB,oBAAoB,EAAE;AAAEF,MAAAA,WAAW,EAAXA;AAAY,KAAC,CAAC;IAC5Db,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OACLR,SAAS,CAACN,qBAAqB,CAAC8B,eAAe,CAACH,WAAW,CAAC,CAAC;AAAA,KAAA;AAC/DI,IAAAA,OAAO,EACL,CAAC,EAACJ,WAAW,aAAXA,WAAW,KAAA,KAAA,CAAA,IAAXA,WAAW,CAAEK,UAAU,CAAA,IACzB,CAAC,EAACL,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,IAAAA,WAAW,CAAEN,SAAS,CACxB,IAAA,CAAC,EAACO,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAH,gBAAA,GAAPG,OAAO,CAAEK,OAAO,cAAAR,gBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,gBAAA,GAAhBA,gBAAA,CAAkBtD,MAAM,MAAA,IAAA,IAAAsD,gBAAA,KAAxBA,KAAAA,CAAAA,IAAAA,gBAAA,CAA0BJ,SAAS,KACrC,CAAC,EAACO,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAAF,KAAAA,CAAAA,IAAAA,CAAAA,iBAAA,GAAPE,OAAO,CAAEK,OAAO,MAAAP,IAAAA,IAAAA,iBAAA,gBAAAA,iBAAA,GAAhBA,iBAAA,CAAkBvD,MAAM,MAAAuD,IAAAA,IAAAA,iBAAA,KAAxBA,KAAAA,CAAAA,IAAAA,iBAAA,CAA0BJ,eAAe,CAAA;AAC7CP,IAAAA,MAAM,EAAEmB,IAAI,CAAC,cAAc,CAAC;AAC5BC,IAAAA,KAAK,EAAE;AACT,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAM3C,UAAU,GAAA2C,KAAA,CAAV3C,UAAU;EAAA,OAChD4C,2BAA2B,CACzB,UAAAlC,OAAO,EAAA;AAAA,IAAA,OAAIE,SAAS,CAACH,yBAAyB,CAACC,OAAO,EAAEV,UAAU,CAAC;GACnE,EAAA;IACE6C,gBAAgB,EAAE,CAChB,CACE7B,UAAU,CAACC,wBAAwB,EACnCjB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEkB,cAAc,EAC1BlB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEmB,YAAY,CACzB;AAEL,GACF,CAAC;AAAA,CAAA;;AC5CH,IAAM2B,SAAS,GAAG,SAAZA,SAASA,CAAAtF,IAAA,EAAgE;AAAA,EAAA,IAAAuF,cAAA,GAAAvF,IAAA,CAA1DwF,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAGE,KAAAA,CAAAA,GAAAA,IAAI,GAAAF,cAAA;IAAAG,YAAA,GAAA1F,IAAA,CAAE0E,OAAO;AAAPA,IAAAA,OAAO,GAAAgB,YAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,YAAA;IAAAC,eAAA,GAAA3F,IAAA,CAAEwC,UAAU;AAAVA,IAAAA,UAAU,GAAAmD,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA;EACtE,IAAAC,qBAAA,GACEvC,8BAA8B,CAAC;AAAEb,MAAAA,UAAU,EAAVA;AAAW,KAAC,CAAC;IAAAqD,sBAAA,GAAAD,qBAAA,CADxC7C,IAAI;AAAE+C,IAAAA,aAAa,GAAAD,sBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,sBAAA;IAAaE,sBAAsB,GAAAH,qBAAA,CAAjCI,SAAS;AAE3C,EAAA,IAAAC,qBAAA,GAAsCC,sBAAsB,CAACJ,aAAa,CAAC;IAAAK,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AAApExB,IAAAA,WAAW,GAAA0B,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,cAAc,GAAAF,sBAAA,CAAA,CAAA,CAAA;EAClC,IAAAG,qBAAA,GACEjC,0BAA0B,CAAC;AAAEI,MAAAA,WAAW,EAAXA,WAAW;AAAEC,MAAAA,OAAO,EAAPA;AAAQ,KAAC,CAAC;IADxC6B,YAAY,GAAAD,qBAAA,CAAlBvD,IAAI;IAA2ByD,qBAAqB,GAAAF,qBAAA,CAAhCN,SAAS;EAGrC,IAAAS,qBAAA,GACEvB,4BAA4B,CAAC;AAAE1C,MAAAA,UAAU,EAAVA;AAAW,KAAC,CAAC;IAD9BkE,iBAAiB,GAAAD,qBAAA,CAAzBE,MAAM;IAAgCC,YAAY,GAAAH,qBAAA,CAAvBI,SAAS;AAG5C,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAG7F,MAAM,EAAI;AAAA,IAAA,IAAA8F,qBAAA;AAC7B,IAAA,IAAM7D,OAAO,GAAG;MACd4B,UAAU,EAAE7D,MAAM,CAACkD,SAAS;MAC5B6C,iBAAiB,EAAE/F,MAAM,CAACmD,eAAe;MACzC6C,uBAAuB,EAAA,CAAAF,qBAAA,GAAE9F,MAAM,CAACe,iBAAiB,MAAA+E,IAAAA,IAAAA,qBAAA,KAAxBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA0B9E;KACpD;IAED,IAAI,CAACsE,YAAY,IAAI,EAACT,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,IAAAA,aAAa,CAAE9D,iBAAiB,CAAE,EAAA;MACtDqE,cAAc,CAACnD,OAAO,CAAC;AAEvB,MAAA;AACF;IAEAwD,iBAAiB,CAACxD,OAAO,EAAE;AAAEgE,MAAAA,SAAS,EAAE1B;AAAU,KAAC,CAAC;GACrD;EAED,OAAO;AACLsB,IAAAA,YAAY,EAAZA,YAAY;AACZP,IAAAA,YAAY,EAAZA,YAAY;AACZR,IAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBS,IAAAA,qBAAqB,EAArBA,qBAAqB;AACrBI,IAAAA,YAAY,EAAZA,YAAY;AACZd,IAAAA,aAAa,EAAbA;GACD;AACH,CAAC;;ACxCM,IAAMqB,wCAAwC,GAAG,SAA3CA,wCAAwCA,CAAGC,qBAAqB,EAAA;AAAA,EAAA,OAC3EC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;AACjBpD,IAAAA,SAAS,EAAEkD,GAAG,CACXG,MAAM,EAAE,CACR/F,QAAQ,CAACgG,OAAO,CAAC5G,CAAC,CAAC,6CAA6C,CAAC,CAAC;AACrEuD,IAAAA,eAAe,EAAEiD,GAAG,CACjBG,MAAM,EAAE,CACR/F,QAAQ,CAACgG,OAAO,CAAC5G,CAAC,CAAC,mDAAmD,CAAC,CAAC;IAC3EmB,iBAAiB,EAAEoF,qBAAqB,GACpCC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;AACjB5F,MAAAA,KAAK,EAAE0F,GAAG,CAACG,MAAM,EAAE;AACnBvF,MAAAA,KAAK,EAAEoF,GAAG,CACPG,MAAM,EAAE,CACR/F,QAAQ,CACPgG,OAAO,CAAC5G,CAAC,CAAC,+CAA+C,CAC3D;AACJ,KAAC,CAAC,GACF;AACN,GAAC,CAAC;AAAA,CAAA;AAEG,IAAM6G,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGnB,YAAY,EAAA;EAAA,OACjDA,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEoB,GAAG,CAAC,UAAA3H,IAAA,EAAA;AAAA,IAAA,IAAG4H,WAAW,GAAA5H,IAAA,CAAX4H,WAAW;MAAEC,GAAG,GAAA7H,IAAA,CAAH6H,GAAG;IAAA,OAAQ;AAC3ClG,MAAAA,KAAK,EAAEiG,WAAW;AAClB3F,MAAAA,KAAK,EAAE4F;KACR;AAAA,GAAC,CAAC;AAAA,CAAA;;;;ACZL,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAA9H,IAAA,EAAgE;AAAA,EAAA,IAAA2F,eAAA,GAAA3F,IAAA,CAA1DwC,UAAU;AAAVA,IAAAA,UAAU,GAAAmD,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA;IAAAoC,YAAA,GAAA/H,IAAA,CAAEgI,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAGtC,KAAAA,CAAAA,GAAAA,IAAI,GAAAsC,YAAA;IAAAxC,cAAA,GAAAvF,IAAA,CAAEwF,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAGE,KAAAA,CAAAA,GAAAA,IAAI,GAAAF,cAAA;AACnE,EAAA,IAAA5E,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAMP,eAAe,GAAG2H,MAAM,EAAE;AAChC,EAAA,IAAMvD,OAAO,GAAGuD,MAAM,EAAE;EAExB,IAAAC,UAAA,GAOI5C,SAAS,CAAC;AAAEE,MAAAA,SAAS,EAATA,SAAS;AAAEd,MAAAA,OAAO,EAAPA,OAAO;AAAElC,MAAAA,UAAU,EAAVA;AAAW,KAAC,CAAC;IAN/CsE,YAAY,GAAAoB,UAAA,CAAZpB,YAAY;IACZP,YAAY,GAAA2B,UAAA,CAAZ3B,YAAY;IACZR,sBAAsB,GAAAmC,UAAA,CAAtBnC,sBAAsB;IACtBS,qBAAqB,GAAA0B,UAAA,CAArB1B,qBAAqB;IACrBI,YAAY,GAAAsB,UAAA,CAAZtB,YAAY;IACZd,aAAa,GAAAoC,UAAA,CAAbpC,aAAa;AAGf,EAAA,IAAM5F,kBAAkB,GAAGwH,uBAAuB,CAACnB,YAAY,CAAC;EAEhE,IAAMnG,mBAAmB,GAAG+H,OAAO,CACjC;AAAExG,IAAAA,KAAK,EAAEmE,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAE9D;GAAmB,EAC3C9B,kBACF,CAAC;AAED,EAAA,IAAM8F,SAAS,GAAGQ,qBAAqB,IAAIT,sBAAsB;AAEjE,EAAA,IAAMqC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGnH,MAAM,EAAA;AAAA,IAAA,OAC7BoH,MAAM,CAAA/F,aAAA,CAAAA,aAAA,KACCwD,aAAa,CAAA,EAAA,EAAA,EAAA;AAAE9D,MAAAA,iBAAiB,EAAE5B;KACvCa,CAAAA,EAAAA,MACF,CAAC,IAAI+E,SAAS;AAAA,GAAA;EAEhB,oBACEzE,GAAA,CAAC+G,UAAiB,EAAA;AAChBjH,IAAAA,SAAS,EAAC,QAAQ;AAClBX,IAAAA,WAAW,EAAE;AACX6H,MAAAA,kBAAkB,EAAE,IAAI;AACxBC,MAAAA,gBAAgB,EAAErB,wCAAwC,CACxD,CAAC,CAACZ,YACJ,CAAC;AACDrF,MAAAA,aAAa,EAAE4E,aAAa;AAC5B2C,MAAAA,QAAQ,EAAE/D,OAAO;AACjBgE,MAAAA,QAAQ,EAAE5B;KACV;IAAAxF,QAAA,EAED,SAAAA,QAAAA,CAAAZ,WAAW,EAAA;MAAA,oBACVa,GAAA,CAACoH,UAAU,EAAA;QACTC,WAAW,eACTrH,GAAA,CAACsH,WAAW,EAAA;AACJjC,UAAAA,YAAY,EAAZA,YAAY;AAClBkC,UAAAA,iBAAiB,EAAE;AAAEC,YAAAA,OAAO,EAAEf;WAAU;AACxCgB,UAAAA,iBAAiB,EAAE;YACjBrH,KAAK,EAAEzB,kBAAkB,GACrBW,CAAC,CAAC,sCAAsC,CAAC,GACzCA,CAAC,CAAC,iCAAiC,CAAC;YACxCoI,QAAQ,EAAEb,gBAAgB,CAAC1H,WAAW,CAACO,MAAM,CAAC,IAAI2F,YAAY;AAC9DsC,YAAAA,OAAO,EACLtC,YAAY,IACXJ,qBAAqB,IAAI,EAACV,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,IAAbA,aAAa,CAAE1B,eAAe;AAC7D;AAAE,SACH,CACF;QAAA9C,QAAA,eAEDC,GAAA,CAAC4H,iBAAI,EAAA;AAEDzI,UAAAA,WAAW,EAAXA,WAAW;AACXJ,UAAAA,eAAe,EAAfA,eAAe;AACfJ,UAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBE,UAAAA,mBAAmB,EAAnBA;SAEH;AAAC,OACQ,CAAC;AAAA;AACd,GACgB,CAAC;AAExB;;;;"}