@plesk/ui-library 3.28.0 → 3.28.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/AutoClosable/AutoClosable.js +6 -2
- package/cjs/components/Button/Button.js +13 -6
- package/cjs/components/Form/Form.js +3 -0
- package/cjs/components/FormField/FormField.js +8 -1
- package/cjs/components/FormFieldText/FormFieldText.js +13 -5
- package/cjs/components/InputFile/InputFile.js +4 -2
- package/cjs/components/List/List.js +1 -6
- package/cjs/components/Overlay/Overlay.js +0 -2
- package/cjs/components/Select/Select.js +3 -3
- package/cjs/components/index.js +10 -1
- package/cjs/index.js +1 -1
- package/dist/plesk-ui-library-rtl.css.map +1 -1
- package/dist/plesk-ui-library.css.map +1 -1
- package/dist/plesk-ui-library.js +61 -28
- package/dist/plesk-ui-library.js.map +1 -1
- package/dist/plesk-ui-library.min.js +2 -2
- package/dist/plesk-ui-library.min.js.map +1 -1
- package/esm/components/AutoClosable/AutoClosable.js +6 -2
- package/esm/components/Button/Button.js +14 -7
- package/esm/components/Form/Form.js +3 -0
- package/esm/components/FormField/FormField.js +8 -1
- package/esm/components/FormFieldText/FormFieldText.js +13 -5
- package/esm/components/InputFile/InputFile.js +4 -2
- package/esm/components/List/List.js +1 -6
- package/esm/components/Overlay/Overlay.js +0 -2
- package/esm/components/Select/Select.js +3 -3
- package/esm/components/index.js +2 -1
- package/esm/index.js +1 -1
- package/package.json +1 -1
- package/styleguide/build/bundle.3b7e4d37.js +2 -0
- package/styleguide/build/{bundle.24d5b0eb.js.LICENSE.txt → bundle.3b7e4d37.js.LICENSE.txt} +0 -0
- package/styleguide/index.html +2 -2
- package/types/src/components/Form/Form.d.ts +7 -136
- package/types/src/components/Form/FormContext.d.ts +2 -14
- package/types/src/components/Form/types.d.ts +125 -0
- package/types/src/components/FormFieldPassword/FormFieldPassword.d.ts +2 -2
- package/types/src/components/InputFile/InputFile.d.ts +6 -1
- package/types/src/components/TextArea/TextArea.d.ts +2 -2
- package/types/src/components/index.d.ts +1 -0
- package/styleguide/build/bundle.24d5b0eb.js +0 -2
package/dist/plesk-ui-library.js
CHANGED
|
@@ -1017,7 +1017,9 @@ class AutoClosable extends _react.Component {
|
|
|
1017
1017
|
}
|
|
1018
1018
|
|
|
1019
1019
|
componentDidMount() {
|
|
1020
|
-
document.body.addEventListener('click', this.onOutsideClick
|
|
1020
|
+
document.body.addEventListener('click', this.onOutsideClick, {
|
|
1021
|
+
capture: true
|
|
1022
|
+
});
|
|
1021
1023
|
|
|
1022
1024
|
if (this.context) {
|
|
1023
1025
|
this.context.addChild(this);
|
|
@@ -1025,7 +1027,9 @@ class AutoClosable extends _react.Component {
|
|
|
1025
1027
|
}
|
|
1026
1028
|
|
|
1027
1029
|
componentWillUnmount() {
|
|
1028
|
-
document.body.removeEventListener('click', this.onOutsideClick
|
|
1030
|
+
document.body.removeEventListener('click', this.onOutsideClick, {
|
|
1031
|
+
capture: true
|
|
1032
|
+
});
|
|
1029
1033
|
|
|
1030
1034
|
if (this.context) {
|
|
1031
1035
|
this.context.removeChild(this);
|
|
@@ -1436,7 +1440,7 @@ const renderCaret = ({
|
|
|
1436
1440
|
*/
|
|
1437
1441
|
|
|
1438
1442
|
|
|
1439
|
-
const Button = ({
|
|
1443
|
+
const Button = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
1440
1444
|
baseClassName,
|
|
1441
1445
|
className,
|
|
1442
1446
|
component: Tag,
|
|
@@ -1454,7 +1458,7 @@ const Button = ({
|
|
|
1454
1458
|
arrow,
|
|
1455
1459
|
disabled,
|
|
1456
1460
|
...props
|
|
1457
|
-
}) => {
|
|
1461
|
+
}, ref) => {
|
|
1458
1462
|
const [selectedState, setSelectedState] = (0, _react.useState)(false);
|
|
1459
1463
|
|
|
1460
1464
|
const handleToggle = () => {
|
|
@@ -1510,6 +1514,7 @@ const Button = ({
|
|
|
1510
1514
|
const hasAriaDisabled = Tag === 'button' && disabled && tooltip;
|
|
1511
1515
|
|
|
1512
1516
|
let button = /*#__PURE__*/_react.default.createElement(Tag, _extends({
|
|
1517
|
+
ref: ref,
|
|
1513
1518
|
className: (0, _classnames.default)(baseClassName, {
|
|
1514
1519
|
[`${baseClassName}--${size}`]: size,
|
|
1515
1520
|
[`${baseClassName}--${intent}`]: intent && !ghost,
|
|
@@ -1549,8 +1554,8 @@ const Button = ({
|
|
|
1549
1554
|
}
|
|
1550
1555
|
|
|
1551
1556
|
return button;
|
|
1552
|
-
};
|
|
1553
|
-
|
|
1557
|
+
});
|
|
1558
|
+
Button.displayName = 'Button';
|
|
1554
1559
|
Button.propTypes = {
|
|
1555
1560
|
/**
|
|
1556
1561
|
* Button size.
|
|
@@ -1644,7 +1649,12 @@ Button.propTypes = {
|
|
|
1644
1649
|
/**
|
|
1645
1650
|
* @ignore
|
|
1646
1651
|
*/
|
|
1647
|
-
baseClassName: _propTypes.default.string
|
|
1652
|
+
baseClassName: _propTypes.default.string,
|
|
1653
|
+
|
|
1654
|
+
/**
|
|
1655
|
+
* @ignore
|
|
1656
|
+
*/
|
|
1657
|
+
onClick: _propTypes.default.func
|
|
1648
1658
|
};
|
|
1649
1659
|
Button.defaultProps = {
|
|
1650
1660
|
size: undefined,
|
|
@@ -1662,7 +1672,8 @@ Button.defaultProps = {
|
|
|
1662
1672
|
component: 'button',
|
|
1663
1673
|
className: undefined,
|
|
1664
1674
|
baseClassName: `${_constants.CLS_PREFIX}button`,
|
|
1665
|
-
arrow: undefined
|
|
1675
|
+
arrow: undefined,
|
|
1676
|
+
onClick: undefined
|
|
1666
1677
|
};
|
|
1667
1678
|
var _default = Button;
|
|
1668
1679
|
exports["default"] = _default;
|
|
@@ -7967,6 +7978,9 @@ class Form extends _react.Component {
|
|
|
7967
7978
|
vertical: this.props.vertical || false,
|
|
7968
7979
|
requiredFields: [],
|
|
7969
7980
|
formContext: {
|
|
7981
|
+
getValues: () => {
|
|
7982
|
+
return this.state.values;
|
|
7983
|
+
},
|
|
7970
7984
|
getValue: (name, def) => {
|
|
7971
7985
|
if (this.state.values) {
|
|
7972
7986
|
return (0, _utils.getIn)(this.state.values, name, def);
|
|
@@ -8796,7 +8810,7 @@ class FormField extends _react.Component {
|
|
|
8796
8810
|
multi
|
|
8797
8811
|
} = this.props;
|
|
8798
8812
|
|
|
8799
|
-
if (!description || multi && this.
|
|
8813
|
+
if (!description || multi && this.fieldApi.getValue().length - 1 > index) {
|
|
8800
8814
|
return null;
|
|
8801
8815
|
}
|
|
8802
8816
|
|
|
@@ -8908,6 +8922,13 @@ class FormField extends _react.Component {
|
|
|
8908
8922
|
return null;
|
|
8909
8923
|
},
|
|
8910
8924
|
getName: () => this.props.name,
|
|
8925
|
+
getValues: () => {
|
|
8926
|
+
if (this.props.form) {
|
|
8927
|
+
return this.props.form.getValues();
|
|
8928
|
+
}
|
|
8929
|
+
|
|
8930
|
+
return null;
|
|
8931
|
+
},
|
|
8911
8932
|
getValue: def => {
|
|
8912
8933
|
if (this.props.form && this.props.name) {
|
|
8913
8934
|
return this.props.form.getValue(this.props.name, def);
|
|
@@ -10405,6 +10426,7 @@ class FormFieldText extends _react.Component {
|
|
|
10405
10426
|
autoFocus,
|
|
10406
10427
|
autoComplete,
|
|
10407
10428
|
autoheight,
|
|
10429
|
+
inputProps,
|
|
10408
10430
|
...props
|
|
10409
10431
|
} = this.props;
|
|
10410
10432
|
return /*#__PURE__*/_react.default.createElement(_FormField.default, _extends({
|
|
@@ -10417,7 +10439,7 @@ class FormFieldText extends _react.Component {
|
|
|
10417
10439
|
getValue,
|
|
10418
10440
|
setValue,
|
|
10419
10441
|
isDisabled
|
|
10420
|
-
}) => multiline ? /*#__PURE__*/_react.default.createElement(_TextArea.default, {
|
|
10442
|
+
}) => multiline ? /*#__PURE__*/_react.default.createElement(_TextArea.default, _extends({
|
|
10421
10443
|
id: getId(),
|
|
10422
10444
|
name: getName(),
|
|
10423
10445
|
value: getValue(''),
|
|
@@ -10429,7 +10451,7 @@ class FormFieldText extends _react.Component {
|
|
|
10429
10451
|
autoFocus: autoFocus,
|
|
10430
10452
|
autoComplete: autoComplete,
|
|
10431
10453
|
autoheight: autoheight
|
|
10432
|
-
}) : /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
10454
|
+
}, inputProps)) : /*#__PURE__*/_react.default.createElement(_Input.default, _extends({
|
|
10433
10455
|
id: getId(),
|
|
10434
10456
|
name: getName(),
|
|
10435
10457
|
className: `${baseClassName}__input`,
|
|
@@ -10440,7 +10462,7 @@ class FormFieldText extends _react.Component {
|
|
|
10440
10462
|
placeholder: placeholder,
|
|
10441
10463
|
autoFocus: autoFocus,
|
|
10442
10464
|
autoComplete: autoComplete
|
|
10443
|
-
}));
|
|
10465
|
+
}, inputProps)));
|
|
10444
10466
|
}
|
|
10445
10467
|
|
|
10446
10468
|
}
|
|
@@ -10511,7 +10533,13 @@ FormFieldText.propTypes = {
|
|
|
10511
10533
|
* Adjust height automatically when multiline option is set to true.
|
|
10512
10534
|
* @since 1.9.0
|
|
10513
10535
|
*/
|
|
10514
|
-
autoheight: _propTypes.default.bool
|
|
10536
|
+
autoheight: _propTypes.default.bool,
|
|
10537
|
+
|
|
10538
|
+
/**
|
|
10539
|
+
* Props of underlying input element.
|
|
10540
|
+
* @since 3.28.1
|
|
10541
|
+
*/
|
|
10542
|
+
inputProps: _propTypes.default.object
|
|
10515
10543
|
};
|
|
10516
10544
|
FormFieldText.defaultProps = {
|
|
10517
10545
|
size: undefined,
|
|
@@ -10524,7 +10552,8 @@ FormFieldText.defaultProps = {
|
|
|
10524
10552
|
multi: undefined,
|
|
10525
10553
|
className: undefined,
|
|
10526
10554
|
baseClassName: `${_constants.CLS_PREFIX}form-field-text`,
|
|
10527
|
-
autoheight: false
|
|
10555
|
+
autoheight: false,
|
|
10556
|
+
inputProps: undefined
|
|
10528
10557
|
};
|
|
10529
10558
|
var _default = FormFieldText;
|
|
10530
10559
|
exports["default"] = _default;
|
|
@@ -11878,6 +11907,7 @@ const InputFile = ({
|
|
|
11878
11907
|
disabled = false,
|
|
11879
11908
|
locale,
|
|
11880
11909
|
testId,
|
|
11910
|
+
accept,
|
|
11881
11911
|
...props
|
|
11882
11912
|
}) => {
|
|
11883
11913
|
const [file, setFile] = (0, _react.useState)();
|
|
@@ -11935,7 +11965,8 @@ const InputFile = ({
|
|
|
11935
11965
|
ref: inputRef,
|
|
11936
11966
|
"data-test": testId && `${testId}--file-input`,
|
|
11937
11967
|
onFocus: handleFocus,
|
|
11938
|
-
onBlur: handleBlur
|
|
11968
|
+
onBlur: handleBlur,
|
|
11969
|
+
accept: accept
|
|
11939
11970
|
}), /*#__PURE__*/_react.default.createElement(_Translate.default, {
|
|
11940
11971
|
namespace: "InputFile",
|
|
11941
11972
|
content: "browseButton",
|
|
@@ -14771,14 +14802,9 @@ class List extends _react.Component {
|
|
|
14771
14802
|
|
|
14772
14803
|
if (totalRows && /*#__PURE__*/(0, _react.isValidElement)(pagination)) {
|
|
14773
14804
|
const {
|
|
14774
|
-
itemsPerPageOptions = _Pagination.ITEMS_PER_PAGE_OPTIONS
|
|
14775
|
-
itemsPerPage
|
|
14805
|
+
itemsPerPageOptions = _Pagination.ITEMS_PER_PAGE_OPTIONS
|
|
14776
14806
|
} = pagination.props;
|
|
14777
14807
|
|
|
14778
|
-
if (Number.isInteger(itemsPerPage)) {
|
|
14779
|
-
return totalRows > itemsPerPage;
|
|
14780
|
-
}
|
|
14781
|
-
|
|
14782
14808
|
if (Array.isArray(itemsPerPageOptions)) {
|
|
14783
14809
|
const numericOptions = itemsPerPageOptions.filter(v => Number(v) === v);
|
|
14784
14810
|
|
|
@@ -17810,8 +17836,6 @@ class Overlay extends _react.Component {
|
|
|
17810
17836
|
isExist: true
|
|
17811
17837
|
}, () => {
|
|
17812
17838
|
this.prevFocusElement = document.activeElement;
|
|
17813
|
-
});
|
|
17814
|
-
setTimeout(() => {
|
|
17815
17839
|
this.setState({
|
|
17816
17840
|
isOpened: true
|
|
17817
17841
|
}, () => {
|
|
@@ -22025,8 +22049,8 @@ const Select = ({
|
|
|
22025
22049
|
|
|
22026
22050
|
if (filterValue) {
|
|
22027
22051
|
const lowerFilterValue = filterValue.toLowerCase();
|
|
22028
|
-
groupFns.push(group => !!group.label && group.label.toLowerCase().
|
|
22029
|
-
optionFns.push(option => option.label.toLowerCase().
|
|
22052
|
+
groupFns.push(group => !!group.label && group.label.toLowerCase().includes(lowerFilterValue));
|
|
22053
|
+
optionFns.push(option => option.label.toLowerCase().includes(lowerFilterValue));
|
|
22030
22054
|
}
|
|
22031
22055
|
|
|
22032
22056
|
if (groupFns.length || optionFns.length) {
|
|
@@ -22106,7 +22130,7 @@ const Select = ({
|
|
|
22106
22130
|
|
|
22107
22131
|
const handleHighlightSearch = query => {
|
|
22108
22132
|
const lowerQuery = query.toLowerCase();
|
|
22109
|
-
const index = options.findIndex(o => !o.disabled && o.label.toLowerCase().
|
|
22133
|
+
const index = options.findIndex(o => !o.disabled && o.label.toLowerCase().includes(lowerQuery));
|
|
22110
22134
|
|
|
22111
22135
|
if (index !== -1) {
|
|
22112
22136
|
setHighlightedIndex(index);
|
|
@@ -28403,7 +28427,8 @@ var _exportNames = {
|
|
|
28403
28427
|
Tour: true,
|
|
28404
28428
|
Translate: true,
|
|
28405
28429
|
Link: true,
|
|
28406
|
-
Skeleton: true
|
|
28430
|
+
Skeleton: true,
|
|
28431
|
+
PortalContext: true
|
|
28407
28432
|
};
|
|
28408
28433
|
Object.defineProperty(exports, "Action", ({
|
|
28409
28434
|
enumerable: true,
|
|
@@ -28747,6 +28772,12 @@ Object.defineProperty(exports, "Popover", ({
|
|
|
28747
28772
|
return _Popover.default;
|
|
28748
28773
|
}
|
|
28749
28774
|
}));
|
|
28775
|
+
Object.defineProperty(exports, "PortalContext", ({
|
|
28776
|
+
enumerable: true,
|
|
28777
|
+
get: function () {
|
|
28778
|
+
return _Layer.PortalContext;
|
|
28779
|
+
}
|
|
28780
|
+
}));
|
|
28750
28781
|
Object.defineProperty(exports, "Progress", ({
|
|
28751
28782
|
enumerable: true,
|
|
28752
28783
|
get: function () {
|
|
@@ -29270,6 +29301,8 @@ Object.keys(_Skeleton).forEach(function (key) {
|
|
|
29270
29301
|
});
|
|
29271
29302
|
});
|
|
29272
29303
|
|
|
29304
|
+
var _Layer = __webpack_require__(/*! ./Layer */ "./components/Layer/index.tsx");
|
|
29305
|
+
|
|
29273
29306
|
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); }
|
|
29274
29307
|
|
|
29275
29308
|
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; }
|
|
@@ -92560,7 +92593,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
92560
92593
|
/***/ ((module) => {
|
|
92561
92594
|
|
|
92562
92595
|
"use strict";
|
|
92563
|
-
module.exports = JSON.parse('{"name":"@plesk/ui-library","version":"3.28.
|
|
92596
|
+
module.exports = JSON.parse('{"name":"@plesk/ui-library","version":"3.28.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 --disable-host-check","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":"13.1.3","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"}');
|
|
92564
92597
|
|
|
92565
92598
|
/***/ }),
|
|
92566
92599
|
|