@amp-labs/react 1.4.1 → 1.4.3

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.
@@ -31,6 +31,6 @@ function ConfigureInstallationBase({ onSave, onReset, isLoading, isCreateMode =
31
31
  // is the form in the uninstall case?
32
32
  const isUninstall = selectedObjectName === UninstallInstallation_1.UNINSTALL_INSTALLATION_CONST;
33
33
  return (isLoading ? (0, jsx_runtime_1.jsx)(LoadingIcon_1.LoadingIcon, {})
34
- : ((0, jsx_runtime_1.jsxs)("form", { style: { width: '100%', maxWidth: '50rem' }, onSubmit: onSave, children: [(0, jsx_runtime_1.jsxs)(react_1.Stack, { direction: "row", spacing: 4, marginBottom: "20px", flexDir: "row-reverse", children: [(0, jsx_runtime_1.jsx)(react_1.Button, { backgroundColor: "gray.800", _hover: { backgroundColor: 'gray.600' }, type: "submit", isDisabled: isDisabled, children: isCreateMode ? 'Install' : 'Save' }), (0, jsx_runtime_1.jsx)(react_1.Button, { backgroundColor: "gray.200", color: "blackAlpha.700", _hover: { backgroundColor: 'gray.300' }, isDisabled: isDisabled, onClick: onReset, children: "Reset" })] }), (0, jsx_runtime_1.jsxs)(react_1.Box, { p: 8, width: "100%", border: "1px solid #EFEFEF", borderRadius: 8, boxShadow: "md", textAlign: ['left'], margin: "auto", bgColor: "white", maxHeight: "100%", overflowY: "scroll", children: [loading && (0, jsx_runtime_1.jsx)(LoadingIcon_1.LoadingIcon, {}), hydratedRevision && !isUninstall && !isNonConfigurableWrite && (0, jsx_runtime_1.jsx)(ReadFields_1.ReadFields, {}), hydratedRevision && !isUninstall && isNonConfigurableWrite && (0, jsx_runtime_1.jsx)(WriteFields_1.WriteFields, {}), !loading && isUninstall && (0, jsx_runtime_1.jsx)(UninstallContent_1.UninstallContent, {})] })] })));
34
+ : ((0, jsx_runtime_1.jsxs)("form", { style: { width: '100%', maxWidth: '50rem' }, onSubmit: onSave, children: [(0, jsx_runtime_1.jsxs)(react_1.Stack, { direction: "row", spacing: 4, marginBottom: "20px", flexDir: "row-reverse", children: [(0, jsx_runtime_1.jsx)(react_1.Button, { backgroundColor: "gray.800", _hover: { backgroundColor: 'gray.600' }, type: "submit", isDisabled: isDisabled, children: isCreateMode ? 'Install' : 'Save' }), (0, jsx_runtime_1.jsx)(react_1.Button, { backgroundColor: "gray.200", color: "blackAlpha.700", _hover: { backgroundColor: 'gray.300' }, isDisabled: isDisabled, onClick: onReset, children: "Reset" })] }), (0, jsx_runtime_1.jsxs)(react_1.Box, { p: 8, width: "100%", border: "1px solid #EFEFEF", borderRadius: 8, boxShadow: "md", textAlign: ['left'], margin: "auto", bgColor: "white", maxHeight: "100%", overflowY: "scroll", minHeight: 300, children: [loading && (0, jsx_runtime_1.jsx)(LoadingIcon_1.LoadingIcon, {}), hydratedRevision && !isUninstall && !isNonConfigurableWrite && (0, jsx_runtime_1.jsx)(ReadFields_1.ReadFields, {}), hydratedRevision && !isUninstall && isNonConfigurableWrite && (0, jsx_runtime_1.jsx)(WriteFields_1.WriteFields, {}), !loading && isUninstall && (0, jsx_runtime_1.jsx)(UninstallContent_1.UninstallContent, {})] })] })));
35
35
  }
36
36
  exports.ConfigureInstallationBase = ConfigureInstallationBase;
@@ -19,9 +19,9 @@ function OptionalFields() {
19
19
  };
20
20
  const shouldRender = !!(((_b = configureState === null || configureState === void 0 ? void 0 : configureState.read) === null || _b === void 0 ? void 0 : _b.optionalFields)
21
21
  && ((_c = configureState === null || configureState === void 0 ? void 0 : configureState.read) === null || _c === void 0 ? void 0 : _c.optionalFields));
22
- return (shouldRender && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FieldHeader_1.FieldHeader, { string: `${appName} reads the following optional fields` }), (0, jsx_runtime_1.jsx)(react_1.Stack, { marginBottom: 10, height: 300, overflowY: "scroll", border: "2px solid #EFEFEF", borderRadius: 8, padding: 4, children: (_e = (_d = configureState === null || configureState === void 0 ? void 0 : configureState.read) === null || _d === void 0 ? void 0 : _d.optionalFields) === null || _e === void 0 ? void 0 : _e.map((field) => {
22
+ return (shouldRender && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FieldHeader_1.FieldHeader, { string: `${appName} reads the following optional fields` }), (0, jsx_runtime_1.jsx)(react_1.Stack, { marginBottom: 10, maxHeight: 300, overflowY: "scroll", border: "2px solid #EFEFEF", borderRadius: 8, gap: 0, children: (_e = (_d = configureState === null || configureState === void 0 ? void 0 : configureState.read) === null || _d === void 0 ? void 0 : _d.optionalFields) === null || _e === void 0 ? void 0 : _e.map((field) => {
23
23
  if (!(0, utils_1.isIntegrationFieldMapping)(field)) {
24
- return ((0, jsx_runtime_1.jsx)(react_1.Box, { display: "flex", gap: "5px", borderBottom: "1px", borderColor: "gray.100", children: (0, jsx_runtime_1.jsx)(react_1.Checkbox, { name: field.fieldName, id: field.fieldName, isChecked: !!(selectedOptionalFields === null || selectedOptionalFields === void 0 ? void 0 : selectedOptionalFields[field === null || field === void 0 ? void 0 : field.fieldName]), onChange: onCheckboxChange, children: field.displayName }) }, field.fieldName));
24
+ return ((0, jsx_runtime_1.jsx)(react_1.Box, { paddingX: 4, paddingY: 2, borderBottom: "1px", borderColor: "gray.100", children: (0, jsx_runtime_1.jsx)(react_1.Checkbox, { name: field.fieldName, id: field.fieldName, isChecked: !!(selectedOptionalFields === null || selectedOptionalFields === void 0 ? void 0 : selectedOptionalFields[field === null || field === void 0 ? void 0 : field.fieldName]), onChange: onCheckboxChange, children: field.displayName }) }, field.fieldName));
25
25
  }
26
26
  return null; // fallback for customed mapped fields
27
27
  }) })] })));
@@ -10,13 +10,25 @@ function WriteFields() {
10
10
  var _a, _b, _c, _d;
11
11
  const { appName, selectedObjectName, configureState, setConfigureState, } = (0, useSelectedConfigureState_1.useSelectedConfigureState)();
12
12
  const selectedWriteFields = (_a = configureState === null || configureState === void 0 ? void 0 : configureState.write) === null || _a === void 0 ? void 0 : _a.selectedNonConfigurableWriteFields;
13
+ const writeObjects = (_b = configureState === null || configureState === void 0 ? void 0 : configureState.write) === null || _b === void 0 ? void 0 : _b.writeObjects;
13
14
  const onCheckboxChange = (e) => {
14
15
  const { name, checked } = e.target;
15
16
  if (selectedObjectName && configureState) {
16
17
  (0, setNonConfigurableWriteField_1.setNonConfigurableWriteField)(selectedObjectName, setConfigureState, name, checked);
17
18
  }
18
19
  };
19
- const shouldRender = !!((_b = configureState === null || configureState === void 0 ? void 0 : configureState.write) === null || _b === void 0 ? void 0 : _b.writeObjects);
20
- return (shouldRender && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FieldHeader_1.FieldHeader, { string: `Allow ${appName} to write to these object` }), (0, jsx_runtime_1.jsx)(react_1.Stack, { marginBottom: 10, height: 300, overflowY: "scroll", border: "2px solid #EFEFEF", borderRadius: 8, padding: 4, children: (_d = (_c = configureState === null || configureState === void 0 ? void 0 : configureState.write) === null || _c === void 0 ? void 0 : _c.writeObjects) === null || _d === void 0 ? void 0 : _d.map((field) => ((0, jsx_runtime_1.jsx)(react_1.Box, { display: "flex", gap: "5px", borderBottom: "1px", borderColor: "gray.100", children: (0, jsx_runtime_1.jsx)(react_1.Checkbox, { name: field.objectName, id: field.objectName, onChange: onCheckboxChange, isChecked: !!(selectedWriteFields === null || selectedWriteFields === void 0 ? void 0 : selectedWriteFields[field.objectName]), children: field.displayName }) }, field.objectName))) })] })));
20
+ const onSelectAllCheckboxChange = (e) => {
21
+ var _a, _b;
22
+ const { checked } = e.target;
23
+ if (selectedObjectName && configureState) {
24
+ (_b = (_a = configureState === null || configureState === void 0 ? void 0 : configureState.write) === null || _a === void 0 ? void 0 : _a.writeObjects) === null || _b === void 0 ? void 0 : _b.forEach((field) => {
25
+ (0, setNonConfigurableWriteField_1.setNonConfigurableWriteField)(selectedObjectName, setConfigureState, field.objectName, checked);
26
+ });
27
+ }
28
+ };
29
+ const shouldRender = !!(writeObjects);
30
+ const isAllChecked = Object.keys(selectedWriteFields || {}).length === ((_d = (_c = configureState === null || configureState === void 0 ? void 0 : configureState.write) === null || _c === void 0 ? void 0 : _c.writeObjects) === null || _d === void 0 ? void 0 : _d.length);
31
+ const isIndeterminate = !isAllChecked && Object.keys(selectedWriteFields || {}).length > 0;
32
+ return (shouldRender && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FieldHeader_1.FieldHeader, { string: `Allow ${appName} to write to these object` }), (0, jsx_runtime_1.jsxs)(react_1.Stack, { marginBottom: 10, maxHeight: 300, overflowY: "scroll", border: "2px solid #EFEFEF", borderRadius: 8, gap: 0, children: [((writeObjects === null || writeObjects === void 0 ? void 0 : writeObjects.length) || 0) >= 2 && ((0, jsx_runtime_1.jsx)(react_1.Box, { backgroundColor: "gray.50", paddingX: 4, paddingY: 2, children: (0, jsx_runtime_1.jsx)(react_1.Checkbox, { name: "selectAll", id: "selectAll", onChange: onSelectAllCheckboxChange, isIndeterminate: isIndeterminate, isChecked: isAllChecked, children: "Select all" }) })), writeObjects.map((field) => ((0, jsx_runtime_1.jsx)(react_1.Box, { display: "flex", alignItems: "center", borderBottom: "1px", borderColor: "gray.100", paddingX: 4, paddingY: 2, children: (0, jsx_runtime_1.jsx)(react_1.Checkbox, { name: field.objectName, id: field.objectName, onChange: onCheckboxChange, isChecked: !!(selectedWriteFields === null || selectedWriteFields === void 0 ? void 0 : selectedWriteFields[field.objectName]), children: field.displayName }) }, field.objectName)))] })] })));
21
33
  }
22
34
  exports.WriteFields = WriteFields;
@@ -43,7 +43,7 @@ function ObjectManagementNav({ children, }) {
43
43
  const [tabIndex, setTabIndex] = (0, react_1.useState)(0);
44
44
  const appName = (project === null || project === void 0 ? void 0 : project.appName) || '';
45
45
  const config = installation === null || installation === void 0 ? void 0 : installation.config;
46
- const readNavObjects = hydratedRevision && (0, utils_2.generateNavObjects)(config, hydratedRevision);
46
+ const readNavObjects = hydratedRevision && (0, utils_2.generateReadNavObjects)(config, hydratedRevision);
47
47
  const isNavObjectsReady = readNavObjects !== null; // null = hydratedRevision/config is not ready
48
48
  const isWriteSupported = !!((_a = hydratedRevision === null || hydratedRevision === void 0 ? void 0 : hydratedRevision.content) === null || _a === void 0 ? void 0 : _a.write);
49
49
  const otherNavObject = isWriteSupported ? (0, utils_2.generateOtherNavObject)(config) : undefined;
@@ -83,7 +83,8 @@ exports.setHydrateConfigState = setHydrateConfigState;
83
83
  * resets configure state for all objects in hydrated revision to hydrated revision values
84
84
  */
85
85
  const resetAllObjectsConfigurationState = (hydratedRevision, config, setObjectConfiguresState) => {
86
- const navObjects = (0, utils_1.generateNavObjects)(config, hydratedRevision);
86
+ // read nav objects from hydrated revision
87
+ const navObjects = (0, utils_1.generateAllNavObjects)(config, hydratedRevision);
87
88
  const objectConfigurationsState = {};
88
89
  navObjects.forEach(({ name, completed }) => {
89
90
  if (completed) {
@@ -20,8 +20,15 @@ export declare function getRequiredMapFieldsFromObject(object: HydratedIntegrati
20
20
  export declare function getOptionalFieldsFromObject(object: HydratedIntegrationObject): HydratedIntegrationField[] | null;
21
21
  export declare const getReadObject: (config: Config, objectName: string) => any;
22
22
  export declare function getFieldKeyValue(field: HydratedIntegrationField): string;
23
+ /**
24
+ * generates Nav Objects for read action
25
+ * @param config
26
+ * @param hydratedRevision
27
+ * @returns NavObject[]
28
+ */
29
+ export declare const generateReadNavObjects: (config: Config | undefined, hydratedRevision: HydratedRevision) => NavObject[];
23
30
  export declare const generateOtherNavObject: (config: Config | undefined) => NavObject;
24
- export declare function generateNavObjects(config: Config | undefined, hydratedRevision: HydratedRevision): NavObject[];
31
+ export declare function generateAllNavObjects(config: Config | undefined, hydratedRevision: HydratedRevision): NavObject[];
25
32
  export declare function validateFieldMappings(requiredMapFields: IntegrationFieldMapping[] | null | undefined, selectedRequiredMapFields: SelectMappingFields | null | undefined, setErrors: (boundary: ErrorBoundary, errors: string[]) => void): {
26
33
  errorList: string[];
27
34
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateFieldMappings = exports.generateNavObjects = exports.generateOtherNavObject = exports.getFieldKeyValue = exports.getReadObject = exports.getOptionalFieldsFromObject = exports.getRequiredMapFieldsFromObject = exports.getRequiredFieldsFromObject = exports.getStandardObjectFromAction = exports.isIntegrationFieldMapping = void 0;
3
+ exports.validateFieldMappings = exports.generateAllNavObjects = exports.generateOtherNavObject = exports.generateReadNavObjects = exports.getFieldKeyValue = exports.getReadObject = exports.getOptionalFieldsFromObject = exports.getRequiredMapFieldsFromObject = exports.getRequiredFieldsFromObject = exports.getStandardObjectFromAction = exports.isIntegrationFieldMapping = void 0;
4
4
  const ErrorContextProvider_1 = require("../../context/ErrorContextProvider");
5
5
  const constant_1 = require("./nav/ObjectManagementNav/constant");
6
6
  /**
@@ -73,6 +73,7 @@ const generateReadNavObjects = (config, hydratedRevision) => {
73
73
  });
74
74
  return navObjects;
75
75
  };
76
+ exports.generateReadNavObjects = generateReadNavObjects;
76
77
  const generateOtherNavObject = (config) => {
77
78
  var _a;
78
79
  const navObject = {
@@ -83,11 +84,17 @@ const generateOtherNavObject = (config) => {
83
84
  };
84
85
  exports.generateOtherNavObject = generateOtherNavObject;
85
86
  // generates standard objects and whether they are complete based on config and hydrated revision
86
- function generateNavObjects(config, hydratedRevision) {
87
- const navObjects = generateReadNavObjects(config, hydratedRevision);
87
+ function generateAllNavObjects(config, hydratedRevision) {
88
+ var _a;
89
+ const navObjects = (0, exports.generateReadNavObjects)(config, hydratedRevision);
90
+ const isWriteSupported = !!((_a = hydratedRevision === null || hydratedRevision === void 0 ? void 0 : hydratedRevision.content) === null || _a === void 0 ? void 0 : _a.write);
91
+ const otherNavObject = isWriteSupported ? (0, exports.generateOtherNavObject)(config) : undefined;
92
+ if (otherNavObject) {
93
+ navObjects.push(otherNavObject);
94
+ }
88
95
  return navObjects;
89
96
  }
90
- exports.generateNavObjects = generateNavObjects;
97
+ exports.generateAllNavObjects = generateAllNavObjects;
91
98
  // validates whether required fields are filled out or throws error
92
99
  function validateFieldMappings(requiredMapFields, selectedRequiredMapFields, setErrors) {
93
100
  // check if fields with requirements are met
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "1.4.1";
1
+ export declare const LIB_VERSION = "1.4.3";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LIB_VERSION = void 0;
4
- exports.LIB_VERSION = '1.4.1';
4
+ exports.LIB_VERSION = '1.4.3';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amp-labs/react",
3
- "version": "1.4.1",
3
+ "version": "1.4.3",
4
4
  "description": "Ampersand React library.",
5
5
  "author": {
6
6
  "name": "Ampersand Labs",