@adobe-commerce/aio-experience-kit 1.0.0 → 1.0.1

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 (51) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +284 -19
  3. package/dist/cjs/components/DataForm/FieldBuilder/index.js +180 -35
  4. package/dist/cjs/components/DataForm/FieldBuilder/index.js.map +1 -1
  5. package/dist/cjs/components/DataForm/FormBuilder/index.js +9 -7
  6. package/dist/cjs/components/DataForm/FormBuilder/index.js.map +1 -1
  7. package/dist/cjs/components/DataForm/FormBuilder/types.js +2 -0
  8. package/dist/cjs/components/DataForm/FormBuilder/types.js.map +1 -1
  9. package/dist/cjs/components/DataForm/index.js +4 -1
  10. package/dist/cjs/components/DataForm/index.js.map +1 -1
  11. package/dist/cjs/components/DataTable/index.js +4 -1
  12. package/dist/cjs/components/DataTable/index.js.map +1 -1
  13. package/dist/cjs/components/ShippingCarrierForm/index.js +137 -0
  14. package/dist/cjs/components/ShippingCarrierForm/index.js.map +1 -0
  15. package/dist/cjs/index.js +6 -4
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/utils/AdminUiSdk/index.js +171 -66
  18. package/dist/cjs/utils/AdminUiSdk/index.js.map +1 -1
  19. package/dist/esm/components/DataForm/FieldBuilder/index.js +181 -36
  20. package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -1
  21. package/dist/esm/components/DataForm/FormBuilder/index.js +9 -7
  22. package/dist/esm/components/DataForm/FormBuilder/index.js.map +1 -1
  23. package/dist/esm/components/DataForm/FormBuilder/types.js +2 -0
  24. package/dist/esm/components/DataForm/FormBuilder/types.js.map +1 -1
  25. package/dist/esm/components/DataForm/index.js +5 -2
  26. package/dist/esm/components/DataForm/index.js.map +1 -1
  27. package/dist/esm/components/DataTable/index.js +5 -2
  28. package/dist/esm/components/DataTable/index.js.map +1 -1
  29. package/dist/esm/components/ShippingCarrierForm/index.js +133 -0
  30. package/dist/esm/components/ShippingCarrierForm/index.js.map +1 -0
  31. package/dist/esm/index.js +1 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts.map +1 -1
  34. package/dist/esm/types/components/DataForm/FormBuilder/index.d.ts.map +1 -1
  35. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts +2 -0
  36. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts.map +1 -1
  37. package/dist/esm/types/components/DataForm/index.d.ts.map +1 -1
  38. package/dist/esm/types/components/DataTable/index.d.ts.map +1 -1
  39. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts +12 -0
  40. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts.map +1 -0
  41. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts +50 -0
  42. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts.map +1 -0
  43. package/dist/esm/types/components/index.d.ts +2 -0
  44. package/dist/esm/types/components/index.d.ts.map +1 -1
  45. package/dist/esm/types/utils/AdminUiSdk/index.d.ts +48 -22
  46. package/dist/esm/types/utils/AdminUiSdk/index.d.ts.map +1 -1
  47. package/dist/esm/types/utils/AdminUiSdk/types.d.ts +28 -23
  48. package/dist/esm/types/utils/AdminUiSdk/types.d.ts.map +1 -1
  49. package/dist/esm/utils/AdminUiSdk/index.js +172 -67
  50. package/dist/esm/utils/AdminUiSdk/index.js.map +1 -1
  51. package/package.json +36 -35
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/DataTable/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { Flex, View, ProgressCircle } from '@adobe/react-spectrum';\nimport ActionsBuilder from './ActionsBuilder';\nimport GridBuilder from './GridBuilder';\nimport { DataTableProps, GridAction, DataTableRow } from './types';\nimport { Selection } from '@react-types/shared';\n\nconst DataTable = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n buttons = [],\n massActions = [],\n onMassActionPress = (): Promise<void> => Promise.resolve(),\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = (): Promise<void> => Promise.resolve(),\n onGridLoad = (): Promise<void> => Promise.resolve(),\n isProcessing = false,\n}: DataTableProps<T>): JSX.Element => {\n const [isLoading, setLoading] = useState(true);\n const [ids, setIds] = useState<(number | string)[]>([]);\n\n // Stable reference to onGridLoad to prevent infinite loops\n const onGridLoadRef = useRef(onGridLoad);\n onGridLoadRef.current = onGridLoad;\n\n // Stable callback that won't change on every render\n const stableOnGridLoad = useCallback(() => {\n return onGridLoadRef.current();\n }, []);\n\n // Initial load effect - runs once on mount\n useEffect((): void => {\n (async (): Promise<void> => {\n await stableOnGridLoad();\n setLoading(false);\n })();\n }, [stableOnGridLoad]);\n\n return (\n <Flex width=\"100%\" alignItems=\"center\">\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <View width=\"100%\">\n <View gridArea=\"header\">\n <Flex direction=\"row\" width=\"100%\">\n <ActionsBuilder\n buttons={buttons}\n massActions={massActions}\n isMassActionDisabled={ids.length === 0 || isProcessing}\n onMassActionPress={async (key: string) => {\n await onMassActionPress(key, ids);\n setIds([]);\n }}\n />\n {isProcessing && (\n <ProgressCircle\n size=\"M\"\n aria-label=\"Syncing..\"\n isIndeterminate\n marginEnd=\"size-100\"\n />\n )}\n </Flex>\n </View>\n <View gridArea=\"content\">\n <GridBuilder<T>\n columns={columns}\n data={data}\n isMassActionsEnabled={massActions.length > 0}\n gridAction={gridAction}\n gridActions={gridActions}\n onGridActionPress={async (key: string, item: T) => {\n await onGridActionPress(key, item);\n }}\n onSelectionChange={(keys: Selection) => {\n const selectedIds: (string | number)[] = [];\n if (typeof keys === 'string' && keys === 'all') {\n data.forEach(item => {\n selectedIds.push(item.id);\n });\n } else {\n selectedIds.push(...keys);\n }\n setIds(selectedIds);\n }}\n />\n </View>\n </View>\n )}\n </Flex>\n );\n};\n\nexport default DataTable;\n"],"names":["DataTable","_ref","_ref$columns","columns","_ref$data","data","_ref$buttons","buttons","_ref$massActions","massActions","_ref$onMassActionPres","onMassActionPress","Promise","resolve","_ref$gridAction","gridAction","GridAction","ACTION_MENU","_ref$gridActions","gridActions","_ref$onGridActionPres","onGridActionPress","_ref$onGridLoad","onGridLoad","_ref$isProcessing","isProcessing","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","ids","setIds","onGridLoadRef","useRef","current","stableOnGridLoad","useCallback","useEffect","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_jsx","Flex","width","alignItems","ProgressCircle","size","isIndeterminate","_jsxs","View","gridArea","children","direction","ActionsBuilder","isMassActionDisabled","length","_onMassActionPress2","_callee2","key","_context2","_x","apply","arguments","marginEnd","GridBuilder","isMassActionsEnabled","_onGridActionPress2","_callee3","item","_context3","_x2","_x3","onSelectionChange","keys","selectedIds","forEach","push","id","_toConsumableArray"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/DataTable/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { Flex, View, ProgressCircle } from '@adobe/react-spectrum';\nimport ActionsBuilder from './ActionsBuilder';\nimport GridBuilder from './GridBuilder';\nimport { DataTableProps, GridAction, DataTableRow } from './types';\nimport { Selection } from '@react-types/shared';\n\nconst DataTable = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n buttons = [],\n massActions = [],\n onMassActionPress = (): Promise<void> => Promise.resolve(),\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = (): Promise<void> => Promise.resolve(),\n onGridLoad = (): Promise<void> => Promise.resolve(),\n isProcessing = false,\n}: DataTableProps<T>): JSX.Element => {\n const [isLoading, setLoading] = useState(true);\n const [ids, setIds] = useState<(number | string)[]>([]);\n\n // Stable reference to onGridLoad to prevent infinite loops\n const onGridLoadRef = useRef(onGridLoad);\n\n // Update ref in useEffect instead of during render\n useEffect(() => {\n onGridLoadRef.current = onGridLoad;\n }, [onGridLoad]);\n\n // Stable callback that won't change on every render\n const stableOnGridLoad = useCallback(() => {\n return onGridLoadRef.current();\n }, []);\n\n // Initial load effect - runs once on mount\n useEffect((): void => {\n (async (): Promise<void> => {\n await stableOnGridLoad();\n setLoading(false);\n })();\n }, [stableOnGridLoad]);\n\n return (\n <Flex width=\"100%\" alignItems=\"center\">\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <View width=\"100%\">\n <View gridArea=\"header\">\n <Flex direction=\"row\" width=\"100%\">\n <ActionsBuilder\n buttons={buttons}\n massActions={massActions}\n isMassActionDisabled={ids.length === 0 || isProcessing}\n onMassActionPress={async (key: string) => {\n await onMassActionPress(key, ids);\n setIds([]);\n }}\n />\n {isProcessing && (\n <ProgressCircle\n size=\"M\"\n aria-label=\"Syncing..\"\n isIndeterminate\n marginEnd=\"size-100\"\n />\n )}\n </Flex>\n </View>\n <View gridArea=\"content\">\n <GridBuilder<T>\n columns={columns}\n data={data}\n isMassActionsEnabled={massActions.length > 0}\n gridAction={gridAction}\n gridActions={gridActions}\n onGridActionPress={async (key: string, item: T) => {\n await onGridActionPress(key, item);\n }}\n onSelectionChange={(keys: Selection) => {\n const selectedIds: (string | number)[] = [];\n if (typeof keys === 'string' && keys === 'all') {\n data.forEach(item => {\n selectedIds.push(item.id);\n });\n } else {\n selectedIds.push(...keys);\n }\n setIds(selectedIds);\n }}\n />\n </View>\n </View>\n )}\n </Flex>\n );\n};\n\nexport default DataTable;\n"],"names":["DataTable","_ref","_ref$columns","columns","_ref$data","data","_ref$buttons","buttons","_ref$massActions","massActions","_ref$onMassActionPres","onMassActionPress","Promise","resolve","_ref$gridAction","gridAction","GridAction","ACTION_MENU","_ref$gridActions","gridActions","_ref$onGridActionPres","onGridActionPress","_ref$onGridLoad","onGridLoad","_ref$isProcessing","isProcessing","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","ids","setIds","onGridLoadRef","useRef","useEffect","current","stableOnGridLoad","useCallback","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_jsx","Flex","width","alignItems","ProgressCircle","size","isIndeterminate","_jsxs","View","gridArea","children","direction","ActionsBuilder","isMassActionDisabled","length","_onMassActionPress2","_callee2","key","_context2","_x","apply","arguments","marginEnd","GridBuilder","isMassActionsEnabled","_onGridActionPress2","_callee3","item","_context3","_x2","_x3","onSelectionChange","keys","selectedIds","forEach","push","id","_toConsumableArray"],"mappings":"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"}
@@ -0,0 +1,137 @@
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
+ var index = require('../DataForm/index.js');
10
+ var types = require('../DataForm/FormBuilder/types.js');
11
+
12
+ /**
13
+ * ShippingCarrierForm - Component using DataForm
14
+ */
15
+ var ShippingCarrierForm = function ShippingCarrierForm(_ref) {
16
+ var _ref$countryOptions = _ref.countryOptions,
17
+ countryOptions = _ref$countryOptions === void 0 ? [] : _ref$countryOptions,
18
+ _ref$storeOptions = _ref.storeOptions,
19
+ storeOptions = _ref$storeOptions === void 0 ? [] : _ref$storeOptions,
20
+ _ref$defaults = _ref.defaults,
21
+ defaults = _ref$defaults === void 0 ? {} : _ref$defaults,
22
+ _ref$isLoading = _ref.isLoading,
23
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
24
+ _ref$onFormSubmit = _ref.onFormSubmit,
25
+ onFormSubmit = _ref$onFormSubmit === void 0 ? function () {
26
+ return Promise.resolve();
27
+ } : _ref$onFormSubmit,
28
+ _ref$onPostFormSubmit = _ref.onPostFormSubmit,
29
+ onPostFormSubmit = _ref$onPostFormSubmit === void 0 ? function () {
30
+ return Promise.resolve();
31
+ } : _ref$onPostFormSubmit,
32
+ _ref$onBackPress = _ref.onBackPress,
33
+ onBackPress = _ref$onBackPress === void 0 ? function () {} : _ref$onBackPress;
34
+ var _useState = React.useState({
35
+ groups: []
36
+ }),
37
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
38
+ formFields = _useState2[0],
39
+ setFormFields = _useState2[1];
40
+ var defaultFormFields = {
41
+ groups: [{
42
+ code: 'shipping_carrier_form',
43
+ label: 'Shipping Carrier',
44
+ fields: [{
45
+ label: 'Active',
46
+ code: 'active',
47
+ db_field: 'active',
48
+ type: types.FieldType.TOGGLE,
49
+ required: true,
50
+ disabled: false
51
+ }, {
52
+ label: 'Code',
53
+ code: 'code',
54
+ db_field: 'code',
55
+ type: types.FieldType.TEXT,
56
+ required: true,
57
+ disabled: false
58
+ }, {
59
+ label: 'Title',
60
+ code: 'title',
61
+ db_field: 'title',
62
+ type: types.FieldType.TEXT,
63
+ required: true,
64
+ disabled: false
65
+ }, {
66
+ label: 'Stores',
67
+ code: 'stores',
68
+ db_field: 'stores',
69
+ type: types.FieldType.MULTISELECT,
70
+ required: true,
71
+ disabled: false,
72
+ options: storeOptions
73
+ }, {
74
+ label: 'Countries',
75
+ code: 'countries',
76
+ db_field: 'countries',
77
+ type: types.FieldType.MULTISELECT,
78
+ required: true,
79
+ disabled: false,
80
+ options: countryOptions
81
+ }, {
82
+ label: 'Sort Order',
83
+ code: 'sort_order',
84
+ db_field: 'sort_order',
85
+ type: types.FieldType.NUMBER,
86
+ required: true,
87
+ disabled: false
88
+ }, {
89
+ label: 'Is Tracking Available?',
90
+ code: 'tracking_available',
91
+ db_field: 'tracking_available',
92
+ type: types.FieldType.TOGGLE,
93
+ required: true,
94
+ disabled: false
95
+ }, {
96
+ label: 'Is Shipping Labels Available?',
97
+ code: 'shipping_labels_available',
98
+ db_field: 'shipping_labels_available',
99
+ type: types.FieldType.TOGGLE,
100
+ required: true,
101
+ disabled: false
102
+ }]
103
+ }]
104
+ };
105
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
106
+ children: isLoading ? jsxRuntime.jsx(reactSpectrum.ProgressCircle, {
107
+ size: "L",
108
+ "aria-label": "Loading...",
109
+ isIndeterminate: true
110
+ }) : jsxRuntime.jsx(index.default, {
111
+ components: formFields,
112
+ editItem: defaults,
113
+ onFormLoad: function () {
114
+ var _onFormLoad = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
115
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
116
+ while (1) switch (_context.n) {
117
+ case 0:
118
+ setFormFields(defaultFormFields);
119
+ case 1:
120
+ return _context.a(2);
121
+ }
122
+ }, _callee);
123
+ }));
124
+ function onFormLoad() {
125
+ return _onFormLoad.apply(this, arguments);
126
+ }
127
+ return onFormLoad;
128
+ }(),
129
+ onFormSubmit: onFormSubmit,
130
+ onPostFormSubmit: onPostFormSubmit,
131
+ onBackPress: onBackPress
132
+ })
133
+ });
134
+ };
135
+
136
+ exports.default = ShippingCarrierForm;
137
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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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"}
package/dist/cjs/index.js CHANGED
@@ -4,10 +4,11 @@ var index = require('./components/ConfirmationDialog/index.js');
4
4
  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
+ var index$4 = require('./components/ShippingCarrierForm/index.js');
7
8
  var types$2 = require('./components/DataTable/types.js');
8
9
  var types$3 = require('./components/DataForm/FormBuilder/types.js');
9
- var index$5 = require('./utils/RouteParams/index.js');
10
- var index$4 = require('./utils/AdminUiSdk/index.js');
10
+ var index$6 = require('./utils/RouteParams/index.js');
11
+ var index$5 = require('./utils/AdminUiSdk/index.js');
11
12
  var types = require('./components/MainContainer/types.js');
12
13
  var types$1 = require('./components/MainContainer/NavigationBuilder/types.js');
13
14
 
@@ -17,6 +18,7 @@ exports.ConfirmationDialog = index.default;
17
18
  exports.MainContainer = index$1.default;
18
19
  exports.DataTable = index$2.default;
19
20
  exports.DataForm = index$3.default;
21
+ exports.ShippingCarrierForm = index$4.default;
20
22
  Object.defineProperty(exports, "GridAction", {
21
23
  enumerable: true,
22
24
  get: function () { return types$2.GridAction; }
@@ -25,8 +27,8 @@ Object.defineProperty(exports, "FieldType", {
25
27
  enumerable: true,
26
28
  get: function () { return types$3.FieldType; }
27
29
  });
28
- exports.useRouteParams = index$5.useRouteParams;
29
- exports.AdminUiSdk = index$4.default;
30
+ exports.useRouteParams = index$6.useRouteParams;
31
+ exports.AdminUiSdk = index$5.default;
30
32
  Object.defineProperty(exports, "LayoutOptions", {
31
33
  enumerable: true,
32
34
  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,23 +6,26 @@ 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 configurations
9
+ * AdminUiSdk - Utility for managing Adobe Admin UI extension registrations
10
10
  *
11
11
  * @example
12
12
  * ```typescript
13
- * const extensionId = 'admin_ui_extensibility';
14
- * const sdk = new AdminUiSdk(extensionId);
13
+ * const sdk = new AdminUiSdk('admin_ui_extensibility');
15
14
  *
16
- * sdk.addMenu({
17
- * id: `${extensionId}::punchout_integrations`,
18
- * title: 'Punchout Integrations 123',
19
- * parent: 'Magento_Backend::content_elements',
20
- * sortOrder: 1
21
- * });
15
+ * // Add a menu section (ID will be prefixed automatically: 'admin_ui_extensibility::apps')
16
+ * sdk.addMenuSection('apps', 'Apps', 100);
22
17
  *
23
- * sdk.addPage('Punchout Integration');
18
+ * // Add a menu item (ID and parent will be prefixed automatically)
19
+ * sdk.addMenuItem('first', 'First App on App Builder', 1, 'apps');
24
20
  *
25
- * await sdk.register(); // Register with Adobe UIX
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
+ * // Register with Adobe UIX
28
+ * await sdk.registerExtension();
26
29
  * ```
27
30
  */
28
31
  var AdminUiSdk = /*#__PURE__*/function () {
@@ -38,43 +41,109 @@ var AdminUiSdk = /*#__PURE__*/function () {
38
41
  if (!(extensionId !== null && extensionId !== void 0 && extensionId.trim())) {
39
42
  throw new Error('Extension ID is required and cannot be empty');
40
43
  }
41
- this.extensionId = extensionId.trim();
44
+ var trimmedId = extensionId.trim();
45
+ if (!this.isValidId(trimmedId)) {
46
+ throw new Error('Extension ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)');
47
+ }
48
+ this.extensionId = trimmedId;
42
49
  }
43
50
  /**
44
- * Adds a menu item to the extension
45
- * @param menuItem - The menu item configuration
46
- * @throws {Error} If menuItem is invalid or ID already exists
51
+ * Validates that an ID contains only alphanumeric characters and underscores
52
+ * @param id - The ID to validate
53
+ * @returns true if valid, false otherwise
47
54
  */
48
55
  return _rollupPluginBabelHelpers.createClass(AdminUiSdk, [{
49
- key: "addMenu",
50
- value: function addMenu(menuItem) {
51
- var _menuItem$id, _menuItem$title, _menuItem$parent;
56
+ key: "isValidId",
57
+ value: function isValidId(id) {
58
+ return /^[a-zA-Z0-9_]+$/.test(id);
59
+ }
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) {
52
71
  // Validation
53
- if (!((_menuItem$id = menuItem.id) !== null && _menuItem$id !== void 0 && _menuItem$id.trim())) {
72
+ if (!(id !== null && id !== void 0 && id.trim())) {
54
73
  throw new Error('Menu item ID is required and cannot be empty');
55
74
  }
56
- if (!((_menuItem$title = menuItem.title) !== null && _menuItem$title !== void 0 && _menuItem$title.trim())) {
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())) {
57
79
  throw new Error('Menu item title is required and cannot be empty');
58
80
  }
59
- if (!((_menuItem$parent = menuItem.parent) !== null && _menuItem$parent !== void 0 && _menuItem$parent.trim())) {
60
- throw new Error('Menu item parent is required and cannot be empty');
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)');
61
86
  }
62
- if (typeof menuItem.sortOrder !== 'number' || menuItem.sortOrder < 0) {
87
+ if (typeof sortOrder !== 'number' || sortOrder < 0) {
63
88
  throw new Error('Menu item sortOrder must be a non-negative number');
64
89
  }
90
+ // Create full ID with extension prefix
91
+ var fullId = "".concat(this.extensionId, "::").concat(id.trim());
65
92
  // Check for duplicate IDs
66
- var trimmedId = menuItem.id.trim();
67
93
  if (this.menuItems.some(function (item) {
68
- return item.id === trimmedId;
94
+ return item.id === fullId;
69
95
  })) {
70
- throw new Error("Menu item with ID '".concat(trimmedId, "' already exists"));
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());
71
106
  }
72
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
73
142
  this.menuItems.push({
74
- id: trimmedId,
75
- title: menuItem.title.trim(),
76
- parent: menuItem.parent.trim(),
77
- sortOrder: menuItem.sortOrder
143
+ id: fullId,
144
+ title: title.trim(),
145
+ sortOrder: sortOrder,
146
+ isSection: true
78
147
  });
79
148
  }
80
149
  /**
@@ -91,67 +160,103 @@ var AdminUiSdk = /*#__PURE__*/function () {
91
160
  this.pageTitle = title.trim();
92
161
  }
93
162
  /**
94
- * Registers the extension with Adobe UIX
95
- * @throws {Error} If registration fails
163
+ * Gets the complete registration object for the extension
164
+ * @returns The registration object with optional menu items and page configuration
96
165
  */
97
166
  }, {
98
- key: "register",
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
+ /**
185
+ * Gets IMS credentials from Adobe UIX shared context
186
+ * @returns Promise resolving to credentials object with imsToken and imsOrgId
187
+ * @throws {Error} If credentials retrieval fails
188
+ */
189
+ }, {
190
+ key: "getCredentials",
99
191
  value: (function () {
100
- var _register2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
101
- var config, _t;
192
+ var _getCredentials = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
193
+ var _guestConnection$shar, _guestConnection$shar2, guestConnection, imsToken, imsOrgId, _t;
102
194
  return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
103
195
  while (1) switch (_context.p = _context.n) {
104
196
  case 0:
105
197
  _context.p = 0;
106
- config = this.getConfig();
107
198
  _context.n = 1;
108
- return uixGuest.register(config);
199
+ return uixGuest.attach({
200
+ id: this.extensionId
201
+ });
109
202
  case 1:
110
- _context.n = 3;
111
- break;
203
+ guestConnection = _context.v;
204
+ imsToken = (guestConnection === null || guestConnection === void 0 || (_guestConnection$shar = guestConnection.sharedContext) === null || _guestConnection$shar === void 0 ? void 0 : _guestConnection$shar.get('imsToken')) || null;
205
+ imsOrgId = (guestConnection === null || guestConnection === void 0 || (_guestConnection$shar2 = guestConnection.sharedContext) === null || _guestConnection$shar2 === void 0 ? void 0 : _guestConnection$shar2.get('imsOrgId')) || null;
206
+ return _context.a(2, {
207
+ imsToken: imsToken,
208
+ imsOrgId: imsOrgId
209
+ });
112
210
  case 2:
113
211
  _context.p = 2;
114
212
  _t = _context.v;
115
- throw new Error("Failed to register extension '".concat(this.extensionId, "': ").concat(_t instanceof Error ? _t.message : 'Unknown error'));
213
+ throw new Error("Failed to get credentials for extension '".concat(this.extensionId, "': ").concat(_t instanceof Error ? _t.message : 'Unknown error'));
116
214
  case 3:
117
215
  return _context.a(2);
118
216
  }
119
217
  }, _callee, this, [[0, 2]]);
120
218
  }));
121
- function register() {
122
- return _register2.apply(this, arguments);
219
+ function getCredentials() {
220
+ return _getCredentials.apply(this, arguments);
123
221
  }
124
- return register;
222
+ return getCredentials;
125
223
  }()
126
224
  /**
127
- * Gets the complete configuration object for the extension (private method)
128
- * @returns The configuration object with extension ID and available methods
225
+ * Registers the extension with Adobe UIX
226
+ * @throws {Error} If registration fails
129
227
  */
130
228
  )
131
229
  }, {
132
- key: "getConfig",
133
- value: function getConfig() {
134
- var _this = this;
135
- var methods = {};
136
- if (this.menuItems.length > 0) {
137
- methods.menu = {
138
- getItems: function getItems() {
139
- return _rollupPluginBabelHelpers.toConsumableArray(_this.menuItems);
140
- } // Return copy to prevent mutation
141
- };
142
- }
143
- if (this.pageTitle) {
144
- methods.page = {
145
- getTitle: function getTitle() {
146
- return _this.pageTitle;
230
+ key: "registerExtension",
231
+ value: (function () {
232
+ var _registerExtension = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee2() {
233
+ var _t2;
234
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
235
+ while (1) switch (_context2.p = _context2.n) {
236
+ case 0:
237
+ _context2.p = 0;
238
+ _context2.n = 1;
239
+ return uixGuest.register({
240
+ id: this.extensionId,
241
+ methods: {}
242
+ });
243
+ case 1:
244
+ _context2.n = 3;
245
+ break;
246
+ case 2:
247
+ _context2.p = 2;
248
+ _t2 = _context2.v;
249
+ throw new Error("Failed to register extension '".concat(this.extensionId, "': ").concat(_t2 instanceof Error ? _t2.message : 'Unknown error'));
250
+ case 3:
251
+ return _context2.a(2);
147
252
  }
148
- };
253
+ }, _callee2, this, [[0, 2]]);
254
+ }));
255
+ function registerExtension() {
256
+ return _registerExtension.apply(this, arguments);
149
257
  }
150
- return {
151
- id: this.extensionId,
152
- methods: methods
153
- };
154
- }
258
+ return registerExtension;
259
+ }())
155
260
  }]);
156
261
  }();
157
262
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/utils/AdminUiSdk/index.ts"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { register } from '@adobe/uix-guest';\nimport { MenuItem, AdminUiSdkConfig, AdminUiSdkInterface } from './types';\n\n/**\n * AdminUiSdk - Utility for managing Adobe Admin UI extension configurations\n *\n * @example\n * ```typescript\n * const extensionId = 'admin_ui_extensibility';\n * const sdk = new AdminUiSdk(extensionId);\n *\n * sdk.addMenu({\n * id: `${extensionId}::punchout_integrations`,\n * title: 'Punchout Integrations 123',\n * parent: 'Magento_Backend::content_elements',\n * sortOrder: 1\n * });\n *\n * sdk.addPage('Punchout Integration');\n *\n * await sdk.register(); // Register with Adobe UIX\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 this.extensionId = extensionId.trim();\n }\n\n /**\n * Adds a menu item to the extension\n * @param menuItem - The menu item configuration\n * @throws {Error} If menuItem is invalid or ID already exists\n */\n addMenu(menuItem: MenuItem): void {\n // Validation\n if (!menuItem.id?.trim()) {\n throw new Error('Menu item ID is required and cannot be empty');\n }\n if (!menuItem.title?.trim()) {\n throw new Error('Menu item title is required and cannot be empty');\n }\n if (!menuItem.parent?.trim()) {\n throw new Error('Menu item parent is required and cannot be empty');\n }\n if (typeof menuItem.sortOrder !== 'number' || menuItem.sortOrder < 0) {\n throw new Error('Menu item sortOrder must be a non-negative number');\n }\n\n // Check for duplicate IDs\n const trimmedId = menuItem.id.trim();\n if (this.menuItems.some(item => item.id === trimmedId)) {\n throw new Error(`Menu item with ID '${trimmedId}' already exists`);\n }\n\n // Add sanitized menu item\n this.menuItems.push({\n id: trimmedId,\n title: menuItem.title.trim(),\n parent: menuItem.parent.trim(),\n sortOrder: menuItem.sortOrder,\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 * Registers the extension with Adobe UIX\n * @throws {Error} If registration fails\n */\n async register(): Promise<void> {\n try {\n const config = this.getConfig();\n await register(config as any); // Type assertion for Adobe UIX compatibility\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 /**\n * Gets the complete configuration object for the extension (private method)\n * @returns The configuration object with extension ID and available methods\n */\n private getConfig(): AdminUiSdkConfig {\n const methods: AdminUiSdkConfig['methods'] = {};\n\n if (this.menuItems.length > 0) {\n methods.menu = {\n getItems: (): MenuItem[] => [...this.menuItems], // Return copy to prevent mutation\n };\n }\n\n if (this.pageTitle) {\n methods.page = {\n getTitle: (): string => this.pageTitle!,\n };\n }\n\n return {\n id: this.extensionId,\n methods,\n };\n }\n}\n\nexport default AdminUiSdk;\n\n// Re-export types for external use\nexport type {\n MenuItem,\n PageConfig,\n MenuMethods,\n PageMethods,\n AdminUiSdkConfig,\n AdminUiSdkInterface,\n} from './types';\n"],"names":["AdminUiSdk","extensionId","_classCallCheck","menuItems","pageTitle","trim","Error","_createClass","key","value","addMenu","menuItem","_menuItem$id","_menuItem$title","_menuItem$parent","id","title","parent","sortOrder","trimmedId","some","item","concat","push","addPage","_register2","_asyncToGenerator","_regenerator","m","_callee","config","_t","w","_context","p","n","getConfig","register","v","message","a","apply","arguments","_this","methods","length","menu","getItems","_toConsumableArray","page","getTitle"],"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 {\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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"}