@lingk/sync 0.0.46 → 0.0.47

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
@@ -45,7 +45,7 @@ module.exports =
45
45
  /* 0 */
46
46
  /***/ function(module, exports, __webpack_require__) {
47
47
 
48
- module.exports = __webpack_require__(61);
48
+ module.exports = __webpack_require__(62);
49
49
 
50
50
 
51
51
  /***/ },
@@ -391,7 +391,9 @@ module.exports =
391
391
  value: function removeResourceGroup(i) {
392
392
  this.props.removeGroup(i);
393
393
  var isFirst = i === 0;
394
- this.go(!isFirst, isFirst ? 0 : i - 1);
394
+ if (i === this.state.resourceGroupIndex) {
395
+ this.go(!isFirst, isFirst ? 0 : i - 1);
396
+ }
395
397
  }
396
398
  }, {
397
399
  key: "addDefaultResourceGroup",
@@ -530,7 +532,9 @@ module.exports =
530
532
  _react2.default.createElement(
531
533
  "span",
532
534
  null,
533
- "Destination Object"
535
+ "Destination: ",
536
+ step.destinationProvider,
537
+ " Object"
534
538
  ),
535
539
  _react2.default.createElement(
536
540
  Tooltip,
@@ -587,7 +591,7 @@ module.exports =
587
591
  "div",
588
592
  { style: { position: 'absolute', right: 0, top: -2, zIndex: 99 } },
589
593
  _react2.default.createElement(Select, { label: "+", type: "brand", style: { height: 40 }, menuAlign: "right", extraClass: true,
590
- onSelect: this.addDefaultResourceGroup, values: destinationSchema, title: "Add New",
594
+ onSelect: this.addDefaultResourceGroup, values: destinationSchema, title: "Add Destination",
591
595
  minWidth: 260
592
596
  })
593
597
  ) : null
@@ -1065,7 +1069,6 @@ module.exports =
1065
1069
  return api.get(tenantId + '/' + appId + '/' + urlSuffix, {
1066
1070
  endpoint: AGENT_API_URL
1067
1071
  }).then(function (res) {
1068
- console.log(res);
1069
1072
  dispatch({
1070
1073
  type: types.SET_WIZARD_METADATA,
1071
1074
  data: { res: res, mode: mode, providerType: providerType }
@@ -2075,7 +2078,12 @@ module.exports =
2075
2078
  var providerTypes = exports.providerTypes = {
2076
2079
  Salesforce: {
2077
2080
  credentials: [{ name: 'Username' }, { name: 'Password' }, { name: 'API Key' }],
2078
- metadataEndpoint: 'salesforceschema'
2081
+ metadataEndpoint: 'salesforceschema',
2082
+ customStep: {
2083
+ type: 'default',
2084
+ title: 'Choose Default Dataset',
2085
+ options: ['standard', 'heda']
2086
+ }
2079
2087
  },
2080
2088
  API: {
2081
2089
  credentials: [{ name: 'Consumer Key' }, { name: 'Secret' }]
@@ -2395,6 +2403,169 @@ module.exports =
2395
2403
 
2396
2404
  var _reduxForm = __webpack_require__(3);
2397
2405
 
2406
+ var _navButtons = __webpack_require__(4);
2407
+
2408
+ var _navButtons2 = _interopRequireDefault(_navButtons);
2409
+
2410
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2411
+
2412
+ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
2413
+
2414
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2415
+
2416
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
2417
+
2418
+ 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; }
2419
+
2420
+ var DefaultDatasetStep = function (_Component) {
2421
+ _inherits(DefaultDatasetStep, _Component);
2422
+
2423
+ function DefaultDatasetStep() {
2424
+ _classCallCheck(this, DefaultDatasetStep);
2425
+
2426
+ var _this = _possibleConstructorReturn(this, (DefaultDatasetStep.__proto__ || Object.getPrototypeOf(DefaultDatasetStep)).call(this));
2427
+
2428
+ _this.defaultResourceMapping = [{
2429
+ name: 'Contact',
2430
+ resources: [{
2431
+ name: 'Applicant',
2432
+ externalKey: null,
2433
+ provider: 'Banner'
2434
+ }]
2435
+ }];
2436
+ _this.loadDefault = _this.loadDefault.bind(_this);
2437
+ _this.select = _this.select.bind(_this);
2438
+ return _this;
2439
+ }
2440
+
2441
+ _createClass(DefaultDatasetStep, [{
2442
+ key: 'componentDidMount',
2443
+ value: function componentDidMount() {
2444
+ var _props = this.props,
2445
+ change = _props.change,
2446
+ formValues = _props.formValues;
2447
+
2448
+ if (formValues['defaultDataset']) {
2449
+ change('defaultDataset', formValues['defaultDataset']);
2450
+ }
2451
+ }
2452
+ }, {
2453
+ key: 'options',
2454
+ value: function options(ops) {
2455
+ var defaultDatasetTitles = {
2456
+ 'standard': 'Standard Salesforce Dataset',
2457
+ 'heda': 'Salesforce HEDA Dataset'
2458
+ };
2459
+ var obj = {};
2460
+ ops.forEach(function (o) {
2461
+ obj[o] = defaultDatasetTitles[o];
2462
+ });
2463
+ return obj;
2464
+ }
2465
+ }, {
2466
+ key: 'select',
2467
+ value: function select(v) {
2468
+ this.loadDefault();
2469
+ }
2470
+ }, {
2471
+ key: 'loadDefault',
2472
+ value: function loadDefault() {
2473
+ //default bundle map
2474
+ var change = this.props.change;
2475
+
2476
+ var defaults = [].concat(_toConsumableArray(this.defaultResourceMapping));
2477
+ change('resourceGroups', defaults);
2478
+ }
2479
+ }, {
2480
+ key: 'autoMap',
2481
+ value: function autoMap() {
2482
+ // this function needs to dig deeper and check every field against every mapping
2483
+ var _props2 = this.props,
2484
+ formValues = _props2.formValues,
2485
+ change = _props2.change,
2486
+ step = _props2.step;
2487
+
2488
+ var sourceSchema = formValues['sourceSchema'] || {};
2489
+ var obj = {};
2490
+ for (var key in step.autoMapData) {
2491
+ if (sourceSchema && sourceSchema[key.split('.')[0]]) {
2492
+ obj[key] = step.autoMapData[key];
2493
+ }
2494
+ }
2495
+ change('mappings', obj);
2496
+ }
2497
+ }, {
2498
+ key: 'render',
2499
+ value: function render() {
2500
+ var _props3 = this.props,
2501
+ inputs = _props3.inputs,
2502
+ handleSubmit = _props3.handleSubmit,
2503
+ nav = _props3.nav,
2504
+ step = _props3.step,
2505
+ reset = _props3.reset,
2506
+ formValues = _props3.formValues;
2507
+
2508
+
2509
+ return _react2.default.createElement(
2510
+ 'form',
2511
+ { onSubmit: handleSubmit, onKeyPress: function onKeyPress(e) {
2512
+ return e.charCode === 13 ? e.preventDefault() : null;
2513
+ } },
2514
+ _react2.default.createElement(
2515
+ 'div',
2516
+ { style: { fontSize: 20 } },
2517
+ 'Choose Default Dataset'
2518
+ ),
2519
+ _react2.default.createElement('br', null),
2520
+ _react2.default.createElement(
2521
+ 'p',
2522
+ null,
2523
+ 'Choose a default datasets as the starting point for your integration.'
2524
+ ),
2525
+ _react2.default.createElement('br', null),
2526
+ _react2.default.createElement(
2527
+ 'div',
2528
+ { style: { marginLeft: 16 } },
2529
+ _react2.default.createElement(_reduxForm.Field, { component: inputs.rfRadioGroup, name: 'defaultDataset', label: 'Default Dataset',
2530
+ options: this.options(step.options), onClickOption: this.select })
2531
+ ),
2532
+ _react2.default.createElement('br', null),
2533
+ _react2.default.createElement(_navButtons2.default, { nextDisabled: !formValues['defaultDataset'], handleSubmit: handleSubmit,
2534
+ nav: nav, reset: reset, inputs: inputs }),
2535
+ _react2.default.createElement('br', null),
2536
+ _react2.default.createElement('br', null)
2537
+ );
2538
+ }
2539
+ }]);
2540
+
2541
+ return DefaultDatasetStep;
2542
+ }(_react.Component);
2543
+
2544
+ exports.default = (0, _reduxForm.reduxForm)({
2545
+ form: 'wizard',
2546
+ destroyOnUnmount: false,
2547
+ forceUnregisterOnUnmount: true,
2548
+ touchOnBlur: false
2549
+ })(DefaultDatasetStep);
2550
+
2551
+ /***/ },
2552
+ /* 48 */
2553
+ /***/ function(module, exports, __webpack_require__) {
2554
+
2555
+ 'use strict';
2556
+
2557
+ Object.defineProperty(exports, "__esModule", {
2558
+ value: true
2559
+ });
2560
+
2561
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
2562
+
2563
+ var _react = __webpack_require__(1);
2564
+
2565
+ var _react2 = _interopRequireDefault(_react);
2566
+
2567
+ var _reduxForm = __webpack_require__(3);
2568
+
2398
2569
  var _validate = __webpack_require__(5);
2399
2570
 
2400
2571
  var _validate2 = _interopRequireDefault(_validate);
@@ -2465,6 +2636,12 @@ module.exports =
2465
2636
  'Save and Deploy Integration'
2466
2637
  ),
2467
2638
  _react2.default.createElement('br', null),
2639
+ _react2.default.createElement(
2640
+ 'p',
2641
+ null,
2642
+ 'Run the integration once or schedule the integration based on a time schedule.'
2643
+ ),
2644
+ _react2.default.createElement('br', null),
2468
2645
  _react2.default.createElement(
2469
2646
  'div',
2470
2647
  { style: { marginLeft: 16 } },
@@ -2515,7 +2692,7 @@ module.exports =
2515
2692
  })(DeployStep);
2516
2693
 
2517
2694
  /***/ },
2518
- /* 48 */
2695
+ /* 49 */
2519
2696
  /***/ function(module, exports, __webpack_require__) {
2520
2697
 
2521
2698
  'use strict';
@@ -2627,7 +2804,6 @@ module.exports =
2627
2804
 
2628
2805
  var Button = inputs.Button;
2629
2806
  var Spinner = inputs.Spinner;
2630
- var Tooltip = inputs.Tooltip;
2631
2807
  return _react2.default.createElement(
2632
2808
  'form',
2633
2809
  { onKeyPress: function onKeyPress(e) {
@@ -2641,19 +2817,14 @@ module.exports =
2641
2817
  step.provider,
2642
2818
  ' Environment'
2643
2819
  ),
2820
+ _react2.default.createElement('br', null),
2821
+ _react2.default.createElement('br', null),
2644
2822
  _react2.default.createElement(
2645
- Tooltip,
2646
- { nubbin: 'left-top', wrapStyle: { bottom: 2 }, popStyle: { width: 148 } },
2647
- _react2.default.createElement(
2648
- 'p',
2649
- null,
2650
- 'Enter the root URL for your ',
2651
- step.provider,
2652
- ' Adapter'
2653
- )
2823
+ 'p',
2824
+ null,
2825
+ 'After configuring the Lingk Adapter, enter the API base URL below to test connectivity and preview Lingk Adapter API resources for Banner.'
2654
2826
  ),
2655
2827
  _react2.default.createElement('br', null),
2656
- _react2.default.createElement('br', null),
2657
2828
  _react2.default.createElement(
2658
2829
  'div',
2659
2830
  { style: { marginLeft: 16 } },
@@ -2663,7 +2834,7 @@ module.exports =
2663
2834
  _react2.default.createElement(
2664
2835
  'div',
2665
2836
  { style: { display: 'inline-block' } },
2666
- _react2.default.createElement(_reduxForm.Field, { name: step.mode + 'Endpoint', type: 'text', component: inputs.rfInput, label: step.provider + ' Endpoint' })
2837
+ _react2.default.createElement(_reduxForm.Field, { name: step.mode + 'Endpoint', type: 'text', component: inputs.rfInput, label: 'Lingk Adapter Endpoint' })
2667
2838
  ),
2668
2839
  !step.credentials ? _react2.default.createElement(
2669
2840
  Button,
@@ -2753,7 +2924,7 @@ module.exports =
2753
2924
  })(EnvironmentStep);
2754
2925
 
2755
2926
  /***/ },
2756
- /* 49 */
2927
+ /* 50 */
2757
2928
  /***/ function(module, exports, __webpack_require__) {
2758
2929
 
2759
2930
  'use strict';
@@ -2854,7 +3025,7 @@ module.exports =
2854
3025
  })(FilterStep);
2855
3026
 
2856
3027
  /***/ },
2857
- /* 50 */
3028
+ /* 51 */
2858
3029
  /***/ function(module, exports, __webpack_require__) {
2859
3030
 
2860
3031
  'use strict';
@@ -2879,7 +3050,7 @@ module.exports =
2879
3050
 
2880
3051
  var _navButtons2 = _interopRequireDefault(_navButtons);
2881
3052
 
2882
- var _mapAccordion = __webpack_require__(56);
3053
+ var _mapAccordion = __webpack_require__(57);
2883
3054
 
2884
3055
  var _mapAccordion2 = _interopRequireDefault(_mapAccordion);
2885
3056
 
@@ -2891,11 +3062,11 @@ module.exports =
2891
3062
 
2892
3063
  var _groupNav2 = _interopRequireDefault(_groupNav);
2893
3064
 
2894
- var _transformModal = __webpack_require__(59);
3065
+ var _transformModal = __webpack_require__(60);
2895
3066
 
2896
3067
  var _transformModal2 = _interopRequireDefault(_transformModal);
2897
3068
 
2898
- var _mapTableRows = __webpack_require__(57);
3069
+ var _mapTableRows = __webpack_require__(58);
2899
3070
 
2900
3071
  var Rows = _interopRequireWildcard(_mapTableRows);
2901
3072
 
@@ -2922,11 +3093,8 @@ module.exports =
2922
3093
  _this.state = {
2923
3094
  showModal: false,
2924
3095
  selectedTransform: null,
2925
- selectedTransformIndex: null,
2926
- selectedTransformResourceIndex: null
3096
+ selectedTransformResourceGroupIndex: null
2927
3097
  };
2928
- _this.clearAllMappings = _this.clearAllMappings.bind(_this);
2929
- _this.autoMap = _this.autoMap.bind(_this);
2930
3098
  _this.clearOneMapping = _this.clearOneMapping.bind(_this);
2931
3099
  _this.update = _this.update.bind(_this);
2932
3100
  _this.hideModal = _this.hideModal.bind(_this);
@@ -2962,52 +3130,30 @@ module.exports =
2962
3130
  }
2963
3131
  }, {
2964
3132
  key: 'selectMapping',
2965
- value: function selectMapping(rscIndex, m, i) {
3133
+ value: function selectMapping(rscGroupIndex, m) {
2966
3134
  this.setState({
2967
3135
  showModal: true,
2968
3136
  selectedTransform: m,
2969
- selectedTransformIndex: i,
2970
- selectedTransformResourceIndex: rscIndex
3137
+ selectedTransformResourceGroupIndex: rscGroupIndex
2971
3138
  });
2972
3139
  }
2973
- }, {
2974
- key: 'autoMap',
2975
- value: function autoMap() {
2976
- // this function needs to dig deeper and check every field against every mapping
2977
- var _props2 = this.props,
2978
- formValues = _props2.formValues,
2979
- change = _props2.change,
2980
- step = _props2.step;
2981
3140
 
2982
- var sourceSchema = formValues['sourceSchema'] || {};
2983
- var obj = {};
2984
- for (var key in step.autoMapData) {
2985
- if (sourceSchema && sourceSchema[key.split('.')[0]]) {
2986
- obj[key] = step.autoMapData[key];
2987
- }
2988
- }
2989
- change('mappings', obj);
2990
- }
2991
- }, {
2992
- key: 'clearAllMappings',
2993
- value: function clearAllMappings() {
2994
- var _props3 = this.props,
2995
- change = _props3.change,
2996
- formValues = _props3.formValues;
3141
+ /*clearAllMappings(){
3142
+ const { change, formValues } = this.props
3143
+ const resourceGroups = [ ...formValues['resourceGroups'] ] || null
3144
+ resourceGroups.forEach((group)=>{
3145
+ delete group.mappings
3146
+ })
3147
+ change('resourceGroups', resourceGroups)
3148
+ this.forceUpdate()
3149
+ }*/
2997
3150
 
2998
- var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups'])) || null;
2999
- resourceGroups.forEach(function (group) {
3000
- delete group.mappings;
3001
- });
3002
- change('resourceGroups', resourceGroups);
3003
- this.forceUpdate();
3004
- }
3005
3151
  }, {
3006
3152
  key: 'clearOneMapping',
3007
3153
  value: function clearOneMapping(groupIndex, mapp) {
3008
- var _props4 = this.props,
3009
- change = _props4.change,
3010
- formValues = _props4.formValues;
3154
+ var _props2 = this.props,
3155
+ change = _props2.change,
3156
+ formValues = _props2.formValues;
3011
3157
 
3012
3158
  var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups'])) || null;
3013
3159
  resourceGroups[groupIndex].mappings = resourceGroups[groupIndex].mappings.filter(function (m) {
@@ -3030,24 +3176,23 @@ module.exports =
3030
3176
  }, {
3031
3177
  key: 'render',
3032
3178
  value: function render() {
3033
- var _props5 = this.props,
3034
- inputs = _props5.inputs,
3035
- handleSubmit = _props5.handleSubmit,
3036
- nav = _props5.nav,
3037
- formValues = _props5.formValues,
3038
- change = _props5.change,
3039
- step = _props5.step,
3040
- reset = _props5.reset,
3041
- wizard = _props5.wizard;
3179
+ var _props3 = this.props,
3180
+ inputs = _props3.inputs,
3181
+ handleSubmit = _props3.handleSubmit,
3182
+ nav = _props3.nav,
3183
+ formValues = _props3.formValues,
3184
+ change = _props3.change,
3185
+ step = _props3.step,
3186
+ reset = _props3.reset,
3187
+ wizard = _props3.wizard;
3042
3188
 
3043
- var Button = inputs.Button;
3044
3189
  var MapTable = inputs.MapTable;
3045
3190
  var Tooltip = inputs.Tooltip;
3046
3191
  var sourceSchema = wizard['sourceMetadata'] ? wizard['sourceMetadata'] : null;
3047
3192
 
3048
3193
  var destinationSchema = wizard['destinationMetadata'] ? wizard['destinationMetadata'] : null;
3049
3194
 
3050
- var resourceGroups = formValues['resourceGroups'].filter(function (g) {
3195
+ var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups'])).filter(function (g) {
3051
3196
  return g.resources && g.resources.length > 0;
3052
3197
  });
3053
3198
 
@@ -3064,29 +3209,14 @@ module.exports =
3064
3209
  ' Fields to ',
3065
3210
  step.destinationProvider
3066
3211
  ),
3067
- _react2.default.createElement(
3068
- Tooltip,
3069
- { nubbin: 'left-top', wrapStyle: { bottom: 3 }, popStyle: { width: 225 } },
3070
- _react2.default.createElement(
3071
- 'p',
3072
- null,
3073
- 'First choose a Source field to map, then click on a Destination field. You can also click \'Combine\' to map multiple source fields to one destination.'
3074
- )
3075
- ),
3076
3212
  _react2.default.createElement('br', null),
3077
3213
  _react2.default.createElement('br', null),
3078
- step.autoMapData ? _react2.default.createElement(
3079
- Button,
3080
- { type: 'brand', onClick: this.autoMap, style: { marginRight: 5 } },
3081
- 'Automap'
3082
- ) : null,
3083
3214
  _react2.default.createElement(
3084
- Button,
3085
- { type: 'brand', onClick: this.clearAllMappings },
3086
- 'Clear All Mappings'
3215
+ 'p',
3216
+ null,
3217
+ 'Map data elements from data sources to Salesforce object fields one dataset at a time.'
3087
3218
  ),
3088
3219
  _react2.default.createElement('br', null),
3089
- _react2.default.createElement('br', null),
3090
3220
  _react2.default.createElement(
3091
3221
  'div',
3092
3222
  null,
@@ -3098,7 +3228,7 @@ module.exports =
3098
3228
  { resourceGroups: resourceGroups, customizable: false, isBundleStep: false, inputs: inputs,
3099
3229
  style: { position: 'relative', width: 640, height: 69, zIndex: 9000 }, step: step },
3100
3230
  _react2.default.createElement(_mapAccordion2.default, { sourceSchema: sourceSchema, destinationSchema: destinationSchema,
3101
- formValues: formValues, change: change, update: this.update }),
3231
+ formValues: formValues, change: change, update: this.update, step: step }),
3102
3232
  _react2.default.createElement(
3103
3233
  MapTable,
3104
3234
  { clearOneMapping: this.clearOneMapping, selectMapping: this.selectMapping },
@@ -3115,8 +3245,8 @@ module.exports =
3115
3245
  'div',
3116
3246
  null,
3117
3247
  this.state.showModal && _react2.default.createElement(_transformModal2.default, { inputs: inputs, hideModal: this.hideModal, mapping: this.state.selectedTransform,
3118
- opened: this.state.showModal, mappingIndex: this.state.selectedTransformIndex, change: change,
3119
- resourceGroupIndex: this.state.selectedTransformResourceIndex, resourceGroups: resourceGroups })
3248
+ opened: this.state.showModal, change: change, resourceGroups: resourceGroups,
3249
+ resourceGroupIndex: this.state.selectedTransformResourceGroupIndex })
3120
3250
  ) : null,
3121
3251
  _react2.default.createElement('br', null),
3122
3252
  _react2.default.createElement(_navButtons2.default, { handleSubmit: handleSubmit, nav: nav, reset: reset, inputs: inputs,
@@ -3137,7 +3267,7 @@ module.exports =
3137
3267
  })(MapStep);
3138
3268
 
3139
3269
  /***/ },
3140
- /* 51 */
3270
+ /* 52 */
3141
3271
  /***/ function(module, exports, __webpack_require__) {
3142
3272
 
3143
3273
  'use strict';
@@ -3253,7 +3383,7 @@ module.exports =
3253
3383
  })(NameStep);
3254
3384
 
3255
3385
  /***/ },
3256
- /* 52 */
3386
+ /* 53 */
3257
3387
  /***/ function(module, exports, __webpack_require__) {
3258
3388
 
3259
3389
  'use strict';
@@ -3351,7 +3481,7 @@ module.exports =
3351
3481
  })(PhaseStep);
3352
3482
 
3353
3483
  /***/ },
3354
- /* 53 */
3484
+ /* 54 */
3355
3485
  /***/ function(module, exports, __webpack_require__) {
3356
3486
 
3357
3487
  'use strict';
@@ -3486,7 +3616,7 @@ module.exports =
3486
3616
  })(PreviewStep);
3487
3617
 
3488
3618
  /***/ },
3489
- /* 54 */
3619
+ /* 55 */
3490
3620
  /***/ function(module, exports, __webpack_require__) {
3491
3621
 
3492
3622
  'use strict';
@@ -3511,7 +3641,7 @@ module.exports =
3511
3641
 
3512
3642
  var _navButtons2 = _interopRequireDefault(_navButtons);
3513
3643
 
3514
- var _schemaAccordion = __webpack_require__(58);
3644
+ var _schemaAccordion = __webpack_require__(59);
3515
3645
 
3516
3646
  var _schemaAccordion2 = _interopRequireDefault(_schemaAccordion);
3517
3647
 
@@ -3523,7 +3653,7 @@ module.exports =
3523
3653
 
3524
3654
  var _groupNav2 = _interopRequireDefault(_groupNav);
3525
3655
 
3526
- var _bundleTableRows = __webpack_require__(55);
3656
+ var _bundleTableRows = __webpack_require__(56);
3527
3657
 
3528
3658
  var Rows = _interopRequireWildcard(_bundleTableRows);
3529
3659
 
@@ -3552,21 +3682,12 @@ module.exports =
3552
3682
  };
3553
3683
  _this.addCustomEntity = _this.addCustomEntity.bind(_this);
3554
3684
  _this.newEntityKeyPress = _this.newEntityKeyPress.bind(_this);
3555
- _this.loadDefault = _this.loadDefault.bind(_this);
3556
- _this.clearAllData = _this.clearAllData.bind(_this);
3557
3685
  _this.addDefaultEntity = _this.addDefaultEntity.bind(_this);
3558
3686
  _this.removeEntity = _this.removeEntity.bind(_this);
3559
3687
  _this.addGroup = _this.addGroup.bind(_this);
3560
3688
  _this.removeGroup = _this.removeGroup.bind(_this);
3561
3689
  _this.changeEntityOrder = _this.changeEntityOrder.bind(_this);
3562
3690
  _this.changeGroupOrder = _this.changeGroupOrder.bind(_this);
3563
- _this.defaultResourceMapping = [{
3564
- name: 'Contact',
3565
- resources: [{
3566
- name: 'Student',
3567
- externalKey: null
3568
- }]
3569
- }];
3570
3691
  return _this;
3571
3692
  }
3572
3693
 
@@ -3602,29 +3723,6 @@ module.exports =
3602
3723
  resourceGroups.splice(i, 1);
3603
3724
  change('resourceGroups', resourceGroups);
3604
3725
  }
3605
- }, {
3606
- key: 'loadDefault',
3607
- value: function loadDefault() {
3608
- //default bundle map
3609
- var change = this.props.change;
3610
- //change(`${step.mode}Schema`, wizard[`${step.mode}Metadata`] || step.defaultSchema)
3611
- //const sourceSchema = wizard[`sourceMetadata`] || step.defaultSchema
3612
-
3613
- var defaults = [].concat(_toConsumableArray(this.defaultResourceMapping));
3614
- /*defaults.forEach((group)=>{
3615
- Object.keys(group.resources).forEach((key)=>{
3616
- group.resources[key].fields = sourceSchema[key]
3617
- })
3618
- })*/
3619
- change('resourceGroups', defaults);
3620
- }
3621
- }, {
3622
- key: 'clearAllData',
3623
- value: function clearAllData() {
3624
- var change = this.props.change;
3625
-
3626
- change('resourceGroups', null);
3627
- }
3628
3726
  }, {
3629
3727
  key: 'addCustomEntity',
3630
3728
  value: function addCustomEntity() {
@@ -3648,7 +3746,7 @@ module.exports =
3648
3746
  formValues = _props4.formValues;
3649
3747
 
3650
3748
 
3651
- var resourceGroups = formValues['resourceGroups'] || [];
3749
+ var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups'])) || [];
3652
3750
  resourceGroups.push({
3653
3751
  name: v,
3654
3752
  resources: null,
@@ -3659,7 +3757,7 @@ module.exports =
3659
3757
  }
3660
3758
  }, {
3661
3759
  key: 'addDefaultEntity',
3662
- value: function addDefaultEntity(groupIndex, v, rscIndex) {
3760
+ value: function addDefaultEntity(groupIndex, v, rscIndex, section) {
3663
3761
  var _props5 = this.props,
3664
3762
  change = _props5.change,
3665
3763
  formValues = _props5.formValues;
@@ -3672,7 +3770,8 @@ module.exports =
3672
3770
  }
3673
3771
  group.resources.push({
3674
3772
  name: v,
3675
- externalKey: null
3773
+ externalKey: null,
3774
+ provider: section
3676
3775
  });
3677
3776
  change('resourceGroups', resourceGroups);
3678
3777
  this.forceUpdate();
@@ -3735,9 +3834,7 @@ module.exports =
3735
3834
  reset = _props9.reset,
3736
3835
  wizard = _props9.wizard;
3737
3836
 
3738
- var resourceGroups = formValues['resourceGroups'] || null;
3739
- var Button = inputs.Button;
3740
- var Tooltip = inputs.Tooltip;
3837
+ var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups'])) || null;
3741
3838
  var BundleTable = inputs.BundleTable;
3742
3839
 
3743
3840
  var sourceSchema = wizard['sourceMetadata'] ? wizard['sourceMetadata'] : null;
@@ -3754,38 +3851,14 @@ module.exports =
3754
3851
  { style: { fontSize: 20, display: 'inline-block' } },
3755
3852
  'Build Dataset'
3756
3853
  ),
3757
- _react2.default.createElement(
3758
- Tooltip,
3759
- { nubbin: 'left-top', wrapStyle: { bottom: 3 }, popStyle: { width: 225 } },
3760
- _react2.default.createElement(
3761
- 'p',
3762
- null,
3763
- 'Group ',
3764
- step.sourceProvider,
3765
- ' objects together, and map them to ',
3766
- step.destinationProvider,
3767
- ' objects.'
3768
- )
3769
- ),
3770
3854
  _react2.default.createElement('br', null),
3771
3855
  _react2.default.createElement('br', null),
3772
3856
  _react2.default.createElement(
3773
- 'div',
3857
+ 'p',
3774
3858
  null,
3775
- _react2.default.createElement(
3776
- Button,
3777
- { type: 'brand', onClick: this.loadDefault },
3778
- 'Load Default Dataset'
3779
- ),
3780
- '\xA0\xA0',
3781
- _react2.default.createElement(
3782
- Button,
3783
- { type: 'brand', onClick: this.clearAllData },
3784
- 'Clear Configuration'
3785
- ),
3786
- _react2.default.createElement('br', null),
3787
- _react2.default.createElement('br', null)
3859
+ 'Build datasets by mapping one or many data sources to a single Salesforce destination object.'
3788
3860
  ),
3861
+ _react2.default.createElement('br', null),
3789
3862
  resourceGroups && resourceGroups.length > 0 ? _react2.default.createElement(
3790
3863
  'div',
3791
3864
  null,
@@ -3796,7 +3869,7 @@ module.exports =
3796
3869
  destinationSchema: destinationSchema, changeGroupOrder: this.changeGroupOrder, step: step,
3797
3870
  inputs: inputs, customizable: step.customizable, addDefaultEntity: this.addDefaultEntity },
3798
3871
  _react2.default.createElement(_schemaAccordion2.default, { sourceSchema: sourceSchema, removeEntity: this.removeEntity,
3799
- changeEntityOrder: this.changeEntityOrder, step: step }),
3872
+ changeEntityOrder: this.changeEntityOrder, step: step, destinationSchema: destinationSchema }),
3800
3873
  _react2.default.createElement(
3801
3874
  BundleTable,
3802
3875
  null,
@@ -3809,7 +3882,7 @@ module.exports =
3809
3882
  ) : null,
3810
3883
  _react2.default.createElement(_navButtons2.default, { handleSubmit: handleSubmit, nav: nav, reset: reset, inputs: inputs,
3811
3884
  nextDisabled: !(resourceGroups && resourceGroups.length > 0) || !resourceGroups.every(function (g) {
3812
- return g.resources && g.resources.every(function (rsc) {
3885
+ return g.resources && g.resources.length < 2 || g.resources && g.resources.every(function (rsc) {
3813
3886
  return rsc.externalKey;
3814
3887
  });
3815
3888
  }) })
@@ -3829,7 +3902,7 @@ module.exports =
3829
3902
  })(SchemaStep);
3830
3903
 
3831
3904
  /***/ },
3832
- /* 55 */
3905
+ /* 56 */
3833
3906
  /***/ function(module, exports, __webpack_require__) {
3834
3907
 
3835
3908
  'use strict';
@@ -3891,8 +3964,8 @@ module.exports =
3891
3964
  _react2.default.createElement(
3892
3965
  'div',
3893
3966
  { style: { display: 'inline-block', marginLeft: 10, marginTop: 1 } },
3894
- _react2.default.createElement(_reduxForm.Field, { component: inputs.rfPicklist, type: 'input', defaultLabel: 'Choose Key',
3895
- name: 'resourceGroups.' + i + '.auxillary', selectedValue: group.auxillary,
3967
+ _react2.default.createElement(_reduxForm.Field, { component: inputs.rfPicklist, type: 'input', defaultLabel: 'Choose Unique Key',
3968
+ name: 'resourceGroups.' + i + '.destinationKey', selectedValue: group.destinationKey,
3896
3969
  values: destinationSchema && destinationSchema.find(function (defaultRsc) {
3897
3970
  return defaultRsc.name === group.name;
3898
3971
  }) && destinationSchema.find(function (defaultRsc) {
@@ -3909,8 +3982,9 @@ module.exports =
3909
3982
 
3910
3983
  return _react2.default.createElement(
3911
3984
  'div',
3912
- { className: 'remove-resource-group', onClick: function onClick() {
3913
- return removeResourceGroup(i);
3985
+ { className: 'remove-resource-group', onClick: function onClick(e) {
3986
+ e.stopPropagation();
3987
+ removeResourceGroup(i);
3914
3988
  } },
3915
3989
  _react2.default.createElement(
3916
3990
  'svg',
@@ -3921,7 +3995,7 @@ module.exports =
3921
3995
  };
3922
3996
 
3923
3997
  /***/ },
3924
- /* 56 */
3998
+ /* 57 */
3925
3999
  /***/ function(module, exports, __webpack_require__) {
3926
4000
 
3927
4001
  'use strict';
@@ -4008,16 +4082,16 @@ module.exports =
4008
4082
  var selectedEntity = selectedEntities[resourceGroupIndex];
4009
4083
  if (this.state.selectedField) {
4010
4084
  var resourceGroups = [].concat(_toConsumableArray(formValues['resourceGroups']));
4011
- var rsc = resourceGroups[resourceGroupIndex];
4012
- rsc.mappings = rsc.mappings && rsc.mappings.filter(function (m) {
4085
+ var rscGroup = resourceGroups[resourceGroupIndex];
4086
+ rscGroup.mappings = rscGroup.mappings && rscGroup.mappings.filter(function (m) {
4013
4087
  return m.propertyToName !== field;
4014
4088
  }) || [];
4015
- rsc.mappings.push({
4089
+ rscGroup.mappings.push({
4016
4090
  resourceFromName: selectedEntity,
4017
4091
  resourceToName: group,
4018
4092
  propertyFromName: this.state.selectedField,
4019
4093
  propertyToName: field,
4020
- transformType: 'none'
4094
+ transformations: [{ type: 'none' }]
4021
4095
  });
4022
4096
  change('resourceGroups', resourceGroups);
4023
4097
  this.setState({ selectedField: null });
@@ -4037,7 +4111,8 @@ module.exports =
4037
4111
  leftClicked = _props2.leftClicked,
4038
4112
  sourceSchema = _props2.sourceSchema,
4039
4113
  destinationSchema = _props2.destinationSchema,
4040
- toggle = _props2.toggle;
4114
+ toggle = _props2.toggle,
4115
+ step = _props2.step;
4041
4116
  var selectedField = this.state.selectedField;
4042
4117
 
4043
4118
 
@@ -4067,7 +4142,7 @@ module.exports =
4067
4142
  _react2.default.createElement(
4068
4143
  'div',
4069
4144
  { style: { marginLeft: 12, marginTop: 3 }, className: 'labelz' },
4070
- 'Source Objects'
4145
+ 'Data Sources'
4071
4146
  ),
4072
4147
  bit.map(function (x, ii) {
4073
4148
  return _react2.default.createElement(
@@ -4084,6 +4159,7 @@ module.exports =
4084
4159
  }, className: 'scrolly',
4085
4160
  style: { background: 'white', height: 261, width: 350, padding: '6px 12px' } },
4086
4161
  group.resources && group.resources.map(function (rsc, i) {
4162
+ var schema = rsc.provider === step.destinationProvider ? destinationSchema : sourceSchema;
4087
4163
  return _react2.default.createElement(
4088
4164
  'div',
4089
4165
  { key: i, className: 'accordion-panel', style: { overflow: 'hidden', width: 323 } },
@@ -4096,22 +4172,34 @@ module.exports =
4096
4172
  _this2.pickEntity(rsc.name);
4097
4173
  }
4098
4174
  },
4099
- rsc.name
4175
+ _react2.default.createElement(
4176
+ 'span',
4177
+ null,
4178
+ rsc.name
4179
+ ),
4180
+ _react2.default.createElement(
4181
+ 'svg',
4182
+ { xmlns: 'http://www.w3.org/2000/svg', fill: '#FFFFFF', width: '18', height: '18', viewBox: '0 0 18 18',
4183
+ style: { float: 'right',
4184
+ transform: selectedEntity === rsc.name ? 'rotate(180deg)' : 'rotate(0deg)'
4185
+ } },
4186
+ _react2.default.createElement('path', { d: 'M5 8l4 4 4-4z' })
4187
+ )
4100
4188
  ),
4101
4189
  _react2.default.createElement(
4102
4190
  'div',
4103
4191
  { className: 'accordion-panel-collapse',
4104
4192
  style: {
4105
- height: selectedEntity === rsc.name ? sourceSchema.filter(function (r) {
4193
+ height: schema && selectedEntity === rsc.name ? schema.filter(function (r) {
4106
4194
  return r.name === rsc.name;
4107
4195
  })[0].properties.length * 18 + 19 : 0,
4108
4196
  padding: '0 6px'
4109
4197
  }
4110
4198
  },
4111
4199
  _react2.default.createElement('div', { style: { height: 9 } }),
4112
- sourceSchema.filter(function (r) {
4200
+ schema && schema.find(function (r) {
4113
4201
  return r.name === rsc.name;
4114
- })[0].properties.map(function (field, ii) {
4202
+ }).properties.map(function (field, ii) {
4115
4203
  var style = {
4116
4204
  paddingLeft: 5,
4117
4205
  background: selectedField && selectedField === field.label ? '#dfe0e0' : 'initial',
@@ -4159,7 +4247,7 @@ module.exports =
4159
4247
  _react2.default.createElement(
4160
4248
  'div',
4161
4249
  { className: 'scrolly', style: { height: 256, padding: '8px 12px' } },
4162
- destinationSchema.find(function (r) {
4250
+ destinationSchema && destinationSchema.find(function (r) {
4163
4251
  return r.name === group.name;
4164
4252
  }).properties.map(function (field, i) {
4165
4253
  return _react2.default.createElement(
@@ -4190,7 +4278,7 @@ module.exports =
4190
4278
  exports.default = MapAccordion;
4191
4279
 
4192
4280
  /***/ },
4193
- /* 57 */
4281
+ /* 58 */
4194
4282
  /***/ function(module, exports, __webpack_require__) {
4195
4283
 
4196
4284
  "use strict";
@@ -4280,6 +4368,7 @@ module.exports =
4280
4368
 
4281
4369
  var MapTableTransformRow = exports.MapTableTransformRow = function MapTableTransformRow(props) {
4282
4370
  var group = props.group,
4371
+ i = props.i,
4283
4372
  selectMapping = props.selectMapping;
4284
4373
 
4285
4374
  var icons = {
@@ -4353,7 +4442,7 @@ module.exports =
4353
4442
  return _react2.default.createElement(
4354
4443
  "div",
4355
4444
  { key: iv, className: "map-table-transform-icon", onClick: function onClick() {
4356
- return selectMapping(iii, m, iv);
4445
+ return selectMapping(i, m);
4357
4446
  } },
4358
4447
  m.transformations && m.transformations[0] && icons[m.transformations[0].type] || icons['none']
4359
4448
  );
@@ -4372,7 +4461,7 @@ module.exports =
4372
4461
  };
4373
4462
 
4374
4463
  /***/ },
4375
- /* 58 */
4464
+ /* 59 */
4376
4465
  /***/ function(module, exports, __webpack_require__) {
4377
4466
 
4378
4467
  'use strict';
@@ -4391,7 +4480,7 @@ module.exports =
4391
4480
 
4392
4481
  var _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup);
4393
4482
 
4394
- var _reactDraggable = __webpack_require__(65);
4483
+ var _reactDraggable = __webpack_require__(66);
4395
4484
 
4396
4485
  var _reactDraggable2 = _interopRequireDefault(_reactDraggable);
4397
4486
 
@@ -4532,6 +4621,7 @@ module.exports =
4532
4621
  toggle = _props3.toggle,
4533
4622
  leftClicked = _props3.leftClicked,
4534
4623
  sourceSchema = _props3.sourceSchema,
4624
+ destinationSchema = _props3.destinationSchema,
4535
4625
  overflowHidden = _props3.overflowHidden,
4536
4626
  showOverflow = _props3.showOverflow,
4537
4627
  step = _props3.step;
@@ -4541,7 +4631,13 @@ module.exports =
4541
4631
  var group = resourceGroups[resourceGroupIndex];
4542
4632
  var bit = [true, false];
4543
4633
  var direction = leftClicked ? 'right' : 'left';
4544
- var groupResourcesLength = group.resources ? group.resources.length : 0;
4634
+ var groupResourcesLength = group && group.resources ? group.resources.length : 0;
4635
+
4636
+ var filteredDestinationSchema = destinationSchema.filter(function (rsc) {
4637
+ return resourceGroups.find(function (g) {
4638
+ return g.name === rsc.name && group.name !== rsc.name;
4639
+ }) ? true : false;
4640
+ });
4545
4641
 
4546
4642
  return _react2.default.createElement(
4547
4643
  'div',
@@ -4570,7 +4666,7 @@ module.exports =
4570
4666
  _react2.default.createElement(
4571
4667
  'div',
4572
4668
  { style: { marginLeft: 12, marginTop: 3 }, className: 'labelz' },
4573
- 'Source Objects'
4669
+ 'Data Sources'
4574
4670
  ),
4575
4671
  bit.map(function (x, ii) {
4576
4672
  return _react2.default.createElement(
@@ -4585,7 +4681,7 @@ module.exports =
4585
4681
  _react2.default.createElement(
4586
4682
  'div',
4587
4683
  { style: { position: 'relative' } },
4588
- group.resources && group.resources.map(function (rsc, i) {
4684
+ group && group.resources && group.resources.map(function (rsc, i) {
4589
4685
  return _react2.default.createElement(
4590
4686
  _reactDraggable2.default,
4591
4687
  { axis: 'y', bounds: 'parent', key: i, handle: '.drag-handle', position: { x: 0, y: _this3.state.yPositions[i] },
@@ -4603,14 +4699,14 @@ module.exports =
4603
4699
  className: 'drag-handle' },
4604
4700
  _react2.default.createElement(
4605
4701
  'svg',
4606
- { xmlns: 'http://www.w3.org/2000/svg', fill: '#FFFFFF', width: '24', height: '24', viewBox: '0 0 18 18' },
4607
- _react2.default.createElement('path', { d: 'M9 4.12l2.38 2.38 1.06-1.06L9 2 5.56 5.44 6.62 6.5 9 4.12zm0 9.76L6.62 11.5l-1.06 1.06L9 16l3.44-3.44-1.06-1.06L9 13.88z' })
4702
+ { width: '24', height: '24', viewBox: '0 0 24 24' },
4703
+ _react2.default.createElement('path', { fill: '#FFFFFF', d: 'M9,3H11V5H9V3M13,3H15V5H13V3M9,7H11V9H9V7M13,7H15V9H13V7M9,11H11V13H9V11M13,11H15V13H13V11M9,15H11V17H9V15M13,15H15V17H13V15M9,19H11V21H9V19M13,19H15V21H13V19Z' })
4608
4704
  )
4609
4705
  ),
4610
4706
  _react2.default.createElement(
4611
4707
  'div',
4612
4708
  { style: { padding: '7px 0px 0px 5px', fontSize: '14px', overflow: 'hidden', display: 'inline-block', width: 209, textOverflow: 'ellipsis', whiteSpace: 'nowrap' } },
4613
- rsc.name
4709
+ rsc.provider === step.destinationProvider ? rsc.name + (' (' + step.destinationProvider + ')') : rsc.name
4614
4710
  ),
4615
4711
  _react2.default.createElement(
4616
4712
  'div',
@@ -4627,15 +4723,20 @@ module.exports =
4627
4723
  _react2.default.createElement(
4628
4724
  'div',
4629
4725
  { style: { verticalAlign: 'top', float: 'right', marginRight: 8 } },
4630
- _react2.default.createElement(_reduxForm.Field, { component: inputs.rfSelect, type: 'input', menuAlign: 'right', defaultLabel: 'Choose Group Key',
4631
- selectedValue: group.resources[i].externalKey, onClick: showOverflow, colorType: 'brand',
4632
- values: sourceSchema && sourceSchema.find(function (defaultRsc) {
4726
+ group.resources.length > 1 ? _react2.default.createElement(_reduxForm.Field, { component: inputs.rfSelect, type: 'input', menuAlign: 'right',
4727
+ defaultLabel: 'Configure Relationship', colorType: 'brand',
4728
+ selectedValue: group.resources[i].externalKey, onClick: showOverflow,
4729
+ values: rsc.provider === step.destinationProvider ? destinationSchema && destinationSchema.find(function (defaultRsc) {
4730
+ return defaultRsc.name === rsc.name;
4731
+ }) && destinationSchema.find(function (defaultRsc) {
4732
+ return defaultRsc.name === rsc.name;
4733
+ }).properties : sourceSchema && sourceSchema.find(function (defaultRsc) {
4633
4734
  return defaultRsc.name === rsc.name;
4634
4735
  }) && sourceSchema.find(function (defaultRsc) {
4635
4736
  return defaultRsc.name === rsc.name;
4636
4737
  }).properties,
4637
4738
  name: 'resourceGroups.' + resourceGroupIndex + '.resources.' + i + '.externalKey'
4638
- })
4739
+ }) : null
4639
4740
  )
4640
4741
  )
4641
4742
  );
@@ -4644,11 +4745,12 @@ module.exports =
4644
4745
  resourceGroups && resourceGroups.length > 0 ? _react2.default.createElement(
4645
4746
  'div',
4646
4747
  { style: { display: 'inline-block' } },
4647
- _react2.default.createElement(Select, { label: 'Add New Source', style: { height: 40 }, onClick: showOverflow,
4648
- onSelect: function onSelect(v, i) {
4649
- return addDefaultEntity(resourceGroupIndex, v, i);
4650
- }, values: sourceSchema, type: 'neutral',
4651
- selectedValues: resourceGroups && resourceGroups[resourceGroupIndex] && resourceGroups[resourceGroupIndex].resources
4748
+ _react2.default.createElement(Select, { label: 'Add Data Source', style: { height: 40 }, onClick: showOverflow,
4749
+ onSelect: function onSelect(v, i, rtid, section) {
4750
+ return addDefaultEntity(resourceGroupIndex, v, i, section);
4751
+ }, type: 'neutral',
4752
+ selectedValues: resourceGroups && resourceGroups[resourceGroupIndex] && resourceGroups[resourceGroupIndex].resources, values: [sourceSchema, filteredDestinationSchema],
4753
+ sectionLabels: [step.sourceProvider, step.destinationProvider]
4652
4754
  })
4653
4755
  ) : null
4654
4756
  ) : null
@@ -4665,7 +4767,7 @@ module.exports =
4665
4767
  exports.default = SchemaAccordion;
4666
4768
 
4667
4769
  /***/ },
4668
- /* 59 */
4770
+ /* 60 */
4669
4771
  /***/ function(module, exports, __webpack_require__) {
4670
4772
 
4671
4773
  'use strict';
@@ -4744,7 +4846,6 @@ module.exports =
4744
4846
  opened = _props2.opened,
4745
4847
  mapping = _props2.mapping,
4746
4848
  hideModal = _props2.hideModal,
4747
- mappingIndex = _props2.mappingIndex,
4748
4849
  resourceGroups = _props2.resourceGroups,
4749
4850
  resourceGroupIndex = _props2.resourceGroupIndex;
4750
4851
 
@@ -4753,7 +4854,18 @@ module.exports =
4753
4854
 
4754
4855
  var groups = [].concat(_toConsumableArray(resourceGroups));
4755
4856
  var group = groups[resourceGroupIndex];
4756
- var transformSelected = group.mappings && group.mappings[mappingIndex] && group.mappings[mappingIndex].transformations && group.mappings[mappingIndex].transformations[0].type || 'none';
4857
+
4858
+ var transformation = mapping.transformations && mapping.transformations[0];
4859
+
4860
+ var mappingIndex = 0;
4861
+ group && group.mappings.forEach(function (m, i) {
4862
+ if (mapping.propertyToName === m.propertyToName) {
4863
+ mappingIndex = i;
4864
+ }
4865
+ });
4866
+
4867
+ var transformSelected = transformation && transformation.type || 'none';
4868
+ var transformArgs = transformation && transformation.args || [];
4757
4869
 
4758
4870
  return _react2.default.createElement(
4759
4871
  MapModal,
@@ -4803,7 +4915,8 @@ module.exports =
4803
4915
  { style: { marginBottom: 8 } },
4804
4916
  'Limit final field length:'
4805
4917
  ),
4806
- _react2.default.createElement(Input, { style: { width: 132 }, label: 'Character Count', onChange: this.changeTrimCount })
4918
+ _react2.default.createElement(Input, { style: { width: 132 }, label: 'Character Count', onChange: this.changeTrimCount,
4919
+ defaultValue: transformArgs[1] || '' })
4807
4920
  ),
4808
4921
  transformSelected === 'date' && _react2.default.createElement(
4809
4922
  'div',
@@ -4854,7 +4967,7 @@ module.exports =
4854
4967
  exports.default = TransformModal;
4855
4968
 
4856
4969
  /***/ },
4857
- /* 60 */
4970
+ /* 61 */
4858
4971
  /***/ function(module, exports, __webpack_require__) {
4859
4972
 
4860
4973
  'use strict';
@@ -4879,35 +4992,35 @@ module.exports =
4879
4992
 
4880
4993
  var _accountStep2 = _interopRequireDefault(_accountStep);
4881
4994
 
4882
- var _phaseStep = __webpack_require__(52);
4995
+ var _phaseStep = __webpack_require__(53);
4883
4996
 
4884
4997
  var _phaseStep2 = _interopRequireDefault(_phaseStep);
4885
4998
 
4886
- var _environmentStep = __webpack_require__(48);
4999
+ var _environmentStep = __webpack_require__(49);
4887
5000
 
4888
5001
  var _environmentStep2 = _interopRequireDefault(_environmentStep);
4889
5002
 
4890
- var _schemaStep = __webpack_require__(54);
5003
+ var _schemaStep = __webpack_require__(55);
4891
5004
 
4892
5005
  var _schemaStep2 = _interopRequireDefault(_schemaStep);
4893
5006
 
4894
- var _filterStep = __webpack_require__(49);
5007
+ var _filterStep = __webpack_require__(50);
4895
5008
 
4896
5009
  var _filterStep2 = _interopRequireDefault(_filterStep);
4897
5010
 
4898
- var _mapStep = __webpack_require__(50);
5011
+ var _mapStep = __webpack_require__(51);
4899
5012
 
4900
5013
  var _mapStep2 = _interopRequireDefault(_mapStep);
4901
5014
 
4902
- var _previewStep = __webpack_require__(53);
5015
+ var _previewStep = __webpack_require__(54);
4903
5016
 
4904
5017
  var _previewStep2 = _interopRequireDefault(_previewStep);
4905
5018
 
4906
- var _deployStep = __webpack_require__(47);
5019
+ var _deployStep = __webpack_require__(48);
4907
5020
 
4908
5021
  var _deployStep2 = _interopRequireDefault(_deployStep);
4909
5022
 
4910
- var _nameStep = __webpack_require__(51);
5023
+ var _nameStep = __webpack_require__(52);
4911
5024
 
4912
5025
  var _nameStep2 = _interopRequireDefault(_nameStep);
4913
5026
 
@@ -4915,8 +5028,14 @@ module.exports =
4915
5028
 
4916
5029
  var _adapterStep2 = _interopRequireDefault(_adapterStep);
4917
5030
 
5031
+ var _defaultDatasetStep = __webpack_require__(47);
5032
+
5033
+ var _defaultDatasetStep2 = _interopRequireDefault(_defaultDatasetStep);
5034
+
4918
5035
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4919
5036
 
5037
+ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
5038
+
4920
5039
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4921
5040
 
4922
5041
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
@@ -4962,24 +5081,23 @@ module.exports =
4962
5081
  preview: _previewStep2.default,
4963
5082
  deploy: _deployStep2.default,
4964
5083
  adapter: _adapterStep2.default,
4965
- name: _nameStep2.default
5084
+ name: _nameStep2.default,
5085
+ 'default': _defaultDatasetStep2.default
4966
5086
  };
4967
5087
  return _this;
4968
5088
  }
5089
+ /*camelize(str) {
5090
+ return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(letter, index) {
5091
+ return index === 0 ? letter.toLowerCase() : letter.toUpperCase(); //toUpperCase
5092
+ }).replace(/\s+/g, '');
5093
+ }*/
5094
+
4969
5095
 
4970
5096
  _createClass(WizardForm, [{
4971
- key: 'camelize',
4972
- value: function camelize(str) {
4973
- return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function (letter, index) {
4974
- return index === 0 ? letter.toLowerCase() : letter.toUpperCase(); //toUpperCase
4975
- }).replace(/\s+/g, '');
4976
- }
4977
- }, {
4978
5097
  key: 'onSubmit',
4979
5098
  value: function onSubmit(values) {
4980
5099
  var _this2 = this;
4981
5100
 
4982
- console.log('WIZARD OUTPUT: ', values);
4983
5101
  var formValues = Object.assign({}, values);
4984
5102
  var endpoints = {};
4985
5103
  //----------------------------------
@@ -4991,7 +5109,7 @@ module.exports =
4991
5109
 
4992
5110
  /* instead of finding the values from metadata, keep metadata types/names in the RF state */
4993
5111
 
4994
- var bundles = formValues.resourceGroups || [];
5112
+ var bundles = [].concat(_toConsumableArray(formValues['resourceGroups'])) || [];
4995
5113
  var mappings = [];
4996
5114
  bundles.forEach(function (group, index) {
4997
5115
  var destinationResource = _this2.props.wizard.destinationMetadata ? _this2.props.wizard.destinationMetadata.find(function (rsc) {
@@ -5004,13 +5122,20 @@ module.exports =
5004
5122
  var sourceResource = _this2.props.wizard.sourceMetadata.find(function (rsc) {
5005
5123
  return rsc.name === singleMapping.resourceFromName;
5006
5124
  });
5007
- endpoints['apiEndpoint_' + sourceResource.name] = formValues.sourceEndpoint + '/api/' + sourceResource.endpointSuffix.toLowerCase();
5125
+ endpoints['apiEndpoint_' + sourceResource.name] = formValues.sourceEndpoint + '/api/' + sourceResource.endpointSuffix.toLowerCase().split(' ').join('');
5008
5126
  var sourceProperty = sourceResource && sourceResource.properties && sourceResource.properties.find(function (prop) {
5009
5127
  return prop.label === singleMapping.propertyFromName;
5010
5128
  });
5011
5129
  var destinationProperty = destinationResource && destinationResource.properties && destinationResource.properties.find(function (prop) {
5012
5130
  return prop.label === singleMapping.propertyToName;
5013
5131
  });
5132
+ if (singleMapping.transformations && singleMapping.transformations.length > 0) {
5133
+ singleMapping.transformations.forEach(function (trans, index) {
5134
+ if (trans.type === 'none') {
5135
+ singleMapping.transformations.splice(index, 1);
5136
+ }
5137
+ });
5138
+ }
5014
5139
  if (sourceResource && sourceProperty && destinationResource && destinationProperty) {
5015
5140
  mappings = mappings.concat(Object.assign({ // add to mappings obj
5016
5141
  resourceFromName: sourceResource.type,
@@ -5029,13 +5154,15 @@ module.exports =
5029
5154
  var sourceResource = _this2.props.wizard.sourceMetadata.find(function (metaRsc) {
5030
5155
  return metaRsc.name === rsc.name;
5031
5156
  });
5032
- var sourceProperty = sourceResource && sourceResource.properties && sourceResource.properties.find(function (prop) {
5033
- return prop.label === rsc.externalKey;
5034
- });
5035
- if (sourceProperty) {
5157
+ if (sourceResource) {
5036
5158
  return {
5037
5159
  resourceName: sourceResource.type,
5038
- primaryKeyName: sourceProperty.name
5160
+ primaryKeyName: rsc.externalKey && sourceResource && sourceResource.properties && sourceResource.properties.find(function (prop) {
5161
+ return prop.label === rsc.externalKey;
5162
+ }) && sourceResource.properties.find(function (prop) {
5163
+ return prop.label === rsc.externalKey;
5164
+ }).name || '',
5165
+ provider: rsc.provider.toLowerCase() + 'Reader'
5039
5166
  };
5040
5167
  } else return null;
5041
5168
  });
@@ -5084,18 +5211,16 @@ module.exports =
5084
5211
  }, {
5085
5212
  key: 'nextPage',
5086
5213
  value: function nextPage() {
5087
- var wizard = this.props.wizard;
5088
-
5089
- var savedPage = wizard.savedConfiguration && parseInt(wizard.savedConfiguration.currentPage, 10);
5214
+ //const { wizard } = this.props
5215
+ //const savedPage = (wizard.savedConfiguration && parseInt(wizard.savedConfiguration.currentPage, 10))
5090
5216
  this.setState({ currentPage: this.state.currentPage ? this.state.currentPage + 1 : 2 });
5091
5217
  //savedPage ? savedPage + 1 : 2 })
5092
5218
  }
5093
5219
  }, {
5094
5220
  key: 'previousPage',
5095
5221
  value: function previousPage() {
5096
- var wizard = this.props.wizard;
5097
-
5098
- var savedPage = wizard.savedConfiguration && parseInt(wizard.savedConfiguration.currentPage, 10);
5222
+ //const { wizard } = this.props
5223
+ //const savedPage = (wizard.savedConfiguration && parseInt(wizard.savedConfiguration.currentPage, 10))
5099
5224
  this.setState({ currentPage: this.state.currentPage ? this.state.currentPage - 1 : 1 }); //: savedPage - 1 })
5100
5225
  }
5101
5226
  }, {
@@ -5193,6 +5318,7 @@ module.exports =
5193
5318
  var deployment = selector(state, 'deployment');
5194
5319
  var mappings = selector(state, 'mappings');
5195
5320
  var resourceGroups = selector(state, 'resourceGroups');
5321
+ var defaultDataset = selector(state, 'defaultDataset');
5196
5322
  return Object.assign({}, state, {
5197
5323
  formValues: {
5198
5324
  title: title,
@@ -5202,7 +5328,8 @@ module.exports =
5202
5328
  filter: filter,
5203
5329
  deployment: deployment,
5204
5330
  mappings: mappings,
5205
- resourceGroups: resourceGroups
5331
+ resourceGroups: resourceGroups,
5332
+ defaultDataset: defaultDataset
5206
5333
  }
5207
5334
  });
5208
5335
  })(WizardForm);
@@ -5210,7 +5337,7 @@ module.exports =
5210
5337
  exports.default = WizardForm;
5211
5338
 
5212
5339
  /***/ },
5213
- /* 61 */
5340
+ /* 62 */
5214
5341
  /***/ function(module, exports, __webpack_require__) {
5215
5342
 
5216
5343
  'use strict';
@@ -5225,7 +5352,7 @@ module.exports =
5225
5352
 
5226
5353
  var _react2 = _interopRequireDefault(_react);
5227
5354
 
5228
- var _redux = __webpack_require__(67);
5355
+ var _redux = __webpack_require__(68);
5229
5356
 
5230
5357
  var _reactRedux = __webpack_require__(11);
5231
5358
 
@@ -5233,9 +5360,9 @@ module.exports =
5233
5360
 
5234
5361
  var wizardActions = _interopRequireWildcard(_wizard);
5235
5362
 
5236
- __webpack_require__(62);
5363
+ __webpack_require__(63);
5237
5364
 
5238
- var _wizardForm = __webpack_require__(60);
5365
+ var _wizardForm = __webpack_require__(61);
5239
5366
 
5240
5367
  var _wizardForm2 = _interopRequireDefault(_wizardForm);
5241
5368
 
@@ -5273,7 +5400,8 @@ module.exports =
5273
5400
  type: 'Salesforce',
5274
5401
  name: 'Salesforce',
5275
5402
  env: false,
5276
- customizable: false // if destination schema is not customizable, disclude the entire step
5403
+ customizable: false, // if destination schema is not customizable, disclude the entire step
5404
+ customStep: 'default'
5277
5405
  },
5278
5406
  deployment: ['once', 'scheduled'],
5279
5407
  autoMapData: example.wizards[1].autoMapData,
@@ -5327,11 +5455,15 @@ module.exports =
5327
5455
  type: 'phase',
5328
5456
  title: 'Implementation Phase'
5329
5457
  }, {
5330
- type: 'custom'
5458
+ type: 'custom',
5459
+ mode: 'source'
5331
5460
  }, {
5332
5461
  type: 'environment',
5333
5462
  title: 'Source Environment',
5334
5463
  mode: 'source'
5464
+ }, {
5465
+ type: 'custom',
5466
+ mode: 'destination'
5335
5467
  }, {
5336
5468
  type: 'schema',
5337
5469
  title: 'Build Dataset',
@@ -5346,10 +5478,12 @@ module.exports =
5346
5478
  }, {
5347
5479
  type: 'map',
5348
5480
  title: 'Field Mapping'
5349
- }, {
5481
+ },
5482
+ /*{
5350
5483
  type: 'preview',
5351
- title: 'Data Preview'
5352
- }, {
5484
+ title: 'Data Preview',
5485
+ },*/
5486
+ {
5353
5487
  type: 'deploy',
5354
5488
  title: 'Deploy'
5355
5489
  }];
@@ -5370,10 +5504,11 @@ module.exports =
5370
5504
  } else if (step.type === 'phase' && wizard.phaseStep) {
5371
5505
  stepList.push(step);
5372
5506
  } else if (step.type === 'custom') {
5373
- var customStep = providerData.providerTypes[wizard.source.type].customStep;
5374
- if (customStep && wizard.source.customStep) {
5507
+ var customStep = providerData.providerTypes[wizard.destination.type].customStep;
5508
+ if (customStep && wizard[step.mode].customStep) {
5375
5509
  step.type = customStep.type;
5376
5510
  step.title = customStep.title;
5511
+ step.options = customStep.options;
5377
5512
  stepList.push(step);
5378
5513
  }
5379
5514
  } else if (step.type === 'environment') {
@@ -5470,20 +5605,20 @@ module.exports =
5470
5605
  exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(LingkSync);
5471
5606
 
5472
5607
  /***/ },
5473
- /* 62 */
5608
+ /* 63 */
5474
5609
  /***/ function(module, exports) {
5475
5610
 
5476
5611
  // removed by extract-text-webpack-plugin
5477
5612
 
5478
5613
  /***/ },
5479
- /* 63 */,
5480
5614
  /* 64 */,
5481
- /* 65 */
5615
+ /* 65 */,
5616
+ /* 66 */
5482
5617
  /***/ function(module, exports, __webpack_require__) {
5483
5618
 
5484
5619
  (function webpackUniversalModuleDefinition(root, factory) {
5485
5620
  if(true)
5486
- module.exports = factory(__webpack_require__(1), __webpack_require__(66));
5621
+ module.exports = factory(__webpack_require__(1), __webpack_require__(67));
5487
5622
  else if(typeof define === 'function' && define.amd)
5488
5623
  define(["react", "react-dom"], factory);
5489
5624
  else if(typeof exports === 'object')
@@ -7090,13 +7225,13 @@ module.exports =
7090
7225
  //# sourceMappingURL=react-draggable.js.map
7091
7226
 
7092
7227
  /***/ },
7093
- /* 66 */
7228
+ /* 67 */
7094
7229
  /***/ function(module, exports) {
7095
7230
 
7096
7231
  module.exports = require("react-dom");
7097
7232
 
7098
7233
  /***/ },
7099
- /* 67 */
7234
+ /* 68 */
7100
7235
  /***/ function(module, exports) {
7101
7236
 
7102
7237
  module.exports = require("redux");