@plesk/ui-library 3.27.0 → 3.27.3
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/cjs/components/Dialog/Dialog.js +11 -2
- package/cjs/components/Drawer/DrawerProgress.js +15 -1
- package/cjs/components/FormFieldPassword/FormFieldPassword.js +24 -214
- package/cjs/components/FormFieldPassword/PasswordMeter.js +81 -0
- package/cjs/components/FormFieldPassword/estimatePassword.js +203 -0
- package/cjs/components/FormFieldPassword/generatePassword.js +21 -0
- package/cjs/components/FormFieldPassword/index.js +5 -5
- package/cjs/components/Icon/Icon.js +1 -1
- package/cjs/components/List/List.js +1 -1
- package/cjs/components/ProgressDialog/ProgressDialog.js +2 -1
- package/cjs/components/Rating/images/rating.svg +5 -5
- package/cjs/index.js +1 -1
- package/dist/images/rating.svg +5 -5
- package/dist/plesk-ui-library-rtl.css +1 -1
- package/dist/plesk-ui-library-rtl.css.map +1 -1
- package/dist/plesk-ui-library.css +1 -1
- package/dist/plesk-ui-library.css.map +1 -1
- package/dist/plesk-ui-library.js +336 -309
- package/dist/plesk-ui-library.js.map +1 -1
- package/dist/plesk-ui-library.min.js +5 -5
- package/dist/plesk-ui-library.min.js.map +1 -1
- package/esm/components/Dialog/Dialog.js +11 -2
- package/esm/components/Drawer/DrawerProgress.js +16 -2
- package/esm/components/FormFieldPassword/FormFieldPassword.js +22 -206
- package/esm/components/FormFieldPassword/PasswordMeter.js +61 -0
- package/esm/components/FormFieldPassword/estimatePassword.js +187 -0
- package/esm/components/FormFieldPassword/generatePassword.js +14 -0
- package/esm/components/FormFieldPassword/index.js +3 -2
- package/esm/components/Icon/Icon.js +1 -1
- package/esm/components/List/List.js +1 -1
- package/esm/components/ProgressDialog/ProgressDialog.js +2 -1
- package/esm/components/Rating/images/rating.svg +5 -5
- package/esm/index.js +1 -1
- package/package.json +13 -8
- package/styleguide/build/bundle.f38c467d.js +2 -0
- package/styleguide/build/{bundle.ff1f903a.js.LICENSE.txt → bundle.f38c467d.js.LICENSE.txt} +0 -0
- package/styleguide/images/rating.svg +5 -5
- package/styleguide/index.html +2 -2
- package/types/package.d.ts +5 -0
- package/types/src/components/FormFieldPassword/FormFieldPassword.d.ts +91 -0
- package/types/src/components/FormFieldPassword/PasswordMeter.d.ts +9 -0
- package/types/src/components/FormFieldPassword/estimatePassword.d.ts +13 -0
- package/types/src/components/FormFieldPassword/index.d.ts +2 -0
- package/cjs/components/FormFieldPassword/passwordScore.js +0 -131
- package/esm/components/FormFieldPassword/passwordScore.js +0 -122
- package/styleguide/build/bundle.ff1f903a.js +0 -2
package/dist/plesk-ui-library.js
CHANGED
|
@@ -5753,6 +5753,7 @@ const Dialog = ({
|
|
|
5753
5753
|
closable,
|
|
5754
5754
|
onClose,
|
|
5755
5755
|
closingConfirmation,
|
|
5756
|
+
canClose,
|
|
5756
5757
|
...props
|
|
5757
5758
|
}) => {
|
|
5758
5759
|
const [isVisible, setIsVisible] = (0, _react.useState)(isOpen);
|
|
@@ -5863,8 +5864,8 @@ const Dialog = ({
|
|
|
5863
5864
|
className: (0, _classnames.default)(baseClassName, className),
|
|
5864
5865
|
isOpen: isVisible,
|
|
5865
5866
|
onClose: onCloseWithConfirmation,
|
|
5866
|
-
canCloseOnBackdropClick: closable,
|
|
5867
|
-
canCloseOnEscapePress: closable,
|
|
5867
|
+
canCloseOnBackdropClick: canClose && closable,
|
|
5868
|
+
canCloseOnEscapePress: canClose && closable,
|
|
5868
5869
|
size: size
|
|
5869
5870
|
}, props), (title || subtitle || actions) && /*#__PURE__*/_react.default.createElement("header", {
|
|
5870
5871
|
className: `${baseClassName}__header`
|
|
@@ -5887,6 +5888,7 @@ const Dialog = ({
|
|
|
5887
5888
|
className: `${baseClassName}__header-actions`
|
|
5888
5889
|
}, actions, closable && /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
5889
5890
|
className: `${baseClassName}__header-close`,
|
|
5891
|
+
disabled: !canClose,
|
|
5890
5892
|
ghost: true,
|
|
5891
5893
|
size: "lg",
|
|
5892
5894
|
icon: "cross-mark",
|
|
@@ -5992,6 +5994,12 @@ Dialog.propTypes = {
|
|
|
5992
5994
|
*/
|
|
5993
5995
|
closable: _propTypes.default.bool,
|
|
5994
5996
|
|
|
5997
|
+
/**
|
|
5998
|
+
* Disable close dialog button
|
|
5999
|
+
* @since 4.0.0
|
|
6000
|
+
*/
|
|
6001
|
+
canClose: _propTypes.default.bool,
|
|
6002
|
+
|
|
5995
6003
|
/**
|
|
5996
6004
|
* On close event handler. Called immediately after dialog closed by "cancel" button or "Esc" key.
|
|
5997
6005
|
* @since 0.0.68
|
|
@@ -6035,6 +6043,7 @@ Dialog.defaultProps = {
|
|
|
6035
6043
|
form: undefined,
|
|
6036
6044
|
size: 'md',
|
|
6037
6045
|
closable: true,
|
|
6046
|
+
canClose: true,
|
|
6038
6047
|
onClose: undefined,
|
|
6039
6048
|
closingConfirmation: undefined,
|
|
6040
6049
|
children: undefined,
|
|
@@ -6521,6 +6530,20 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
6521
6530
|
|
|
6522
6531
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6523
6532
|
|
|
6533
|
+
const renderAdditionalButtons = buttons => {
|
|
6534
|
+
const buttonProcessing = button => {
|
|
6535
|
+
if ( /*#__PURE__*/(0, _react.isValidElement)(button) && button.type === _Button.default) {
|
|
6536
|
+
return /*#__PURE__*/(0, _react.cloneElement)(button, {
|
|
6537
|
+
size: 'lg'
|
|
6538
|
+
});
|
|
6539
|
+
}
|
|
6540
|
+
|
|
6541
|
+
return button;
|
|
6542
|
+
};
|
|
6543
|
+
|
|
6544
|
+
return Array.isArray(buttons) ? buttons.map(buttonProcessing) : buttonProcessing(buttons);
|
|
6545
|
+
};
|
|
6546
|
+
|
|
6524
6547
|
class DrawerProgress extends _react.Component {
|
|
6525
6548
|
constructor(...args) {
|
|
6526
6549
|
super(...args);
|
|
@@ -6639,7 +6662,7 @@ class DrawerProgress extends _react.Component {
|
|
|
6639
6662
|
|
|
6640
6663
|
const footer = hasFooter ? /*#__PURE__*/_react.default.createElement("div", {
|
|
6641
6664
|
className: `${baseClassName}__footer`
|
|
6642
|
-
}, buttons, canCancel && /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
6665
|
+
}, renderAdditionalButtons(buttons), canCancel && /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
6643
6666
|
onClick: this.handleCancel,
|
|
6644
6667
|
size: "lg"
|
|
6645
6668
|
}, /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
@@ -8034,10 +8057,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
8034
8057
|
|
|
8035
8058
|
/***/ }),
|
|
8036
8059
|
|
|
8037
|
-
/***/ "./components/FormFieldPassword/FormFieldPassword.
|
|
8038
|
-
|
|
8039
|
-
!*** ./components/FormFieldPassword/FormFieldPassword.
|
|
8040
|
-
|
|
8060
|
+
/***/ "./components/FormFieldPassword/FormFieldPassword.tsx":
|
|
8061
|
+
/*!************************************************************!*\
|
|
8062
|
+
!*** ./components/FormFieldPassword/FormFieldPassword.tsx ***!
|
|
8063
|
+
\************************************************************/
|
|
8041
8064
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
8042
8065
|
|
|
8043
8066
|
"use strict";
|
|
@@ -8046,12 +8069,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
8046
8069
|
Object.defineProperty(exports, "__esModule", ({
|
|
8047
8070
|
value: true
|
|
8048
8071
|
}));
|
|
8049
|
-
exports
|
|
8072
|
+
exports["default"] = void 0;
|
|
8050
8073
|
|
|
8051
8074
|
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
|
|
8052
8075
|
|
|
8053
|
-
var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
|
|
8054
|
-
|
|
8055
8076
|
var _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ "../node_modules/classnames/index.js"));
|
|
8056
8077
|
|
|
8057
8078
|
var _constants = __webpack_require__(/*! ../../constants */ "./constants.js");
|
|
@@ -8062,11 +8083,11 @@ var _FormField = _interopRequireDefault(__webpack_require__(/*! ../FormField */
|
|
|
8062
8083
|
|
|
8063
8084
|
var _Input = _interopRequireDefault(__webpack_require__(/*! ../Input */ "./components/Input/index.tsx"));
|
|
8064
8085
|
|
|
8065
|
-
var _Popover = _interopRequireDefault(__webpack_require__(/*! ../Popover */ "./components/Popover/index.js"));
|
|
8066
|
-
|
|
8067
8086
|
var _Translate = _interopRequireDefault(__webpack_require__(/*! ../Translate */ "./components/Translate/index.js"));
|
|
8068
8087
|
|
|
8069
|
-
var
|
|
8088
|
+
var _PasswordMeter = _interopRequireDefault(__webpack_require__(/*! ./PasswordMeter */ "./components/FormFieldPassword/PasswordMeter.tsx"));
|
|
8089
|
+
|
|
8090
|
+
var _generatePassword = _interopRequireDefault(__webpack_require__(/*! ./generatePassword */ "./components/FormFieldPassword/generatePassword.js"));
|
|
8070
8091
|
|
|
8071
8092
|
var _enUS = _interopRequireDefault(__webpack_require__(/*! ./locale/en-US */ "./components/FormFieldPassword/locale/en-US.js"));
|
|
8072
8093
|
|
|
@@ -8082,25 +8103,10 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
8082
8103
|
|
|
8083
8104
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8084
8105
|
|
|
8085
|
-
const symbolClasses = {
|
|
8086
|
-
upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
|
8087
|
-
lower: 'abcdefghijklmnopqrstuvwxyz',
|
|
8088
|
-
number: '0123456789',
|
|
8089
|
-
special: '!@#$%^&*?_~'
|
|
8090
|
-
};
|
|
8091
|
-
|
|
8092
|
-
const generatePassword = () => {
|
|
8093
|
-
const password = ['upper', 'lower', 'lower', 'lower', 'number', 'number', 'special', 'number', 'upper', 'upper', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower'];
|
|
8094
|
-
return password.sort((a, b) => Math.floor(b.length * Math.random()) - Math.floor(a.length * Math.random())).map(symbolClass => symbolClasses[symbolClass][Math.floor(symbolClasses[symbolClass].length * Math.random())]).join('');
|
|
8095
|
-
};
|
|
8096
8106
|
/**
|
|
8097
8107
|
* `FormFieldPassword` component provides secure way to enter a password.
|
|
8098
8108
|
* @since 0.0.58
|
|
8099
8109
|
*/
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
exports.generatePassword = generatePassword;
|
|
8103
|
-
|
|
8104
8110
|
class FormFieldPassword extends _react.Component {
|
|
8105
8111
|
constructor(...args) {
|
|
8106
8112
|
super(...args);
|
|
@@ -8129,118 +8135,6 @@ class FormFieldPassword extends _react.Component {
|
|
|
8129
8135
|
_defineProperty(this, "handleBlur", this.handleClosePasswordMeter);
|
|
8130
8136
|
}
|
|
8131
8137
|
|
|
8132
|
-
passwordScore(value) {
|
|
8133
|
-
if (!value) {
|
|
8134
|
-
return {
|
|
8135
|
-
intent: null,
|
|
8136
|
-
strength: null,
|
|
8137
|
-
unusedRules: []
|
|
8138
|
-
};
|
|
8139
|
-
}
|
|
8140
|
-
|
|
8141
|
-
const {
|
|
8142
|
-
passwordScoreRules
|
|
8143
|
-
} = this.props;
|
|
8144
|
-
const {
|
|
8145
|
-
score,
|
|
8146
|
-
unusedRules
|
|
8147
|
-
} = (0, _passwordScore.default)(value, passwordScoreRules);
|
|
8148
|
-
let intent = 'success';
|
|
8149
|
-
|
|
8150
|
-
let strength = /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8151
|
-
content: "FormFieldPassword.strengthVeryStrong",
|
|
8152
|
-
fallback: _enUS.default.strengthVeryStrong
|
|
8153
|
-
});
|
|
8154
|
-
|
|
8155
|
-
if (score < 16) {
|
|
8156
|
-
intent = 'danger';
|
|
8157
|
-
strength = /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8158
|
-
content: "FormFieldPassword.strengthVeryWeak",
|
|
8159
|
-
fallback: _enUS.default.strengthVeryWeak
|
|
8160
|
-
});
|
|
8161
|
-
} else if (score < 25) {
|
|
8162
|
-
intent = 'danger';
|
|
8163
|
-
strength = /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8164
|
-
content: "FormFieldPassword.strengthWeak",
|
|
8165
|
-
fallback: _enUS.default.strengthWeak
|
|
8166
|
-
});
|
|
8167
|
-
} else if (score < 35) {
|
|
8168
|
-
intent = 'warning';
|
|
8169
|
-
strength = /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8170
|
-
content: "FormFieldPassword.strengthMedium",
|
|
8171
|
-
fallback: _enUS.default.strengthMedium
|
|
8172
|
-
});
|
|
8173
|
-
} else if (score < 45) {
|
|
8174
|
-
intent = 'success';
|
|
8175
|
-
strength = /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8176
|
-
content: "FormFieldPassword.strengthStrong",
|
|
8177
|
-
fallback: _enUS.default.strengthStrong
|
|
8178
|
-
});
|
|
8179
|
-
}
|
|
8180
|
-
|
|
8181
|
-
return {
|
|
8182
|
-
intent,
|
|
8183
|
-
strength,
|
|
8184
|
-
unusedRules
|
|
8185
|
-
};
|
|
8186
|
-
}
|
|
8187
|
-
|
|
8188
|
-
renderPasswordMeter(value, target) {
|
|
8189
|
-
const {
|
|
8190
|
-
passwordMeterVisible
|
|
8191
|
-
} = this.state;
|
|
8192
|
-
const {
|
|
8193
|
-
passwordMeterProps
|
|
8194
|
-
} = this.props;
|
|
8195
|
-
const {
|
|
8196
|
-
intent,
|
|
8197
|
-
strength,
|
|
8198
|
-
unusedRules
|
|
8199
|
-
} = this.passwordScore(value);
|
|
8200
|
-
return /*#__PURE__*/_react.default.createElement(_Popover.default, _extends({
|
|
8201
|
-
visible: passwordMeterVisible && !!value,
|
|
8202
|
-
target: target,
|
|
8203
|
-
targetRef: this.targetRef,
|
|
8204
|
-
placement: "bottom-right",
|
|
8205
|
-
intent: intent,
|
|
8206
|
-
canCloseOnOutsideClick: false,
|
|
8207
|
-
canCloseOnEscapePress: false,
|
|
8208
|
-
onClose: this.handleClosePasswordMeter
|
|
8209
|
-
}, passwordMeterProps), /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8210
|
-
content: "FormFieldPassword.passwordStrength",
|
|
8211
|
-
fallback: _enUS.default.passwordStrength,
|
|
8212
|
-
params: {
|
|
8213
|
-
strength: /*#__PURE__*/_react.default.createElement("b", null, strength)
|
|
8214
|
-
}
|
|
8215
|
-
}), /*#__PURE__*/_react.default.createElement("br", null), unusedRules.length ? /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8216
|
-
content: "FormFieldPassword.improvePassword",
|
|
8217
|
-
fallback: _enUS.default.improvePassword
|
|
8218
|
-
}), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("ul", null, unusedRules.slice(0, 3).map(({
|
|
8219
|
-
rule
|
|
8220
|
-
}, index) => {
|
|
8221
|
-
const {
|
|
8222
|
-
name
|
|
8223
|
-
} = rule;
|
|
8224
|
-
let {
|
|
8225
|
-
message
|
|
8226
|
-
} = rule;
|
|
8227
|
-
|
|
8228
|
-
if (name && !message) {
|
|
8229
|
-
message = /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8230
|
-
content: `FormFieldPassword.${name}`,
|
|
8231
|
-
fallback: _enUS.default[name]
|
|
8232
|
-
});
|
|
8233
|
-
}
|
|
8234
|
-
|
|
8235
|
-
return /*#__PURE__*/_react.default.createElement("li", {
|
|
8236
|
-
key: name || index.toString()
|
|
8237
|
-
}, message);
|
|
8238
|
-
}))) : /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8239
|
-
content: "FormFieldPassword.yourPasswordIsStrong",
|
|
8240
|
-
fallback: _enUS.default.yourPasswordIsStrong
|
|
8241
|
-
}));
|
|
8242
|
-
}
|
|
8243
|
-
|
|
8244
8138
|
renderGenerateButton({
|
|
8245
8139
|
setValue,
|
|
8246
8140
|
isDisabled
|
|
@@ -8251,7 +8145,7 @@ class FormFieldPassword extends _react.Component {
|
|
|
8251
8145
|
} = this.props;
|
|
8252
8146
|
const generateButtonProps = {
|
|
8253
8147
|
className: `${baseClassName}__button--generate`,
|
|
8254
|
-
onClick: () => setValue(
|
|
8148
|
+
onClick: () => setValue((0, _generatePassword.default)()),
|
|
8255
8149
|
tooltip: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8256
8150
|
content: "FormFieldPassword.generateButtonHint",
|
|
8257
8151
|
fallback: _enUS.default.generateButtonHint
|
|
@@ -8282,12 +8176,15 @@ class FormFieldPassword extends _react.Component {
|
|
|
8282
8176
|
hideGenerateButton,
|
|
8283
8177
|
hidePasswordMeter,
|
|
8284
8178
|
passwordMeterProps,
|
|
8285
|
-
passwordScoreRules,
|
|
8286
8179
|
size,
|
|
8287
8180
|
autoFocus,
|
|
8288
8181
|
autoComplete,
|
|
8289
8182
|
...props
|
|
8290
8183
|
} = this.props;
|
|
8184
|
+
const {
|
|
8185
|
+
visible,
|
|
8186
|
+
passwordMeterVisible
|
|
8187
|
+
} = this.state;
|
|
8291
8188
|
return /*#__PURE__*/_react.default.createElement(_FormField.default, _extends({
|
|
8292
8189
|
className: (0, _classnames.default)(baseClassName, className)
|
|
8293
8190
|
}, props), ({
|
|
@@ -8297,18 +8194,19 @@ class FormFieldPassword extends _react.Component {
|
|
|
8297
8194
|
setValue,
|
|
8298
8195
|
isDisabled
|
|
8299
8196
|
}) => {
|
|
8197
|
+
const value = getValue('');
|
|
8198
|
+
|
|
8300
8199
|
const input = /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
8301
8200
|
id: getId(),
|
|
8302
8201
|
name: getName(),
|
|
8303
|
-
type:
|
|
8304
|
-
value:
|
|
8202
|
+
type: visible ? 'text' : 'password',
|
|
8203
|
+
value: value,
|
|
8305
8204
|
onChange: e => {
|
|
8306
8205
|
setValue(e.target.value);
|
|
8307
8206
|
this.setState({
|
|
8308
8207
|
passwordMeterVisible: true
|
|
8309
8208
|
});
|
|
8310
8209
|
},
|
|
8311
|
-
onFocus: this.handleFocus,
|
|
8312
8210
|
onBlur: this.handleBlur,
|
|
8313
8211
|
autoFocus: autoFocus,
|
|
8314
8212
|
autoComplete: autoComplete,
|
|
@@ -8317,8 +8215,8 @@ class FormFieldPassword extends _react.Component {
|
|
|
8317
8215
|
suffix: hideShowButton ? null : /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
8318
8216
|
className: `${baseClassName}__button--show`,
|
|
8319
8217
|
onClick: this.handleToggleClick,
|
|
8320
|
-
icon:
|
|
8321
|
-
tooltip:
|
|
8218
|
+
icon: visible ? 'visible' : 'invisible',
|
|
8219
|
+
tooltip: visible ? /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8322
8220
|
content: "FormFieldPassword.hidePassword",
|
|
8323
8221
|
fallback: _enUS.default.hidePassword
|
|
8324
8222
|
}) : /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
@@ -8338,7 +8236,12 @@ class FormFieldPassword extends _react.Component {
|
|
|
8338
8236
|
className: (0, _classnames.default)(`${baseClassName}__control`, `${baseClassName}__control--${size}`)
|
|
8339
8237
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
8340
8238
|
className: (0, _classnames.default)(`${baseClassName}__field`, `${baseClassName}__field--${size}`)
|
|
8341
|
-
}, hidePasswordMeter ? input :
|
|
8239
|
+
}, hidePasswordMeter ? input : /*#__PURE__*/_react.default.createElement(_PasswordMeter.default, _extends({
|
|
8240
|
+
value: value,
|
|
8241
|
+
targetRef: this.targetRef,
|
|
8242
|
+
visible: passwordMeterVisible && value !== '',
|
|
8243
|
+
onClose: this.handleClosePasswordMeter
|
|
8244
|
+
}, passwordMeterProps), input)), hideGenerateButton ? null : this.renderGenerateButton({
|
|
8342
8245
|
setValue,
|
|
8343
8246
|
isDisabled
|
|
8344
8247
|
}));
|
|
@@ -8347,98 +8250,28 @@ class FormFieldPassword extends _react.Component {
|
|
|
8347
8250
|
|
|
8348
8251
|
}
|
|
8349
8252
|
|
|
8350
|
-
FormFieldPassword
|
|
8351
|
-
/**
|
|
8352
|
-
* Is show button hidden?
|
|
8353
|
-
* @since 0.0.59
|
|
8354
|
-
*/
|
|
8355
|
-
hideShowButton: _propTypes.default.bool,
|
|
8356
|
-
|
|
8357
|
-
/**
|
|
8358
|
-
* Is generate button hidden?
|
|
8359
|
-
* @since 0.0.59
|
|
8360
|
-
*/
|
|
8361
|
-
hideGenerateButton: _propTypes.default.bool,
|
|
8362
|
-
|
|
8363
|
-
/**
|
|
8364
|
-
* Is password meter hidden?
|
|
8365
|
-
* @since 0.0.59
|
|
8366
|
-
*/
|
|
8367
|
-
hidePasswordMeter: _propTypes.default.bool,
|
|
8368
|
-
|
|
8369
|
-
/**
|
|
8370
|
-
* Additional props for password meter. . See [Popover](#!/Popover) for more information.
|
|
8371
|
-
* @since 1.5.6
|
|
8372
|
-
*/
|
|
8373
|
-
passwordMeterProps: _propTypes.default.object,
|
|
8374
|
-
|
|
8375
|
-
/**
|
|
8376
|
-
* A set of custom password score rules.
|
|
8377
|
-
* @since 3.21.0
|
|
8378
|
-
*/
|
|
8379
|
-
passwordScoreRules: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
8380
|
-
name: _propTypes.default.string,
|
|
8381
|
-
message: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.element]),
|
|
8382
|
-
score: _propTypes.default.func.isRequired
|
|
8383
|
-
})),
|
|
8384
|
-
|
|
8385
|
-
/**
|
|
8386
|
-
* Size of the control
|
|
8387
|
-
* @since 1.5.6
|
|
8388
|
-
*/
|
|
8389
|
-
size: _propTypes.default.oneOf(['md', 'lg', 'xl', 'fill']),
|
|
8390
|
-
|
|
8391
|
-
/**
|
|
8392
|
-
* The browser will automatically focus on the component upon rendering the screen
|
|
8393
|
-
* @since 1.9.0
|
|
8394
|
-
*/
|
|
8395
|
-
autoFocus: _propTypes.default.bool,
|
|
8396
|
-
|
|
8397
|
-
/**
|
|
8398
|
-
* Prevent password autocompletion.
|
|
8399
|
-
* @since 2.5.1
|
|
8400
|
-
*/
|
|
8401
|
-
autoComplete: _propTypes.default.oneOf(['new-password']),
|
|
8402
|
-
|
|
8403
|
-
/**
|
|
8404
|
-
* A render function for customizing the password generation button.
|
|
8405
|
-
* @since 3.13.0
|
|
8406
|
-
*/
|
|
8407
|
-
generateButton: _propTypes.default.func,
|
|
8408
|
-
|
|
8409
|
-
/**
|
|
8410
|
-
* @ignore
|
|
8411
|
-
*/
|
|
8412
|
-
className: _propTypes.default.string,
|
|
8413
|
-
|
|
8414
|
-
/**
|
|
8415
|
-
* @ignore
|
|
8416
|
-
*/
|
|
8417
|
-
baseClassName: _propTypes.default.string
|
|
8418
|
-
};
|
|
8419
|
-
FormFieldPassword.defaultProps = {
|
|
8253
|
+
_defineProperty(FormFieldPassword, "defaultProps", {
|
|
8420
8254
|
hideShowButton: false,
|
|
8421
8255
|
generateButton: undefined,
|
|
8422
8256
|
hideGenerateButton: false,
|
|
8423
8257
|
hidePasswordMeter: false,
|
|
8424
8258
|
passwordMeterProps: {},
|
|
8425
|
-
passwordScoreRules: undefined,
|
|
8426
8259
|
size: 'md',
|
|
8427
8260
|
autoFocus: undefined,
|
|
8428
8261
|
autoComplete: undefined,
|
|
8429
8262
|
className: undefined,
|
|
8430
8263
|
baseClassName: `${_constants.CLS_PREFIX}form-field-password`
|
|
8431
|
-
};
|
|
8432
|
-
|
|
8264
|
+
});
|
|
8265
|
+
|
|
8433
8266
|
var _default = FormFieldPassword;
|
|
8434
8267
|
exports["default"] = _default;
|
|
8435
8268
|
|
|
8436
8269
|
/***/ }),
|
|
8437
8270
|
|
|
8438
|
-
/***/ "./components/FormFieldPassword/
|
|
8439
|
-
|
|
8440
|
-
!*** ./components/FormFieldPassword/
|
|
8441
|
-
|
|
8271
|
+
/***/ "./components/FormFieldPassword/PasswordMeter.tsx":
|
|
8272
|
+
/*!********************************************************!*\
|
|
8273
|
+
!*** ./components/FormFieldPassword/PasswordMeter.tsx ***!
|
|
8274
|
+
\********************************************************/
|
|
8442
8275
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
8443
8276
|
|
|
8444
8277
|
"use strict";
|
|
@@ -8447,74 +8280,89 @@ exports["default"] = _default;
|
|
|
8447
8280
|
Object.defineProperty(exports, "__esModule", ({
|
|
8448
8281
|
value: true
|
|
8449
8282
|
}));
|
|
8450
|
-
|
|
8451
|
-
|
|
8452
|
-
|
|
8453
|
-
return _FormFieldPassword.default;
|
|
8454
|
-
}
|
|
8455
|
-
}));
|
|
8456
|
-
Object.defineProperty(exports, "generatePassword", ({
|
|
8457
|
-
enumerable: true,
|
|
8458
|
-
get: function () {
|
|
8459
|
-
return _FormFieldPassword.generatePassword;
|
|
8460
|
-
}
|
|
8461
|
-
}));
|
|
8283
|
+
exports["default"] = void 0;
|
|
8284
|
+
|
|
8285
|
+
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
|
|
8462
8286
|
|
|
8463
|
-
var
|
|
8287
|
+
var _Popover = _interopRequireDefault(__webpack_require__(/*! ../Popover */ "./components/Popover/index.js"));
|
|
8288
|
+
|
|
8289
|
+
var _Translate = _interopRequireDefault(__webpack_require__(/*! ../Translate */ "./components/Translate/index.js"));
|
|
8290
|
+
|
|
8291
|
+
var _estimatePassword = _interopRequireWildcard(__webpack_require__(/*! ./estimatePassword */ "./components/FormFieldPassword/estimatePassword.tsx"));
|
|
8292
|
+
|
|
8293
|
+
var _enUS = _interopRequireDefault(__webpack_require__(/*! ./locale/en-US */ "./components/FormFieldPassword/locale/en-US.js"));
|
|
8294
|
+
|
|
8295
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8464
8296
|
|
|
8465
8297
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
8466
8298
|
|
|
8467
8299
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
8468
8300
|
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
/***/ "./components/FormFieldPassword/locale/en-US.js":
|
|
8472
|
-
/*!******************************************************!*\
|
|
8473
|
-
!*** ./components/FormFieldPassword/locale/en-US.js ***!
|
|
8474
|
-
\******************************************************/
|
|
8475
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
8301
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
8476
8302
|
|
|
8477
|
-
|
|
8303
|
+
const strengthIntents = {
|
|
8304
|
+
VeryWeak: 'danger',
|
|
8305
|
+
Weak: 'danger',
|
|
8306
|
+
Medium: 'warning',
|
|
8307
|
+
Strong: 'success',
|
|
8308
|
+
VeryStrong: 'success'
|
|
8309
|
+
};
|
|
8478
8310
|
|
|
8311
|
+
const PasswordMeter = ({
|
|
8312
|
+
value,
|
|
8313
|
+
visible,
|
|
8314
|
+
onEstimate,
|
|
8315
|
+
children,
|
|
8316
|
+
...props
|
|
8317
|
+
}) => {
|
|
8318
|
+
const [result, setResult] = (0, _react.useState)(null);
|
|
8319
|
+
(0, _react.useEffect)(() => {
|
|
8320
|
+
if (!visible) {
|
|
8321
|
+
return;
|
|
8322
|
+
}
|
|
8479
8323
|
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
})
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
|
|
8486
|
-
|
|
8487
|
-
|
|
8488
|
-
|
|
8489
|
-
|
|
8490
|
-
|
|
8491
|
-
|
|
8492
|
-
|
|
8493
|
-
|
|
8494
|
-
|
|
8495
|
-
|
|
8496
|
-
|
|
8497
|
-
|
|
8498
|
-
|
|
8499
|
-
|
|
8500
|
-
|
|
8501
|
-
|
|
8502
|
-
|
|
8503
|
-
|
|
8504
|
-
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8324
|
+
Promise.resolve(onEstimate ? onEstimate(value, _estimatePassword.default, _estimatePassword.DEFAULT_RULES) : (0, _estimatePassword.default)(value)).then(result => {
|
|
8325
|
+
setResult(result);
|
|
8326
|
+
});
|
|
8327
|
+
}, [visible, value, onEstimate]);
|
|
8328
|
+
return /*#__PURE__*/_react.default.createElement(_Popover.default, _extends({
|
|
8329
|
+
visible: visible && result !== null,
|
|
8330
|
+
target: children,
|
|
8331
|
+
placement: "bottom-right",
|
|
8332
|
+
intent: result ? strengthIntents[result.strength] : undefined,
|
|
8333
|
+
canCloseOnOutsideClick: false,
|
|
8334
|
+
canCloseOnEscapePress: false
|
|
8335
|
+
}, props), result !== null && result !== void 0 && result.strength ? /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8336
|
+
component: "div",
|
|
8337
|
+
content: "FormFieldPassword.passwordStrength",
|
|
8338
|
+
fallback: _enUS.default.passwordStrength,
|
|
8339
|
+
params: {
|
|
8340
|
+
strength: /*#__PURE__*/_react.default.createElement("b", null, /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8341
|
+
content: `FormFieldPassword.strength${result === null || result === void 0 ? void 0 : result.strength}`,
|
|
8342
|
+
fallback: _enUS.default[`strength${result === null || result === void 0 ? void 0 : result.strength}`]
|
|
8343
|
+
}))
|
|
8344
|
+
}
|
|
8345
|
+
}) : null, result !== null && result !== void 0 && result.suggestions.length ? /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8346
|
+
content: "FormFieldPassword.improvePassword",
|
|
8347
|
+
fallback: _enUS.default.improvePassword
|
|
8348
|
+
}), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("ul", null, result.suggestions.slice(0, 3).map((suggestion, index) => /*#__PURE__*/_react.default.createElement("li", {
|
|
8349
|
+
key: index.toString()
|
|
8350
|
+
}, suggestion)))) : /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8351
|
+
content: "FormFieldPassword.yourPasswordIsStrong",
|
|
8352
|
+
fallback: _enUS.default.yourPasswordIsStrong
|
|
8353
|
+
}));
|
|
8508
8354
|
};
|
|
8355
|
+
|
|
8356
|
+
var _default = PasswordMeter;
|
|
8509
8357
|
exports["default"] = _default;
|
|
8510
8358
|
|
|
8511
8359
|
/***/ }),
|
|
8512
8360
|
|
|
8513
|
-
/***/ "./components/FormFieldPassword/
|
|
8514
|
-
|
|
8515
|
-
!*** ./components/FormFieldPassword/
|
|
8516
|
-
|
|
8517
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
8361
|
+
/***/ "./components/FormFieldPassword/estimatePassword.tsx":
|
|
8362
|
+
/*!***********************************************************!*\
|
|
8363
|
+
!*** ./components/FormFieldPassword/estimatePassword.tsx ***!
|
|
8364
|
+
\***********************************************************/
|
|
8365
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
8518
8366
|
|
|
8519
8367
|
"use strict";
|
|
8520
8368
|
|
|
@@ -8522,32 +8370,23 @@ exports["default"] = _default;
|
|
|
8522
8370
|
Object.defineProperty(exports, "__esModule", ({
|
|
8523
8371
|
value: true
|
|
8524
8372
|
}));
|
|
8525
|
-
exports["default"] = exports.
|
|
8373
|
+
exports["default"] = exports.DEFAULT_RULES = void 0;
|
|
8526
8374
|
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8530
|
-
|
|
8531
|
-
|
|
8532
|
-
|
|
8533
|
-
|
|
8534
|
-
if (mark < 0) {
|
|
8535
|
-
unusedRules.push({
|
|
8536
|
-
rule,
|
|
8537
|
-
value: -mark
|
|
8538
|
-
});
|
|
8539
|
-
} else {
|
|
8540
|
-
score += mark;
|
|
8541
|
-
}
|
|
8542
|
-
});
|
|
8543
|
-
return {
|
|
8544
|
-
score,
|
|
8545
|
-
unusedRules
|
|
8546
|
-
};
|
|
8547
|
-
};
|
|
8375
|
+
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
|
|
8376
|
+
|
|
8377
|
+
var _Translate = _interopRequireDefault(__webpack_require__(/*! ../Translate */ "./components/Translate/index.js"));
|
|
8378
|
+
|
|
8379
|
+
var _enUS = _interopRequireDefault(__webpack_require__(/*! ./locale/en-US */ "./components/FormFieldPassword/locale/en-US.js"));
|
|
8380
|
+
|
|
8381
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8548
8382
|
|
|
8549
|
-
|
|
8383
|
+
// Copyright 1999-2022. Plesk International GmbH. All rights reserved.
|
|
8384
|
+
const DEFAULT_RULES = [{
|
|
8550
8385
|
name: 'passwordTooShort',
|
|
8386
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8387
|
+
content: `FormFieldPassword.passwordTooShort`,
|
|
8388
|
+
fallback: _enUS.default.passwordTooShort
|
|
8389
|
+
}),
|
|
8551
8390
|
|
|
8552
8391
|
score(passwd) {
|
|
8553
8392
|
return passwd.length < 5 ? -1 : 0;
|
|
@@ -8574,6 +8413,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8574
8413
|
|
|
8575
8414
|
}, {
|
|
8576
8415
|
name: 'lettersLowerCase',
|
|
8416
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8417
|
+
content: `FormFieldPassword.lettersLowerCase`,
|
|
8418
|
+
fallback: _enUS.default.lettersLowerCase
|
|
8419
|
+
}),
|
|
8577
8420
|
|
|
8578
8421
|
score(passwd) {
|
|
8579
8422
|
// [verified] at least one lower case letter
|
|
@@ -8582,6 +8425,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8582
8425
|
|
|
8583
8426
|
}, {
|
|
8584
8427
|
name: 'lettersUpperCase',
|
|
8428
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8429
|
+
content: `FormFieldPassword.lettersUpperCase`,
|
|
8430
|
+
fallback: _enUS.default.lettersUpperCase
|
|
8431
|
+
}),
|
|
8585
8432
|
|
|
8586
8433
|
score(passwd) {
|
|
8587
8434
|
// [verified] at least one upper case letter
|
|
@@ -8590,6 +8437,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8590
8437
|
|
|
8591
8438
|
}, {
|
|
8592
8439
|
name: 'numbers1',
|
|
8440
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8441
|
+
content: `FormFieldPassword.numbers1`,
|
|
8442
|
+
fallback: _enUS.default.numbers1
|
|
8443
|
+
}),
|
|
8593
8444
|
|
|
8594
8445
|
score(passwd) {
|
|
8595
8446
|
// [verified] at least one number
|
|
@@ -8598,6 +8449,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8598
8449
|
|
|
8599
8450
|
}, {
|
|
8600
8451
|
name: 'numbers3',
|
|
8452
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8453
|
+
content: `FormFieldPassword.numbers3`,
|
|
8454
|
+
fallback: _enUS.default.numbers3
|
|
8455
|
+
}),
|
|
8601
8456
|
|
|
8602
8457
|
score(passwd) {
|
|
8603
8458
|
// [verified] at least three numbers
|
|
@@ -8606,6 +8461,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8606
8461
|
|
|
8607
8462
|
}, {
|
|
8608
8463
|
name: 'specialChar1',
|
|
8464
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8465
|
+
content: `FormFieldPassword.specialChar1`,
|
|
8466
|
+
fallback: _enUS.default.specialChar1
|
|
8467
|
+
}),
|
|
8609
8468
|
|
|
8610
8469
|
score(passwd) {
|
|
8611
8470
|
// [verified] at least one special character
|
|
@@ -8614,6 +8473,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8614
8473
|
|
|
8615
8474
|
}, {
|
|
8616
8475
|
name: 'specialChar2',
|
|
8476
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8477
|
+
content: `FormFieldPassword.specialChar2`,
|
|
8478
|
+
fallback: _enUS.default.specialChar2
|
|
8479
|
+
}),
|
|
8617
8480
|
|
|
8618
8481
|
score(passwd) {
|
|
8619
8482
|
// [verified] at least two special characters
|
|
@@ -8622,6 +8485,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8622
8485
|
|
|
8623
8486
|
}, {
|
|
8624
8487
|
name: 'comboUpperAndLower',
|
|
8488
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8489
|
+
content: `FormFieldPassword.comboUpperAndLower`,
|
|
8490
|
+
fallback: _enUS.default.comboUpperAndLower
|
|
8491
|
+
}),
|
|
8625
8492
|
|
|
8626
8493
|
score(passwd) {
|
|
8627
8494
|
// [verified] both upper and lower case
|
|
@@ -8630,6 +8497,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8630
8497
|
|
|
8631
8498
|
}, {
|
|
8632
8499
|
name: 'comboLettersAndNumbers',
|
|
8500
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8501
|
+
content: `FormFieldPassword.comboLettersAndNumbers`,
|
|
8502
|
+
fallback: _enUS.default.comboLettersAndNumbers
|
|
8503
|
+
}),
|
|
8633
8504
|
|
|
8634
8505
|
score(passwd) {
|
|
8635
8506
|
// [verified] both letters and numbers
|
|
@@ -8638,6 +8509,10 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8638
8509
|
|
|
8639
8510
|
}, {
|
|
8640
8511
|
name: 'comboLettersNumbersSpecial',
|
|
8512
|
+
suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
8513
|
+
content: `FormFieldPassword.comboLettersNumbersSpecial`,
|
|
8514
|
+
fallback: _enUS.default.comboLettersNumbersSpecial
|
|
8515
|
+
}),
|
|
8641
8516
|
|
|
8642
8517
|
score(passwd) {
|
|
8643
8518
|
// [verified] letters, numbers, and special characters
|
|
@@ -8645,8 +8520,159 @@ const PASSWORD_SCORE_RULES = [{
|
|
|
8645
8520
|
}
|
|
8646
8521
|
|
|
8647
8522
|
}];
|
|
8648
|
-
exports.
|
|
8649
|
-
|
|
8523
|
+
exports.DEFAULT_RULES = DEFAULT_RULES;
|
|
8524
|
+
|
|
8525
|
+
var _default = (password, rules = DEFAULT_RULES) => {
|
|
8526
|
+
const suggestions = [];
|
|
8527
|
+
let passwordScore = 0;
|
|
8528
|
+
rules.forEach(({
|
|
8529
|
+
suggestion,
|
|
8530
|
+
score
|
|
8531
|
+
}) => {
|
|
8532
|
+
const ruleScore = score(password);
|
|
8533
|
+
|
|
8534
|
+
if (ruleScore < 0 && suggestion) {
|
|
8535
|
+
suggestions.push(suggestion);
|
|
8536
|
+
} else {
|
|
8537
|
+
passwordScore += ruleScore;
|
|
8538
|
+
}
|
|
8539
|
+
});
|
|
8540
|
+
let strength;
|
|
8541
|
+
|
|
8542
|
+
switch (true) {
|
|
8543
|
+
case passwordScore < 16:
|
|
8544
|
+
strength = 'VeryWeak';
|
|
8545
|
+
break;
|
|
8546
|
+
|
|
8547
|
+
case passwordScore < 25:
|
|
8548
|
+
strength = 'Weak';
|
|
8549
|
+
break;
|
|
8550
|
+
|
|
8551
|
+
case passwordScore < 35:
|
|
8552
|
+
strength = 'Medium';
|
|
8553
|
+
break;
|
|
8554
|
+
|
|
8555
|
+
case passwordScore < 45:
|
|
8556
|
+
strength = 'Strong';
|
|
8557
|
+
break;
|
|
8558
|
+
|
|
8559
|
+
default:
|
|
8560
|
+
strength = 'VeryStrong';
|
|
8561
|
+
break;
|
|
8562
|
+
}
|
|
8563
|
+
|
|
8564
|
+
return {
|
|
8565
|
+
strength,
|
|
8566
|
+
suggestions
|
|
8567
|
+
};
|
|
8568
|
+
};
|
|
8569
|
+
|
|
8570
|
+
exports["default"] = _default;
|
|
8571
|
+
|
|
8572
|
+
/***/ }),
|
|
8573
|
+
|
|
8574
|
+
/***/ "./components/FormFieldPassword/generatePassword.js":
|
|
8575
|
+
/*!**********************************************************!*\
|
|
8576
|
+
!*** ./components/FormFieldPassword/generatePassword.js ***!
|
|
8577
|
+
\**********************************************************/
|
|
8578
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
8579
|
+
|
|
8580
|
+
"use strict";
|
|
8581
|
+
|
|
8582
|
+
|
|
8583
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
8584
|
+
value: true
|
|
8585
|
+
}));
|
|
8586
|
+
exports["default"] = void 0;
|
|
8587
|
+
// Copyright 1999-2022. Plesk International GmbH. All rights reserved.
|
|
8588
|
+
const symbolClasses = {
|
|
8589
|
+
upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
|
8590
|
+
lower: 'abcdefghijklmnopqrstuvwxyz',
|
|
8591
|
+
number: '0123456789',
|
|
8592
|
+
special: '!@#$%^&*?_~'
|
|
8593
|
+
};
|
|
8594
|
+
|
|
8595
|
+
const generatePassword = () => {
|
|
8596
|
+
const password = ['upper', 'upper', 'upper', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower', 'number', 'number', 'number', 'special', 'special'];
|
|
8597
|
+
return password.sort((a, b) => Math.floor(b.length * Math.random()) - Math.floor(a.length * Math.random())).map(symbolClass => symbolClasses[symbolClass][Math.floor(symbolClasses[symbolClass].length * Math.random())]).join('');
|
|
8598
|
+
};
|
|
8599
|
+
|
|
8600
|
+
var _default = generatePassword;
|
|
8601
|
+
exports["default"] = _default;
|
|
8602
|
+
|
|
8603
|
+
/***/ }),
|
|
8604
|
+
|
|
8605
|
+
/***/ "./components/FormFieldPassword/index.tsx":
|
|
8606
|
+
/*!************************************************!*\
|
|
8607
|
+
!*** ./components/FormFieldPassword/index.tsx ***!
|
|
8608
|
+
\************************************************/
|
|
8609
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
8610
|
+
|
|
8611
|
+
"use strict";
|
|
8612
|
+
|
|
8613
|
+
|
|
8614
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
8615
|
+
value: true
|
|
8616
|
+
}));
|
|
8617
|
+
Object.defineProperty(exports, "default", ({
|
|
8618
|
+
enumerable: true,
|
|
8619
|
+
get: function () {
|
|
8620
|
+
return _FormFieldPassword.default;
|
|
8621
|
+
}
|
|
8622
|
+
}));
|
|
8623
|
+
Object.defineProperty(exports, "generatePassword", ({
|
|
8624
|
+
enumerable: true,
|
|
8625
|
+
get: function () {
|
|
8626
|
+
return _generatePassword.default;
|
|
8627
|
+
}
|
|
8628
|
+
}));
|
|
8629
|
+
|
|
8630
|
+
var _FormFieldPassword = _interopRequireDefault(__webpack_require__(/*! ./FormFieldPassword */ "./components/FormFieldPassword/FormFieldPassword.tsx"));
|
|
8631
|
+
|
|
8632
|
+
var _generatePassword = _interopRequireDefault(__webpack_require__(/*! ./generatePassword */ "./components/FormFieldPassword/generatePassword.js"));
|
|
8633
|
+
|
|
8634
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8635
|
+
|
|
8636
|
+
/***/ }),
|
|
8637
|
+
|
|
8638
|
+
/***/ "./components/FormFieldPassword/locale/en-US.js":
|
|
8639
|
+
/*!******************************************************!*\
|
|
8640
|
+
!*** ./components/FormFieldPassword/locale/en-US.js ***!
|
|
8641
|
+
\******************************************************/
|
|
8642
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
8643
|
+
|
|
8644
|
+
"use strict";
|
|
8645
|
+
|
|
8646
|
+
|
|
8647
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
8648
|
+
value: true
|
|
8649
|
+
}));
|
|
8650
|
+
exports["default"] = void 0;
|
|
8651
|
+
// Copyright 1999-2017. Plesk International GmbH. All rights reserved.
|
|
8652
|
+
var _default = {
|
|
8653
|
+
improvePassword: 'To improve your password:',
|
|
8654
|
+
passwordTooShort: 'Make the password longer.',
|
|
8655
|
+
lettersLowerCase: 'Use at least one lower-case character.',
|
|
8656
|
+
lettersUpperCase: 'Use at least one upper-case character.',
|
|
8657
|
+
numbers1: 'Use at least one number.',
|
|
8658
|
+
numbers3: 'Use at least three numbers.',
|
|
8659
|
+
specialChar1: 'Use at least one special character (for example: !, @, #, $, % ,^, &, *, ?, _, ~).',
|
|
8660
|
+
specialChar2: 'Use at least two special characters (for example: !, @, #, $, %, ^, &, *, ?, _, ~).',
|
|
8661
|
+
comboUpperAndLower: 'Use both upper and lower-case characters.',
|
|
8662
|
+
comboLettersAndNumbers: 'Use both numbers and characters.',
|
|
8663
|
+
comboLettersNumbersSpecial: 'Use numbers, characters and special characters.',
|
|
8664
|
+
yourPasswordIsStrong: 'You can make it even stronger by increasing its length.',
|
|
8665
|
+
passwordStrength: 'The password strength is %%strength%%.',
|
|
8666
|
+
strengthVeryStrong: 'VERY STRONG',
|
|
8667
|
+
strengthStrong: 'STRONG',
|
|
8668
|
+
strengthVeryWeak: 'VERY WEAK',
|
|
8669
|
+
strengthWeak: 'WEAK',
|
|
8670
|
+
strengthMedium: 'MEDIUM',
|
|
8671
|
+
hidePassword: 'Hide password',
|
|
8672
|
+
showPassword: 'Show password',
|
|
8673
|
+
generateButton: 'Generate',
|
|
8674
|
+
generateButtonHint: 'Generate a strong password'
|
|
8675
|
+
};
|
|
8650
8676
|
exports["default"] = _default;
|
|
8651
8677
|
|
|
8652
8678
|
/***/ }),
|
|
@@ -11234,7 +11260,7 @@ const Icon = ({
|
|
|
11234
11260
|
}, props), newName ? /*#__PURE__*/_react.default.createElement("svg", {
|
|
11235
11261
|
focusable: "false"
|
|
11236
11262
|
}, /*#__PURE__*/_react.default.createElement("use", {
|
|
11237
|
-
|
|
11263
|
+
href: getHref(newName, newSize)
|
|
11238
11264
|
})) : src && /*#__PURE__*/_react.default.createElement("img", {
|
|
11239
11265
|
src: src,
|
|
11240
11266
|
alt: alt
|
|
@@ -15049,7 +15075,7 @@ class List extends _react.Component {
|
|
|
15049
15075
|
[`${baseClassName}__table--vertical`]: vertical,
|
|
15050
15076
|
[`${baseClassName}__table--reorderable`]: reorderable
|
|
15051
15077
|
})
|
|
15052
|
-
},
|
|
15078
|
+
}, reorderableProps), hasTitle && /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", {
|
|
15053
15079
|
className: (0, _classnames.default)(`${baseClassName}__table-thead`, {
|
|
15054
15080
|
[`${baseClassName}__row--expanded`]: this.isAllRowsExpanded(data, this.state.expandedRows)
|
|
15055
15081
|
})
|
|
@@ -19902,7 +19928,8 @@ class ProgressDialog extends _react.Component {
|
|
|
19902
19928
|
}, props, {
|
|
19903
19929
|
isOpen: isOpen,
|
|
19904
19930
|
onClose: this.handleClose,
|
|
19905
|
-
closable: canClose || canCancel
|
|
19931
|
+
closable: canClose || canCancel,
|
|
19932
|
+
canClose: canClose
|
|
19906
19933
|
}), description && /*#__PURE__*/_react.default.createElement("div", {
|
|
19907
19934
|
className: `${baseClassName}__description`
|
|
19908
19935
|
}, description), /*#__PURE__*/_react.default.createElement(_Progress.default, {
|
|
@@ -28775,7 +28802,7 @@ var _FormField = _interopRequireDefault(__webpack_require__(/*! ./FormField */ "
|
|
|
28775
28802
|
|
|
28776
28803
|
var _FormFieldCheckbox = _interopRequireDefault(__webpack_require__(/*! ./FormFieldCheckbox */ "./components/FormFieldCheckbox/index.js"));
|
|
28777
28804
|
|
|
28778
|
-
var _FormFieldPassword = _interopRequireWildcard(__webpack_require__(/*! ./FormFieldPassword */ "./components/FormFieldPassword/index.
|
|
28805
|
+
var _FormFieldPassword = _interopRequireWildcard(__webpack_require__(/*! ./FormFieldPassword */ "./components/FormFieldPassword/index.tsx"));
|
|
28779
28806
|
|
|
28780
28807
|
Object.keys(_FormFieldPassword).forEach(function (key) {
|
|
28781
28808
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -92252,7 +92279,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
92252
92279
|
/***/ ((module) => {
|
|
92253
92280
|
|
|
92254
92281
|
"use strict";
|
|
92255
|
-
module.exports = JSON.parse('{"name":"@plesk/ui-library","version":"3.27.
|
|
92282
|
+
module.exports = JSON.parse('{"name":"@plesk/ui-library","version":"3.27.3","description":"Plesk UI Library","main":"index.js","module":"esm/index.js","types":"./types/src","sideEffects":["cjs/index.js","esm/index.js","dist/*.js","dist/*.css"],"scripts":{"pretest":"yarn lint","test":"jest --ci --coverage --coverageReporters text-summary","test:vr":"cross-env VISUAL_REGRESSION=true jest","build":"yarn build:types && yarn build:umd && yarn build:esm && yarn build:cjs","build:umd":"webpack --config ./configs/build.config.js","build:esm":"cross-env NODE_ENV=esm node ./scripts/build.js","build:cjs":"cross-env NODE_ENV=cjs node ./scripts/build.js","build:types":"rimraf ./types && tsc --project ./configs/types-generator.config.json","create-svg-sprite":"node ./scripts/create-svg-sprite.js","lint":"yarn lint:es && yarn lint:types && yarn lint:style","lint:es":"eslint --ext js,md,tsx src configs scripts styleguidist","lint:types":"tsc","lint:style":"stylelint \\"src/**/*.less\\"","styleguide":"styleguidist server --config ./configs/styleguide.config.js","styleguide:build":"styleguidist build --config ./configs/styleguide.config.js","create-component":"node scripts/create-component.js","prepublishOnly":"yarn install && yarn test && yarn build && yarn styleguide:build","storybook":"webpack serve --config ./configs/storybook.config.js","postinstall":"node ./scripts/postinstall.js"},"files":["esm","cjs","dist","styleguide","types","/scripts/postinstall.js","/index.js"],"dependencies":{"@babel/runtime":"^7.15.4","@plesk/react-movable":"^2.6.0","@types/classnames":"2.2.7","@types/react":"16.8.13","@types/react-dom":"16.8.4","@types/react-measure":"2.0.8","@types/react-transition-group":"^4.4.4","@types/svg4everybody":"2.1.0","classnames":"^2.3.1","codemirror":"5.48.0","marked":"0.3.19","memoize-one":"^5.1.1","popper.js":"1.14.3","prop-types":"^15.7.2","react-measure":"2.3.0","react-sortable-hoc":"0.6.8","react-transition-group":"^4.4.2","scroll-into-view-if-needed":"^2.2.20","svg4everybody":"2.1.9","use-focus-visible":"^1.0.0"},"devDependencies":{"@babel/core":"^7.15.8","@babel/plugin-proposal-class-properties":"^7.14.5","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-runtime":"^7.15.8","@babel/preset-env":"^7.15.8","@babel/preset-react":"^7.14.5","@babel/preset-typescript":"^7.15.0","@plesk/eslint-config":"^1.1.0","@plesk/stylelint-config":"^1.0.0","@types/buble":"^0.19.2","@types/cheerio":"^0.22.30","@types/doctrine":"^0.0.3","@types/enzyme":"^3.10.9","@types/jest":"^23.3.12","@types/webpack-dev-server":"^3.10.1","@typescript-eslint/eslint-plugin":"^2.7.0","@typescript-eslint/parser":"^2.7.0","autoprefixer":"^10.3.7","babel-loader":"^8.2.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-transform-require-ignore":"^0.1.1","clean-webpack-plugin":"^4.0.0","cross-env":"^5.2.0","css-loader":"^6.4.0","css-minimizer-webpack-plugin":"^3.1.1","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.6","enzyme-to-json":"^3.6.2","eslint-config-prettier":"^6.11.0","eslint-plugin-markdown":"^1.0.2","eslint-plugin-prettier":"^3.1.3","expect-puppeteer":"^4.4.0","fs-extra":"^7.0.0","html-webpack-plugin":"^5.5.0","inquirer":"^3.2.1","jest":"^24.9.0","jest-dev-server":"^4.4.0","jest-image-snapshot":"^4.0.2","less":"^4.1.2","less-loader":"^10.2.0","mini-css-extract-plugin":"^2.4.3","postcss":"^8.4.6","postcss-less":"^6.0.0","postcss-loader":"^6.2.1","postcss-logical":"^5.0.3","prettier":"^2.0.5","puppeteer-core":"^5.2.1","react":"^16.8.6","react-dom":"^16.8.6","react-styleguidist":"^11.1.7","react-test-renderer":"^16.8.6","rimraf":"^3.0.1","rtlcss":"^3.4.0","style-loader":"^3.3.1","stylelint":"^14.3.0","stylelint-config-prettier":"^9.0.3","stylelint-declaration-block-no-ignored-properties":"^2.5.0","stylelint-no-unsupported-browser-features":"^5.0.2","stylelint-prettier":"^2.0.0","stylelint-use-logical-spec":"^3.2.2","svg-mixer":"^2.3.14","terser-webpack-plugin":"^5.2.4","typescript":"^3.7.2","webpack":"^5.60.0","webpack-cli":"^4.9.1"},"peerDependencies":{"react":"^16.8.6","react-dom":"^16.8.6"},"resolutions":{"@babel/types":"^7.15.6","@types/node":"^12.12.8","**/caniuse-lite":"1.0.30001307"},"browserslist":["last 2 versions",">1%","not op_mini all","not dead","not ie 11"],"author":"Plesk Developers <plesk-dev-leads@plesk.com> (https://www.plesk.com/)","license":"Apache-2.0"}');
|
|
92256
92283
|
|
|
92257
92284
|
/***/ }),
|
|
92258
92285
|
|