dtable-ui-component 0.1.75-beta3 → 0.1.75-beta4

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 (223) hide show
  1. package/lib/AutoNumberFormatter/index.js +27 -38
  2. package/lib/ButtonFormatter/index.js +47 -59
  3. package/lib/CTimeFormatter/index.js +39 -53
  4. package/lib/CheckboxFormatter/index.js +35 -48
  5. package/lib/CollaboratorFormatter/index.js +42 -64
  6. package/lib/CollaboratorItem/index.js +44 -61
  7. package/lib/CreatorFormatter/index.js +42 -62
  8. package/lib/DateFormatter/index.js +40 -55
  9. package/lib/DurationFormatter/index.js +29 -42
  10. package/lib/EmailFormatter/index.js +27 -38
  11. package/lib/FileFormatter/index.js +50 -65
  12. package/lib/FileItemFormatter/index.js +32 -44
  13. package/lib/FileUploader/index.js +34 -44
  14. package/lib/FormulaFormatter/index.js +81 -102
  15. package/lib/GeolocationFormatter/index.js +35 -50
  16. package/lib/ImageFormatter/images-lazy-load.js +73 -81
  17. package/lib/ImageFormatter/index.js +90 -109
  18. package/lib/ImagePreviewerLightbox/index.js +27 -60
  19. package/lib/LastModifierFormatter/index.js +42 -62
  20. package/lib/LinkFormatter/index.js +59 -80
  21. package/lib/Loading/index.js +4 -13
  22. package/lib/LongTextFormatter/html-long-text-formatter.js +49 -60
  23. package/lib/LongTextFormatter/index.js +9 -28
  24. package/lib/LongTextFormatter/simple-long-text-formatter.js +52 -58
  25. package/lib/MTimeFormatter/index.js +39 -53
  26. package/lib/ModalPortal/index.js +30 -37
  27. package/lib/MultipleSelectFormatter/index.js +39 -55
  28. package/lib/NumberFormatter/index.js +35 -50
  29. package/lib/RateFormatter/index.js +37 -52
  30. package/lib/SelectItem/index.js +31 -46
  31. package/lib/SingleSelectFormatter/index.js +38 -54
  32. package/lib/TextFormatter/index.js +31 -44
  33. package/lib/UrlFormatter/index.js +27 -38
  34. package/lib/app.js +75 -80
  35. package/lib/cellFormatterFactory/index.js +17 -20
  36. package/lib/components/cell-editor/checkbox-editor.js +59 -66
  37. package/lib/components/cell-editor/collaborator-editor.js +113 -126
  38. package/lib/components/cell-editor/date-editor.js +99 -119
  39. package/lib/components/cell-editor/index.js +9 -40
  40. package/lib/components/cell-editor/link-editor.js +122 -140
  41. package/lib/components/cell-editor/multiple-select-editor.js +114 -127
  42. package/lib/components/cell-editor/number-editor.js +78 -86
  43. package/lib/components/cell-editor/single-select-editor.js +106 -120
  44. package/lib/components/cell-editor/text-editor.js +65 -72
  45. package/lib/components/cell-editor-dialog/pc-file-editor-dialog.js +31 -51
  46. package/lib/components/cell-editor-dialog/pc-files-addition/index.js +0 -1
  47. package/lib/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -1
  48. package/lib/components/cell-editor-dialog/pc-files-preview/index.js +0 -1
  49. package/lib/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -1
  50. package/lib/components/cell-editor-popover/mb-collaborator-editor-popover.js +105 -111
  51. package/lib/components/cell-editor-popover/mb-date-editor-popover.js +140 -157
  52. package/lib/components/cell-editor-popover/mb-link-editor-popover.js +103 -109
  53. package/lib/components/cell-editor-popover/mb-select-editor-popover.js +142 -155
  54. package/lib/components/cell-editor-popover/pc-collaborator-editor-popover.js +74 -89
  55. package/lib/components/cell-editor-popover/pc-date-editor-popover.js +88 -102
  56. package/lib/components/cell-editor-popover/pc-link-editor-popover.js +77 -91
  57. package/lib/components/cell-editor-popover/pc-select-editor-popover.js +91 -105
  58. package/lib/components/common/collaborator-item.js +43 -59
  59. package/lib/components/common/edit-editor-button.js +28 -39
  60. package/lib/components/common/link-editor-option.js +63 -71
  61. package/lib/components/common/mobile/mb-editor-header.js +39 -52
  62. package/lib/components/common/select-editor-option.js +58 -74
  63. package/lib/constants/cell-types.js +25 -54
  64. package/lib/constants/index.js +5 -28
  65. package/lib/formatterConfig/index.js +28 -59
  66. package/lib/index.js +31 -139
  67. package/lib/lang/index.js +11 -27
  68. package/lib/locals/de.js +1 -6
  69. package/lib/locals/en.js +1 -6
  70. package/lib/locals/fr.js +1 -6
  71. package/lib/locals/zh-CN.js +1 -6
  72. package/lib/toaster/alert.js +92 -106
  73. package/lib/toaster/index.js +3 -12
  74. package/lib/toaster/toast.js +103 -147
  75. package/lib/toaster/toastManager.js +78 -97
  76. package/lib/toaster/toaster.js +36 -52
  77. package/lib/utils/cell-value-validator.js +5 -9
  78. package/lib/utils/column-utils.js +5 -13
  79. package/lib/utils/editor-utils.js +3 -13
  80. package/lib/utils/markdown2html.js +1 -7
  81. package/lib/utils/normalize-long-text-value.js +1 -6
  82. package/lib/utils/number-precision.js +13 -31
  83. package/lib/utils/utils.js +8 -33
  84. package/lib/utils/value-format-utils.js +58 -108
  85. package/package.json +5 -5
  86. package/es/AutoNumberFormatter/index.css +0 -1
  87. package/es/AutoNumberFormatter/index.js +0 -36
  88. package/es/ButtonFormatter/index.css +0 -13
  89. package/es/ButtonFormatter/index.js +0 -56
  90. package/es/CTimeFormatter/index.css +0 -1
  91. package/es/CTimeFormatter/index.js +0 -58
  92. package/es/CheckboxFormatter/index.css +0 -1
  93. package/es/CheckboxFormatter/index.js +0 -45
  94. package/es/CollaboratorFormatter/index.css +0 -1
  95. package/es/CollaboratorFormatter/index.js +0 -91
  96. package/es/CollaboratorItem/index.css +0 -49
  97. package/es/CollaboratorItem/index.js +0 -64
  98. package/es/CreatorFormatter/index.css +0 -1
  99. package/es/CreatorFormatter/index.js +0 -87
  100. package/es/DateFormatter/index.css +0 -1
  101. package/es/DateFormatter/index.js +0 -60
  102. package/es/DurationFormatter/index.css +0 -1
  103. package/es/DurationFormatter/index.js +0 -38
  104. package/es/EmailFormatter/index.css +0 -5
  105. package/es/EmailFormatter/index.js +0 -36
  106. package/es/FileFormatter/index.css +0 -29
  107. package/es/FileFormatter/index.js +0 -64
  108. package/es/FileItemFormatter/index.js +0 -50
  109. package/es/FileUploader/index.js +0 -53
  110. package/es/FormulaFormatter/index.css +0 -19
  111. package/es/FormulaFormatter/index.js +0 -164
  112. package/es/GeolocationFormatter/index.css +0 -1
  113. package/es/GeolocationFormatter/index.js +0 -53
  114. package/es/ImageFormatter/images-lazy-load.js +0 -150
  115. package/es/ImageFormatter/index.css +0 -34
  116. package/es/ImageFormatter/index.js +0 -154
  117. package/es/ImagePreviewerLightbox/index.css +0 -87
  118. package/es/ImagePreviewerLightbox/index.js +0 -119
  119. package/es/LastModifierFormatter/index.css +0 -1
  120. package/es/LastModifierFormatter/index.js +0 -87
  121. package/es/LinkFormatter/index.css +0 -27
  122. package/es/LinkFormatter/index.js +0 -144
  123. package/es/Loading/index.css +0 -54
  124. package/es/Loading/index.js +0 -7
  125. package/es/LongTextFormatter/html-long-text-formatter.js +0 -96
  126. package/es/LongTextFormatter/index.css +0 -63
  127. package/es/LongTextFormatter/index.js +0 -29
  128. package/es/LongTextFormatter/simple-long-text-formatter.js +0 -104
  129. package/es/MTimeFormatter/index.css +0 -1
  130. package/es/MTimeFormatter/index.js +0 -58
  131. package/es/ModalPortal/index.js +0 -44
  132. package/es/MultipleSelectFormatter/index.css +0 -1
  133. package/es/MultipleSelectFormatter/index.js +0 -70
  134. package/es/NumberFormatter/index.css +0 -1
  135. package/es/NumberFormatter/index.js +0 -47
  136. package/es/RateFormatter/index.css +0 -1
  137. package/es/RateFormatter/index.js +0 -80
  138. package/es/SelectItem/index.js +0 -58
  139. package/es/SingleSelectFormatter/index.css +0 -1
  140. package/es/SingleSelectFormatter/index.js +0 -70
  141. package/es/TextFormatter/index.css +0 -1
  142. package/es/TextFormatter/index.js +0 -56
  143. package/es/UrlFormatter/index.css +0 -5
  144. package/es/UrlFormatter/index.js +0 -36
  145. package/es/app.css +0 -20
  146. package/es/app.js +0 -91
  147. package/es/assets/images/avatar/default_avatar.png +0 -0
  148. package/es/assets/images/file/192/excel.png +0 -0
  149. package/es/assets/images/file/192/file.png +0 -0
  150. package/es/assets/images/file/192/music.png +0 -0
  151. package/es/assets/images/file/192/pdf.png +0 -0
  152. package/es/assets/images/file/192/pic.png +0 -0
  153. package/es/assets/images/file/192/ppt.png +0 -0
  154. package/es/assets/images/file/192/txt.png +0 -0
  155. package/es/assets/images/file/192/video.png +0 -0
  156. package/es/assets/images/file/192/word.png +0 -0
  157. package/es/assets/images/file/24/excel.png +0 -0
  158. package/es/assets/images/file/24/file.png +0 -0
  159. package/es/assets/images/file/24/music.png +0 -0
  160. package/es/assets/images/file/24/pdf.png +0 -0
  161. package/es/assets/images/file/24/pic.png +0 -0
  162. package/es/assets/images/file/24/ppt.png +0 -0
  163. package/es/assets/images/file/24/txt.png +0 -0
  164. package/es/assets/images/file/24/video.png +0 -0
  165. package/es/assets/images/file/24/word.png +0 -0
  166. package/es/assets/images/folder/folder-192.png +0 -0
  167. package/es/assets/images/folder/folder-24.png +0 -0
  168. package/es/cellFormatterFactory/index.js +0 -25
  169. package/es/components/cell-editor/checkbox-editor.js +0 -104
  170. package/es/components/cell-editor/collaborator-editor.js +0 -236
  171. package/es/components/cell-editor/date-editor.js +0 -151
  172. package/es/components/cell-editor/index.js +0 -9
  173. package/es/components/cell-editor/link-editor.js +0 -303
  174. package/es/components/cell-editor/multiple-select-editor.js +0 -237
  175. package/es/components/cell-editor/number-editor.js +0 -154
  176. package/es/components/cell-editor/single-select-editor.js +0 -202
  177. package/es/components/cell-editor/text-editor.js +0 -122
  178. package/es/components/cell-editor-dialog/pc-file-editor-dialog.js +0 -46
  179. package/es/components/cell-editor-dialog/pc-files-addition/index.js +0 -0
  180. package/es/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -0
  181. package/es/components/cell-editor-dialog/pc-files-preview/index.js +0 -0
  182. package/es/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -0
  183. package/es/components/cell-editor-popover/mb-collaborator-editor-popover.js +0 -177
  184. package/es/components/cell-editor-popover/mb-date-editor-popover.js +0 -245
  185. package/es/components/cell-editor-popover/mb-link-editor-popover.js +0 -170
  186. package/es/components/cell-editor-popover/mb-select-editor-popover.js +0 -230
  187. package/es/components/cell-editor-popover/pc-collaborator-editor-popover.js +0 -109
  188. package/es/components/cell-editor-popover/pc-date-editor-popover.js +0 -142
  189. package/es/components/cell-editor-popover/pc-link-editor-popover.js +0 -114
  190. package/es/components/cell-editor-popover/pc-select-editor-popover.js +0 -143
  191. package/es/components/common/collaborator-item.js +0 -63
  192. package/es/components/common/edit-editor-button.js +0 -56
  193. package/es/components/common/link-editor-option.js +0 -113
  194. package/es/components/common/mobile/mb-editor-header.js +0 -48
  195. package/es/components/common/select-editor-option.js +0 -106
  196. package/es/constants/cell-types.js +0 -25
  197. package/es/constants/index.js +0 -49
  198. package/es/css/cell-editor.css +0 -614
  199. package/es/css/cell-formatter.css +0 -4
  200. package/es/css/custom-rc-calendar.css +0 -118
  201. package/es/formatterConfig/index.js +0 -31
  202. package/es/index.js +0 -31
  203. package/es/lang/index.js +0 -50
  204. package/es/locals/de.js +0 -2
  205. package/es/locals/en.js +0 -17
  206. package/es/locals/fr.js +0 -2
  207. package/es/locals/zh-CN.js +0 -17
  208. package/es/toaster/alert.js +0 -150
  209. package/es/toaster/index.js +0 -3
  210. package/es/toaster/toast.js +0 -179
  211. package/es/toaster/toastManager.js +0 -170
  212. package/es/toaster/toaster.js +0 -76
  213. package/es/utils/cell-value-validator.js +0 -31
  214. package/es/utils/column-utils.js +0 -7
  215. package/es/utils/editor-utils.js +0 -71
  216. package/es/utils/markdown2html.js +0 -62
  217. package/es/utils/normalize-long-text-value.js +0 -69
  218. package/es/utils/number-precision.js +0 -164
  219. package/es/utils/unified/index.js +0 -470
  220. package/es/utils/utils.js +0 -116
  221. package/es/utils/value-format-utils.js +0 -497
  222. package/es/utils/vfile/core.js +0 -172
  223. package/es/utils/vfile/index.js +0 -48
@@ -1,164 +0,0 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/esm/createClass";
4
- import _inherits from "@babel/runtime/helpers/esm/inherits";
5
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
6
- import React from 'react';
7
- import { FORMULA_RESULT_TYPE, CellType } from '../constants';
8
- import cellFormatterFactory from '../cellFormatterFactory';
9
- import { isFunction } from '../utils/utils';
10
- import TextFormatter from '../TextFormatter';
11
- import { isArrayFormalColumn, isSimpleCellFormatter } from '../utils/column-utils';
12
- import cellValueValidator from '../utils/cell-value-validator';
13
- import { getFormulaDisplayString } from '../utils/value-format-utils';
14
- import './index.css';
15
-
16
- var FormulaFormatter = /*#__PURE__*/function (_React$Component) {
17
- _inherits(FormulaFormatter, _React$Component);
18
-
19
- var _super = _createSuper(FormulaFormatter);
20
-
21
- function FormulaFormatter() {
22
- var _this;
23
-
24
- _classCallCheck(this, FormulaFormatter);
25
-
26
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27
- args[_key] = arguments[_key];
28
- }
29
-
30
- _this = _super.call.apply(_super, [this].concat(args));
31
-
32
- _this.getGridCellClassName = function (resultType) {
33
- switch (resultType) {
34
- case FORMULA_RESULT_TYPE.NUMBER:
35
- {
36
- return 'text-right';
37
- }
38
-
39
- default:
40
- {
41
- return '';
42
- }
43
- }
44
- };
45
-
46
- _this.renderOtherColumnFormatter = function () {
47
- var _this$props = _this.props,
48
- value = _this$props.value,
49
- column = _this$props.column,
50
- collaborators = _this$props.collaborators;
51
- var columnData = column.data;
52
- var array_type = columnData.array_type,
53
- array_data = columnData.array_data;
54
-
55
- if (!array_type || array_type === CellType.LINK) {
56
- return null;
57
- }
58
-
59
- var Formatter = cellFormatterFactory.createFormatter(array_type);
60
-
61
- var formatterProps = _this.getFormatterProps(array_type, array_data, collaborators);
62
-
63
- if (isArrayFormalColumn(array_type)) {
64
- formatterProps.value = value;
65
- return _this.createColumnFormatter(Formatter, formatterProps);
66
- }
67
-
68
- var _isSimpleCellFormatterColumn = isSimpleCellFormatter(array_type);
69
-
70
- var cellValue = value;
71
-
72
- if (!Array.isArray(value)) {
73
- cellValue = cellValueValidator(value, array_type) ? [value] : [];
74
- }
75
-
76
- var contentItemClassName = "formula-formatter-content-item ".concat(_isSimpleCellFormatterColumn ? 'simple-cell-formatter' : '');
77
- return /*#__PURE__*/React.createElement("div", {
78
- className: "dtable-ui formula-formatter multiple"
79
- }, cellValue.map(function (v, index) {
80
- formatterProps.value = v;
81
- return /*#__PURE__*/React.createElement("div", {
82
- className: contentItemClassName,
83
- key: "formula-formatter-content-item-".concat(index)
84
- }, _this.createColumnFormatter(Formatter, formatterProps));
85
- }));
86
- };
87
-
88
- _this.getFormatterProps = function (array_type, array_data, collaborators) {
89
- switch (array_type) {
90
- case CellType.DURATION:
91
- {
92
- var duration_format = array_data.duration_format;
93
- return {
94
- format: duration_format
95
- };
96
- }
97
-
98
- case CellType.NUMBER:
99
- case CellType.RATE:
100
- case CellType.GEOLOCATION:
101
- {
102
- return {
103
- data: array_data
104
- };
105
- }
106
-
107
- default:
108
- {
109
- return _objectSpread(_objectSpread({}, array_data), {}, {
110
- collaborators: collaborators
111
- });
112
- }
113
- }
114
- };
115
-
116
- return _this;
117
- }
118
-
119
- _createClass(FormulaFormatter, [{
120
- key: "createColumnFormatter",
121
- value: function createColumnFormatter(Formatter, formatterProps) {
122
- if (React.isValidElement(Formatter)) {
123
- return React.cloneElement(Formatter, _objectSpread({}, formatterProps));
124
- } else if (isFunction(Formatter)) {
125
- return /*#__PURE__*/React.createElement(Formatter, formatterProps);
126
- }
127
-
128
- return /*#__PURE__*/React.createElement(TextFormatter, formatterProps);
129
- }
130
- }, {
131
- key: "render",
132
- value: function render() {
133
- var _this$props2 = this.props,
134
- value = _this$props2.value,
135
- containerClassName = _this$props2.containerClassName,
136
- column = _this$props2.column,
137
- collaborators = _this$props2.collaborators;
138
- var columnData = column.data;
139
- var resultType = columnData.result_type;
140
-
141
- if (resultType === FORMULA_RESULT_TYPE.ARRAY) {
142
- return this.renderOtherColumnFormatter();
143
- }
144
-
145
- if (typeof value === 'object') {
146
- return null;
147
- }
148
-
149
- var gridCellClassName = this.getGridCellClassName(resultType);
150
- var formattedValue = getFormulaDisplayString(value, columnData, {
151
- collaborators: collaborators
152
- });
153
- return /*#__PURE__*/React.createElement("div", {
154
- className: "dtable-ui cell-formatter-container formula-formatter ".concat(containerClassName, " ").concat(gridCellClassName),
155
- title: formattedValue,
156
- "aria-label": formattedValue
157
- }, formattedValue);
158
- }
159
- }]);
160
-
161
- return FormulaFormatter;
162
- }(React.Component);
163
-
164
- export default FormulaFormatter;
@@ -1 +0,0 @@
1
- @import url('../css/cell-formatter.css');
@@ -1,53 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- import cn from 'astro-classname';
7
- import { getGeolocationDisplayString } from '../utils/value-format-utils';
8
- import './index.css';
9
-
10
- var GeolocationFormatter = /*#__PURE__*/function (_React$Component) {
11
- _inherits(GeolocationFormatter, _React$Component);
12
-
13
- var _super = _createSuper(GeolocationFormatter);
14
-
15
- function GeolocationFormatter() {
16
- _classCallCheck(this, GeolocationFormatter);
17
-
18
- return _super.apply(this, arguments);
19
- }
20
-
21
- _createClass(GeolocationFormatter, [{
22
- key: "render",
23
- value: function render() {
24
- var _this$props = this.props,
25
- value = _this$props.value,
26
- data = _this$props.data,
27
- containerClassName = _this$props.containerClassName;
28
- var className = cn('dtable-ui cell-formatter-container geolocation-formatter', containerClassName);
29
-
30
- if (typeof value !== 'object') {
31
- return null;
32
- }
33
-
34
- return /*#__PURE__*/React.createElement("div", {
35
- className: className
36
- }, getGeolocationDisplayString(value, data));
37
- }
38
- }]);
39
-
40
- return GeolocationFormatter;
41
- }(React.Component);
42
-
43
- GeolocationFormatter.defaultProps = {
44
- value: {
45
- province: '',
46
- city: '',
47
- district: '',
48
- detail: ''
49
- },
50
- data: {},
51
- containerClassName: ''
52
- };
53
- export default GeolocationFormatter;
@@ -1,150 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- import Loading from '../Loading';
7
- import { getImageThumbnailUrl } from '../utils/utils';
8
-
9
- var ImagesLazyLoad = /*#__PURE__*/function (_React$Component) {
10
- _inherits(ImagesLazyLoad, _React$Component);
11
-
12
- var _super = _createSuper(ImagesLazyLoad);
13
-
14
- function ImagesLazyLoad(props) {
15
- var _this;
16
-
17
- _classCallCheck(this, ImagesLazyLoad);
18
-
19
- _this = _super.call(this, props);
20
-
21
- _this.componentDidMount = function () {
22
- var images = _this.state.images;
23
-
24
- _this.lazyLoadImages(images);
25
- };
26
-
27
- _this.componentWillReceiveProps = function (nextProps) {
28
- if (nextProps.images.toString() !== _this.props.images.toString()) {
29
- _this.lazyLoadImages(nextProps.images);
30
- }
31
- };
32
-
33
- _this.componentWillUnmount = function () {
34
- // prevent async operation
35
- _this.setState = function (state, callback) {
36
- return;
37
- };
38
- };
39
-
40
- _this.lazyLoadImages = function (images) {
41
- if (!Array.isArray(images) || images.length === 0) {
42
- return;
43
- }
44
-
45
- var server = _this.props.server.server;
46
- images.forEach(function (item) {
47
- var url = getImageThumbnailUrl(item, server);
48
-
49
- _this.lazyLoadImage(url, function (image) {
50
- var _this$state = _this.state,
51
- loadedCount = _this$state.loadedCount,
52
- loadedImages = _this$state.loadedImages;
53
-
54
- _this.setState({
55
- loadedCount: loadedCount + 1,
56
- loadedImages: loadedImages.concat(image)
57
- });
58
- }, function () {
59
- var loadedCount = _this.state.loadedCount;
60
-
61
- _this.setState({
62
- loadedCount: loadedCount + 1
63
- });
64
- });
65
- });
66
- };
67
-
68
- _this.lazyLoadImage = function (url, resolve, reject) {
69
- if (!url) {
70
- reject('img path is require');
71
- return;
72
- }
73
-
74
- var image = new Image();
75
-
76
- image.onload = function () {
77
- resolve(image);
78
- };
79
-
80
- image.onerror = function (e) {
81
- reject(e);
82
- };
83
-
84
- image.src = url;
85
- };
86
-
87
- _this.onMouseDown = function (event) {
88
- event.stopPropagation();
89
- };
90
-
91
- _this.onImageClick = function (event, index) {
92
- event.stopPropagation();
93
-
94
- _this.props.onImageClick(index);
95
- };
96
-
97
- _this.state = {
98
- images: props.images,
99
- loadedImages: [],
100
- loadedCount: 0
101
- };
102
- return _this;
103
- }
104
-
105
- _createClass(ImagesLazyLoad, [{
106
- key: "render",
107
- value: function render() {
108
- var _this2 = this;
109
-
110
- var _this$state2 = this.state,
111
- images = _this$state2.images,
112
- loadedImages = _this$state2.loadedImages,
113
- loadedCount = _this$state2.loadedCount;
114
-
115
- if (!Array.isArray(images) || images.length === 0) {
116
- return '';
117
- }
118
-
119
- if (images.length > loadedCount) {
120
- var style = {
121
- marginLeft: '4px'
122
- };
123
- return /*#__PURE__*/React.createElement("div", {
124
- style: style
125
- }, /*#__PURE__*/React.createElement(Loading, null));
126
- }
127
-
128
- if (images.length === loadedCount) {
129
- return loadedImages.map(function (image, index) {
130
- return /*#__PURE__*/React.createElement("img", {
131
- key: index,
132
- className: "image-item",
133
- src: image.src,
134
- onMouseDown: _this2.onMouseDown,
135
- onClick: function onClick(event) {
136
- return _this2.onImageClick(event, index);
137
- },
138
- alt: ""
139
- });
140
- });
141
- }
142
-
143
- return '';
144
- }
145
- }]);
146
-
147
- return ImagesLazyLoad;
148
- }(React.Component);
149
-
150
- export default ImagesLazyLoad;
@@ -1,34 +0,0 @@
1
- @import url('../css/cell-formatter.css');
2
-
3
- .dtable-ui.image-formatter {
4
- display: flex;
5
- align-items: center;
6
- }
7
-
8
- .dtable-ui.image-formatter .image-item {
9
- display: inline-block;
10
- height: 28px;
11
- width: 28px;
12
- margin-right: 4px;
13
- border: 1px solid #f0f0f0;
14
- }
15
-
16
- .dtable-ui.image-formatter .image-item:hover {
17
- border: 1px solid #c9c9c9;
18
- }
19
-
20
- .dtable-ui.image-formatter .image-item-count {
21
- display: inline-block;
22
- padding: 0 3px;
23
- min-width: 14px;
24
- line-height: 14px;
25
- font-size: 12px;
26
- border-radius: 6px;
27
- text-align: center;
28
- text-overflow: ellipsis;
29
- white-space: nowrap;
30
- color: #fff;
31
- background-color: #999;
32
- -webkit-transform: translate(-50%, 8px) scale(.8);
33
- transform: translate(-50%, 8px) scale(.8);
34
- }
@@ -1,154 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React, { Fragment } from 'react';
6
- import cn from 'astro-classname';
7
- import ImagesLazyLoad from './images-lazy-load';
8
- import { getImageThumbnailUrl } from '../utils/utils';
9
- import ImagePreviewerLightbox from '../ImagePreviewerLightbox';
10
- import './index.css';
11
-
12
- var ImageFormatter = /*#__PURE__*/function (_React$Component) {
13
- _inherits(ImageFormatter, _React$Component);
14
-
15
- var _super = _createSuper(ImageFormatter);
16
-
17
- function ImageFormatter(props) {
18
- var _this;
19
-
20
- _classCallCheck(this, ImageFormatter);
21
-
22
- _this = _super.call(this, props);
23
-
24
- _this.onImageClick = function (index) {
25
- if (!_this.props.isSupportPreview) return;
26
-
27
- _this.setState({
28
- isPreviewImage: true,
29
- previewImageIndex: index
30
- });
31
- };
32
-
33
- _this.closeImagePopup = function () {
34
- if (!_this.props.isSupportPreview) return;
35
-
36
- _this.setState({
37
- isPreviewImage: false,
38
- previewImageIndex: -1
39
- });
40
- };
41
-
42
- _this.movePrev = function () {
43
- var images = _this.props.value;
44
-
45
- _this.setState(function (prevState) {
46
- return {
47
- previewImageIndex: (prevState.previewImageIndex + images.length - 1) % images.length
48
- };
49
- });
50
- };
51
-
52
- _this.moveNext = function () {
53
- var images = _this.props.value;
54
-
55
- _this.setState(function (prevState) {
56
- return {
57
- previewImageIndex: (prevState.previewImageIndex + 1) % images.length
58
- };
59
- });
60
- };
61
-
62
- _this.downloadImage = function (imageItemUrl) {
63
- if (!_this.props.downloadImage) return;
64
-
65
- _this.props.downloadImage(imageItemUrl);
66
- };
67
-
68
- _this.deleteImage = function (index) {
69
- var readOnly = _this.props.readOnly;
70
- if (readOnly) return;
71
- if (!_this.props.deleteImage) return;
72
-
73
- _this.props.deleteImage(index);
74
- };
75
-
76
- _this.onRotateImage = function (index, degree) {
77
- var readOnly = _this.props.readOnly;
78
- if (readOnly) return;
79
- if (!_this.props.rotateImage) return;
80
-
81
- _this.props.rotateImage(index, degree);
82
- };
83
-
84
- _this.state = {
85
- isPreviewImage: false,
86
- previewImageIndex: -1
87
- };
88
- return _this;
89
- }
90
-
91
- _createClass(ImageFormatter, [{
92
- key: "render",
93
- value: function render() {
94
- var _this$props = this.props,
95
- isSample = _this$props.isSample,
96
- value = _this$props.value,
97
- server = _this$props.server,
98
- containerClassName = _this$props.containerClassName,
99
- readOnly = _this$props.readOnly;
100
- var className = cn('dtable-ui cell-formatter-container image-formatter', containerClassName);
101
- var _this$state = this.state,
102
- isPreviewImage = _this$state.isPreviewImage,
103
- previewImageIndex = _this$state.previewImageIndex;
104
-
105
- if (!Array.isArray(value) || value.length === 0) {
106
- return null;
107
- }
108
-
109
- if (isSample) {
110
- var item = value[0];
111
- var url = getImageThumbnailUrl(item, server);
112
- return /*#__PURE__*/React.createElement("div", {
113
- className: className
114
- }, /*#__PURE__*/React.createElement("img", {
115
- className: "image-item",
116
- src: url,
117
- alt: ""
118
- }), value.length !== 1 && /*#__PURE__*/React.createElement("span", {
119
- className: "image-item-count"
120
- }, "+".concat(value.length)));
121
- }
122
-
123
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("div", {
124
- className: className
125
- }, /*#__PURE__*/React.createElement(ImagesLazyLoad, {
126
- images: value,
127
- server: server,
128
- onImageClick: this.onImageClick
129
- })), isPreviewImage && /*#__PURE__*/React.createElement(ImagePreviewerLightbox, {
130
- imageItems: value,
131
- imageIndex: previewImageIndex,
132
- closeImagePopup: this.closeImagePopup,
133
- moveToPrevImage: this.movePrev,
134
- moveToNextImage: this.moveNext,
135
- deleteImage: readOnly ? null : this.deleteImage,
136
- downloadImage: this.downloadImage,
137
- onRotateImage: readOnly ? null : this.onRotateImage,
138
- readOnly: readOnly
139
- }));
140
- }
141
- }]);
142
-
143
- return ImageFormatter;
144
- }(React.Component);
145
-
146
- ImageFormatter.defaultProps = {
147
- isSample: false,
148
- isSupportPreview: false,
149
- readOnly: true,
150
- value: [],
151
- server: '',
152
- containerClassName: ''
153
- };
154
- export default ImageFormatter;
@@ -1,87 +0,0 @@
1
- .dtable-ui-component.mobile-image-previewer .ril-prev-button,
2
- .dtable-ui-component.mobile-image-previewer .ril-next-button,
3
- .dtable-ui-component.mobile-image-previewer .ril-caption .ril-zoom-in,
4
- .dtable-ui-component.mobile-image-previewer .ril-caption .ril-zoom-out {
5
- display: none;
6
- }
7
-
8
- .dtable-ui-component.mobile-image-previewer .ril-toolbar .ril__toolbarRightSide {
9
- padding-right: 14px;
10
- }
11
-
12
- .dtable-ui-component.image-footer-choice.mobile-image-footer-choice {
13
- height: 100px;
14
- background-color: #000;
15
- z-index: 1052;
16
- padding: 0;
17
- width: 100%;
18
- border-radius: 2px;
19
- border-top-right-radius: 0;
20
- border-top-left-radius: 0;
21
- bottom: 0;
22
- position: absolute;
23
- color: #fff;
24
- background: rgba(0, 0, 0, 0.6);
25
- display: flex;
26
- justify-content: space-between;
27
- align-items: center;
28
- }
29
-
30
- .dtable-ui-component.image-footer-choice.mobile-image-footer-choice .image-footer-icon {
31
- width: 100%;
32
- display: flex;
33
- align-items: center;
34
- justify-content: space-between;
35
- flex-direction: row-reverse;
36
- margin: 0 20px;
37
- }
38
-
39
- .dtable-ui-component.image-footer-choice.mobile-image-footer-choice .image-footer-icon .image-footer-choice-item {
40
- height: 40px;
41
- width: 40px;
42
- border-radius: 5px;
43
- background-color: #333;
44
- cursor: pointer;
45
- display: flex;
46
- justify-content: center;
47
- align-items: center;
48
- color: #dbdbdb;
49
- }
50
-
51
- .dtable-ui-component.image-footer-choice.mobile-image-footer-choice .image-footer-icon .image-footer-choice-item i {
52
- font-size: 20px;
53
- }
54
-
55
- .ril__outer .ril-caption button.dtable-font {
56
- height: 50px;
57
- font-size: 20px;
58
- }
59
-
60
- .ril__outer .ril-toolbar button.dtable-font {
61
- border: none;
62
- }
63
-
64
- .ril__outer .ril-toolbar button.dtable-font:focus {
65
- outline: none;
66
- }
67
-
68
- .ril__outer button.dtable-font {
69
- font-size: 16px;
70
- }
71
-
72
- .ril__outer .ril-toolbar .ril-close {
73
- width: 30px;
74
- height: 53px;
75
- }
76
-
77
- .ril__outer .ril__toolbarItem {
78
- height: 50px;
79
- }
80
-
81
- .ril__outer .ril__toolbarItem button {
82
- opacity: 0.7;
83
- }
84
-
85
- .ril__outer .ril__toolbarItem button:hover {
86
- opacity: 1;
87
- }