@bigbinary/neeto-access-control-frontend 0.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.
- package/README.md +1 -0
- package/app/javascript/src/translations/en.json +32 -0
- package/app/javascript/src/translations/index.js +3 -0
- package/dist/index.cjs.js +348 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.js +315 -0
- package/dist/index.js.map +1 -0
- package/package.json +194 -0
- package/types.d.ts +12 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# neeto-access-control-nano
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"neetoAccessControl": {
|
|
3
|
+
"titles": {
|
|
4
|
+
"dashboard": "Access Control"
|
|
5
|
+
},
|
|
6
|
+
"auth": {
|
|
7
|
+
"no": "Public, anyone can access",
|
|
8
|
+
"basic": "Secure with password",
|
|
9
|
+
"email": "Secure by allowing emails with certain keywords",
|
|
10
|
+
"session": "Private, logged in members only"
|
|
11
|
+
},
|
|
12
|
+
"actions": {
|
|
13
|
+
"addKeyword": "Add allowed keyword"
|
|
14
|
+
},
|
|
15
|
+
"inputs": {
|
|
16
|
+
"labels": {
|
|
17
|
+
"keywords": "Add keywords that must be present in the email address for it to be allowed access. For example if you want to give access only to the folks whose email ends with @bigbinary.com then you can add @bigbinary as the keyword required. You can add as many keywords as you want.",
|
|
18
|
+
"password": "Password",
|
|
19
|
+
"visibility": "Visibility"
|
|
20
|
+
},
|
|
21
|
+
"placeholders": {
|
|
22
|
+
"enterKeyword": "Enter keyword",
|
|
23
|
+
"enterPassword": "Enter password"
|
|
24
|
+
},
|
|
25
|
+
"validation": {
|
|
26
|
+
"passwordRequired": "Password is required",
|
|
27
|
+
"authRequired": "Authentication type is required",
|
|
28
|
+
"passwordMinLength": "Password must be at least ${min} characters"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var classNames = require('classnames');
|
|
7
|
+
var Container = require('@bigbinary/neeto-molecules/Container');
|
|
8
|
+
var Header = require('@bigbinary/neeto-molecules/Header');
|
|
9
|
+
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
10
|
+
var Scrollable = require('@bigbinary/neeto-molecules/Scrollable');
|
|
11
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
12
|
+
var formik$1 = require('@bigbinary/neetoui/formik');
|
|
13
|
+
var reactI18next = require('react-i18next');
|
|
14
|
+
var constants = require('@bigbinary/neeto-commons-frontend/constants');
|
|
15
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
16
|
+
var ramda = require('ramda');
|
|
17
|
+
var reactQuery = require('react-query');
|
|
18
|
+
var axios = require('axios');
|
|
19
|
+
var formik = require('formik');
|
|
20
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
21
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
22
|
+
var i18next = require('i18next');
|
|
23
|
+
var yup = require('yup');
|
|
24
|
+
|
|
25
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
26
|
+
|
|
27
|
+
function _interopNamespace(e) {
|
|
28
|
+
if (e && e.__esModule) return e;
|
|
29
|
+
var n = Object.create(null);
|
|
30
|
+
if (e) {
|
|
31
|
+
Object.keys(e).forEach(function (k) {
|
|
32
|
+
if (k !== 'default') {
|
|
33
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
34
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () { return e[k]; }
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
n["default"] = e;
|
|
42
|
+
return Object.freeze(n);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
46
|
+
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
47
|
+
var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
|
|
48
|
+
var Header__default = /*#__PURE__*/_interopDefaultLegacy(Header);
|
|
49
|
+
var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
|
|
50
|
+
var Scrollable__default = /*#__PURE__*/_interopDefaultLegacy(Scrollable);
|
|
51
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
52
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
53
|
+
|
|
54
|
+
function _extends() {
|
|
55
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
56
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
57
|
+
var source = arguments[i];
|
|
58
|
+
for (var key in source) {
|
|
59
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
60
|
+
target[key] = source[key];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return target;
|
|
65
|
+
};
|
|
66
|
+
return _extends.apply(this, arguments);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function _typeof(o) {
|
|
70
|
+
"@babel/helpers - typeof";
|
|
71
|
+
|
|
72
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
73
|
+
return typeof o;
|
|
74
|
+
} : function (o) {
|
|
75
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
76
|
+
}, _typeof(o);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function _toPrimitive(input, hint) {
|
|
80
|
+
if (_typeof(input) !== "object" || input === null) return input;
|
|
81
|
+
var prim = input[Symbol.toPrimitive];
|
|
82
|
+
if (prim !== undefined) {
|
|
83
|
+
var res = prim.call(input, hint || "default");
|
|
84
|
+
if (_typeof(res) !== "object") return res;
|
|
85
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
86
|
+
}
|
|
87
|
+
return (hint === "string" ? String : Number)(input);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function _toPropertyKey(arg) {
|
|
91
|
+
var key = _toPrimitive(arg, "string");
|
|
92
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function _defineProperty(obj, key, value) {
|
|
96
|
+
key = _toPropertyKey(key);
|
|
97
|
+
if (key in obj) {
|
|
98
|
+
Object.defineProperty(obj, key, {
|
|
99
|
+
value: value,
|
|
100
|
+
enumerable: true,
|
|
101
|
+
configurable: true,
|
|
102
|
+
writable: true
|
|
103
|
+
});
|
|
104
|
+
} else {
|
|
105
|
+
obj[key] = value;
|
|
106
|
+
}
|
|
107
|
+
return obj;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
var ACCESS_CONTROL_BASE_PATH = "/secure/api/v1";
|
|
111
|
+
|
|
112
|
+
var configurationPath = "".concat(ACCESS_CONTROL_BASE_PATH, "/configuration");
|
|
113
|
+
var show = function show(params) {
|
|
114
|
+
return axios__default["default"].get(configurationPath, {
|
|
115
|
+
params: params
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
var update = function update(_ref) {
|
|
119
|
+
var ownerId = _ref.ownerId,
|
|
120
|
+
ownerType = _ref.ownerType,
|
|
121
|
+
payload = _ref.payload;
|
|
122
|
+
return axios__default["default"].put(configurationPath, {
|
|
123
|
+
configuration: payload
|
|
124
|
+
}, {
|
|
125
|
+
params: {
|
|
126
|
+
ownerId: ownerId,
|
|
127
|
+
ownerType: ownerType
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
var configurationsApi = {
|
|
132
|
+
show: show,
|
|
133
|
+
update: update
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var QUERY_KEYS = {
|
|
137
|
+
ACCESS_CONTROL_CONFIGURATION: "access-control-configuration"
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
141
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
142
|
+
var ACCESS_CONTROL_CONFIGURATION = QUERY_KEYS.ACCESS_CONTROL_CONFIGURATION;
|
|
143
|
+
var useShowConfiguration = function useShowConfiguration(_ref) {
|
|
144
|
+
var ownerId = _ref.ownerId,
|
|
145
|
+
ownerType = _ref.ownerType;
|
|
146
|
+
var queryKey = [ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId];
|
|
147
|
+
return reactQuery.useQuery(queryKey, function () {
|
|
148
|
+
return configurationsApi.show({
|
|
149
|
+
ownerType: ownerType,
|
|
150
|
+
ownerId: ownerId
|
|
151
|
+
});
|
|
152
|
+
}, {
|
|
153
|
+
select: ramda.prop("configuration"),
|
|
154
|
+
staleTime: constants.DEFAULT_STALE_TIME
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
var useUpdateConfiguration = function useUpdateConfiguration(_ref2, options) {
|
|
158
|
+
var ownerId = _ref2.ownerId,
|
|
159
|
+
ownerType = _ref2.ownerType;
|
|
160
|
+
return reactUtils.useMutationWithInvalidation(function (payload) {
|
|
161
|
+
return configurationsApi.update({
|
|
162
|
+
ownerId: ownerId,
|
|
163
|
+
ownerType: ownerType,
|
|
164
|
+
payload: payload
|
|
165
|
+
});
|
|
166
|
+
}, _objectSpread({
|
|
167
|
+
keysToInvalidate: [[ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId]]
|
|
168
|
+
}, options));
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
var AUTH = {
|
|
172
|
+
NO: "no",
|
|
173
|
+
EMAIL: "email",
|
|
174
|
+
BASIC: "basic",
|
|
175
|
+
SESSION: "session"
|
|
176
|
+
};
|
|
177
|
+
var AUTH_OPTIONS = [{
|
|
178
|
+
label: i18next.t("neetoAccessControl.auth.no"),
|
|
179
|
+
value: AUTH.NO
|
|
180
|
+
}, {
|
|
181
|
+
label: i18next.t("neetoAccessControl.auth.basic"),
|
|
182
|
+
value: AUTH.BASIC
|
|
183
|
+
}, {
|
|
184
|
+
label: i18next.t("neetoAccessControl.auth.email"),
|
|
185
|
+
value: AUTH.EMAIL
|
|
186
|
+
}, {
|
|
187
|
+
label: i18next.t("neetoAccessControl.auth.session"),
|
|
188
|
+
value: AUTH.SESSION
|
|
189
|
+
}];
|
|
190
|
+
var CONFIGURATION_VALIDATION_SCHEMA = yup__namespace.object({
|
|
191
|
+
auth: yup__namespace.string().required(i18next.t("neetoAccessControl.inputs.validation.authRequired")),
|
|
192
|
+
password: yup__namespace.string().nullable().when("auth", {
|
|
193
|
+
is: ramda.equals(AUTH.BASIC),
|
|
194
|
+
then: yup__namespace.string().nullable().trim().min(4, i18next.t("neetoAccessControl.inputs.validation.passwordMinLength")).required(i18next.t("neetoAccessControl.inputs.validation.passwordRequired"))
|
|
195
|
+
}),
|
|
196
|
+
allowedKeywords: yup__namespace.array(yup__namespace.string())
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
var buildConfigurationInitialValues = function buildConfigurationInitialValues(configuration) {
|
|
200
|
+
if (ramda.isEmpty(configuration.allowedKeywords)) {
|
|
201
|
+
configuration.allowedKeywords.push("");
|
|
202
|
+
}
|
|
203
|
+
return configuration;
|
|
204
|
+
};
|
|
205
|
+
var removeKeyword = function removeKeyword(_ref) {
|
|
206
|
+
var arrayHelpers = _ref.arrayHelpers,
|
|
207
|
+
index = _ref.index,
|
|
208
|
+
allowedKeywords = _ref.allowedKeywords;
|
|
209
|
+
if (allowedKeywords.length === 1) {
|
|
210
|
+
arrayHelpers.remove(index);
|
|
211
|
+
arrayHelpers.push("");
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
arrayHelpers.remove(index);
|
|
215
|
+
};
|
|
216
|
+
var buildPayload = function buildPayload(values) {
|
|
217
|
+
var payload = ramda.pick(["auth"], values);
|
|
218
|
+
if (values.auth === AUTH.BASIC) {
|
|
219
|
+
payload["password"] = values.password;
|
|
220
|
+
return payload;
|
|
221
|
+
}
|
|
222
|
+
if (values.auth === AUTH.EMAIL) {
|
|
223
|
+
var rejectEmptyKeywords = ramda.reject(ramda.pipe(ramda.trim, ramda.isEmpty));
|
|
224
|
+
payload["allowedKeywords"] = rejectEmptyKeywords(values.allowedKeywords);
|
|
225
|
+
return payload;
|
|
226
|
+
}
|
|
227
|
+
return payload;
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
var AllowedKeywords = reactUtils.withT(function (_ref) {
|
|
231
|
+
var t = _ref.t,
|
|
232
|
+
name = _ref.name,
|
|
233
|
+
_ref$label = _ref.label,
|
|
234
|
+
label = _ref$label === void 0 ? "" : _ref$label;
|
|
235
|
+
return /*#__PURE__*/React__default["default"].createElement(formik.FieldArray, {
|
|
236
|
+
name: name
|
|
237
|
+
}, function (arrayHelpers) {
|
|
238
|
+
var allowedKeywords = arrayHelpers.form.values[name];
|
|
239
|
+
var showDeleteButton = allowedKeywords.length > 1 || neetoCist.isNotEmpty(allowedKeywords[0]);
|
|
240
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
241
|
+
className: "space-y-4"
|
|
242
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, null, label), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
243
|
+
className: "neeto-ui-bg-pastel-blue neeto-ui-rounded-sm space-y-4 p-6"
|
|
244
|
+
}, allowedKeywords.map(function (_, index) {
|
|
245
|
+
return /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
|
|
246
|
+
className: "w-full",
|
|
247
|
+
key: index,
|
|
248
|
+
name: "".concat(name, ".").concat(index),
|
|
249
|
+
placeholder: t("neetoAccessControl.inputs.placeholders.enterKeyword"),
|
|
250
|
+
suffix: showDeleteButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
251
|
+
icon: neetoIcons.Delete,
|
|
252
|
+
size: "small",
|
|
253
|
+
style: "text",
|
|
254
|
+
onClick: function onClick() {
|
|
255
|
+
return removeKeyword({
|
|
256
|
+
index: index,
|
|
257
|
+
allowedKeywords: allowedKeywords,
|
|
258
|
+
arrayHelpers: arrayHelpers
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
})
|
|
262
|
+
});
|
|
263
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
264
|
+
className: "pt-2",
|
|
265
|
+
label: t("neetoAccessControl.actions.addKeyword"),
|
|
266
|
+
style: "link",
|
|
267
|
+
onClick: function onClick() {
|
|
268
|
+
return arrayHelpers.push("");
|
|
269
|
+
}
|
|
270
|
+
})));
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
var Configuration = function Configuration(_ref) {
|
|
275
|
+
var ownerId = _ref.ownerId,
|
|
276
|
+
ownerType = _ref.ownerType,
|
|
277
|
+
onReset = _ref.onReset,
|
|
278
|
+
onSuccess = _ref.onSuccess,
|
|
279
|
+
headerProps = _ref.headerProps,
|
|
280
|
+
className = _ref.className;
|
|
281
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
282
|
+
t = _useTranslation.t;
|
|
283
|
+
var _useShowConfiguration = useShowConfiguration({
|
|
284
|
+
ownerId: ownerId,
|
|
285
|
+
ownerType: ownerType
|
|
286
|
+
}),
|
|
287
|
+
_useShowConfiguration2 = _useShowConfiguration.data,
|
|
288
|
+
configuration = _useShowConfiguration2 === void 0 ? {} : _useShowConfiguration2,
|
|
289
|
+
isLoading = _useShowConfiguration.isLoading;
|
|
290
|
+
var _useUpdateConfigurati = useUpdateConfiguration({
|
|
291
|
+
ownerId: ownerId,
|
|
292
|
+
ownerType: ownerType
|
|
293
|
+
}, {
|
|
294
|
+
onSuccess: onSuccess
|
|
295
|
+
}),
|
|
296
|
+
updateConfiguration = _useUpdateConfigurati.mutate;
|
|
297
|
+
var handleSubmit = function handleSubmit(values, _ref2) {
|
|
298
|
+
var setSubmitting = _ref2.setSubmitting;
|
|
299
|
+
var payload = buildPayload(values);
|
|
300
|
+
updateConfiguration(payload, {
|
|
301
|
+
onSettled: function onSettled() {
|
|
302
|
+
return setSubmitting(false);
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
return /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], headerProps), isLoading ? /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null) : /*#__PURE__*/React__default["default"].createElement(Scrollable__default["default"], {
|
|
307
|
+
className: "w-full"
|
|
308
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
|
|
309
|
+
className: classNames__default["default"]("space-y-6", className),
|
|
310
|
+
formikProps: {
|
|
311
|
+
initialValues: buildConfigurationInitialValues(configuration),
|
|
312
|
+
validationSchema: CONFIGURATION_VALIDATION_SCHEMA,
|
|
313
|
+
onSubmit: handleSubmit,
|
|
314
|
+
onReset: onReset,
|
|
315
|
+
enableReinitialize: true
|
|
316
|
+
}
|
|
317
|
+
}, function (_ref3) {
|
|
318
|
+
var values = _ref3.values;
|
|
319
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
|
|
320
|
+
className: "neeto-ui-text-base"
|
|
321
|
+
}, t("neetoAccessControl.inputs.labels.visibility")), /*#__PURE__*/React__default["default"].createElement(formik$1.Radio, {
|
|
322
|
+
stacked: true,
|
|
323
|
+
name: "auth"
|
|
324
|
+
}, AUTH_OPTIONS.map(function (props) {
|
|
325
|
+
return /*#__PURE__*/React__default["default"].createElement(formik$1.Radio.Item, _extends({}, props, {
|
|
326
|
+
key: props.value
|
|
327
|
+
}));
|
|
328
|
+
})), values.auth === AUTH.BASIC && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
329
|
+
className: "space-y-4 pb-2"
|
|
330
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
|
|
331
|
+
autoFocus: true,
|
|
332
|
+
required: true,
|
|
333
|
+
unlimitedChars: true,
|
|
334
|
+
className: "w-7/12",
|
|
335
|
+
label: t("neetoAccessControl.inputs.labels.password"),
|
|
336
|
+
name: "password",
|
|
337
|
+
placeholder: t("neetoAccessControl.inputs.placeholders.enterPassword")
|
|
338
|
+
})), values.auth === AUTH.EMAIL && /*#__PURE__*/React__default["default"].createElement(AllowedKeywords, {
|
|
339
|
+
label: t("neetoAccessControl.inputs.labels.keywords"),
|
|
340
|
+
name: "allowedKeywords"
|
|
341
|
+
}), /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
|
|
342
|
+
className: "space-x-2"
|
|
343
|
+
}));
|
|
344
|
+
})));
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
exports.Configuration = Configuration;
|
|
348
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../app/javascript/src/constants/index.js","../app/javascript/src/apis/configurations.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useConfigurationsApi.js","../app/javascript/src/components/Configuration/constants.js","../app/javascript/src/components/Configuration/utils.js","../app/javascript/src/components/Configuration/AllowedKeywords.jsx","../app/javascript/src/components/Configuration/index.jsx"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export const ACCESS_CONTROL_BASE_PATH = \"/secure/api/v1\";\n","import axios from \"axios\";\n\nimport { ACCESS_CONTROL_BASE_PATH } from \"src/constants\";\n\nconst configurationPath = `${ACCESS_CONTROL_BASE_PATH}/configuration`;\n\nconst show = params => axios.get(configurationPath, { params });\n\nconst update = ({ ownerId, ownerType, payload }) =>\n axios.put(\n configurationPath,\n { configuration: payload },\n { params: { ownerId, ownerType } }\n );\n\nconst configurationsApi = { show, update };\n\nexport default configurationsApi;\n","export const QUERY_KEYS = {\n ACCESS_CONTROL_CONFIGURATION: \"access-control-configuration\",\n};\n","import { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\nimport { useQuery } from \"react-query\";\n\nimport configurationsApi from \"apis/configurations\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst { ACCESS_CONTROL_CONFIGURATION } = QUERY_KEYS;\n\nexport const useShowConfiguration = ({ ownerId, ownerType }) => {\n const queryKey = [ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId];\n\n return useQuery(\n queryKey,\n () => configurationsApi.show({ ownerType, ownerId }),\n { select: prop(\"configuration\"), staleTime: DEFAULT_STALE_TIME }\n );\n};\n\nexport const useUpdateConfiguration = ({ ownerId, ownerType }, options) =>\n useMutationWithInvalidation(\n payload => configurationsApi.update({ ownerId, ownerType, payload }),\n {\n keysToInvalidate: [[ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId]],\n ...options,\n }\n );\n","import { t } from \"i18next\";\nimport { equals } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const AUTH = {\n NO: \"no\",\n EMAIL: \"email\",\n BASIC: \"basic\",\n SESSION: \"session\",\n};\n\nexport const AUTH_OPTIONS = [\n { label: t(\"neetoAccessControl.auth.no\"), value: AUTH.NO },\n { label: t(\"neetoAccessControl.auth.basic\"), value: AUTH.BASIC },\n { label: t(\"neetoAccessControl.auth.email\"), value: AUTH.EMAIL },\n { label: t(\"neetoAccessControl.auth.session\"), value: AUTH.SESSION },\n];\n\nexport const CONFIGURATION_VALIDATION_SCHEMA = yup.object({\n auth: yup\n .string()\n .required(t(\"neetoAccessControl.inputs.validation.authRequired\")),\n password: yup\n .string()\n .nullable()\n .when(\"auth\", {\n is: equals(AUTH.BASIC),\n then: yup\n .string()\n .nullable()\n .trim()\n .min(4, t(\"neetoAccessControl.inputs.validation.passwordMinLength\"))\n .required(t(\"neetoAccessControl.inputs.validation.passwordRequired\")),\n }),\n allowedKeywords: yup.array(yup.string()),\n});\n","import { isEmpty, pick, pipe, reject, trim } from \"ramda\";\n\nimport { AUTH } from \"./constants\";\n\nexport const buildConfigurationInitialValues = configuration => {\n if (isEmpty(configuration.allowedKeywords)) {\n configuration.allowedKeywords.push(\"\");\n }\n\n return configuration;\n};\n\nexport const removeKeyword = ({ arrayHelpers, index, allowedKeywords }) => {\n if (allowedKeywords.length === 1) {\n arrayHelpers.remove(index);\n arrayHelpers.push(\"\");\n\n return;\n }\n arrayHelpers.remove(index);\n};\n\nexport const buildPayload = values => {\n const payload = pick([\"auth\"], values);\n\n if (values.auth === AUTH.BASIC) {\n payload[\"password\"] = values.password;\n\n return payload;\n }\n\n if (values.auth === AUTH.EMAIL) {\n const rejectEmptyKeywords = reject(pipe(trim, isEmpty));\n payload[\"allowedKeywords\"] = rejectEmptyKeywords(values.allowedKeywords);\n\n return payload;\n }\n\n return payload;\n};\n","import React from \"react\";\n\nimport { FieldArray } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button, Label } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { removeKeyword } from \"./utils\";\n\nconst AllowedKeywords = withT(({ t, name, label = \"\" }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const allowedKeywords = arrayHelpers.form.values[name];\n const showDeleteButton =\n allowedKeywords.length > 1 || isNotEmpty(allowedKeywords[0]);\n\n return (\n <div className=\"space-y-4\">\n <Label>{label}</Label>\n <div className=\"neeto-ui-bg-pastel-blue neeto-ui-rounded-sm space-y-4 p-6\">\n {allowedKeywords.map((_, index) => (\n <Input\n className=\"w-full\"\n key={index}\n name={`${name}.${index}`}\n placeholder={t(\n \"neetoAccessControl.inputs.placeholders.enterKeyword\"\n )}\n suffix={\n showDeleteButton && (\n <Button\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeKeyword({\n index,\n allowedKeywords,\n arrayHelpers,\n })\n }\n />\n )\n }\n />\n ))}\n <Button\n className=\"pt-2\"\n label={t(\"neetoAccessControl.actions.addKeyword\")}\n style=\"link\"\n onClick={() => arrayHelpers.push(\"\")}\n />\n </div>\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default AllowedKeywords;\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport Container from \"neetomolecules/Container\";\nimport Header from \"neetomolecules/Header\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport Scrollable from \"neetomolecules/Scrollable\";\nimport { Label } from \"neetoui\";\nimport { ActionBlock, Form, Input, Radio } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useShowConfiguration,\n useUpdateConfiguration,\n} from \"hooks/reactQuery/useConfigurationsApi\";\n\nimport AllowedKeywords from \"./AllowedKeywords\";\nimport {\n AUTH,\n AUTH_OPTIONS,\n CONFIGURATION_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { buildConfigurationInitialValues, buildPayload } from \"./utils\";\n\nconst Configuration = ({\n ownerId,\n ownerType,\n onReset,\n onSuccess,\n headerProps,\n className,\n}) => {\n const { t } = useTranslation();\n\n const { data: configuration = {}, isLoading } = useShowConfiguration({\n ownerId,\n ownerType,\n });\n\n const { mutate: updateConfiguration } = useUpdateConfiguration(\n { ownerId, ownerType },\n { onSuccess }\n );\n\n const handleSubmit = (values, { setSubmitting }) => {\n const payload = buildPayload(values);\n updateConfiguration(payload, { onSettled: () => setSubmitting(false) });\n };\n\n return (\n <Container>\n <Header {...headerProps} />\n {isLoading ? (\n <PageLoader />\n ) : (\n <Scrollable className=\"w-full\">\n <Form\n className={classNames(\"space-y-6\", className)}\n formikProps={{\n initialValues: buildConfigurationInitialValues(configuration),\n validationSchema: CONFIGURATION_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n onReset,\n enableReinitialize: true,\n }}\n >\n {({ values }) => (\n <>\n <Label className=\"neeto-ui-text-base\">\n {t(\"neetoAccessControl.inputs.labels.visibility\")}\n </Label>\n <Radio stacked name=\"auth\">\n {AUTH_OPTIONS.map(props => (\n <Radio.Item {...props} key={props.value} />\n ))}\n </Radio>\n {values.auth === AUTH.BASIC && (\n <div className=\"space-y-4 pb-2\">\n <Input\n autoFocus\n required\n unlimitedChars\n className=\"w-7/12\"\n label={t(\"neetoAccessControl.inputs.labels.password\")}\n name=\"password\"\n placeholder={t(\n \"neetoAccessControl.inputs.placeholders.enterPassword\"\n )}\n />\n </div>\n )}\n {values.auth === AUTH.EMAIL && (\n <AllowedKeywords\n label={t(\"neetoAccessControl.inputs.labels.keywords\")}\n name=\"allowedKeywords\"\n />\n )}\n <ActionBlock className=\"space-x-2\" />\n </>\n )}\n </Form>\n </Scrollable>\n )}\n </Container>\n );\n};\nexport default Configuration;\n"],"names":["toPrimitive","toPropertyKey","ACCESS_CONTROL_BASE_PATH","configurationPath","concat","show","params","axios","get","update","_ref","ownerId","ownerType","payload","put","configuration","configurationsApi","QUERY_KEYS","ACCESS_CONTROL_CONFIGURATION","useShowConfiguration","queryKey","useQuery","select","prop","staleTime","DEFAULT_STALE_TIME","useUpdateConfiguration","_ref2","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","AUTH","NO","EMAIL","BASIC","SESSION","AUTH_OPTIONS","label","t","value","CONFIGURATION_VALIDATION_SCHEMA","yup","object","auth","string","required","password","nullable","when","is","equals","then","trim","min","allowedKeywords","array","buildConfigurationInitialValues","isEmpty","push","removeKeyword","arrayHelpers","index","length","remove","buildPayload","values","pick","rejectEmptyKeywords","reject","pipe","AllowedKeywords","withT","name","_ref$label","React","createElement","FieldArray","form","showDeleteButton","isNotEmpty","className","Label","map","_","Input","key","placeholder","suffix","Button","icon","Delete","size","style","onClick","Configuration","onReset","onSuccess","headerProps","_useTranslation","useTranslation","_useShowConfiguration","_useShowConfiguration2","data","isLoading","_useUpdateConfigurati","updateConfiguration","mutate","handleSubmit","setSubmitting","onSettled","Container","Header","PageLoader","Scrollable","Form","classNames","formikProps","initialValues","validationSchema","onSubmit","enableReinitialize","_ref3","Fragment","Radio","stacked","props","Item","_extends","autoFocus","unlimitedChars","ActionBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAe,SAAS,QAAQ,GAAG;AACnC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE;AACtE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC9B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC/D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACzC;;ACbe,SAAS,OAAO,CAAC,CAAC,EAAE;AACnC,EAAE,yBAAyB,CAAC;AAC5B;AACA,EAAE,OAAO,OAAO,GAAG,UAAU,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE;AACpG,IAAI,OAAO,OAAO,CAAC,CAAC;AACpB,GAAG,GAAG,UAAU,CAAC,EAAE;AACnB,IAAI,OAAO,CAAC,IAAI,UAAU,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;AACxH,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChB;;ACPe,SAAS,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;AAClD,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,KAAK,CAAC;AAClE,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACvC,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE;AAC1B,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;AAClD,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,OAAO,GAAG,CAAC;AAC9C,IAAI,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;AACtD;;ACRe,SAAS,cAAc,CAAC,GAAG,EAAE;AAC5C,EAAE,IAAI,GAAG,GAAGA,YAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACvC,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACvD;;ACJe,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACzD,EAAE,GAAG,GAAGC,cAAa,CAAC,GAAG,CAAC,CAAC;AAC3B,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;AAClB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,QAAQ,EAAE,IAAI;AACpB,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACdO,IAAMC,wBAAwB,GAAG,gBAAgB;;ACIxD,IAAMC,iBAAiB,GAAA,EAAA,CAAAC,MAAA,CAAMF,wBAAwB,EAAgB,gBAAA,CAAA,CAAA;AAErE,IAAMG,IAAI,GAAG,SAAPA,IAAIA,CAAGC,MAAM,EAAA;AAAA,EAAA,OAAIC,yBAAK,CAACC,GAAG,CAACL,iBAAiB,EAAE;AAAEG,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE/D,IAAMG,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO,CAAA;AAAA,EAAA,OAC3CN,yBAAK,CAACO,GAAG,CACPX,iBAAiB,EACjB;AAAEY,IAAAA,aAAa,EAAEF,OAAAA;AAAQ,GAAC,EAC1B;AAAEP,IAAAA,MAAM,EAAE;AAAEK,MAAAA,OAAO,EAAPA,OAAO;AAAEC,MAAAA,SAAS,EAATA,SAAAA;AAAU,KAAA;AAAE,GACnC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEH,IAAMI,iBAAiB,GAAG;AAAEX,EAAAA,IAAI,EAAJA,IAAI;AAAEI,EAAAA,MAAM,EAANA,MAAAA;AAAO,CAAC;;ACfnC,IAAMQ,UAAU,GAAG;AACxBC,EAAAA,4BAA4B,EAAE,8BAAA;AAChC,CAAC;;;;ACMD,IAAQA,4BAA4B,GAAKD,UAAU,CAA3CC,4BAA4B,CAAA;AAE7B,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAT,IAAA,EAA+B;AAAA,EAAA,IAAzBC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS,CAAA;EACvD,IAAMQ,QAAQ,GAAG,CAACF,4BAA4B,EAAEN,SAAS,EAAED,OAAO,CAAC,CAAA;EAEnE,OAAOU,mBAAQ,CACbD,QAAQ,EACR,YAAA;IAAA,OAAMJ,iBAAiB,CAACX,IAAI,CAAC;AAAEO,MAAAA,SAAS,EAATA,SAAS;AAAED,MAAAA,OAAO,EAAPA,OAAAA;AAAQ,KAAC,CAAC,CAAA;GACpD,EAAA;AAAEW,IAAAA,MAAM,EAAEC,UAAI,CAAC,eAAe,CAAC;AAAEC,IAAAA,SAAS,EAAEC,4BAAAA;AAAmB,GACjE,CAAC,CAAA;AACH,CAAC,CAAA;AAEM,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAC,KAAA,EAA4BC,OAAO,EAAA;AAAA,EAAA,IAA7BjB,OAAO,GAAAgB,KAAA,CAAPhB,OAAO;IAAEC,SAAS,GAAAe,KAAA,CAATf,SAAS,CAAA;EAAA,OACzDiB,sCAA2B,CACzB,UAAAhB,OAAO,EAAA;IAAA,OAAIG,iBAAiB,CAACP,MAAM,CAAC;AAAEE,MAAAA,OAAO,EAAPA,OAAO;AAAEC,MAAAA,SAAS,EAATA,SAAS;AAAEC,MAAAA,OAAO,EAAPA,OAAAA;AAAQ,KAAC,CAAC,CAAA;AAAA,GAAA,EAAAiB,aAAA,CAAA;IAElEC,gBAAgB,EAAE,CAAC,CAACb,4BAA4B,EAAEN,SAAS,EAAED,OAAO,CAAC,CAAA;GAClEiB,EAAAA,OAAO,CAEd,CAAC,CAAA;AAAA,CAAA;;ACvBI,IAAMI,IAAI,GAAG;AAClBC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,OAAO,EAAE,SAAA;AACX,CAAC,CAAA;AAEM,IAAMC,YAAY,GAAG,CAC1B;AAAEC,EAAAA,KAAK,EAAEC,SAAC,CAAC,4BAA4B,CAAC;EAAEC,KAAK,EAAER,IAAI,CAACC,EAAAA;AAAG,CAAC,EAC1D;AAAEK,EAAAA,KAAK,EAAEC,SAAC,CAAC,+BAA+B,CAAC;EAAEC,KAAK,EAAER,IAAI,CAACG,KAAAA;AAAM,CAAC,EAChE;AAAEG,EAAAA,KAAK,EAAEC,SAAC,CAAC,+BAA+B,CAAC;EAAEC,KAAK,EAAER,IAAI,CAACE,KAAAA;AAAM,CAAC,EAChE;AAAEI,EAAAA,KAAK,EAAEC,SAAC,CAAC,iCAAiC,CAAC;EAAEC,KAAK,EAAER,IAAI,CAACI,OAAAA;AAAQ,CAAC,CACrE,CAAA;AAEM,IAAMK,+BAA+B,GAAGC,cAAG,CAACC,MAAM,CAAC;AACxDC,EAAAA,IAAI,EAAEF,cAAG,CACNG,MAAM,EAAE,CACRC,QAAQ,CAACP,SAAC,CAAC,mDAAmD,CAAC,CAAC;AACnEQ,EAAAA,QAAQ,EAAEL,cAAG,CACVG,MAAM,EAAE,CACRG,QAAQ,EAAE,CACVC,IAAI,CAAC,MAAM,EAAE;AACZC,IAAAA,EAAE,EAAEC,YAAM,CAACnB,IAAI,CAACG,KAAK,CAAC;AACtBiB,IAAAA,IAAI,EAAEV,cAAG,CACNG,MAAM,EAAE,CACRG,QAAQ,EAAE,CACVK,IAAI,EAAE,CACNC,GAAG,CAAC,CAAC,EAAEf,SAAC,CAAC,wDAAwD,CAAC,CAAC,CACnEO,QAAQ,CAACP,SAAC,CAAC,uDAAuD,CAAC,CAAA;AACxE,GAAC,CAAC;EACJgB,eAAe,EAAEb,cAAG,CAACc,KAAK,CAACd,cAAG,CAACG,MAAM,EAAE,CAAA;AACzC,CAAC,CAAC;;AC/BK,IAAMY,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAG1C,aAAa,EAAI;AAC9D,EAAA,IAAI2C,aAAO,CAAC3C,aAAa,CAACwC,eAAe,CAAC,EAAE;AAC1CxC,IAAAA,aAAa,CAACwC,eAAe,CAACI,IAAI,CAAC,EAAE,CAAC,CAAA;AACxC,GAAA;AAEA,EAAA,OAAO5C,aAAa,CAAA;AACtB,CAAC,CAAA;AAEM,IAAM6C,aAAa,GAAG,SAAhBA,aAAaA,CAAAlD,IAAA,EAAiD;AAAA,EAAA,IAA3CmD,YAAY,GAAAnD,IAAA,CAAZmD,YAAY;IAAEC,KAAK,GAAApD,IAAA,CAALoD,KAAK;IAAEP,eAAe,GAAA7C,IAAA,CAAf6C,eAAe,CAAA;AAClE,EAAA,IAAIA,eAAe,CAACQ,MAAM,KAAK,CAAC,EAAE;AAChCF,IAAAA,YAAY,CAACG,MAAM,CAACF,KAAK,CAAC,CAAA;AAC1BD,IAAAA,YAAY,CAACF,IAAI,CAAC,EAAE,CAAC,CAAA;AAErB,IAAA,OAAA;AACF,GAAA;AACAE,EAAAA,YAAY,CAACG,MAAM,CAACF,KAAK,CAAC,CAAA;AAC5B,CAAC,CAAA;AAEM,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAGC,MAAM,EAAI;EACpC,IAAMrD,OAAO,GAAGsD,UAAI,CAAC,CAAC,MAAM,CAAC,EAAED,MAAM,CAAC,CAAA;AAEtC,EAAA,IAAIA,MAAM,CAACtB,IAAI,KAAKZ,IAAI,CAACG,KAAK,EAAE;AAC9BtB,IAAAA,OAAO,CAAC,UAAU,CAAC,GAAGqD,MAAM,CAACnB,QAAQ,CAAA;AAErC,IAAA,OAAOlC,OAAO,CAAA;AAChB,GAAA;AAEA,EAAA,IAAIqD,MAAM,CAACtB,IAAI,KAAKZ,IAAI,CAACE,KAAK,EAAE;IAC9B,IAAMkC,mBAAmB,GAAGC,YAAM,CAACC,UAAI,CAACjB,UAAI,EAAEK,aAAO,CAAC,CAAC,CAAA;IACvD7C,OAAO,CAAC,iBAAiB,CAAC,GAAGuD,mBAAmB,CAACF,MAAM,CAACX,eAAe,CAAC,CAAA;AAExE,IAAA,OAAO1C,OAAO,CAAA;AAChB,GAAA;AAEA,EAAA,OAAOA,OAAO,CAAA;AAChB,CAAC;;AC5BD,IAAM0D,eAAe,GAAGC,gBAAK,CAAC,UAAA9D,IAAA,EAAA;AAAA,EAAA,IAAG6B,CAAC,GAAA7B,IAAA,CAAD6B,CAAC;IAAEkC,IAAI,GAAA/D,IAAA,CAAJ+D,IAAI;IAAAC,UAAA,GAAAhE,IAAA,CAAE4B,KAAK;AAALA,IAAAA,KAAK,GAAAoC,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA,CAAA;AAAA,EAAA,oBAClDC,yBAAA,CAAAC,aAAA,CAACC,iBAAU,EAAA;AAAOJ,IAAAA,IAAI,EAAJA,IAAAA;GACf,EAAA,UAAAZ,YAAY,EAAI;IACf,IAAMN,eAAe,GAAGM,YAAY,CAACiB,IAAI,CAACZ,MAAM,CAACO,IAAI,CAAC,CAAA;AACtD,IAAA,IAAMM,gBAAgB,GACpBxB,eAAe,CAACQ,MAAM,GAAG,CAAC,IAAIiB,oBAAU,CAACzB,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9D,oBACEoB,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,WAAA;KACbN,eAAAA,yBAAA,CAAAC,aAAA,CAACM,aAAK,EAAE5C,IAAAA,EAAAA,KAAa,CAAC,eACtBqC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,2DAAA;AAA2D,KAAA,EACvE1B,eAAe,CAAC4B,GAAG,CAAC,UAACC,CAAC,EAAEtB,KAAK,EAAA;AAAA,MAAA,oBAC5Ba,yBAAA,CAAAC,aAAA,CAACS,cAAK,EAAA;AACJJ,QAAAA,SAAS,EAAC,QAAQ;AAClBK,QAAAA,GAAG,EAAExB,KAAM;QACXW,IAAI,EAAA,EAAA,CAAArE,MAAA,CAAKqE,IAAI,OAAArE,MAAA,CAAI0D,KAAK,CAAG;AACzByB,QAAAA,WAAW,EAAEhD,CAAC,CACZ,qDACF,CAAE;AACFiD,QAAAA,MAAM,EACJT,gBAAgB,iBACdJ,yBAAA,CAAAC,aAAA,CAACa,cAAM,EAAA;AACLC,UAAAA,IAAI,EAAEC,iBAAO;AACbC,UAAAA,IAAI,EAAC,OAAO;AACZC,UAAAA,KAAK,EAAC,MAAM;UACZC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,YAAA,OACPlC,aAAa,CAAC;AACZE,cAAAA,KAAK,EAALA,KAAK;AACLP,cAAAA,eAAe,EAAfA,eAAe;AACfM,cAAAA,YAAY,EAAZA,YAAAA;AACF,aAAC,CAAC,CAAA;AAAA,WAAA;SAEL,CAAA;AAEJ,OACF,CAAC,CAAA;AAAA,KACH,CAAC,eACFc,yBAAA,CAAAC,aAAA,CAACa,cAAM,EAAA;AACLR,MAAAA,SAAS,EAAC,MAAM;AAChB3C,MAAAA,KAAK,EAAEC,CAAC,CAAC,uCAAuC,CAAE;AAClDsD,MAAAA,KAAK,EAAC,MAAM;MACZC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,QAAA,OAAMjC,YAAY,CAACF,IAAI,CAAC,EAAE,CAAC,CAAA;AAAA,OAAA;KACrC,CACE,CACF,CAAC,CAAA;AAEV,GACU,CAAC,CAAA;AAAA,CACd,CAAC;;ACnCF,IAAMoC,aAAa,GAAG,SAAhBA,aAAaA,CAAArF,IAAA,EAOb;AAAA,EAAA,IANJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACToF,OAAO,GAAAtF,IAAA,CAAPsF,OAAO;IACPC,SAAS,GAAAvF,IAAA,CAATuF,SAAS;IACTC,WAAW,GAAAxF,IAAA,CAAXwF,WAAW;IACXjB,SAAS,GAAAvE,IAAA,CAATuE,SAAS,CAAA;AAET,EAAA,IAAAkB,eAAA,GAAcC,2BAAc,EAAE;IAAtB7D,CAAC,GAAA4D,eAAA,CAAD5D,CAAC,CAAA;EAET,IAAA8D,qBAAA,GAAgDlF,oBAAoB,CAAC;AACnER,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,SAAS,EAATA,SAAAA;AACF,KAAC,CAAC;IAAA0F,sBAAA,GAAAD,qBAAA,CAHME,IAAI;AAAExF,IAAAA,aAAa,GAAAuF,sBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,sBAAA;IAAEE,SAAS,GAAAH,qBAAA,CAATG,SAAS,CAAA;EAK3C,IAAAC,qBAAA,GAAwC/E,sBAAsB,CAC5D;AAAEf,MAAAA,OAAO,EAAPA,OAAO;AAAEC,MAAAA,SAAS,EAATA,SAAAA;AAAU,KAAC,EACtB;AAAEqF,MAAAA,SAAS,EAATA,SAAAA;AAAU,KACd,CAAC;IAHeS,mBAAmB,GAAAD,qBAAA,CAA3BE,MAAM,CAAA;EAKd,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAI1C,MAAM,EAAAvC,KAAA,EAAwB;AAAA,IAAA,IAApBkF,aAAa,GAAAlF,KAAA,CAAbkF,aAAa,CAAA;AAC3C,IAAA,IAAMhG,OAAO,GAAGoD,YAAY,CAACC,MAAM,CAAC,CAAA;IACpCwC,mBAAmB,CAAC7F,OAAO,EAAE;MAAEiG,SAAS,EAAE,SAAAA,SAAA,GAAA;QAAA,OAAMD,aAAa,CAAC,KAAK,CAAC,CAAA;AAAA,OAAA;AAAC,KAAC,CAAC,CAAA;GACxE,CAAA;AAED,EAAA,oBACElC,yBAAA,CAAAC,aAAA,CAACmC,6BAAS,EAAA,IAAA,eACRpC,yBAAA,CAAAC,aAAA,CAACoC,0BAAM,EAAKd,WAAc,CAAC,EAC1BM,SAAS,gBACR7B,yBAAA,CAAAC,aAAA,CAACqC,8BAAU,EAAE,IAAA,CAAC,gBAEdtC,yBAAA,CAAAC,aAAA,CAACsC,8BAAU,EAAA;AAACjC,IAAAA,SAAS,EAAC,QAAA;AAAQ,GAAA,eAC5BN,yBAAA,CAAAC,aAAA,CAACuC,aAAI,EAAA;AACHlC,IAAAA,SAAS,EAAEmC,8BAAU,CAAC,WAAW,EAAEnC,SAAS,CAAE;AAC9CoC,IAAAA,WAAW,EAAE;AACXC,MAAAA,aAAa,EAAE7D,+BAA+B,CAAC1C,aAAa,CAAC;AAC7DwG,MAAAA,gBAAgB,EAAE9E,+BAA+B;AACjD+E,MAAAA,QAAQ,EAAEZ,YAAY;AACtBZ,MAAAA,OAAO,EAAPA,OAAO;AACPyB,MAAAA,kBAAkB,EAAE,IAAA;AACtB,KAAA;AAAE,GAAA,EAED,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGxD,MAAM,GAAAwD,KAAA,CAANxD,MAAM,CAAA;AAAA,IAAA,oBACRS,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAgD,QAAA,EAAA,IAAA,eACEhD,yBAAA,CAAAC,aAAA,CAACM,aAAK,EAAA;AAACD,MAAAA,SAAS,EAAC,oBAAA;KACd1C,EAAAA,CAAC,CAAC,6CAA6C,CAC3C,CAAC,eACRoC,yBAAA,CAAAC,aAAA,CAACgD,cAAK,EAAA;MAACC,OAAO,EAAA,IAAA;AAACpD,MAAAA,IAAI,EAAC,MAAA;AAAM,KAAA,EACvBpC,YAAY,CAAC8C,GAAG,CAAC,UAAA2C,KAAK,EAAA;MAAA,oBACrBnD,yBAAA,CAAAC,aAAA,CAACgD,cAAK,CAACG,IAAI,EAAAC,QAAA,CAAA,EAAA,EAAKF,KAAK,EAAA;QAAExC,GAAG,EAAEwC,KAAK,CAACtF,KAAAA;AAAM,OAAA,CAAE,CAAC,CAAA;AAAA,KAC5C,CACI,CAAC,EACP0B,MAAM,CAACtB,IAAI,KAAKZ,IAAI,CAACG,KAAK,iBACzBwC,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,gBAAA;AAAgB,KAAA,eAC7BN,yBAAA,CAAAC,aAAA,CAACS,cAAK,EAAA;MACJ4C,SAAS,EAAA,IAAA;MACTnF,QAAQ,EAAA,IAAA;MACRoF,cAAc,EAAA,IAAA;AACdjD,MAAAA,SAAS,EAAC,QAAQ;AAClB3C,MAAAA,KAAK,EAAEC,CAAC,CAAC,2CAA2C,CAAE;AACtDkC,MAAAA,IAAI,EAAC,UAAU;MACfc,WAAW,EAAEhD,CAAC,CACZ,sDACF,CAAA;AAAE,KACH,CACE,CACN,EACA2B,MAAM,CAACtB,IAAI,KAAKZ,IAAI,CAACE,KAAK,iBACzByC,yBAAA,CAAAC,aAAA,CAACL,eAAe,EAAA;AACdjC,MAAAA,KAAK,EAAEC,CAAC,CAAC,2CAA2C,CAAE;AACtDkC,MAAAA,IAAI,EAAC,iBAAA;AAAiB,KACvB,CACF,eACDE,yBAAA,CAAAC,aAAA,CAACuD,oBAAW,EAAA;AAAClD,MAAAA,SAAS,EAAC,WAAA;AAAW,KAAE,CACpC,CAAC,CAAA;GAED,CACI,CAEL,CAAC,CAAA;AAEhB;;;;"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import Container from '@bigbinary/neeto-molecules/Container';
|
|
4
|
+
import Header from '@bigbinary/neeto-molecules/Header';
|
|
5
|
+
import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
|
|
6
|
+
import Scrollable from '@bigbinary/neeto-molecules/Scrollable';
|
|
7
|
+
import { Label, Button } from '@bigbinary/neetoui';
|
|
8
|
+
import { Input, Form, Radio, ActionBlock } from '@bigbinary/neetoui/formik';
|
|
9
|
+
import { useTranslation } from 'react-i18next';
|
|
10
|
+
import { DEFAULT_STALE_TIME } from '@bigbinary/neeto-commons-frontend/constants';
|
|
11
|
+
import { useMutationWithInvalidation, withT } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
12
|
+
import { prop, equals, isEmpty, pick, reject, pipe, trim } from 'ramda';
|
|
13
|
+
import { useQuery } from 'react-query';
|
|
14
|
+
import axios from 'axios';
|
|
15
|
+
import { FieldArray } from 'formik';
|
|
16
|
+
import { isNotEmpty } from '@bigbinary/neeto-cist';
|
|
17
|
+
import { Delete } from '@bigbinary/neeto-icons';
|
|
18
|
+
import { t } from 'i18next';
|
|
19
|
+
import * as yup from 'yup';
|
|
20
|
+
|
|
21
|
+
function _extends() {
|
|
22
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
23
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
24
|
+
var source = arguments[i];
|
|
25
|
+
for (var key in source) {
|
|
26
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
27
|
+
target[key] = source[key];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return target;
|
|
32
|
+
};
|
|
33
|
+
return _extends.apply(this, arguments);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function _typeof(o) {
|
|
37
|
+
"@babel/helpers - typeof";
|
|
38
|
+
|
|
39
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
40
|
+
return typeof o;
|
|
41
|
+
} : function (o) {
|
|
42
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
43
|
+
}, _typeof(o);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function _toPrimitive(input, hint) {
|
|
47
|
+
if (_typeof(input) !== "object" || input === null) return input;
|
|
48
|
+
var prim = input[Symbol.toPrimitive];
|
|
49
|
+
if (prim !== undefined) {
|
|
50
|
+
var res = prim.call(input, hint || "default");
|
|
51
|
+
if (_typeof(res) !== "object") return res;
|
|
52
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
53
|
+
}
|
|
54
|
+
return (hint === "string" ? String : Number)(input);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function _toPropertyKey(arg) {
|
|
58
|
+
var key = _toPrimitive(arg, "string");
|
|
59
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function _defineProperty(obj, key, value) {
|
|
63
|
+
key = _toPropertyKey(key);
|
|
64
|
+
if (key in obj) {
|
|
65
|
+
Object.defineProperty(obj, key, {
|
|
66
|
+
value: value,
|
|
67
|
+
enumerable: true,
|
|
68
|
+
configurable: true,
|
|
69
|
+
writable: true
|
|
70
|
+
});
|
|
71
|
+
} else {
|
|
72
|
+
obj[key] = value;
|
|
73
|
+
}
|
|
74
|
+
return obj;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var ACCESS_CONTROL_BASE_PATH = "/secure/api/v1";
|
|
78
|
+
|
|
79
|
+
var configurationPath = "".concat(ACCESS_CONTROL_BASE_PATH, "/configuration");
|
|
80
|
+
var show = function show(params) {
|
|
81
|
+
return axios.get(configurationPath, {
|
|
82
|
+
params: params
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
var update = function update(_ref) {
|
|
86
|
+
var ownerId = _ref.ownerId,
|
|
87
|
+
ownerType = _ref.ownerType,
|
|
88
|
+
payload = _ref.payload;
|
|
89
|
+
return axios.put(configurationPath, {
|
|
90
|
+
configuration: payload
|
|
91
|
+
}, {
|
|
92
|
+
params: {
|
|
93
|
+
ownerId: ownerId,
|
|
94
|
+
ownerType: ownerType
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
var configurationsApi = {
|
|
99
|
+
show: show,
|
|
100
|
+
update: update
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var QUERY_KEYS = {
|
|
104
|
+
ACCESS_CONTROL_CONFIGURATION: "access-control-configuration"
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
108
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
109
|
+
var ACCESS_CONTROL_CONFIGURATION = QUERY_KEYS.ACCESS_CONTROL_CONFIGURATION;
|
|
110
|
+
var useShowConfiguration = function useShowConfiguration(_ref) {
|
|
111
|
+
var ownerId = _ref.ownerId,
|
|
112
|
+
ownerType = _ref.ownerType;
|
|
113
|
+
var queryKey = [ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId];
|
|
114
|
+
return useQuery(queryKey, function () {
|
|
115
|
+
return configurationsApi.show({
|
|
116
|
+
ownerType: ownerType,
|
|
117
|
+
ownerId: ownerId
|
|
118
|
+
});
|
|
119
|
+
}, {
|
|
120
|
+
select: prop("configuration"),
|
|
121
|
+
staleTime: DEFAULT_STALE_TIME
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
var useUpdateConfiguration = function useUpdateConfiguration(_ref2, options) {
|
|
125
|
+
var ownerId = _ref2.ownerId,
|
|
126
|
+
ownerType = _ref2.ownerType;
|
|
127
|
+
return useMutationWithInvalidation(function (payload) {
|
|
128
|
+
return configurationsApi.update({
|
|
129
|
+
ownerId: ownerId,
|
|
130
|
+
ownerType: ownerType,
|
|
131
|
+
payload: payload
|
|
132
|
+
});
|
|
133
|
+
}, _objectSpread({
|
|
134
|
+
keysToInvalidate: [[ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId]]
|
|
135
|
+
}, options));
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
var AUTH = {
|
|
139
|
+
NO: "no",
|
|
140
|
+
EMAIL: "email",
|
|
141
|
+
BASIC: "basic",
|
|
142
|
+
SESSION: "session"
|
|
143
|
+
};
|
|
144
|
+
var AUTH_OPTIONS = [{
|
|
145
|
+
label: t("neetoAccessControl.auth.no"),
|
|
146
|
+
value: AUTH.NO
|
|
147
|
+
}, {
|
|
148
|
+
label: t("neetoAccessControl.auth.basic"),
|
|
149
|
+
value: AUTH.BASIC
|
|
150
|
+
}, {
|
|
151
|
+
label: t("neetoAccessControl.auth.email"),
|
|
152
|
+
value: AUTH.EMAIL
|
|
153
|
+
}, {
|
|
154
|
+
label: t("neetoAccessControl.auth.session"),
|
|
155
|
+
value: AUTH.SESSION
|
|
156
|
+
}];
|
|
157
|
+
var CONFIGURATION_VALIDATION_SCHEMA = yup.object({
|
|
158
|
+
auth: yup.string().required(t("neetoAccessControl.inputs.validation.authRequired")),
|
|
159
|
+
password: yup.string().nullable().when("auth", {
|
|
160
|
+
is: equals(AUTH.BASIC),
|
|
161
|
+
then: yup.string().nullable().trim().min(4, t("neetoAccessControl.inputs.validation.passwordMinLength")).required(t("neetoAccessControl.inputs.validation.passwordRequired"))
|
|
162
|
+
}),
|
|
163
|
+
allowedKeywords: yup.array(yup.string())
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
var buildConfigurationInitialValues = function buildConfigurationInitialValues(configuration) {
|
|
167
|
+
if (isEmpty(configuration.allowedKeywords)) {
|
|
168
|
+
configuration.allowedKeywords.push("");
|
|
169
|
+
}
|
|
170
|
+
return configuration;
|
|
171
|
+
};
|
|
172
|
+
var removeKeyword = function removeKeyword(_ref) {
|
|
173
|
+
var arrayHelpers = _ref.arrayHelpers,
|
|
174
|
+
index = _ref.index,
|
|
175
|
+
allowedKeywords = _ref.allowedKeywords;
|
|
176
|
+
if (allowedKeywords.length === 1) {
|
|
177
|
+
arrayHelpers.remove(index);
|
|
178
|
+
arrayHelpers.push("");
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
arrayHelpers.remove(index);
|
|
182
|
+
};
|
|
183
|
+
var buildPayload = function buildPayload(values) {
|
|
184
|
+
var payload = pick(["auth"], values);
|
|
185
|
+
if (values.auth === AUTH.BASIC) {
|
|
186
|
+
payload["password"] = values.password;
|
|
187
|
+
return payload;
|
|
188
|
+
}
|
|
189
|
+
if (values.auth === AUTH.EMAIL) {
|
|
190
|
+
var rejectEmptyKeywords = reject(pipe(trim, isEmpty));
|
|
191
|
+
payload["allowedKeywords"] = rejectEmptyKeywords(values.allowedKeywords);
|
|
192
|
+
return payload;
|
|
193
|
+
}
|
|
194
|
+
return payload;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
var AllowedKeywords = withT(function (_ref) {
|
|
198
|
+
var t = _ref.t,
|
|
199
|
+
name = _ref.name,
|
|
200
|
+
_ref$label = _ref.label,
|
|
201
|
+
label = _ref$label === void 0 ? "" : _ref$label;
|
|
202
|
+
return /*#__PURE__*/React.createElement(FieldArray, {
|
|
203
|
+
name: name
|
|
204
|
+
}, function (arrayHelpers) {
|
|
205
|
+
var allowedKeywords = arrayHelpers.form.values[name];
|
|
206
|
+
var showDeleteButton = allowedKeywords.length > 1 || isNotEmpty(allowedKeywords[0]);
|
|
207
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
208
|
+
className: "space-y-4"
|
|
209
|
+
}, /*#__PURE__*/React.createElement(Label, null, label), /*#__PURE__*/React.createElement("div", {
|
|
210
|
+
className: "neeto-ui-bg-pastel-blue neeto-ui-rounded-sm space-y-4 p-6"
|
|
211
|
+
}, allowedKeywords.map(function (_, index) {
|
|
212
|
+
return /*#__PURE__*/React.createElement(Input, {
|
|
213
|
+
className: "w-full",
|
|
214
|
+
key: index,
|
|
215
|
+
name: "".concat(name, ".").concat(index),
|
|
216
|
+
placeholder: t("neetoAccessControl.inputs.placeholders.enterKeyword"),
|
|
217
|
+
suffix: showDeleteButton && /*#__PURE__*/React.createElement(Button, {
|
|
218
|
+
icon: Delete,
|
|
219
|
+
size: "small",
|
|
220
|
+
style: "text",
|
|
221
|
+
onClick: function onClick() {
|
|
222
|
+
return removeKeyword({
|
|
223
|
+
index: index,
|
|
224
|
+
allowedKeywords: allowedKeywords,
|
|
225
|
+
arrayHelpers: arrayHelpers
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
})
|
|
229
|
+
});
|
|
230
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
231
|
+
className: "pt-2",
|
|
232
|
+
label: t("neetoAccessControl.actions.addKeyword"),
|
|
233
|
+
style: "link",
|
|
234
|
+
onClick: function onClick() {
|
|
235
|
+
return arrayHelpers.push("");
|
|
236
|
+
}
|
|
237
|
+
})));
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
var Configuration = function Configuration(_ref) {
|
|
242
|
+
var ownerId = _ref.ownerId,
|
|
243
|
+
ownerType = _ref.ownerType,
|
|
244
|
+
onReset = _ref.onReset,
|
|
245
|
+
onSuccess = _ref.onSuccess,
|
|
246
|
+
headerProps = _ref.headerProps,
|
|
247
|
+
className = _ref.className;
|
|
248
|
+
var _useTranslation = useTranslation(),
|
|
249
|
+
t = _useTranslation.t;
|
|
250
|
+
var _useShowConfiguration = useShowConfiguration({
|
|
251
|
+
ownerId: ownerId,
|
|
252
|
+
ownerType: ownerType
|
|
253
|
+
}),
|
|
254
|
+
_useShowConfiguration2 = _useShowConfiguration.data,
|
|
255
|
+
configuration = _useShowConfiguration2 === void 0 ? {} : _useShowConfiguration2,
|
|
256
|
+
isLoading = _useShowConfiguration.isLoading;
|
|
257
|
+
var _useUpdateConfigurati = useUpdateConfiguration({
|
|
258
|
+
ownerId: ownerId,
|
|
259
|
+
ownerType: ownerType
|
|
260
|
+
}, {
|
|
261
|
+
onSuccess: onSuccess
|
|
262
|
+
}),
|
|
263
|
+
updateConfiguration = _useUpdateConfigurati.mutate;
|
|
264
|
+
var handleSubmit = function handleSubmit(values, _ref2) {
|
|
265
|
+
var setSubmitting = _ref2.setSubmitting;
|
|
266
|
+
var payload = buildPayload(values);
|
|
267
|
+
updateConfiguration(payload, {
|
|
268
|
+
onSettled: function onSettled() {
|
|
269
|
+
return setSubmitting(false);
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Header, headerProps), isLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(Scrollable, {
|
|
274
|
+
className: "w-full"
|
|
275
|
+
}, /*#__PURE__*/React.createElement(Form, {
|
|
276
|
+
className: classNames("space-y-6", className),
|
|
277
|
+
formikProps: {
|
|
278
|
+
initialValues: buildConfigurationInitialValues(configuration),
|
|
279
|
+
validationSchema: CONFIGURATION_VALIDATION_SCHEMA,
|
|
280
|
+
onSubmit: handleSubmit,
|
|
281
|
+
onReset: onReset,
|
|
282
|
+
enableReinitialize: true
|
|
283
|
+
}
|
|
284
|
+
}, function (_ref3) {
|
|
285
|
+
var values = _ref3.values;
|
|
286
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Label, {
|
|
287
|
+
className: "neeto-ui-text-base"
|
|
288
|
+
}, t("neetoAccessControl.inputs.labels.visibility")), /*#__PURE__*/React.createElement(Radio, {
|
|
289
|
+
stacked: true,
|
|
290
|
+
name: "auth"
|
|
291
|
+
}, AUTH_OPTIONS.map(function (props) {
|
|
292
|
+
return /*#__PURE__*/React.createElement(Radio.Item, _extends({}, props, {
|
|
293
|
+
key: props.value
|
|
294
|
+
}));
|
|
295
|
+
})), values.auth === AUTH.BASIC && /*#__PURE__*/React.createElement("div", {
|
|
296
|
+
className: "space-y-4 pb-2"
|
|
297
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
298
|
+
autoFocus: true,
|
|
299
|
+
required: true,
|
|
300
|
+
unlimitedChars: true,
|
|
301
|
+
className: "w-7/12",
|
|
302
|
+
label: t("neetoAccessControl.inputs.labels.password"),
|
|
303
|
+
name: "password",
|
|
304
|
+
placeholder: t("neetoAccessControl.inputs.placeholders.enterPassword")
|
|
305
|
+
})), values.auth === AUTH.EMAIL && /*#__PURE__*/React.createElement(AllowedKeywords, {
|
|
306
|
+
label: t("neetoAccessControl.inputs.labels.keywords"),
|
|
307
|
+
name: "allowedKeywords"
|
|
308
|
+
}), /*#__PURE__*/React.createElement(ActionBlock, {
|
|
309
|
+
className: "space-x-2"
|
|
310
|
+
}));
|
|
311
|
+
})));
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
export { Configuration };
|
|
315
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../app/javascript/src/constants/index.js","../app/javascript/src/apis/configurations.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useConfigurationsApi.js","../app/javascript/src/components/Configuration/constants.js","../app/javascript/src/components/Configuration/utils.js","../app/javascript/src/components/Configuration/AllowedKeywords.jsx","../app/javascript/src/components/Configuration/index.jsx"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export const ACCESS_CONTROL_BASE_PATH = \"/secure/api/v1\";\n","import axios from \"axios\";\n\nimport { ACCESS_CONTROL_BASE_PATH } from \"src/constants\";\n\nconst configurationPath = `${ACCESS_CONTROL_BASE_PATH}/configuration`;\n\nconst show = params => axios.get(configurationPath, { params });\n\nconst update = ({ ownerId, ownerType, payload }) =>\n axios.put(\n configurationPath,\n { configuration: payload },\n { params: { ownerId, ownerType } }\n );\n\nconst configurationsApi = { show, update };\n\nexport default configurationsApi;\n","export const QUERY_KEYS = {\n ACCESS_CONTROL_CONFIGURATION: \"access-control-configuration\",\n};\n","import { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\nimport { useQuery } from \"react-query\";\n\nimport configurationsApi from \"apis/configurations\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst { ACCESS_CONTROL_CONFIGURATION } = QUERY_KEYS;\n\nexport const useShowConfiguration = ({ ownerId, ownerType }) => {\n const queryKey = [ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId];\n\n return useQuery(\n queryKey,\n () => configurationsApi.show({ ownerType, ownerId }),\n { select: prop(\"configuration\"), staleTime: DEFAULT_STALE_TIME }\n );\n};\n\nexport const useUpdateConfiguration = ({ ownerId, ownerType }, options) =>\n useMutationWithInvalidation(\n payload => configurationsApi.update({ ownerId, ownerType, payload }),\n {\n keysToInvalidate: [[ACCESS_CONTROL_CONFIGURATION, ownerType, ownerId]],\n ...options,\n }\n );\n","import { t } from \"i18next\";\nimport { equals } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const AUTH = {\n NO: \"no\",\n EMAIL: \"email\",\n BASIC: \"basic\",\n SESSION: \"session\",\n};\n\nexport const AUTH_OPTIONS = [\n { label: t(\"neetoAccessControl.auth.no\"), value: AUTH.NO },\n { label: t(\"neetoAccessControl.auth.basic\"), value: AUTH.BASIC },\n { label: t(\"neetoAccessControl.auth.email\"), value: AUTH.EMAIL },\n { label: t(\"neetoAccessControl.auth.session\"), value: AUTH.SESSION },\n];\n\nexport const CONFIGURATION_VALIDATION_SCHEMA = yup.object({\n auth: yup\n .string()\n .required(t(\"neetoAccessControl.inputs.validation.authRequired\")),\n password: yup\n .string()\n .nullable()\n .when(\"auth\", {\n is: equals(AUTH.BASIC),\n then: yup\n .string()\n .nullable()\n .trim()\n .min(4, t(\"neetoAccessControl.inputs.validation.passwordMinLength\"))\n .required(t(\"neetoAccessControl.inputs.validation.passwordRequired\")),\n }),\n allowedKeywords: yup.array(yup.string()),\n});\n","import { isEmpty, pick, pipe, reject, trim } from \"ramda\";\n\nimport { AUTH } from \"./constants\";\n\nexport const buildConfigurationInitialValues = configuration => {\n if (isEmpty(configuration.allowedKeywords)) {\n configuration.allowedKeywords.push(\"\");\n }\n\n return configuration;\n};\n\nexport const removeKeyword = ({ arrayHelpers, index, allowedKeywords }) => {\n if (allowedKeywords.length === 1) {\n arrayHelpers.remove(index);\n arrayHelpers.push(\"\");\n\n return;\n }\n arrayHelpers.remove(index);\n};\n\nexport const buildPayload = values => {\n const payload = pick([\"auth\"], values);\n\n if (values.auth === AUTH.BASIC) {\n payload[\"password\"] = values.password;\n\n return payload;\n }\n\n if (values.auth === AUTH.EMAIL) {\n const rejectEmptyKeywords = reject(pipe(trim, isEmpty));\n payload[\"allowedKeywords\"] = rejectEmptyKeywords(values.allowedKeywords);\n\n return payload;\n }\n\n return payload;\n};\n","import React from \"react\";\n\nimport { FieldArray } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button, Label } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { removeKeyword } from \"./utils\";\n\nconst AllowedKeywords = withT(({ t, name, label = \"\" }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const allowedKeywords = arrayHelpers.form.values[name];\n const showDeleteButton =\n allowedKeywords.length > 1 || isNotEmpty(allowedKeywords[0]);\n\n return (\n <div className=\"space-y-4\">\n <Label>{label}</Label>\n <div className=\"neeto-ui-bg-pastel-blue neeto-ui-rounded-sm space-y-4 p-6\">\n {allowedKeywords.map((_, index) => (\n <Input\n className=\"w-full\"\n key={index}\n name={`${name}.${index}`}\n placeholder={t(\n \"neetoAccessControl.inputs.placeholders.enterKeyword\"\n )}\n suffix={\n showDeleteButton && (\n <Button\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeKeyword({\n index,\n allowedKeywords,\n arrayHelpers,\n })\n }\n />\n )\n }\n />\n ))}\n <Button\n className=\"pt-2\"\n label={t(\"neetoAccessControl.actions.addKeyword\")}\n style=\"link\"\n onClick={() => arrayHelpers.push(\"\")}\n />\n </div>\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default AllowedKeywords;\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport Container from \"neetomolecules/Container\";\nimport Header from \"neetomolecules/Header\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport Scrollable from \"neetomolecules/Scrollable\";\nimport { Label } from \"neetoui\";\nimport { ActionBlock, Form, Input, Radio } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useShowConfiguration,\n useUpdateConfiguration,\n} from \"hooks/reactQuery/useConfigurationsApi\";\n\nimport AllowedKeywords from \"./AllowedKeywords\";\nimport {\n AUTH,\n AUTH_OPTIONS,\n CONFIGURATION_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { buildConfigurationInitialValues, buildPayload } from \"./utils\";\n\nconst Configuration = ({\n ownerId,\n ownerType,\n onReset,\n onSuccess,\n headerProps,\n className,\n}) => {\n const { t } = useTranslation();\n\n const { data: configuration = {}, isLoading } = useShowConfiguration({\n ownerId,\n ownerType,\n });\n\n const { mutate: updateConfiguration } = useUpdateConfiguration(\n { ownerId, ownerType },\n { onSuccess }\n );\n\n const handleSubmit = (values, { setSubmitting }) => {\n const payload = buildPayload(values);\n updateConfiguration(payload, { onSettled: () => setSubmitting(false) });\n };\n\n return (\n <Container>\n <Header {...headerProps} />\n {isLoading ? (\n <PageLoader />\n ) : (\n <Scrollable className=\"w-full\">\n <Form\n className={classNames(\"space-y-6\", className)}\n formikProps={{\n initialValues: buildConfigurationInitialValues(configuration),\n validationSchema: CONFIGURATION_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n onReset,\n enableReinitialize: true,\n }}\n >\n {({ values }) => (\n <>\n <Label className=\"neeto-ui-text-base\">\n {t(\"neetoAccessControl.inputs.labels.visibility\")}\n </Label>\n <Radio stacked name=\"auth\">\n {AUTH_OPTIONS.map(props => (\n <Radio.Item {...props} key={props.value} />\n ))}\n </Radio>\n {values.auth === AUTH.BASIC && (\n <div className=\"space-y-4 pb-2\">\n <Input\n autoFocus\n required\n unlimitedChars\n className=\"w-7/12\"\n label={t(\"neetoAccessControl.inputs.labels.password\")}\n name=\"password\"\n placeholder={t(\n \"neetoAccessControl.inputs.placeholders.enterPassword\"\n )}\n />\n </div>\n )}\n {values.auth === AUTH.EMAIL && (\n <AllowedKeywords\n label={t(\"neetoAccessControl.inputs.labels.keywords\")}\n name=\"allowedKeywords\"\n />\n )}\n <ActionBlock className=\"space-x-2\" />\n </>\n )}\n </Form>\n </Scrollable>\n )}\n </Container>\n );\n};\nexport default Configuration;\n"],"names":["toPrimitive","toPropertyKey","ACCESS_CONTROL_BASE_PATH","configurationPath","concat","show","params","axios","get","update","_ref","ownerId","ownerType","payload","put","configuration","configurationsApi","QUERY_KEYS","ACCESS_CONTROL_CONFIGURATION","useShowConfiguration","queryKey","useQuery","select","prop","staleTime","DEFAULT_STALE_TIME","useUpdateConfiguration","_ref2","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","AUTH","NO","EMAIL","BASIC","SESSION","AUTH_OPTIONS","label","t","value","CONFIGURATION_VALIDATION_SCHEMA","yup","object","auth","string","required","password","nullable","when","is","equals","then","trim","min","allowedKeywords","array","buildConfigurationInitialValues","isEmpty","push","removeKeyword","arrayHelpers","index","length","remove","buildPayload","values","pick","rejectEmptyKeywords","reject","pipe","AllowedKeywords","withT","name","_ref$label","React","createElement","FieldArray","form","showDeleteButton","isNotEmpty","className","Label","map","_","Input","key","placeholder","suffix","Button","icon","Delete","size","style","onClick","Configuration","onReset","onSuccess","headerProps","_useTranslation","useTranslation","_useShowConfiguration","_useShowConfiguration2","data","isLoading","_useUpdateConfigurati","updateConfiguration","mutate","handleSubmit","setSubmitting","onSettled","Container","Header","PageLoader","Scrollable","Form","classNames","formikProps","initialValues","validationSchema","onSubmit","enableReinitialize","_ref3","Fragment","Radio","stacked","props","Item","_extends","autoFocus","unlimitedChars","ActionBlock"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bigbinary/neeto-access-control-frontend",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Neeto access control",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"homepage": "https://github.com/bigbinary/neeto-access-control-nano",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/bigbinary/neeto-access-control-nano/issues"
|
|
9
|
+
},
|
|
10
|
+
"repository": "neeto-access-control-nano",
|
|
11
|
+
"author": "BigBinary",
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"types.d.ts",
|
|
15
|
+
"app/javascript/src/translations"
|
|
16
|
+
],
|
|
17
|
+
"main": "dist/index.cjs.js",
|
|
18
|
+
"module": "dist/index.js",
|
|
19
|
+
"types": "types.d.ts",
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "NODE_ENV=production rollup -c --environment production",
|
|
22
|
+
"build-preview": "NODE_ENV=production webpack",
|
|
23
|
+
"prepare": "husky install",
|
|
24
|
+
"release": "yarn build && yalc push --sig"
|
|
25
|
+
},
|
|
26
|
+
"lint-staged": {
|
|
27
|
+
"./**/*.rb": [
|
|
28
|
+
"bundle exec rubocop -a --force-exclusion"
|
|
29
|
+
],
|
|
30
|
+
"./**/app/javascript/**/*.{js,jsx,json}": [
|
|
31
|
+
"prettier --write",
|
|
32
|
+
"eslint --fix"
|
|
33
|
+
],
|
|
34
|
+
"./test/dummy/**/app/javascript/**/*.{js,jsx,json}": [
|
|
35
|
+
"prettier --write",
|
|
36
|
+
"eslint --fix"
|
|
37
|
+
],
|
|
38
|
+
"{Gemfile,Rakefile,config.ru}": [
|
|
39
|
+
"bundle exec rubocop -a --force-exclusion"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@babel/core": "7.23.2",
|
|
44
|
+
"@babel/eslint-parser": "7.22.15",
|
|
45
|
+
"@babel/plugin-transform-runtime": "7.23.2",
|
|
46
|
+
"@babel/preset-env": "7.23.2",
|
|
47
|
+
"@babel/preset-react": "7.22.15",
|
|
48
|
+
"@babel/preset-typescript": "7.23.2",
|
|
49
|
+
"@babel/runtime": "7.23.2",
|
|
50
|
+
"@bigbinary/babel-preset-neeto": "1.0.6",
|
|
51
|
+
"@bigbinary/eslint-plugin-neeto": "1.5.0",
|
|
52
|
+
"@bigbinary/neeto-audit-frontend": "2.0.9",
|
|
53
|
+
"@bigbinary/neeto-cist": "1.0.8",
|
|
54
|
+
"@bigbinary/neeto-commons-frontend": "3.1.20",
|
|
55
|
+
"@bigbinary/neeto-filters-frontend": "3.1.3",
|
|
56
|
+
"@bigbinary/neeto-icons": "1.17.14",
|
|
57
|
+
"@bigbinary/neeto-molecules": "1.13.2",
|
|
58
|
+
"@bigbinary/neetoui": "6.3.2",
|
|
59
|
+
"@emotion/is-prop-valid": "1.2.0",
|
|
60
|
+
"@faker-js/faker": "8.2.0",
|
|
61
|
+
"@honeybadger-io/js": "6.5.3",
|
|
62
|
+
"@honeybadger-io/react": "6.1.9",
|
|
63
|
+
"@rollup/plugin-alias": "5.0.1",
|
|
64
|
+
"@rollup/plugin-babel": "6.0.4",
|
|
65
|
+
"@rollup/plugin-commonjs": "25.0.7",
|
|
66
|
+
"@rollup/plugin-json": "6.0.1",
|
|
67
|
+
"@rollup/plugin-node-resolve": "15.2.3",
|
|
68
|
+
"@rollup/plugin-replace": "5.0.4",
|
|
69
|
+
"@svgr/rollup": "8.1.0",
|
|
70
|
+
"antd": "5.10.2",
|
|
71
|
+
"autoprefixer": "10.4.16",
|
|
72
|
+
"axios": "1.6.0",
|
|
73
|
+
"babel-loader": "9.1.3",
|
|
74
|
+
"babel-plugin-istanbul": "6.1.1",
|
|
75
|
+
"babel-plugin-js-logger": "1.0.17",
|
|
76
|
+
"babel-plugin-macros": "3.1.0",
|
|
77
|
+
"babel-plugin-preval": "^5.1.0",
|
|
78
|
+
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
|
|
79
|
+
"babel-preset-react": "6.24.1",
|
|
80
|
+
"babel-preset-typescript": "7.0.0-alpha.19",
|
|
81
|
+
"browserify-zlib": "0.2.0",
|
|
82
|
+
"buffer": "6.0.3",
|
|
83
|
+
"classnames": "2.3.2",
|
|
84
|
+
"crypto-browserify": "3.12.0",
|
|
85
|
+
"css-loader": "6.8.1",
|
|
86
|
+
"dompurify": "3.0.2",
|
|
87
|
+
"dotenv-webpack": "^8.0.1",
|
|
88
|
+
"eslint": "8.52.0",
|
|
89
|
+
"eslint-config-prettier": "8.5.0",
|
|
90
|
+
"eslint-plugin-cypress": "2.15.1",
|
|
91
|
+
"eslint-plugin-import": "2.29.0",
|
|
92
|
+
"eslint-plugin-jam3": "0.2.3",
|
|
93
|
+
"eslint-plugin-json": "3.1.0",
|
|
94
|
+
"eslint-plugin-prettier": "4.0.0",
|
|
95
|
+
"eslint-plugin-promise": "6.1.1",
|
|
96
|
+
"eslint-plugin-react": "7.33.2",
|
|
97
|
+
"eslint-plugin-react-hooks": "4.6.0",
|
|
98
|
+
"eslint-plugin-security": "^1.7.1",
|
|
99
|
+
"eslint-plugin-sonarjs": "^0.21.0",
|
|
100
|
+
"eslint-plugin-unused-imports": "3.0.0",
|
|
101
|
+
"eslint-plugin-xss": "^0.1.12",
|
|
102
|
+
"formik": "2.4.5",
|
|
103
|
+
"html-webpack-plugin": "5.5.3",
|
|
104
|
+
"https-browserify": "1.0.0",
|
|
105
|
+
"husky": "8.0.3",
|
|
106
|
+
"i18next": "23.6.0",
|
|
107
|
+
"i18next-browser-languagedetector": "7.0.1",
|
|
108
|
+
"js-logger": "1.6.1",
|
|
109
|
+
"lint-staged": "15.0.2",
|
|
110
|
+
"mini-css-extract-plugin": "2.7.6",
|
|
111
|
+
"mixpanel-browser": "2.47.0",
|
|
112
|
+
"os-browserify": "0.3.0",
|
|
113
|
+
"path-browserify": "1.0.1",
|
|
114
|
+
"postcss": "8.4.31",
|
|
115
|
+
"postcss-import": "15.1.0",
|
|
116
|
+
"postcss-loader": "7.3.3",
|
|
117
|
+
"postcss-preset-env": "9.2.0",
|
|
118
|
+
"prettier": "2.6.2",
|
|
119
|
+
"prettier-plugin-tailwindcss": "0.1.10",
|
|
120
|
+
"process": "0.11.10",
|
|
121
|
+
"qs": "6.11.2",
|
|
122
|
+
"ramda": "0.29.1",
|
|
123
|
+
"react": "18.2.0",
|
|
124
|
+
"react-dom": "18.2.0",
|
|
125
|
+
"react-helmet": "6.1.0",
|
|
126
|
+
"react-i18next": "13.3.1",
|
|
127
|
+
"react-query": "3.39.3",
|
|
128
|
+
"react-router-dom": "5.3.4",
|
|
129
|
+
"react-toastify": "8.2.0",
|
|
130
|
+
"react_ujs": "^3.1.1",
|
|
131
|
+
"rollup": "2.79.1",
|
|
132
|
+
"rollup-plugin-analyzer": "4.0.0",
|
|
133
|
+
"rollup-plugin-cleaner": "1.0.0",
|
|
134
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
135
|
+
"rollup-plugin-peer-deps-external": "2.2.4",
|
|
136
|
+
"rollup-plugin-styles": "4.0.0",
|
|
137
|
+
"sass": "1.69.5",
|
|
138
|
+
"sass-loader": "13.3.2",
|
|
139
|
+
"shakapacker": "6.6.0",
|
|
140
|
+
"stream-browserify": "3.0.0",
|
|
141
|
+
"stream-http": "3.2.0",
|
|
142
|
+
"style-loader": "3.3.3",
|
|
143
|
+
"tailwindcss": "3.4.1",
|
|
144
|
+
"tty-browserify": "0.0.1",
|
|
145
|
+
"url": "0.11.1",
|
|
146
|
+
"util": "0.12.5",
|
|
147
|
+
"vm-browserify": "1.1.2",
|
|
148
|
+
"webpack": "5.88.1",
|
|
149
|
+
"webpack-assets-manifest": "5.1.0",
|
|
150
|
+
"webpack-cli": "5.1.4",
|
|
151
|
+
"webpack-dev-server": "4.15.1",
|
|
152
|
+
"yup": "1.3.2"
|
|
153
|
+
},
|
|
154
|
+
"peerDependencies": {
|
|
155
|
+
"@bigbinary/neeto-cist": "latest",
|
|
156
|
+
"@bigbinary/neeto-commons-frontend": "3.1.20",
|
|
157
|
+
"@bigbinary/neeto-editor": "^1.26.3",
|
|
158
|
+
"@bigbinary/neeto-filters-frontend": "3.1.3",
|
|
159
|
+
"@bigbinary/neeto-icons": "1.17.14",
|
|
160
|
+
"@bigbinary/neeto-molecules": "1.13.2",
|
|
161
|
+
"@bigbinary/neetoui": "6.3.2",
|
|
162
|
+
"@honeybadger-io/js": "^6.5.3",
|
|
163
|
+
"@honeybadger-io/react": "^6.1.9",
|
|
164
|
+
"axios": "^1.6.0",
|
|
165
|
+
"classnames": "^2.3.2",
|
|
166
|
+
"formik": "^2.4.5",
|
|
167
|
+
"i18next": "^23.6.0",
|
|
168
|
+
"js-logger": "^1.6.1",
|
|
169
|
+
"mixpanel-browser": "^2.45.0",
|
|
170
|
+
"ramda": "^0.29.1",
|
|
171
|
+
"react": "^18.2.0",
|
|
172
|
+
"react-dom": "^18.2.0",
|
|
173
|
+
"react-helmet": "^6.1.0",
|
|
174
|
+
"react-i18next": "^13.3.1",
|
|
175
|
+
"react-query": "^3.39.3",
|
|
176
|
+
"react-router-dom": "^5.3.4",
|
|
177
|
+
"react-toastify": "^8.2.0",
|
|
178
|
+
"yup": "^0.32.11",
|
|
179
|
+
"zustand": "4.3.2"
|
|
180
|
+
},
|
|
181
|
+
"resolutions": {
|
|
182
|
+
"postcss": "^8"
|
|
183
|
+
},
|
|
184
|
+
"engines": {
|
|
185
|
+
"node": ">=18.12",
|
|
186
|
+
"npm": ">=9",
|
|
187
|
+
"yarn": ">=1.22"
|
|
188
|
+
},
|
|
189
|
+
"dependencies": {
|
|
190
|
+
"react-router-nav-prompt": "0.4.1",
|
|
191
|
+
"source-map-loader": "^4.0.1",
|
|
192
|
+
"zustand": "4.3.2"
|
|
193
|
+
}
|
|
194
|
+
}
|
package/types.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
interface ConfigurationProps {
|
|
4
|
+
headerProps: { [key: string]: any };
|
|
5
|
+
ownerType?: string;
|
|
6
|
+
ownerId?: string;
|
|
7
|
+
onSubmit?: () => void;
|
|
8
|
+
onReset?: () => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const Configuration = React.FC<ConfigurationProps>;
|