@bigbinary/neeto-team-members-frontend 4.6.14 → 5.0.0
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/README.md +83 -47
- package/dist/Groups.js +2 -2
- package/dist/ManageMember.js +5 -5
- package/dist/MembersInvite.js +1 -1
- package/dist/Profile.js +1 -1
- package/dist/Roles.js +2 -2
- package/dist/{RolesRadioGroup-D_c864VH.js → RolesRadioGroup-BD1_SfUu.js} +2 -2
- package/dist/{RolesRadioGroup-D_c864VH.js.map → RolesRadioGroup-BD1_SfUu.js.map} +1 -1
- package/dist/{RolesRadioGroup-PfJ8yeOo.js → RolesRadioGroup-vzpUv8Ji.js} +2 -2
- package/dist/{RolesRadioGroup-PfJ8yeOo.js.map → RolesRadioGroup-vzpUv8Ji.js.map} +1 -1
- package/dist/RolesRadioGroup.js +2 -2
- package/dist/TeamMembers.js +5 -5
- package/dist/cjs/Groups.js +2 -2
- package/dist/cjs/ManageMember.js +5 -5
- package/dist/cjs/MembersInvite.js +1 -1
- package/dist/cjs/Profile.js +1 -1
- package/dist/cjs/Roles.js +2 -2
- package/dist/cjs/RolesRadioGroup.js +2 -2
- package/dist/cjs/TeamMembers.js +5 -5
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/hooks.js +3 -3
- package/dist/cjs/index.js +6 -6
- package/dist/cjs/utils.js +2 -2
- package/dist/{constants-Bv0kiGjC.js → constants-CbaUJ-B2.js} +2 -2
- package/dist/constants-CbaUJ-B2.js.map +1 -0
- package/dist/{constants-CoKdUpNz.js → constants-V4yaxd59.js} +2 -2
- package/dist/constants-V4yaxd59.js.map +1 -0
- package/dist/constants.js +1 -1
- package/dist/hooks.js +3 -3
- package/dist/{index-C6n5fCKc.js → index-CMDSDN1S.js} +5 -5
- package/dist/{index-C6n5fCKc.js.map → index-CMDSDN1S.js.map} +1 -1
- package/dist/{index-COZyb1oK.js → index-CjWGCASA.js} +5 -5
- package/dist/{index-COZyb1oK.js.map → index-CjWGCASA.js.map} +1 -1
- package/dist/{index-B0Vfgumn.js → index-Dn1xXV16.js} +2 -2
- package/dist/{index-B0Vfgumn.js.map → index-Dn1xXV16.js.map} +1 -1
- package/dist/{index-ChnZuzES.js → index-_hZkDXWE.js} +2 -2
- package/dist/{index-ChnZuzES.js.map → index-_hZkDXWE.js.map} +1 -1
- package/dist/index.js +6 -6
- package/dist/{useMembersSidenav-BNprHDYJ.js → useMembersSidenav-BHyu2RIj.js} +2 -2
- package/dist/{useMembersSidenav-BNprHDYJ.js.map → useMembersSidenav-BHyu2RIj.js.map} +1 -1
- package/dist/{useMembersSidenav-BtH5hu6v.js → useMembersSidenav-Dnw2537Q.js} +2 -2
- package/dist/{useMembersSidenav-BtH5hu6v.js.map → useMembersSidenav-Dnw2537Q.js.map} +1 -1
- package/dist/{useTeamsApi-BhoJWeju.js → useTeamsApi-ByaAsGOl.js} +2 -2
- package/dist/{useTeamsApi-BhoJWeju.js.map → useTeamsApi-ByaAsGOl.js.map} +1 -1
- package/dist/{useTeamsApi-CO_vSIC_.js → useTeamsApi-DZBA2Gi6.js} +2 -2
- package/dist/{useTeamsApi-CO_vSIC_.js.map → useTeamsApi-DZBA2Gi6.js.map} +1 -1
- package/dist/utils.js +2 -2
- package/package.json +11 -11
- package/dist/constants-Bv0kiGjC.js.map +0 -1
- package/dist/constants-CoKdUpNz.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
# NeetoTeamMembersNano
|
|
2
2
|
|
|
3
|
-
The `neeto-team-members-nano` facilitates the administration of team members
|
|
3
|
+
The `neeto-team-members-nano` facilitates the administration of team members
|
|
4
|
+
within neeto applications. The nano exports the
|
|
5
|
+
`@bigbinary/neeto-team-members-frontend` NPM package and
|
|
6
|
+
`neeto-team-members-engine` Rails engine for development.
|
|
4
7
|
|
|
5
8
|
## Contents
|
|
6
9
|
|
|
7
10
|
1. [Development with Host Application](#development-with-host-application)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
- [Engine](#engine)
|
|
12
|
+
- [Installation](#installation)
|
|
13
|
+
- [Usage](#usage)
|
|
14
|
+
- [Frontend package](#frontend-package)
|
|
15
|
+
- [Installation](#installation-1)
|
|
16
|
+
- [Instructions for development](#instructions-for-development)
|
|
17
|
+
- [Components](#components)
|
|
15
18
|
2. [Instructions for Publishing](#instructions-for-publishing)
|
|
16
19
|
|
|
17
20
|
## Development with Host Application
|
|
18
21
|
|
|
19
22
|
### Engine
|
|
20
23
|
|
|
21
|
-
The engine is used to seed the roles and permissions for the organization. It
|
|
24
|
+
The engine is used to seed the roles and permissions for the organization. It
|
|
25
|
+
also provides concerns to handle common logic related to `User` model .
|
|
22
26
|
|
|
23
27
|
#### Installation
|
|
24
28
|
|
|
@@ -41,10 +45,14 @@ The engine is used to seed the roles and permissions for the organization. It al
|
|
|
41
45
|
3. Add this line to your application's `config/routes.rb` file:
|
|
42
46
|
|
|
43
47
|
```ruby
|
|
44
|
-
mount NeetoTeamMembersEngine::Engine
|
|
48
|
+
mount NeetoTeamMembersEngine::Engine, at: "/neeto_team_members"
|
|
45
49
|
```
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
**NOTE: The mount point must be `/neeto_team_members` and cannot be changed
|
|
52
|
+
to any other path.**
|
|
53
|
+
|
|
54
|
+
4. Run the command to bring in all migrations required from the engine to the
|
|
55
|
+
host application:
|
|
48
56
|
|
|
49
57
|
```shell
|
|
50
58
|
bundle exec rails neeto_team_members_engine:install:migrations
|
|
@@ -62,7 +70,8 @@ The engine is used to seed the roles and permissions for the organization. It al
|
|
|
62
70
|
bundle exec rails g neeto_team_members_engine:install
|
|
63
71
|
```
|
|
64
72
|
|
|
65
|
-
This command will try to inject the engine's route as well as create a
|
|
73
|
+
This command will try to inject the engine's route as well as create a
|
|
74
|
+
`config/permissions.yml` file to add the permissions required.
|
|
66
75
|
|
|
67
76
|
#### Usage
|
|
68
77
|
|
|
@@ -75,7 +84,8 @@ You can learn more about the setup and usage here:
|
|
|
75
84
|
|
|
76
85
|
### Frontend package
|
|
77
86
|
|
|
78
|
-
The package exports the four components: `Roles`, `TeamMembers`, `Permissions`,
|
|
87
|
+
The package exports the four components: `Roles`, `TeamMembers`, `Permissions`,
|
|
88
|
+
and `ManageRole`.
|
|
79
89
|
|
|
80
90
|
#### Installation
|
|
81
91
|
|
|
@@ -87,7 +97,9 @@ yarn add @bigbinary/neeto-team-members-frontend
|
|
|
87
97
|
|
|
88
98
|
### Instructions for development
|
|
89
99
|
|
|
90
|
-
Check the
|
|
100
|
+
Check the
|
|
101
|
+
[Frontend package development guide](https://neeto-engineering.neetokb.com/p/a-d34cb4b0)
|
|
102
|
+
for step-by-step instructions to develop the frontend package.
|
|
91
103
|
|
|
92
104
|
### Components
|
|
93
105
|
|
|
@@ -95,15 +107,19 @@ Check the [Frontend package development guide](https://neeto-engineering.neetokb
|
|
|
95
107
|
|
|
96
108
|

|
|
97
109
|
|
|
98
|
-
This component manages team roles. It includes functionalities such as adding
|
|
110
|
+
This component manages team roles. It includes functionalities such as adding
|
|
111
|
+
roles and allowing updates to roles with associated permissions.
|
|
99
112
|
|
|
100
113
|
###### Props
|
|
101
114
|
|
|
102
|
-
- `config`: Configuration object that includes mandatory specifications for
|
|
115
|
+
- `config`: Configuration object that includes mandatory specifications for
|
|
116
|
+
header breadcrumbs and role permissions. It also allows optional
|
|
117
|
+
configurations for help articles and permission hierarchy.
|
|
103
118
|
|
|
104
119
|
###### Configuration
|
|
105
120
|
|
|
106
|
-
Refer to the [Roles](./docs/frontend/roles.md) section for detailed information
|
|
121
|
+
Refer to the [Roles](./docs/frontend/roles.md) section for detailed information
|
|
122
|
+
on the available configurations for the `Roles` component.
|
|
107
123
|
|
|
108
124
|
###### Usage
|
|
109
125
|
|
|
@@ -137,15 +153,20 @@ export default App;
|
|
|
137
153
|
|
|
138
154
|

|
|
139
155
|
|
|
140
|
-
The component offers functionalities for adding, updating and viewing team
|
|
156
|
+
The component offers functionalities for adding, updating and viewing team
|
|
157
|
+
members and their roles in a tabular format. Additionally, it provides filtering
|
|
158
|
+
options based on email, name, and role.
|
|
141
159
|
|
|
142
160
|
###### Props
|
|
143
161
|
|
|
144
|
-
- `config`: Configuration object that allows customization of role management,
|
|
162
|
+
- `config`: Configuration object that allows customization of role management,
|
|
163
|
+
member operation permissions, UI elements like buttons and headers, callback
|
|
164
|
+
functions, table structure, dropdown actions, and various display aspects.
|
|
145
165
|
|
|
146
166
|
###### Configuration
|
|
147
167
|
|
|
148
|
-
Refer to the [TeamMembers](./docs/frontend/team_members.md) section for detailed
|
|
168
|
+
Refer to the [TeamMembers](./docs/frontend/team_members.md) section for detailed
|
|
169
|
+
information on the available configurations for the `TeamMembers` component.
|
|
149
170
|
|
|
150
171
|
###### Usage
|
|
151
172
|
|
|
@@ -179,17 +200,22 @@ export default App;
|
|
|
179
200
|
|
|
180
201
|

|
|
181
202
|
|
|
182
|
-
The component handles the rendering and management of permissions for team
|
|
203
|
+
The component handles the rendering and management of permissions for team
|
|
204
|
+
members. It organizes permissions into categories, provides checkboxes for
|
|
205
|
+
selection, and supports hierarchical structures with parent-child relationships.
|
|
183
206
|
|
|
184
207
|
###### Props
|
|
185
208
|
|
|
186
209
|
- `permissions`: An array of permissions.
|
|
187
|
-
- `isDisabled`: A boolean indicating whether the component is disabled. By
|
|
188
|
-
|
|
210
|
+
- `isDisabled`: A boolean indicating whether the component is disabled. By
|
|
211
|
+
default, it is false.
|
|
212
|
+
- `permissionRelationConfig`: Configuration for managing parent-child
|
|
213
|
+
relationships and unchecking permissions on select.
|
|
189
214
|
|
|
190
215
|
###### Configuration
|
|
191
216
|
|
|
192
|
-
Refer to the [Permissions](./docs/frontend/permissions.md) section for detailed
|
|
217
|
+
Refer to the [Permissions](./docs/frontend/permissions.md) section for detailed
|
|
218
|
+
information on the available configurations for the `TeamMembers` component.
|
|
193
219
|
|
|
194
220
|
###### Usage
|
|
195
221
|
|
|
@@ -230,15 +256,20 @@ The component is a form-based interface for adding or editing team members.
|
|
|
230
256
|
|
|
231
257
|
###### Props
|
|
232
258
|
|
|
233
|
-
- `config`: Configuration object with various options for customizing the
|
|
234
|
-
|
|
259
|
+
- `config`: Configuration object with various options for customizing the
|
|
260
|
+
behavior of the component.
|
|
261
|
+
- `onComplete`: Callback function to be executed when the component is closed or
|
|
262
|
+
the form is submitted.
|
|
235
263
|
- `roles`: An array of roles available for team members.
|
|
236
264
|
- `selectedMember`: The team member object being edited, if applicable.
|
|
237
|
-
- `componentConfig`: Configuration specific to the component, including the type
|
|
265
|
+
- `componentConfig`: Configuration specific to the component, including the type
|
|
266
|
+
of pane, initial focus reference, etc.
|
|
238
267
|
|
|
239
268
|
###### Configuration
|
|
240
269
|
|
|
241
|
-
Refer to the [ManageMembers](./docs/frontend/manage_members.md) section for
|
|
270
|
+
Refer to the [ManageMembers](./docs/frontend/manage_members.md) section for
|
|
271
|
+
detailed information on the available configurations for the `ManageMembers`
|
|
272
|
+
component.
|
|
242
273
|
|
|
243
274
|
###### Usage
|
|
244
275
|
|
|
@@ -274,39 +305,44 @@ export default App;
|
|
|
274
305
|
|
|
275
306
|
##### `Profile`
|
|
276
307
|
|
|
277
|
-
The `Profile` component encapsulates the user profile functionality, integrating
|
|
308
|
+
The `Profile` component encapsulates the user profile functionality, integrating
|
|
309
|
+
a `Pane` component for displaying profile details and a `usePaneState` hook to
|
|
310
|
+
efficiently manage the state associated with the `Pane`.
|
|
278
311
|
|
|
279
|
-
1. `Profile.Pane`: The component is a pane-based interface for viewing and
|
|
312
|
+
1. `Profile.Pane`: The component is a pane-based interface for viewing and
|
|
313
|
+
editing the user's profile details.
|
|
280
314
|
|
|
281
|
-
|
|
315
|
+

|
|
282
316
|
|
|
283
317
|
2. `Profile.usePaneState`: A hook to manage the state of the profile pane.
|
|
284
318
|
|
|
285
|
-
|
|
319
|
+
###### Usage
|
|
286
320
|
|
|
287
|
-
|
|
288
|
-
|
|
321
|
+
```jsx
|
|
322
|
+
import { Profile } from "@bigbinary/neeto-team-members-frontend";
|
|
289
323
|
|
|
290
|
-
|
|
324
|
+
const [isOpen, setIsOpen] = Profile.usePaneState();
|
|
291
325
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
326
|
+
return (
|
|
327
|
+
<>
|
|
328
|
+
<button onClick={() => setIsOpen(true)}> Open profile pane</button>
|
|
329
|
+
<button onClick={() => setIsOpen(prevIsOpen => !prevIsOpen)}>
|
|
330
|
+
Toggle Profile pane
|
|
331
|
+
</button>
|
|
332
|
+
</>
|
|
333
|
+
);
|
|
334
|
+
```
|
|
301
335
|
|
|
302
336
|
## Instructions for Publishing
|
|
303
337
|
|
|
304
|
-
Consult the
|
|
338
|
+
Consult the
|
|
339
|
+
[building and releasing packages](https://neeto-engineering.neetokb.com/articles/building-and-releasing-packages)
|
|
340
|
+
guide for details on how to publish.
|
|
305
341
|
|
|
306
342
|
## Integrations
|
|
307
343
|
|
|
308
|
-
| Projects |
|
|
309
|
-
|
|
344
|
+
| Projects | TeamMembers | Roles | Permissions |
|
|
345
|
+
| -------------- | :----------------: | :----------------: | :----------------: |
|
|
310
346
|
| NeetoAuth | :white_check_mark: | :white_check_mark: | - |
|
|
311
347
|
| NeetoCal | :white_check_mark: | :white_check_mark: | - |
|
|
312
348
|
| NeetoChangelog | :white_check_mark: | :white_check_mark: | - |
|
package/dist/Groups.js
CHANGED
|
@@ -11,7 +11,7 @@ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
|
11
11
|
import { useQuery } from '@tanstack/react-query';
|
|
12
12
|
import { prop, pluck, mergeLeft, isEmpty } from 'ramda';
|
|
13
13
|
import axios from 'axios';
|
|
14
|
-
import { B as BASE_URL, Q as QUERY_KEYS, d as DEFAULT_PAGE_PROPERTIES } from './constants-
|
|
14
|
+
import { B as BASE_URL, Q as QUERY_KEYS, d as DEFAULT_PAGE_PROPERTIES } from './constants-CbaUJ-B2.js';
|
|
15
15
|
import Pane from '@bigbinary/neetoui/Pane';
|
|
16
16
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
17
17
|
import { captureAnalyticsEvent } from '@bigbinary/neeto-commons-frontend/utils';
|
|
@@ -37,7 +37,7 @@ import Tooltip from '@bigbinary/neetoui/Tooltip';
|
|
|
37
37
|
import { pluralizeLabelUsingTaxonomy } from './utils.js';
|
|
38
38
|
import '@bigbinary/neeto-commons-frontend/constants';
|
|
39
39
|
import './_commonjsHelpers-BFTU3MAI.js';
|
|
40
|
-
import './useTeamsApi-
|
|
40
|
+
import './useTeamsApi-DZBA2Gi6.js';
|
|
41
41
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
42
42
|
import 'qs';
|
|
43
43
|
import './queryClient-Dsu-gu4Y.js';
|
package/dist/ManageMember.js
CHANGED
|
@@ -15,17 +15,17 @@ import '@bigbinary/neetoui/formik/ActionBlock';
|
|
|
15
15
|
import '@bigbinary/neetoui/formik/Form';
|
|
16
16
|
import 'ramda';
|
|
17
17
|
import 'react-i18next';
|
|
18
|
-
import './index-
|
|
19
|
-
import './useTeamsApi-
|
|
20
|
-
export { M as default } from './index-
|
|
21
|
-
import './RolesRadioGroup-
|
|
18
|
+
import './index-_hZkDXWE.js';
|
|
19
|
+
import './useTeamsApi-DZBA2Gi6.js';
|
|
20
|
+
export { M as default } from './index-CMDSDN1S.js';
|
|
21
|
+
import './RolesRadioGroup-vzpUv8Ji.js';
|
|
22
22
|
import 'react/jsx-runtime';
|
|
23
23
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
24
24
|
import '@tanstack/react-query';
|
|
25
25
|
import '@bigbinary/neeto-cist';
|
|
26
26
|
import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
27
27
|
import 'axios';
|
|
28
|
-
import './constants-
|
|
28
|
+
import './constants-CbaUJ-B2.js';
|
|
29
29
|
import 'i18next';
|
|
30
30
|
import '@bigbinary/neeto-commons-frontend/constants';
|
|
31
31
|
import '@babel/runtime/helpers/toConsumableArray';
|
package/dist/MembersInvite.js
CHANGED
|
@@ -14,7 +14,7 @@ import { Trans, useTranslation } from 'react-i18next';
|
|
|
14
14
|
import { useParams } from 'react-router-dom';
|
|
15
15
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
16
16
|
import axios from 'axios';
|
|
17
|
-
import { B as BASE_URL, Q as QUERY_KEYS } from './constants-
|
|
17
|
+
import { B as BASE_URL, Q as QUERY_KEYS } from './constants-CbaUJ-B2.js';
|
|
18
18
|
import { t } from 'i18next';
|
|
19
19
|
import { SINGULAR } from '@bigbinary/neeto-commons-frontend/constants';
|
|
20
20
|
import * as yup from 'yup';
|
package/dist/Profile.js
CHANGED
|
@@ -23,7 +23,7 @@ import Select from '@bigbinary/neetoui/formik/Select';
|
|
|
23
23
|
import Form from '@bigbinary/neetoui/formik/Form';
|
|
24
24
|
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
25
25
|
import { isNotNil, isNil, is, trim } from 'ramda';
|
|
26
|
-
import { B as BASE_URL, Q as QUERY_KEYS, T as TIME_FORMAT_OPTIONS, D as DATE_FORMAT_OPTIONS } from './constants-
|
|
26
|
+
import { B as BASE_URL, Q as QUERY_KEYS, T as TIME_FORMAT_OPTIONS, D as DATE_FORMAT_OPTIONS } from './constants-CbaUJ-B2.js';
|
|
27
27
|
import { useQuery } from '@tanstack/react-query';
|
|
28
28
|
import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
29
29
|
import axios from 'axios';
|
package/dist/Roles.js
CHANGED
|
@@ -12,8 +12,8 @@ import { w as withReactQuery } from './withReactQuery-CHybbL5V.js';
|
|
|
12
12
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
13
13
|
import { useQuery } from '@tanstack/react-query';
|
|
14
14
|
import axios from 'axios';
|
|
15
|
-
import { B as BASE_URL, Q as QUERY_KEYS, A as ADMIN_ROLES } from './constants-
|
|
16
|
-
import { b as useCreateRole, c as useUpdateRole, S as ScrollToErrorField, d as useDestroyRole, u as useFetchRoles, e as useBulkUpdateRoles } from './index-
|
|
15
|
+
import { B as BASE_URL, Q as QUERY_KEYS, A as ADMIN_ROLES } from './constants-CbaUJ-B2.js';
|
|
16
|
+
import { b as useCreateRole, c as useUpdateRole, S as ScrollToErrorField, d as useDestroyRole, u as useFetchRoles, e as useBulkUpdateRoles } from './index-_hZkDXWE.js';
|
|
17
17
|
import { n } from './inject-css-DmrvuTKK.js';
|
|
18
18
|
import NeetoHeader from '@bigbinary/neeto-molecules/Header';
|
|
19
19
|
import Button from '@bigbinary/neetoui/Button';
|
|
@@ -16,7 +16,7 @@ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
|
16
16
|
var i18next = require('i18next');
|
|
17
17
|
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
18
18
|
var yup = require('yup');
|
|
19
|
-
var constants$1 = require('./constants-
|
|
19
|
+
var constants$1 = require('./constants-V4yaxd59.js');
|
|
20
20
|
var Pane = require('@bigbinary/neetoui/Pane');
|
|
21
21
|
var Modal = require('@bigbinary/neetoui/Modal');
|
|
22
22
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -344,4 +344,4 @@ exports.getSingleInvitationTranslationProps = getSingleInvitationTranslationProp
|
|
|
344
344
|
exports.remainingExpiryDays = remainingExpiryDays;
|
|
345
345
|
exports.renderInitialValues = renderInitialValues;
|
|
346
346
|
exports.renderPayload = renderPayload;
|
|
347
|
-
//# sourceMappingURL=RolesRadioGroup-
|
|
347
|
+
//# sourceMappingURL=RolesRadioGroup-BD1_SfUu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesRadioGroup-D_c864VH.js","sources":["../app/javascript/src/components/TeamMembers/ManageMember/Page/index.jsx","../app/javascript/src/components/TeamMembers/ManageMember/constants.js","../app/javascript/src/components/TeamMembers/ManageMember/utils.jsx","../app/javascript/src/components/TeamMembers/ManageMember/RolesRadioGroup.jsx"],"sourcesContent":["const PageWrapper = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nconst Page = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nPage.Header = PageWrapper;\nPage.Body = PageWrapper;\nPage.Footer = PageWrapper;\n\nexport default Page;\n","import { t } from \"i18next\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Pane, Modal } from \"neetoui\";\nimport * as yup from \"yup\";\n\nimport Page from \"./Page\";\n\nexport const NAME_INPUT_VALIDATION_SCHEMA = {\n firstName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n lastName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n};\n\nexport const ROLES_RADIO_GROUP_VALIDATION_SCHEMA = {\n role: yup.string().required(t(\"neetoTeamMembers.validations.roleRequired\")),\n};\n\nexport const APP_ROLES_SCHEMA = {\n appsRoles: yup.array().of(\n yup.object().shape({\n appName: yup.string(),\n isEnabled: yup.boolean(),\n role: yup\n .string()\n .required(t(\"neetoTeamMembers.validations.roleRequired\")),\n })\n ),\n};\n\nexport const FILTER_INVALID_EMAILS = {\n label: t(\"neetoTeamMembers.validations.filterInvalidEmails\"),\n};\n\nexport const COUNTER_PROPS = {\n label: t(\"neetoTeamMembers.common.email\", PLURAL),\n startsFrom: 4,\n};\n\nexport const DEFAULT_COMPONENT_CONFIG = {\n type: \"pane\",\n isOpen: false,\n className: \"\",\n headerProps: {},\n bodyProps: {},\n footerProps: {},\n};\n\nexport const MEMBERS_FORM_COMPONENT_MAPPER = {\n pane: Pane,\n modal: Modal,\n page: Page,\n};\n\nexport const FORM_PAGES = {\n MAIN: \"main\",\n APP_LIST: \"appList\",\n CONFIRMATION: \"confirmation\",\n INVITE_LINK: \"inviteLink\",\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const NEETO_AUTH_MANAGE_PRODUCT_URL = `${globalProps.organization?.authAppUrl}/admin/admin-panel/general/products`;\n","import { t } from \"i18next\";\nimport { notEquals, _findBy, toLabelAndValue } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\nimport {\n equals,\n includes,\n isNil,\n isNotNil,\n keys,\n move,\n pick,\n pluck,\n prop,\n} from \"ramda\";\nimport { Trans } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { ADMIN_ROLES, ADMIN_ROLE_NAME } from \"common/constants\";\n\nimport {\n NAME_INPUT_VALIDATION_SCHEMA,\n ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n APP_ROLES_SCHEMA,\n} from \"./constants\";\n\nconst getProductName = activeAppRoles =>\n activeAppRoles?.[0]?.appName\n ? t(\"neetoTeamMembers.labels.neeto_\", {\n product: activeAppRoles[0].appName,\n })\n : globalProps.appName;\n\nconst getActiveRole = (activeAppRoles, role) =>\n activeAppRoles?.[0]?.activeRole || role;\n\nconst getDefaultRole = (roles, currentAppRole, appName) => {\n if (appName === globalProps.appName?.substring(5)) {\n return currentAppRole;\n }\n\n const condition = isAdminRole(currentAppRole);\n\n const role = _findBy({ name: condition }, roles);\n\n return role ? role.name : roles[0].name;\n};\n\nconst generateAppsRolesInitialValue = (globalRoles, currentAppRole) => {\n if (!globalRoles) return [];\n\n const appNames = Object.keys(globalRoles);\n const currentApp = globalProps.appName?.substring(5);\n const currentAppNameIndex = appNames.indexOf(currentApp);\n const appNamesSorted = move(currentAppNameIndex, 0, appNames);\n\n return appNamesSorted.map(appName => ({\n appName,\n activeRole: getDefaultRole(globalRoles[appName], currentAppRole, appName),\n isEnabled: true,\n isPrimary: currentApp === appName,\n }));\n};\n\nexport const isAdminRole = role =>\n includes(role, ADMIN_ROLES)\n ? equals(ADMIN_ROLE_NAME)\n : notEquals(ADMIN_ROLE_NAME);\n\nexport const renderInitialValues = ({\n additionalFieldsInitialValues = {},\n globalRoles,\n roles,\n selectedMember,\n}) => {\n if (isNotNil(selectedMember)) {\n const keysToPick = [\n \"firstName\",\n \"lastName\",\n \"role\",\n ...keys(additionalFieldsInitialValues),\n ];\n\n return {\n ...additionalFieldsInitialValues,\n ...pick(keysToPick, selectedMember),\n emails: [{ ...toLabelAndValue(selectedMember.email), valid: true }],\n };\n }\n\n return {\n firstName: \"\",\n lastName: \"\",\n emails: [],\n role: roles[1]?.name ?? \"\",\n appRoles: generateAppsRolesInitialValue(globalRoles, roles[1]?.name),\n ...additionalFieldsInitialValues,\n };\n};\n\nexport const renderPayload = (\n { appRoles, emails, firstName, lastName, role, ...otherValues },\n selectedMember = null\n) =>\n selectedMember\n ? {\n active: true,\n firstName: firstName.trim(),\n lastName: lastName.trim(),\n organizationRole: role,\n email: emails[0].value,\n ...otherValues,\n }\n : {\n user: {\n emails: pluck(\"value\", emails),\n organizationRole: role,\n appRoles,\n ...otherValues,\n },\n };\n\nexport const getSingleInvitationTranslationProps = ({\n activeAppRoles,\n role,\n selectedEmail,\n}) => ({\n count: selectedEmail.length,\n emails: selectedEmail,\n product: getProductName(activeAppRoles),\n role: getActiveRole(activeAppRoles, role),\n});\n\nexport const buildValidationSchema = ({\n selectedMember,\n memberLimit,\n activeUsersCount,\n}) =>\n yup.object().shape({\n ...NAME_INPUT_VALIDATION_SCHEMA,\n ...ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n ...APP_ROLES_SCHEMA,\n emails: yup\n .array()\n .min(1, t(\"neetoTeamMembers.validations.minOneEmail\"))\n .test(\n \"are-all-emails-valid\",\n ({ value }) =>\n t(\"neetoTeamMembers.validations.validEmail\", { count: value.length }),\n emails => emails.every(prop(\"valid\"))\n )\n .test(\n \"is-emails-length-within-available-members-capacity\",\n <Trans\n i18nKey=\"neetoTeamMembers.validations.memberLimitExceeded\"\n values={{ limit: memberLimit }}\n components={{\n emailTo: <Button href=\"mailto:support@neeto.com\" style=\"link\" />,\n }}\n />,\n emails =>\n isNotNil(selectedMember) ||\n isNil(memberLimit) ||\n emails.length <= memberLimit - activeUsersCount\n )\n .nullable(),\n });\n\nexport const getInviteURL = inviteToken =>\n `${window.location.origin}/invite-link/${inviteToken}`;\n\nexport const remainingExpiryDays = expiryDate => {\n const today = dayjs().startOf(\"day\");\n const expiry = dayjs(expiryDate).startOf(\"day\");\n\n return expiry.diff(today, \"day\");\n};\n\nexport const neetoAuthManageProductUrl = `${globalProps.organization?.authAppUrl}/settings/general/products`;\n","import { useFormikContext } from \"formik\";\nimport { _findBy, slugify } from \"neetocist\";\nimport { SINGULAR, PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Button, Label } from \"neetoui\";\nimport { Radio } from \"neetoui/formik\";\nimport { identical } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/roles-radio-group.css\";\n\nimport { isAdminRole } from \"./utils\";\n\nconst RolesRadioGroup = ({\n config,\n globalRoles,\n isEdit,\n role = \"\",\n roles = [],\n}) => {\n const { t } = useTranslation();\n\n const { values, setFieldValue } = useFormikContext();\n\n const setDefaultSelection = currentRole => {\n const condition = isAdminRole(currentRole);\n values.appRoles?.forEach(({ appName, activeRole }, index) => {\n if (appName === globalProps.appName?.substring(5)) {\n setFieldValue(`appRoles[${index}].activeRole`, currentRole);\n\n return;\n }\n\n if (condition(activeRole)) return;\n const matchingRole = _findBy({ name: condition }, globalRoles[appName]);\n if (matchingRole) {\n setFieldValue(`appRoles[${index}].activeRole`, matchingRole.name);\n }\n });\n };\n\n return (\n <Radio\n stacked\n className=\"ntm-members-radio-group grow-0\"\n data-cy=\"ntm-manage-member-roles-group\"\n labelProps={{ className: \"neeto-ui-radio__label w-full\" }}\n name=\"role\"\n label={\n <span className=\"flex w-full items-center justify-between\">\n <Label required> {t(\"neetoTeamMembers.common.role\", SINGULAR)}</Label>\n <Button\n label={t(\"neetoTeamMembers.labels.manageRole\", PLURAL)}\n style=\"link\"\n to={config.pathToRolesPage}\n />\n </span>\n }\n onChange={({ target: { value } }) => {\n setFieldValue(\"role\", value);\n !isEdit && setDefaultSelection(value);\n }}\n >\n {roles.map(({ id, name }) => (\n <label\n className=\"ntm-members-form-radio-item__wrapper\"\n htmlFor={slugify(name)}\n key={id}\n >\n <Radio.Item\n className=\"ntm-members-form-radio-item__label\"\n data-cy=\"ntm-manage-member-roles-button\"\n defaultChecked={identical(name, role)}\n id={slugify(name)}\n label={name}\n name=\"role\"\n value={name}\n />\n </label>\n ))}\n </Radio>\n );\n};\n\nexport default RolesRadioGroup;\n"],"names":["PageWrapper","_ref","className","children","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","Page","_ref2","_excluded2","Header","Body","Footer","NAME_INPUT_VALIDATION_SCHEMA","firstName","yup","string","trim","t","strict","lastName","ROLES_RADIO_GROUP_VALIDATION_SCHEMA","role","required","APP_ROLES_SCHEMA","appsRoles","array","of","object","shape","appName","isEnabled","FILTER_INVALID_EMAILS","label","COUNTER_PROPS","PLURAL","startsFrom","DEFAULT_COMPONENT_CONFIG","type","isOpen","headerProps","bodyProps","footerProps","MEMBERS_FORM_COMPONENT_MAPPER","pane","Pane","modal","Modal","page","FORM_PAGES","MAIN","APP_LIST","CONFIRMATION","INVITE_LINK","EMAIL_REGEX","RegExp","NEETO_AUTH_MANAGE_PRODUCT_URL","concat","_globalProps$organiza","globalProps","organization","authAppUrl","getProductName","activeAppRoles","_activeAppRoles$","product","getActiveRole","_activeAppRoles$2","activeRole","getDefaultRole","roles","currentAppRole","_globalProps$appName","substring","condition","isAdminRole","_findBy","name","generateAppsRolesInitialValue","globalRoles","_globalProps$appName2","appNames","Object","keys","currentApp","currentAppNameIndex","indexOf","appNamesSorted","move","map","isPrimary","includes","ADMIN_ROLES","equals","ADMIN_ROLE_NAME","notEquals","renderInitialValues","_roles$1$name","_roles$","_roles$2","_ref$additionalFields","additionalFieldsInitialValues","selectedMember","isNotNil","keysToPick","_toConsumableArray","pick","emails","toLabelAndValue","email","valid","appRoles","renderPayload","otherValues","arguments","length","undefined","active","organizationRole","value","user","pluck","getSingleInvitationTranslationProps","_ref3","selectedEmail","count","buildValidationSchema","_ref4","memberLimit","activeUsersCount","min","test","_ref5","every","prop","Trans","i18nKey","values","limit","components","emailTo","Button","href","style","isNil","nullable","getInviteURL","inviteToken","window","location","origin","remainingExpiryDays","expiryDate","today","dayjs","startOf","expiry","diff","RolesRadioGroup","config","isEdit","_ref$role","_ref$roles","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","setDefaultSelection","currentRole","_values$appRoles","forEach","index","matchingRole","Radio","stacked","labelProps","_jsxs","Label","SINGULAR","to","pathToRolesPage","onChange","target","id","htmlFor","slugify","Item","defaultChecked","identical"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RolesRadioGroup-BD1_SfUu.js","sources":["../app/javascript/src/components/TeamMembers/ManageMember/Page/index.jsx","../app/javascript/src/components/TeamMembers/ManageMember/constants.js","../app/javascript/src/components/TeamMembers/ManageMember/utils.jsx","../app/javascript/src/components/TeamMembers/ManageMember/RolesRadioGroup.jsx"],"sourcesContent":["const PageWrapper = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nconst Page = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nPage.Header = PageWrapper;\nPage.Body = PageWrapper;\nPage.Footer = PageWrapper;\n\nexport default Page;\n","import { t } from \"i18next\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Pane, Modal } from \"neetoui\";\nimport * as yup from \"yup\";\n\nimport Page from \"./Page\";\n\nexport const NAME_INPUT_VALIDATION_SCHEMA = {\n firstName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n lastName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n};\n\nexport const ROLES_RADIO_GROUP_VALIDATION_SCHEMA = {\n role: yup.string().required(t(\"neetoTeamMembers.validations.roleRequired\")),\n};\n\nexport const APP_ROLES_SCHEMA = {\n appsRoles: yup.array().of(\n yup.object().shape({\n appName: yup.string(),\n isEnabled: yup.boolean(),\n role: yup\n .string()\n .required(t(\"neetoTeamMembers.validations.roleRequired\")),\n })\n ),\n};\n\nexport const FILTER_INVALID_EMAILS = {\n label: t(\"neetoTeamMembers.validations.filterInvalidEmails\"),\n};\n\nexport const COUNTER_PROPS = {\n label: t(\"neetoTeamMembers.common.email\", PLURAL),\n startsFrom: 4,\n};\n\nexport const DEFAULT_COMPONENT_CONFIG = {\n type: \"pane\",\n isOpen: false,\n className: \"\",\n headerProps: {},\n bodyProps: {},\n footerProps: {},\n};\n\nexport const MEMBERS_FORM_COMPONENT_MAPPER = {\n pane: Pane,\n modal: Modal,\n page: Page,\n};\n\nexport const FORM_PAGES = {\n MAIN: \"main\",\n APP_LIST: \"appList\",\n CONFIRMATION: \"confirmation\",\n INVITE_LINK: \"inviteLink\",\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const NEETO_AUTH_MANAGE_PRODUCT_URL = `${globalProps.organization?.authAppUrl}/admin/admin-panel/general/products`;\n","import { t } from \"i18next\";\nimport { notEquals, _findBy, toLabelAndValue } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\nimport {\n equals,\n includes,\n isNil,\n isNotNil,\n keys,\n move,\n pick,\n pluck,\n prop,\n} from \"ramda\";\nimport { Trans } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { ADMIN_ROLES, ADMIN_ROLE_NAME } from \"common/constants\";\n\nimport {\n NAME_INPUT_VALIDATION_SCHEMA,\n ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n APP_ROLES_SCHEMA,\n} from \"./constants\";\n\nconst getProductName = activeAppRoles =>\n activeAppRoles?.[0]?.appName\n ? t(\"neetoTeamMembers.labels.neeto_\", {\n product: activeAppRoles[0].appName,\n })\n : globalProps.appName;\n\nconst getActiveRole = (activeAppRoles, role) =>\n activeAppRoles?.[0]?.activeRole || role;\n\nconst getDefaultRole = (roles, currentAppRole, appName) => {\n if (appName === globalProps.appName?.substring(5)) {\n return currentAppRole;\n }\n\n const condition = isAdminRole(currentAppRole);\n\n const role = _findBy({ name: condition }, roles);\n\n return role ? role.name : roles[0].name;\n};\n\nconst generateAppsRolesInitialValue = (globalRoles, currentAppRole) => {\n if (!globalRoles) return [];\n\n const appNames = Object.keys(globalRoles);\n const currentApp = globalProps.appName?.substring(5);\n const currentAppNameIndex = appNames.indexOf(currentApp);\n const appNamesSorted = move(currentAppNameIndex, 0, appNames);\n\n return appNamesSorted.map(appName => ({\n appName,\n activeRole: getDefaultRole(globalRoles[appName], currentAppRole, appName),\n isEnabled: true,\n isPrimary: currentApp === appName,\n }));\n};\n\nexport const isAdminRole = role =>\n includes(role, ADMIN_ROLES)\n ? equals(ADMIN_ROLE_NAME)\n : notEquals(ADMIN_ROLE_NAME);\n\nexport const renderInitialValues = ({\n additionalFieldsInitialValues = {},\n globalRoles,\n roles,\n selectedMember,\n}) => {\n if (isNotNil(selectedMember)) {\n const keysToPick = [\n \"firstName\",\n \"lastName\",\n \"role\",\n ...keys(additionalFieldsInitialValues),\n ];\n\n return {\n ...additionalFieldsInitialValues,\n ...pick(keysToPick, selectedMember),\n emails: [{ ...toLabelAndValue(selectedMember.email), valid: true }],\n };\n }\n\n return {\n firstName: \"\",\n lastName: \"\",\n emails: [],\n role: roles[1]?.name ?? \"\",\n appRoles: generateAppsRolesInitialValue(globalRoles, roles[1]?.name),\n ...additionalFieldsInitialValues,\n };\n};\n\nexport const renderPayload = (\n { appRoles, emails, firstName, lastName, role, ...otherValues },\n selectedMember = null\n) =>\n selectedMember\n ? {\n active: true,\n firstName: firstName.trim(),\n lastName: lastName.trim(),\n organizationRole: role,\n email: emails[0].value,\n ...otherValues,\n }\n : {\n user: {\n emails: pluck(\"value\", emails),\n organizationRole: role,\n appRoles,\n ...otherValues,\n },\n };\n\nexport const getSingleInvitationTranslationProps = ({\n activeAppRoles,\n role,\n selectedEmail,\n}) => ({\n count: selectedEmail.length,\n emails: selectedEmail,\n product: getProductName(activeAppRoles),\n role: getActiveRole(activeAppRoles, role),\n});\n\nexport const buildValidationSchema = ({\n selectedMember,\n memberLimit,\n activeUsersCount,\n}) =>\n yup.object().shape({\n ...NAME_INPUT_VALIDATION_SCHEMA,\n ...ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n ...APP_ROLES_SCHEMA,\n emails: yup\n .array()\n .min(1, t(\"neetoTeamMembers.validations.minOneEmail\"))\n .test(\n \"are-all-emails-valid\",\n ({ value }) =>\n t(\"neetoTeamMembers.validations.validEmail\", { count: value.length }),\n emails => emails.every(prop(\"valid\"))\n )\n .test(\n \"is-emails-length-within-available-members-capacity\",\n <Trans\n i18nKey=\"neetoTeamMembers.validations.memberLimitExceeded\"\n values={{ limit: memberLimit }}\n components={{\n emailTo: <Button href=\"mailto:support@neeto.com\" style=\"link\" />,\n }}\n />,\n emails =>\n isNotNil(selectedMember) ||\n isNil(memberLimit) ||\n emails.length <= memberLimit - activeUsersCount\n )\n .nullable(),\n });\n\nexport const getInviteURL = inviteToken =>\n `${window.location.origin}/invite-link/${inviteToken}`;\n\nexport const remainingExpiryDays = expiryDate => {\n const today = dayjs().startOf(\"day\");\n const expiry = dayjs(expiryDate).startOf(\"day\");\n\n return expiry.diff(today, \"day\");\n};\n\nexport const neetoAuthManageProductUrl = `${globalProps.organization?.authAppUrl}/settings/general/products`;\n","import { useFormikContext } from \"formik\";\nimport { _findBy, slugify } from \"neetocist\";\nimport { SINGULAR, PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Button, Label } from \"neetoui\";\nimport { Radio } from \"neetoui/formik\";\nimport { identical } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/roles-radio-group.css\";\n\nimport { isAdminRole } from \"./utils\";\n\nconst RolesRadioGroup = ({\n config,\n globalRoles,\n isEdit,\n role = \"\",\n roles = [],\n}) => {\n const { t } = useTranslation();\n\n const { values, setFieldValue } = useFormikContext();\n\n const setDefaultSelection = currentRole => {\n const condition = isAdminRole(currentRole);\n values.appRoles?.forEach(({ appName, activeRole }, index) => {\n if (appName === globalProps.appName?.substring(5)) {\n setFieldValue(`appRoles[${index}].activeRole`, currentRole);\n\n return;\n }\n\n if (condition(activeRole)) return;\n const matchingRole = _findBy({ name: condition }, globalRoles[appName]);\n if (matchingRole) {\n setFieldValue(`appRoles[${index}].activeRole`, matchingRole.name);\n }\n });\n };\n\n return (\n <Radio\n stacked\n className=\"ntm-members-radio-group grow-0\"\n data-cy=\"ntm-manage-member-roles-group\"\n labelProps={{ className: \"neeto-ui-radio__label w-full\" }}\n name=\"role\"\n label={\n <span className=\"flex w-full items-center justify-between\">\n <Label required> {t(\"neetoTeamMembers.common.role\", SINGULAR)}</Label>\n <Button\n label={t(\"neetoTeamMembers.labels.manageRole\", PLURAL)}\n style=\"link\"\n to={config.pathToRolesPage}\n />\n </span>\n }\n onChange={({ target: { value } }) => {\n setFieldValue(\"role\", value);\n !isEdit && setDefaultSelection(value);\n }}\n >\n {roles.map(({ id, name }) => (\n <label\n className=\"ntm-members-form-radio-item__wrapper\"\n htmlFor={slugify(name)}\n key={id}\n >\n <Radio.Item\n className=\"ntm-members-form-radio-item__label\"\n data-cy=\"ntm-manage-member-roles-button\"\n defaultChecked={identical(name, role)}\n id={slugify(name)}\n label={name}\n name=\"role\"\n value={name}\n />\n </label>\n ))}\n </Radio>\n );\n};\n\nexport default RolesRadioGroup;\n"],"names":["PageWrapper","_ref","className","children","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","Page","_ref2","_excluded2","Header","Body","Footer","NAME_INPUT_VALIDATION_SCHEMA","firstName","yup","string","trim","t","strict","lastName","ROLES_RADIO_GROUP_VALIDATION_SCHEMA","role","required","APP_ROLES_SCHEMA","appsRoles","array","of","object","shape","appName","isEnabled","FILTER_INVALID_EMAILS","label","COUNTER_PROPS","PLURAL","startsFrom","DEFAULT_COMPONENT_CONFIG","type","isOpen","headerProps","bodyProps","footerProps","MEMBERS_FORM_COMPONENT_MAPPER","pane","Pane","modal","Modal","page","FORM_PAGES","MAIN","APP_LIST","CONFIRMATION","INVITE_LINK","EMAIL_REGEX","RegExp","NEETO_AUTH_MANAGE_PRODUCT_URL","concat","_globalProps$organiza","globalProps","organization","authAppUrl","getProductName","activeAppRoles","_activeAppRoles$","product","getActiveRole","_activeAppRoles$2","activeRole","getDefaultRole","roles","currentAppRole","_globalProps$appName","substring","condition","isAdminRole","_findBy","name","generateAppsRolesInitialValue","globalRoles","_globalProps$appName2","appNames","Object","keys","currentApp","currentAppNameIndex","indexOf","appNamesSorted","move","map","isPrimary","includes","ADMIN_ROLES","equals","ADMIN_ROLE_NAME","notEquals","renderInitialValues","_roles$1$name","_roles$","_roles$2","_ref$additionalFields","additionalFieldsInitialValues","selectedMember","isNotNil","keysToPick","_toConsumableArray","pick","emails","toLabelAndValue","email","valid","appRoles","renderPayload","otherValues","arguments","length","undefined","active","organizationRole","value","user","pluck","getSingleInvitationTranslationProps","_ref3","selectedEmail","count","buildValidationSchema","_ref4","memberLimit","activeUsersCount","min","test","_ref5","every","prop","Trans","i18nKey","values","limit","components","emailTo","Button","href","style","isNil","nullable","getInviteURL","inviteToken","window","location","origin","remainingExpiryDays","expiryDate","today","dayjs","startOf","expiry","diff","RolesRadioGroup","config","isEdit","_ref$role","_ref$roles","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","setDefaultSelection","currentRole","_values$appRoles","forEach","index","matchingRole","Radio","stacked","labelProps","_jsxs","Label","SINGULAR","to","pathToRolesPage","onChange","target","id","htmlFor","slugify","Item","defaultChecked","identical"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
|
14
14
|
import { t } from 'i18next';
|
|
15
15
|
import { dayjs } from '@bigbinary/neeto-commons-frontend/utils';
|
|
16
16
|
import * as yup from 'yup';
|
|
17
|
-
import { A as ADMIN_ROLES, c as ADMIN_ROLE_NAME } from './constants-
|
|
17
|
+
import { A as ADMIN_ROLES, c as ADMIN_ROLE_NAME } from './constants-CbaUJ-B2.js';
|
|
18
18
|
import Pane from '@bigbinary/neetoui/Pane';
|
|
19
19
|
import Modal from '@bigbinary/neetoui/Modal';
|
|
20
20
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -310,4 +310,4 @@ var RolesRadioGroup = function RolesRadioGroup(_ref) {
|
|
|
310
310
|
};
|
|
311
311
|
|
|
312
312
|
export { COUNTER_PROPS as C, DEFAULT_COMPONENT_CONFIG as D, EMAIL_REGEX as E, FORM_PAGES as F, MEMBERS_FORM_COMPONENT_MAPPER as M, NEETO_AUTH_MANAGE_PRODUCT_URL as N, RolesRadioGroup as R, getInviteURL as a, FILTER_INVALID_EMAILS as b, renderInitialValues as c, buildValidationSchema as d, renderPayload as e, getSingleInvitationTranslationProps as g, remainingExpiryDays as r };
|
|
313
|
-
//# sourceMappingURL=RolesRadioGroup-
|
|
313
|
+
//# sourceMappingURL=RolesRadioGroup-vzpUv8Ji.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesRadioGroup-PfJ8yeOo.js","sources":["../app/javascript/src/components/TeamMembers/ManageMember/Page/index.jsx","../app/javascript/src/components/TeamMembers/ManageMember/constants.js","../app/javascript/src/components/TeamMembers/ManageMember/utils.jsx","../app/javascript/src/components/TeamMembers/ManageMember/RolesRadioGroup.jsx"],"sourcesContent":["const PageWrapper = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nconst Page = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nPage.Header = PageWrapper;\nPage.Body = PageWrapper;\nPage.Footer = PageWrapper;\n\nexport default Page;\n","import { t } from \"i18next\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Pane, Modal } from \"neetoui\";\nimport * as yup from \"yup\";\n\nimport Page from \"./Page\";\n\nexport const NAME_INPUT_VALIDATION_SCHEMA = {\n firstName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n lastName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n};\n\nexport const ROLES_RADIO_GROUP_VALIDATION_SCHEMA = {\n role: yup.string().required(t(\"neetoTeamMembers.validations.roleRequired\")),\n};\n\nexport const APP_ROLES_SCHEMA = {\n appsRoles: yup.array().of(\n yup.object().shape({\n appName: yup.string(),\n isEnabled: yup.boolean(),\n role: yup\n .string()\n .required(t(\"neetoTeamMembers.validations.roleRequired\")),\n })\n ),\n};\n\nexport const FILTER_INVALID_EMAILS = {\n label: t(\"neetoTeamMembers.validations.filterInvalidEmails\"),\n};\n\nexport const COUNTER_PROPS = {\n label: t(\"neetoTeamMembers.common.email\", PLURAL),\n startsFrom: 4,\n};\n\nexport const DEFAULT_COMPONENT_CONFIG = {\n type: \"pane\",\n isOpen: false,\n className: \"\",\n headerProps: {},\n bodyProps: {},\n footerProps: {},\n};\n\nexport const MEMBERS_FORM_COMPONENT_MAPPER = {\n pane: Pane,\n modal: Modal,\n page: Page,\n};\n\nexport const FORM_PAGES = {\n MAIN: \"main\",\n APP_LIST: \"appList\",\n CONFIRMATION: \"confirmation\",\n INVITE_LINK: \"inviteLink\",\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const NEETO_AUTH_MANAGE_PRODUCT_URL = `${globalProps.organization?.authAppUrl}/admin/admin-panel/general/products`;\n","import { t } from \"i18next\";\nimport { notEquals, _findBy, toLabelAndValue } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\nimport {\n equals,\n includes,\n isNil,\n isNotNil,\n keys,\n move,\n pick,\n pluck,\n prop,\n} from \"ramda\";\nimport { Trans } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { ADMIN_ROLES, ADMIN_ROLE_NAME } from \"common/constants\";\n\nimport {\n NAME_INPUT_VALIDATION_SCHEMA,\n ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n APP_ROLES_SCHEMA,\n} from \"./constants\";\n\nconst getProductName = activeAppRoles =>\n activeAppRoles?.[0]?.appName\n ? t(\"neetoTeamMembers.labels.neeto_\", {\n product: activeAppRoles[0].appName,\n })\n : globalProps.appName;\n\nconst getActiveRole = (activeAppRoles, role) =>\n activeAppRoles?.[0]?.activeRole || role;\n\nconst getDefaultRole = (roles, currentAppRole, appName) => {\n if (appName === globalProps.appName?.substring(5)) {\n return currentAppRole;\n }\n\n const condition = isAdminRole(currentAppRole);\n\n const role = _findBy({ name: condition }, roles);\n\n return role ? role.name : roles[0].name;\n};\n\nconst generateAppsRolesInitialValue = (globalRoles, currentAppRole) => {\n if (!globalRoles) return [];\n\n const appNames = Object.keys(globalRoles);\n const currentApp = globalProps.appName?.substring(5);\n const currentAppNameIndex = appNames.indexOf(currentApp);\n const appNamesSorted = move(currentAppNameIndex, 0, appNames);\n\n return appNamesSorted.map(appName => ({\n appName,\n activeRole: getDefaultRole(globalRoles[appName], currentAppRole, appName),\n isEnabled: true,\n isPrimary: currentApp === appName,\n }));\n};\n\nexport const isAdminRole = role =>\n includes(role, ADMIN_ROLES)\n ? equals(ADMIN_ROLE_NAME)\n : notEquals(ADMIN_ROLE_NAME);\n\nexport const renderInitialValues = ({\n additionalFieldsInitialValues = {},\n globalRoles,\n roles,\n selectedMember,\n}) => {\n if (isNotNil(selectedMember)) {\n const keysToPick = [\n \"firstName\",\n \"lastName\",\n \"role\",\n ...keys(additionalFieldsInitialValues),\n ];\n\n return {\n ...additionalFieldsInitialValues,\n ...pick(keysToPick, selectedMember),\n emails: [{ ...toLabelAndValue(selectedMember.email), valid: true }],\n };\n }\n\n return {\n firstName: \"\",\n lastName: \"\",\n emails: [],\n role: roles[1]?.name ?? \"\",\n appRoles: generateAppsRolesInitialValue(globalRoles, roles[1]?.name),\n ...additionalFieldsInitialValues,\n };\n};\n\nexport const renderPayload = (\n { appRoles, emails, firstName, lastName, role, ...otherValues },\n selectedMember = null\n) =>\n selectedMember\n ? {\n active: true,\n firstName: firstName.trim(),\n lastName: lastName.trim(),\n organizationRole: role,\n email: emails[0].value,\n ...otherValues,\n }\n : {\n user: {\n emails: pluck(\"value\", emails),\n organizationRole: role,\n appRoles,\n ...otherValues,\n },\n };\n\nexport const getSingleInvitationTranslationProps = ({\n activeAppRoles,\n role,\n selectedEmail,\n}) => ({\n count: selectedEmail.length,\n emails: selectedEmail,\n product: getProductName(activeAppRoles),\n role: getActiveRole(activeAppRoles, role),\n});\n\nexport const buildValidationSchema = ({\n selectedMember,\n memberLimit,\n activeUsersCount,\n}) =>\n yup.object().shape({\n ...NAME_INPUT_VALIDATION_SCHEMA,\n ...ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n ...APP_ROLES_SCHEMA,\n emails: yup\n .array()\n .min(1, t(\"neetoTeamMembers.validations.minOneEmail\"))\n .test(\n \"are-all-emails-valid\",\n ({ value }) =>\n t(\"neetoTeamMembers.validations.validEmail\", { count: value.length }),\n emails => emails.every(prop(\"valid\"))\n )\n .test(\n \"is-emails-length-within-available-members-capacity\",\n <Trans\n i18nKey=\"neetoTeamMembers.validations.memberLimitExceeded\"\n values={{ limit: memberLimit }}\n components={{\n emailTo: <Button href=\"mailto:support@neeto.com\" style=\"link\" />,\n }}\n />,\n emails =>\n isNotNil(selectedMember) ||\n isNil(memberLimit) ||\n emails.length <= memberLimit - activeUsersCount\n )\n .nullable(),\n });\n\nexport const getInviteURL = inviteToken =>\n `${window.location.origin}/invite-link/${inviteToken}`;\n\nexport const remainingExpiryDays = expiryDate => {\n const today = dayjs().startOf(\"day\");\n const expiry = dayjs(expiryDate).startOf(\"day\");\n\n return expiry.diff(today, \"day\");\n};\n\nexport const neetoAuthManageProductUrl = `${globalProps.organization?.authAppUrl}/settings/general/products`;\n","import { useFormikContext } from \"formik\";\nimport { _findBy, slugify } from \"neetocist\";\nimport { SINGULAR, PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Button, Label } from \"neetoui\";\nimport { Radio } from \"neetoui/formik\";\nimport { identical } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/roles-radio-group.css\";\n\nimport { isAdminRole } from \"./utils\";\n\nconst RolesRadioGroup = ({\n config,\n globalRoles,\n isEdit,\n role = \"\",\n roles = [],\n}) => {\n const { t } = useTranslation();\n\n const { values, setFieldValue } = useFormikContext();\n\n const setDefaultSelection = currentRole => {\n const condition = isAdminRole(currentRole);\n values.appRoles?.forEach(({ appName, activeRole }, index) => {\n if (appName === globalProps.appName?.substring(5)) {\n setFieldValue(`appRoles[${index}].activeRole`, currentRole);\n\n return;\n }\n\n if (condition(activeRole)) return;\n const matchingRole = _findBy({ name: condition }, globalRoles[appName]);\n if (matchingRole) {\n setFieldValue(`appRoles[${index}].activeRole`, matchingRole.name);\n }\n });\n };\n\n return (\n <Radio\n stacked\n className=\"ntm-members-radio-group grow-0\"\n data-cy=\"ntm-manage-member-roles-group\"\n labelProps={{ className: \"neeto-ui-radio__label w-full\" }}\n name=\"role\"\n label={\n <span className=\"flex w-full items-center justify-between\">\n <Label required> {t(\"neetoTeamMembers.common.role\", SINGULAR)}</Label>\n <Button\n label={t(\"neetoTeamMembers.labels.manageRole\", PLURAL)}\n style=\"link\"\n to={config.pathToRolesPage}\n />\n </span>\n }\n onChange={({ target: { value } }) => {\n setFieldValue(\"role\", value);\n !isEdit && setDefaultSelection(value);\n }}\n >\n {roles.map(({ id, name }) => (\n <label\n className=\"ntm-members-form-radio-item__wrapper\"\n htmlFor={slugify(name)}\n key={id}\n >\n <Radio.Item\n className=\"ntm-members-form-radio-item__label\"\n data-cy=\"ntm-manage-member-roles-button\"\n defaultChecked={identical(name, role)}\n id={slugify(name)}\n label={name}\n name=\"role\"\n value={name}\n />\n </label>\n ))}\n </Radio>\n );\n};\n\nexport default RolesRadioGroup;\n"],"names":["PageWrapper","_ref","className","children","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","Page","_ref2","_excluded2","Header","Body","Footer","NAME_INPUT_VALIDATION_SCHEMA","firstName","yup","string","trim","t","strict","lastName","ROLES_RADIO_GROUP_VALIDATION_SCHEMA","role","required","APP_ROLES_SCHEMA","appsRoles","array","of","object","shape","appName","isEnabled","FILTER_INVALID_EMAILS","label","COUNTER_PROPS","PLURAL","startsFrom","DEFAULT_COMPONENT_CONFIG","type","isOpen","headerProps","bodyProps","footerProps","MEMBERS_FORM_COMPONENT_MAPPER","pane","Pane","modal","Modal","page","FORM_PAGES","MAIN","APP_LIST","CONFIRMATION","INVITE_LINK","EMAIL_REGEX","RegExp","NEETO_AUTH_MANAGE_PRODUCT_URL","concat","_globalProps$organiza","globalProps","organization","authAppUrl","getProductName","activeAppRoles","_activeAppRoles$","product","getActiveRole","_activeAppRoles$2","activeRole","getDefaultRole","roles","currentAppRole","_globalProps$appName","substring","condition","isAdminRole","_findBy","name","generateAppsRolesInitialValue","globalRoles","_globalProps$appName2","appNames","Object","keys","currentApp","currentAppNameIndex","indexOf","appNamesSorted","move","map","isPrimary","includes","ADMIN_ROLES","equals","ADMIN_ROLE_NAME","notEquals","renderInitialValues","_roles$1$name","_roles$","_roles$2","_ref$additionalFields","additionalFieldsInitialValues","selectedMember","isNotNil","keysToPick","_toConsumableArray","pick","emails","toLabelAndValue","email","valid","appRoles","renderPayload","otherValues","arguments","length","undefined","active","organizationRole","value","user","pluck","getSingleInvitationTranslationProps","_ref3","selectedEmail","count","buildValidationSchema","_ref4","memberLimit","activeUsersCount","min","test","_ref5","every","prop","Trans","i18nKey","values","limit","components","emailTo","Button","href","style","isNil","nullable","getInviteURL","inviteToken","window","location","origin","remainingExpiryDays","expiryDate","today","dayjs","startOf","expiry","diff","RolesRadioGroup","config","isEdit","_ref$role","_ref$roles","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","setDefaultSelection","currentRole","_values$appRoles","forEach","index","matchingRole","Radio","stacked","labelProps","_jsxs","Label","SINGULAR","to","pathToRolesPage","onChange","target","id","htmlFor","slugify","Item","defaultChecked","identical"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RolesRadioGroup-vzpUv8Ji.js","sources":["../app/javascript/src/components/TeamMembers/ManageMember/Page/index.jsx","../app/javascript/src/components/TeamMembers/ManageMember/constants.js","../app/javascript/src/components/TeamMembers/ManageMember/utils.jsx","../app/javascript/src/components/TeamMembers/ManageMember/RolesRadioGroup.jsx"],"sourcesContent":["const PageWrapper = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nconst Page = ({ className, children, ...otherProps }) => (\n <div className={className} {...otherProps}>\n {children}\n </div>\n);\n\nPage.Header = PageWrapper;\nPage.Body = PageWrapper;\nPage.Footer = PageWrapper;\n\nexport default Page;\n","import { t } from \"i18next\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Pane, Modal } from \"neetoui\";\nimport * as yup from \"yup\";\n\nimport Page from \"./Page\";\n\nexport const NAME_INPUT_VALIDATION_SCHEMA = {\n firstName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n lastName: yup\n .string()\n .trim(t(\"neetoTeamMembers.validations.removeSpaces\"))\n .strict(true),\n};\n\nexport const ROLES_RADIO_GROUP_VALIDATION_SCHEMA = {\n role: yup.string().required(t(\"neetoTeamMembers.validations.roleRequired\")),\n};\n\nexport const APP_ROLES_SCHEMA = {\n appsRoles: yup.array().of(\n yup.object().shape({\n appName: yup.string(),\n isEnabled: yup.boolean(),\n role: yup\n .string()\n .required(t(\"neetoTeamMembers.validations.roleRequired\")),\n })\n ),\n};\n\nexport const FILTER_INVALID_EMAILS = {\n label: t(\"neetoTeamMembers.validations.filterInvalidEmails\"),\n};\n\nexport const COUNTER_PROPS = {\n label: t(\"neetoTeamMembers.common.email\", PLURAL),\n startsFrom: 4,\n};\n\nexport const DEFAULT_COMPONENT_CONFIG = {\n type: \"pane\",\n isOpen: false,\n className: \"\",\n headerProps: {},\n bodyProps: {},\n footerProps: {},\n};\n\nexport const MEMBERS_FORM_COMPONENT_MAPPER = {\n pane: Pane,\n modal: Modal,\n page: Page,\n};\n\nexport const FORM_PAGES = {\n MAIN: \"main\",\n APP_LIST: \"appList\",\n CONFIRMATION: \"confirmation\",\n INVITE_LINK: \"inviteLink\",\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const NEETO_AUTH_MANAGE_PRODUCT_URL = `${globalProps.organization?.authAppUrl}/admin/admin-panel/general/products`;\n","import { t } from \"i18next\";\nimport { notEquals, _findBy, toLabelAndValue } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\nimport {\n equals,\n includes,\n isNil,\n isNotNil,\n keys,\n move,\n pick,\n pluck,\n prop,\n} from \"ramda\";\nimport { Trans } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { ADMIN_ROLES, ADMIN_ROLE_NAME } from \"common/constants\";\n\nimport {\n NAME_INPUT_VALIDATION_SCHEMA,\n ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n APP_ROLES_SCHEMA,\n} from \"./constants\";\n\nconst getProductName = activeAppRoles =>\n activeAppRoles?.[0]?.appName\n ? t(\"neetoTeamMembers.labels.neeto_\", {\n product: activeAppRoles[0].appName,\n })\n : globalProps.appName;\n\nconst getActiveRole = (activeAppRoles, role) =>\n activeAppRoles?.[0]?.activeRole || role;\n\nconst getDefaultRole = (roles, currentAppRole, appName) => {\n if (appName === globalProps.appName?.substring(5)) {\n return currentAppRole;\n }\n\n const condition = isAdminRole(currentAppRole);\n\n const role = _findBy({ name: condition }, roles);\n\n return role ? role.name : roles[0].name;\n};\n\nconst generateAppsRolesInitialValue = (globalRoles, currentAppRole) => {\n if (!globalRoles) return [];\n\n const appNames = Object.keys(globalRoles);\n const currentApp = globalProps.appName?.substring(5);\n const currentAppNameIndex = appNames.indexOf(currentApp);\n const appNamesSorted = move(currentAppNameIndex, 0, appNames);\n\n return appNamesSorted.map(appName => ({\n appName,\n activeRole: getDefaultRole(globalRoles[appName], currentAppRole, appName),\n isEnabled: true,\n isPrimary: currentApp === appName,\n }));\n};\n\nexport const isAdminRole = role =>\n includes(role, ADMIN_ROLES)\n ? equals(ADMIN_ROLE_NAME)\n : notEquals(ADMIN_ROLE_NAME);\n\nexport const renderInitialValues = ({\n additionalFieldsInitialValues = {},\n globalRoles,\n roles,\n selectedMember,\n}) => {\n if (isNotNil(selectedMember)) {\n const keysToPick = [\n \"firstName\",\n \"lastName\",\n \"role\",\n ...keys(additionalFieldsInitialValues),\n ];\n\n return {\n ...additionalFieldsInitialValues,\n ...pick(keysToPick, selectedMember),\n emails: [{ ...toLabelAndValue(selectedMember.email), valid: true }],\n };\n }\n\n return {\n firstName: \"\",\n lastName: \"\",\n emails: [],\n role: roles[1]?.name ?? \"\",\n appRoles: generateAppsRolesInitialValue(globalRoles, roles[1]?.name),\n ...additionalFieldsInitialValues,\n };\n};\n\nexport const renderPayload = (\n { appRoles, emails, firstName, lastName, role, ...otherValues },\n selectedMember = null\n) =>\n selectedMember\n ? {\n active: true,\n firstName: firstName.trim(),\n lastName: lastName.trim(),\n organizationRole: role,\n email: emails[0].value,\n ...otherValues,\n }\n : {\n user: {\n emails: pluck(\"value\", emails),\n organizationRole: role,\n appRoles,\n ...otherValues,\n },\n };\n\nexport const getSingleInvitationTranslationProps = ({\n activeAppRoles,\n role,\n selectedEmail,\n}) => ({\n count: selectedEmail.length,\n emails: selectedEmail,\n product: getProductName(activeAppRoles),\n role: getActiveRole(activeAppRoles, role),\n});\n\nexport const buildValidationSchema = ({\n selectedMember,\n memberLimit,\n activeUsersCount,\n}) =>\n yup.object().shape({\n ...NAME_INPUT_VALIDATION_SCHEMA,\n ...ROLES_RADIO_GROUP_VALIDATION_SCHEMA,\n ...APP_ROLES_SCHEMA,\n emails: yup\n .array()\n .min(1, t(\"neetoTeamMembers.validations.minOneEmail\"))\n .test(\n \"are-all-emails-valid\",\n ({ value }) =>\n t(\"neetoTeamMembers.validations.validEmail\", { count: value.length }),\n emails => emails.every(prop(\"valid\"))\n )\n .test(\n \"is-emails-length-within-available-members-capacity\",\n <Trans\n i18nKey=\"neetoTeamMembers.validations.memberLimitExceeded\"\n values={{ limit: memberLimit }}\n components={{\n emailTo: <Button href=\"mailto:support@neeto.com\" style=\"link\" />,\n }}\n />,\n emails =>\n isNotNil(selectedMember) ||\n isNil(memberLimit) ||\n emails.length <= memberLimit - activeUsersCount\n )\n .nullable(),\n });\n\nexport const getInviteURL = inviteToken =>\n `${window.location.origin}/invite-link/${inviteToken}`;\n\nexport const remainingExpiryDays = expiryDate => {\n const today = dayjs().startOf(\"day\");\n const expiry = dayjs(expiryDate).startOf(\"day\");\n\n return expiry.diff(today, \"day\");\n};\n\nexport const neetoAuthManageProductUrl = `${globalProps.organization?.authAppUrl}/settings/general/products`;\n","import { useFormikContext } from \"formik\";\nimport { _findBy, slugify } from \"neetocist\";\nimport { SINGULAR, PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Button, Label } from \"neetoui\";\nimport { Radio } from \"neetoui/formik\";\nimport { identical } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/roles-radio-group.css\";\n\nimport { isAdminRole } from \"./utils\";\n\nconst RolesRadioGroup = ({\n config,\n globalRoles,\n isEdit,\n role = \"\",\n roles = [],\n}) => {\n const { t } = useTranslation();\n\n const { values, setFieldValue } = useFormikContext();\n\n const setDefaultSelection = currentRole => {\n const condition = isAdminRole(currentRole);\n values.appRoles?.forEach(({ appName, activeRole }, index) => {\n if (appName === globalProps.appName?.substring(5)) {\n setFieldValue(`appRoles[${index}].activeRole`, currentRole);\n\n return;\n }\n\n if (condition(activeRole)) return;\n const matchingRole = _findBy({ name: condition }, globalRoles[appName]);\n if (matchingRole) {\n setFieldValue(`appRoles[${index}].activeRole`, matchingRole.name);\n }\n });\n };\n\n return (\n <Radio\n stacked\n className=\"ntm-members-radio-group grow-0\"\n data-cy=\"ntm-manage-member-roles-group\"\n labelProps={{ className: \"neeto-ui-radio__label w-full\" }}\n name=\"role\"\n label={\n <span className=\"flex w-full items-center justify-between\">\n <Label required> {t(\"neetoTeamMembers.common.role\", SINGULAR)}</Label>\n <Button\n label={t(\"neetoTeamMembers.labels.manageRole\", PLURAL)}\n style=\"link\"\n to={config.pathToRolesPage}\n />\n </span>\n }\n onChange={({ target: { value } }) => {\n setFieldValue(\"role\", value);\n !isEdit && setDefaultSelection(value);\n }}\n >\n {roles.map(({ id, name }) => (\n <label\n className=\"ntm-members-form-radio-item__wrapper\"\n htmlFor={slugify(name)}\n key={id}\n >\n <Radio.Item\n className=\"ntm-members-form-radio-item__label\"\n data-cy=\"ntm-manage-member-roles-button\"\n defaultChecked={identical(name, role)}\n id={slugify(name)}\n label={name}\n name=\"role\"\n value={name}\n />\n </label>\n ))}\n </Radio>\n );\n};\n\nexport default RolesRadioGroup;\n"],"names":["PageWrapper","_ref","className","children","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","Page","_ref2","_excluded2","Header","Body","Footer","NAME_INPUT_VALIDATION_SCHEMA","firstName","yup","string","trim","t","strict","lastName","ROLES_RADIO_GROUP_VALIDATION_SCHEMA","role","required","APP_ROLES_SCHEMA","appsRoles","array","of","object","shape","appName","isEnabled","FILTER_INVALID_EMAILS","label","COUNTER_PROPS","PLURAL","startsFrom","DEFAULT_COMPONENT_CONFIG","type","isOpen","headerProps","bodyProps","footerProps","MEMBERS_FORM_COMPONENT_MAPPER","pane","Pane","modal","Modal","page","FORM_PAGES","MAIN","APP_LIST","CONFIRMATION","INVITE_LINK","EMAIL_REGEX","RegExp","NEETO_AUTH_MANAGE_PRODUCT_URL","concat","_globalProps$organiza","globalProps","organization","authAppUrl","getProductName","activeAppRoles","_activeAppRoles$","product","getActiveRole","_activeAppRoles$2","activeRole","getDefaultRole","roles","currentAppRole","_globalProps$appName","substring","condition","isAdminRole","_findBy","name","generateAppsRolesInitialValue","globalRoles","_globalProps$appName2","appNames","Object","keys","currentApp","currentAppNameIndex","indexOf","appNamesSorted","move","map","isPrimary","includes","ADMIN_ROLES","equals","ADMIN_ROLE_NAME","notEquals","renderInitialValues","_roles$1$name","_roles$","_roles$2","_ref$additionalFields","additionalFieldsInitialValues","selectedMember","isNotNil","keysToPick","_toConsumableArray","pick","emails","toLabelAndValue","email","valid","appRoles","renderPayload","otherValues","arguments","length","undefined","active","organizationRole","value","user","pluck","getSingleInvitationTranslationProps","_ref3","selectedEmail","count","buildValidationSchema","_ref4","memberLimit","activeUsersCount","min","test","_ref5","every","prop","Trans","i18nKey","values","limit","components","emailTo","Button","href","style","isNil","nullable","getInviteURL","inviteToken","window","location","origin","remainingExpiryDays","expiryDate","today","dayjs","startOf","expiry","diff","RolesRadioGroup","config","isEdit","_ref$role","_ref$roles","_useTranslation","useTranslation","_useFormikContext","useFormikContext","setFieldValue","setDefaultSelection","currentRole","_values$appRoles","forEach","index","matchingRole","Radio","stacked","labelProps","_jsxs","Label","SINGULAR","to","pathToRolesPage","onChange","target","id","htmlFor","slugify","Item","defaultChecked","identical"],"mappings":"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"}
|