@adobe-commerce/aio-experience-kit 1.0.1 → 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 (42) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/README.md +52 -145
  3. package/dist/cjs/components/DataForm/FieldBuilder/index.js +32 -28
  4. package/dist/cjs/components/DataForm/FieldBuilder/index.js.map +1 -1
  5. package/dist/cjs/components/FileUpload/index.js +241 -0
  6. package/dist/cjs/components/FileUpload/index.js.map +1 -0
  7. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js +1 -1
  8. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
  9. package/dist/cjs/components/ShippingCarrierForm/index.js +6 -0
  10. package/dist/cjs/components/ShippingCarrierForm/index.js.map +1 -1
  11. package/dist/cjs/index.js +6 -4
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/utils/AdminUiSdk/index.js +4 -139
  14. package/dist/cjs/utils/AdminUiSdk/index.js.map +1 -1
  15. package/dist/esm/components/DataForm/FieldBuilder/index.js +33 -29
  16. package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -1
  17. package/dist/esm/components/FileUpload/index.js +237 -0
  18. package/dist/esm/components/FileUpload/index.js.map +1 -0
  19. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js +1 -1
  20. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
  21. package/dist/esm/components/ShippingCarrierForm/index.js +6 -0
  22. package/dist/esm/components/ShippingCarrierForm/index.js.map +1 -1
  23. package/dist/esm/index.js +1 -0
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts.map +1 -1
  26. package/dist/esm/types/components/FileUpload/index.d.ts +8 -0
  27. package/dist/esm/types/components/FileUpload/index.d.ts.map +1 -0
  28. package/dist/esm/types/components/FileUpload/types.d.ts +71 -0
  29. package/dist/esm/types/components/FileUpload/types.d.ts.map +1 -0
  30. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts +6 -0
  31. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts.map +1 -1
  32. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts +5 -0
  33. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts.map +1 -1
  34. package/dist/esm/types/components/index.d.ts +8 -0
  35. package/dist/esm/types/components/index.d.ts.map +1 -1
  36. package/dist/esm/types/utils/AdminUiSdk/index.d.ts +6 -45
  37. package/dist/esm/types/utils/AdminUiSdk/index.d.ts.map +1 -1
  38. package/dist/esm/types/utils/AdminUiSdk/types.d.ts +0 -46
  39. package/dist/esm/types/utils/AdminUiSdk/types.d.ts.map +1 -1
  40. package/dist/esm/utils/AdminUiSdk/index.js +5 -140
  41. package/dist/esm/utils/AdminUiSdk/index.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,241 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ var reactSpectrum = require('@adobe/react-spectrum');
9
+
10
+ var FileUpload = function FileUpload(_ref) {
11
+ var name = _ref.name,
12
+ label = _ref.label,
13
+ _ref$isRequired = _ref.isRequired,
14
+ isRequired = _ref$isRequired === void 0 ? false : _ref$isRequired,
15
+ _ref$isDisabled = _ref.isDisabled,
16
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
17
+ acceptedFileTypes = _ref.acceptedFileTypes,
18
+ _ref$allowsMultiple = _ref.allowsMultiple,
19
+ allowsMultiple = _ref$allowsMultiple === void 0 ? false : _ref$allowsMultiple,
20
+ contextualHelp = _ref.contextualHelp,
21
+ onSelect = _ref.onSelect;
22
+ var _useState = React.useState([]),
23
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
24
+ selectedFiles = _useState2[0],
25
+ setSelectedFiles = _useState2[1];
26
+ var _useState3 = React.useState(''),
27
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
28
+ error = _useState4[0],
29
+ setError = _useState4[1];
30
+ var _useState5 = React.useState(false),
31
+ _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
32
+ isLoading = _useState6[0],
33
+ setIsLoading = _useState6[1];
34
+ // Dynamic button text based on allowsMultiple
35
+ var buttonText = allowsMultiple ? 'Select Files' : 'Select File';
36
+ /**
37
+ * Reads file content as text or base64 depending on file type
38
+ */
39
+ var readFileContent = React.useCallback(function (file) {
40
+ return new Promise(function (resolve, reject) {
41
+ var reader = new FileReader();
42
+ reader.onload = function () {
43
+ var result = reader.result;
44
+ // Check if file is likely binary by checking MIME type
45
+ var isBinary = file.type && (file.type.startsWith('image/') || file.type.startsWith('video/') || file.type.startsWith('audio/') || file.type === 'application/pdf' || file.type === 'application/zip' || file.type.includes('binary'));
46
+ if (isBinary && result.startsWith('data:')) {
47
+ // Remove data URL prefix for base64 content
48
+ var base64Content = result.split(',')[1] || result;
49
+ resolve({
50
+ content: base64Content,
51
+ isBase64: true
52
+ });
53
+ } else {
54
+ resolve({
55
+ content: result,
56
+ isBase64: false
57
+ });
58
+ }
59
+ };
60
+ reader.onerror = function () {
61
+ reject(new Error("Failed to read file: ".concat(file.name)));
62
+ };
63
+ // Read as base64 for binary files, as text for text files
64
+ var isBinary = file.type && (file.type.startsWith('image/') || file.type.startsWith('video/') || file.type.startsWith('audio/') || file.type === 'application/pdf' || file.type === 'application/zip' || file.type.includes('binary'));
65
+ if (isBinary) {
66
+ reader.readAsDataURL(file);
67
+ } else {
68
+ reader.readAsText(file);
69
+ }
70
+ });
71
+ }, []);
72
+ /**
73
+ * Processes selected files and reads their content
74
+ */
75
+ var processFiles = React.useCallback(/*#__PURE__*/function () {
76
+ var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee(fileList) {
77
+ var files, processedFiles, _i, _files, file, _yield$readFileConten, content, isBase64, fileInfo, errorMsg, _errorMsg, _t, _t2;
78
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
79
+ while (1) switch (_context.p = _context.n) {
80
+ case 0:
81
+ if (!(!fileList || fileList.length === 0)) {
82
+ _context.n = 1;
83
+ break;
84
+ }
85
+ return _context.a(2);
86
+ case 1:
87
+ setIsLoading(true);
88
+ setError('');
89
+ _context.p = 2;
90
+ files = Array.from(fileList);
91
+ processedFiles = [];
92
+ _i = 0, _files = files;
93
+ case 3:
94
+ if (!(_i < _files.length)) {
95
+ _context.n = 8;
96
+ break;
97
+ }
98
+ file = _files[_i];
99
+ _context.p = 4;
100
+ _context.n = 5;
101
+ return readFileContent(file);
102
+ case 5:
103
+ _yield$readFileConten = _context.v;
104
+ content = _yield$readFileConten.content;
105
+ isBase64 = _yield$readFileConten.isBase64;
106
+ fileInfo = {
107
+ name: file.name,
108
+ size: file.size,
109
+ type: file.type,
110
+ lastModified: file.lastModified,
111
+ content: content,
112
+ isBase64: isBase64
113
+ };
114
+ processedFiles.push(fileInfo);
115
+ _context.n = 7;
116
+ break;
117
+ case 6:
118
+ _context.p = 6;
119
+ _t = _context.v;
120
+ // Log error for debugging (will be suppressed in test environment by setupTests.ts)
121
+ console.error("Error processing file ".concat(file.name, ":"), _t);
122
+ errorMsg = "Failed to process file: ".concat(file.name);
123
+ setError(errorMsg);
124
+ return _context.a(2);
125
+ case 7:
126
+ _i++;
127
+ _context.n = 3;
128
+ break;
129
+ case 8:
130
+ setSelectedFiles(processedFiles);
131
+ // Call callback
132
+ onSelect === null || onSelect === void 0 || onSelect(processedFiles);
133
+ _context.n = 10;
134
+ break;
135
+ case 9:
136
+ _context.p = 9;
137
+ _t2 = _context.v;
138
+ /* istanbul ignore next */
139
+ _errorMsg = 'An error occurred while processing files.';
140
+ /* istanbul ignore next */
141
+ setError(_errorMsg);
142
+ /* istanbul ignore next */
143
+ // Log error for debugging (will be suppressed in test environment by setupTests.ts)
144
+ /* istanbul ignore next */
145
+ console.error('File processing error:', _t2);
146
+ case 10:
147
+ _context.p = 10;
148
+ setIsLoading(false);
149
+ return _context.f(10);
150
+ case 11:
151
+ return _context.a(2);
152
+ }
153
+ }, _callee, null, [[4, 6], [2, 9, 10, 11]]);
154
+ }));
155
+ return function (_x) {
156
+ return _ref2.apply(this, arguments);
157
+ };
158
+ }(), [onSelect, readFileContent]);
159
+ /**
160
+ * Handles file selection from FileTrigger
161
+ */
162
+ var handleFileSelect = React.useCallback(function (fileList) {
163
+ processFiles(fileList);
164
+ }, [processFiles]);
165
+ /**
166
+ * Clears selected files and errors
167
+ */
168
+ var clearFiles = React.useCallback(function () {
169
+ var emptyFiles = [];
170
+ setSelectedFiles(emptyFiles);
171
+ setError('');
172
+ // Call callback
173
+ onSelect === null || onSelect === void 0 || onSelect(emptyFiles);
174
+ }, [onSelect]);
175
+ return jsxRuntime.jsxs(reactSpectrum.View, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, name && {
176
+ 'data-name': name
177
+ }), {}, {
178
+ maxWidth: 'size-6000',
179
+ children: [jsxRuntime.jsx(reactSpectrum.View, {
180
+ marginBottom: 'size-100',
181
+ children: jsxRuntime.jsxs(reactSpectrum.Text, {
182
+ children: [label, selectedFiles.length > 0 && " (".concat(selectedFiles.length, ")"), isRequired && jsxRuntime.jsx(reactSpectrum.Text, {
183
+ children: " *"
184
+ }), contextualHelp]
185
+ })
186
+ }), selectedFiles.length === 0 && jsxRuntime.jsx(reactSpectrum.View, {
187
+ marginBottom: 'size-100',
188
+ children: jsxRuntime.jsx(reactSpectrum.FileTrigger, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, acceptedFileTypes && acceptedFileTypes.length > 0 && {
189
+ acceptedFileTypes: acceptedFileTypes
190
+ }), {}, {
191
+ allowsMultiple: allowsMultiple,
192
+ acceptDirectory: false,
193
+ onSelect: handleFileSelect,
194
+ children: jsxRuntime.jsx(reactSpectrum.Button, {
195
+ variant: "primary",
196
+ isDisabled: isDisabled || isLoading,
197
+ children: isLoading ? 'Processing...' : buttonText
198
+ })
199
+ }))
200
+ }), selectedFiles.length > 0 && jsxRuntime.jsxs(reactSpectrum.View, {
201
+ marginBottom: 'size-100',
202
+ children: [jsxRuntime.jsx(reactSpectrum.View, {
203
+ borderWidth: 'thin',
204
+ borderColor: 'gray-400',
205
+ borderRadius: 'medium',
206
+ padding: 'size-100',
207
+ backgroundColor: 'gray-50',
208
+ children: selectedFiles.map(function (file, index) {
209
+ return jsxRuntime.jsx(reactSpectrum.View, {
210
+ marginBottom: index < selectedFiles.length - 1 ? 'size-50' : 'size-0',
211
+ children: jsxRuntime.jsx(reactSpectrum.View, {
212
+ children: jsxRuntime.jsxs(reactSpectrum.Text, {
213
+ marginBottom: 'size-50',
214
+ children: [jsxRuntime.jsx("strong", {
215
+ children: file.name
216
+ }), ": ", file.size / 1024, " KB | ", file.type || 'Unknown']
217
+ })
218
+ })
219
+ }, "".concat(file.name, "-").concat(index));
220
+ })
221
+ }), jsxRuntime.jsx(reactSpectrum.View, {
222
+ marginTop: 'size-100',
223
+ children: jsxRuntime.jsx(reactSpectrum.Link, {
224
+ onPress: clearFiles,
225
+ children: "Clear Files"
226
+ })
227
+ })]
228
+ }), error && jsxRuntime.jsx(reactSpectrum.View, {
229
+ marginTop: 'size-100',
230
+ children: jsxRuntime.jsx(reactSpectrum.InlineAlert, {
231
+ variant: 'negative',
232
+ children: jsxRuntime.jsx(reactSpectrum.Text, {
233
+ children: error
234
+ })
235
+ })
236
+ })]
237
+ }));
238
+ };
239
+
240
+ exports.default = FileUpload;
241
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/FileUpload/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState, useCallback } from 'react';\nimport { FileTrigger, Button, View, Text, InlineAlert, Link } from '@adobe/react-spectrum';\nimport { FileUploadProps, FileInfo } from './types';\n\nconst FileUpload: React.FC<FileUploadProps> = ({\n name,\n label,\n isRequired = false,\n isDisabled = false,\n acceptedFileTypes,\n allowsMultiple = false,\n contextualHelp,\n onSelect,\n}) => {\n const [selectedFiles, setSelectedFiles] = useState<FileInfo[]>([]);\n const [error, setError] = useState<string>('');\n const [isLoading, setIsLoading] = useState<boolean>(false);\n\n // Dynamic button text based on allowsMultiple\n const buttonText = allowsMultiple ? 'Select Files' : 'Select File';\n\n /**\n * Reads file content as text or base64 depending on file type\n */\n const readFileContent = useCallback(\n (file: File): Promise<{ content: string; isBase64: boolean }> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = (): void => {\n const result = reader.result as string;\n\n // Check if file is likely binary by checking MIME type\n const isBinary =\n file.type &&\n (file.type.startsWith('image/') ||\n file.type.startsWith('video/') ||\n file.type.startsWith('audio/') ||\n file.type === 'application/pdf' ||\n file.type === 'application/zip' ||\n file.type.includes('binary'));\n\n if (isBinary && result.startsWith('data:')) {\n // Remove data URL prefix for base64 content\n const base64Content = result.split(',')[1] || result;\n resolve({ content: base64Content, isBase64: true });\n } else {\n resolve({ content: result, isBase64: false });\n }\n };\n\n reader.onerror = (): void => {\n reject(new Error(`Failed to read file: ${file.name}`));\n };\n\n // Read as base64 for binary files, as text for text files\n const isBinary =\n file.type &&\n (file.type.startsWith('image/') ||\n file.type.startsWith('video/') ||\n file.type.startsWith('audio/') ||\n file.type === 'application/pdf' ||\n file.type === 'application/zip' ||\n file.type.includes('binary'));\n\n if (isBinary) {\n reader.readAsDataURL(file);\n } else {\n reader.readAsText(file);\n }\n });\n },\n []\n );\n\n /**\n * Processes selected files and reads their content\n */\n const processFiles = useCallback(\n async (fileList: FileList | null): Promise<void> => {\n if (!fileList || fileList.length === 0) {\n return;\n }\n\n setIsLoading(true);\n setError('');\n\n try {\n const files = Array.from(fileList);\n const processedFiles: FileInfo[] = [];\n\n for (const file of files) {\n try {\n const { content, isBase64 } = await readFileContent(file);\n\n const fileInfo: FileInfo = {\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n content,\n isBase64,\n };\n\n processedFiles.push(fileInfo);\n } catch (fileError) {\n // Log error for debugging (will be suppressed in test environment by setupTests.ts)\n console.error(`Error processing file ${file.name}:`, fileError);\n const errorMsg = `Failed to process file: ${file.name}`;\n setError(errorMsg);\n return;\n }\n }\n\n setSelectedFiles(processedFiles);\n\n // Call callback\n onSelect?.(processedFiles);\n } catch (error) {\n /* istanbul ignore next */\n const errorMsg = 'An error occurred while processing files.';\n /* istanbul ignore next */\n setError(errorMsg);\n /* istanbul ignore next */\n // Log error for debugging (will be suppressed in test environment by setupTests.ts)\n /* istanbul ignore next */\n console.error('File processing error:', error);\n } finally {\n setIsLoading(false);\n }\n },\n [onSelect, readFileContent]\n );\n\n /**\n * Handles file selection from FileTrigger\n */\n const handleFileSelect = useCallback(\n (fileList: FileList | null) => {\n processFiles(fileList);\n },\n [processFiles]\n );\n\n /**\n * Clears selected files and errors\n */\n const clearFiles = useCallback(() => {\n const emptyFiles: FileInfo[] = [];\n setSelectedFiles(emptyFiles);\n setError('');\n\n // Call callback\n onSelect?.(emptyFiles);\n }, [onSelect]);\n\n return (\n <View {...(name && { 'data-name': name })} maxWidth={'size-6000'}>\n {/* Label - Always visible */}\n <View marginBottom={'size-100'}>\n <Text>\n {label}\n {selectedFiles.length > 0 && ` (${selectedFiles.length})`}\n {isRequired && <Text> *</Text>}\n {contextualHelp}\n </Text>\n </View>\n\n {/* File Trigger - Only show when no files are selected */}\n {selectedFiles.length === 0 && (\n <View marginBottom={'size-100'}>\n <FileTrigger\n {...(acceptedFileTypes && acceptedFileTypes.length > 0 && { acceptedFileTypes })}\n allowsMultiple={allowsMultiple}\n acceptDirectory={false}\n onSelect={handleFileSelect}\n >\n <Button variant=\"primary\" isDisabled={isDisabled || isLoading}>\n {isLoading ? 'Processing...' : buttonText}\n </Button>\n </FileTrigger>\n </View>\n )}\n\n {/* Selected Files Display */}\n {selectedFiles.length > 0 && (\n <View marginBottom={'size-100'}>\n <View\n borderWidth={'thin'}\n borderColor={'gray-400'}\n borderRadius={'medium'}\n padding={'size-100'}\n backgroundColor={'gray-50'}\n >\n {selectedFiles.map((file, index) => (\n <View\n key={`${file.name}-${index}`}\n marginBottom={index < selectedFiles.length - 1 ? 'size-50' : 'size-0'}\n >\n <View>\n <Text marginBottom={'size-50'}>\n <strong>{file.name}</strong>: {file.size / 1024} KB | {file.type || 'Unknown'}\n </Text>\n </View>\n </View>\n ))}\n </View>\n\n <View marginTop={'size-100'}>\n <Link onPress={clearFiles}>Clear Files</Link>\n </View>\n </View>\n )}\n\n {/* Error Message - Display at bottom */}\n {error && (\n <View marginTop={'size-100'}>\n <InlineAlert variant={'negative'}>\n <Text>{error}</Text>\n </InlineAlert>\n </View>\n )}\n </View>\n );\n};\n\nexport default FileUpload;\n"],"names":["FileUpload","_ref","name","label","_ref$isRequired","isRequired","_ref$isDisabled","isDisabled","acceptedFileTypes","_ref$allowsMultiple","allowsMultiple","contextualHelp","onSelect","_useState","useState","_useState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState3","_useState4","error","setError","_useState5","_useState6","isLoading","setIsLoading","buttonText","readFileContent","useCallback","file","Promise","resolve","reject","reader","FileReader","onload","result","isBinary","type","startsWith","includes","base64Content","split","content","isBase64","onerror","Error","concat","readAsDataURL","readAsText","processFiles","_ref2","_asyncToGenerator","_regenerator","m","_callee","fileList","files","processedFiles","_i","_files","_yield$readFileConten","fileInfo","errorMsg","_errorMsg","_t","_t2","w","_context","p","n","length","a","Array","from","v","size","lastModified","push","console","f","_x","apply","arguments","handleFileSelect","clearFiles","emptyFiles","_jsxs","View","_objectSpread","maxWidth","children","_jsx","marginBottom","Text","FileTrigger","acceptDirectory","Button","variant","borderWidth","borderColor","borderRadius","padding","backgroundColor","map","index","marginTop","Link","onPress","InlineAlert"],"mappings":"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"}
@@ -27,7 +27,7 @@ var TwoColumnLeft = function TwoColumnLeft(_ref) {
27
27
  areas: ['sidebar content'],
28
28
  columns: ['256px', '3fr'],
29
29
  rows: ['auto'],
30
- height: "100vh",
30
+ minHeight: "100vh",
31
31
  gap: "size-100",
32
32
  children: [jsxRuntime.jsx(reactSpectrum.View, {
33
33
  gridArea: "sidebar",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/components/MainContainer/TwoColumnLeft/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { Grid, View } from '@adobe/react-spectrum';\nimport { type TwoColumnLeftProps } from './types';\nimport NavigationBuilder from '../NavigationBuilder';\nimport ContentBuilder from '../ContentBuilder';\nimport TitleBuilder from '../TitleBuilder';\nimport { NavigationOptions } from '../NavigationBuilder/types';\n\nconst TwoColumnLeft: React.FC<TwoColumnLeftProps> = ({\n title,\n navigation = NavigationOptions.NavigationLinks,\n buttons,\n routes,\n padding = 'size-200',\n navigationMarginTop = 'size-0',\n navigationMarginBottom = 'size-0',\n titleLevel = 1,\n}) => {\n return (\n <Grid\n areas={['sidebar content']}\n columns={['256px', '3fr']}\n rows={['auto']}\n height=\"100vh\"\n gap=\"size-100\"\n >\n <View gridArea=\"sidebar\" backgroundColor=\"static-white\" padding={padding}>\n <NavigationBuilder\n type={navigation}\n buttons={buttons}\n navigationMarginTop={navigationMarginTop}\n navigationMarginBottom={navigationMarginBottom}\n />\n </View>\n <View gridArea=\"content\" padding={padding}>\n <TitleBuilder title={title} level={titleLevel} />\n <ContentBuilder routes={routes} />\n </View>\n </Grid>\n );\n};\n\nexport default TwoColumnLeft;\n"],"names":["TwoColumnLeft","_ref","title","_ref$navigation","navigation","NavigationOptions","NavigationLinks","buttons","routes","_ref$padding","padding","_ref$navigationMargin","navigationMarginTop","_ref$navigationMargin2","navigationMarginBottom","_ref$titleLevel","titleLevel","_jsxs","Grid","areas","columns","rows","height","gap","children","_jsx","View","gridArea","backgroundColor","NavigationBuilder","type","TitleBuilder","level","ContentBuilder"],"mappings":";;;;;;;;;;;AAWA,IAAMA,aAAa,GAAiC,SAA9CA,aAAaA,CAAAC,IAAA,EASd;AAAA,EAAA,IARHC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAAC,eAAA,GAAAF,IAAA,CACLG,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAGE,uBAAiB,CAACC,eAAe,GAAAH,eAAA;IAC9CI,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACPC,MAAM,GAAAP,IAAA,CAANO,MAAM;IAAAC,YAAA,GAAAR,IAAA,CACNS,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,UAAU,GAAAA,YAAA;IAAAE,qBAAA,GAAAV,IAAA,CACpBW,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,qBAAA;IAAAE,sBAAA,GAAAZ,IAAA,CAC9Ba,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,sBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,sBAAA;IAAAE,eAAA,GAAAd,IAAA,CACjCe,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,eAAA;EAEd,OACEE,gBAACC,kBAAI,EAAA;IACHC,KAAK,EAAE,CAAC,iBAAiB,CAAC;AAC1BC,IAAAA,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;IACzBC,IAAI,EAAE,CAAC,MAAM,CAAC;AACdC,IAAAA,MAAM,EAAC,OAAO;AACdC,IAAAA,GAAG,EAAC,UAAU;AAAAC,IAAAA,QAAA,EAAA,CAEdC,cAAA,CAACC,kBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,SAAS;AAACC,MAAAA,eAAe,EAAC,cAAc;AAAClB,MAAAA,OAAO,EAAEA,OAAO;AAAAc,MAAAA,QAAA,EACtEC,cAAA,CAACI,aAAiB,EAAA;AAChBC,QAAAA,IAAI,EAAE1B,UAAU;AAChBG,QAAAA,OAAO,EAAEA,OAAO;AAChBK,QAAAA,mBAAmB,EAAEA,mBAAmB;AACxCE,QAAAA,sBAAsB,EAAEA;OAAsB;MAE3C,EACPG,eAAA,CAACS,kBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,SAAS;AAACjB,MAAAA,OAAO,EAAEA,OAAO;AAAAc,MAAAA,QAAA,EAAA,CACvCC,eAACM,eAAY,EAAA;AAAC7B,QAAAA,KAAK,EAAEA,KAAK;AAAE8B,QAAAA,KAAK,EAAEhB;QAAc,EACjDS,cAAA,CAACQ,eAAc,EAAA;AAACzB,QAAAA,MAAM,EAAEA;AAAM,OAAA,CAAI;AAAA,KAAA,CAC7B;AAAA,GAAA,CACF;AAEX;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/MainContainer/TwoColumnLeft/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { Grid, View } from '@adobe/react-spectrum';\nimport { type TwoColumnLeftProps } from './types';\nimport NavigationBuilder from '../NavigationBuilder';\nimport ContentBuilder from '../ContentBuilder';\nimport TitleBuilder from '../TitleBuilder';\nimport { NavigationOptions } from '../NavigationBuilder/types';\n\nconst TwoColumnLeft: React.FC<TwoColumnLeftProps> = ({\n title,\n navigation = NavigationOptions.NavigationLinks,\n buttons,\n routes,\n padding = 'size-200',\n navigationMarginTop = 'size-0',\n navigationMarginBottom = 'size-0',\n titleLevel = 1,\n}) => {\n return (\n <Grid\n areas={['sidebar content']}\n columns={['256px', '3fr']}\n rows={['auto']}\n minHeight=\"100vh\"\n gap=\"size-100\"\n >\n <View gridArea=\"sidebar\" backgroundColor=\"static-white\" padding={padding}>\n <NavigationBuilder\n type={navigation}\n buttons={buttons}\n navigationMarginTop={navigationMarginTop}\n navigationMarginBottom={navigationMarginBottom}\n />\n </View>\n <View gridArea=\"content\" padding={padding}>\n <TitleBuilder title={title} level={titleLevel} />\n <ContentBuilder routes={routes} />\n </View>\n </Grid>\n );\n};\n\nexport default TwoColumnLeft;\n"],"names":["TwoColumnLeft","_ref","title","_ref$navigation","navigation","NavigationOptions","NavigationLinks","buttons","routes","_ref$padding","padding","_ref$navigationMargin","navigationMarginTop","_ref$navigationMargin2","navigationMarginBottom","_ref$titleLevel","titleLevel","_jsxs","Grid","areas","columns","rows","minHeight","gap","children","_jsx","View","gridArea","backgroundColor","NavigationBuilder","type","TitleBuilder","level","ContentBuilder"],"mappings":";;;;;;;;;;;AAWA,IAAMA,aAAa,GAAiC,SAA9CA,aAAaA,CAAAC,IAAA,EASd;AAAA,EAAA,IARHC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAAC,eAAA,GAAAF,IAAA,CACLG,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAGE,uBAAiB,CAACC,eAAe,GAAAH,eAAA;IAC9CI,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACPC,MAAM,GAAAP,IAAA,CAANO,MAAM;IAAAC,YAAA,GAAAR,IAAA,CACNS,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,UAAU,GAAAA,YAAA;IAAAE,qBAAA,GAAAV,IAAA,CACpBW,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,qBAAA;IAAAE,sBAAA,GAAAZ,IAAA,CAC9Ba,sBAAsB;AAAtBA,IAAAA,sBAAsB,GAAAD,sBAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,sBAAA;IAAAE,eAAA,GAAAd,IAAA,CACjCe,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,eAAA;EAEd,OACEE,gBAACC,kBAAI,EAAA;IACHC,KAAK,EAAE,CAAC,iBAAiB,CAAC;AAC1BC,IAAAA,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;IACzBC,IAAI,EAAE,CAAC,MAAM,CAAC;AACdC,IAAAA,SAAS,EAAC,OAAO;AACjBC,IAAAA,GAAG,EAAC,UAAU;AAAAC,IAAAA,QAAA,EAAA,CAEdC,cAAA,CAACC,kBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,SAAS;AAACC,MAAAA,eAAe,EAAC,cAAc;AAAClB,MAAAA,OAAO,EAAEA,OAAO;AAAAc,MAAAA,QAAA,EACtEC,cAAA,CAACI,aAAiB,EAAA;AAChBC,QAAAA,IAAI,EAAE1B,UAAU;AAChBG,QAAAA,OAAO,EAAEA,OAAO;AAChBK,QAAAA,mBAAmB,EAAEA,mBAAmB;AACxCE,QAAAA,sBAAsB,EAAEA;OAAsB;MAE3C,EACPG,eAAA,CAACS,kBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAC,SAAS;AAACjB,MAAAA,OAAO,EAAEA,OAAO;AAAAc,MAAAA,QAAA,EAAA,CACvCC,eAACM,eAAY,EAAA;AAAC7B,QAAAA,KAAK,EAAEA,KAAK;AAAE8B,QAAAA,KAAK,EAAEhB;QAAc,EACjDS,cAAA,CAACQ,eAAc,EAAA;AAACzB,QAAAA,MAAM,EAAEA;AAAM,OAAA,CAAI;AAAA,KAAA,CAC7B;AAAA,GAAA,CACF;AAEX;;;;"}
@@ -11,6 +11,12 @@ var types = require('../DataForm/FormBuilder/types.js');
11
11
 
12
12
  /**
13
13
  * ShippingCarrierForm - Component using DataForm
14
+ *
15
+ * @deprecated This component is deprecated due to its overly abstract approach to form creation.
16
+ * Please use the more flexible `DataForm` component directly instead, which provides better control
17
+ * and customization for your specific use cases.
18
+ *
19
+ * @see {@link DataForm} for the recommended alternative
14
20
  */
15
21
  var ShippingCarrierForm = function ShippingCarrierForm(_ref) {
16
22
  var _ref$countryOptions = _ref.countryOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/ShippingCarrierForm/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport { ProgressCircle } from '@adobe/react-spectrum';\nimport { ShippingCarrierFormProps } from './types';\nimport DataForm from '../DataForm';\nimport { FieldType, FormBuilderComponents } from '../DataForm/FormBuilder/types';\n\n/**\n * ShippingCarrierForm - Component using DataForm\n */\nconst ShippingCarrierForm: React.FC<ShippingCarrierFormProps> = ({\n countryOptions = [],\n storeOptions = [],\n defaults = {},\n isLoading = false,\n onFormSubmit = (): Promise<void> => Promise.resolve(),\n onPostFormSubmit = (): Promise<void> => Promise.resolve(),\n onBackPress = (): void => {},\n}) => {\n const [formFields, setFormFields] = useState<FormBuilderComponents>({ groups: [] });\n const defaultFormFields = {\n groups: [\n {\n code: 'shipping_carrier_form',\n label: 'Shipping Carrier',\n fields: [\n {\n label: 'Active',\n code: 'active',\n db_field: 'active',\n type: FieldType.TOGGLE,\n required: true,\n disabled: false,\n },\n {\n label: 'Code',\n code: 'code',\n db_field: 'code',\n type: FieldType.TEXT,\n required: true,\n disabled: false,\n },\n {\n label: 'Title',\n code: 'title',\n db_field: 'title',\n type: FieldType.TEXT,\n required: true,\n disabled: false,\n },\n {\n label: 'Stores',\n code: 'stores',\n db_field: 'stores',\n type: FieldType.MULTISELECT,\n required: true,\n disabled: false,\n options: storeOptions,\n },\n {\n label: 'Countries',\n code: 'countries',\n db_field: 'countries',\n type: FieldType.MULTISELECT,\n required: true,\n disabled: false,\n options: countryOptions,\n },\n {\n label: 'Sort Order',\n code: 'sort_order',\n db_field: 'sort_order',\n type: FieldType.NUMBER,\n required: true,\n disabled: false,\n },\n {\n label: 'Is Tracking Available?',\n code: 'tracking_available',\n db_field: 'tracking_available',\n type: FieldType.TOGGLE,\n required: true,\n disabled: false,\n },\n {\n label: 'Is Shipping Labels Available?',\n code: 'shipping_labels_available',\n db_field: 'shipping_labels_available',\n type: FieldType.TOGGLE,\n required: true,\n disabled: false,\n },\n ],\n },\n ],\n };\n\n return (\n <>\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <DataForm\n components={formFields}\n editItem={defaults}\n onFormLoad={async () => {\n setFormFields(defaultFormFields);\n }}\n onFormSubmit={onFormSubmit}\n onPostFormSubmit={onPostFormSubmit}\n onBackPress={onBackPress}\n />\n )}\n </>\n );\n};\n\nexport default ShippingCarrierForm;\n\n// Re-export types for external use\nexport type { ShippingCarrierFormProps, SelectOption } from './types';\n"],"names":["ShippingCarrierForm","_ref","_ref$countryOptions","countryOptions","_ref$storeOptions","storeOptions","_ref$defaults","defaults","_ref$isLoading","isLoading","_ref$onFormSubmit","onFormSubmit","Promise","resolve","_ref$onPostFormSubmit","onPostFormSubmit","_ref$onBackPress","onBackPress","_useState","useState","groups","_useState2","_slicedToArray","formFields","setFormFields","defaultFormFields","code","label","fields","db_field","type","FieldType","TOGGLE","required","disabled","TEXT","MULTISELECT","options","NUMBER","_jsx","_Fragment","children","ProgressCircle","size","isIndeterminate","DataForm","components","editItem","onFormLoad","_onFormLoad","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","apply","arguments"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/ShippingCarrierForm/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport { ProgressCircle } from '@adobe/react-spectrum';\nimport { ShippingCarrierFormProps } from './types';\nimport DataForm from '../DataForm';\nimport { FieldType, FormBuilderComponents } from '../DataForm/FormBuilder/types';\n\n/**\n * ShippingCarrierForm - Component using DataForm\n *\n * @deprecated This component is deprecated due to its overly abstract approach to form creation.\n * Please use the more flexible `DataForm` component directly instead, which provides better control\n * and customization for your specific use cases.\n *\n * @see {@link DataForm} for the recommended alternative\n */\nconst ShippingCarrierForm: React.FC<ShippingCarrierFormProps> = ({\n countryOptions = [],\n storeOptions = [],\n defaults = {},\n isLoading = false,\n onFormSubmit = (): Promise<void> => Promise.resolve(),\n onPostFormSubmit = (): Promise<void> => Promise.resolve(),\n onBackPress = (): void => {},\n}) => {\n const [formFields, setFormFields] = useState<FormBuilderComponents>({ groups: [] });\n const defaultFormFields = {\n groups: [\n {\n code: 'shipping_carrier_form',\n label: 'Shipping Carrier',\n fields: [\n {\n label: 'Active',\n code: 'active',\n db_field: 'active',\n type: FieldType.TOGGLE,\n required: true,\n disabled: false,\n },\n {\n label: 'Code',\n code: 'code',\n db_field: 'code',\n type: FieldType.TEXT,\n required: true,\n disabled: false,\n },\n {\n label: 'Title',\n code: 'title',\n db_field: 'title',\n type: FieldType.TEXT,\n required: true,\n disabled: false,\n },\n {\n label: 'Stores',\n code: 'stores',\n db_field: 'stores',\n type: FieldType.MULTISELECT,\n required: true,\n disabled: false,\n options: storeOptions,\n },\n {\n label: 'Countries',\n code: 'countries',\n db_field: 'countries',\n type: FieldType.MULTISELECT,\n required: true,\n disabled: false,\n options: countryOptions,\n },\n {\n label: 'Sort Order',\n code: 'sort_order',\n db_field: 'sort_order',\n type: FieldType.NUMBER,\n required: true,\n disabled: false,\n },\n {\n label: 'Is Tracking Available?',\n code: 'tracking_available',\n db_field: 'tracking_available',\n type: FieldType.TOGGLE,\n required: true,\n disabled: false,\n },\n {\n label: 'Is Shipping Labels Available?',\n code: 'shipping_labels_available',\n db_field: 'shipping_labels_available',\n type: FieldType.TOGGLE,\n required: true,\n disabled: false,\n },\n ],\n },\n ],\n };\n\n return (\n <>\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <DataForm\n components={formFields}\n editItem={defaults}\n onFormLoad={async () => {\n setFormFields(defaultFormFields);\n }}\n onFormSubmit={onFormSubmit}\n onPostFormSubmit={onPostFormSubmit}\n onBackPress={onBackPress}\n />\n )}\n </>\n );\n};\n\nexport default ShippingCarrierForm;\n\n// Re-export types for external use\nexport type { ShippingCarrierFormProps, SelectOption } from './types';\n"],"names":["ShippingCarrierForm","_ref","_ref$countryOptions","countryOptions","_ref$storeOptions","storeOptions","_ref$defaults","defaults","_ref$isLoading","isLoading","_ref$onFormSubmit","onFormSubmit","Promise","resolve","_ref$onPostFormSubmit","onPostFormSubmit","_ref$onBackPress","onBackPress","_useState","useState","groups","_useState2","_slicedToArray","formFields","setFormFields","defaultFormFields","code","label","fields","db_field","type","FieldType","TOGGLE","required","disabled","TEXT","MULTISELECT","options","NUMBER","_jsx","_Fragment","children","ProgressCircle","size","isIndeterminate","DataForm","components","editItem","onFormLoad","_onFormLoad","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","apply","arguments"],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -5,10 +5,11 @@ var index$1 = require('./components/MainContainer/index.js');
5
5
  var index$2 = require('./components/DataTable/index.js');
6
6
  var index$3 = require('./components/DataForm/index.js');
7
7
  var index$4 = require('./components/ShippingCarrierForm/index.js');
8
+ var index$5 = require('./components/FileUpload/index.js');
8
9
  var types$2 = require('./components/DataTable/types.js');
9
10
  var types$3 = require('./components/DataForm/FormBuilder/types.js');
10
- var index$6 = require('./utils/RouteParams/index.js');
11
- var index$5 = require('./utils/AdminUiSdk/index.js');
11
+ var index$7 = require('./utils/RouteParams/index.js');
12
+ var index$6 = require('./utils/AdminUiSdk/index.js');
12
13
  var types = require('./components/MainContainer/types.js');
13
14
  var types$1 = require('./components/MainContainer/NavigationBuilder/types.js');
14
15
 
@@ -19,6 +20,7 @@ exports.MainContainer = index$1.default;
19
20
  exports.DataTable = index$2.default;
20
21
  exports.DataForm = index$3.default;
21
22
  exports.ShippingCarrierForm = index$4.default;
23
+ exports.FileUpload = index$5.default;
22
24
  Object.defineProperty(exports, "GridAction", {
23
25
  enumerable: true,
24
26
  get: function () { return types$2.GridAction; }
@@ -27,8 +29,8 @@ Object.defineProperty(exports, "FieldType", {
27
29
  enumerable: true,
28
30
  get: function () { return types$3.FieldType; }
29
31
  });
30
- exports.useRouteParams = index$6.useRouteParams;
31
- exports.AdminUiSdk = index$5.default;
32
+ exports.useRouteParams = index$7.useRouteParams;
33
+ exports.AdminUiSdk = index$6.default;
32
34
  Object.defineProperty(exports, "LayoutOptions", {
33
35
  enumerable: true,
34
36
  get: function () { return types.LayoutOptions; }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,26 +6,17 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
6
6
  var uixGuest = require('@adobe/uix-guest');
7
7
 
8
8
  /**
9
- * AdminUiSdk - Utility for managing Adobe Admin UI extension registrations
9
+ * AdminUiSdk - Utility for managing Adobe Admin UI extensions
10
10
  *
11
11
  * @example
12
12
  * ```typescript
13
13
  * const sdk = new AdminUiSdk('admin_ui_extensibility');
14
14
  *
15
- * // Add a menu section (ID will be prefixed automatically: 'admin_ui_extensibility::apps')
16
- * sdk.addMenuSection('apps', 'Apps', 100);
17
- *
18
- * // Add a menu item (ID and parent will be prefixed automatically)
19
- * sdk.addMenuItem('first', 'First App on App Builder', 1, 'apps');
20
- *
21
- * // Add page configuration
22
- * sdk.addPage('Adobe Commerce First App on App Builder');
23
- *
24
- * // Get registration object
25
- * const registration = sdk.getRegistration();
26
- *
27
15
  * // Register with Adobe UIX
28
16
  * await sdk.registerExtension();
17
+ *
18
+ * // Get credentials
19
+ * const credentials = await sdk.getCredentials();
29
20
  * ```
30
21
  */
31
22
  var AdminUiSdk = /*#__PURE__*/function () {
@@ -36,8 +27,6 @@ var AdminUiSdk = /*#__PURE__*/function () {
36
27
  */
37
28
  function AdminUiSdk(extensionId) {
38
29
  _rollupPluginBabelHelpers.classCallCheck(this, AdminUiSdk);
39
- this.menuItems = [];
40
- this.pageTitle = null;
41
30
  if (!(extensionId !== null && extensionId !== void 0 && extensionId.trim())) {
42
31
  throw new Error('Extension ID is required and cannot be empty');
43
32
  }
@@ -57,130 +46,6 @@ var AdminUiSdk = /*#__PURE__*/function () {
57
46
  value: function isValidId(id) {
58
47
  return /^[a-zA-Z0-9_]+$/.test(id);
59
48
  }
60
- /**
61
- * Adds a menu item to the extension
62
- * @param id - Unique identifier for the menu item (will be prefixed with extensionId)
63
- * @param title - Display title for the menu item
64
- * @param sortOrder - Sort order for menu positioning
65
- * @param parent - Parent menu identifier (optional, will be prefixed with extensionId if provided)
66
- * @throws {Error} If parameters are invalid or ID already exists
67
- */
68
- }, {
69
- key: "addMenuItem",
70
- value: function addMenuItem(id, title, sortOrder, parent) {
71
- // Validation
72
- if (!(id !== null && id !== void 0 && id.trim())) {
73
- throw new Error('Menu item ID is required and cannot be empty');
74
- }
75
- if (!this.isValidId(id.trim())) {
76
- throw new Error('Menu item ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)');
77
- }
78
- if (!(title !== null && title !== void 0 && title.trim())) {
79
- throw new Error('Menu item title is required and cannot be empty');
80
- }
81
- if (parent !== undefined && !(parent !== null && parent !== void 0 && parent.trim())) {
82
- throw new Error('Menu item parent cannot be empty if provided');
83
- }
84
- if (parent !== undefined && !this.isValidId(parent.trim())) {
85
- throw new Error('Menu item parent must be alphanumeric with underscores only (no spaces, hyphens, or special characters)');
86
- }
87
- if (typeof sortOrder !== 'number' || sortOrder < 0) {
88
- throw new Error('Menu item sortOrder must be a non-negative number');
89
- }
90
- // Create full ID with extension prefix
91
- var fullId = "".concat(this.extensionId, "::").concat(id.trim());
92
- // Check for duplicate IDs
93
- if (this.menuItems.some(function (item) {
94
- return item.id === fullId;
95
- })) {
96
- throw new Error("Menu item with ID '".concat(fullId, "' already exists"));
97
- }
98
- // Build menu item object - only include parent if provided
99
- var menuItem = {
100
- id: fullId,
101
- title: title.trim(),
102
- sortOrder: sortOrder
103
- };
104
- if (parent !== null && parent !== void 0 && parent.trim()) {
105
- menuItem.parent = "".concat(this.extensionId, "::").concat(parent.trim());
106
- }
107
- // Add sanitized menu item
108
- this.menuItems.push(menuItem);
109
- }
110
- /**
111
- * Adds a menu section to the extension
112
- * @param id - Unique identifier for the menu section (will be prefixed with extensionId)
113
- * @param title - Display title for the menu section
114
- * @param sortOrder - Sort order for section positioning
115
- * @throws {Error} If parameters are invalid or ID already exists
116
- */
117
- }, {
118
- key: "addMenuSection",
119
- value: function addMenuSection(id, title, sortOrder) {
120
- // Validation
121
- if (!(id !== null && id !== void 0 && id.trim())) {
122
- throw new Error('Menu section ID is required and cannot be empty');
123
- }
124
- if (!this.isValidId(id.trim())) {
125
- throw new Error('Menu section ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)');
126
- }
127
- if (!(title !== null && title !== void 0 && title.trim())) {
128
- throw new Error('Menu section title is required and cannot be empty');
129
- }
130
- if (typeof sortOrder !== 'number' || sortOrder < 0) {
131
- throw new Error('Menu section sortOrder must be a non-negative number');
132
- }
133
- // Create full ID with extension prefix
134
- var fullId = "".concat(this.extensionId, "::").concat(id.trim());
135
- // Check for duplicate IDs
136
- if (this.menuItems.some(function (item) {
137
- return item.id === fullId;
138
- })) {
139
- throw new Error("Menu item with ID '".concat(fullId, "' already exists"));
140
- }
141
- // Add sanitized menu section with isSection: true
142
- this.menuItems.push({
143
- id: fullId,
144
- title: title.trim(),
145
- sortOrder: sortOrder,
146
- isSection: true
147
- });
148
- }
149
- /**
150
- * Sets the page title for the extension
151
- * @param title - The page title
152
- * @throws {Error} If title is empty or invalid
153
- */
154
- }, {
155
- key: "addPage",
156
- value: function addPage(title) {
157
- if (!(title !== null && title !== void 0 && title.trim())) {
158
- throw new Error('Page title is required and cannot be empty');
159
- }
160
- this.pageTitle = title.trim();
161
- }
162
- /**
163
- * Gets the complete registration object for the extension
164
- * @returns The registration object with optional menu items and page configuration
165
- */
166
- }, {
167
- key: "getRegistration",
168
- value: function getRegistration() {
169
- var registration = {};
170
- // Only include menuItems if there are any
171
- if (this.menuItems.length > 0) {
172
- registration.menuItems = _rollupPluginBabelHelpers.toConsumableArray(this.menuItems); // Return copy to prevent mutation
173
- }
174
- // Only include page if title is set
175
- if (this.pageTitle) {
176
- registration.page = {
177
- title: this.pageTitle
178
- };
179
- }
180
- return {
181
- registration: registration
182
- };
183
- }
184
49
  /**
185
50
  * Gets IMS credentials from Adobe UIX shared context
186
51
  * @returns Promise resolving to credentials object with imsToken and imsOrgId
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/utils/AdminUiSdk/index.ts"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { register, attach } from '@adobe/uix-guest';\nimport {\n MenuItem,\n AdminUiSdkRegistration,\n AdminUiSdkInterface,\n AdminUiSdkCredentials,\n} from './types';\n\n/**\n * AdminUiSdk - Utility for managing Adobe Admin UI extension registrations\n *\n * @example\n * ```typescript\n * const sdk = new AdminUiSdk('admin_ui_extensibility');\n *\n * // Add a menu section (ID will be prefixed automatically: 'admin_ui_extensibility::apps')\n * sdk.addMenuSection('apps', 'Apps', 100);\n *\n * // Add a menu item (ID and parent will be prefixed automatically)\n * sdk.addMenuItem('first', 'First App on App Builder', 1, 'apps');\n *\n * // Add page configuration\n * sdk.addPage('Adobe Commerce First App on App Builder');\n *\n * // Get registration object\n * const registration = sdk.getRegistration();\n *\n * // Register with Adobe UIX\n * await sdk.registerExtension();\n * ```\n */\nclass AdminUiSdk implements AdminUiSdkInterface {\n private readonly extensionId: string;\n private readonly menuItems: MenuItem[] = [];\n private pageTitle: string | null = null;\n\n /**\n * Creates a new AdminUiSdk instance\n * @param extensionId - Unique identifier for the extension\n * @throws {Error} If extensionId is empty or invalid\n */\n constructor(extensionId: string) {\n if (!extensionId?.trim()) {\n throw new Error('Extension ID is required and cannot be empty');\n }\n\n const trimmedId = extensionId.trim();\n if (!this.isValidId(trimmedId)) {\n throw new Error(\n 'Extension ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)'\n );\n }\n\n this.extensionId = trimmedId;\n }\n\n /**\n * Validates that an ID contains only alphanumeric characters and underscores\n * @param id - The ID to validate\n * @returns true if valid, false otherwise\n */\n private isValidId(id: string): boolean {\n return /^[a-zA-Z0-9_]+$/.test(id);\n }\n\n /**\n * Adds a menu item to the extension\n * @param id - Unique identifier for the menu item (will be prefixed with extensionId)\n * @param title - Display title for the menu item\n * @param sortOrder - Sort order for menu positioning\n * @param parent - Parent menu identifier (optional, will be prefixed with extensionId if provided)\n * @throws {Error} If parameters are invalid or ID already exists\n */\n addMenuItem(id: string, title: string, sortOrder: number, parent?: string): void {\n // Validation\n if (!id?.trim()) {\n throw new Error('Menu item ID is required and cannot be empty');\n }\n if (!this.isValidId(id.trim())) {\n throw new Error(\n 'Menu item ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)'\n );\n }\n if (!title?.trim()) {\n throw new Error('Menu item title is required and cannot be empty');\n }\n if (parent !== undefined && !parent?.trim()) {\n throw new Error('Menu item parent cannot be empty if provided');\n }\n if (parent !== undefined && !this.isValidId(parent.trim())) {\n throw new Error(\n 'Menu item parent must be alphanumeric with underscores only (no spaces, hyphens, or special characters)'\n );\n }\n if (typeof sortOrder !== 'number' || sortOrder < 0) {\n throw new Error('Menu item sortOrder must be a non-negative number');\n }\n\n // Create full ID with extension prefix\n const fullId = `${this.extensionId}::${id.trim()}`;\n\n // Check for duplicate IDs\n if (this.menuItems.some(item => item.id === fullId)) {\n throw new Error(`Menu item with ID '${fullId}' already exists`);\n }\n\n // Build menu item object - only include parent if provided\n const menuItem: MenuItem = {\n id: fullId,\n title: title.trim(),\n sortOrder,\n };\n\n if (parent?.trim()) {\n menuItem.parent = `${this.extensionId}::${parent.trim()}`;\n }\n\n // Add sanitized menu item\n this.menuItems.push(menuItem);\n }\n\n /**\n * Adds a menu section to the extension\n * @param id - Unique identifier for the menu section (will be prefixed with extensionId)\n * @param title - Display title for the menu section\n * @param sortOrder - Sort order for section positioning\n * @throws {Error} If parameters are invalid or ID already exists\n */\n addMenuSection(id: string, title: string, sortOrder: number): void {\n // Validation\n if (!id?.trim()) {\n throw new Error('Menu section ID is required and cannot be empty');\n }\n if (!this.isValidId(id.trim())) {\n throw new Error(\n 'Menu section ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)'\n );\n }\n if (!title?.trim()) {\n throw new Error('Menu section title is required and cannot be empty');\n }\n if (typeof sortOrder !== 'number' || sortOrder < 0) {\n throw new Error('Menu section sortOrder must be a non-negative number');\n }\n\n // Create full ID with extension prefix\n const fullId = `${this.extensionId}::${id.trim()}`;\n\n // Check for duplicate IDs\n if (this.menuItems.some(item => item.id === fullId)) {\n throw new Error(`Menu item with ID '${fullId}' already exists`);\n }\n\n // Add sanitized menu section with isSection: true\n this.menuItems.push({\n id: fullId,\n title: title.trim(),\n sortOrder,\n isSection: true,\n });\n }\n\n /**\n * Sets the page title for the extension\n * @param title - The page title\n * @throws {Error} If title is empty or invalid\n */\n addPage(title: string): void {\n if (!title?.trim()) {\n throw new Error('Page title is required and cannot be empty');\n }\n this.pageTitle = title.trim();\n }\n\n /**\n * Gets the complete registration object for the extension\n * @returns The registration object with optional menu items and page configuration\n */\n getRegistration(): AdminUiSdkRegistration {\n const registration: any = {};\n\n // Only include menuItems if there are any\n if (this.menuItems.length > 0) {\n registration.menuItems = [...this.menuItems]; // Return copy to prevent mutation\n }\n\n // Only include page if title is set\n if (this.pageTitle) {\n registration.page = {\n title: this.pageTitle,\n };\n }\n\n return {\n registration,\n };\n }\n\n /**\n * Gets IMS credentials from Adobe UIX shared context\n * @returns Promise resolving to credentials object with imsToken and imsOrgId\n * @throws {Error} If credentials retrieval fails\n */\n async getCredentials(): Promise<AdminUiSdkCredentials> {\n try {\n const guestConnection = await attach({ id: this.extensionId });\n const imsToken = guestConnection?.sharedContext?.get('imsToken') || null;\n const imsOrgId = guestConnection?.sharedContext?.get('imsOrgId') || null;\n\n return {\n imsToken,\n imsOrgId,\n };\n } catch (error) {\n throw new Error(\n `Failed to get credentials for extension '${this.extensionId}': ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Registers the extension with Adobe UIX\n * @throws {Error} If registration fails\n */\n async registerExtension(): Promise<void> {\n try {\n await register({\n id: this.extensionId,\n methods: {},\n });\n } catch (error) {\n throw new Error(\n `Failed to register extension '${this.extensionId}': ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n}\n\nexport default AdminUiSdk;\n\n// Re-export types for external use\nexport type {\n MenuItem,\n PageConfig,\n Registration,\n AdminUiSdkRegistration,\n AdminUiSdkInterface,\n AdminUiSdkCredentials,\n} from './types';\n"],"names":["AdminUiSdk","extensionId","_classCallCheck","menuItems","pageTitle","trim","Error","trimmedId","isValidId","_createClass","key","value","id","test","addMenuItem","title","sortOrder","parent","undefined","fullId","concat","some","item","menuItem","push","addMenuSection","isSection","addPage","getRegistration","registration","length","_toConsumableArray","page","_getCredentials","_asyncToGenerator","_regenerator","m","_callee","_guestConnection$shar","_guestConnection$shar2","guestConnection","imsToken","imsOrgId","_t","w","_context","p","n","attach","v","sharedContext","get","a","message","getCredentials","apply","arguments","_registerExtension","_callee2","_t2","_context2","register","methods","registerExtension"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/utils/AdminUiSdk/index.ts"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { register, attach } from '@adobe/uix-guest';\nimport { AdminUiSdkInterface, AdminUiSdkCredentials } from './types';\n\n/**\n * AdminUiSdk - Utility for managing Adobe Admin UI extensions\n *\n * @example\n * ```typescript\n * const sdk = new AdminUiSdk('admin_ui_extensibility');\n *\n * // Register with Adobe UIX\n * await sdk.registerExtension();\n *\n * // Get credentials\n * const credentials = await sdk.getCredentials();\n * ```\n */\nclass AdminUiSdk implements AdminUiSdkInterface {\n private readonly extensionId: string;\n\n /**\n * Creates a new AdminUiSdk instance\n * @param extensionId - Unique identifier for the extension\n * @throws {Error} If extensionId is empty or invalid\n */\n constructor(extensionId: string) {\n if (!extensionId?.trim()) {\n throw new Error('Extension ID is required and cannot be empty');\n }\n\n const trimmedId = extensionId.trim();\n if (!this.isValidId(trimmedId)) {\n throw new Error(\n 'Extension ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)'\n );\n }\n\n this.extensionId = trimmedId;\n }\n\n /**\n * Validates that an ID contains only alphanumeric characters and underscores\n * @param id - The ID to validate\n * @returns true if valid, false otherwise\n */\n private isValidId(id: string): boolean {\n return /^[a-zA-Z0-9_]+$/.test(id);\n }\n\n /**\n * Gets IMS credentials from Adobe UIX shared context\n * @returns Promise resolving to credentials object with imsToken and imsOrgId\n * @throws {Error} If credentials retrieval fails\n */\n async getCredentials(): Promise<AdminUiSdkCredentials> {\n try {\n const guestConnection = await attach({ id: this.extensionId });\n const imsToken = guestConnection?.sharedContext?.get('imsToken') || null;\n const imsOrgId = guestConnection?.sharedContext?.get('imsOrgId') || null;\n\n return {\n imsToken,\n imsOrgId,\n };\n } catch (error) {\n throw new Error(\n `Failed to get credentials for extension '${this.extensionId}': ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Registers the extension with Adobe UIX\n * @throws {Error} If registration fails\n */\n async registerExtension(): Promise<void> {\n try {\n await register({\n id: this.extensionId,\n methods: {},\n });\n } catch (error) {\n throw new Error(\n `Failed to register extension '${this.extensionId}': ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n}\n\nexport default AdminUiSdk;\n\n// Re-export types for external use\nexport type { AdminUiSdkInterface, AdminUiSdkCredentials } from './types';\n"],"names":["AdminUiSdk","extensionId","_classCallCheck","trim","Error","trimmedId","isValidId","_createClass","key","value","id","test","_getCredentials","_asyncToGenerator","_regenerator","m","_callee","_guestConnection$shar","_guestConnection$shar2","guestConnection","imsToken","imsOrgId","_t","w","_context","p","n","attach","v","sharedContext","get","a","concat","message","getCredentials","apply","arguments","_registerExtension","_callee2","_t2","_context2","register","methods","registerExtension"],"mappings":"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"}