@verii/components-organizations-registrar 1.0.0 → 1.0.2

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 (73) hide show
  1. package/dist/chunks/HolderWalletSelection.BYj3foq0.js +167 -0
  2. package/dist/chunks/HolderWalletSelection.BYj3foq0.js.map +1 -0
  3. package/dist/chunks/HolderWalletSelection.BvPFTrTh.js +166 -0
  4. package/dist/chunks/HolderWalletSelection.BvPFTrTh.js.map +1 -0
  5. package/dist/chunks/{ServicesEdit.BnnqC203.js → ServicesEdit.CrmS66vz.js} +75 -50
  6. package/dist/chunks/ServicesEdit.CrmS66vz.js.map +1 -0
  7. package/dist/chunks/{ServicesEdit.DDgjS5kU.js → ServicesEdit.DFxcohIF.js} +75 -50
  8. package/dist/chunks/ServicesEdit.DFxcohIF.js.map +1 -0
  9. package/dist/chunks/{SetInvitationService.PxAGwk-I.js → SetInvitationService.BeU7-IBo.js} +3 -3
  10. package/dist/chunks/{SetInvitationService.PxAGwk-I.js.map → SetInvitationService.BeU7-IBo.js.map} +1 -1
  11. package/dist/chunks/{SetInvitationService.ZT5lP003.js → SetInvitationService.DtVH6OkH.js} +3 -3
  12. package/dist/chunks/{SetInvitationService.ZT5lP003.js.map → SetInvitationService.DtVH6OkH.js.map} +1 -1
  13. package/dist/chunks/{ValidateTextInput.D5kgjulG.js → ValidateTextInput.1Fv1GPyZ.js} +2 -2
  14. package/dist/chunks/{ValidateTextInput.D5kgjulG.js.map → ValidateTextInput.1Fv1GPyZ.js.map} +1 -1
  15. package/dist/chunks/{ValidateTextInput.DEBaVB1L.js → ValidateTextInput.DPruGgff.js} +2 -2
  16. package/dist/chunks/{ValidateTextInput.DEBaVB1L.js.map → ValidateTextInput.DPruGgff.js.map} +1 -1
  17. package/dist/chunks/{index.Cmn4FlUL.js → index.BDTIIDNe.js} +251 -114
  18. package/dist/chunks/index.BDTIIDNe.js.map +1 -0
  19. package/dist/chunks/{index.YjnxLFjk.js → index.CaxYybSL.js} +115 -56
  20. package/dist/chunks/index.CaxYybSL.js.map +1 -0
  21. package/dist/chunks/{index.DIizFYFZ.js → index.Cjk52g3G.js} +115 -56
  22. package/dist/chunks/index.Cjk52g3G.js.map +1 -0
  23. package/dist/chunks/{index.DMWKdmxs.js → index.DFMQZMWE.js} +12 -2
  24. package/dist/chunks/index.DFMQZMWE.js.map +1 -0
  25. package/dist/chunks/{index.DND10PiY.js → index.DTlm8AhC.js} +11 -1
  26. package/dist/chunks/index.DTlm8AhC.js.map +1 -0
  27. package/dist/chunks/{index.CYCWawJT.js → index.DmF-wFBs.js} +249 -112
  28. package/dist/chunks/index.DmF-wFBs.js.map +1 -0
  29. package/dist/chunks/{serviceTypes.D7c4G5GY.js → serviceTypes.BWVBK33e.js} +52 -31
  30. package/dist/chunks/serviceTypes.BWVBK33e.js.map +1 -0
  31. package/dist/chunks/{serviceTypes.CxLXtDIT.js → serviceTypes.BbBTNXB9.js} +52 -31
  32. package/dist/chunks/serviceTypes.BbBTNXB9.js.map +1 -0
  33. package/dist/components/common.cjs +1 -1
  34. package/dist/components/common.js +1 -1
  35. package/dist/components/invitations.cjs +1 -1
  36. package/dist/components/invitations.js +1 -1
  37. package/dist/components/organizations.cjs +1 -1
  38. package/dist/components/organizations.js +1 -1
  39. package/dist/components/services.cjs +1 -1
  40. package/dist/components/services.js +1 -1
  41. package/dist/index.cjs +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/pages/invitations.cjs +5 -6
  44. package/dist/pages/invitations.cjs.map +1 -1
  45. package/dist/pages/invitations.js +4 -5
  46. package/dist/pages/invitations.js.map +1 -1
  47. package/dist/pages/organizations.cjs +11 -16
  48. package/dist/pages/organizations.cjs.map +1 -1
  49. package/dist/pages/organizations.js +10 -15
  50. package/dist/pages/organizations.js.map +1 -1
  51. package/dist/pages/services.cjs +27 -30
  52. package/dist/pages/services.cjs.map +1 -1
  53. package/dist/pages/services.js +26 -29
  54. package/dist/pages/services.js.map +1 -1
  55. package/package.json +3 -3
  56. package/dist/chunks/ServicesEdit.BnnqC203.js.map +0 -1
  57. package/dist/chunks/ServicesEdit.DDgjS5kU.js.map +0 -1
  58. package/dist/chunks/index.CYCWawJT.js.map +0 -1
  59. package/dist/chunks/index.Cmn4FlUL.js.map +0 -1
  60. package/dist/chunks/index.DIizFYFZ.js.map +0 -1
  61. package/dist/chunks/index.DMWKdmxs.js.map +0 -1
  62. package/dist/chunks/index.DND10PiY.js.map +0 -1
  63. package/dist/chunks/index.YjnxLFjk.js.map +0 -1
  64. package/dist/chunks/invitations.BI_Qo5Ca.js +0 -10
  65. package/dist/chunks/invitations.BI_Qo5Ca.js.map +0 -1
  66. package/dist/chunks/invitations.BbK6WSY8.js +0 -11
  67. package/dist/chunks/invitations.BbK6WSY8.js.map +0 -1
  68. package/dist/chunks/serviceTypes.CxLXtDIT.js.map +0 -1
  69. package/dist/chunks/serviceTypes.D7c4G5GY.js.map +0 -1
  70. package/dist/chunks/useIsIssuingInspection.C76mY_wb.js +0 -14
  71. package/dist/chunks/useIsIssuingInspection.C76mY_wb.js.map +0 -1
  72. package/dist/chunks/useIsIssuingInspection.DavhBs5B.js +0 -13
  73. package/dist/chunks/useIsIssuingInspection.DavhBs5B.js.map +0 -1
@@ -0,0 +1,167 @@
1
+ import { useMemo } from "react";
2
+ import { s as serviceTypesIssuingOrInspection, C as CREDENTIAL_TYPES_IDS } from "./serviceTypes.BbBTNXB9.js";
3
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
4
+ import { Stack } from "@mui/material";
5
+ import { TextInput, required, FormDataConsumer, SelectArrayInput } from "react-admin";
6
+ import PropTypes from "prop-types";
7
+ import { C as CustomImageInput } from "./index.CaxYybSL.js";
8
+ import { c as validateServiceEndpoint } from "./CreateOrganizationUtils.Xq78HHkP.js";
9
+ const useIsIssuingInspection = (serviceType) => {
10
+ const serviceGroup = useMemo(() => {
11
+ const isIssuingOrInspection = !!serviceType && serviceTypesIssuingOrInspection.some((service) => service.id === serviceType.id);
12
+ const isCAO = !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_CREDENTIAL_AGENT_OPERATOR;
13
+ const isWebWallet = !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_WEB_WALLET_PROVIDER;
14
+ const isHolderWallet = !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_HOLDER_APP_PROVIDER;
15
+ const isWallet = isWebWallet || isHolderWallet;
16
+ return { isIssuingOrInspection, isCAO, isWallet, isHolderWallet, isWebWallet };
17
+ }, [serviceType]);
18
+ return { ...serviceGroup };
19
+ };
20
+ const WebWalletSelection = ({ inProgress }) => {
21
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
22
+ /* @__PURE__ */ jsx(
23
+ TextInput,
24
+ {
25
+ source: "name",
26
+ label: "Webwallet Name",
27
+ validate: [required("Webwallet Name field is required")],
28
+ disabled: inProgress
29
+ }
30
+ ),
31
+ /* @__PURE__ */ jsx(Stack, { flexDirection: "row", gap: 1.75, mb: 3.5, mt: 1, children: /* @__PURE__ */ jsx(FormDataConsumer, { children: ({ formData }) => /* @__PURE__ */ jsx(
32
+ CustomImageInput,
33
+ {
34
+ label: false,
35
+ labelText: "Webwallet Logo URL",
36
+ editMode: !formData?.logoUrl,
37
+ imgSrc: formData?.logoUrl,
38
+ orientation: "vertical",
39
+ style: { flexDirection: "row", minHeight: "240px" },
40
+ addTo: "",
41
+ isRequired: true
42
+ }
43
+ ) }) }),
44
+ /* @__PURE__ */ jsx(
45
+ TextInput,
46
+ {
47
+ source: "serviceEndpoint",
48
+ label: "Webwallet URL",
49
+ validate: [required("Webwallet URL field is required"), ...validateServiceEndpoint],
50
+ parse: (value) => value?.trim() ?? "",
51
+ disabled: inProgress
52
+ }
53
+ ),
54
+ /* @__PURE__ */ jsx(
55
+ SelectArrayInput,
56
+ {
57
+ source: "supportedExchangeProtocols",
58
+ choices: [
59
+ { id: "VN_API", name: "VN_API" },
60
+ { id: "OPENID4VC", name: "OPENID4VC" }
61
+ ],
62
+ label: "Supported Exchange Protocols",
63
+ validate: [required("Supported Exchange Protocols field is required")]
64
+ }
65
+ )
66
+ ] });
67
+ };
68
+ WebWalletSelection.propTypes = {
69
+ inProgress: PropTypes.bool.isRequired
70
+ };
71
+ const HolderWalletSelection = ({ inProgress }) => {
72
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
73
+ /* @__PURE__ */ jsx(
74
+ TextInput,
75
+ {
76
+ source: "name",
77
+ label: "App Wallet Name",
78
+ validate: [required("App Wallet Name field is required")],
79
+ disabled: inProgress
80
+ }
81
+ ),
82
+ /* @__PURE__ */ jsx(Stack, { flexDirection: "row", gap: 1.75, mb: 3.5, mt: 1, children: /* @__PURE__ */ jsx(FormDataConsumer, { children: ({ formData }) => /* @__PURE__ */ jsx(
83
+ CustomImageInput,
84
+ {
85
+ label: false,
86
+ labelText: "App Wallet Logo URL",
87
+ editMode: !formData?.logoUrl,
88
+ orientation: "vertical",
89
+ style: { flexDirection: "row", minHeight: "240px" },
90
+ addTo: "",
91
+ imgSrc: formData?.logoUrl,
92
+ isRequired: true
93
+ }
94
+ ) }) }),
95
+ /* @__PURE__ */ jsx(
96
+ TextInput,
97
+ {
98
+ source: "serviceEndpoint",
99
+ label: "App landing page",
100
+ validate: [required("App landing page field is required"), ...validateServiceEndpoint],
101
+ parse: (value) => value?.trim() ?? "",
102
+ disabled: inProgress
103
+ }
104
+ ),
105
+ /* @__PURE__ */ jsx(
106
+ SelectArrayInput,
107
+ {
108
+ source: "supportedExchangeProtocols",
109
+ choices: [
110
+ { id: "VN_API", name: "VN_API" },
111
+ { id: "OPENID4VC", name: "OPENID4VC" }
112
+ ],
113
+ label: "Supported Exchange Protocols",
114
+ validate: [required("Supported Exchange Protocols field is required")]
115
+ }
116
+ ),
117
+ /* @__PURE__ */ jsx(
118
+ TextInput,
119
+ {
120
+ source: "playStoreUrl",
121
+ label: "Play Store URL",
122
+ validate: [required("Play Store URL field is required"), ...validateServiceEndpoint],
123
+ parse: (value) => value?.trim() ?? "",
124
+ disabled: inProgress
125
+ }
126
+ ),
127
+ /* @__PURE__ */ jsx(
128
+ TextInput,
129
+ {
130
+ source: "googlePlayId",
131
+ label: "Google Play ID",
132
+ validate: [required("Google Play ID field is required")],
133
+ parse: (value) => value?.trim() ?? "",
134
+ disabled: inProgress
135
+ }
136
+ ),
137
+ /* @__PURE__ */ jsx(
138
+ TextInput,
139
+ {
140
+ source: "appleAppStoreUrl",
141
+ label: "Apple App Store URL",
142
+ validate: [required("Apple App Store URL field is required"), ...validateServiceEndpoint],
143
+ parse: (value) => value?.trim() ?? "",
144
+ disabled: inProgress
145
+ }
146
+ ),
147
+ /* @__PURE__ */ jsx(
148
+ TextInput,
149
+ {
150
+ source: "appleAppId",
151
+ label: "Apple App ID",
152
+ validate: [required("Apple App ID field is required")],
153
+ parse: (value) => value?.trim() ?? "",
154
+ disabled: inProgress
155
+ }
156
+ )
157
+ ] });
158
+ };
159
+ HolderWalletSelection.propTypes = {
160
+ inProgress: PropTypes.bool.isRequired
161
+ };
162
+ export {
163
+ HolderWalletSelection as H,
164
+ WebWalletSelection as W,
165
+ useIsIssuingInspection as u
166
+ };
167
+ //# sourceMappingURL=HolderWalletSelection.BYj3foq0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HolderWalletSelection.BYj3foq0.js","sources":["../../src/pages/services/hooks/useIsIssuingInspection.js","../../src/pages/services/components/ServiceEndpointSelection/components/WebWalletSelection.jsx","../../src/pages/services/components/ServiceEndpointSelection/components/HolderWalletSelection.jsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { serviceTypesIssuingOrInspection, CREDENTIAL_TYPES_IDS } from '@/utils/serviceTypes.js';\n\nexport const useIsIssuingInspection = (serviceType) => {\n const serviceGroup = useMemo(() => {\n const isIssuingOrInspection =\n !!serviceType &&\n serviceTypesIssuingOrInspection.some((service) => service.id === serviceType.id);\n\n const isCAO =\n !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_CREDENTIAL_AGENT_OPERATOR;\n\n const isWebWallet =\n !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_WEB_WALLET_PROVIDER;\n\n const isHolderWallet =\n !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_HOLDER_APP_PROVIDER;\n\n const isWallet = isWebWallet || isHolderWallet;\n\n return { isIssuingOrInspection, isCAO, isWallet, isHolderWallet, isWebWallet };\n }, [serviceType]);\n\n return { ...serviceGroup };\n};\n\nexport default useIsIssuingInspection;\n","import { Stack } from '@mui/material';\nimport { TextInput, required, SelectArrayInput, FormDataConsumer } from 'react-admin';\nimport PropTypes from 'prop-types';\n\nimport CustomImageInput from '@/components/common/CustomImageInput/index.jsx';\nimport { validateServiceEndpoint } from '@/components/organizations/CreateOrganizationUtils.js';\n\nconst WebWalletSelection = ({ inProgress }) => {\n return (\n <>\n <TextInput\n source=\"name\"\n label=\"Webwallet Name\"\n validate={[required('Webwallet Name field is required')]}\n disabled={inProgress}\n />\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <FormDataConsumer>\n {/* eslint-disable-next-line complexity */}\n {({ formData }) => (\n <CustomImageInput\n label={false}\n labelText=\"Webwallet Logo URL\"\n editMode={!formData?.logoUrl}\n imgSrc={formData?.logoUrl}\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '240px' }}\n addTo=\"\"\n isRequired\n />\n )}\n </FormDataConsumer>\n </Stack>\n <TextInput\n source=\"serviceEndpoint\"\n label=\"Webwallet URL\"\n validate={[required('Webwallet URL field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <SelectArrayInput\n source=\"supportedExchangeProtocols\"\n choices={[\n { id: 'VN_API', name: 'VN_API' },\n { id: 'OPENID4VC', name: 'OPENID4VC' },\n ]}\n label=\"Supported Exchange Protocols\"\n validate={[required('Supported Exchange Protocols field is required')]}\n />\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nWebWalletSelection.propTypes = {\n inProgress: PropTypes.bool.isRequired,\n};\n\nexport default WebWalletSelection;\n","import { Stack } from '@mui/material';\nimport { TextInput, required, SelectArrayInput, FormDataConsumer } from 'react-admin';\nimport PropTypes from 'prop-types';\n\nimport CustomImageInput from '@/components/common/CustomImageInput/index.jsx';\nimport { validateServiceEndpoint } from '@/components/organizations/CreateOrganizationUtils.js';\n\nconst HolderWalletSelection = ({ inProgress }) => {\n return (\n <>\n <TextInput\n source=\"name\"\n label=\"App Wallet Name\"\n validate={[required('App Wallet Name field is required')]}\n disabled={inProgress}\n />\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <FormDataConsumer>\n {/* eslint-disable-next-line complexity */}\n {({ formData }) => (\n <CustomImageInput\n label={false}\n labelText=\"App Wallet Logo URL\"\n editMode={!formData?.logoUrl}\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '240px' }}\n addTo=\"\"\n imgSrc={formData?.logoUrl}\n isRequired\n />\n )}\n </FormDataConsumer>\n </Stack>\n <TextInput\n source=\"serviceEndpoint\"\n label=\"App landing page\"\n validate={[required('App landing page field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <SelectArrayInput\n source=\"supportedExchangeProtocols\"\n choices={[\n { id: 'VN_API', name: 'VN_API' },\n { id: 'OPENID4VC', name: 'OPENID4VC' },\n ]}\n label=\"Supported Exchange Protocols\"\n validate={[required('Supported Exchange Protocols field is required')]}\n />\n <TextInput\n source=\"playStoreUrl\"\n label=\"Play Store URL\"\n validate={[required('Play Store URL field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <TextInput\n source=\"googlePlayId\"\n label=\"Google Play ID\"\n validate={[required('Google Play ID field is required')]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <TextInput\n source=\"appleAppStoreUrl\"\n label=\"Apple App Store URL\"\n validate={[required('Apple App Store URL field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <TextInput\n source=\"appleAppId\"\n label=\"Apple App ID\"\n validate={[required('Apple App ID field is required')]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nHolderWalletSelection.propTypes = {\n inProgress: PropTypes.bool.isRequired,\n};\n\nexport default HolderWalletSelection;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ const React = require("react");
3
+ const serviceTypes = require("./serviceTypes.BWVBK33e.js");
4
+ const jsxRuntime = require("react/jsx-runtime");
5
+ const material = require("@mui/material");
6
+ const reactAdmin = require("react-admin");
7
+ const PropTypes = require("prop-types");
8
+ const index = require("./index.Cjk52g3G.js");
9
+ const CreateOrganizationUtils = require("./CreateOrganizationUtils.C5C_r3Zp.js");
10
+ const useIsIssuingInspection = (serviceType) => {
11
+ const serviceGroup = React.useMemo(() => {
12
+ const isIssuingOrInspection = !!serviceType && serviceTypes.serviceTypesIssuingOrInspection.some((service) => service.id === serviceType.id);
13
+ const isCAO = !!serviceType && serviceType.id === serviceTypes.CREDENTIAL_TYPES_IDS.VLC_CREDENTIAL_AGENT_OPERATOR;
14
+ const isWebWallet = !!serviceType && serviceType.id === serviceTypes.CREDENTIAL_TYPES_IDS.VLC_WEB_WALLET_PROVIDER;
15
+ const isHolderWallet = !!serviceType && serviceType.id === serviceTypes.CREDENTIAL_TYPES_IDS.VLC_HOLDER_APP_PROVIDER;
16
+ const isWallet = isWebWallet || isHolderWallet;
17
+ return { isIssuingOrInspection, isCAO, isWallet, isHolderWallet, isWebWallet };
18
+ }, [serviceType]);
19
+ return { ...serviceGroup };
20
+ };
21
+ const WebWalletSelection = ({ inProgress }) => {
22
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
23
+ /* @__PURE__ */ jsxRuntime.jsx(
24
+ reactAdmin.TextInput,
25
+ {
26
+ source: "name",
27
+ label: "Webwallet Name",
28
+ validate: [reactAdmin.required("Webwallet Name field is required")],
29
+ disabled: inProgress
30
+ }
31
+ ),
32
+ /* @__PURE__ */ jsxRuntime.jsx(material.Stack, { flexDirection: "row", gap: 1.75, mb: 3.5, mt: 1, children: /* @__PURE__ */ jsxRuntime.jsx(reactAdmin.FormDataConsumer, { children: ({ formData }) => /* @__PURE__ */ jsxRuntime.jsx(
33
+ index.CustomImageInput,
34
+ {
35
+ label: false,
36
+ labelText: "Webwallet Logo URL",
37
+ editMode: !formData?.logoUrl,
38
+ imgSrc: formData?.logoUrl,
39
+ orientation: "vertical",
40
+ style: { flexDirection: "row", minHeight: "240px" },
41
+ addTo: "",
42
+ isRequired: true
43
+ }
44
+ ) }) }),
45
+ /* @__PURE__ */ jsxRuntime.jsx(
46
+ reactAdmin.TextInput,
47
+ {
48
+ source: "serviceEndpoint",
49
+ label: "Webwallet URL",
50
+ validate: [reactAdmin.required("Webwallet URL field is required"), ...CreateOrganizationUtils.validateServiceEndpoint],
51
+ parse: (value) => value?.trim() ?? "",
52
+ disabled: inProgress
53
+ }
54
+ ),
55
+ /* @__PURE__ */ jsxRuntime.jsx(
56
+ reactAdmin.SelectArrayInput,
57
+ {
58
+ source: "supportedExchangeProtocols",
59
+ choices: [
60
+ { id: "VN_API", name: "VN_API" },
61
+ { id: "OPENID4VC", name: "OPENID4VC" }
62
+ ],
63
+ label: "Supported Exchange Protocols",
64
+ validate: [reactAdmin.required("Supported Exchange Protocols field is required")]
65
+ }
66
+ )
67
+ ] });
68
+ };
69
+ WebWalletSelection.propTypes = {
70
+ inProgress: PropTypes.bool.isRequired
71
+ };
72
+ const HolderWalletSelection = ({ inProgress }) => {
73
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
74
+ /* @__PURE__ */ jsxRuntime.jsx(
75
+ reactAdmin.TextInput,
76
+ {
77
+ source: "name",
78
+ label: "App Wallet Name",
79
+ validate: [reactAdmin.required("App Wallet Name field is required")],
80
+ disabled: inProgress
81
+ }
82
+ ),
83
+ /* @__PURE__ */ jsxRuntime.jsx(material.Stack, { flexDirection: "row", gap: 1.75, mb: 3.5, mt: 1, children: /* @__PURE__ */ jsxRuntime.jsx(reactAdmin.FormDataConsumer, { children: ({ formData }) => /* @__PURE__ */ jsxRuntime.jsx(
84
+ index.CustomImageInput,
85
+ {
86
+ label: false,
87
+ labelText: "App Wallet Logo URL",
88
+ editMode: !formData?.logoUrl,
89
+ orientation: "vertical",
90
+ style: { flexDirection: "row", minHeight: "240px" },
91
+ addTo: "",
92
+ imgSrc: formData?.logoUrl,
93
+ isRequired: true
94
+ }
95
+ ) }) }),
96
+ /* @__PURE__ */ jsxRuntime.jsx(
97
+ reactAdmin.TextInput,
98
+ {
99
+ source: "serviceEndpoint",
100
+ label: "App landing page",
101
+ validate: [reactAdmin.required("App landing page field is required"), ...CreateOrganizationUtils.validateServiceEndpoint],
102
+ parse: (value) => value?.trim() ?? "",
103
+ disabled: inProgress
104
+ }
105
+ ),
106
+ /* @__PURE__ */ jsxRuntime.jsx(
107
+ reactAdmin.SelectArrayInput,
108
+ {
109
+ source: "supportedExchangeProtocols",
110
+ choices: [
111
+ { id: "VN_API", name: "VN_API" },
112
+ { id: "OPENID4VC", name: "OPENID4VC" }
113
+ ],
114
+ label: "Supported Exchange Protocols",
115
+ validate: [reactAdmin.required("Supported Exchange Protocols field is required")]
116
+ }
117
+ ),
118
+ /* @__PURE__ */ jsxRuntime.jsx(
119
+ reactAdmin.TextInput,
120
+ {
121
+ source: "playStoreUrl",
122
+ label: "Play Store URL",
123
+ validate: [reactAdmin.required("Play Store URL field is required"), ...CreateOrganizationUtils.validateServiceEndpoint],
124
+ parse: (value) => value?.trim() ?? "",
125
+ disabled: inProgress
126
+ }
127
+ ),
128
+ /* @__PURE__ */ jsxRuntime.jsx(
129
+ reactAdmin.TextInput,
130
+ {
131
+ source: "googlePlayId",
132
+ label: "Google Play ID",
133
+ validate: [reactAdmin.required("Google Play ID field is required")],
134
+ parse: (value) => value?.trim() ?? "",
135
+ disabled: inProgress
136
+ }
137
+ ),
138
+ /* @__PURE__ */ jsxRuntime.jsx(
139
+ reactAdmin.TextInput,
140
+ {
141
+ source: "appleAppStoreUrl",
142
+ label: "Apple App Store URL",
143
+ validate: [reactAdmin.required("Apple App Store URL field is required"), ...CreateOrganizationUtils.validateServiceEndpoint],
144
+ parse: (value) => value?.trim() ?? "",
145
+ disabled: inProgress
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsxRuntime.jsx(
149
+ reactAdmin.TextInput,
150
+ {
151
+ source: "appleAppId",
152
+ label: "Apple App ID",
153
+ validate: [reactAdmin.required("Apple App ID field is required")],
154
+ parse: (value) => value?.trim() ?? "",
155
+ disabled: inProgress
156
+ }
157
+ )
158
+ ] });
159
+ };
160
+ HolderWalletSelection.propTypes = {
161
+ inProgress: PropTypes.bool.isRequired
162
+ };
163
+ exports.HolderWalletSelection = HolderWalletSelection;
164
+ exports.WebWalletSelection = WebWalletSelection;
165
+ exports.useIsIssuingInspection = useIsIssuingInspection;
166
+ //# sourceMappingURL=HolderWalletSelection.BvPFTrTh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HolderWalletSelection.BvPFTrTh.js","sources":["../../src/pages/services/hooks/useIsIssuingInspection.js","../../src/pages/services/components/ServiceEndpointSelection/components/WebWalletSelection.jsx","../../src/pages/services/components/ServiceEndpointSelection/components/HolderWalletSelection.jsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { serviceTypesIssuingOrInspection, CREDENTIAL_TYPES_IDS } from '@/utils/serviceTypes.js';\n\nexport const useIsIssuingInspection = (serviceType) => {\n const serviceGroup = useMemo(() => {\n const isIssuingOrInspection =\n !!serviceType &&\n serviceTypesIssuingOrInspection.some((service) => service.id === serviceType.id);\n\n const isCAO =\n !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_CREDENTIAL_AGENT_OPERATOR;\n\n const isWebWallet =\n !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_WEB_WALLET_PROVIDER;\n\n const isHolderWallet =\n !!serviceType && serviceType.id === CREDENTIAL_TYPES_IDS.VLC_HOLDER_APP_PROVIDER;\n\n const isWallet = isWebWallet || isHolderWallet;\n\n return { isIssuingOrInspection, isCAO, isWallet, isHolderWallet, isWebWallet };\n }, [serviceType]);\n\n return { ...serviceGroup };\n};\n\nexport default useIsIssuingInspection;\n","import { Stack } from '@mui/material';\nimport { TextInput, required, SelectArrayInput, FormDataConsumer } from 'react-admin';\nimport PropTypes from 'prop-types';\n\nimport CustomImageInput from '@/components/common/CustomImageInput/index.jsx';\nimport { validateServiceEndpoint } from '@/components/organizations/CreateOrganizationUtils.js';\n\nconst WebWalletSelection = ({ inProgress }) => {\n return (\n <>\n <TextInput\n source=\"name\"\n label=\"Webwallet Name\"\n validate={[required('Webwallet Name field is required')]}\n disabled={inProgress}\n />\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <FormDataConsumer>\n {/* eslint-disable-next-line complexity */}\n {({ formData }) => (\n <CustomImageInput\n label={false}\n labelText=\"Webwallet Logo URL\"\n editMode={!formData?.logoUrl}\n imgSrc={formData?.logoUrl}\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '240px' }}\n addTo=\"\"\n isRequired\n />\n )}\n </FormDataConsumer>\n </Stack>\n <TextInput\n source=\"serviceEndpoint\"\n label=\"Webwallet URL\"\n validate={[required('Webwallet URL field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <SelectArrayInput\n source=\"supportedExchangeProtocols\"\n choices={[\n { id: 'VN_API', name: 'VN_API' },\n { id: 'OPENID4VC', name: 'OPENID4VC' },\n ]}\n label=\"Supported Exchange Protocols\"\n validate={[required('Supported Exchange Protocols field is required')]}\n />\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nWebWalletSelection.propTypes = {\n inProgress: PropTypes.bool.isRequired,\n};\n\nexport default WebWalletSelection;\n","import { Stack } from '@mui/material';\nimport { TextInput, required, SelectArrayInput, FormDataConsumer } from 'react-admin';\nimport PropTypes from 'prop-types';\n\nimport CustomImageInput from '@/components/common/CustomImageInput/index.jsx';\nimport { validateServiceEndpoint } from '@/components/organizations/CreateOrganizationUtils.js';\n\nconst HolderWalletSelection = ({ inProgress }) => {\n return (\n <>\n <TextInput\n source=\"name\"\n label=\"App Wallet Name\"\n validate={[required('App Wallet Name field is required')]}\n disabled={inProgress}\n />\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <FormDataConsumer>\n {/* eslint-disable-next-line complexity */}\n {({ formData }) => (\n <CustomImageInput\n label={false}\n labelText=\"App Wallet Logo URL\"\n editMode={!formData?.logoUrl}\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '240px' }}\n addTo=\"\"\n imgSrc={formData?.logoUrl}\n isRequired\n />\n )}\n </FormDataConsumer>\n </Stack>\n <TextInput\n source=\"serviceEndpoint\"\n label=\"App landing page\"\n validate={[required('App landing page field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <SelectArrayInput\n source=\"supportedExchangeProtocols\"\n choices={[\n { id: 'VN_API', name: 'VN_API' },\n { id: 'OPENID4VC', name: 'OPENID4VC' },\n ]}\n label=\"Supported Exchange Protocols\"\n validate={[required('Supported Exchange Protocols field is required')]}\n />\n <TextInput\n source=\"playStoreUrl\"\n label=\"Play Store URL\"\n validate={[required('Play Store URL field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <TextInput\n source=\"googlePlayId\"\n label=\"Google Play ID\"\n validate={[required('Google Play ID field is required')]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <TextInput\n source=\"appleAppStoreUrl\"\n label=\"Apple App Store URL\"\n validate={[required('Apple App Store URL field is required'), ...validateServiceEndpoint]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n <TextInput\n source=\"appleAppId\"\n label=\"Apple App ID\"\n validate={[required('Apple App ID field is required')]}\n parse={(value) => value?.trim() ?? ''}\n disabled={inProgress}\n />\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nHolderWalletSelection.propTypes = {\n inProgress: PropTypes.bool.isRequired,\n};\n\nexport default HolderWalletSelection;\n"],"names":["useMemo","serviceTypesIssuingOrInspection","CREDENTIAL_TYPES_IDS","jsxs","Fragment","jsx","TextInput","required","Stack","FormDataConsumer","CustomImageInput","validateServiceEndpoint","SelectArrayInput"],"mappings":"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"}
@@ -5,7 +5,7 @@ const PropTypes = require("prop-types");
5
5
  const Popup = require("./Popup.H_MqnNtr.js");
6
6
  const React = require("react");
7
7
  const reactAdmin = require("react-admin");
8
- const useIsIssuingInspection = require("./useIsIssuingInspection.DavhBs5B.js");
8
+ const HolderWalletSelection = require("./HolderWalletSelection.BvPFTrTh.js");
9
9
  const CreateOrganizationUtils = require("./CreateOrganizationUtils.C5C_r3Zp.js");
10
10
  const ServicesDelete = ({ onClose, onConfirm, selectedService, isLoading }) => {
11
11
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -70,8 +70,75 @@ ServicesDelete.propTypes = {
70
70
  selectedService: PropTypes.object,
71
71
  isLoading: PropTypes.bool
72
72
  };
73
+ const FormContent = ({ isModifyingServiceEnabled, selectedService }) => {
74
+ const { isIssuingOrInspection, isWebWallet, isHolderWallet } = HolderWalletSelection.useIsIssuingInspection({
75
+ id: selectedService?.type
76
+ });
77
+ const validateArray = [reactAdmin.required("Service endpoint URL field is required")];
78
+ if (!isIssuingOrInspection) {
79
+ validateArray.push(...CreateOrganizationUtils.validateServiceEndpoint);
80
+ }
81
+ if (isWebWallet) {
82
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { children: [
83
+ /* @__PURE__ */ jsxRuntime.jsx(HolderWalletSelection.WebWalletSelection, { inProgress: false }),
84
+ /* @__PURE__ */ jsxRuntime.jsx(
85
+ reactAdmin.SaveButton,
86
+ {
87
+ variant: "outlined",
88
+ icon: null,
89
+ label: "Save",
90
+ sx: sx.saveButton,
91
+ alwaysEnable: isModifyingServiceEnabled
92
+ }
93
+ )
94
+ ] });
95
+ }
96
+ if (isHolderWallet) {
97
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { children: [
98
+ /* @__PURE__ */ jsxRuntime.jsx(HolderWalletSelection.HolderWalletSelection, { inProgress: false }),
99
+ /* @__PURE__ */ jsxRuntime.jsx(
100
+ reactAdmin.SaveButton,
101
+ {
102
+ variant: "outlined",
103
+ icon: null,
104
+ label: "Save",
105
+ sx: sx.saveButton,
106
+ alwaysEnable: isModifyingServiceEnabled
107
+ }
108
+ )
109
+ ] });
110
+ }
111
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { children: [
112
+ /* @__PURE__ */ jsxRuntime.jsx(
113
+ reactAdmin.TextInput,
114
+ {
115
+ source: "serviceEndpoint",
116
+ label: "Service endpoint URL",
117
+ validate: validateArray,
118
+ parse: (value) => value.trim()
119
+ }
120
+ ),
121
+ /* @__PURE__ */ jsxRuntime.jsx(
122
+ reactAdmin.SaveButton,
123
+ {
124
+ variant: "outlined",
125
+ icon: null,
126
+ label: "Save",
127
+ sx: sx.saveButton,
128
+ alwaysEnable: isModifyingServiceEnabled
129
+ }
130
+ )
131
+ ] });
132
+ };
133
+ const sx = {
134
+ saveButton: { width: "fit-content", alignSelf: "center", px: 4, py: 1, mt: 2 }
135
+ };
136
+ FormContent.propTypes = {
137
+ isModifyingServiceEnabled: PropTypes.bool.isRequired,
138
+ selectedService: PropTypes.shape({ id: PropTypes.string, type: PropTypes.string }).isRequired
139
+ };
73
140
  const ServicesEdit = ({ onClose, onSave, selectedService, InterceptOnCreate }) => {
74
- const { isIssuingOrInspection, isCAO } = useIsIssuingInspection.useIsIssuingInspection({ id: selectedService?.type });
141
+ const { isIssuingOrInspection, isCAO } = HolderWalletSelection.useIsIssuingInspection({ id: selectedService?.type });
75
142
  const [isInterceptOnCreateOpen, setIsInterceptOnCreateOpen] = React.useState(false);
76
143
  const [selectedCAO, setSelectedCAO] = React.useState(
77
144
  isIssuingOrInspection ? selectedService?.serviceEndpoint.split("#")[0] : null
@@ -98,21 +165,13 @@ const ServicesEdit = ({ onClose, onSave, selectedService, InterceptOnCreate }) =
98
165
  title: "Edit your service details here:",
99
166
  onClose,
100
167
  isOpen: Boolean(selectedService),
101
- children: /* @__PURE__ */ jsxRuntime.jsx(
102
- reactAdmin.Form,
168
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactAdmin.Form, { record: selectedService, onSubmit: handleOnSave, mode: "onChange", children: /* @__PURE__ */ jsxRuntime.jsx(
169
+ FormContent,
103
170
  {
104
- record: { serviceEndpoint: selectedService?.serviceEndpoint },
105
- onSubmit: handleOnSave,
106
- mode: "onChange",
107
- children: /* @__PURE__ */ jsxRuntime.jsx(
108
- FormContent,
109
- {
110
- isIssuingOrInspection,
111
- isModifyingServiceEnabled
112
- }
113
- )
171
+ isModifyingServiceEnabled,
172
+ selectedService
114
173
  }
115
- )
174
+ ) })
116
175
  }
117
176
  ),
118
177
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -129,37 +188,6 @@ const ServicesEdit = ({ onClose, onSave, selectedService, InterceptOnCreate }) =
129
188
  )
130
189
  ] });
131
190
  };
132
- const FormContent = ({ isIssuingOrInspection, isModifyingServiceEnabled }) => {
133
- const validateArray = [reactAdmin.required("Service endpoint URL field is required")];
134
- if (!isIssuingOrInspection) {
135
- validateArray.push(...CreateOrganizationUtils.validateServiceEndpoint);
136
- }
137
- return /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { children: [
138
- /* @__PURE__ */ jsxRuntime.jsx(
139
- reactAdmin.TextInput,
140
- {
141
- source: "serviceEndpoint",
142
- label: "Service endpoint URL",
143
- validate: validateArray,
144
- parse: (value) => value.trim()
145
- }
146
- ),
147
- /* @__PURE__ */ jsxRuntime.jsx(
148
- reactAdmin.SaveButton,
149
- {
150
- variant: "outlined",
151
- icon: null,
152
- label: "Save",
153
- sx: sx.saveButton,
154
- alwaysEnable: isModifyingServiceEnabled
155
- }
156
- )
157
- ] });
158
- };
159
- FormContent.propTypes = {
160
- isIssuingOrInspection: PropTypes.bool.isRequired,
161
- isModifyingServiceEnabled: PropTypes.bool.isRequired
162
- };
163
191
  ServicesEdit.propTypes = {
164
192
  onClose: PropTypes.func,
165
193
  onSave: PropTypes.func,
@@ -167,9 +195,6 @@ ServicesEdit.propTypes = {
167
195
  selectedService: PropTypes.object,
168
196
  InterceptOnCreate: PropTypes.elementType
169
197
  };
170
- const sx = {
171
- saveButton: { width: "fit-content", alignSelf: "center", px: 4, py: 1, mt: 2 }
172
- };
173
198
  exports.ServicesDelete = ServicesDelete;
174
199
  exports.ServicesEdit = ServicesEdit;
175
- //# sourceMappingURL=ServicesEdit.BnnqC203.js.map
200
+ //# sourceMappingURL=ServicesEdit.CrmS66vz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServicesEdit.CrmS66vz.js","sources":["../../src/components/services/ServicesDelete.jsx","../../src/components/services/ServiceEditContent.jsx","../../src/components/services/ServicesEdit.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, Typography, Stack } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nimport Popup from '../common/Popup.jsx';\n\nconst ServicesDelete = ({ onClose, onConfirm, selectedService, isLoading }) => {\n return (\n <Popup\n title=\"Delete service\"\n onClose={isLoading ? () => {} : onClose}\n isOpen={Boolean(selectedService)}\n >\n <Typography>Are you sure you want to delete {selectedService} service?</Typography>\n <Stack sx={styles.buttonBlock}>\n <Button\n onClick={onConfirm}\n disabled={isLoading}\n variant=\"outlined\"\n sx={styles.button}\n autoFocus\n >\n Delete\n </Button>\n <Button\n onClick={onClose}\n disabled={isLoading}\n variant=\"outlined\"\n sx={[styles.button, styles.cancelButton]}\n >\n Cancel\n </Button>\n </Stack>\n </Popup>\n );\n};\n\nconst styles = {\n buttonBlock: {\n display: 'flex',\n flexDirection: 'row-reverse',\n marginTop: '40px',\n justifyContent: 'center',\n },\n button: {\n px: 4,\n py: 1,\n fontSize: '16px',\n width: '160px',\n },\n cancelButton: { marginRight: '20px', color: 'text.primary', borderColor: 'secondary.light' },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nServicesDelete.propTypes = {\n onClose: PropTypes.func,\n onConfirm: PropTypes.func,\n // eslint-disable-next-line react/forbid-prop-types\n selectedService: PropTypes.object,\n isLoading: PropTypes.bool,\n};\n\nexport default ServicesDelete;\n","import { TextInput, SaveButton, required } from 'react-admin';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport PropTypes from 'prop-types';\nimport { Stack } from '@mui/material';\nimport { useIsIssuingInspection } from '@/pages/services/hooks/useIsIssuingInspection.js';\nimport WebWalletSelection from '@/pages/services/components/ServiceEndpointSelection/components/WebWalletSelection.jsx';\nimport HolderWalletSelection from '@/pages/services/components/ServiceEndpointSelection/components/HolderWalletSelection.jsx';\nimport { validateServiceEndpoint } from '../organizations/CreateOrganizationUtils.js';\n\nexport const FormContent = ({ isModifyingServiceEnabled, selectedService }) => {\n const { isIssuingOrInspection, isWebWallet, isHolderWallet } = useIsIssuingInspection({\n id: selectedService?.type,\n });\n const validateArray = [required('Service endpoint URL field is required')];\n if (!isIssuingOrInspection) {\n validateArray.push(...validateServiceEndpoint);\n }\n\n if (isWebWallet) {\n return (\n <Stack>\n <WebWalletSelection inProgress={false} />\n <SaveButton\n variant=\"outlined\"\n icon={null}\n label=\"Save\"\n sx={sx.saveButton}\n alwaysEnable={isModifyingServiceEnabled}\n />\n </Stack>\n );\n }\n if (isHolderWallet) {\n return (\n <Stack>\n <HolderWalletSelection inProgress={false} />\n <SaveButton\n variant=\"outlined\"\n icon={null}\n label=\"Save\"\n sx={sx.saveButton}\n alwaysEnable={isModifyingServiceEnabled}\n />\n </Stack>\n );\n }\n return (\n <Stack>\n <TextInput\n source=\"serviceEndpoint\"\n label=\"Service endpoint URL\"\n validate={validateArray}\n parse={(value) => value.trim()}\n />\n <SaveButton\n variant=\"outlined\"\n icon={null}\n label=\"Save\"\n sx={sx.saveButton}\n alwaysEnable={isModifyingServiceEnabled}\n />\n </Stack>\n );\n};\n\nconst sx = {\n saveButton: { width: 'fit-content', alignSelf: 'center', px: 4, py: 1, mt: 2 },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nFormContent.propTypes = {\n isModifyingServiceEnabled: PropTypes.bool.isRequired,\n selectedService: PropTypes.shape({ id: PropTypes.string, type: PropTypes.string }).isRequired,\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useState, useCallback } from 'react';\nimport { Form } from 'react-admin';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport PropTypes from 'prop-types';\nimport { useIsIssuingInspection } from '@/pages/services/hooks/useIsIssuingInspection.js';\nimport { FormContent } from '@/components/services/ServiceEditContent.jsx';\nimport Popup from '../common/Popup.jsx';\n\nconst ServicesEdit = ({ onClose, onSave, selectedService, InterceptOnCreate }) => {\n const { isIssuingOrInspection, isCAO } = useIsIssuingInspection({ id: selectedService?.type });\n const [isInterceptOnCreateOpen, setIsInterceptOnCreateOpen] = useState(false);\n const [selectedCAO, setSelectedCAO] = useState(\n isIssuingOrInspection ? selectedService?.serviceEndpoint.split('#')[0] : null,\n );\n const handleOnSave = useCallback(\n (data) => {\n onSave(data);\n if (InterceptOnCreate) {\n setSelectedCAO(() => data.serviceEndpoint.split('#')[0]);\n setIsInterceptOnCreateOpen(() => true);\n }\n },\n [onSave, InterceptOnCreate],\n );\n\n const handleOnClose = useCallback(() => {\n setIsInterceptOnCreateOpen(false);\n onClose();\n }, [onClose]);\n\n const isModifyingServiceEnabled = !!InterceptOnCreate;\n\n return (\n <>\n <Popup\n title=\"Edit your service details here:\"\n onClose={onClose}\n isOpen={Boolean(selectedService)}\n >\n <Form record={selectedService} onSubmit={handleOnSave} mode=\"onChange\">\n <FormContent\n isModifyingServiceEnabled={isModifyingServiceEnabled}\n selectedService={selectedService}\n />\n </Form>\n </Popup>\n <InterceptOnCreate\n isInterceptOnCreateOpen={isInterceptOnCreateOpen}\n serviceId={selectedService?.id}\n onNext={() => onClose()}\n onClose={handleOnClose}\n isIssueOrInspection={isIssuingOrInspection}\n selectedCAO={selectedCAO}\n isCAO={isCAO}\n />\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nServicesEdit.propTypes = {\n onClose: PropTypes.func,\n onSave: PropTypes.func,\n // eslint-disable-next-line react/forbid-prop-types\n selectedService: PropTypes.object,\n InterceptOnCreate: PropTypes.elementType,\n};\n\nexport default ServicesEdit;\n"],"names":["jsxs","Popup","Typography","Stack","jsx","Button","useIsIssuingInspection","required","validateServiceEndpoint","WebWalletSelection","SaveButton","HolderWalletSelection","TextInput","useState","useCallback","Fragment","Form"],"mappings":"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"}