@lingk/sync 0.1.60 → 0.1.62

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.
package/build/main.js CHANGED
@@ -260,6 +260,14 @@ module.exports =
260
260
  }
261
261
  }
262
262
 
263
+ if (!formValues['direction']) {
264
+ if (wizard.savedConfiguration && wizard.savedConfiguration['direction']) {
265
+ change('direction', wizard.savedConfiguration['direction']);
266
+ } else {
267
+ change('direction', defaults['direction']);
268
+ }
269
+ }
270
+
263
271
  if (!formValues['resourceGroups']) {
264
272
 
265
273
  if (wizard.savedBundles && wizard.savedBundles.bundles && wizard.sourceMetadata && wizard.destinationMetadata) {
@@ -433,10 +441,6 @@ module.exports =
433
441
  change('scenario', wizard.savedConfiguration['scenario']);
434
442
  }
435
443
 
436
- if (!formValues['direction']) {
437
- change('direction', wizard.savedConfiguration['direction'] || defaults['direction']);
438
- }
439
-
440
444
  if (wizard.savedConfiguration['isBidirectional'] && !formValues['bidirectional'] && typeof formValues['bidirectional'] === 'undefined') {
441
445
  change('bidirectional', wizard.savedConfiguration['isBidirectional'] === 'true');
442
446
  }
@@ -2048,31 +2052,13 @@ module.exports =
2048
2052
  }, {
2049
2053
  key: 'addDefaultResourceGroup',
2050
2054
  value: function addDefaultResourceGroup(v, selectIdx, newGroup) {
2051
- var section = newGroup.section;
2052
2055
  var _props = this.props,
2053
2056
  addGroup = _props.addGroup,
2054
- resourceGroups = _props.resourceGroups,
2055
- step = _props.step;
2057
+ resourceGroups = _props.resourceGroups;
2056
2058
  var resourceGroupIndex = this.state.resourceGroupIndex;
2057
2059
 
2058
- console.log("crrentIndex:", resourceGroupIndex);
2059
- var isReverse = section === step.sourceProvider;
2060
- console.log("isReverse: ", isReverse);
2061
- var firstReverseIndex = 0;
2062
- for (var i = 0; i < resourceGroups.length; i++) {
2063
- firstReverseIndex = i;
2064
- if (resourceGroups[i] && resourceGroups[i].provider === step.sourceProvider) break;
2065
- }
2066
- console.log("firstReverseIndex:", firstReverseIndex);
2067
- var finalIndex = resourceGroupIndex + 1;
2068
- console.log("finalIndex: ", finalIndex);
2069
- if (!isReverse) {
2070
- if (resourceGroupIndex > firstReverseIndex) finalIndex = firstReverseIndex - 1;
2071
- } else {
2072
- if (resourceGroupIndex < firstReverseIndex) finalIndex = resourceGroups.length;
2073
- }
2074
- console.log("final finalIndex: ", finalIndex);
2075
2060
 
2061
+ var finalIndex = resourceGroupIndex + 1;
2076
2062
  if (!(resourceGroups && resourceGroups.length === 0)) {
2077
2063
  this.go(false, finalIndex);
2078
2064
  }
@@ -2091,13 +2077,23 @@ module.exports =
2091
2077
  value: function addDefaultEntity(v, rscIndex, entity, groupIndex) {
2092
2078
  var _this3 = this;
2093
2079
 
2094
- var resourceGroups = this.props.resourceGroups;
2080
+ var _props2 = this.props,
2081
+ resourceGroups = _props2.resourceGroups,
2082
+ step = _props2.step;
2095
2083
 
2096
2084
  var group = resourceGroups[this.state.resourceGroupIndex];
2097
- if (group && group.resources && group.resources.length > 0) {
2085
+
2086
+ var entityExists = group && group.resources && group.resources.find(function (r) {
2087
+ return r.name === v && r.provider === entity.section;
2088
+ });
2089
+
2090
+ if (group && group.resources && group.resources.length > 0 && !entityExists) {
2098
2091
  setTimeout(function () {
2099
2092
  var sel = [].concat(_toConsumableArray(_this3.state.selectedEntities));
2100
- sel[_this3.state.resourceGroupIndex] = { name: v };
2093
+ sel[_this3.state.resourceGroupIndex] = {
2094
+ name: v,
2095
+ isDestinationEntity: entity.section === step.destinationProvider
2096
+ };
2101
2097
  _this3.setState({ selectedEntities: sel });
2102
2098
  }, 40);
2103
2099
  }
@@ -2156,15 +2152,15 @@ module.exports =
2156
2152
  value: function render() {
2157
2153
  var _this4 = this;
2158
2154
 
2159
- var _props2 = this.props,
2160
- resourceGroups = _props2.resourceGroups,
2161
- style = _props2.style,
2162
- isBundleStep = _props2.isBundleStep,
2163
- destinationSchema = _props2.destinationSchema,
2164
- inputs = _props2.inputs,
2165
- step = _props2.step,
2166
- sourceSchema = _props2.sourceSchema,
2167
- direction = _props2.direction;
2155
+ var _props3 = this.props,
2156
+ resourceGroups = _props3.resourceGroups,
2157
+ style = _props3.style,
2158
+ isBundleStep = _props3.isBundleStep,
2159
+ destinationSchema = _props3.destinationSchema,
2160
+ inputs = _props3.inputs,
2161
+ step = _props3.step,
2162
+ sourceSchema = _props3.sourceSchema,
2163
+ direction = _props3.direction;
2168
2164
  var _state = this.state,
2169
2165
  resourceGroupIndex = _state.resourceGroupIndex,
2170
2166
  paneToggle = _state.paneToggle,
@@ -2173,15 +2169,15 @@ module.exports =
2173
2169
  var Button = inputs.Button;
2174
2170
  var Tooltip = inputs.Tooltip;
2175
2171
 
2176
- var filteredSourceSchema = direction === 'reverse' ? sourceSchema.filter(function (r) {
2172
+ var filteredSourceSchema = direction === 'reverse' ? sourceSchema && sourceSchema.filter(function (r) {
2177
2173
  return r.method === 'POST' || r.method === 'PUT';
2178
- }) : sourceSchema.filter(function (r) {
2174
+ }) : sourceSchema && sourceSchema.filter(function (r) {
2179
2175
  return r.method !== 'POST' && r.method !== 'PUT';
2180
2176
  });
2181
2177
 
2182
- var bothMetadatas = direction === 'reverse' ? [filteredSourceSchema, destinationSchema] : [destinationSchema, filteredSourceSchema];
2178
+ var newTargetObjectMetadata = direction === 'reverse' ? [filteredSourceSchema] : [destinationSchema];
2183
2179
 
2184
- var bothSectionLabels = direction === 'reverse' ? [step.sourceProvider, step.destinationProvider] : [step.destinationProvider, step.sourceProvider];
2180
+ var newTargetSectionLabels = direction === 'reverse' ? [step.sourceProvider] : [step.destinationProvider];
2185
2181
 
2186
2182
  var propsForChild = {
2187
2183
  resourceGroups: resourceGroups, leftClicked: leftClicked, inputs: inputs, step: step,
@@ -2236,9 +2232,9 @@ module.exports =
2236
2232
  _react2.default.createElement(_selectWrapper2.default, { label: "Add Data Target", type: 'brand',
2237
2233
  style: { height: 40, width: 160 }, minWidth: 260, fieldPropLabel: 'name',
2238
2234
  onSelect: this.addDefaultResourceGroup,
2239
- values: bothMetadatas,
2235
+ values: newTargetObjectMetadata,
2240
2236
  title: 'Available Target Objects', inputs: inputs, sectionLabelSuffix: 'Objects',
2241
- sectionLabels: bothSectionLabels
2237
+ sectionLabels: newTargetSectionLabels
2242
2238
  })
2243
2239
  ) : null,
2244
2240
  _react2.default.createElement('br', null),
@@ -2311,7 +2307,7 @@ module.exports =
2311
2307
  return _react2.default.createElement(
2312
2308
  'div',
2313
2309
  { className: 'schema-group-name', key: i },
2314
- g.provider === step.sourceProvider ? g.name + ' (' + step.sourceProvider + ')' : g.name
2310
+ g.name
2315
2311
  );
2316
2312
  })
2317
2313
  )
@@ -2433,7 +2429,7 @@ module.exports =
2433
2429
  }
2434
2430
 
2435
2431
  // destination Keys (for de-duplication in the Connect modal)
2436
- if (!group.customExternalKeys) {
2432
+ if (!group.customExternalKeys && group.lingkSourceKey) {
2437
2433
  group.sourceKeys = [group.lingkSourceKey];
2438
2434
  group.sourceKeysObjects = [group.lingkSourceKeyObject];
2439
2435
  group.sourceKeysParents = [group.lingkSourceKeyParents];
@@ -5015,13 +5011,13 @@ module.exports =
5015
5011
 
5016
5012
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
5017
5013
 
5018
- function callGetMetadata(tenantId, appId, mode, providerType, urlSuffix, apiUrl, endpoint, credsConfig, isFramework) {
5014
+ function callGetMetadata(tenantId, appId, mode, providerType, urlSuffix, apiUrl, endpoint, credsConfig, isFramework, creds) {
5019
5015
  return function (dispatch) {
5020
5016
  dispatch({
5021
5017
  type: types.START_WIZARD_ENV_CHECK,
5022
5018
  mode: mode
5023
5019
  });
5024
- return dispatch(tryCheckConnection(tenantId, appId, providerType, credsConfig, isFramework)).then(function (r) {
5020
+ return dispatch(tryCheckConnection(tenantId, appId, providerType, credsConfig, isFramework, creds)).then(function (r) {
5025
5021
  return dispatch(callGetProviderMetadata(tenantId, appId, urlSuffix, apiUrl, mode, providerType, endpoint));
5026
5022
  }).then(function (res) {
5027
5023
  dispatch({
@@ -5037,14 +5033,32 @@ module.exports =
5037
5033
  };
5038
5034
  }
5039
5035
 
5040
- function tryCheckConnection(tenantId, appId, providerType, credsConfig, isFramework) {
5036
+ // "fake" credentials for demo purposes
5037
+ function demoCreds(creds, providerType) {
5038
+ if (creds && providerType) {
5039
+ switch (providerType) {
5040
+ case 'Blackboard':
5041
+ if (creds.key === '6c53d83209834b0e982c0984a5c11bdc' && creds.secret === '16d2ba71f8fa4f13a74f2264c47f6244') return true;
5042
+ return false;
5043
+ case 'Canvas':
5044
+ if (creds.accessToken === '7d4fb8b1afb540049ad2a7268b78da07') return true;
5045
+ return false;
5046
+ default:
5047
+ return false;
5048
+ }
5049
+ } else return false;
5050
+ }
5051
+
5052
+ function tryCheckConnection(tenantId, appId, providerType, credsConfig, isFramework, creds) {
5041
5053
  return function (dispatch, getState, api) {
5042
5054
  var needsCredentials = credsConfig && credsConfig.length > 0 && credsConfig[0] !== 'Oauth';
5043
5055
 
5044
5056
  var _getState = getState(),
5045
5057
  config = _getState.config;
5058
+ // if demo creds are entered, skip this
5059
+
5046
5060
 
5047
- if (needsCredentials && false) {
5061
+ if (needsCredentials && !demoCreds(creds, providerType) && !isFramework) {
5048
5062
  return api.post(tenantId + '/' + appId + '/testconnection/' + providerType.toLowerCase(), {
5049
5063
  endpoint: config.TRANS_API_URL
5050
5064
  });
@@ -5956,16 +5970,7 @@ module.exports =
5956
5970
  { className: 'bundle-table-body' },
5957
5971
  groups && groups.map(function (group, i) {
5958
5972
 
5959
- var linked = false;
5960
- if (group.customExternalKeys) {
5961
- if (group.sourceKeys && group.sourceKeys.length > 0 && group.destinationKeys && group.destinationKeys.length > 0) {
5962
- linked = true;
5963
- }
5964
- } else {
5965
- if (group.lingkSourceKey) {
5966
- linked = true;
5967
- }
5968
- }
5973
+ var linked = group.lingkSourceKey || group.sourceKeys && group.sourceKeys.length > 0 && group.destinationKeys && group.destinationKeys.length > 0;
5969
5974
 
5970
5975
  /*const groupsBeforeThis = groups.slice(0,i)
5971
5976
  let groupBeforeThisIndex = 0
@@ -5985,6 +5990,17 @@ module.exports =
5985
5990
  }
5986
5991
  })*/
5987
5992
 
5993
+ var groupName = group.name;
5994
+ if (isReverse) {
5995
+ if (group.provider === step.destinationProvider) {
5996
+ groupName = group.name + ' (' + step.destinationProvider + ')';
5997
+ }
5998
+ } else {
5999
+ if (group.provider === step.sourceProvider) {
6000
+ groupName = group.name + ' (' + step.sourceProvider + ')';
6001
+ }
6002
+ }
6003
+
5988
6004
  return _react2.default.createElement(
5989
6005
  _reactDraggable2.default,
5990
6006
  { axis: 'y', key: i, handle: '.dragon',
@@ -6021,6 +6037,16 @@ module.exports =
6021
6037
  { style: { paddingTop: 3, display: 'inline-block', overflow: 'hidden',
6022
6038
  textOverflow: 'ellipsis', maxWidth: 'calc(100% - 32px)', whiteSpace: 'nowrap' } },
6023
6039
  group.resources && group.resources.map(function (rsc, ii) {
6040
+ var rscName = rsc.name;
6041
+ if (isReverse) {
6042
+ if (rsc.provider === step.sourceProvider) {
6043
+ rscName = rsc.name + ' (' + step.sourceProvider + ')';
6044
+ }
6045
+ } else {
6046
+ if (rsc.provider === step.destinationProvider) {
6047
+ rscName = rsc.name + ' (' + step.destinationProvider + ')';
6048
+ }
6049
+ }
6024
6050
  return _react2.default.createElement(
6025
6051
  'span',
6026
6052
  { key: ii },
@@ -6032,7 +6058,7 @@ module.exports =
6032
6058
  _react2.default.createElement(
6033
6059
  'span',
6034
6060
  { style: { fontWeight: ii === 0 ? 'bold' : 'normal', whiteSpace: 'nowrap', color: ii === 0 || rsc.primaryKeyName && rsc.joinKeyName ? '#16325c' : '#c23934' } },
6035
- rsc.provider === step.destinationProvider ? rsc.name + ' (' + step.destinationProvider + ')' : rsc.name,
6061
+ rscName,
6036
6062
  '\xA0'
6037
6063
  )
6038
6064
  );
@@ -6077,7 +6103,7 @@ module.exports =
6077
6103
  _react2.default.createElement(
6078
6104
  'strong',
6079
6105
  { style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', display: 'block', paddingTop: 8 } },
6080
- group.provider === step.sourceProvider ? group.name + ' (' + step.sourceProvider + ')' : group.name
6106
+ groupName
6081
6107
  )
6082
6108
  )
6083
6109
  )
@@ -6144,6 +6170,7 @@ module.exports =
6144
6170
  group.mappings = group.mappings && group.mappings.filter(function (m) {
6145
6171
  return !m.isExternalKeyMapping;
6146
6172
  });
6173
+
6147
6174
  if (group.customExternalKeys) {
6148
6175
  group.sourceKeys && group.sourceKeys.forEach(function (sk, i) {
6149
6176
  if (sk && group.destinationKeys && group.destinationKeys[i]) {
@@ -6717,6 +6744,7 @@ module.exports =
6717
6744
  resourceGroups = _props3.resourceGroups,
6718
6745
  resourceGroupIndex = _props3.resourceGroupIndex,
6719
6746
  leftClicked = _props3.leftClicked,
6747
+ isReverse = _props3.isReverse,
6720
6748
  sourceSchema = _props3.sourceSchema,
6721
6749
  destinationSchema = _props3.destinationSchema,
6722
6750
  toggle = _props3.toggle,
@@ -6790,6 +6818,20 @@ module.exports =
6790
6818
  style: { background: 'white', height: 261, width: 358, padding: '6px 12px' } },
6791
6819
  group.resources && group.resources.map(function (rsc, i) {
6792
6820
  var schema = rsc.provider === step.destinationProvider ? destinationSchema : sourceSchema;
6821
+ var isDestinationEntity = rsc.provider === step.destinationProvider;
6822
+ var isSelected = selectedEntity.name === rsc.name && selectedEntity.isDestinationEntity === isDestinationEntity;
6823
+
6824
+ var rscName = rsc.name;
6825
+ if (isReverse) {
6826
+ if (rsc.provider === step.sourceProvider) {
6827
+ rscName = rsc.name + ' (' + step.sourceProvider + ')';
6828
+ }
6829
+ } else {
6830
+ if (rsc.provider === step.destinationProvider) {
6831
+ rscName = rsc.name + ' (' + step.destinationProvider + ')';
6832
+ }
6833
+ }
6834
+
6793
6835
  return _react2.default.createElement(
6794
6836
  'div',
6795
6837
  { key: i, className: 'accordion-panel', style: { overflow: 'hidden', width: 336 } },
@@ -6799,20 +6841,23 @@ module.exports =
6799
6841
  style: { height: 35 },
6800
6842
  onClick: function onClick() {
6801
6843
  _this4.scrollToTop(_this4['scroller-' + ii], 18, i * 43 + 6);
6802
- _this4.props.pickEntity({ name: rsc.name, isDestinationEntity: rsc.provider === step.destinationProvider });
6844
+ _this4.props.pickEntity({
6845
+ name: rsc.name,
6846
+ isDestinationEntity: rsc.provider === step.destinationProvider
6847
+ });
6803
6848
  _this4.setState({ selectedField: null, selectedFieldParents: null });
6804
6849
  }
6805
6850
  },
6806
6851
  _react2.default.createElement(
6807
6852
  'span',
6808
6853
  { className: 'accordion-panel-header-title' },
6809
- rsc.provider === step.destinationProvider ? rsc.name + (' (' + step.destinationProvider + ')') : rsc.name
6854
+ rscName
6810
6855
  ),
6811
6856
  _react2.default.createElement(
6812
6857
  'svg',
6813
6858
  { xmlns: 'http://www.w3.org/2000/svg', fill: '#FFFFFF', width: '18', height: '18', viewBox: '0 0 18 18',
6814
6859
  style: { float: 'right',
6815
- transform: selectedEntity.name === rsc.name ? 'rotate(180deg)' : 'rotate(0deg)'
6860
+ transform: isSelected ? 'rotate(180deg)' : 'rotate(0deg)'
6816
6861
  } },
6817
6862
  _react2.default.createElement('path', { d: 'M5 8l4 4 4-4z' })
6818
6863
  )
@@ -6822,7 +6867,7 @@ module.exports =
6822
6867
  { className: 'accordion-panel-collapse',
6823
6868
  style: {
6824
6869
  //height:schema && selectedEntity.name===rsc.name ? schema.find(r=>r.name===rsc.name).properties.length * 18 + 19 : 0,
6825
- maxHeight: schema && selectedEntity.name === rsc.name ? 20000 : 0,
6870
+ maxHeight: schema && isSelected ? 20000 : 0,
6826
6871
  padding: '0 6px'
6827
6872
  }
6828
6873
  },
@@ -6990,7 +7035,8 @@ module.exports =
6990
7035
 
6991
7036
  var MapTableSourceRow = exports.MapTableSourceRow = function MapTableSourceRow(props) {
6992
7037
  var group = props.group,
6993
- step = props.step;
7038
+ step = props.step,
7039
+ isReverse = props.isReverse;
6994
7040
 
6995
7041
  return _react2.default.createElement(
6996
7042
  'div',
@@ -7004,6 +7050,18 @@ module.exports =
7004
7050
  if (a.isExternalKeyMapping) return -1;else return 1;
7005
7051
  });
7006
7052
  var fieldNum = mapz ? mapz.length : 0;
7053
+
7054
+ var rscName = rsc.name;
7055
+ if (isReverse) {
7056
+ if (rsc.provider === step.sourceProvider) {
7057
+ rscName = rsc.name + ' (' + step.sourceProvider + ')';
7058
+ }
7059
+ } else {
7060
+ if (rsc.provider === step.destinationProvider) {
7061
+ rscName = rsc.name + ' (' + step.destinationProvider + ')';
7062
+ }
7063
+ }
7064
+
7007
7065
  return _react2.default.createElement(
7008
7066
  'div',
7009
7067
  { key: ii, style: {
@@ -7014,7 +7072,7 @@ module.exports =
7014
7072
  _react2.default.createElement(
7015
7073
  'strong',
7016
7074
  null,
7017
- rsc.provider === step.destinationProvider ? rsc.name + ' (' + step.destinationProvider + ')' : rsc.name
7075
+ rscName
7018
7076
  )
7019
7077
  );
7020
7078
  })
@@ -7194,11 +7252,25 @@ module.exports =
7194
7252
 
7195
7253
  var MapTableDestinationRow = exports.MapTableDestinationRow = function MapTableDestinationRow(_ref) {
7196
7254
  var group = _ref.group,
7197
- step = _ref.step;
7255
+ step = _ref.step,
7256
+ isReverse = _ref.isReverse;
7257
+
7258
+
7259
+ var groupName = group.name;
7260
+ if (isReverse) {
7261
+ if (group.provider === step.destinationProvider) {
7262
+ groupName = group.name + ' (' + step.destinationProvider + ')';
7263
+ }
7264
+ } else {
7265
+ if (group.provider === step.sourceProvider) {
7266
+ groupName = group.name + ' (' + step.sourceProvider + ')';
7267
+ }
7268
+ }
7269
+
7198
7270
  return _react2.default.createElement(
7199
7271
  'strong',
7200
7272
  { style: { fontSize: 16, whiteSpace: 'wrap' } },
7201
- group.provider === step.sourceProvider ? group.name + ' (' + step.sourceProvider + ')' : group.name
7273
+ groupName
7202
7274
  );
7203
7275
  };
7204
7276
 
@@ -7629,7 +7701,8 @@ module.exports =
7629
7701
  destinationSchema = _props3.destinationSchema,
7630
7702
  overflowHidden = _props3.overflowHidden,
7631
7703
  showOverflow = _props3.showOverflow,
7632
- step = _props3.step;
7704
+ step = _props3.step,
7705
+ isReverse = _props3.isReverse;
7633
7706
  var parameterModalResourceIndex = this.state.parameterModalResourceIndex;
7634
7707
 
7635
7708
 
@@ -7637,7 +7710,8 @@ module.exports =
7637
7710
  var Button = inputs.Button;
7638
7711
  var Radio = inputs.Radio;
7639
7712
  var group = resourceGroups[resourceGroupIndex];
7640
- var isReverse = group && group.provider === step.sourceProvider;
7713
+ //const isReverse = group && group.provider === step.sourceProvider
7714
+
7641
7715
  var bit = [true, false];
7642
7716
  var direction = leftClicked ? 'right' : 'left';
7643
7717
  var groupResourcesLength = group && group.resources ? group.resources.length : 0;
@@ -7773,6 +7847,20 @@ module.exports =
7773
7847
  }
7774
7848
  });
7775
7849
 
7850
+ var isDestinationEntity = rsc.provider === step.destinationProvider;
7851
+ var isSelected = selectedEntity.name === rsc.name && selectedEntity.isDestinationEntity === isDestinationEntity;
7852
+
7853
+ var rscName = rsc.name;
7854
+ if (isReverse) {
7855
+ if (rsc.provider === step.sourceProvider) {
7856
+ rscName = rsc.name + ' (' + step.sourceProvider + ')';
7857
+ }
7858
+ } else {
7859
+ if (rsc.provider === step.destinationProvider) {
7860
+ rscName = rsc.name + ' (' + step.destinationProvider + ')';
7861
+ }
7862
+ }
7863
+
7776
7864
  return _react2.default.createElement(
7777
7865
  _reactDraggable2.default,
7778
7866
  { axis: 'y', bounds: 'parent', key: i, handle: '.drag-handle',
@@ -7807,7 +7895,7 @@ module.exports =
7807
7895
  _react2.default.createElement(
7808
7896
  'span',
7809
7897
  { style: { maxWidth: 260, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', display: 'inline-block' } },
7810
- rsc.provider === step.destinationProvider ? rsc.name + ' (' + step.destinationProvider + ')' : rsc.name
7898
+ rscName
7811
7899
  ),
7812
7900
  rsc.parentRef && rsc.parentRef.length > 0 && rsc.parentRef.some(function (pr) {
7813
7901
  return pr.foreignKeyFields && pr.foreignKeyFields.length > 0;
@@ -7845,11 +7933,13 @@ module.exports =
7845
7933
  { style: { verticalAlign: 'top', float: 'right', marginRight: 8 } },
7846
7934
  i !== 0 ? _react2.default.createElement(
7847
7935
  Button,
7848
- { type: 'brand', icon: selectedEntity.name === rsc.name ? 'chevronup' : 'chevrondown',
7936
+ { type: 'brand', icon: isSelected ? 'chevronup' : 'chevrondown',
7849
7937
  iconAlign: 'right', className: rsc.joinKeyName && rsc.primaryKeyName ? 'join-ok' : '',
7850
7938
  onClick: function onClick() {
7851
- _this3.props.pickEntity({ name: rsc.name,
7852
- isDestinationEntity: rsc.provider === step.destinationProvider });
7939
+ _this3.props.pickEntity({
7940
+ name: rsc.name,
7941
+ isDestinationEntity: rsc.provider === step.destinationProvider
7942
+ });
7853
7943
  } },
7854
7944
  joinKeyLabel && primaryKeyLabel ? primaryKeyLabel + ' = ' + joinKeyLabel : 'Configure Join'
7855
7945
  ) : null
@@ -7858,7 +7948,7 @@ module.exports =
7858
7948
  _react2.default.createElement(
7859
7949
  _CSSTransitionGroup2.default,
7860
7950
  { transitionName: 'panel-collapse', transitionEnterTimeout: 250, transitionLeaveTimeout: 250 },
7861
- selectedEntity.name === rsc.name ? _react2.default.createElement(
7951
+ isSelected ? _react2.default.createElement(
7862
7952
  'div',
7863
7953
  { className: 'schema-accordion-collapse' },
7864
7954
  _react2.default.createElement(
@@ -9093,9 +9183,6 @@ module.exports =
9093
9183
 
9094
9184
  var _this = _possibleConstructorReturn(this, (EnvironmentStep.__proto__ || Object.getPrototypeOf(EnvironmentStep)).call(this));
9095
9185
 
9096
- _this.state = {
9097
- oauth: false
9098
- };
9099
9186
  _this.seeFields = _this.seeFields.bind(_this);
9100
9187
  _this.startOauth = _this.startOauth.bind(_this);
9101
9188
  return _this;
@@ -9133,17 +9220,6 @@ module.exports =
9133
9220
  (0, _loadData2.default)(step, wizard, change, formValues, actions);
9134
9221
  }
9135
9222
  }
9136
- }, {
9137
- key: 'componentWillReceiveProps',
9138
- value: function componentWillReceiveProps(newProps) {
9139
- var step = newProps.step;
9140
-
9141
- if (step.credentials && step.credentials.length === 1 && step.credentials[0] === 'Oauth') {
9142
- this.setState({ oauth: true });
9143
- } else {
9144
- this.setState({ oauth: false });
9145
- }
9146
- }
9147
9223
  }, {
9148
9224
  key: 'check',
9149
9225
  value: function check() {
@@ -9165,7 +9241,7 @@ module.exports =
9165
9241
 
9166
9242
  if (credentials) {
9167
9243
  actions.postCredentials(tenantId, accountId, step[step.mode + 'Provider'], endpoint, credentials, step.mode).then(function () {
9168
- actions.callGetMetadata(tenantId, accountId, step.mode, step[step.mode + 'Provider'], step.metadataEndpoint, step.metadataApi, endpoint || '_blank', step.credentials, step.isFramework);
9244
+ actions.callGetMetadata(tenantId, accountId, step.mode, step[step.mode + 'Provider'], step.metadataEndpoint, step.metadataApi, endpoint || '_blank', step.credentials, step.isFramework, credentials);
9169
9245
  });
9170
9246
  } else {
9171
9247
  actions.callGetMetadata(tenantId, accountId, step.mode, step[step.mode + 'Provider'], step.metadataEndpoint, step.metadataApi, endpoint || '_blank', step.credentials, step.isFramework);
@@ -9206,7 +9282,8 @@ module.exports =
9206
9282
  formValues = _props4.formValues,
9207
9283
  actions = _props4.actions,
9208
9284
  tenantId = _props4.tenantId,
9209
- accountId = _props4.accountId;
9285
+ accountId = _props4.accountId,
9286
+ change = _props4.change;
9210
9287
 
9211
9288
  var Button = inputs.Button;
9212
9289
  var Spinner = inputs.Spinner;
@@ -9219,6 +9296,8 @@ module.exports =
9219
9296
 
9220
9297
  var hasEndpoint = formValues[step.mode + 'Endpoint'] && formValues[step.mode + 'Endpoint'].length > 8;
9221
9298
 
9299
+ var isOauth = step.credentials && step.credentials.length === 1 && step.credentials[0] === 'Oauth';
9300
+
9222
9301
  return _react2.default.createElement(
9223
9302
  'form',
9224
9303
  { onKeyPress: function onKeyPress(e) {
@@ -9239,7 +9318,7 @@ module.exports =
9239
9318
  step.message
9240
9319
  ),
9241
9320
  _react2.default.createElement('br', null),
9242
- this.state.oauth ? _react2.default.createElement(
9321
+ isOauth ? _react2.default.createElement(
9243
9322
  'div',
9244
9323
  null,
9245
9324
  _react2.default.createElement(
@@ -9403,13 +9482,16 @@ module.exports =
9403
9482
  )
9404
9483
  )
9405
9484
  ),
9406
- wizard[step.mode + 'Metadata'] && step.mode === 'source' && _react2.default.createElement(
9485
+ wizard[step.mode + 'Metadata'] && step.mode === 'source' && step.bidirectional && _react2.default.createElement(
9407
9486
  'div',
9408
9487
  null,
9409
9488
  _react2.default.createElement('br', null),
9410
9489
  _react2.default.createElement(_reduxForm.Field, { name: 'direction', component: inputs.rfRadioGroup,
9411
9490
  label: 'Integration Direction',
9412
- onClickOption: function onClickOption(v) {},
9491
+ onClickOption: function onClickOption(v) {
9492
+ change('resourceGroups', []);
9493
+ change('scenario', null);
9494
+ },
9413
9495
  options: {
9414
9496
  'normal': 'Read Data from ' + step[step.mode + 'Provider'],
9415
9497
  'reverse': 'Write Data to ' + step[step.mode + 'Provider']
@@ -9472,7 +9554,7 @@ module.exports =
9472
9554
  ),
9473
9555
  _react2.default.createElement(
9474
9556
  'ul',
9475
- null,
9557
+ { style: { listStyle: 'none', paddingLeft: 5 } },
9476
9558
  POSTS.map(function (rsc, i) {
9477
9559
  return _react2.default.createElement(
9478
9560
  'li',
@@ -9912,6 +9994,8 @@ module.exports =
9912
9994
  return g.resources && g.resources.length > 0;
9913
9995
  });
9914
9996
 
9997
+ var isReverse = formValues.direction === 'reverse';
9998
+
9915
9999
  return _react2.default.createElement(
9916
10000
  'form',
9917
10001
  { onKeyPress: function onKeyPress(e) {
@@ -9920,10 +10004,7 @@ module.exports =
9920
10004
  _react2.default.createElement(
9921
10005
  'div',
9922
10006
  { style: { fontSize: 20, display: 'inline-block' } },
9923
- 'Map ',
9924
- step.sourceProvider,
9925
- ' Fields to ',
9926
- step.destinationProvider
10007
+ isReverse ? 'Map ' + step.destinationProvider + ' Fields to ' + step.sourceProvider : 'Map ' + step.sourceProvider + ' Fields to ' + step.destinationProvider
9927
10008
  ),
9928
10009
  _react2.default.createElement('br', null),
9929
10010
  _react2.default.createElement('br', null),
@@ -9931,7 +10012,11 @@ module.exports =
9931
10012
  'p',
9932
10013
  null,
9933
10014
  'Map data elements from data sources to ',
9934
- step.destinationProvider,
10015
+ _react2.default.createElement(
10016
+ 'span',
10017
+ null,
10018
+ isReverse ? step.sourceProvider : step.destinationProvider
10019
+ ),
9935
10020
  ' object fields one dataset at a time.'
9936
10021
  ),
9937
10022
  _react2.default.createElement('br', null),
@@ -9946,20 +10031,12 @@ module.exports =
9946
10031
  { resourceGroups: resourceGroups, isBundleStep: false, inputs: inputs,
9947
10032
  style: { position: 'relative', width: 640, height: 69, zIndex: 9000 }, step: step },
9948
10033
  _react2.default.createElement(_mapAccordion2.default, { sourceSchema: sourceSchema, destinationSchema: destinationSchema,
9949
- formValues: formValues, change: change, update: this.update, step: step, actions: actions }),
9950
- _react2.default.createElement(
9951
- MapTable,
9952
- { clearOneMapping: this.clearOneMapping, selectMapping: this.selectMapping,
9953
- mode: 'normal', step: step },
9954
- _react2.default.createElement(Rows.MapTableSourceRow, null),
9955
- _react2.default.createElement(Rows.MapTableMappingRow, null),
9956
- _react2.default.createElement(Rows.MapTableTransformRow, null),
9957
- _react2.default.createElement(Rows.MapTableDestinationRow, null)
9958
- ),
10034
+ formValues: formValues, change: change, update: this.update, step: step,
10035
+ actions: actions, isReverse: isReverse }),
9959
10036
  _react2.default.createElement(
9960
10037
  MapTable,
9961
10038
  { clearOneMapping: this.clearOneMapping, selectMapping: this.selectMapping,
9962
- mode: 'reverse', step: step },
10039
+ mode: formValues.direction, step: step },
9963
10040
  _react2.default.createElement(Rows.MapTableSourceRow, null),
9964
10041
  _react2.default.createElement(Rows.MapTableMappingRow, null),
9965
10042
  _react2.default.createElement(Rows.MapTableTransformRow, null),
@@ -10002,7 +10079,9 @@ module.exports =
10002
10079
  destinationMetadata: destinationSchema,
10003
10080
  sourceEndpoint: formValues.sourceEndpoint,
10004
10081
  accountId: this.props.accountId,
10005
- tenantId: this.props.tenantId, actions: this.props.actions })
10082
+ tenantId: this.props.tenantId, actions: this.props.actions,
10083
+ isReverse: isReverse
10084
+ })
10006
10085
  ),
10007
10086
  _react2.default.createElement(_navButtons2.default, { handleSubmit: handleSubmit, nav: nav, reset: reset, inputs: inputs,
10008
10087
  nextDisabled: !(resourceGroups && resourceGroups.length > 0) })
@@ -10059,23 +10138,6 @@ module.exports =
10059
10138
 
10060
10139
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10061
10140
 
10062
- var renderError = function renderError(_ref) {
10063
- var _ref$meta = _ref.meta,
10064
- touched = _ref$meta.touched,
10065
- error = _ref$meta.error;
10066
- return touched && error ? _react2.default.createElement(
10067
- 'div',
10068
- null,
10069
- _react2.default.createElement(
10070
- 'span',
10071
- null,
10072
- error
10073
- ),
10074
- _react2.default.createElement('br', null),
10075
- _react2.default.createElement('br', null)
10076
- ) : false;
10077
- };
10078
-
10079
10141
  var NameStep = function (_Component) {
10080
10142
  _inherits(NameStep, _Component);
10081
10143
 
@@ -10127,7 +10189,6 @@ module.exports =
10127
10189
  label: 'Integration Name' })
10128
10190
  ),
10129
10191
  _react2.default.createElement('br', null),
10130
- _react2.default.createElement(_reduxForm.Field, { name: 'customer', component: renderError }),
10131
10192
  _react2.default.createElement('br', null),
10132
10193
  _react2.default.createElement(_navButtons2.default, { nextDisabled: !formValues['title'], handleSubmit: handleSubmit, reset: reset, nav: nav, inputs: inputs }),
10133
10194
  _react2.default.createElement('br', null),
@@ -10537,11 +10598,19 @@ module.exports =
10537
10598
  var Radio = inputs.Radio;
10538
10599
  var scenario = formValues['scenario'];
10539
10600
  var Modal = inputs.Modal;
10601
+
10602
+ var isReverse = formValues.direction === 'reverse';
10603
+ var opts = isReverse ? step.options.filter(function (o) {
10604
+ return o.isReverse;
10605
+ }) : step.options.filter(function (o) {
10606
+ return !o.isReverse;
10607
+ });
10608
+
10540
10609
  var options = [{
10541
10610
  id: '0',
10542
10611
  title: 'Start From Scratch',
10543
10612
  label: 'Get started without any automatic mappings.'
10544
- }].concat(step.options);
10613
+ }].concat(opts);
10545
10614
  var scenarioOrder = step.scenarioOrder || [];
10546
10615
 
10547
10616
  return _react2.default.createElement(
@@ -10568,7 +10637,7 @@ module.exports =
10568
10637
  var o = options.find(function (opt) {
10569
10638
  return String(opt.id) === s;
10570
10639
  });
10571
- return _react2.default.createElement(
10640
+ return o && _react2.default.createElement(
10572
10641
  'div',
10573
10642
  { key: i },
10574
10643
  _react2.default.createElement(Radio, { onChange: function onChange() {
@@ -10589,7 +10658,7 @@ module.exports =
10589
10658
  })
10590
10659
  ),
10591
10660
  _react2.default.createElement('br', null),
10592
- _react2.default.createElement(_navButtons2.default, { nextDisabled: this.state.currentlyLoadingScenario || !(wizard.savedConfiguration && wizard.savedConfiguration.scenario) && !wizard.gotScenario ? true : false, handleSubmit: handleSubmit,
10661
+ _react2.default.createElement(_navButtons2.default, { nextDisabled: !scenario || this.state.currentlyLoadingScenario || !(wizard.savedConfiguration && wizard.savedConfiguration.scenario) && !wizard.gotScenario ? true : false, handleSubmit: handleSubmit,
10593
10662
  nav: nav, reset: reset, inputs: inputs }),
10594
10663
  _react2.default.createElement('br', null),
10595
10664
  _react2.default.createElement('br', null),
@@ -10779,7 +10848,9 @@ module.exports =
10779
10848
  name: v,
10780
10849
  resources: null,
10781
10850
  recordTypeId: newGroup.recordTypeId,
10782
- provider: newGroup.section
10851
+ provider: newGroup.section,
10852
+ // only Salesforce has ability to add "Lingk External Id"
10853
+ customExternalKeys: newGroup.section !== 'Salesforce'
10783
10854
  });
10784
10855
 
10785
10856
  change('resourceGroups', resourceGroups);
@@ -10791,11 +10862,10 @@ module.exports =
10791
10862
  change = _props5.change,
10792
10863
  formValues = _props5.formValues;
10793
10864
 
10794
-
10795
10865
  var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups']));
10796
10866
  var group = resourceGroups[groupIndex];
10797
10867
  var entityExists = group && group.resources && group.resources.find(function (r) {
10798
- return r.name === v;
10868
+ return r.name === v && r.provider === entity.section;
10799
10869
  });
10800
10870
  if (entityExists) return;
10801
10871
 
@@ -10842,19 +10912,17 @@ module.exports =
10842
10912
 
10843
10913
  var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups']));
10844
10914
  var group = resourceGroups[groupIndex];
10845
- if (group.customExternalKeys) {
10846
- if (group.sourceKeysObjects.find(function (sko) {
10847
- return sko === entity;
10848
- })) {
10849
- var deleteIndex = group.sourceKeysObjects.indexOf(entity);
10850
- group.sourceKeys.splice(deleteIndex, 1);
10851
- group.sourceKeysObjects.splice(deleteIndex, 1);
10852
- }
10853
- } else {
10854
- if (entity === group.lingkSourceKeyObject) {
10855
- group.lingkSourceKey = null;
10856
- group.lingkSourceKeyObject = null;
10857
- }
10915
+ // remove join keys pointing to deleted entity
10916
+ if (group.sourceKeysObjects && group.sourceKeysObjects.find(function (sko) {
10917
+ return sko === entity;
10918
+ })) {
10919
+ var deleteIndex = group.sourceKeysObjects.indexOf(entity);
10920
+ group.sourceKeys.splice(deleteIndex, 1);
10921
+ group.sourceKeysObjects.splice(deleteIndex, 1);
10922
+ }
10923
+ if (group.lingkSourceKeyObject && entity === group.lingkSourceKeyObject) {
10924
+ group.lingkSourceKey = null;
10925
+ group.lingkSourceKeyObject = null;
10858
10926
  }
10859
10927
  var mapz = group.mappings;
10860
10928
  if (group.mappings) {
@@ -10965,12 +11033,8 @@ module.exports =
10965
11033
 
10966
11034
  var enabled = resourceGroups && resourceGroups.length > 0 && resourceGroups.every(function (g) {
10967
11035
  var isConnected = false;
10968
- if (g.customExternalKeys) {
10969
- if (g.sourceKeys && g.sourceKeys.length > 0 && g.destinationKeys && g.destinationKeys.length > 0) {
10970
- isConnected = true;
10971
- }
10972
- } else {
10973
- if (g.lingkSourceKey) isConnected = true;
11036
+ if (g.lingkSourceKey || g.sourceKeys && g.sourceKeys.length > 0 && g.destinationKeys && g.destinationKeys.length > 0) {
11037
+ isConnected = true;
10974
11038
  }
10975
11039
  var areJoined = g.resources && g.resources.every(function (r, i) {
10976
11040
  return i === 0 || r.joinKeyName && r.primaryKeyName;
@@ -10978,6 +11042,8 @@ module.exports =
10978
11042
  return isConnected && areJoined;
10979
11043
  });
10980
11044
 
11045
+ var isReverse = formValues.direction === 'reverse';
11046
+
10981
11047
  return _react2.default.createElement(
10982
11048
  'form',
10983
11049
  { onKeyPress: function onKeyPress(e) {
@@ -10986,10 +11052,7 @@ module.exports =
10986
11052
  _react2.default.createElement(
10987
11053
  'div',
10988
11054
  { style: { fontSize: 20, display: 'inline-block' } },
10989
- 'Map ',
10990
- step.sourceProvider,
10991
- ' Objects to ',
10992
- step.destinationProvider
11055
+ isReverse ? 'Map ' + step.destinationProvider + ' Objects to ' + step.sourceProvider : 'Map ' + step.sourceProvider + ' Objects to ' + step.destinationProvider
10993
11056
  ),
10994
11057
  _react2.default.createElement('br', null),
10995
11058
  _react2.default.createElement('br', null),
@@ -10997,7 +11060,11 @@ module.exports =
10997
11060
  'p',
10998
11061
  null,
10999
11062
  'Map one or many data sources to a single ',
11000
- step.destinationProvider,
11063
+ _react2.default.createElement(
11064
+ 'span',
11065
+ null,
11066
+ isReverse ? step.sourceProvider : step.destinationProvider
11067
+ ),
11001
11068
  ' target object.'
11002
11069
  ),
11003
11070
  _react2.default.createElement('br', null),
@@ -11017,7 +11084,7 @@ module.exports =
11017
11084
  direction: formValues.direction },
11018
11085
  _react2.default.createElement(_schemaAccordion2.default, { sourceSchema: sourceSchema,
11019
11086
  changeEntityOrder: this.changeEntityOrder, step: step,
11020
- destinationSchema: destinationSchema,
11087
+ destinationSchema: destinationSchema, isReverse: isReverse,
11021
11088
  selectPrimaryKey: this.selectPrimaryKey,
11022
11089
  selectJoinKey: this.selectJoinKey, change: change }),
11023
11090
  _react2.default.createElement(_bundleTable2.default, { openConnectionModal: this.openConnectionModal, mode: formValues.direction })
@@ -11266,8 +11333,7 @@ module.exports =
11266
11333
  description: '',
11267
11334
  loading: false,
11268
11335
  manageScenarios: false,
11269
- scenarioOrder: [],
11270
- Scenarios: null
11336
+ scenarioOrder: []
11271
11337
  };
11272
11338
  _this.submitModal = _this.submitModal.bind(_this);
11273
11339
  _this.deleteScenario = _this.deleteScenario.bind(_this);
@@ -11306,12 +11372,12 @@ module.exports =
11306
11372
  tenantId = _props2.tenantId,
11307
11373
  accountId = _props2.accountId,
11308
11374
  step = _props2.step,
11309
- actions = _props2.actions;
11375
+ actions = _props2.actions,
11376
+ isReverse = _props2.isReverse;
11310
11377
 
11311
11378
  if (manageScenarios) {
11312
11379
  this.setState({ loading: true });
11313
11380
  actions.callUpdateScenarioList(tenantId, accountId, step.typeGuid, scenarioOrder).then(function (r) {
11314
- console.log(r);
11315
11381
  _this3.setState({ loading: false });
11316
11382
  });
11317
11383
  } else {
@@ -11327,11 +11393,11 @@ module.exports =
11327
11393
  bundles = _saveData.bundles,
11328
11394
  mappings = _saveData.mappings;
11329
11395
 
11330
- var data = { bundles: bundles, mappings: mappings, title: title, label: description, typeGuid: step.typeGuid };
11396
+ var data = { bundles: bundles, mappings: mappings, title: title, label: description, typeGuid: step.typeGuid, isReverse: isReverse };
11397
+
11331
11398
  actions.callCreateScenario(tenantId, accountId, data).then(function () {
11332
11399
  _this3.setState({ loading: true });
11333
11400
  actions.callGetScenarioList(tenantId, accountId, step.typeGuid).then(function (r) {
11334
- console.log(r);
11335
11401
  _this3.setState({ loading: false });
11336
11402
  });
11337
11403
  });
@@ -11807,7 +11873,6 @@ module.exports =
11807
11873
 
11808
11874
  console.log('BUNDLES: ', bundles);
11809
11875
  console.log('MAPPINGS: ', mappings);
11810
- console.log('ENDPOINTS: ', endpoints);
11811
11876
  //----------------------------------
11812
11877
  // Create configuration
11813
11878
  //----------------------------------
@@ -11817,8 +11882,8 @@ module.exports =
11817
11882
  if (formValues.destinationEndpoint) {
11818
11883
  endpoints.destinationEndpoint = formValues.destinationEndpoint;
11819
11884
  }
11820
- var configuration = Object.assign({}, endpoints, formValues['scenario'] && { scenario: String(formValues['scenario']) }, {
11821
- isBidirectional: String(formValues['bidirectional'] === true)
11885
+ var configuration = Object.assign({}, endpoints, formValues['scenario'] && { scenario: String(formValues['scenario']) }, { // integer of id
11886
+ direction: formValues['direction'] // 'normal' or 'reverse'
11822
11887
  });
11823
11888
  //----------------------------------
11824
11889
  // Post
@@ -11968,10 +12033,8 @@ module.exports =
11968
12033
  var destinationEndpoint = selector(state, 'destinationEndpoint');
11969
12034
  var destinationCredentials = selector(state, 'destinationCredentials');
11970
12035
  var deployment = selector(state, 'deployment');
11971
- var mappings = selector(state, 'mappings');
11972
12036
  var resourceGroups = selector(state, 'resourceGroups');
11973
12037
  var scenario = selector(state, 'scenario');
11974
- var bidirectional = selector(state, 'bidirectional');
11975
12038
  var direction = selector(state, 'direction');
11976
12039
  return Object.assign({}, state, {
11977
12040
  formValues: {
@@ -11981,10 +12044,8 @@ module.exports =
11981
12044
  destinationEndpoint: destinationEndpoint,
11982
12045
  destinationCredentials: destinationCredentials,
11983
12046
  deployment: deployment,
11984
- mappings: mappings,
11985
12047
  resourceGroups: resourceGroups,
11986
12048
  scenario: scenario,
11987
- bidirectional: bidirectional,
11988
12049
  direction: direction
11989
12050
  }
11990
12051
  });
@@ -12119,6 +12180,7 @@ module.exports =
12119
12180
  step.metadataEndpoint = wizard.source.metadataEndpoint;
12120
12181
  step.metadataApi = wizard.source.metadataApi;
12121
12182
  step.previewToken = this.props.previewToken;
12183
+ step.bidirectional = wizard.source.bidirectional;
12122
12184
  stepList.push(step);
12123
12185
  } else if (step.mode === 'destination' && !wizard.destination.skipEnvStep) {
12124
12186
  step.title = wizard.destination.type + ' Environment';
@@ -12127,6 +12189,7 @@ module.exports =
12127
12189
  step.metadataEndpoint = wizard.destination.metadataEndpoint;
12128
12190
  step.metadataApi = wizard.destination.metadataApi;
12129
12191
  step.previewToken = this.props.previewToken;
12192
+ step.bidirectional = wizard.destination.bidirectional;
12130
12193
  stepList.push(step);
12131
12194
  }
12132
12195
  } else if (step.type === 'schema') {