@kineticdata/react 5.1.2 → 6.0.1

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 (313) hide show
  1. package/assets/task/icons/drag-handle.svg +3 -0
  2. package/assets/task/icons/plus_small.svg +2 -4
  3. package/lib/apis/agent/adapters.js +16 -12
  4. package/lib/apis/agent/bridges.js +54 -41
  5. package/lib/apis/agent/handlers.js +51 -38
  6. package/lib/apis/core/activity.js +19 -11
  7. package/lib/apis/core/attributeDefinitions.js +54 -46
  8. package/lib/apis/core/attributeDefinitions.test.js +47 -55
  9. package/lib/apis/core/authentication.js +58 -63
  10. package/lib/apis/core/backgroundJobs.js +38 -30
  11. package/lib/apis/core/bridgeModelAttributeMappings.js +42 -34
  12. package/lib/apis/core/bridgeModelAttributes.js +47 -37
  13. package/lib/apis/core/bridgeModelMappings.js +42 -34
  14. package/lib/apis/core/bridgeModelQualificationMappings.js +42 -34
  15. package/lib/apis/core/bridgeModelQualifications.js +42 -34
  16. package/lib/apis/core/bridgeModels.js +56 -46
  17. package/lib/apis/core/bridgeModels.test.js +64 -80
  18. package/lib/apis/core/bridgedresources.js +64 -72
  19. package/lib/apis/core/bridgedresources.test.js +33 -30
  20. package/lib/apis/core/categories.js +59 -52
  21. package/lib/apis/core/categories.test.js +36 -33
  22. package/lib/apis/core/fileResources.js +41 -33
  23. package/lib/apis/core/filestores.js +42 -34
  24. package/lib/apis/core/formTypes.js +50 -44
  25. package/lib/apis/core/forms.js +53 -49
  26. package/lib/apis/core/forms.test.js +60 -74
  27. package/lib/apis/core/kapps.js +45 -39
  28. package/lib/apis/core/kapps.test.js +45 -52
  29. package/lib/apis/core/logs.js +20 -16
  30. package/lib/apis/core/memberships.js +23 -20
  31. package/lib/apis/core/meta.js +31 -19
  32. package/lib/apis/core/notices.js +17 -9
  33. package/lib/apis/core/oauthClients.js +49 -45
  34. package/lib/apis/core/platformComponents.js +73 -57
  35. package/lib/apis/core/platformItems.js +22 -13
  36. package/lib/apis/core/profile.js +28 -21
  37. package/lib/apis/core/profile.test.js +20 -17
  38. package/lib/apis/core/securityPolicyDefinitions.js +48 -41
  39. package/lib/apis/core/securityPolicyDefinitions.test.js +50 -60
  40. package/lib/apis/core/space.js +23 -16
  41. package/lib/apis/core/space.test.js +31 -38
  42. package/lib/apis/core/submissions.js +213 -186
  43. package/lib/apis/core/submissions.test.js +39 -36
  44. package/lib/apis/core/teams.js +51 -44
  45. package/lib/apis/core/teams.test.js +42 -39
  46. package/lib/apis/core/translations.js +123 -130
  47. package/lib/apis/core/translations.test.js +278 -368
  48. package/lib/apis/core/users.js +56 -49
  49. package/lib/apis/core/users.test.js +42 -39
  50. package/lib/apis/core/version.js +20 -11
  51. package/lib/apis/core/webApis.js +42 -34
  52. package/lib/apis/core/webhooks.js +48 -41
  53. package/lib/apis/core/webhooks.test.js +50 -60
  54. package/lib/apis/core/webhooksJobs.js +30 -26
  55. package/lib/apis/core/workflows.js +52 -44
  56. package/lib/apis/http.js +121 -80
  57. package/lib/apis/http.test.js +137 -38
  58. package/lib/apis/index.js +506 -50
  59. package/lib/apis/system/index.js +363 -215
  60. package/lib/apis/task/index.js +294 -227
  61. package/lib/components/agent/bridge/BridgeForm.js +50 -50
  62. package/lib/components/agent/bridge/BridgeTable.js +16 -9
  63. package/lib/components/agent/filestore/FilestoreForm.js +49 -48
  64. package/lib/components/agent/filestore/FilestoreTable.js +16 -9
  65. package/lib/components/agent/handler/AgentHandlerForm.js +24 -27
  66. package/lib/components/agent/handler/AgentHandlerTable.js +17 -10
  67. package/lib/components/common/AttributeSelect.js +15 -9
  68. package/lib/components/common/BridgeSelect.js +48 -43
  69. package/lib/components/common/ComponentConfigContext.js +9 -2
  70. package/lib/components/common/ContentEditable.js +36 -60
  71. package/lib/components/common/FormSelect.js +70 -58
  72. package/lib/components/common/NodeSelect.js +23 -19
  73. package/lib/components/common/Scroller.js +24 -23
  74. package/lib/components/common/StaticSelect.js +57 -50
  75. package/lib/components/common/TableInput.js +54 -57
  76. package/lib/components/common/TeamSelect.js +42 -39
  77. package/lib/components/common/ToastContainer.js +170 -0
  78. package/lib/components/common/Typeahead.js +121 -138
  79. package/lib/components/common/UserSelect.js +42 -41
  80. package/lib/components/common/authentication/AuthInterceptor.js +15 -19
  81. package/lib/components/common/authentication/AuthInterceptor.test.js +46 -64
  82. package/lib/components/common/authentication/AuthenticationContainer.js +350 -454
  83. package/lib/components/common/authentication/RequestInterceptor.js +16 -19
  84. package/lib/components/common/code_input/CodeInput.js +92 -122
  85. package/lib/components/common/code_input/draftHelpers.js +96 -90
  86. package/lib/components/common/code_input/languageHelpers.js +49 -47
  87. package/lib/components/common/code_input/languageHelpers.test.js +21 -16
  88. package/lib/components/common/defaults/Toast.js +26 -0
  89. package/lib/components/common/defaults/index.js +13 -0
  90. package/lib/components/core/CoreFormModal.js +26 -24
  91. package/lib/components/core/CoreModal.js +37 -31
  92. package/lib/components/core/attribute_definition/AttributeDefinitionForm.js +24 -23
  93. package/lib/components/core/attribute_definition/AttributeDefinitionTable.js +25 -18
  94. package/lib/components/core/bridge_model/BridgeModelForm.js +27 -37
  95. package/lib/components/core/bridge_model/BridgeModelTable.js +17 -10
  96. package/lib/components/core/bridge_model_attribute/BridgeModelAttributeForm.js +17 -16
  97. package/lib/components/core/bridge_model_attribute/BridgeModelAttributeTable.js +25 -21
  98. package/lib/components/core/bridge_model_qualification/BridgeModelQualificationForm.js +20 -20
  99. package/lib/components/core/bridge_model_qualification/BridgeModelQualificationTable.js +27 -22
  100. package/lib/components/core/category/CategoryForm.js +22 -22
  101. package/lib/components/core/category/CategoryTable.js +28 -16
  102. package/lib/components/core/core_form/CoreForm.js +209 -285
  103. package/lib/components/core/core_form/CoreForm.test.js +12 -10
  104. package/lib/components/core/core_form/defaults/index.js +52 -44
  105. package/lib/components/core/core_form/globals.js +14 -5
  106. package/lib/components/core/field_definition/FieldDefinitionForm.js +23 -21
  107. package/lib/components/core/field_definition/FieldDefinitionTable.js +26 -15
  108. package/lib/components/core/file_resource/FileResourceForm.js +38 -37
  109. package/lib/components/core/file_resource/FileResourceTable.js +16 -12
  110. package/lib/components/core/form/FormForm.js +56 -61
  111. package/lib/components/core/form/FormTable.js +47 -33
  112. package/lib/components/core/form_type/FormTypeForm.js +14 -13
  113. package/lib/components/core/form_type/FormTypeTable.js +15 -9
  114. package/lib/components/core/i18n/I18n.js +54 -61
  115. package/lib/components/core/i18n/I18nContext.js +9 -2
  116. package/lib/components/core/i18n/I18nProvider.js +40 -43
  117. package/lib/components/core/i18n/Moment.js +40 -50
  118. package/lib/components/core/index_definition/IndexDefinitionForm.js +23 -24
  119. package/lib/components/core/index_definition/IndexDefinitionTable.js +31 -16
  120. package/lib/components/core/index_job/IndexJobTable.js +20 -15
  121. package/lib/components/core/kapp/KappForm.js +57 -58
  122. package/lib/components/core/kapp/KappTable.js +34 -44
  123. package/lib/components/core/log/LogTable.js +42 -34
  124. package/lib/components/core/oauth_client/OAuthClientForm.js +17 -17
  125. package/lib/components/core/oauth_client/OAuthClientTable.js +12 -8
  126. package/lib/components/core/platform_component/AgentComponentForm.js +15 -15
  127. package/lib/components/core/platform_component/AgentComponentTable.js +10 -5
  128. package/lib/components/core/platform_component/TaskComponentForm.js +14 -14
  129. package/lib/components/core/profile/ProfileForm.js +40 -39
  130. package/lib/components/core/security_definition/SecurityDefinitionForm.js +28 -25
  131. package/lib/components/core/security_definition/SecurityDefinitionTable.js +27 -17
  132. package/lib/components/core/space/SpaceForm.js +79 -90
  133. package/lib/components/core/submission/DatastoreSubmissionFilters.js +39 -40
  134. package/lib/components/core/submission/DatastoreSubmissionTable.js +37 -34
  135. package/lib/components/core/submission/FormSubmissionFilters.js +79 -75
  136. package/lib/components/core/submission/FormSubmissionTable.js +64 -39
  137. package/lib/components/core/submission/KappSubmissionTable.js +67 -48
  138. package/lib/components/core/submission/SubmissionForm.js +126 -55
  139. package/lib/components/core/submission/SubmissionTable.js +24 -20
  140. package/lib/components/core/submission/helpers.js +37 -33
  141. package/lib/components/core/submission/helpers.test.js +69 -20
  142. package/lib/components/core/team/TeamForm.js +24 -21
  143. package/lib/components/core/team/TeamTable.js +27 -16
  144. package/lib/components/core/translation/ContextForm.js +13 -10
  145. package/lib/components/core/translation/ContextTable.js +13 -10
  146. package/lib/components/core/translation/EntryForm.js +27 -24
  147. package/lib/components/core/translation/EntryTable.js +19 -16
  148. package/lib/components/core/translation/LocaleForm.js +16 -13
  149. package/lib/components/core/translation/LocaleTable.js +12 -8
  150. package/lib/components/core/user/UserForm.js +38 -37
  151. package/lib/components/core/user/UserTable.js +42 -20
  152. package/lib/components/core/webapi/WebApiForm.js +87 -80
  153. package/lib/components/core/webapi/WebApiTable.js +28 -17
  154. package/lib/components/core/webhook/WebhookForm.js +33 -32
  155. package/lib/components/core/webhook/WebhookTable.js +41 -29
  156. package/lib/components/core/webhook_job/WebhookJobTable.js +58 -35
  157. package/lib/components/form/Form.helpers.js +182 -108
  158. package/lib/components/form/Form.js +467 -524
  159. package/lib/components/form/Form.models.js +39 -24
  160. package/lib/components/form/FormState.js +8 -5
  161. package/lib/components/form/KitchenSinkForm.js +135 -4
  162. package/lib/components/form/defaults/AttributesField.js +48 -59
  163. package/lib/components/form/defaults/CheckboxField.js +14 -6
  164. package/lib/components/form/defaults/CodeField.js +15 -7
  165. package/lib/components/form/defaults/FormButtons.js +12 -4
  166. package/lib/components/form/defaults/FormError.js +12 -4
  167. package/lib/components/form/defaults/FormField.js +15 -7
  168. package/lib/components/form/defaults/FormLayout.js +12 -4
  169. package/lib/components/form/defaults/FormMultiField.js +15 -7
  170. package/lib/components/form/defaults/PasswordField.js +14 -6
  171. package/lib/components/form/defaults/RadioField.js +15 -7
  172. package/lib/components/form/defaults/SampleTeamsRolesFIeld.js +17 -9
  173. package/lib/components/form/defaults/SelectField.js +16 -8
  174. package/lib/components/form/defaults/SelectMultiField.js +15 -7
  175. package/lib/components/form/defaults/TableField.js +14 -6
  176. package/lib/components/form/defaults/TeamField.js +15 -7
  177. package/lib/components/form/defaults/TeamMultiField.js +15 -7
  178. package/lib/components/form/defaults/TextField.js +14 -6
  179. package/lib/components/form/defaults/TextMultiField.js +26 -28
  180. package/lib/components/form/defaults/UserField.js +15 -7
  181. package/lib/components/form/defaults/UserMultiField.js +15 -7
  182. package/lib/components/form/defaults/index.js +48 -41
  183. package/lib/components/form/tests/Form.test.js +568 -864
  184. package/lib/components/form/tests/components.js +15 -25
  185. package/lib/components/form/tests/helpers.test.js +35 -33
  186. package/lib/components/index.js +1034 -135
  187. package/lib/components/system/SystemBackgroundTasksTable.js +14 -10
  188. package/lib/components/system/SystemCassandraForm.js +98 -0
  189. package/lib/components/system/SystemElasticSearchForm.js +98 -0
  190. package/lib/components/system/SystemFilestoreForm.js +36 -28
  191. package/lib/components/system/SystemForm.js +19 -16
  192. package/lib/components/system/SystemIngressForm.js +85 -36
  193. package/lib/components/system/SystemSecurityForm.js +17 -14
  194. package/lib/components/system/SystemSmtpForm.js +13 -13
  195. package/lib/components/system/SystemTaskAdapterForm.js +49 -21
  196. package/lib/components/system/SystemTrustedCertificateForm.js +40 -0
  197. package/lib/components/system/SystemTrustedCertificatesTable.js +74 -0
  198. package/lib/components/system/SystemUserForm.js +15 -14
  199. package/lib/components/system/helpers.js +281 -98
  200. package/lib/components/system/helpers.test.js +16 -12
  201. package/lib/components/system/spaces/SystemSpaceForm.js +25 -24
  202. package/lib/components/system/spaces/SystemTenantForm.js +112 -68
  203. package/lib/components/system/spaces/SystemTenantTable.js +12 -8
  204. package/lib/components/table/Table.js +295 -227
  205. package/lib/components/table/Table.redux.js +339 -355
  206. package/lib/components/table/Table.redux.test.js +49 -47
  207. package/lib/components/table/Table.test.js +146 -132
  208. package/lib/components/table/defaults/BodyCell.js +12 -6
  209. package/lib/components/table/defaults/BodyRow.js +10 -4
  210. package/lib/components/table/defaults/BooleanFilter.js +17 -11
  211. package/lib/components/table/defaults/ColumnControl.js +26 -0
  212. package/lib/components/table/defaults/EmptyBodyRow.js +12 -6
  213. package/lib/components/table/defaults/FilterLayout.js +17 -11
  214. package/lib/components/table/defaults/Footer.js +11 -5
  215. package/lib/components/table/defaults/FooterCell.js +10 -4
  216. package/lib/components/table/defaults/FooterRow.js +10 -4
  217. package/lib/components/table/defaults/Header.js +10 -4
  218. package/lib/components/table/defaults/HeaderCell.js +16 -10
  219. package/lib/components/table/defaults/HeaderRow.js +10 -4
  220. package/lib/components/table/defaults/PaginationControl.js +18 -9
  221. package/lib/components/table/defaults/TableBody.js +10 -4
  222. package/lib/components/table/defaults/TableLayout.js +12 -6
  223. package/lib/components/table/defaults/TextFilter.js +16 -10
  224. package/lib/components/table/defaults/index.js +43 -33
  225. package/lib/components/task/builder/Connector.js +100 -111
  226. package/lib/components/task/builder/ConnectorForm.js +17 -11
  227. package/lib/components/task/builder/Node.js +101 -83
  228. package/lib/components/task/builder/NodeForm.js +30 -27
  229. package/lib/components/task/builder/NodeParametersForm.js +27 -24
  230. package/lib/components/task/builder/SvgCanvas.js +67 -96
  231. package/lib/components/task/builder/SvgText.js +19 -134
  232. package/lib/components/task/builder/TaskDefinitionConfigForm.js +27 -22
  233. package/lib/components/task/builder/TreeBuilder.js +140 -115
  234. package/lib/components/task/builder/builder.redux.js +311 -326
  235. package/lib/components/task/builder/constants.js +94 -45
  236. package/lib/components/task/builder/helpers.js +184 -173
  237. package/lib/components/task/builder/helpers.test.js +20 -18
  238. package/lib/components/task/builder/models.js +121 -98
  239. package/lib/components/task/category/TaskCategoryForm.js +31 -29
  240. package/lib/components/task/category/TaskCategoryTable.js +12 -8
  241. package/lib/components/task/common/UsageTable.js +16 -12
  242. package/lib/components/task/engine/EngineSettingsForm.js +13 -11
  243. package/lib/components/task/errors/RunErrorTable.js +50 -27
  244. package/lib/components/task/errors/SystemErrorsTable.js +13 -9
  245. package/lib/components/task/handlers/HandlerForm.js +55 -55
  246. package/lib/components/task/handlers/HandlerTable.js +35 -19
  247. package/lib/components/task/handlers/MissingHandlerTable.js +12 -8
  248. package/lib/components/task/policy_rule/PolicyRuleForm.js +33 -32
  249. package/lib/components/task/policy_rule/PolicyRuleTable.js +12 -8
  250. package/lib/components/task/runs/CreateManualTriggerForm.js +17 -15
  251. package/lib/components/task/runs/RunTable.js +45 -29
  252. package/lib/components/task/runs/RunTaskTable.js +10 -6
  253. package/lib/components/task/sources/SourceForm.js +47 -47
  254. package/lib/components/task/sources/SourceTable.js +29 -18
  255. package/lib/components/task/triggers/TriggerTable.js +71 -41
  256. package/lib/components/task/workflows/LinkedWorkflowForm.js +48 -54
  257. package/lib/components/task/workflows/LinkedWorkflowTable.js +46 -26
  258. package/lib/components/task/workflows/MissingRoutineTable.js +12 -8
  259. package/lib/components/task/workflows/WorkflowForm.js +49 -44
  260. package/lib/components/task/workflows/WorkflowTable.js +47 -29
  261. package/lib/helpers/SearchBuilder.js +73 -127
  262. package/lib/helpers/SearchBuilder.test.js +184 -175
  263. package/lib/helpers/index.js +116 -74
  264. package/lib/index.js +87 -38
  265. package/lib/reducer.js +11 -3
  266. package/lib/saga.js +42 -38
  267. package/lib/store.js +59 -35
  268. package/package.json +17 -29
  269. package/proxyhelper.js +122 -57
  270. package/assets/discussions/images/avi_128.png +0 -0
  271. package/assets/discussions/images/excel_128.png +0 -0
  272. package/assets/discussions/images/html_128.png +0 -0
  273. package/assets/discussions/images/illustrator_128.png +0 -0
  274. package/assets/discussions/images/indesign_128.png +0 -0
  275. package/assets/discussions/images/movie_128.png +0 -0
  276. package/assets/discussions/images/mpeg_128.png +0 -0
  277. package/assets/discussions/images/pdf_128.png +0 -0
  278. package/assets/discussions/images/photoshop_128.png +0 -0
  279. package/assets/discussions/images/powerpoint_128.png +0 -0
  280. package/assets/discussions/images/txt_128.png +0 -0
  281. package/assets/discussions/images/unknown_128.png +0 -0
  282. package/assets/discussions/images/word_128.png +0 -0
  283. package/assets/discussions/styles/_discussion.scss +0 -506
  284. package/lib/apis/discussions/index.js +0 -395
  285. package/lib/apis/socket/index.js +0 -77
  286. package/lib/apis/socket/socket.js +0 -350
  287. package/lib/apis/socket/socket.test.js +0 -90
  288. package/lib/apis/socket/timer.js +0 -45
  289. package/lib/apis/socket/timer.test.js +0 -51
  290. package/lib/apis/socket/topic.js +0 -185
  291. package/lib/apis/topics/index.js +0 -19
  292. package/lib/components/discussions/ChatInputForm.js +0 -424
  293. package/lib/components/discussions/DateBanner.js +0 -10
  294. package/lib/components/discussions/Discussion.js +0 -202
  295. package/lib/components/discussions/DiscussionForm.js +0 -227
  296. package/lib/components/discussions/InvitationForm.js +0 -107
  297. package/lib/components/discussions/MessageHistory.js +0 -110
  298. package/lib/components/discussions/MessagesByDate.js +0 -40
  299. package/lib/components/discussions/MessagesList.js +0 -30
  300. package/lib/components/discussions/MoreMessagesBanner.js +0 -26
  301. package/lib/components/discussions/ScrollHelper.js +0 -84
  302. package/lib/components/discussions/SystemMessage.js +0 -88
  303. package/lib/components/discussions/SystemMessageGroup.js +0 -15
  304. package/lib/components/discussions/UserMessage.js +0 -163
  305. package/lib/components/discussions/UserMessageGroup.js +0 -34
  306. package/lib/components/discussions/redux.js +0 -178
  307. package/lib/components/discussions/sagas.js +0 -500
  308. package/lib/helpers/discussions/canManage.js +0 -30
  309. package/lib/helpers/discussions/canManage.test.js +0 -69
  310. package/lib/helpers/discussions/generateSystemMessageContent.js +0 -131
  311. package/lib/helpers/discussions/generateSystemMessageContent.test.js +0 -450
  312. package/lib/models/discussions.js +0 -76
  313. package/lib/models/index.js +0 -1
@@ -1,202 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- import { is } from 'immutable';
7
- import { MessagesList } from './MessagesList';
8
- import { ScrollHelper } from './ScrollHelper';
9
- import { ChatInputForm } from './ChatInputForm';
10
- import { MoreMessagesBanner } from './MoreMessagesBanner';
11
- import canManage from '../../helpers/discussions/canManage';
12
- import { JOIN_DISCUSSION, LEAVE_DISCUSSION, FETCH_MORE_MESSAGES } from './redux';
13
- import './sagas';
14
- import { connect, dispatch } from '../../store';
15
- import { SOCKET_STATUS } from '../../apis/socket/socket';
16
- export var DiscussionComponent = /*#__PURE__*/function (_React$Component) {
17
- _inherits(DiscussionComponent, _React$Component);
18
-
19
- var _super = _createSuper(DiscussionComponent);
20
-
21
- function DiscussionComponent(props) {
22
- var _this;
23
-
24
- _classCallCheck(this, DiscussionComponent);
25
-
26
- _this = _super.call(this, props);
27
-
28
- _this.handleScrollTo = function (event) {
29
- _this.setState({
30
- scrolledToBottom: event === 'bottom'
31
- });
32
-
33
- if (event === 'bottom') {
34
- _this.setState({
35
- hasUnreadMessages: false
36
- });
37
- }
38
-
39
- if (event === 'top' && _this.props.hasMoreMessages) {
40
- dispatch(FETCH_MORE_MESSAGES, _this.props.id);
41
- }
42
- };
43
-
44
- _this.editMessage = function (message) {
45
- _this.setState({
46
- editingMessage: message,
47
- replyingToMessage: null
48
- });
49
-
50
- if (message) _this.chatInput.editMessage(message);
51
- };
52
-
53
- _this.replyToMessage = function (message) {
54
- _this.setState({
55
- editingMessage: null,
56
- replyingToMessage: message
57
- });
58
-
59
- if (message) _this.chatInput.focus();
60
- };
61
-
62
- _this.buildMessageActions = function () {
63
- return {
64
- editing: _this.state.editingMessage,
65
- replying: _this.state.replyingToMessage,
66
- edit: _this.editMessage,
67
- reply: _this.replyToMessage,
68
- history: _this.props.toggleMessageHistory
69
- };
70
- };
71
-
72
- _this.state = {
73
- scrolledToBottom: true,
74
- hasUnreadMessages: false,
75
- editingMessage: null,
76
- replyingToMessage: null
77
- };
78
- return _this;
79
- }
80
-
81
- _createClass(DiscussionComponent, [{
82
- key: "componentDidMount",
83
- value: function componentDidMount() {
84
- dispatch(JOIN_DISCUSSION, {
85
- id: this.props.id,
86
- invitationToken: this.props.invitationToken
87
- });
88
- }
89
- }, {
90
- key: "componentDidUpdate",
91
- value: function componentDidUpdate(prevProps) {
92
- var _this2 = this;
93
-
94
- if (this.props.id !== prevProps.id) {
95
- dispatch(LEAVE_DISCUSSION, this.props.id);
96
- dispatch(JOIN_DISCUSSION, {
97
- id: this.props.id,
98
- invitationToken: this.props.invitationToken
99
- });
100
- }
101
-
102
- var messages = this.props.discussion && this.props.discussion.messages;
103
- var prevMessages = prevProps.discussion && prevProps.discussion.messages;
104
-
105
- if (!is(messages, prevMessages)) {
106
- if (!this.state.scrolledToBottom && messages // get the messages that are newer than the messages we previously
107
- // had, we do not care about older messages being loaded above only
108
- // new messages below
109
- .slice(0, messages.indexOf(prevMessages.first())) // if any of the new messages were not sent by the current user we
110
- // consider them to be unread
111
- .some(function (message) {
112
- return message.createdBy.email !== _this2.props.profile.email;
113
- })) {
114
- this.setState({
115
- hasUnreadMessages: true
116
- });
117
- }
118
- }
119
- }
120
- }, {
121
- key: "componentWillUnmount",
122
- value: function componentWillUnmount() {
123
- dispatch(LEAVE_DISCUSSION, this.props.id);
124
- }
125
- }, {
126
- key: "render",
127
- value: function render() {
128
- var _this3 = this;
129
-
130
- var DiscussionError = this.props.components.DiscussionError;
131
-
132
- if (this.props.socketStatus !== SOCKET_STATUS.RECONNECTING && this.props.socketStatus !== SOCKET_STATUS.IDENTIFIED) {
133
- return /*#__PURE__*/React.createElement(DiscussionError, {
134
- error: "Real-time connection to this server has been interrupted. Please refresh and try again"
135
- });
136
- } else if (this.props.error) {
137
- return /*#__PURE__*/React.createElement(DiscussionError, {
138
- error: this.props.error
139
- });
140
- } else if (this.props.discussion && !this.props.loading) {
141
- var messageActions = this.buildMessageActions();
142
- return this.props.render({
143
- error: this.props.error,
144
- discussion: this.props.discussion,
145
- canManage: canManage(this.props.discussion, this.props.profile),
146
- elements: {
147
- messages: /*#__PURE__*/React.createElement(ScrollHelper, {
148
- onScrollTo: this.handleScrollTo,
149
- ref: function ref(el) {
150
- return _this3.scrollHelper = el;
151
- }
152
- }, /*#__PURE__*/React.createElement(MoreMessagesBanner, {
153
- hasMore: this.props.hasMoreMessages,
154
- loading: this.props.loadingMoreMessages
155
- }), /*#__PURE__*/React.createElement(MessagesList, {
156
- discussion: this.props.discussion,
157
- profile: this.props.profile,
158
- messages: this.props.discussion.messages.reverse(),
159
- actions: messageActions
160
- })),
161
- chatInput: /*#__PURE__*/React.createElement(ChatInputForm, {
162
- discussion: this.props.discussion,
163
- messageActions: messageActions,
164
- registerChatInput: function registerChatInput(el) {
165
- return _this3.chatInput = el;
166
- },
167
- toggleInvitationForm: this.props.toggleInvitationForm
168
- }),
169
- viewUnreadButton: this.state.hasUnreadMessages ? /*#__PURE__*/React.createElement("button", {
170
- type: "button",
171
- className: "btn btn-primary btn--banner",
172
- onClick: this.scrollHelper && this.scrollHelper.scrollToBottom
173
- }, "New messages", /*#__PURE__*/React.createElement("i", {
174
- className: "fa fa-fw fa-arrow-down",
175
- "aria-hidden": "true"
176
- })) : null
177
- }
178
- });
179
- }
180
-
181
- return this.props.loader ? this.props.loader() : null;
182
- }
183
- }]);
184
-
185
- return DiscussionComponent;
186
- }(React.Component);
187
- DiscussionComponent.displayName = 'Discussion';
188
- var ConnectedDiscussionComponent = connect(function (state, props) {
189
- var path = ['discussions', props.id];
190
- return {
191
- socketStatus: state.get('socketStatus'),
192
- discussion: state.getIn(path),
193
- loading: state.getIn([].concat(path, ['loading'])),
194
- error: state.getIn([].concat(path, ['error'])),
195
- hasMoreMessages: state.getIn([].concat(path, ['nextPageToken'])) !== null,
196
- loadingMoreMessaes: state.getIn([].concat(path, ['loadingMoreMessages']))
197
- };
198
- })(DiscussionComponent);
199
- export var Discussion = function Discussion(props) {
200
- return /*#__PURE__*/React.createElement(ConnectedDiscussionComponent, props);
201
- };
202
- export default Discussion;
@@ -1,227 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/esm/createClass";
5
- import _inherits from "@babel/runtime/helpers/esm/inherits";
6
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
- import React, { Fragment } from 'react';
8
- import { fetchSecurityPolicyDefinitions } from '../../apis/core/securityPolicyDefinitions';
9
- export var DiscussionForm = /*#__PURE__*/function (_React$Component) {
10
- _inherits(DiscussionForm, _React$Component);
11
-
12
- var _super = _createSuper(DiscussionForm);
13
-
14
- function DiscussionForm(props) {
15
- var _this;
16
-
17
- _classCallCheck(this, DiscussionForm);
18
-
19
- _this = _super.call(this, props);
20
-
21
- _this.validate = function (values) {
22
- var result = {};
23
-
24
- if (values.title === null || values.title === '') {
25
- result.title = 'Title must not be empty';
26
- }
27
-
28
- return result;
29
- };
30
-
31
- _this.submit = function (event) {
32
- event && event.preventDefault && event.preventDefault();
33
-
34
- _this.setState({
35
- dirty: false,
36
- saving: true
37
- });
38
-
39
- if (typeof _this.props.onSubmit === 'function') {
40
- _this.props.onSubmit(_this.state.values, function () {
41
- return _this.setState({
42
- saving: false
43
- });
44
- });
45
- }
46
- };
47
-
48
- _this.handleChange = function (event) {
49
- var field = event.target.id;
50
- var value = event.target.type === 'checkbox' ? event.target.checked : event.target.value;
51
-
52
- _this.setState(function (state) {
53
- return _objectSpread(_objectSpread({}, state), {}, {
54
- values: _objectSpread(_objectSpread({}, state.values), {}, _defineProperty({}, field, value)),
55
- dirty: true
56
- });
57
- });
58
- };
59
-
60
- _this.handleBlur = function (event) {
61
- var field = event.target.id;
62
-
63
- _this.setState(function (state) {
64
- return _objectSpread(_objectSpread({}, state), {}, {
65
- touched: _objectSpread(_objectSpread({}, state.touched), {}, _defineProperty({}, field, true))
66
- });
67
- });
68
- };
69
-
70
- _this.handleJoinPolicyChange = function (event) {
71
- var name = event.target.value;
72
-
73
- _this.setState(function (state) {
74
- return _objectSpread(_objectSpread({}, state), {}, {
75
- values: _objectSpread(_objectSpread({}, state.values), {}, {
76
- joinPolicy: name ? {
77
- name: name
78
- } : null
79
- }),
80
- dirty: true
81
- });
82
- });
83
- };
84
-
85
- _this.state = {
86
- values: props.discussion ? {
87
- title: props.discussion.title,
88
- description: props.discussion.description,
89
- isPrivate: props.discussion.isPrivate,
90
- joinPolicy: props.discussion.joinPolicy,
91
- owningUsers: props.discussion.owningUsers.toJS(),
92
- owningTeams: props.discussion.owningTeams.toJS(),
93
- isArchived: props.discussion.isArchived
94
- } : {
95
- title: props.defaults && props.defaults.title || '',
96
- description: props.defaults && props.defaults.description || '',
97
- isPrivate: false,
98
- joinPolicy: null,
99
- owningUsers: props.defaults && props.defaults.owningUsers || [],
100
- owningTeams: [],
101
- isArchived: false
102
- },
103
- touched: {},
104
- dirty: false,
105
- saving: false,
106
- editing: !!props.discussion,
107
- securityPolicyDefinitions: []
108
- };
109
- return _this;
110
- }
111
-
112
- _createClass(DiscussionForm, [{
113
- key: "componentDidMount",
114
- value: function componentDidMount() {
115
- var _this2 = this;
116
-
117
- fetchSecurityPolicyDefinitions().then(function (_ref) {
118
- var securityPolicyDefinitions = _ref.securityPolicyDefinitions;
119
- return _this2.setState({
120
- securityPolicyDefinitions: securityPolicyDefinitions
121
- });
122
- });
123
- }
124
- }, {
125
- key: "render",
126
- value: function render() {
127
- var OwningUsersInput = this.props.renderOwningUsersInput;
128
- var OwningTeamsInput = this.props.renderOwningTeamsInput;
129
- var validations = this.validate(this.state.values);
130
- return this.props.render({
131
- formElement: /*#__PURE__*/React.createElement("form", {
132
- onSubmit: this.submit
133
- }, /*#__PURE__*/React.createElement("div", {
134
- className: "form-group required ".concat(validations.title && this.state.touched.title ? 'has-error' : '')
135
- }, /*#__PURE__*/React.createElement("label", {
136
- htmlFor: "title"
137
- }, "Title"), /*#__PURE__*/React.createElement("input", {
138
- id: "title",
139
- type: "text",
140
- value: this.state.values.title,
141
- onChange: this.handleChange,
142
- onBlur: this.handleBlur
143
- }), validations.title && this.state.touched.title && /*#__PURE__*/React.createElement("p", {
144
- className: "text-danger"
145
- }, validations.title)), /*#__PURE__*/React.createElement("div", {
146
- className: "form-group"
147
- }, /*#__PURE__*/React.createElement("label", {
148
- htmlFor: "description"
149
- }, "Description"), /*#__PURE__*/React.createElement("textarea", {
150
- id: "description",
151
- value: this.state.values.description,
152
- onChange: this.handleChange
153
- })), /*#__PURE__*/React.createElement("hr", null), /*#__PURE__*/React.createElement("div", {
154
- className: "form-group"
155
- }, /*#__PURE__*/React.createElement("div", {
156
- className: "form-check-inline"
157
- }, /*#__PURE__*/React.createElement("input", {
158
- className: "form-check-input",
159
- id: "isPrivate",
160
- type: "checkbox",
161
- checked: this.state.values.isPrivate,
162
- onChange: this.handleChange
163
- }), /*#__PURE__*/React.createElement("label", {
164
- className: "form-check-label",
165
- htmlFor: "isPrivate"
166
- }, "Private?")), /*#__PURE__*/React.createElement("small", {
167
- className: "form-text text-muted"
168
- }, "Private discussions require explicit invitations to join")), !this.state.values.isPrivate && /*#__PURE__*/React.createElement("div", {
169
- className: "form-group"
170
- }, /*#__PURE__*/React.createElement("label", {
171
- htmlFor: "joinPolicy"
172
- }, "Join Policy"), /*#__PURE__*/React.createElement("select", {
173
- id: "joinPolicy",
174
- value: this.state.values.joinPolicy ? this.state.values.joinPolicy.name : '',
175
- onChange: this.handleJoinPolicyChange
176
- }, /*#__PURE__*/React.createElement("option", null), this.state.securityPolicyDefinitions.map(function (definition) {
177
- return /*#__PURE__*/React.createElement("option", {
178
- value: definition.name,
179
- key: definition.name
180
- }, definition.name);
181
- }))), /*#__PURE__*/React.createElement("hr", null), /*#__PURE__*/React.createElement("div", {
182
- className: "form-group"
183
- }, /*#__PURE__*/React.createElement("label", {
184
- htmlFor: "owningUsers"
185
- }, "Owning Users"), /*#__PURE__*/React.createElement(OwningUsersInput, {
186
- id: "owningUsers",
187
- value: this.state.values.owningUsers,
188
- onChange: this.handleChange
189
- })), /*#__PURE__*/React.createElement("div", {
190
- className: "form-group"
191
- }, /*#__PURE__*/React.createElement("label", {
192
- htmlFor: "owningTeams"
193
- }, "Owning Teams"), /*#__PURE__*/React.createElement(OwningTeamsInput, {
194
- id: "owningTeams",
195
- value: this.state.values.owningTeams,
196
- onChange: this.handleChange
197
- }), /*#__PURE__*/React.createElement("small", {
198
- className: "form-text text-muted"
199
- }, "Owning users and teams are able to make changes to the discussion")), /*#__PURE__*/React.createElement("hr", null), this.state.editing && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("div", {
200
- className: "form-group"
201
- }, /*#__PURE__*/React.createElement("div", {
202
- className: "form-check-inline"
203
- }, /*#__PURE__*/React.createElement("input", {
204
- className: "form-check-input",
205
- id: "isArchived",
206
- type: "checkbox",
207
- checked: this.state.values.isArchived,
208
- onChange: this.handleChange
209
- }), /*#__PURE__*/React.createElement("label", {
210
- className: "form-check-label",
211
- htmlFor: "isArchived"
212
- }, "Archived?")), /*#__PURE__*/React.createElement("small", {
213
- className: "form-text text-danger"
214
- }, "While archived, users are not able to send any messages")))),
215
- submit: this.submit,
216
- dirty: this.state.dirty,
217
- invalid: Object.keys(validations).length > 0,
218
- buttonProps: {
219
- onClick: this.submit,
220
- disabled: !this.state.dirty || this.state.saving || Object.keys(validations).length > 0
221
- }
222
- });
223
- }
224
- }]);
225
-
226
- return DiscussionForm;
227
- }(React.Component);
@@ -1,107 +0,0 @@
1
- import React from 'react';
2
- import { compose, withHandlers, withProps, withState } from 'recompose';
3
- import { List, Map } from 'immutable';
4
- export var InvitationFormComponent = function InvitationFormComponent(props) {
5
- var InviteesInput = props.renderInviteesInput;
6
- return props.render({
7
- formElement: /*#__PURE__*/React.createElement("form", {
8
- className: "invitation-form",
9
- onSubmit: props.handleSubmit
10
- }, /*#__PURE__*/React.createElement("div", {
11
- className: "form-group required"
12
- }, /*#__PURE__*/React.createElement("label", null, "Invitees"), /*#__PURE__*/React.createElement(InviteesInput, {
13
- id: "invitees",
14
- onChange: props.handleUserChange,
15
- value: props.values.get('invitees'),
16
- disabledFn: props.disabledFn
17
- }), /*#__PURE__*/React.createElement("small", {
18
- className: "form-text text-muted"
19
- }, "Enter a valid email address to invite a new user")), /*#__PURE__*/React.createElement("div", {
20
- className: "form-group"
21
- }, /*#__PURE__*/React.createElement("label", {
22
- htmlFor: "message"
23
- }, "Message for Invitees"), /*#__PURE__*/React.createElement("textarea", {
24
- name: "message",
25
- id: "message",
26
- onChange: props.handleChange,
27
- value: props.values.get('message')
28
- }), /*#__PURE__*/React.createElement("small", {
29
- className: "form-text text-muted"
30
- }, "This note will be sent as part of the invitation and visible to all members inside the discussion"))),
31
- invalid: props.required && props.values.get('invitees').size === 0,
32
- submit: props.handleSubmit,
33
- buttonProps: {
34
- onClick: props.handleSubmit,
35
- disabled: props.saving || props.required && props.values.get('invitees').size === 0
36
- }
37
- });
38
- };
39
-
40
- var mapProps = function mapProps(props) {
41
- return {
42
- associatedUsers: props.discussion ? props.discussion.participants.concat(props.discussion.invitations.filter(function (invitation) {
43
- return invitation.user;
44
- })).map(function (involvement) {
45
- return involvement.user.username;
46
- }) : List([props.profile.username]),
47
- associatedEmails: props.discussion ? props.discussion.invitations.filter(function (invitation) {
48
- return invitation.email;
49
- }).map(function (invitation) {
50
- return invitation.email;
51
- }) : List()
52
- };
53
- };
54
-
55
- var handleChange = function handleChange(props) {
56
- return function (event) {
57
- var field = event.target.id;
58
- var value = event.target.value;
59
- props.setValues(function (values) {
60
- return values.set(field, value);
61
- });
62
- };
63
- };
64
-
65
- var handleUserChange = function handleUserChange(props) {
66
- return function (user) {
67
- props.setValues(function (values) {
68
- return values.set('invitees', user ? user : List());
69
- });
70
- };
71
- };
72
-
73
- var handleSubmit = function handleSubmit(props) {
74
- return function (event) {
75
- event && event.preventDefault && event.preventDefault();
76
- props.setSaving(true);
77
-
78
- if (typeof props.onSubmit === 'function') {
79
- props.onSubmit(props.values, function () {
80
- return props.setSaving(false);
81
- });
82
- }
83
- };
84
- };
85
-
86
- var disabledFn = function disabledFn(props) {
87
- return function (option) {
88
- if (option.user) {
89
- return props.associatedUsers.contains(option.user.username) && 'Already involved';
90
- } else if (option.customOption) {
91
- return props.associatedEmails.contains(option.label) && 'Already invited';
92
- }
93
-
94
- return false;
95
- };
96
- };
97
-
98
- export var InvitationForm = compose(withProps(mapProps), withState('saving', 'setSaving', false), withState('values', 'setValues', Map({
99
- invitees: List(),
100
- message: ''
101
- })), withHandlers({
102
- handleChange: handleChange,
103
- handleUserChange: handleUserChange,
104
- handleSubmit: handleSubmit,
105
- disabledFn: disabledFn
106
- }))(InvitationFormComponent);
107
- export default InvitationForm;
@@ -1,110 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React, { Component, Fragment } from 'react';
6
- import { List } from 'immutable';
7
- import moment from 'moment';
8
- import { fetchMessageHistory } from '../../apis/discussions';
9
- import { UserMessageGroup } from './UserMessageGroup';
10
- export var MessageHistory = /*#__PURE__*/function (_Component) {
11
- _inherits(MessageHistory, _Component);
12
-
13
- var _super = _createSuper(MessageHistory);
14
-
15
- function MessageHistory() {
16
- var _this;
17
-
18
- _classCallCheck(this, MessageHistory);
19
-
20
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
21
- args[_key] = arguments[_key];
22
- }
23
-
24
- _this = _super.call.apply(_super, [this].concat(args));
25
- _this.state = {
26
- versions: null,
27
- index: null
28
- };
29
- return _this;
30
- }
31
-
32
- _createClass(MessageHistory, [{
33
- key: "componentDidMount",
34
- value: function componentDidMount() {
35
- var _this2 = this;
36
-
37
- fetchMessageHistory({
38
- discussionId: this.props.discussion.id,
39
- id: this.props.message.id
40
- }).then(function (response) {
41
- var versions = response.messages.reverse();
42
- var index = versions.findIndex(function (m) {
43
- return m.versionId === _this2.props.message.versionId;
44
- });
45
-
46
- _this2.setState({
47
- versions: versions,
48
- index: index !== -1 ? index : versions.length - 1
49
- });
50
- });
51
- }
52
- }, {
53
- key: "render",
54
- value: function render() {
55
- var _this3 = this;
56
-
57
- if (this.state.versions) {
58
- var currentVersion = this.state.versions[this.state.index];
59
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("div", {
60
- className: "message-versions-controls"
61
- }, /*#__PURE__*/React.createElement("div", {
62
- className: "timestamp"
63
- }, "Changed on", ' ', moment(currentVersion.updatedAt).format(this.props.timeFormat)), /*#__PURE__*/React.createElement("div", {
64
- className: "page-info"
65
- }, this.state.index + 1, " of ", this.state.versions.length), /*#__PURE__*/React.createElement("div", {
66
- className: "btn-group"
67
- }, /*#__PURE__*/React.createElement("button", {
68
- type: "button",
69
- className: "btn btn-sm btn-inverse",
70
- disabled: this.state.index <= 0,
71
- onClick: function onClick() {
72
- return _this3.setState(function (state) {
73
- return {
74
- index: state.index - 1
75
- };
76
- });
77
- }
78
- }, /*#__PURE__*/React.createElement("i", {
79
- className: "fa fa-fw fa-caret-left"
80
- })), /*#__PURE__*/React.createElement("button", {
81
- type: "button",
82
- className: "btn btn-sm btn-inverse",
83
- disabled: this.state.index >= this.state.versions.length - 1,
84
- onClick: function onClick() {
85
- return _this3.setState(function (state) {
86
- return {
87
- index: state.index + 1
88
- };
89
- });
90
- }
91
- }, /*#__PURE__*/React.createElement("i", {
92
- className: "fa fa-fw fa-caret-right"
93
- })))), /*#__PURE__*/React.createElement("div", {
94
- className: "message-versions"
95
- }, /*#__PURE__*/React.createElement(UserMessageGroup, {
96
- discussion: this.props.discussion,
97
- profile: this.props.profile,
98
- messages: List([currentVersion])
99
- })));
100
- }
101
-
102
- return null;
103
- }
104
- }]);
105
-
106
- return MessageHistory;
107
- }(Component);
108
- MessageHistory.defaultProps = {
109
- timeFormat: 'MMMM D, YYYY h:mm A'
110
- };
@@ -1,40 +0,0 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
- import React, { Fragment } from 'react';
3
- import { DateBanner } from './DateBanner';
4
- import { partitionListBy } from '../../helpers';
5
- import { SystemMessageGroup } from './SystemMessageGroup';
6
- import { UserMessageGroup } from './UserMessageGroup';
7
-
8
- var differentAuthor = function differentAuthor(m1, m2) {
9
- return m1.type !== m2.type || m1.type === 'User' && m1.createdBy.username !== m2.createdBy.username;
10
- };
11
-
12
- var Default = function Default(_ref) {
13
- var dateBanner = _ref.dateBanner,
14
- messageGroups = _ref.messageGroups;
15
- return /*#__PURE__*/React.createElement(Fragment, null, dateBanner, messageGroups);
16
- };
17
-
18
- export var MessagesByDate = function MessagesByDate(props) {
19
- var Component = props.renderMessagesByDate || Default;
20
- return /*#__PURE__*/React.createElement(Component, {
21
- dateBanner: /*#__PURE__*/React.createElement(DateBanner, {
22
- date: props.messages.first().createdAt
23
- }),
24
- messageGroups: partitionListBy(differentAuthor, props.messages).map(function (messages) {
25
- return {
26
- discussion: props.discussion,
27
- profile: props.profile,
28
- messages: messages,
29
- actions: props.actions,
30
- key: messages.first().id,
31
- Component: messages.first().type === 'User' ? UserMessageGroup : SystemMessageGroup
32
- };
33
- }).map(function (_ref2) {
34
- var Component = _ref2.Component,
35
- props = _objectWithoutProperties(_ref2, ["Component"]);
36
-
37
- return /*#__PURE__*/React.createElement(Component, props);
38
- })
39
- });
40
- };