ywana-core8 0.0.986 → 0.0.988
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/dist/index.cjs +88 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +88 -39
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +88 -39
- package/dist/index.umd.js.map +1 -1
- package/package.json +5 -3
- package/src/incubator/task.js +5 -4
- package/src/widgets/login/ResetPasswordBox.js +17 -12
- package/src/widgets/login/ResetPasswordBoxTest.js +24 -0
- package/src/widgets/login/login_commons.js +45 -0
- package/src/widgets/login/login_commons.test.js +51 -0
package/dist/index.umd.js
CHANGED
@@ -175,18 +175,13 @@
|
|
175
175
|
};
|
176
176
|
|
177
177
|
function _extends() {
|
178
|
-
_extends = Object.assign ? Object.assign.bind() : function (
|
179
|
-
for (var
|
180
|
-
var
|
181
|
-
for (var
|
182
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
183
|
-
target[key] = source[key];
|
184
|
-
}
|
185
|
-
}
|
178
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
179
|
+
for (var e = 1; e < arguments.length; e++) {
|
180
|
+
var t = arguments[e];
|
181
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
186
182
|
}
|
187
|
-
return
|
188
|
-
};
|
189
|
-
return _extends.apply(this, arguments);
|
183
|
+
return n;
|
184
|
+
}, _extends.apply(null, arguments);
|
190
185
|
}
|
191
186
|
|
192
187
|
/**
|
@@ -3041,6 +3036,51 @@
|
|
3041
3036
|
}, /*#__PURE__*/React__default["default"].createElement(Text, null, message)) : null));
|
3042
3037
|
};
|
3043
3038
|
|
3039
|
+
function validatePassword(contraseña) {
|
3040
|
+
var error = "";
|
3041
|
+
|
3042
|
+
// Verificar longitud mínima y máxima
|
3043
|
+
if (contraseña.length < 15 || contraseña.length > 50) {
|
3044
|
+
error = 'La contraseña debe tener entre 15 y 50 caracteres.';
|
3045
|
+
return [false, error];
|
3046
|
+
}
|
3047
|
+
|
3048
|
+
// Verificar al menos una letra (mayúscula o minúscula)
|
3049
|
+
if (!/[A-Za-z]/.test(contraseña)) {
|
3050
|
+
error = 'La contraseña debe contener al menos una letra (A-Z o a-z).';
|
3051
|
+
return [false, error];
|
3052
|
+
}
|
3053
|
+
|
3054
|
+
// Verificar al menos un número
|
3055
|
+
if (!/[0-9]/.test(contraseña)) {
|
3056
|
+
error = 'La contraseña debe contener al menos un número (0-9).';
|
3057
|
+
return [false, error];
|
3058
|
+
}
|
3059
|
+
|
3060
|
+
// Verificar al menos una minúscula
|
3061
|
+
if (!/[a-z]/.test(contraseña)) {
|
3062
|
+
error = 'La contraseña debe contener al menos una letra en minúscula (a-z).';
|
3063
|
+
return [false, error];
|
3064
|
+
}
|
3065
|
+
|
3066
|
+
// Verificar al menos una mayúscula
|
3067
|
+
if (!/[A-Z]/.test(contraseña)) {
|
3068
|
+
error = 'La contraseña debe contener al menos una letra en mayúscula (A-Z).';
|
3069
|
+
return [false, error];
|
3070
|
+
}
|
3071
|
+
|
3072
|
+
// Verificar al menos un carácter especial
|
3073
|
+
if (!/[<>+&!?*\-_%\.:=]/.test(contraseña)) {
|
3074
|
+
error = 'La contraseña debe contener al menos un carácter especial (< > + & ! ? * - _ % . : =).';
|
3075
|
+
return [false, error];
|
3076
|
+
}
|
3077
|
+
|
3078
|
+
// Si todas las validaciones pasan
|
3079
|
+
return [true, error];
|
3080
|
+
}
|
3081
|
+
|
3082
|
+
//module.exports = { validatePassword }
|
3083
|
+
|
3044
3084
|
/**
|
3045
3085
|
* Reset Password
|
3046
3086
|
*/
|
@@ -3057,11 +3097,25 @@
|
|
3057
3097
|
var _useState = React.useState({}),
|
3058
3098
|
form = _useState[0],
|
3059
3099
|
setForm = _useState[1];
|
3060
|
-
var _useState2 = React.useState(),
|
3061
|
-
|
3062
|
-
|
3063
|
-
|
3064
|
-
|
3100
|
+
var _useState2 = React.useState(false),
|
3101
|
+
isValid = _useState2[0],
|
3102
|
+
setIsValid = _useState2[1];
|
3103
|
+
var _useState3 = React.useState(),
|
3104
|
+
error = _useState3[0],
|
3105
|
+
setError = _useState3[1];
|
3106
|
+
React.useEffect(function () {
|
3107
|
+
setIsValid(validate());
|
3108
|
+
}, [form.password1, form.password2]);
|
3109
|
+
function validate() {
|
3110
|
+
var hasRequiredUser = userRequired ? form.user && form.user.length > 0 : true;
|
3111
|
+
var hasPassword1 = form.password1 && form.password1.length > 0;
|
3112
|
+
var _ref2 = hasPassword1 ? validatePassword(form.password1) : [false, "La contraseña es requerida."],
|
3113
|
+
isValid = _ref2[0],
|
3114
|
+
error = _ref2[1];
|
3115
|
+
setError(error);
|
3116
|
+
var areEqual = form.password1 === form.password2;
|
3117
|
+
if (isValid && !areEqual) setError("Las contraseñas no coinciden.");
|
3118
|
+
return hasRequiredUser && areEqual && isValid;
|
3065
3119
|
}
|
3066
3120
|
function changeField(id, value) {
|
3067
3121
|
var _Object$assign;
|
@@ -3070,13 +3124,7 @@
|
|
3070
3124
|
}
|
3071
3125
|
function ok() {
|
3072
3126
|
if (onOK && canOK()) {
|
3073
|
-
|
3074
|
-
setError(null);
|
3075
|
-
onOK(form);
|
3076
|
-
} else {
|
3077
|
-
var errorLabel = lang === "EN" ? "Passwords do not match" : "Las claves no coinciden";
|
3078
|
-
setError(errorLabel);
|
3079
|
-
}
|
3127
|
+
onOK(form);
|
3080
3128
|
}
|
3081
3129
|
}
|
3082
3130
|
function close() {
|
@@ -3130,7 +3178,7 @@
|
|
3130
3178
|
}), /*#__PURE__*/React__default["default"].createElement(Button, {
|
3131
3179
|
label: okLabel,
|
3132
3180
|
raised: true,
|
3133
|
-
disabled: !
|
3181
|
+
disabled: !isValid,
|
3134
3182
|
action: ok
|
3135
3183
|
})));
|
3136
3184
|
};
|
@@ -5473,6 +5521,7 @@
|
|
5473
5521
|
listeners = _useState[0],
|
5474
5522
|
setListeners = _useState[1];
|
5475
5523
|
React.useEffect(function () {
|
5524
|
+
if (Object.keys(listeners).length === 0) return;
|
5476
5525
|
var _interval = setInterval(function () {
|
5477
5526
|
try {
|
5478
5527
|
var taskIDs = Object.keys(listeners);
|
@@ -5493,12 +5542,12 @@
|
|
5493
5542
|
};
|
5494
5543
|
}, [listeners]);
|
5495
5544
|
function addListener(taskID, listener) {
|
5496
|
-
var
|
5497
|
-
next[taskID] = listener;
|
5545
|
+
var _extends2;
|
5546
|
+
var next = _extends({}, listeners, (_extends2 = {}, _extends2[taskID] = listener, _extends2));
|
5498
5547
|
setListeners(next);
|
5499
5548
|
}
|
5500
5549
|
function addListeners(newListeners) {
|
5501
|
-
var next =
|
5550
|
+
var next = _extends({}, listeners, newListeners);
|
5502
5551
|
setListeners(next);
|
5503
5552
|
}
|
5504
5553
|
function removeListener(taskID) {
|
@@ -6062,7 +6111,7 @@
|
|
6062
6111
|
site.closeDialog();
|
6063
6112
|
}
|
6064
6113
|
var openDialog = function openDialog() {
|
6065
|
-
site.openDialog(
|
6114
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(ChangePasswordDialog, {
|
6066
6115
|
lang: lang,
|
6067
6116
|
label: label,
|
6068
6117
|
onOK: onOK,
|
@@ -6919,7 +6968,7 @@
|
|
6919
6968
|
}
|
6920
6969
|
});
|
6921
6970
|
}) : [];
|
6922
|
-
if (canDelete) item.actions.push(
|
6971
|
+
if (canDelete) item.actions.push(/*#__PURE__*/React__default["default"].createElement(Icon, {
|
6923
6972
|
icon: "delete",
|
6924
6973
|
size: "small",
|
6925
6974
|
clickable: true,
|
@@ -7529,7 +7578,7 @@
|
|
7529
7578
|
return Promise.reject(e);
|
7530
7579
|
}
|
7531
7580
|
};
|
7532
|
-
site.openDialog(
|
7581
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
7533
7582
|
label: "" + name,
|
7534
7583
|
type: schema,
|
7535
7584
|
onOK: onOK,
|
@@ -8402,7 +8451,7 @@
|
|
8402
8451
|
return Promise.reject(e);
|
8403
8452
|
}
|
8404
8453
|
};
|
8405
|
-
site.openDialog(
|
8454
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
8406
8455
|
label: "Crear " + name,
|
8407
8456
|
type: schema,
|
8408
8457
|
onOK: onOK,
|
@@ -8425,7 +8474,7 @@
|
|
8425
8474
|
return Promise.reject(e);
|
8426
8475
|
}
|
8427
8476
|
};
|
8428
|
-
site.openDialog(
|
8477
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
8429
8478
|
label: "Nueva query",
|
8430
8479
|
type: QUERY,
|
8431
8480
|
onOK: onOK
|
@@ -8913,7 +8962,7 @@
|
|
8913
8962
|
}
|
8914
8963
|
});
|
8915
8964
|
}) : [];
|
8916
|
-
if (canDelete) item.actions.push(
|
8965
|
+
if (canDelete) item.actions.push(/*#__PURE__*/React__default["default"].createElement(Icon, {
|
8917
8966
|
icon: "delete",
|
8918
8967
|
size: "small",
|
8919
8968
|
clickable: true,
|
@@ -9327,7 +9376,7 @@
|
|
9327
9376
|
return Promise.reject(e);
|
9328
9377
|
}
|
9329
9378
|
};
|
9330
|
-
site.openDialog(
|
9379
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
9331
9380
|
label: "Crear " + name,
|
9332
9381
|
type: schema,
|
9333
9382
|
onOK: onOK,
|
@@ -9349,7 +9398,7 @@
|
|
9349
9398
|
return Promise.reject(e);
|
9350
9399
|
}
|
9351
9400
|
};
|
9352
|
-
site.openDialog(
|
9401
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
9353
9402
|
label: "Nueva query",
|
9354
9403
|
type: QUERY,
|
9355
9404
|
onOK: onOK
|
@@ -9865,7 +9914,7 @@
|
|
9865
9914
|
}
|
9866
9915
|
});
|
9867
9916
|
}) : [];
|
9868
|
-
if (canDelete) item.actions.push(
|
9917
|
+
if (canDelete) item.actions.push(/*#__PURE__*/React__default["default"].createElement(Icon, {
|
9869
9918
|
icon: "delete",
|
9870
9919
|
size: "small",
|
9871
9920
|
clickable: true,
|
@@ -10327,7 +10376,7 @@
|
|
10327
10376
|
return Promise.reject(e);
|
10328
10377
|
}
|
10329
10378
|
};
|
10330
|
-
site.openDialog(
|
10379
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
10331
10380
|
label: "Crear " + name,
|
10332
10381
|
type: schema,
|
10333
10382
|
onOK: onOK,
|
@@ -10349,7 +10398,7 @@
|
|
10349
10398
|
return Promise.reject(e);
|
10350
10399
|
}
|
10351
10400
|
};
|
10352
|
-
site.openDialog(
|
10401
|
+
site.openDialog(/*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
10353
10402
|
label: "Nueva query",
|
10354
10403
|
type: QUERY,
|
10355
10404
|
onOK: onOK
|
@@ -10849,7 +10898,7 @@
|
|
10849
10898
|
}
|
10850
10899
|
});
|
10851
10900
|
}) : [];
|
10852
|
-
if (canDelete) item.actions.push(
|
10901
|
+
if (canDelete) item.actions.push(/*#__PURE__*/React__default["default"].createElement(Icon, {
|
10853
10902
|
icon: "delete",
|
10854
10903
|
size: "small",
|
10855
10904
|
clickable: true,
|