@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.
Files changed (46) hide show
  1. package/cjs/components/Dialog/Dialog.js +11 -2
  2. package/cjs/components/Drawer/DrawerProgress.js +15 -1
  3. package/cjs/components/FormFieldPassword/FormFieldPassword.js +24 -214
  4. package/cjs/components/FormFieldPassword/PasswordMeter.js +81 -0
  5. package/cjs/components/FormFieldPassword/estimatePassword.js +203 -0
  6. package/cjs/components/FormFieldPassword/generatePassword.js +21 -0
  7. package/cjs/components/FormFieldPassword/index.js +5 -5
  8. package/cjs/components/Icon/Icon.js +1 -1
  9. package/cjs/components/List/List.js +1 -1
  10. package/cjs/components/ProgressDialog/ProgressDialog.js +2 -1
  11. package/cjs/components/Rating/images/rating.svg +5 -5
  12. package/cjs/index.js +1 -1
  13. package/dist/images/rating.svg +5 -5
  14. package/dist/plesk-ui-library-rtl.css +1 -1
  15. package/dist/plesk-ui-library-rtl.css.map +1 -1
  16. package/dist/plesk-ui-library.css +1 -1
  17. package/dist/plesk-ui-library.css.map +1 -1
  18. package/dist/plesk-ui-library.js +336 -309
  19. package/dist/plesk-ui-library.js.map +1 -1
  20. package/dist/plesk-ui-library.min.js +5 -5
  21. package/dist/plesk-ui-library.min.js.map +1 -1
  22. package/esm/components/Dialog/Dialog.js +11 -2
  23. package/esm/components/Drawer/DrawerProgress.js +16 -2
  24. package/esm/components/FormFieldPassword/FormFieldPassword.js +22 -206
  25. package/esm/components/FormFieldPassword/PasswordMeter.js +61 -0
  26. package/esm/components/FormFieldPassword/estimatePassword.js +187 -0
  27. package/esm/components/FormFieldPassword/generatePassword.js +14 -0
  28. package/esm/components/FormFieldPassword/index.js +3 -2
  29. package/esm/components/Icon/Icon.js +1 -1
  30. package/esm/components/List/List.js +1 -1
  31. package/esm/components/ProgressDialog/ProgressDialog.js +2 -1
  32. package/esm/components/Rating/images/rating.svg +5 -5
  33. package/esm/index.js +1 -1
  34. package/package.json +13 -8
  35. package/styleguide/build/bundle.f38c467d.js +2 -0
  36. package/styleguide/build/{bundle.ff1f903a.js.LICENSE.txt → bundle.f38c467d.js.LICENSE.txt} +0 -0
  37. package/styleguide/images/rating.svg +5 -5
  38. package/styleguide/index.html +2 -2
  39. package/types/package.d.ts +5 -0
  40. package/types/src/components/FormFieldPassword/FormFieldPassword.d.ts +91 -0
  41. package/types/src/components/FormFieldPassword/PasswordMeter.d.ts +9 -0
  42. package/types/src/components/FormFieldPassword/estimatePassword.d.ts +13 -0
  43. package/types/src/components/FormFieldPassword/index.d.ts +2 -0
  44. package/cjs/components/FormFieldPassword/passwordScore.js +0 -131
  45. package/esm/components/FormFieldPassword/passwordScore.js +0 -122
  46. package/styleguide/build/bundle.ff1f903a.js +0 -2
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.DEFAULT_RULES = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Translate = _interopRequireDefault(require("../Translate"));
13
+
14
+ var _enUS = _interopRequireDefault(require("./locale/en-US"));
15
+
16
+ // Copyright 1999-2022. Plesk International GmbH. All rights reserved.
17
+ const DEFAULT_RULES = [{
18
+ name: 'passwordTooShort',
19
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
20
+ content: `FormFieldPassword.passwordTooShort`,
21
+ fallback: _enUS.default.passwordTooShort
22
+ }),
23
+
24
+ score(passwd) {
25
+ return passwd.length < 5 ? -1 : 0;
26
+ }
27
+
28
+ }, {
29
+ name: 'passwordLength',
30
+
31
+ score(passwd) {
32
+ if (passwd.length < 5) {
33
+ return 3;
34
+ }
35
+
36
+ if (passwd.length > 4 && passwd.length < 8) {
37
+ return 6;
38
+ }
39
+
40
+ if (passwd.length > 7 && passwd.length < 16) {
41
+ return 12;
42
+ }
43
+
44
+ return 18;
45
+ }
46
+
47
+ }, {
48
+ name: 'lettersLowerCase',
49
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
50
+ content: `FormFieldPassword.lettersLowerCase`,
51
+ fallback: _enUS.default.lettersLowerCase
52
+ }),
53
+
54
+ score(passwd) {
55
+ // [verified] at least one lower case letter
56
+ return passwd.match(/[a-z]/) ? 1 : -1;
57
+ }
58
+
59
+ }, {
60
+ name: 'lettersUpperCase',
61
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
62
+ content: `FormFieldPassword.lettersUpperCase`,
63
+ fallback: _enUS.default.lettersUpperCase
64
+ }),
65
+
66
+ score(passwd) {
67
+ // [verified] at least one upper case letter
68
+ return passwd.match(/[A-Z]/) ? 5 : -1;
69
+ }
70
+
71
+ }, {
72
+ name: 'numbers1',
73
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
74
+ content: `FormFieldPassword.numbers1`,
75
+ fallback: _enUS.default.numbers1
76
+ }),
77
+
78
+ score(passwd) {
79
+ // [verified] at least one number
80
+ return passwd.match(/\d+/) ? 5 : -1;
81
+ }
82
+
83
+ }, {
84
+ name: 'numbers3',
85
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
86
+ content: `FormFieldPassword.numbers3`,
87
+ fallback: _enUS.default.numbers3
88
+ }),
89
+
90
+ score(passwd) {
91
+ // [verified] at least three numbers
92
+ return passwd.match(/(.*[0-9].*[0-9].*[0-9])/) ? 5 : -1;
93
+ }
94
+
95
+ }, {
96
+ name: 'specialChar1',
97
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
98
+ content: `FormFieldPassword.specialChar1`,
99
+ fallback: _enUS.default.specialChar1
100
+ }),
101
+
102
+ score(passwd) {
103
+ // [verified] at least one special character
104
+ return passwd.match(/[!@#$%^&*?_~]/) ? 5 : -1;
105
+ }
106
+
107
+ }, {
108
+ name: 'specialChar2',
109
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
110
+ content: `FormFieldPassword.specialChar2`,
111
+ fallback: _enUS.default.specialChar2
112
+ }),
113
+
114
+ score(passwd) {
115
+ // [verified] at least two special characters
116
+ return passwd.match(/(.*[!@#$%^&*?_~].*[!@#$%^&*?_~])/) ? 5 : -1;
117
+ }
118
+
119
+ }, {
120
+ name: 'comboUpperAndLower',
121
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
122
+ content: `FormFieldPassword.comboUpperAndLower`,
123
+ fallback: _enUS.default.comboUpperAndLower
124
+ }),
125
+
126
+ score(passwd) {
127
+ // [verified] both upper and lower case
128
+ return passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) ? 2 : -1;
129
+ }
130
+
131
+ }, {
132
+ name: 'comboLettersAndNumbers',
133
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
134
+ content: `FormFieldPassword.comboLettersAndNumbers`,
135
+ fallback: _enUS.default.comboLettersAndNumbers
136
+ }),
137
+
138
+ score(passwd) {
139
+ // [verified] both letters and numbers
140
+ return passwd.match(/([a-zA-Z])/) && passwd.match(/([0-9])/) ? 2 : -1;
141
+ }
142
+
143
+ }, {
144
+ name: 'comboLettersNumbersSpecial',
145
+ suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
146
+ content: `FormFieldPassword.comboLettersNumbersSpecial`,
147
+ fallback: _enUS.default.comboLettersNumbersSpecial
148
+ }),
149
+
150
+ score(passwd) {
151
+ // [verified] letters, numbers, and special characters
152
+ return passwd.match(/([a-zA-Z0-9].*[!@#$%^&*?_~])|([!@#$%^&*?_~].*[a-zA-Z0-9])/) ? 2 : -1;
153
+ }
154
+
155
+ }];
156
+ exports.DEFAULT_RULES = DEFAULT_RULES;
157
+
158
+ var _default = (password, rules = DEFAULT_RULES) => {
159
+ const suggestions = [];
160
+ let passwordScore = 0;
161
+ rules.forEach(({
162
+ suggestion,
163
+ score
164
+ }) => {
165
+ const ruleScore = score(password);
166
+
167
+ if (ruleScore < 0 && suggestion) {
168
+ suggestions.push(suggestion);
169
+ } else {
170
+ passwordScore += ruleScore;
171
+ }
172
+ });
173
+ let strength;
174
+
175
+ switch (true) {
176
+ case passwordScore < 16:
177
+ strength = 'VeryWeak';
178
+ break;
179
+
180
+ case passwordScore < 25:
181
+ strength = 'Weak';
182
+ break;
183
+
184
+ case passwordScore < 35:
185
+ strength = 'Medium';
186
+ break;
187
+
188
+ case passwordScore < 45:
189
+ strength = 'Strong';
190
+ break;
191
+
192
+ default:
193
+ strength = 'VeryStrong';
194
+ break;
195
+ }
196
+
197
+ return {
198
+ strength,
199
+ suggestions
200
+ };
201
+ };
202
+
203
+ exports.default = _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // Copyright 1999-2022. Plesk International GmbH. All rights reserved.
8
+ const symbolClasses = {
9
+ upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
10
+ lower: 'abcdefghijklmnopqrstuvwxyz',
11
+ number: '0123456789',
12
+ special: '!@#$%^&*?_~'
13
+ };
14
+
15
+ const generatePassword = () => {
16
+ const password = ['upper', 'upper', 'upper', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower', 'lower', 'number', 'number', 'number', 'special', 'special'];
17
+ 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('');
18
+ };
19
+
20
+ var _default = generatePassword;
21
+ exports.default = _default;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -12,12 +14,10 @@ Object.defineProperty(exports, "default", {
12
14
  Object.defineProperty(exports, "generatePassword", {
13
15
  enumerable: true,
14
16
  get: function () {
15
- return _FormFieldPassword.generatePassword;
17
+ return _generatePassword.default;
16
18
  }
17
19
  });
18
20
 
19
- var _FormFieldPassword = _interopRequireWildcard(require("./FormFieldPassword"));
20
-
21
- 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); }
21
+ var _FormFieldPassword = _interopRequireDefault(require("./FormFieldPassword"));
22
22
 
23
- 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; }
23
+ var _generatePassword = _interopRequireDefault(require("./generatePassword"));
@@ -126,7 +126,7 @@ const Icon = ({
126
126
  }, props), newName ? /*#__PURE__*/_react.default.createElement("svg", {
127
127
  focusable: "false"
128
128
  }, /*#__PURE__*/_react.default.createElement("use", {
129
- xlinkHref: getHref(newName, newSize)
129
+ href: getHref(newName, newSize)
130
130
  })) : src && /*#__PURE__*/_react.default.createElement("img", {
131
131
  src: src,
132
132
  alt: alt
@@ -1207,7 +1207,7 @@ class List extends _react.Component {
1207
1207
  [`${baseClassName}__table--vertical`]: vertical,
1208
1208
  [`${baseClassName}__table--reorderable`]: reorderable
1209
1209
  })
1210
- }, props, reorderableProps), hasTitle && /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", {
1210
+ }, reorderableProps), hasTitle && /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", {
1211
1211
  className: (0, _classnames.default)(`${baseClassName}__table-thead`, {
1212
1212
  [`${baseClassName}__row--expanded`]: this.isAllRowsExpanded(data, this.state.expandedRows)
1213
1213
  })
@@ -151,7 +151,8 @@ class ProgressDialog extends _react.Component {
151
151
  }, props, {
152
152
  isOpen: isOpen,
153
153
  onClose: this.handleClose,
154
- closable: canClose || canCancel
154
+ closable: canClose || canCancel,
155
+ canClose: canClose
155
156
  }), description && /*#__PURE__*/_react.default.createElement("div", {
156
157
  className: `${baseClassName}__description`
157
158
  }, description), /*#__PURE__*/_react.default.createElement(_Progress.default, {
@@ -1,6 +1,6 @@
1
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="56" height="248" viewBox="0 0 51 248">
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="56" height="248" viewBox="0 0 51 248">
2
2
  <defs><symbol id="star"><path stroke-width="3" d="m25,1 6,17h18l-14,11 5,17-15-10-15,10 5-17-14-11h18z"></path></symbol></defs>
3
- <use x="0" y="0" fill="none" stroke="#ff9500" xlink:href="#star"></use>
4
- <use x="0" y="100" fill="#ff9500" stroke="#ff9500" xlink:href="#star"></use>
5
- <use x="0" y="200" fill="#848484" stroke="#848484" xlink:href="#star"></use>
6
- </svg>
3
+ <use x="0" y="0" fill="none" stroke="#ff9500" href="#star"></use>
4
+ <use x="0" y="100" fill="#ff9500" stroke="#ff9500" href="#star"></use>
5
+ <use x="0" y="200" fill="#848484" stroke="#848484" href="#star"></use>
6
+ </svg>
package/cjs/index.js CHANGED
@@ -54,6 +54,6 @@ Object.keys(_components).forEach(function (key) {
54
54
  });
55
55
  });
56
56
  // Copyright 1999-2018. Plesk International GmbH. All rights reserved.
57
- const version = "3.27.0";
57
+ const version = "3.27.3";
58
58
  exports.version = version;
59
59
  (0, _svg4everybody.default)();
@@ -1,6 +1,6 @@
1
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="56" height="248" viewBox="0 0 51 248">
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="56" height="248" viewBox="0 0 51 248">
2
2
  <defs><symbol id="star"><path stroke-width="3" d="m25,1 6,17h18l-14,11 5,17-15-10-15,10 5-17-14-11h18z"></path></symbol></defs>
3
- <use x="0" y="0" fill="none" stroke="#ff9500" xlink:href="#star"></use>
4
- <use x="0" y="100" fill="#ff9500" stroke="#ff9500" xlink:href="#star"></use>
5
- <use x="0" y="200" fill="#848484" stroke="#848484" xlink:href="#star"></use>
6
- </svg>
3
+ <use x="0" y="0" fill="none" stroke="#ff9500" href="#star"></use>
4
+ <use x="0" y="100" fill="#ff9500" stroke="#ff9500" href="#star"></use>
5
+ <use x="0" y="200" fill="#848484" stroke="#848484" href="#star"></use>
6
+ </svg>