@kineticdata/react 5.0.15 → 5.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/apis/core/authentication.js +11 -3
  2. package/lib/apis/core/fileResources.js +36 -0
  3. package/lib/apis/core/filestores.js +40 -0
  4. package/lib/apis/core/submissions.js +10 -6
  5. package/lib/apis/http.test.js +8 -3
  6. package/lib/apis/task/index.js +2 -1
  7. package/lib/components/agent/filestore/FilestoreForm.js +132 -0
  8. package/lib/components/agent/filestore/FilestoreTable.js +53 -0
  9. package/lib/components/common/Scroller.js +6 -6
  10. package/lib/components/common/code_input/languageHelpers.test.js +1 -1
  11. package/lib/components/core/core_form/CoreForm.js +10 -10
  12. package/lib/components/core/field_definition/FieldDefinitionForm.js +130 -0
  13. package/lib/components/core/field_definition/FieldDefinitionTable.js +86 -0
  14. package/lib/components/core/file_resource/FileResourceForm.js +180 -0
  15. package/lib/components/core/file_resource/FileResourceTable.js +71 -0
  16. package/lib/components/core/i18n/I18n.js +14 -14
  17. package/lib/components/core/submission/FormSubmissionFilters.js +378 -0
  18. package/lib/components/core/submission/FormSubmissionTable.js +116 -0
  19. package/lib/components/core/submission/KappSubmissionTable.js +250 -0
  20. package/lib/components/core/submission/SubmissionForm.js +124 -0
  21. package/lib/components/core/submission/helpers.js +95 -0
  22. package/lib/components/core/submission/helpers.test.js +96 -0
  23. package/lib/components/form/Form.js +2 -2
  24. package/lib/components/index.js +4 -4
  25. package/lib/components/system/SystemBackgroundTasksTable.js +83 -0
  26. package/lib/components/system/SystemSecurityForm.js +69 -0
  27. package/lib/components/system/helpers.js +16 -24
  28. package/lib/components/system/spaces/SystemTenantForm.js +8 -4
  29. package/lib/components/table/Table.js +23 -3
  30. package/lib/components/table/Table.redux.js +221 -53
  31. package/lib/components/table/Table.redux.test.js +73 -2
  32. package/lib/components/task/builder/Connector.js +2 -2
  33. package/lib/components/task/builder/NodeForm.js +3 -0
  34. package/lib/components/task/builder/TaskDefinitionConfigForm.js +113 -0
  35. package/lib/components/task/builder/TreeBuilder.js +2 -2
  36. package/lib/components/task/triggers/TriggerTable.js +3 -2
  37. package/package.json +3 -3
  38. package/proxyhelper.js +82 -9
@@ -52,9 +52,17 @@ export var singleSignOn = function singleSignOn(spaceSlug, dimensions) {
52
52
  var options = _objectSpread(_objectSpread({}, dimensions), getPopupPosition(window, dimensions));
53
53
 
54
54
  var endpoint = bundle.spaceLocation() + '/app/saml/login/alias/' + spaceSlug;
55
- var popup = window.open(endpoint, target, stringifyOptions(options)); // Create an event handler that closes the popup window if we focus the
55
+ var popup = window.open(endpoint, target, stringifyOptions(options));
56
+
57
+ if (!popup) {
58
+ resolve({
59
+ error: 'Enterprise Sign In popup was blocked by the browser.'
60
+ });
61
+ return;
62
+ } // Create an event handler that closes the popup window if we focus the
56
63
  // parent window
57
64
 
65
+
58
66
  var windowFocusHandler = function windowFocusHandler() {
59
67
  popup.close();
60
68
  window.removeEventListener('focus', windowFocusHandler);
@@ -80,7 +88,7 @@ export var singleSignOn = function singleSignOn(spaceSlug, dimensions) {
80
88
  }
81
89
 
82
90
  resolve({
83
- error: 'Single Sign-on cancelled'
91
+ error: 'Enterprise Sign In was cancelled'
84
92
  });
85
93
  _context.next = 12;
86
94
  break;
@@ -107,7 +115,7 @@ export var singleSignOn = function singleSignOn(spaceSlug, dimensions) {
107
115
  } else {
108
116
  popup.close();
109
117
  resolve({
110
- error: 'Single Sign-on timed out'
118
+ error: 'Enterprise Sign In timed out'
111
119
  });
112
120
  }
113
121
 
@@ -0,0 +1,36 @@
1
+ import { apiGroup } from '../http';
2
+
3
+ var _apiGroup = apiGroup({
4
+ name: 'FileResource',
5
+ dataOption: 'fileResource',
6
+ plural: {
7
+ requiredOptions: [],
8
+ url: function url() {
9
+ return '/fileResources';
10
+ },
11
+ transform: function transform(response) {
12
+ return {
13
+ fileResources: response.data.fileResources
14
+ };
15
+ }
16
+ },
17
+ singular: {
18
+ requiredOptions: ['fileResourceSlug'],
19
+ url: function url(_ref) {
20
+ var fileResourceSlug = _ref.fileResourceSlug;
21
+ return "/fileResources/".concat(fileResourceSlug);
22
+ },
23
+ transform: function transform(response) {
24
+ return {
25
+ fileResource: response.data.fileResource
26
+ };
27
+ }
28
+ }
29
+ }),
30
+ fetchFileResources = _apiGroup.fetchFileResources,
31
+ fetchFileResource = _apiGroup.fetchFileResource,
32
+ createFileResource = _apiGroup.createFileResource,
33
+ updateFileResource = _apiGroup.updateFileResource,
34
+ deleteFileResource = _apiGroup.deleteFileResource;
35
+
36
+ export { fetchFileResources, fetchFileResource, createFileResource, updateFileResource, deleteFileResource };
@@ -0,0 +1,40 @@
1
+ import { apiGroup } from '../http';
2
+
3
+ var _apiGroup = apiGroup({
4
+ name: 'Filestore',
5
+ dataOption: 'filestore',
6
+ plural: {
7
+ requiredOptions: [],
8
+ url: function url(_ref) {
9
+ var _ref$agentSlug = _ref.agentSlug,
10
+ agentSlug = _ref$agentSlug === void 0 ? 'system' : _ref$agentSlug;
11
+ return "/app/components/agents/".concat(agentSlug, "/app/api/v1/filestores");
12
+ },
13
+ transform: function transform(response) {
14
+ return {
15
+ filestores: response.data.filestores
16
+ };
17
+ }
18
+ },
19
+ singular: {
20
+ requiredOptions: ['filestoreSlug'],
21
+ url: function url(_ref2) {
22
+ var _ref2$agentSlug = _ref2.agentSlug,
23
+ agentSlug = _ref2$agentSlug === void 0 ? 'system' : _ref2$agentSlug,
24
+ filestoreSlug = _ref2.filestoreSlug;
25
+ return "/app/components/agents/".concat(agentSlug, "/app/api/v1/filestores/").concat(filestoreSlug);
26
+ },
27
+ transform: function transform(response) {
28
+ return {
29
+ filestore: response.data.filestore
30
+ };
31
+ }
32
+ }
33
+ }),
34
+ fetchFilestores = _apiGroup.fetchFilestores,
35
+ fetchFilestore = _apiGroup.fetchFilestore,
36
+ createFilestore = _apiGroup.createFilestore,
37
+ updateFilestore = _apiGroup.updateFilestore,
38
+ deleteFilestore = _apiGroup.deleteFilestore;
39
+
40
+ export { fetchFilestores, fetchFilestore, createFilestore, updateFilestore, deleteFilestore };
@@ -298,9 +298,7 @@ export var SubmissionSearch = /*#__PURE__*/function () {
298
298
  }, {
299
299
  key: "includes",
300
300
  value: function includes(_includes) {
301
- var newIncludes = _toConsumableArray(new Set([].concat(_toConsumableArray(this.searchMeta.include), _toConsumableArray(_includes))));
302
-
303
- this.searchMeta.include = newIncludes; // _.uniq(_.concat(this.searchMeta.include, includes));
301
+ this.searchMeta.include = _toConsumableArray(new Set([].concat(_toConsumableArray(this.searchMeta.include), _toConsumableArray(_includes)))); // _.uniq(_.concat(this.searchMeta.include, includes));
304
302
 
305
303
  return this;
306
304
  }
@@ -450,7 +448,9 @@ export var searchSubmissions = function searchSubmissions(options) {
450
448
  return {
451
449
  submissions: response.data.submissions,
452
450
  messages: response.data.messages,
453
- nextPageToken: response.data.nextPageToken
451
+ nextPageToken: response.data.nextPageToken,
452
+ count: response.data.count,
453
+ countPageToken: response.data.countPageToken
454
454
  };
455
455
  }); // Clean up any errors we receive. Make srue this is the last thing so that it
456
456
  // cleans up all errors.
@@ -487,7 +487,9 @@ export var createSubmission = function createSubmission(options) {
487
487
  _options$datastore2 = options.datastore,
488
488
  datastore = _options$datastore2 === void 0 ? false : _options$datastore2,
489
489
  _options$completed = options.completed,
490
- completed = _options$completed === void 0 ? true : _options$completed;
490
+ completed = _options$completed === void 0 ? true : _options$completed,
491
+ coreState = options.coreState,
492
+ parent = options.parent;
491
493
 
492
494
  if (!formSlug) {
493
495
  throw new Error('createSubmission failed! The option "formSlug" is required.');
@@ -498,7 +500,9 @@ export var createSubmission = function createSubmission(options) {
498
500
  var path = datastore ? "".concat(bundle.apiLocation(), "/datastore/forms/").concat(formSlug, "/submissions") : "".concat(bundle.apiLocation(), "/kapps/").concat(kappSlug, "/forms/").concat(formSlug, "/submissions");
499
501
 
500
502
  var params = _objectSpread(_objectSpread({}, paramBuilder(options)), {}, {
501
- completed: completed
503
+ completed: completed,
504
+ coreState: coreState,
505
+ parent: parent
502
506
  });
503
507
 
504
508
  return axios.post(path, {
@@ -1,4 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
3
  import { headerBuilder, corePath, handleErrors, paramBuilder, operations } from './http';
3
4
  import { List } from 'immutable';
4
5
  jest.mock('../helpers', function () {
@@ -109,9 +110,13 @@ describe('http module', function () {
109
110
 
110
111
  describe('#paramBuilder', function () {
111
112
  test('returns parameter values', function () {
112
- var params = ['include', 'limit', 'pageToken', 'q', 'direction', 'orderBy', 'manage', 'export'];
113
- params.forEach(function (param) {
114
- return expect(paramBuilder(_defineProperty({}, param, param))).toMatchObject(_defineProperty({}, param, param));
113
+ var params = [['include', 'include'], ['limit', 1], ['pageToken', 'pageToken'], ['q', 'q'], ['direction', 'direction'], ['orderBy', 'orderBy'], ['manage', 'manage'], ['export', 'export']];
114
+ params.forEach(function (_ref) {
115
+ var _ref2 = _slicedToArray(_ref, 2),
116
+ param = _ref2[0],
117
+ value = _ref2[1];
118
+
119
+ return expect(paramBuilder(_defineProperty({}, param, value))).toMatchObject(_defineProperty({}, param, value));
115
120
  });
116
121
  });
117
122
  test('does not return non-parameter values', function () {
@@ -700,7 +700,8 @@ export var fetchTaskTriggers = function fetchTaskTriggers() {
700
700
  }).then(function (response) {
701
701
  return {
702
702
  triggers: response.data.triggers,
703
- nextPageToken: generateNextPageToken(response.data)
703
+ nextPageToken: generateNextPageToken(response.data),
704
+ count: response.data.count
704
705
  };
705
706
  })["catch"](handleErrors);
706
707
  };
@@ -0,0 +1,132 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import { createFilestore, fetchFilestore, updateFilestore } from '../../../apis';
3
+ import { fetchAdapters } from '../../../apis';
4
+ import { get, getIn, List, Map } from 'immutable';
5
+ import { buildPropertyFields, handleFormErrors } from '../../form/Form.helpers';
6
+ import { generateForm } from '../../form/Form';
7
+
8
+ var dataSources = function dataSources(_ref) {
9
+ var agentSlug = _ref.agentSlug,
10
+ filestoreSlug = _ref.filestoreSlug,
11
+ adapterClass = _ref.adapterClass;
12
+ return {
13
+ filestore: {
14
+ fn: fetchFilestore,
15
+ params: agentSlug && filestoreSlug && [{
16
+ agentSlug: agentSlug,
17
+ filestoreSlug: filestoreSlug,
18
+ include: 'details'
19
+ }],
20
+ transform: function transform(result) {
21
+ return result.filestore;
22
+ }
23
+ },
24
+ adapters: {
25
+ fn: fetchAdapters,
26
+ params: [{
27
+ include: 'details',
28
+ type: 'filestore',
29
+ agentSlug: agentSlug
30
+ }],
31
+ transform: function transform(result) {
32
+ return result.adapters;
33
+ }
34
+ },
35
+ adapterProperties: {
36
+ fn: function fn(adapters, filestore) {
37
+ var appliedAdapterClass = filestore ? filestore.get('adapterClass') : adapterClass;
38
+ var adapter = adapters.find(function (adapter) {
39
+ return adapter.get('class') === appliedAdapterClass;
40
+ });
41
+ return adapter ? List(adapter.get('properties')) : List();
42
+ },
43
+ params: function params(_ref2) {
44
+ var adapters = _ref2.adapters,
45
+ filestore = _ref2.filestore;
46
+ return (!filestoreSlug || filestore) && adapters && [adapters, filestore];
47
+ }
48
+ }
49
+ };
50
+ };
51
+
52
+ var handleSubmit = function handleSubmit(_ref3) {
53
+ var agentSlug = _ref3.agentSlug,
54
+ filestoreSlug = _ref3.filestoreSlug;
55
+ return function (values) {
56
+ return (filestoreSlug ? updateFilestore : createFilestore)({
57
+ agentSlug: agentSlug,
58
+ filestoreSlug: filestoreSlug,
59
+ filestore: values.toJS()
60
+ }).then(handleFormErrors('filestore', 'There was a problem saving the filestore.'));
61
+ };
62
+ };
63
+
64
+ var fields = function fields(_ref4) {
65
+ var adapterClass = _ref4.adapterClass;
66
+ return function (_ref5) {
67
+ var filestore = _ref5.filestore,
68
+ adapters = _ref5.adapters,
69
+ adapterProperties = _ref5.adapterProperties;
70
+
71
+ if (adapterProperties) {
72
+ var _buildPropertyFields = buildPropertyFields({
73
+ isNew: !filestore,
74
+ properties: adapterProperties,
75
+ getName: function getName(property) {
76
+ return property.get('name');
77
+ },
78
+ getRequired: function getRequired(property) {
79
+ return property.get('required');
80
+ },
81
+ getSensitive: function getSensitive(property) {
82
+ return property.get('sensitive');
83
+ },
84
+ getOptions: function getOptions(property) {
85
+ return property.get('options');
86
+ },
87
+ getValue: function getValue(property) {
88
+ return getIn(filestore, ['properties', property.get('name')], '');
89
+ }
90
+ }),
91
+ propertiesFields = _buildPropertyFields.propertiesFields,
92
+ propertiesSerialize = _buildPropertyFields.propertiesSerialize;
93
+
94
+ return [{
95
+ name: 'slug',
96
+ label: 'Filestore Slug',
97
+ type: 'text',
98
+ required: true,
99
+ initialValue: get(filestore, 'slug', ''),
100
+ pattern: /^[a-z\d-]+$/,
101
+ patternMessage: 'File Store Slug may only contain letters, numbers, and dashes',
102
+ helpText: 'Unique name used in the bridge path.'
103
+ }, {
104
+ name: 'adapterClass',
105
+ label: 'Adapter Class',
106
+ type: 'text',
107
+ enabled: false,
108
+ required: false,
109
+ initialValue: filestore ? filestore.get('adapterClass') : adapterClass,
110
+ options: adapters.map(function (adapter) {
111
+ return Map({
112
+ value: adapter.get('class'),
113
+ label: adapter.get('name')
114
+ });
115
+ })
116
+ }].concat(_toConsumableArray(propertiesFields), [{
117
+ name: 'properties',
118
+ visible: false,
119
+ initialValue: get(filestore, 'properties', {}),
120
+ serialize: propertiesSerialize
121
+ }]);
122
+ }
123
+ };
124
+ };
125
+
126
+ export var FilestoreForm = generateForm({
127
+ formOptions: ['filestoreSlug', 'adapterClass', 'agentSlug'],
128
+ dataSources: dataSources,
129
+ fields: fields,
130
+ handleSubmit: handleSubmit
131
+ });
132
+ FilestoreForm.displayName = 'FilestoreForm';
@@ -0,0 +1,53 @@
1
+ import { defineFilter } from '../../../helpers';
2
+ import { fetchFilestores } from '../../../apis';
3
+ import { generateTable } from '../../table/Table';
4
+ var clientSide = defineFilter(true).startsWith('slug', 'slug').end();
5
+
6
+ var dataSource = function dataSource(_ref) {
7
+ var agentSlug = _ref.agentSlug;
8
+ return {
9
+ fn: fetchFilestores,
10
+ clientSide: clientSide,
11
+ params: function params() {
12
+ return [{
13
+ agentSlug: agentSlug,
14
+ include: 'details'
15
+ }];
16
+ },
17
+ transform: function transform(result) {
18
+ return {
19
+ data: result.filestores
20
+ };
21
+ }
22
+ };
23
+ };
24
+
25
+ var filters = function filters() {
26
+ return function () {
27
+ return [{
28
+ name: 'slug',
29
+ label: 'Slug',
30
+ type: 'text'
31
+ }];
32
+ };
33
+ };
34
+
35
+ var columns = [{
36
+ value: 'slug',
37
+ title: 'Slug',
38
+ sortable: true
39
+ }, {
40
+ value: 'adapterClass',
41
+ title: 'Adapter',
42
+ sortable: true,
43
+ valueTransform: function valueTransform(_value) {
44
+ return _value.split('.').pop().match(/[A-Z][a-z]+/g).join(' ');
45
+ }
46
+ }];
47
+ export var FilestoreTable = generateTable({
48
+ tableOptions: ['agentSlug'],
49
+ columns: columns,
50
+ filters: filters,
51
+ dataSource: dataSource
52
+ });
53
+ FilestoreTable.displayName = 'FilestoreTable';
@@ -50,13 +50,13 @@ export var Scroller = /*#__PURE__*/function (_Component) {
50
50
  }
51
51
  } // when scrolling up...
52
52
  else if (childTop < this.lastTop) {
53
- // check to see if the top of the child element is above the top of the
54
- // scrollable parent
55
- if (childTop < parent.scrollTop) {
56
- // scroll the child into view (passing true which aligns by top)
57
- child.scrollIntoView(true);
58
- }
53
+ // check to see if the top of the child element is above the top of the
54
+ // scrollable parent
55
+ if (childTop < parent.scrollTop) {
56
+ // scroll the child into view (passing true which aligns by top)
57
+ child.scrollIntoView(true);
59
58
  }
59
+ }
60
60
 
61
61
  this.lastTop = child.offsetTop;
62
62
  }
@@ -36,7 +36,7 @@ describe('processJavaScriptTemplate', function () {
36
36
  });
37
37
  test('add some objects inside to test curly behavior', function () {
38
38
  // eslint-disable-next-line no-template-curly-in-string
39
- expect(processJavaScriptTemplate('Hello ${{foo:{"bar":2}}}')).toEqual([['Hello '], ['${', 'opening-interpolation', 'js-template'], ['{', 'punctuation', 'js-template'], ['foo', 'js-template'], [':', 'punctuation', 'js-template'], ['{', 'punctuation', 'js-template'], ['"bar"', 'string', 'js-template'], [':', 'punctuation', 'js-template'], ['2', 'number', 'js-template'], ['}', 'punctuation', 'js-template'], ['}', 'punctuation', 'js-template'], ['}', 'closing-interpolation', 'js-template'], ['']]);
39
+ expect(processJavaScriptTemplate('Hello ${{foo:{"bar":2}}}')).toEqual([['Hello '], ['${', 'opening-interpolation', 'js-template'], ['{', 'punctuation', 'js-template'], ['foo', 'js-template'], [':', 'operator', 'js-template'], ['{', 'punctuation', 'js-template'], ['"bar"', 'string', 'js-template'], [':', 'operator', 'js-template'], ['2', 'number', 'js-template'], ['}', 'punctuation', 'js-template'], ['}', 'punctuation', 'js-template'], ['}', 'closing-interpolation', 'js-template'], ['']]);
40
40
  });
41
41
  test('multiple interpolations', function () {
42
42
  // eslint-disable-next-line no-template-curly-in-string
@@ -286,16 +286,16 @@ export var CoreFormComponent = /*#__PURE__*/function (_Component) {
286
286
  }));
287
287
  } // If pending and error state has just been set, call error callback
288
288
  else if (this.state.pending && this.state.error && !prevState.error) {
289
- if (this.state.error.statusCode === 401) {
290
- applyGuard(this.props.onUnauthorized || this.props.unauthorized);
291
- } else if (this.state.error.statusCode === 403) {
292
- applyGuard(this.props.onForbidden || this.props.forbidden);
293
- } else if (this.state.error.statusCode === 404) {
294
- applyGuard(this.props.onNotFound || this.props.onNotFound);
295
- } else {
296
- applyGuard(this.props.onError || this.props.error);
297
- }
298
- } // If locking is turned on and has been initalized
289
+ if (this.state.error.statusCode === 401) {
290
+ applyGuard(this.props.onUnauthorized || this.props.unauthorized);
291
+ } else if (this.state.error.statusCode === 403) {
292
+ applyGuard(this.props.onForbidden || this.props.forbidden);
293
+ } else if (this.state.error.statusCode === 404) {
294
+ applyGuard(this.props.onNotFound || this.props.onNotFound);
295
+ } else {
296
+ applyGuard(this.props.onError || this.props.error);
297
+ }
298
+ } // If locking is turned on and has been initalized
299
299
 
300
300
 
301
301
  if (this.state.lock && this.state.lock.init) {
@@ -0,0 +1,130 @@
1
+ import { generateForm } from '../../form/Form';
2
+ import { fetchKapp, fetchSpace, updateKapp, updateSpace } from '../../../apis';
3
+ import { FIELD_DATA_TYPES } from './FieldDefinitionTable';
4
+
5
+ var dataSources = function dataSources(_ref) {
6
+ var kappSlug = _ref.kappSlug,
7
+ name = _ref.name;
8
+ return {
9
+ form: {
10
+ fn: kappSlug ? fetchKapp : fetchSpace,
11
+ params: [{
12
+ kappSlug: kappSlug,
13
+ include: 'fields'
14
+ }],
15
+ transform: function transform(result) {
16
+ return kappSlug ? result.kapp : result.space;
17
+ }
18
+ },
19
+ fieldDefinition: {
20
+ fn: function fn(form, name) {
21
+ return form.get('fields').find(function (f) {
22
+ return f.get('name') === name;
23
+ });
24
+ },
25
+ params: function params(_ref2) {
26
+ var form = _ref2.form;
27
+ return form && name && [form, name];
28
+ }
29
+ }
30
+ };
31
+ };
32
+
33
+ var handleSubmit = function handleSubmit(_ref3) {
34
+ var kappSlug = _ref3.kappSlug,
35
+ name = _ref3.name;
36
+ return function (values, _ref4) {
37
+ var form = _ref4.form;
38
+ var dataType = FIELD_DATA_TYPES.find(function (fdt) {
39
+ return fdt.value === values.get('renderType');
40
+ }).dataType;
41
+ var field = values.set('dataType', dataType);
42
+ var fields = name ? form.get('fields').map(function (fd) {
43
+ return fd.get('name') === name ? field : fd;
44
+ }) : form.get('fields').push(field);
45
+ return (kappSlug ? updateKapp({
46
+ kapp: {
47
+ fields: fields
48
+ },
49
+ kappSlug: kappSlug
50
+ }) : updateSpace({
51
+ space: {
52
+ fields: fields
53
+ }
54
+ })).then(function (_ref5) {
55
+ var kapp = _ref5.kapp,
56
+ space = _ref5.space,
57
+ error = _ref5.error;
58
+
59
+ if (error) {
60
+ throw error.statusCode === 400 && error.message || 'There was an error saving the field definition';
61
+ }
62
+
63
+ return kappSlug ? kapp : space;
64
+ });
65
+ };
66
+ };
67
+
68
+ var fields = function fields(_ref6) {
69
+ var name = _ref6.name;
70
+ return function (_ref7) {
71
+ var form = _ref7.form,
72
+ fieldDefinition = _ref7.fieldDefinition;
73
+ return (!name || fieldDefinition) && form && [{
74
+ name: 'name',
75
+ label: 'Name',
76
+ type: 'text',
77
+ required: true,
78
+ initialValue: fieldDefinition ? fieldDefinition.get('name') : ''
79
+ }, {
80
+ name: 'renderType',
81
+ label: 'Type',
82
+ type: 'select',
83
+ required: true,
84
+ options: FIELD_DATA_TYPES,
85
+ initialValue: fieldDefinition ? fieldDefinition.get('renderType') : ''
86
+ }, {
87
+ name: 'createdAt',
88
+ label: 'Created At',
89
+ type: 'text',
90
+ visible: false,
91
+ initialValue: fieldDefinition ? fieldDefinition.get('createdAt') : '2020-08-24T22:06:20.572Z'
92
+ }, {
93
+ name: 'createdBy',
94
+ label: 'Created By',
95
+ type: 'text',
96
+ visible: false,
97
+ initialValue: fieldDefinition ? fieldDefinition.get('createdBy') : 'admin'
98
+ }, {
99
+ name: 'updatedAt',
100
+ label: 'Updated At',
101
+ type: 'text',
102
+ visible: false,
103
+ initialValue: fieldDefinition ? fieldDefinition.get('updatedAt') : '2020-08-24T22:06:20.572Z'
104
+ }, {
105
+ name: 'updatedBy',
106
+ label: 'Updated By',
107
+ type: 'text',
108
+ visible: false,
109
+ initialValue: fieldDefinition ? fieldDefinition.get('updatedBy') : 'admin'
110
+ }];
111
+ };
112
+ };
113
+ /**
114
+ * @component
115
+ * A form for creating and updating Field Definitions within the Kinetic Platform
116
+ */
117
+
118
+
119
+ export var FieldDefinitionForm = generateForm({
120
+ formOptions: ['kappSlug', 'name'],
121
+ dataSources: dataSources,
122
+ fields: fields,
123
+ handleSubmit: handleSubmit
124
+ });
125
+ FieldDefinitionForm.displayName = 'FieldDefinitionForm'; // Specifies the default values for props:
126
+
127
+ FieldDefinitionForm.defaultProps = {
128
+ fieldName: null,
129
+ kappSlug: null
130
+ };
@@ -0,0 +1,86 @@
1
+ import { generateTable } from '../../table/Table';
2
+ import { fetchKapp, fetchSpace } from '../../../apis';
3
+ import { defineFilter } from '../../../helpers';
4
+ export var FIELD_DATA_TYPES = [{
5
+ value: 'checkbox',
6
+ label: 'Checkbox',
7
+ dataType: 'json'
8
+ }, {
9
+ value: 'date',
10
+ label: 'Date',
11
+ dataType: 'string'
12
+ }, {
13
+ value: 'datetime',
14
+ label: 'Date/Time',
15
+ dataType: 'string'
16
+ }, {
17
+ value: 'dropdown',
18
+ label: 'Dropdown',
19
+ dataType: 'string'
20
+ }, {
21
+ value: 'radio',
22
+ label: 'Radio',
23
+ dataType: 'string'
24
+ }, {
25
+ value: 'text',
26
+ label: 'Text',
27
+ dataType: 'string'
28
+ }, {
29
+ value: 'time',
30
+ label: 'Time',
31
+ dataType: 'string'
32
+ }];
33
+ var clientSide = defineFilter(true).startsWith('name', 'name').end();
34
+
35
+ var dataSource = function dataSource(_ref) {
36
+ var kappSlug = _ref.kappSlug;
37
+ return {
38
+ fn: kappSlug ? fetchKapp : fetchSpace,
39
+ clientSide: clientSide,
40
+ params: function params() {
41
+ return [{
42
+ kappSlug: kappSlug,
43
+ include: 'fields'
44
+ }];
45
+ },
46
+ transform: function transform(result) {
47
+ return {
48
+ data: kappSlug ? result.kapp.fields : result.space.fields
49
+ };
50
+ }
51
+ };
52
+ };
53
+
54
+ var filters = function filters() {
55
+ return function () {
56
+ return [{
57
+ name: 'name',
58
+ label: 'Name',
59
+ type: 'text'
60
+ }];
61
+ };
62
+ };
63
+
64
+ var columns = [{
65
+ value: 'name',
66
+ title: 'Name'
67
+ }, {
68
+ value: 'renderType',
69
+ title: 'Render Type'
70
+ }, {
71
+ value: 'dataType',
72
+ title: 'Data Type'
73
+ }, {
74
+ value: 'updatedAt',
75
+ title: 'Updated At'
76
+ }, {
77
+ value: 'updatedBy',
78
+ title: 'Updated By'
79
+ }];
80
+ export var FieldDefinitionTable = generateTable({
81
+ tableOptions: ['kappSlug'],
82
+ columns: columns,
83
+ filters: filters,
84
+ dataSource: dataSource
85
+ });
86
+ FieldDefinitionTable.displayName = 'FieldDefinitionTable';