@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.
- package/components/StoreComponent.js +1 -1
- package/hoc/file.d.ts +1 -0
- package/hooks/useAbsolutePositioning.d.ts +5 -0
- package/hooks/useAbsolutePositioning.js +6 -6
- package/hooks/useFile.js +14 -2
- package/package.json +83 -82
- package/reducers/index.js +1 -1
- package/ui/content/Detail/Detail.d.ts +102 -0
- package/ui/content/Detail/Detail.js +155 -0
- package/ui/content/Detail/DetailItem.d.ts +43 -0
- package/ui/content/Detail/DetailItem.js +10 -0
- package/ui/content/Detail/demo/basic.d.ts +8 -0
- package/ui/content/Detail/demo/basic.js +56 -0
- package/ui/content/Detail/demo/controls.d.ts +8 -0
- package/ui/content/Detail/demo/controls.js +56 -0
- package/ui/content/Detail/demo/layout.d.ts +8 -0
- package/ui/content/Detail/demo/layout.js +56 -0
- package/ui/content/Detail/demo/responsive.d.ts +8 -0
- package/ui/content/Detail/demo/responsive.js +71 -0
- package/ui/content/Detail/demo/sizes.d.ts +8 -0
- package/ui/content/Detail/demo/sizes.js +61 -0
- package/ui/content/Detail/index.d.ts +3 -0
- package/ui/content/Detail/index.js +10 -0
- package/ui/content/DropDown/DropDown.d.ts +1 -0
- package/ui/content/DropDown/DropDown.js +1 -0
- package/ui/form/DateField/useDateInputState.d.ts +0 -1
- package/ui/form/DropDownField/DropDownField.js +3 -1
- package/ui/form/ImageField/ImageField.d.ts +87 -0
- package/ui/form/ImageField/ImageField.js +145 -0
- package/ui/form/ImageField/index.d.ts +2 -0
- package/ui/form/ImageField/index.js +7 -0
|
@@ -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,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,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,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,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,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,
|
|
@@ -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
|
-
|
|
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,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"];
|