linear-react-components-ui 1.0.10-beta.27 → 1.0.10-beta.28
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/.gitlab-ci.yml +2 -2
- package/lib/assets/styles/file.scss +33 -0
- package/lib/hint/index.js +17 -1
- package/lib/hint/types.d.ts +1 -1
- package/lib/icons/helper.d.ts +4 -0
- package/lib/icons/helper.js +4 -0
- package/lib/inputs/base/types.d.ts +1 -1
- package/lib/inputs/file/DefaultFile.js +8 -2
- package/lib/inputs/file/DragDropFile.js +34 -14
- package/lib/inputs/file/types.d.ts +4 -1
- package/package.json +1 -1
package/.gitlab-ci.yml
CHANGED
|
@@ -4,7 +4,7 @@ stages:
|
|
|
4
4
|
|
|
5
5
|
lint:
|
|
6
6
|
stage: lint
|
|
7
|
-
image: node:
|
|
7
|
+
image: node:14.21.3
|
|
8
8
|
before_script:
|
|
9
9
|
- npm install
|
|
10
10
|
script:
|
|
@@ -12,7 +12,7 @@ lint:
|
|
|
12
12
|
|
|
13
13
|
units:
|
|
14
14
|
stage: tests-units
|
|
15
|
-
image: node:
|
|
15
|
+
image: node:14.21.3
|
|
16
16
|
before_script:
|
|
17
17
|
- npm install
|
|
18
18
|
script:
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
@import "colors.scss";
|
|
2
2
|
@import "effects";
|
|
3
|
+
@import "commons.scss";
|
|
4
|
+
|
|
3
5
|
::-webkit-file-upload-button {
|
|
4
6
|
display: none;
|
|
5
7
|
}
|
|
@@ -55,6 +57,11 @@
|
|
|
55
57
|
background-color: #d1f0d7;
|
|
56
58
|
border-color: $success-border-color;
|
|
57
59
|
}
|
|
60
|
+
> img {
|
|
61
|
+
width: 50%;
|
|
62
|
+
object-fit: cover;
|
|
63
|
+
height: 150px;
|
|
64
|
+
}
|
|
58
65
|
> label {
|
|
59
66
|
width: 100%;
|
|
60
67
|
display: flex;
|
|
@@ -144,6 +151,16 @@
|
|
|
144
151
|
}
|
|
145
152
|
}
|
|
146
153
|
}
|
|
154
|
+
> .errormessages {
|
|
155
|
+
width: 100%;
|
|
156
|
+
color: red;
|
|
157
|
+
font-size: 13px!important;
|
|
158
|
+
line-height: 13px;
|
|
159
|
+
margin-top: 3px;
|
|
160
|
+
}
|
|
161
|
+
> .-skeletonized {
|
|
162
|
+
height: 180px !important;
|
|
163
|
+
}
|
|
147
164
|
}
|
|
148
165
|
|
|
149
166
|
.input-simple-file-container {
|
|
@@ -166,6 +183,13 @@
|
|
|
166
183
|
opacity: 0.5;
|
|
167
184
|
}
|
|
168
185
|
}
|
|
186
|
+
> .errormessages {
|
|
187
|
+
width: 100%;
|
|
188
|
+
color: red;
|
|
189
|
+
font-size: 13px!important;
|
|
190
|
+
line-height: 13px;
|
|
191
|
+
margin-top: 3px;
|
|
192
|
+
}
|
|
169
193
|
}
|
|
170
194
|
|
|
171
195
|
.popovercontainer{
|
|
@@ -189,3 +213,12 @@
|
|
|
189
213
|
}
|
|
190
214
|
}
|
|
191
215
|
}
|
|
216
|
+
|
|
217
|
+
.-skeletonized {
|
|
218
|
+
@extend %skeleton-component;
|
|
219
|
+
color: transparent !important;
|
|
220
|
+
text-shadow: none;
|
|
221
|
+
box-shadow: none;
|
|
222
|
+
border-color: transparent !important;
|
|
223
|
+
transition: none;
|
|
224
|
+
}
|
package/lib/hint/index.js
CHANGED
|
@@ -16,10 +16,26 @@ var Hint = function Hint(_ref) {
|
|
|
16
16
|
skeletonize = _ref$skeletonize === void 0 ? false : _ref$skeletonize,
|
|
17
17
|
style = _ref.style;
|
|
18
18
|
if (!visible || !description) return null;
|
|
19
|
+
var showHintList = function showHintList(arrayHint) {
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
21
|
+
className: "rules-list",
|
|
22
|
+
style: {
|
|
23
|
+
padding: '15px 0px'
|
|
24
|
+
}
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement("ul", {
|
|
26
|
+
style: {
|
|
27
|
+
listStyleType: 'none'
|
|
28
|
+
}
|
|
29
|
+
}, arrayHint.map(function (hint, index) {
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
31
|
+
key: index.toString()
|
|
32
|
+
}, "- ", hint);
|
|
33
|
+
})));
|
|
34
|
+
};
|
|
19
35
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
20
36
|
style: style,
|
|
21
37
|
className: "\n hint-component\n ".concat(customClass, "\n ").concat(skeletonize ? '-skeletonized' : '', "\n ")
|
|
22
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, description));
|
|
38
|
+
}, Array.isArray(description) ? showHintList(description) : /*#__PURE__*/_react.default.createElement("span", null, description));
|
|
23
39
|
};
|
|
24
40
|
var _default = Hint;
|
|
25
41
|
exports.default = _default;
|
package/lib/hint/types.d.ts
CHANGED
package/lib/icons/helper.d.ts
CHANGED
package/lib/icons/helper.js
CHANGED
|
@@ -117,6 +117,10 @@ var _default = {
|
|
|
117
117
|
viewbox: '0 0 16 16',
|
|
118
118
|
paths: ['M11 4h3.627c-0.078-0.126-0.172-0.266-0.286-0.421-0.347-0.473-0.831-1.027-1.362-1.558s-1.085-1.015-1.558-1.362c-0.155-0.114-0.295-0.208-0.421-0.286v3.627z', 'M10.5 5c-0.276 0-0.5-0.224-0.5-0.5v-4.5h-7.75c-0.689 0-1.25 0.561-1.25 1.25v13.5c0 0.689 0.561 1.25 1.25 1.25h11.5c0.689 0 1.25-0.561 1.25-1.25v-9.75h-4.5zM8 15.5l-3.5-3.5h2.5v-5h2v5h2.5l-3.5 3.5z']
|
|
119
119
|
},
|
|
120
|
+
file_excel: {
|
|
121
|
+
viewbox: '0 0 16 16',
|
|
122
|
+
paths: ['M11.61 6h-2.114l-1.496 2.204-1.496-2.204h-2.114l2.534 3.788-2.859 4.212h3.935v-1.431h-0.784l0.784-1.172 1.741 2.603h2.194l-2.859-4.212 2.534-3.788z', 'M14.341 3.579c-0.347-0.473-0.831-1.027-1.362-1.558s-1.085-1.015-1.558-1.362c-0.806-0.591-1.197-0.659-1.421-0.659h-7.75c-0.689 0-1.25 0.561-1.25 1.25v13.5c0 0.689 0.561 1.25 1.25 1.25h11.5c0.689 0 1.25-0.561 1.25-1.25v-9.75c0-0.224-0.068-0.615-0.659-1.421v0zM12.271 2.729c0.48 0.48 0.856 0.912 1.134 1.271h-2.406v-2.405c0.359 0.278 0.792 0.654 1.271 1.134v0zM14 14.75c0 0.136-0.114 0.25-0.25 0.25h-11.5c-0.135 0-0.25-0.114-0.25-0.25v-13.5c0-0.135 0.115-0.25 0.25-0.25 0 0 7.749-0 7.75 0v3.5c0 0.276 0.224 0.5 0.5 0.5h3.5v9.75z']
|
|
123
|
+
},
|
|
120
124
|
search: {
|
|
121
125
|
viewbox: '0 0 16 16',
|
|
122
126
|
paths: ['M16 13.5l-4.695-4.695c0.444-0.837 0.695-1.792 0.695-2.805 0-3.314-2.686-6-6-6s-6 2.686-6 6 2.686 6 6 6c1.013 0 1.968-0.252 2.805-0.695l4.695 4.695 2.5-2.5zM2 6c0-2.209 1.791-4 4-4s4 1.791 4 4-1.791 4-4 4-4-1.791-4-4z']
|
|
@@ -57,7 +57,7 @@ interface IBaseProps {
|
|
|
57
57
|
requiredError?: boolean;
|
|
58
58
|
inputRef?: MutableRefObject<HTMLInputElement | HTMLTextAreaElement | null> | ((ref: HTMLInputElement | HTMLTextAreaElement | null) => void);
|
|
59
59
|
inputBaseRef?: RefObject<HTMLDivElement> | ((ref: HTMLDivElement) => void);
|
|
60
|
-
hint?: string;
|
|
60
|
+
hint?: string | string[];
|
|
61
61
|
textAlign?: TextAlign;
|
|
62
62
|
rounded?: boolean;
|
|
63
63
|
errorMessages?: string[] | undefined;
|
|
@@ -13,6 +13,7 @@ require("../../assets/styles/file.scss");
|
|
|
13
13
|
var _buttons = _interopRequireDefault(require("../../buttons"));
|
|
14
14
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
15
15
|
var _popover = _interopRequireWildcard(require("../../popover"));
|
|
16
|
+
var helperBase = _interopRequireWildcard(require("../base/helpers"));
|
|
16
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
19
|
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; }
|
|
@@ -32,6 +33,10 @@ var DefaultFile = function DefaultFile(props) {
|
|
|
32
33
|
onBtnClickRemove = props.onBtnClickRemove,
|
|
33
34
|
inputRef = props.inputRef,
|
|
34
35
|
defaultFiles = props.defaultFiles,
|
|
36
|
+
_props$hint = props.hint,
|
|
37
|
+
hint = _props$hint === void 0 ? [] : _props$hint,
|
|
38
|
+
_props$errorMessages = props.errorMessages,
|
|
39
|
+
errorMessages = _props$errorMessages === void 0 ? [] : _props$errorMessages,
|
|
35
40
|
onChange = props.onChange;
|
|
36
41
|
var getFilesList = function getFilesList(files) {
|
|
37
42
|
return !(files !== null && files !== void 0 && files.length) ? [] : _lodash.default.map(files, function (file) {
|
|
@@ -78,11 +83,12 @@ var DefaultFile = function DefaultFile(props) {
|
|
|
78
83
|
(_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
|
|
79
84
|
var files = getFilesList(e.target.files);
|
|
80
85
|
setFileList(files);
|
|
81
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
86
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(files, e);
|
|
82
87
|
};
|
|
83
88
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
84
89
|
className: "input-simple-file-container"
|
|
85
90
|
}, /*#__PURE__*/_react.default.createElement(_InputTextBase.default, _extends({}, props, {
|
|
91
|
+
hint: hint,
|
|
86
92
|
readOnlyClass: "-disabledVisualApply",
|
|
87
93
|
customClassForInputContent: "-absolute -pointEventDisabled -disabledVisualApply",
|
|
88
94
|
type: "file",
|
|
@@ -96,7 +102,7 @@ var DefaultFile = function DefaultFile(props) {
|
|
|
96
102
|
return _onBtnClickInsert();
|
|
97
103
|
}
|
|
98
104
|
})
|
|
99
|
-
}), popUpDescription(), buttonRemoveFile()));
|
|
105
|
+
}), popUpDescription(), buttonRemoveFile()), errorMessages && helperBase.getErrorMessages(errorMessages));
|
|
100
106
|
};
|
|
101
107
|
var _default = DefaultFile;
|
|
102
108
|
exports.default = _default;
|
|
@@ -10,6 +10,8 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
10
10
|
var _buttons = require("../../buttons");
|
|
11
11
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
12
12
|
var _InputTextBase = _interopRequireDefault(require("../base/InputTextBase"));
|
|
13
|
+
var helperBase = _interopRequireWildcard(require("../base/helpers"));
|
|
14
|
+
var _hint = _interopRequireDefault(require("../../hint"));
|
|
13
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
17
|
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; }
|
|
@@ -55,8 +57,16 @@ var DragDropFile = function DragDropFile(props) {
|
|
|
55
57
|
onDragOver = props.onDragOver,
|
|
56
58
|
onDragLeave = props.onDragLeave,
|
|
57
59
|
onDrop = props.onDrop,
|
|
60
|
+
_props$showSubtitle = props.showSubtitle,
|
|
61
|
+
showSubtitle = _props$showSubtitle === void 0 ? true : _props$showSubtitle,
|
|
58
62
|
_props$multiple = props.multiple,
|
|
59
|
-
multiple = _props$multiple === void 0 ? false : _props$multiple
|
|
63
|
+
multiple = _props$multiple === void 0 ? false : _props$multiple,
|
|
64
|
+
_props$hint = props.hint,
|
|
65
|
+
hint = _props$hint === void 0 ? [] : _props$hint,
|
|
66
|
+
_props$errorMessages = props.errorMessages,
|
|
67
|
+
errorMessages = _props$errorMessages === void 0 ? [] : _props$errorMessages,
|
|
68
|
+
_props$skeletonize = props.skeletonize,
|
|
69
|
+
skeletonize = _props$skeletonize === void 0 ? false : _props$skeletonize;
|
|
60
70
|
var _useState = (0, _react.useState)(false),
|
|
61
71
|
_useState2 = _slicedToArray(_useState, 2),
|
|
62
72
|
dragActive = _useState2[0],
|
|
@@ -165,7 +175,7 @@ var DragDropFile = function DragDropFile(props) {
|
|
|
165
175
|
return !ids.includes(name, index + 1);
|
|
166
176
|
});
|
|
167
177
|
setFileList(filtered);
|
|
168
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
178
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(files, e);
|
|
169
179
|
onDrop === null || onDrop === void 0 ? void 0 : onDrop(e);
|
|
170
180
|
}
|
|
171
181
|
}
|
|
@@ -190,7 +200,7 @@ var DragDropFile = function DragDropFile(props) {
|
|
|
190
200
|
return !ids.includes(name, index + 1);
|
|
191
201
|
});
|
|
192
202
|
setFileList(filesFiltered);
|
|
193
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
203
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(files, e);
|
|
194
204
|
}
|
|
195
205
|
};
|
|
196
206
|
var onButtonClickRemoveAll = function onButtonClickRemoveAll() {
|
|
@@ -205,16 +215,19 @@ var DragDropFile = function DragDropFile(props) {
|
|
|
205
215
|
};
|
|
206
216
|
var generateListArray = function generateListArray() {
|
|
207
217
|
if ((fileList === null || fileList === void 0 ? void 0 : fileList.length) === 1) {
|
|
208
|
-
return /*#__PURE__*/_react.default.createElement("
|
|
209
|
-
className: "image-preview-solo"
|
|
210
|
-
}, (fileList[0].type === 'image/jpeg' || fileList[0].type === 'image/png') && /*#__PURE__*/_react.default.createElement("img", {
|
|
218
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, fileList[0].type === 'image/jpeg' || fileList[0].type === 'image/png' ? /*#__PURE__*/_react.default.createElement("img", {
|
|
211
219
|
alt: fileList[0].name,
|
|
212
220
|
src: URL.createObjectURL(fileList[0])
|
|
213
|
-
})
|
|
221
|
+
}) : /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
222
|
+
size: 64,
|
|
223
|
+
name: "file_excel"
|
|
224
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
225
|
+
className: "image-preview-solo"
|
|
226
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
214
227
|
className: "description-file"
|
|
215
228
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
216
229
|
className: "subtitle"
|
|
217
|
-
}, fileList[0].name)));
|
|
230
|
+
}, fileList[0].name))));
|
|
218
231
|
}
|
|
219
232
|
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
220
233
|
className: "file-list"
|
|
@@ -253,16 +266,19 @@ var DragDropFile = function DragDropFile(props) {
|
|
|
253
266
|
return e.preventDefault();
|
|
254
267
|
}
|
|
255
268
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
256
|
-
className: "drag-content"
|
|
269
|
+
className: "drag-content ".concat(skeletonize ? '-skeletonized' : '')
|
|
257
270
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
258
|
-
className: "".concat(message.class, "
|
|
271
|
+
className: "".concat(message.class, " ").concat(!skeletonize ? 'content' : '')
|
|
259
272
|
}, message.error || fileList.length === 0 ? /*#__PURE__*/_react.default.createElement("label", {
|
|
260
273
|
htmlFor: id
|
|
261
274
|
}, /*#__PURE__*/_react.default.createElement("h1", {
|
|
262
|
-
className: "title"
|
|
263
|
-
|
|
275
|
+
className: "title",
|
|
276
|
+
style: {
|
|
277
|
+
paddingBottom: '20px'
|
|
278
|
+
}
|
|
279
|
+
}, message.text), showSubtitle && /*#__PURE__*/_react.default.createElement("p", {
|
|
264
280
|
className: "subtitle"
|
|
265
|
-
}, message.subtitle), /*#__PURE__*/_react.default.createElement(_buttons.PrimaryButton, {
|
|
281
|
+
}, message.subtitle), !skeletonize && /*#__PURE__*/_react.default.createElement(_buttons.PrimaryButton, {
|
|
266
282
|
onClick: onBtnClickInsert,
|
|
267
283
|
label: labelButton
|
|
268
284
|
})) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, generateListArray(), /*#__PURE__*/_react.default.createElement("footer", {
|
|
@@ -299,7 +315,11 @@ var DragDropFile = function DragDropFile(props) {
|
|
|
299
315
|
onDragLeave: handleDragLeave,
|
|
300
316
|
onDragOver: handleDragOver,
|
|
301
317
|
onDrop: handleDrop
|
|
302
|
-
})))
|
|
318
|
+
})), errorMessages && helperBase.getErrorMessages(errorMessages), /*#__PURE__*/_react.default.createElement(_hint.default, {
|
|
319
|
+
visible: !!hint,
|
|
320
|
+
customClass: "hint",
|
|
321
|
+
description: hint
|
|
322
|
+
}));
|
|
303
323
|
};
|
|
304
324
|
var _default = DragDropFile;
|
|
305
325
|
exports.default = _default;
|
|
@@ -19,7 +19,7 @@ interface IFileProps {
|
|
|
19
19
|
required?: boolean;
|
|
20
20
|
readOnly?: boolean;
|
|
21
21
|
name?: string;
|
|
22
|
-
onChange?: (e?: CustomInputEvent | DragEvent) => void;
|
|
22
|
+
onChange?: (files: File[], e?: CustomInputEvent | DragEvent) => void;
|
|
23
23
|
size?: Size;
|
|
24
24
|
accept?: string;
|
|
25
25
|
labelButton?: string;
|
|
@@ -29,6 +29,9 @@ interface IFileProps {
|
|
|
29
29
|
onDragOver?: (e?: DragEvent) => void;
|
|
30
30
|
onDrop?: (e?: DragEvent) => void;
|
|
31
31
|
onDragLeave?: (e?: DragEvent) => void;
|
|
32
|
+
errorMessages?: string[];
|
|
33
|
+
skeletonize?: boolean;
|
|
34
|
+
showSubtitle?: boolean;
|
|
32
35
|
}
|
|
33
36
|
interface IDefaultFileProps extends IFileProps {
|
|
34
37
|
onBtnClickInsert: () => void;
|