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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +197 -25
  3. package/dist/cjs/components/DataForm/FieldBuilder/index.js +184 -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/FileUpload/index.js +241 -0
  14. package/dist/cjs/components/FileUpload/index.js.map +1 -0
  15. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js +1 -1
  16. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
  17. package/dist/cjs/components/ShippingCarrierForm/index.js +143 -0
  18. package/dist/cjs/components/ShippingCarrierForm/index.js.map +1 -0
  19. package/dist/cjs/index.js +8 -4
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/utils/AdminUiSdk/index.js +67 -97
  22. package/dist/cjs/utils/AdminUiSdk/index.js.map +1 -1
  23. package/dist/esm/components/DataForm/FieldBuilder/index.js +185 -36
  24. package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -1
  25. package/dist/esm/components/DataForm/FormBuilder/index.js +9 -7
  26. package/dist/esm/components/DataForm/FormBuilder/index.js.map +1 -1
  27. package/dist/esm/components/DataForm/FormBuilder/types.js +2 -0
  28. package/dist/esm/components/DataForm/FormBuilder/types.js.map +1 -1
  29. package/dist/esm/components/DataForm/index.js +5 -2
  30. package/dist/esm/components/DataForm/index.js.map +1 -1
  31. package/dist/esm/components/DataTable/index.js +5 -2
  32. package/dist/esm/components/DataTable/index.js.map +1 -1
  33. package/dist/esm/components/FileUpload/index.js +237 -0
  34. package/dist/esm/components/FileUpload/index.js.map +1 -0
  35. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js +1 -1
  36. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
  37. package/dist/esm/components/ShippingCarrierForm/index.js +139 -0
  38. package/dist/esm/components/ShippingCarrierForm/index.js.map +1 -0
  39. package/dist/esm/index.js +2 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts.map +1 -1
  42. package/dist/esm/types/components/DataForm/FormBuilder/index.d.ts.map +1 -1
  43. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts +2 -0
  44. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts.map +1 -1
  45. package/dist/esm/types/components/DataForm/index.d.ts.map +1 -1
  46. package/dist/esm/types/components/DataTable/index.d.ts.map +1 -1
  47. package/dist/esm/types/components/FileUpload/index.d.ts +8 -0
  48. package/dist/esm/types/components/FileUpload/index.d.ts.map +1 -0
  49. package/dist/esm/types/components/FileUpload/types.d.ts +71 -0
  50. package/dist/esm/types/components/FileUpload/types.d.ts.map +1 -0
  51. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts +18 -0
  52. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts.map +1 -0
  53. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts +55 -0
  54. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts.map +1 -0
  55. package/dist/esm/types/components/index.d.ts +10 -0
  56. package/dist/esm/types/components/index.d.ts.map +1 -1
  57. package/dist/esm/types/utils/AdminUiSdk/index.d.ts +17 -30
  58. package/dist/esm/types/utils/AdminUiSdk/index.d.ts.map +1 -1
  59. package/dist/esm/types/utils/AdminUiSdk/types.d.ts +9 -50
  60. package/dist/esm/types/utils/AdminUiSdk/types.d.ts.map +1 -1
  61. package/dist/esm/utils/AdminUiSdk/index.js +69 -99
  62. package/dist/esm/utils/AdminUiSdk/index.js.map +1 -1
  63. package/package.json +36 -35
@@ -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;;;;"}
@@ -0,0 +1,143 @@
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
+ * @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
20
+ */
21
+ var ShippingCarrierForm = function ShippingCarrierForm(_ref) {
22
+ var _ref$countryOptions = _ref.countryOptions,
23
+ countryOptions = _ref$countryOptions === void 0 ? [] : _ref$countryOptions,
24
+ _ref$storeOptions = _ref.storeOptions,
25
+ storeOptions = _ref$storeOptions === void 0 ? [] : _ref$storeOptions,
26
+ _ref$defaults = _ref.defaults,
27
+ defaults = _ref$defaults === void 0 ? {} : _ref$defaults,
28
+ _ref$isLoading = _ref.isLoading,
29
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
30
+ _ref$onFormSubmit = _ref.onFormSubmit,
31
+ onFormSubmit = _ref$onFormSubmit === void 0 ? function () {
32
+ return Promise.resolve();
33
+ } : _ref$onFormSubmit,
34
+ _ref$onPostFormSubmit = _ref.onPostFormSubmit,
35
+ onPostFormSubmit = _ref$onPostFormSubmit === void 0 ? function () {
36
+ return Promise.resolve();
37
+ } : _ref$onPostFormSubmit,
38
+ _ref$onBackPress = _ref.onBackPress,
39
+ onBackPress = _ref$onBackPress === void 0 ? function () {} : _ref$onBackPress;
40
+ var _useState = React.useState({
41
+ groups: []
42
+ }),
43
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
44
+ formFields = _useState2[0],
45
+ setFormFields = _useState2[1];
46
+ var defaultFormFields = {
47
+ groups: [{
48
+ code: 'shipping_carrier_form',
49
+ label: 'Shipping Carrier',
50
+ fields: [{
51
+ label: 'Active',
52
+ code: 'active',
53
+ db_field: 'active',
54
+ type: types.FieldType.TOGGLE,
55
+ required: true,
56
+ disabled: false
57
+ }, {
58
+ label: 'Code',
59
+ code: 'code',
60
+ db_field: 'code',
61
+ type: types.FieldType.TEXT,
62
+ required: true,
63
+ disabled: false
64
+ }, {
65
+ label: 'Title',
66
+ code: 'title',
67
+ db_field: 'title',
68
+ type: types.FieldType.TEXT,
69
+ required: true,
70
+ disabled: false
71
+ }, {
72
+ label: 'Stores',
73
+ code: 'stores',
74
+ db_field: 'stores',
75
+ type: types.FieldType.MULTISELECT,
76
+ required: true,
77
+ disabled: false,
78
+ options: storeOptions
79
+ }, {
80
+ label: 'Countries',
81
+ code: 'countries',
82
+ db_field: 'countries',
83
+ type: types.FieldType.MULTISELECT,
84
+ required: true,
85
+ disabled: false,
86
+ options: countryOptions
87
+ }, {
88
+ label: 'Sort Order',
89
+ code: 'sort_order',
90
+ db_field: 'sort_order',
91
+ type: types.FieldType.NUMBER,
92
+ required: true,
93
+ disabled: false
94
+ }, {
95
+ label: 'Is Tracking Available?',
96
+ code: 'tracking_available',
97
+ db_field: 'tracking_available',
98
+ type: types.FieldType.TOGGLE,
99
+ required: true,
100
+ disabled: false
101
+ }, {
102
+ label: 'Is Shipping Labels Available?',
103
+ code: 'shipping_labels_available',
104
+ db_field: 'shipping_labels_available',
105
+ type: types.FieldType.TOGGLE,
106
+ required: true,
107
+ disabled: false
108
+ }]
109
+ }]
110
+ };
111
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
112
+ children: isLoading ? jsxRuntime.jsx(reactSpectrum.ProgressCircle, {
113
+ size: "L",
114
+ "aria-label": "Loading...",
115
+ isIndeterminate: true
116
+ }) : jsxRuntime.jsx(index.default, {
117
+ components: formFields,
118
+ editItem: defaults,
119
+ onFormLoad: function () {
120
+ var _onFormLoad = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
121
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
122
+ while (1) switch (_context.n) {
123
+ case 0:
124
+ setFormFields(defaultFormFields);
125
+ case 1:
126
+ return _context.a(2);
127
+ }
128
+ }, _callee);
129
+ }));
130
+ function onFormLoad() {
131
+ return _onFormLoad.apply(this, arguments);
132
+ }
133
+ return onFormLoad;
134
+ }(),
135
+ onFormSubmit: onFormSubmit,
136
+ onPostFormSubmit: onPostFormSubmit,
137
+ onBackPress: onBackPress
138
+ })
139
+ });
140
+ };
141
+
142
+ exports.default = ShippingCarrierForm;
143
+ //# 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 *\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
@@ -4,10 +4,12 @@ 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');
8
+ var index$5 = require('./components/FileUpload/index.js');
7
9
  var types$2 = require('./components/DataTable/types.js');
8
10
  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');
11
+ var index$7 = require('./utils/RouteParams/index.js');
12
+ var index$6 = require('./utils/AdminUiSdk/index.js');
11
13
  var types = require('./components/MainContainer/types.js');
12
14
  var types$1 = require('./components/MainContainer/NavigationBuilder/types.js');
13
15
 
@@ -17,6 +19,8 @@ exports.ConfirmationDialog = index.default;
17
19
  exports.MainContainer = index$1.default;
18
20
  exports.DataTable = index$2.default;
19
21
  exports.DataForm = index$3.default;
22
+ exports.ShippingCarrierForm = index$4.default;
23
+ exports.FileUpload = index$5.default;
20
24
  Object.defineProperty(exports, "GridAction", {
21
25
  enumerable: true,
22
26
  get: function () { return types$2.GridAction; }
@@ -25,8 +29,8 @@ Object.defineProperty(exports, "FieldType", {
25
29
  enumerable: true,
26
30
  get: function () { return types$3.FieldType; }
27
31
  });
28
- exports.useRouteParams = index$5.useRouteParams;
29
- exports.AdminUiSdk = index$4.default;
32
+ exports.useRouteParams = index$7.useRouteParams;
33
+ exports.AdminUiSdk = index$6.default;
30
34
  Object.defineProperty(exports, "LayoutOptions", {
31
35
  enumerable: true,
32
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,23 +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 configurations
9
+ * AdminUiSdk - Utility for managing Adobe Admin UI extensions
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
+ * // Register with Adobe UIX
16
+ * await sdk.registerExtension();
22
17
  *
23
- * sdk.addPage('Punchout Integration');
24
- *
25
- * await sdk.register(); // Register with Adobe UIX
18
+ * // Get credentials
19
+ * const credentials = await sdk.getCredentials();
26
20
  * ```
27
21
  */
28
22
  var AdminUiSdk = /*#__PURE__*/function () {
@@ -33,125 +27,101 @@ var AdminUiSdk = /*#__PURE__*/function () {
33
27
  */
34
28
  function AdminUiSdk(extensionId) {
35
29
  _rollupPluginBabelHelpers.classCallCheck(this, AdminUiSdk);
36
- this.menuItems = [];
37
- this.pageTitle = null;
38
30
  if (!(extensionId !== null && extensionId !== void 0 && extensionId.trim())) {
39
31
  throw new Error('Extension ID is required and cannot be empty');
40
32
  }
41
- this.extensionId = extensionId.trim();
33
+ var trimmedId = extensionId.trim();
34
+ if (!this.isValidId(trimmedId)) {
35
+ throw new Error('Extension ID must be alphanumeric with underscores only (no spaces, hyphens, or special characters)');
36
+ }
37
+ this.extensionId = trimmedId;
42
38
  }
43
39
  /**
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
40
+ * Validates that an ID contains only alphanumeric characters and underscores
41
+ * @param id - The ID to validate
42
+ * @returns true if valid, false otherwise
47
43
  */
48
44
  return _rollupPluginBabelHelpers.createClass(AdminUiSdk, [{
49
- key: "addMenu",
50
- value: function addMenu(menuItem) {
51
- var _menuItem$id, _menuItem$title, _menuItem$parent;
52
- // Validation
53
- if (!((_menuItem$id = menuItem.id) !== null && _menuItem$id !== void 0 && _menuItem$id.trim())) {
54
- throw new Error('Menu item ID is required and cannot be empty');
55
- }
56
- if (!((_menuItem$title = menuItem.title) !== null && _menuItem$title !== void 0 && _menuItem$title.trim())) {
57
- throw new Error('Menu item title is required and cannot be empty');
58
- }
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');
61
- }
62
- if (typeof menuItem.sortOrder !== 'number' || menuItem.sortOrder < 0) {
63
- throw new Error('Menu item sortOrder must be a non-negative number');
64
- }
65
- // Check for duplicate IDs
66
- var trimmedId = menuItem.id.trim();
67
- if (this.menuItems.some(function (item) {
68
- return item.id === trimmedId;
69
- })) {
70
- throw new Error("Menu item with ID '".concat(trimmedId, "' already exists"));
71
- }
72
- // Add sanitized menu item
73
- this.menuItems.push({
74
- id: trimmedId,
75
- title: menuItem.title.trim(),
76
- parent: menuItem.parent.trim(),
77
- sortOrder: menuItem.sortOrder
78
- });
45
+ key: "isValidId",
46
+ value: function isValidId(id) {
47
+ return /^[a-zA-Z0-9_]+$/.test(id);
79
48
  }
80
49
  /**
81
- * Sets the page title for the extension
82
- * @param title - The page title
83
- * @throws {Error} If title is empty or invalid
84
- */
85
- }, {
86
- key: "addPage",
87
- value: function addPage(title) {
88
- if (!(title !== null && title !== void 0 && title.trim())) {
89
- throw new Error('Page title is required and cannot be empty');
90
- }
91
- this.pageTitle = title.trim();
92
- }
93
- /**
94
- * Registers the extension with Adobe UIX
95
- * @throws {Error} If registration fails
50
+ * Gets IMS credentials from Adobe UIX shared context
51
+ * @returns Promise resolving to credentials object with imsToken and imsOrgId
52
+ * @throws {Error} If credentials retrieval fails
96
53
  */
97
54
  }, {
98
- key: "register",
55
+ key: "getCredentials",
99
56
  value: (function () {
100
- var _register2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
101
- var config, _t;
57
+ var _getCredentials = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
58
+ var _guestConnection$shar, _guestConnection$shar2, guestConnection, imsToken, imsOrgId, _t;
102
59
  return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
103
60
  while (1) switch (_context.p = _context.n) {
104
61
  case 0:
105
62
  _context.p = 0;
106
- config = this.getConfig();
107
63
  _context.n = 1;
108
- return uixGuest.register(config);
64
+ return uixGuest.attach({
65
+ id: this.extensionId
66
+ });
109
67
  case 1:
110
- _context.n = 3;
111
- break;
68
+ guestConnection = _context.v;
69
+ imsToken = (guestConnection === null || guestConnection === void 0 || (_guestConnection$shar = guestConnection.sharedContext) === null || _guestConnection$shar === void 0 ? void 0 : _guestConnection$shar.get('imsToken')) || null;
70
+ imsOrgId = (guestConnection === null || guestConnection === void 0 || (_guestConnection$shar2 = guestConnection.sharedContext) === null || _guestConnection$shar2 === void 0 ? void 0 : _guestConnection$shar2.get('imsOrgId')) || null;
71
+ return _context.a(2, {
72
+ imsToken: imsToken,
73
+ imsOrgId: imsOrgId
74
+ });
112
75
  case 2:
113
76
  _context.p = 2;
114
77
  _t = _context.v;
115
- throw new Error("Failed to register extension '".concat(this.extensionId, "': ").concat(_t instanceof Error ? _t.message : 'Unknown error'));
78
+ throw new Error("Failed to get credentials for extension '".concat(this.extensionId, "': ").concat(_t instanceof Error ? _t.message : 'Unknown error'));
116
79
  case 3:
117
80
  return _context.a(2);
118
81
  }
119
82
  }, _callee, this, [[0, 2]]);
120
83
  }));
121
- function register() {
122
- return _register2.apply(this, arguments);
84
+ function getCredentials() {
85
+ return _getCredentials.apply(this, arguments);
123
86
  }
124
- return register;
87
+ return getCredentials;
125
88
  }()
126
89
  /**
127
- * Gets the complete configuration object for the extension (private method)
128
- * @returns The configuration object with extension ID and available methods
90
+ * Registers the extension with Adobe UIX
91
+ * @throws {Error} If registration fails
129
92
  */
130
93
  )
131
94
  }, {
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;
95
+ key: "registerExtension",
96
+ value: (function () {
97
+ var _registerExtension = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee2() {
98
+ var _t2;
99
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
100
+ while (1) switch (_context2.p = _context2.n) {
101
+ case 0:
102
+ _context2.p = 0;
103
+ _context2.n = 1;
104
+ return uixGuest.register({
105
+ id: this.extensionId,
106
+ methods: {}
107
+ });
108
+ case 1:
109
+ _context2.n = 3;
110
+ break;
111
+ case 2:
112
+ _context2.p = 2;
113
+ _t2 = _context2.v;
114
+ throw new Error("Failed to register extension '".concat(this.extensionId, "': ").concat(_t2 instanceof Error ? _t2.message : 'Unknown error'));
115
+ case 3:
116
+ return _context2.a(2);
147
117
  }
148
- };
118
+ }, _callee2, this, [[0, 2]]);
119
+ }));
120
+ function registerExtension() {
121
+ return _registerExtension.apply(this, arguments);
149
122
  }
150
- return {
151
- id: this.extensionId,
152
- methods: methods
153
- };
154
- }
123
+ return registerExtension;
124
+ }())
155
125
  }]);
156
126
  }();
157
127
 
@@ -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":";;;;;;;AAOA;;;;;;;;;;;;;;;;;;;AAmBG;AAnBH,IAoBMA,UAAU,gBAAA,YAAA;AAKd;;;;AAIG;EACH,SAAAA,UAAAA,CAAYC,WAAmB,EAAA;AAAAC,IAAAA,wCAAA,OAAAF,UAAA,CAAA;IARd,IAAA,CAAAG,SAAS,GAAe,EAAE;IACnC,IAAA,CAAAC,SAAS,GAAkB,IAAI;IAQrC,IAAI,EAACH,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,IAAXA,WAAW,CAAEI,IAAI,EAAE,CAAA,EAAE;AACxB,MAAA,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;AACjE,IAAA;AACA,IAAA,IAAI,CAACL,WAAW,GAAGA,WAAW,CAACI,IAAI,EAAE;AACvC,EAAA;AAEA;;;;AAIG;EAJH,OAAAE,qCAAA,CAAAP,UAAA,EAAA,CAAA;IAAAQ,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAC,OAAOA,CAACC,QAAkB,EAAA;AAAA,MAAA,IAAAC,YAAA,EAAAC,eAAA,EAAAC,gBAAA;AACxB;AACA,MAAA,IAAI,EAAA,CAAAF,YAAA,GAACD,QAAQ,CAACI,EAAE,MAAA,IAAA,IAAAH,YAAA,KAAA,MAAA,IAAXA,YAAA,CAAaP,IAAI,EAAE,CAAA,EAAE;AACxB,QAAA,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;AACjE,MAAA;AACA,MAAA,IAAI,EAAA,CAAAO,eAAA,GAACF,QAAQ,CAACK,KAAK,MAAA,IAAA,IAAAH,eAAA,KAAA,MAAA,IAAdA,eAAA,CAAgBR,IAAI,EAAE,CAAA,EAAE;AAC3B,QAAA,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;AACpE,MAAA;AACA,MAAA,IAAI,EAAA,CAAAQ,gBAAA,GAACH,QAAQ,CAACM,MAAM,MAAA,IAAA,IAAAH,gBAAA,KAAA,MAAA,IAAfA,gBAAA,CAAiBT,IAAI,EAAE,CAAA,EAAE;AAC5B,QAAA,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;AACrE,MAAA;AACA,MAAA,IAAI,OAAOK,QAAQ,CAACO,SAAS,KAAK,QAAQ,IAAIP,QAAQ,CAACO,SAAS,GAAG,CAAC,EAAE;AACpE,QAAA,MAAM,IAAIZ,KAAK,CAAC,mDAAmD,CAAC;AACtE,MAAA;AAEA;MACA,IAAMa,SAAS,GAAGR,QAAQ,CAACI,EAAE,CAACV,IAAI,EAAE;AACpC,MAAA,IAAI,IAAI,CAACF,SAAS,CAACiB,IAAI,CAAC,UAAAC,IAAI,EAAA;AAAA,QAAA,OAAIA,IAAI,CAACN,EAAE,KAAKI,SAAS;AAAA,MAAA,CAAA,CAAC,EAAE;AACtD,QAAA,MAAM,IAAIb,KAAK,CAAA,qBAAA,CAAAgB,MAAA,CAAuBH,SAAS,qBAAkB,CAAC;AACpE,MAAA;AAEA;AACA,MAAA,IAAI,CAAChB,SAAS,CAACoB,IAAI,CAAC;AAClBR,QAAAA,EAAE,EAAEI,SAAS;AACbH,QAAAA,KAAK,EAAEL,QAAQ,CAACK,KAAK,CAACX,IAAI,EAAE;AAC5BY,QAAAA,MAAM,EAAEN,QAAQ,CAACM,MAAM,CAACZ,IAAI,EAAE;QAC9Ba,SAAS,EAAEP,QAAQ,CAACO;AACrB,OAAA,CAAC;AACJ,IAAA;AAEA;;;;AAIG;AAJH,GAAA,EAAA;IAAAV,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAe,OAAOA,CAACR,KAAa,EAAA;MACnB,IAAI,EAACA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,IAALA,KAAK,CAAEX,IAAI,EAAE,CAAA,EAAE;AAClB,QAAA,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;AAC/D,MAAA;AACA,MAAA,IAAI,CAACF,SAAS,GAAGY,KAAK,CAACX,IAAI,EAAE;AAC/B,IAAA;AAEA;;;AAGG;AAHH,GAAA,EAAA;IAAAG,GAAA,EAAA,UAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAgB,UAAA,GAAAC,0CAAA,cAAAC,qCAAA,EAAA,CAAAC,CAAA,CAIA,SAAAC,OAAAA,GAAA;QAAA,IAAAC,MAAA,EAAAC,EAAA;AAAA,QAAA,OAAAJ,qCAAA,EAAA,CAAAK,CAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA,GAAAD,QAAA,CAAAE,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;AAEUJ,cAAAA,MAAM,GAAG,IAAI,CAACM,SAAS,EAAE;AAAAH,cAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA;cAAA,OACzBE,iBAAQ,CAACP,MAAa,CAAC;AAAA,YAAA,KAAA,CAAA;AAAAG,cAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;cAAAH,EAAA,GAAAE,QAAA,CAAAK,CAAA;cAAA,MAEvB,IAAIhC,KAAK,CAAA,gCAAA,CAAAgB,MAAA,CACoB,IAAI,CAACrB,WAAW,EAAA,KAAA,CAAA,CAAAqB,MAAA,CAAMS,EAAA,YAAiBzB,KAAK,GAAGyB,EAAA,CAAMQ,OAAO,GAAG,eAAe,CAAE,CAClH;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAN,QAAA,CAAAO,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAX,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CAEJ,CAAA,CAAA;AAAA,MAAA,SATKQ,QAAQA,GAAA;AAAA,QAAA,OAAAZ,UAAA,CAAAgB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAARL,QAAQ;AAAA,IAAA,CAAA;AAWd;;;AAGG;AAHH;AAAA,GAAA,EAAA;IAAA7B,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAIQ,SAAA2B,SAASA,GAAA;AAAA,MAAA,IAAAO,KAAA,GAAA,IAAA;MACf,IAAMC,OAAO,GAAgC,EAAE;AAE/C,MAAA,IAAI,IAAI,CAACzC,SAAS,CAAC0C,MAAM,GAAG,CAAC,EAAE;QAC7BD,OAAO,CAACE,IAAI,GAAG;UACbC,QAAQ,EAAE,SAAVA,QAAQA,GAAA;AAAA,YAAA,OAAAC,2CAAA,CAAwBL,KAAI,CAACxC,SAAS,CAAA;AAAA,UAAA,CAAC;SAChD;AACH,MAAA;MAEA,IAAI,IAAI,CAACC,SAAS,EAAE;QAClBwC,OAAO,CAACK,IAAI,GAAG;UACbC,QAAQ,EAAE,SAAVA,QAAQA,GAAA;YAAA,OAAgBP,KAAI,CAACvC,SAAU;AAAA,UAAA;SACxC;AACH,MAAA;MAEA,OAAO;QACLW,EAAE,EAAE,IAAI,CAACd,WAAW;AACpB2C,QAAAA,OAAO,EAAPA;OACD;AACH,IAAA;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
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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"}