@steroidsjs/core 2.1.0-beta.10 → 2.1.0-beta.14

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.
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ exports.__esModule = true;
25
+ var React = __importStar(require("react"));
26
+ var Detail_1 = __importDefault(require("../Detail"));
27
+ var DetailItem_1 = __importDefault(require("../DetailItem"));
28
+ /**
29
+ * Basic table with title
30
+ * @order 1
31
+ * @col 8
32
+ */
33
+ exports["default"] = (function () { return (React.createElement(React.Fragment, null,
34
+ React.createElement(Detail_1["default"], { title: "Users", responsive: false },
35
+ React.createElement(DetailItem_1["default"], { label: "Product" }, "Cloud Database"),
36
+ React.createElement(DetailItem_1["default"], { label: "Billing Mode" }, "Prepaid"),
37
+ React.createElement(DetailItem_1["default"], { label: "Automatic Renewal" }, "YES"),
38
+ React.createElement(DetailItem_1["default"], { label: "Order time" }, "2018-04-24 18:00:00"),
39
+ React.createElement(DetailItem_1["default"], { label: "Usage Time", span: 2 }, "2018-04-24 18:00:00"),
40
+ React.createElement(DetailItem_1["default"], { label: "Status", span: 3 }, "Running"),
41
+ React.createElement(DetailItem_1["default"], { label: "Negotaited Amount" }, "$80.00"),
42
+ React.createElement(DetailItem_1["default"], { label: "Discount" }, "$20.00"),
43
+ React.createElement(DetailItem_1["default"], { label: "Official Receipts" }, "$60.00"),
44
+ React.createElement(DetailItem_1["default"], { label: "Config Info" },
45
+ "Data disk type: MongoDB",
46
+ React.createElement("br", null),
47
+ "Database version: 3.4",
48
+ React.createElement("br", null),
49
+ "Package: dds.mongo.mid",
50
+ React.createElement("br", null),
51
+ "Storage space: 10 GB",
52
+ React.createElement("br", null),
53
+ "Replication factor: 3",
54
+ React.createElement("br", null),
55
+ "Region: East China 1",
56
+ React.createElement("br", null))))); });
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const _default: () => JSX.Element;
3
+ /**
4
+ * Table with controls
5
+ * @order 3
6
+ * @col 8
7
+ */
8
+ export default _default;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ exports.__esModule = true;
25
+ var React = __importStar(require("react"));
26
+ var Detail_1 = __importDefault(require("../Detail"));
27
+ var DetailItem_1 = __importDefault(require("../DetailItem"));
28
+ /**
29
+ * Table with controls
30
+ * @order 3
31
+ * @col 8
32
+ */
33
+ exports["default"] = (function () { return (React.createElement(React.Fragment, null,
34
+ React.createElement(Detail_1["default"], { controls: [{ label: 'Edit' }], responsive: false },
35
+ React.createElement(DetailItem_1["default"], { label: "Product" }, "Cloud Database"),
36
+ React.createElement(DetailItem_1["default"], { label: "Billing Mode" }, "Prepaid"),
37
+ React.createElement(DetailItem_1["default"], { label: "Automatic Renewal" }, "YES"),
38
+ React.createElement(DetailItem_1["default"], { label: "Order time" }, "2018-04-24 18:00:00"),
39
+ React.createElement(DetailItem_1["default"], { label: "Usage Time", span: 2 }, "2018-04-24 18:00:00"),
40
+ React.createElement(DetailItem_1["default"], { label: "Status", span: 3 }, "Running"),
41
+ React.createElement(DetailItem_1["default"], { label: "Negotaited Amount" }, "$80.00"),
42
+ React.createElement(DetailItem_1["default"], { label: "Discount" }, "$20.00"),
43
+ React.createElement(DetailItem_1["default"], { label: "Official Receipts" }, "$60.00"),
44
+ React.createElement(DetailItem_1["default"], { label: "Config Info" },
45
+ "Data disk type: MongoDB",
46
+ React.createElement("br", null),
47
+ "Database version: 3.4",
48
+ React.createElement("br", null),
49
+ "Package: dds.mongo.mid",
50
+ React.createElement("br", null),
51
+ "Storage space: 10 GB",
52
+ React.createElement("br", null),
53
+ "Replication factor: 3",
54
+ React.createElement("br", null),
55
+ "Region: East China 1",
56
+ React.createElement("br", null))))); });
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const _default: () => JSX.Element;
3
+ /**
4
+ * Table with vertical layout
5
+ * @order 4
6
+ * @col 8
7
+ */
8
+ export default _default;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ exports.__esModule = true;
25
+ var React = __importStar(require("react"));
26
+ var Detail_1 = __importStar(require("../Detail"));
27
+ var DetailItem_1 = __importDefault(require("../DetailItem"));
28
+ /**
29
+ * Table with vertical layout
30
+ * @order 4
31
+ * @col 8
32
+ */
33
+ exports["default"] = (function () { return (React.createElement(React.Fragment, null,
34
+ React.createElement(Detail_1["default"], { layout: Detail_1.DetailLayoutEnum.Vertical, responsive: false },
35
+ React.createElement(DetailItem_1["default"], { label: "Product" }, "Cloud Database"),
36
+ React.createElement(DetailItem_1["default"], { label: "Billing Mode" }, "Prepaid"),
37
+ React.createElement(DetailItem_1["default"], { label: "Automatic Renewal" }, "YES"),
38
+ React.createElement(DetailItem_1["default"], { label: "Order time" }, "2018-04-24 18:00:00"),
39
+ React.createElement(DetailItem_1["default"], { label: "Usage Time", span: 2 }, "2018-04-24 18:00:00"),
40
+ React.createElement(DetailItem_1["default"], { label: "Status", span: 3 }, "Running"),
41
+ React.createElement(DetailItem_1["default"], { label: "Negotaited Amount" }, "$80.00"),
42
+ React.createElement(DetailItem_1["default"], { label: "Discount" }, "$20.00"),
43
+ React.createElement(DetailItem_1["default"], { label: "Official Receipts" }, "$60.00"),
44
+ React.createElement(DetailItem_1["default"], { label: "Config Info" },
45
+ "Data disk type: MongoDB",
46
+ React.createElement("br", null),
47
+ "Database version: 3.4",
48
+ React.createElement("br", null),
49
+ "Package: dds.mongo.mid",
50
+ React.createElement("br", null),
51
+ "Storage space: 10 GB",
52
+ React.createElement("br", null),
53
+ "Replication factor: 3",
54
+ React.createElement("br", null),
55
+ "Region: East China 1",
56
+ React.createElement("br", null))))); });
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const _default: () => JSX.Element;
3
+ /**
4
+ * When the screen width resizes, the number of columns changes
5
+ * @order 4
6
+ * @col 8
7
+ */
8
+ export default _default;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ exports.__esModule = true;
25
+ var React = __importStar(require("react"));
26
+ var Detail_1 = __importDefault(require("../Detail"));
27
+ var DetailItem_1 = __importDefault(require("../DetailItem"));
28
+ /**
29
+ * When the screen width resizes, the number of columns changes
30
+ * @order 4
31
+ * @col 8
32
+ */
33
+ exports["default"] = (function () { return (React.createElement(React.Fragment, null,
34
+ React.createElement(Detail_1["default"], { column: 4, responsive: {
35
+ media: [
36
+ {
37
+ breakpoint: 500,
38
+ column: 1
39
+ },
40
+ {
41
+ breakpoint: 700,
42
+ column: 2
43
+ },
44
+ {
45
+ breakpoint: 900,
46
+ column: 3
47
+ },
48
+ ]
49
+ } },
50
+ React.createElement(DetailItem_1["default"], { label: "Product" }, "Cloud Database"),
51
+ React.createElement(DetailItem_1["default"], { label: "Billing Mode" }, "Prepaid"),
52
+ React.createElement(DetailItem_1["default"], { label: "Automatic Renewal" }, "YES"),
53
+ React.createElement(DetailItem_1["default"], { label: "Order time" }, "2018-04-24 18:00:00"),
54
+ React.createElement(DetailItem_1["default"], { label: "Usage Time", span: 2 }, "2018-04-24 18:00:00"),
55
+ React.createElement(DetailItem_1["default"], { label: "Status", span: 3 }, "Running"),
56
+ React.createElement(DetailItem_1["default"], { label: "Negotaited Amount" }, "$80.00"),
57
+ React.createElement(DetailItem_1["default"], { label: "Discount" }, "$20.00"),
58
+ React.createElement(DetailItem_1["default"], { label: "Official Receipts" }, "$60.00"),
59
+ React.createElement(DetailItem_1["default"], { label: "Config Info" },
60
+ "Data disk type: MongoDB",
61
+ React.createElement("br", null),
62
+ "Database version: 3.4",
63
+ React.createElement("br", null),
64
+ "Package: dds.mongo.mid",
65
+ React.createElement("br", null),
66
+ "Storage space: 10 GB",
67
+ React.createElement("br", null),
68
+ "Replication factor: 3",
69
+ React.createElement("br", null),
70
+ "Region: East China 1",
71
+ React.createElement("br", null))))); });
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const _default: () => JSX.Element;
3
+ /**
4
+ * Table with different cell's sizes
5
+ * @order 2
6
+ * @col 8
7
+ */
8
+ export default _default;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ exports.__esModule = true;
25
+ var React = __importStar(require("react"));
26
+ var Detail_1 = __importDefault(require("../Detail"));
27
+ var DetailItem_1 = __importDefault(require("../DetailItem"));
28
+ var sizes = {
29
+ sm: 'Small',
30
+ md: 'Middle',
31
+ lg: 'Large'
32
+ };
33
+ /**
34
+ * Table with different cell's sizes
35
+ * @order 2
36
+ * @col 8
37
+ */
38
+ exports["default"] = (function () { return (React.createElement(React.Fragment, null, Object.keys(sizes).map(function (size) { return (React.createElement("div", { style: { marginBottom: '30px' }, key: size },
39
+ React.createElement(Detail_1["default"], { title: sizes[size], size: size, responsive: false },
40
+ React.createElement(DetailItem_1["default"], { label: "Product" }, "Cloud Database"),
41
+ React.createElement(DetailItem_1["default"], { label: "Billing Mode" }, "Prepaid"),
42
+ React.createElement(DetailItem_1["default"], { label: "Automatic Renewal" }, "YES"),
43
+ React.createElement(DetailItem_1["default"], { label: "Order time" }, "2018-04-24 18:00:00"),
44
+ React.createElement(DetailItem_1["default"], { label: "Usage Time", span: 2 }, "2018-04-24 18:00:00"),
45
+ React.createElement(DetailItem_1["default"], { label: "Status", span: 3 }, "Running"),
46
+ React.createElement(DetailItem_1["default"], { label: "Negotaited Amount" }, "$80.00"),
47
+ React.createElement(DetailItem_1["default"], { label: "Discount" }, "$20.00"),
48
+ React.createElement(DetailItem_1["default"], { label: "Official Receipts" }, "$60.00"),
49
+ React.createElement(DetailItem_1["default"], { label: "Config Info" },
50
+ "Data disk type: MongoDB",
51
+ React.createElement("br", null),
52
+ "Database version: 3.4",
53
+ React.createElement("br", null),
54
+ "Package: dds.mongo.mid",
55
+ React.createElement("br", null),
56
+ "Storage space: 10 GB",
57
+ React.createElement("br", null),
58
+ "Replication factor: 3",
59
+ React.createElement("br", null),
60
+ "Region: East China 1",
61
+ React.createElement("br", null))))); }))); });
@@ -0,0 +1,3 @@
1
+ import Detail from './Detail';
2
+ import DetailItem from './DetailItem';
3
+ export { Detail, DetailItem };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ exports.__esModule = true;
6
+ exports.DetailItem = exports.Detail = void 0;
7
+ var Detail_1 = __importDefault(require("./Detail"));
8
+ exports.Detail = Detail_1["default"];
9
+ var DetailItem_1 = __importDefault(require("./DetailItem"));
10
+ exports.DetailItem = DetailItem_1["default"];
@@ -29,6 +29,7 @@ export interface IDropDownViewProps extends IDropDownProps, IAbsolutePositioning
29
29
  declare function DropDown(props: IDropDownProps): JSX.Element;
30
30
  declare namespace DropDown {
31
31
  var defaultProps: {
32
+ autoPositioning: boolean;
32
33
  componentDestroyDelay: number;
33
34
  defaultVisible: boolean;
34
35
  gap: number;
@@ -71,6 +71,7 @@ function DropDown(props) {
71
71
  React.createElement(DropDownView, { className: props.className, forwardedRef: forwardedRef, content: props.content, position: position, style: style, calculatePosition: calculatePosition, isComponentVisible: isComponentVisible })))));
72
72
  }
73
73
  DropDown.defaultProps = {
74
+ autoPositioning: false,
74
75
  componentDestroyDelay: 300,
75
76
  defaultVisible: false,
76
77
  gap: 15,
@@ -37,7 +37,6 @@ export interface IDateInputStateInput extends IFieldWrapperInputProps {
37
37
  valueFormat?: string;
38
38
  /**
39
39
  * Использовать всемирное время (UTC) вместо местного для даты, отправляемой на сервер
40
- * @example YYYY-MM-DD
41
40
  */
42
41
  useUTC?: boolean;
43
42
  }
@@ -66,7 +66,9 @@ function DropDownField(props) {
66
66
  }, [setIsFocused, setIsOpened]);
67
67
  // Outside click -> close
68
68
  var forwardedRef = react_1.useRef(null);
69
- react_use_1.useClickAway(forwardedRef, onClose);
69
+ if (process.env.PLATFORM !== "mobile") {
70
+ react_use_1.useClickAway(forwardedRef, onClose);
71
+ }
70
72
  // Search input props
71
73
  var searchInputProps = react_1.useMemo(function () { return ({
72
74
  type: 'search',
@@ -0,0 +1,87 @@
1
+ /// <reference types="react" />
2
+ import ReactCropProps, { Crop } from 'react-image-crop';
3
+ import { IModalProps } from '../../modal/Modal/Modal';
4
+ import { IFieldWrapperInputProps } from '../Field/fieldWrapper';
5
+ import { IFileHocInput, IFileHocOutput } from '../../../hoc/file';
6
+ export interface ICropInputProps {
7
+ /**
8
+ * Изначальные параметры обрезки изображения
9
+ * @example {unit: 'px', aspect: 1, x: 0, y: 0, width: 200, height: 200}
10
+ */
11
+ initialValues?: Crop;
12
+ /**
13
+ * Экшн для отправки параметров обрезки на бэкенд
14
+ * @example '/api/v1/user/avatar/crop'
15
+ */
16
+ backendUrl?: string;
17
+ /**
18
+ * Пропсы для модуля react-image-crop
19
+ * @example {maxWidth: 400, maxHeight: 400}
20
+ */
21
+ reactImageCropProps?: ReactCropProps;
22
+ }
23
+ export interface IImageFieldProps extends IFieldWrapperInputProps, Omit<IFileHocInput, 'multiple' | 'imagesOnly'>, IFileHocOutput {
24
+ /**
25
+ * Дополнительный CSS-класс для компонента
26
+ */
27
+ className?: CssClassName;
28
+ /**
29
+ * Переопределение внешнего вида компонента
30
+ * @example MyCustomView
31
+ */
32
+ view?: CustomView;
33
+ /**
34
+ * Переопределение внешнего вида модального окна
35
+ * @example MyCustomModalView
36
+ */
37
+ modalView?: CustomView;
38
+ /**
39
+ * Пропсы для модального окна
40
+ */
41
+ modalProps?: IModalProps;
42
+ /**
43
+ * Параметры обрезки
44
+ */
45
+ crop?: ICropInputProps;
46
+ /**
47
+ * Название кнопки
48
+ * @example 'Загрузить'
49
+ */
50
+ label?: string;
51
+ [key: string]: any;
52
+ }
53
+ export interface ICropOutputProps extends ICropInputProps {
54
+ onSubmit: (crop: Crop, imageId: any) => void;
55
+ }
56
+ export interface IImageFieldModalViewProps extends IModalProps {
57
+ crop: ICropOutputProps;
58
+ image: Record<string, any>;
59
+ }
60
+ export interface IImageFieldViewProps extends IImageFieldProps {
61
+ item: {
62
+ uid?: string;
63
+ fileId?: number | string;
64
+ title?: string;
65
+ size: number | string;
66
+ disabled?: boolean;
67
+ onRemove?: () => void;
68
+ error?: string;
69
+ image?: {
70
+ url: string;
71
+ width: string;
72
+ height: string;
73
+ };
74
+ progress?: {
75
+ bytesUploaded: number;
76
+ percent: number;
77
+ };
78
+ };
79
+ onClick: (e: Event) => void;
80
+ }
81
+ declare const _default: {
82
+ (props: IFieldWrapperInputProps): JSX.Element;
83
+ WrappedComponent: any;
84
+ displayName: any;
85
+ defaultProps: any;
86
+ };
87
+ export default _default;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ exports.__esModule = true;
36
+ var React = __importStar(require("react"));
37
+ var File_1 = __importDefault(require("fileup-core/lib/models/File"));
38
+ var first_1 = __importDefault(require("lodash-es/first"));
39
+ var values_1 = __importDefault(require("lodash-es/values"));
40
+ var react_1 = require("react");
41
+ var uniqueId_1 = __importDefault(require("lodash-es/uniqueId"));
42
+ var hooks_1 = require("../../../hooks");
43
+ var useDispatch_1 = __importDefault(require("../../../hooks/useDispatch"));
44
+ var useFile_1 = __importDefault(require("../../../hooks/useFile"));
45
+ var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
46
+ var modal_1 = require("../../../actions/modal");
47
+ function ImageField(props) {
48
+ var components = hooks_1.useComponents();
49
+ var dispatch = useDispatch_1["default"]();
50
+ // Add cropping option
51
+ var _a = react_1.useState(null), croppedImage = _a[0], setCroppedImage = _a[1];
52
+ var modalId = react_1.useMemo(function () { var _a; return ((_a = props.modalProps) === null || _a === void 0 ? void 0 : _a.modalId) || uniqueId_1["default"]('cropModal'); }, [props.modalProps.modalId]);
53
+ var ImageFieldModalVIew = props.modalView || components.ui.getView('form.ImageFieldModalView');
54
+ var responseParser = react_1.useCallback(function (text) {
55
+ var data = null;
56
+ try {
57
+ data = JSON.parse(text);
58
+ dispatch(modal_1.openModal(ImageFieldModalVIew, __assign(__assign({ modalId: modalId }, props.modalProps), { crop: __assign(__assign({}, props.crop), { onSubmit: function (crop, imageId) { return setCroppedImage(__assign(__assign({}, crop), { id: imageId })); } }), image: first_1["default"](data) })));
59
+ // eslint-disable-next-line no-empty
60
+ }
61
+ catch (e) { }
62
+ return data;
63
+ }, [ImageFieldModalVIew, modalId, dispatch, props.crop, props.modalProps]);
64
+ var _b = useFile_1["default"](__assign(__assign({}, props), { multiple: false, imagesOnly: true, uploader: __assign({ uploaderConfigs: {
65
+ xhr: {
66
+ responseParser: responseParser
67
+ }
68
+ } }, props.uploader) })), files = _b.files, onBrowse = _b.onBrowse, onRemove = _b.onRemove, onAdd = _b.onAdd;
69
+ // Fetch cropped image
70
+ react_1.useEffect(function () {
71
+ if (croppedImage) {
72
+ components.http.post(props.crop.backendUrl, croppedImage).then(function (res) {
73
+ setCroppedImage(null);
74
+ onAdd(new File_1["default"]({
75
+ path: res.title || res.label || res.uid || res.id,
76
+ status: File_1["default"].STATUS_END,
77
+ result: File_1["default"].RESULT_SUCCESS,
78
+ resultHttpStatus: 200,
79
+ resultHttpMessage: res,
80
+ uid: res.uid
81
+ }));
82
+ });
83
+ }
84
+ }, [components.http, croppedImage, onAdd, onRemove, props.crop.backendUrl]);
85
+ var ImageFieldView = props.view || components.ui.getView('form.ImageFieldView');
86
+ var item = react_1.useMemo(function () {
87
+ var result = null;
88
+ var _file = first_1["default"](files);
89
+ if (_file) {
90
+ var data = _file.getResultHttpMessage() || {};
91
+ result = {
92
+ uid: _file.getUid(),
93
+ fileId: data.id || null,
94
+ title: _file.getName(),
95
+ size: props.size,
96
+ disabled: props.disabled,
97
+ onRemove: function () { return onRemove(_file); },
98
+ error: null,
99
+ image: null,
100
+ progress: null
101
+ };
102
+ // Add error
103
+ if (_file.getResult() === File_1["default"].RESULT_ERROR) {
104
+ if (typeof _file.getResultHttpMessage() === 'string'
105
+ && _file.getResultHttpMessage().substr(0, 1) === '{') {
106
+ var errorResponse = JSON.parse(_file.getResultHttpMessage());
107
+ result.error = errorResponse.error || errorResponse.message || __('Ошибка');
108
+ }
109
+ else {
110
+ result.error = _file.getResultHttpMessage()
111
+ ? JSON.stringify(_file.getResultHttpMessage())
112
+ : __('Ошибка');
113
+ }
114
+ }
115
+ // Add thumbnail image
116
+ if (data.images) {
117
+ // Image object has properties: url, width, height
118
+ result.image = data.images[props.imagesProcessor]
119
+ || first_1["default"](values_1["default"](data.images));
120
+ }
121
+ // Add progress
122
+ if (_file.getStatus() === File_1["default"].STATUS_PROCESS) {
123
+ result.progress = {
124
+ bytesUploaded: _file.getBytesUploaded(),
125
+ percent: _file.progress.getPercent()
126
+ };
127
+ }
128
+ }
129
+ return result;
130
+ }, [files, onRemove, props.disabled, props.imagesProcessor, props.size]);
131
+ return (React.createElement(ImageFieldView, __assign({}, props, { item: item, onClick: onBrowse })));
132
+ }
133
+ ImageField.defaultProps = {
134
+ disabled: false,
135
+ required: false,
136
+ className: '',
137
+ modalProps: {},
138
+ label: 'Upload',
139
+ crop: {
140
+ initialValues: {
141
+ aspect: 1
142
+ }
143
+ }
144
+ };
145
+ exports["default"] = fieldWrapper_1["default"]('ImageField', ImageField);
@@ -0,0 +1,2 @@
1
+ import ImageField from './ImageField';
2
+ export default ImageField;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ exports.__esModule = true;
6
+ var ImageField_1 = __importDefault(require("./ImageField"));
7
+ exports["default"] = ImageField_1["default"];