@megafon/ui-lk-vas 0.4.0 → 0.5.0

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 (35) hide show
  1. package/dist/es/index.d.ts +0 -5
  2. package/dist/es/index.js +1 -6
  3. package/dist/lib/index.d.ts +0 -5
  4. package/dist/lib/index.js +0 -35
  5. package/package.json +4 -4
  6. package/dist/es/components/UploadForm/UploadField/UploadField.css +0 -27
  7. package/dist/es/components/UploadForm/UploadField/UploadField.d.ts +0 -22
  8. package/dist/es/components/UploadForm/UploadField/UploadField.js +0 -56
  9. package/dist/es/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.css +0 -83
  10. package/dist/es/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.d.ts +0 -21
  11. package/dist/es/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.js +0 -50
  12. package/dist/es/components/UploadForm/UploadField/components/useDragAndDrop.d.ts +0 -3
  13. package/dist/es/components/UploadForm/UploadField/components/useDragAndDrop.js +0 -50
  14. package/dist/es/components/UploadForm/UploadFileItem/UploadFileItem.css +0 -112
  15. package/dist/es/components/UploadForm/UploadFileItem/UploadFileItem.d.ts +0 -25
  16. package/dist/es/components/UploadForm/UploadFileItem/UploadFileItem.js +0 -86
  17. package/dist/es/components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon.d.ts +0 -7
  18. package/dist/es/components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon.js +0 -279
  19. package/dist/es/components/UploadForm/UploadFileItem/helpers.d.ts +0 -5
  20. package/dist/es/components/UploadForm/UploadFileItem/helpers.js +0 -27
  21. package/dist/lib/components/UploadForm/UploadField/UploadField.css +0 -27
  22. package/dist/lib/components/UploadForm/UploadField/UploadField.d.ts +0 -22
  23. package/dist/lib/components/UploadForm/UploadField/UploadField.js +0 -65
  24. package/dist/lib/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.css +0 -83
  25. package/dist/lib/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.d.ts +0 -21
  26. package/dist/lib/components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea.js +0 -59
  27. package/dist/lib/components/UploadForm/UploadField/components/useDragAndDrop.d.ts +0 -3
  28. package/dist/lib/components/UploadForm/UploadField/components/useDragAndDrop.js +0 -57
  29. package/dist/lib/components/UploadForm/UploadFileItem/UploadFileItem.css +0 -112
  30. package/dist/lib/components/UploadForm/UploadFileItem/UploadFileItem.d.ts +0 -25
  31. package/dist/lib/components/UploadForm/UploadFileItem/UploadFileItem.js +0 -95
  32. package/dist/lib/components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon.d.ts +0 -7
  33. package/dist/lib/components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon.js +0 -289
  34. package/dist/lib/components/UploadForm/UploadFileItem/helpers.d.ts +0 -5
  35. package/dist/lib/components/UploadForm/UploadFileItem/helpers.js +0 -33
@@ -31,8 +31,3 @@ export { default as TableTd } from './components/Table/components/TableTd/TableT
31
31
  export { default as TableTh } from './components/Table/components/TableTh/TableTh';
32
32
  export { default as TableTooltip } from './components/Table/components/TableTooltip/TableTooltip';
33
33
  export { default as TableTr } from './components/Table/components/TableTr/TableTr';
34
- export { default as UploadField } from './components/UploadForm/UploadField/UploadField';
35
- export { default as UploadFieldDropArea } from './components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea';
36
- export { default as UploadFileItem } from './components/UploadForm/UploadFileItem/UploadFileItem';
37
- export { default as UploadFileItemIcon } from './components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon';
38
- export { default as useDragAndDrop } from './components/UploadForm/UploadField/components/useDragAndDrop';
package/dist/es/index.js CHANGED
@@ -30,9 +30,4 @@ export { default as TableSettings } from "./components/Table/components/TableSet
30
30
  export { default as TableTd } from "./components/Table/components/TableTd/TableTd";
31
31
  export { default as TableTh } from "./components/Table/components/TableTh/TableTh";
32
32
  export { default as TableTooltip } from "./components/Table/components/TableTooltip/TableTooltip";
33
- export { default as TableTr } from "./components/Table/components/TableTr/TableTr";
34
- export { default as UploadField } from "./components/UploadForm/UploadField/UploadField";
35
- export { default as UploadFieldDropArea } from "./components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea";
36
- export { default as UploadFileItem } from "./components/UploadForm/UploadFileItem/UploadFileItem";
37
- export { default as UploadFileItemIcon } from "./components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon";
38
- export { default as useDragAndDrop } from "./components/UploadForm/UploadField/components/useDragAndDrop";
33
+ export { default as TableTr } from "./components/Table/components/TableTr/TableTr";
@@ -31,8 +31,3 @@ export { default as TableTd } from './components/Table/components/TableTd/TableT
31
31
  export { default as TableTh } from './components/Table/components/TableTh/TableTh';
32
32
  export { default as TableTooltip } from './components/Table/components/TableTooltip/TableTooltip';
33
33
  export { default as TableTr } from './components/Table/components/TableTr/TableTr';
34
- export { default as UploadField } from './components/UploadForm/UploadField/UploadField';
35
- export { default as UploadFieldDropArea } from './components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea';
36
- export { default as UploadFileItem } from './components/UploadForm/UploadFileItem/UploadFileItem';
37
- export { default as UploadFileItemIcon } from './components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon';
38
- export { default as useDragAndDrop } from './components/UploadForm/UploadField/components/useDragAndDrop';
package/dist/lib/index.js CHANGED
@@ -195,42 +195,12 @@ Object.defineProperty(exports, "TableTr", {
195
195
  return _TableTr["default"];
196
196
  }
197
197
  });
198
- Object.defineProperty(exports, "UploadField", {
199
- enumerable: true,
200
- get: function get() {
201
- return _UploadField["default"];
202
- }
203
- });
204
- Object.defineProperty(exports, "UploadFieldDropArea", {
205
- enumerable: true,
206
- get: function get() {
207
- return _UploadFieldDropArea["default"];
208
- }
209
- });
210
- Object.defineProperty(exports, "UploadFileItem", {
211
- enumerable: true,
212
- get: function get() {
213
- return _UploadFileItem["default"];
214
- }
215
- });
216
- Object.defineProperty(exports, "UploadFileItemIcon", {
217
- enumerable: true,
218
- get: function get() {
219
- return _UploadFileItemIcon["default"];
220
- }
221
- });
222
198
  Object.defineProperty(exports, "chartColors", {
223
199
  enumerable: true,
224
200
  get: function get() {
225
201
  return _chartColors["default"];
226
202
  }
227
203
  });
228
- Object.defineProperty(exports, "useDragAndDrop", {
229
- enumerable: true,
230
- get: function get() {
231
- return _useDragAndDrop["default"];
232
- }
233
- });
234
204
  var _BottomBar = _interopRequireDefault(require("./components/BottomBar/BottomBar"));
235
205
  var _CardBig = _interopRequireDefault(require("./components/Cards/CardBig/CardBig"));
236
206
  var _CardCell = _interopRequireDefault(require("./components/Cards/components/_CardCell/CardCell"));
@@ -264,9 +234,4 @@ var _TableTd = _interopRequireDefault(require("./components/Table/components/Tab
264
234
  var _TableTh = _interopRequireDefault(require("./components/Table/components/TableTh/TableTh"));
265
235
  var _TableTooltip = _interopRequireDefault(require("./components/Table/components/TableTooltip/TableTooltip"));
266
236
  var _TableTr = _interopRequireDefault(require("./components/Table/components/TableTr/TableTr"));
267
- var _UploadField = _interopRequireDefault(require("./components/UploadForm/UploadField/UploadField"));
268
- var _UploadFieldDropArea = _interopRequireDefault(require("./components/UploadForm/UploadField/components/_UploadFieldDropArea/UploadFieldDropArea"));
269
- var _UploadFileItem = _interopRequireDefault(require("./components/UploadForm/UploadFileItem/UploadFileItem"));
270
- var _UploadFileItemIcon = _interopRequireDefault(require("./components/UploadForm/UploadFileItem/components/_UploadFileItemIcon/UploadFileItemIcon"));
271
- var _useDragAndDrop = _interopRequireDefault(require("./components/UploadForm/UploadField/components/useDragAndDrop"));
272
237
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megafon/ui-lk-vas",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -77,11 +77,11 @@
77
77
  "typescript": "^5.3.3"
78
78
  },
79
79
  "dependencies": {
80
- "@megafon/ui-core": "^7.2.1",
80
+ "@megafon/ui-core": "^7.3.0",
81
81
  "@megafon/ui-helpers": "^3.1.1",
82
- "@megafon/ui-icons": "^3.2.0",
82
+ "@megafon/ui-icons": "^3.2.1",
83
83
  "chart.js": "4.0.1",
84
84
  "lodash.throttle": "^4.1.1"
85
85
  },
86
- "gitHead": "30ed829a286373798a4328c575e1b23f8b726b41"
86
+ "gitHead": "b77283ba6760e14912cc98f3e1745ed53477cd22"
87
87
  }
@@ -1,27 +0,0 @@
1
- h1,
2
- h2,
3
- h3,
4
- h4,
5
- h5 {
6
- margin: 0;
7
- }
8
-
9
- .mfui-lkvas-upload-field {
10
- position: relative;
11
- -webkit-box-sizing: border-box;
12
- box-sizing: border-box;
13
- width: 100%;
14
- max-width: 455px;
15
- }
16
- .mfui-lkvas-upload-field__input {
17
- position: absolute;
18
- width: 1px;
19
- height: 1px;
20
- margin: -1px;
21
- padding: 0;
22
- border: 0;
23
- overflow: hidden;
24
- white-space: nowrap;
25
- clip: rect(0 0 0 0);
26
- clip-path: inset(100%);
27
- }
@@ -1,22 +0,0 @@
1
- import * as React from 'react';
2
- import './UploadField.scss';
3
- export interface IUploadDropField {
4
- /** Дополнительный класс корневого элемента */
5
- className?: string;
6
- /** Обязательность поля */
7
- required?: boolean;
8
- /** Заблокированное состояние */
9
- disabled?: boolean;
10
- /** Действие при выборе файла */
11
- onChange: (files: File[]) => void;
12
- /** Дополнительная информация */
13
- description?: string;
14
- /** Дополнительные data атрибуты к внутренним элементам */
15
- dataAttrs?: {
16
- root?: Record<string, string>;
17
- input?: Record<string, string>;
18
- dropArea?: Record<string, string>;
19
- };
20
- }
21
- declare const UploadField: React.FC<IUploadDropField>;
22
- export default UploadField;
@@ -1,56 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import "core-js/modules/es.symbol.js";
3
- import "core-js/modules/es.symbol.description.js";
4
- import "core-js/modules/es.array.from.js";
5
- import "core-js/modules/es.string.iterator.js";
6
- import * as React from 'react';
7
- import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
8
- import UploadFieldDropArea from "./components/_UploadFieldDropArea/UploadFieldDropArea";
9
- import "./UploadField.css";
10
- var cn = cnCreate('mfui-lkvas-upload-field');
11
- var UploadField = function UploadField(_ref) {
12
- var className = _ref.className,
13
- _ref$required = _ref.required,
14
- required = _ref$required === void 0 ? false : _ref$required,
15
- _ref$disabled = _ref.disabled,
16
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
17
- onChange = _ref.onChange,
18
- description = _ref.description,
19
- dataAttrs = _ref.dataAttrs;
20
- var inputRef = React.useRef(null);
21
- var handleInputChange = React.useCallback(function (e) {
22
- var uploadFiles = Array.from(e.target.files || []);
23
- onChange(uploadFiles);
24
- e.target.value = '';
25
- }, [onChange]);
26
- var handleFileDrop = React.useCallback(function (uploadFiles) {
27
- onChange(uploadFiles);
28
- }, [onChange]);
29
- var handleSelectButtonClick = React.useCallback(function () {
30
- if (!inputRef || !inputRef.current) {
31
- return;
32
- }
33
- inputRef.current.click();
34
- }, []);
35
- return /*#__PURE__*/React.createElement("div", _extends({
36
- className: cn([className])
37
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement("input", _extends({
38
- className: cn('input')
39
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.input), {
40
- multiple: true,
41
- type: "file",
42
- ref: inputRef,
43
- onChange: handleInputChange,
44
- disabled: disabled
45
- })), /*#__PURE__*/React.createElement(UploadFieldDropArea, {
46
- description: description,
47
- required: required,
48
- disabled: disabled,
49
- onDrop: handleFileDrop,
50
- onSelectButtonClick: handleSelectButtonClick,
51
- dataAttrs: {
52
- root: dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.dropArea
53
- }
54
- }));
55
- };
56
- export default UploadField;
@@ -1,83 +0,0 @@
1
- h1,
2
- h2,
3
- h3,
4
- h4,
5
- h5 {
6
- margin: 0;
7
- }
8
-
9
- .mfui-lkvas-upload-field-drop-area {
10
- display: -webkit-box;
11
- display: -ms-flexbox;
12
- display: flex;
13
- -webkit-box-orient: vertical;
14
- -webkit-box-direction: normal;
15
- -ms-flex-direction: column;
16
- flex-direction: column;
17
- gap: 8px;
18
- -webkit-box-align: center;
19
- -ms-flex-align: center;
20
- align-items: center;
21
- width: 100%;
22
- padding: 12px 32px 20px;
23
- border: 1px dashed var(--spbSky2);
24
- border-radius: 12px;
25
- }
26
- .mfui-lkvas-upload-field-drop-area__upload-icon {
27
- width: 40px;
28
- height: 40px;
29
- fill: var(--spbSky3);
30
- }
31
- .mfui-lkvas-upload-field-drop-area__content {
32
- text-align: center;
33
- }
34
- .mfui-lkvas-upload-field-drop-area__select-button {
35
- display: inline-block;
36
- -webkit-box-sizing: border-box;
37
- box-sizing: border-box;
38
- margin-right: 4px;
39
- padding: 0;
40
- border: none;
41
- border-radius: 0;
42
- color: var(--brandGreen);
43
- font-weight: 500;
44
- font-family: inherit;
45
- text-align: center;
46
- text-decoration: none;
47
- background: transparent;
48
- outline: none;
49
- cursor: pointer;
50
- -webkit-appearance: none;
51
- -moz-appearance: none;
52
- appearance: none;
53
- }
54
- .mfui-lkvas-upload-field-drop-area__description {
55
- font-size: 12px;
56
- line-height: 18px;
57
- color: var(--spbSky3);
58
- font-weight: 400;
59
- text-align: center;
60
- }
61
- .mfui-lkvas-upload-field-drop-area__select-button:hover {
62
- color: var(--buttonHoverGreen);
63
- }
64
- .mfui-lkvas-upload-field-drop-area__mark {
65
- color: var(--fury);
66
- }
67
- .mfui-lkvas-upload-field-drop-area_dragging {
68
- border-color: var(--brandGreen);
69
- }
70
- .mfui-lkvas-upload-field-drop-area_dragging * {
71
- pointer-events: none;
72
- }
73
- .mfui-lkvas-upload-field-drop-area_disabled {
74
- color: var(--spbSky3);
75
- background-color: var(--spbSky0);
76
- }
77
- .mfui-lkvas-upload-field-drop-area_disabled .mfui-lkvas-upload-field-drop-area__select-button {
78
- color: var(--spbSky3);
79
- cursor: not-allowed;
80
- }
81
- .mfui-lkvas-upload-field-drop-area_disabled .mfui-lkvas-upload-field-drop-area__mark {
82
- color: var(--spbSky3);
83
- }
@@ -1,21 +0,0 @@
1
- import * as React from 'react';
2
- import './UploadFieldDropArea.scss';
3
- export interface IUploadFieldDropArea {
4
- /** Дополнительная информация */
5
- description?: string;
6
- /** Обязательность поля */
7
- required: boolean;
8
- /** Заблокированное состояние */
9
- disabled: boolean;
10
- /** Обработчик события 'drop' */
11
- onDrop: (files: File[]) => void;
12
- /** Обработчик нажатия на кнопку выбора файлов */
13
- onSelectButtonClick: () => void;
14
- /** Дополнительные data атрибуты к внутренним элементам */
15
- dataAttrs?: {
16
- root?: Record<string, string>;
17
- button?: Record<string, string>;
18
- };
19
- }
20
- declare const UploadFieldDropArea: React.FC<IUploadFieldDropArea>;
21
- export default UploadFieldDropArea;
@@ -1,50 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import "core-js/modules/es.symbol.js";
3
- import "core-js/modules/es.symbol.description.js";
4
- import * as React from 'react';
5
- import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
6
- import useDragAndDrop from "../useDragAndDrop";
7
- import "./UploadFieldDropArea.css";
8
- var CloudUpload = function CloudUpload(props) {
9
- return /*#__PURE__*/React.createElement("svg", _extends({
10
- viewBox: "0 0 40 40"
11
- }, props), /*#__PURE__*/React.createElement("path", {
12
- d: "M19 36V22l-2.38 3.9-1.71-1L19 18h1.88l4.14 6.85-1.71 1L21 22v14zM8.21 32H14v-2H8.21A4.27 4.27 0 014 25.6a4.27 4.27 0 014.21-4.4h2.07V18a9.94 9.94 0 019.66-10 9.94 9.94 0 019.66 10v1h1a5.49 5.49 0 010 11H26v2h4.6a7.49 7.49 0 001-14.91A11.94 11.94 0 0019.94 6 11.94 11.94 0 008.27 18v1.16h-.06A6.27 6.27 0 002 25.6 6.27 6.27 0 008.21 32z"
13
- }));
14
- };
15
- var cn = cnCreate('mfui-lkvas-upload-field-drop-area');
16
- var UploadFieldDropArea = function UploadFieldDropArea(_ref) {
17
- var description = _ref.description,
18
- required = _ref.required,
19
- disabled = _ref.disabled,
20
- onDrop = _ref.onDrop,
21
- onSelectButtonClick = _ref.onSelectButtonClick,
22
- dataAttrs = _ref.dataAttrs;
23
- var dropAreaRef = React.useRef(null);
24
- var currentDropAreaRef = !disabled ? dropAreaRef : {
25
- current: null
26
- };
27
- var isDragging = useDragAndDrop(currentDropAreaRef, onDrop);
28
- return /*#__PURE__*/React.createElement("div", _extends({
29
- className: cn({
30
- disabled: disabled,
31
- dragging: isDragging
32
- }),
33
- ref: dropAreaRef
34
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement(CloudUpload, {
35
- className: cn('upload-icon')
36
- }), /*#__PURE__*/React.createElement("div", {
37
- className: cn('content')
38
- }, /*#__PURE__*/React.createElement("button", _extends({
39
- className: cn('select-button')
40
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.button), {
41
- type: "button",
42
- disabled: disabled,
43
- onClick: !disabled ? onSelectButtonClick : undefined
44
- }), "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u044B"), /*#__PURE__*/React.createElement("span", null, "\u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0438\u0445 \u0441\u044E\u0434\u0430", required && /*#__PURE__*/React.createElement("span", {
45
- className: cn('mark')
46
- }, "*"))), !!description && /*#__PURE__*/React.createElement("div", {
47
- className: cn('description')
48
- }, description));
49
- };
50
- export default UploadFieldDropArea;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const useDragAndDrop: (dropAreaRef: React.RefObject<HTMLElement>, onDrop: (files: File[]) => void) => boolean;
3
- export default useDragAndDrop;
@@ -1,50 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import "core-js/modules/es.array.from.js";
3
- import "core-js/modules/es.string.iterator.js";
4
- import React from 'react';
5
- var useDragAndDrop = function useDragAndDrop(dropAreaRef, onDrop) {
6
- var _React$useState = React.useState(false),
7
- _React$useState2 = _slicedToArray(_React$useState, 2),
8
- isDragging = _React$useState2[0],
9
- setIsDragging = _React$useState2[1];
10
- var dragEnterHandler = React.useCallback(function (e) {
11
- e.preventDefault();
12
- e.stopPropagation();
13
- setIsDragging(true);
14
- }, []);
15
- var dragLeaveHandler = React.useCallback(function (e) {
16
- e.preventDefault();
17
- e.stopPropagation();
18
- setIsDragging(false);
19
- }, []);
20
- var dragOverHandler = React.useCallback(function (e) {
21
- e.preventDefault();
22
- e.stopPropagation();
23
- }, []);
24
- var dropHandler = React.useCallback(function (e) {
25
- e.preventDefault();
26
- e.stopPropagation();
27
- setIsDragging(false);
28
- if (e.dataTransfer) {
29
- onDrop(Array.from(e.dataTransfer.files));
30
- }
31
- }, [onDrop]);
32
- React.useEffect(function () {
33
- if (!dropAreaRef.current) {
34
- return undefined;
35
- }
36
- var dropArea = dropAreaRef.current;
37
- dropArea.addEventListener('dragenter', dragEnterHandler);
38
- dropArea.addEventListener('dragleave', dragLeaveHandler);
39
- dropArea.addEventListener('dragover', dragOverHandler);
40
- dropArea.addEventListener('drop', dropHandler);
41
- return function () {
42
- dropArea.removeEventListener('dragenter', dragEnterHandler);
43
- dropArea.removeEventListener('dragleave', dragLeaveHandler);
44
- dropArea.removeEventListener('dragover', dragOverHandler);
45
- dropArea.removeEventListener('drop', dropHandler);
46
- };
47
- }, [dragEnterHandler, dragLeaveHandler, dragOverHandler, dropHandler, dropAreaRef]);
48
- return isDragging;
49
- };
50
- export default useDragAndDrop;
@@ -1,112 +0,0 @@
1
- h1,
2
- h2,
3
- h3,
4
- h4,
5
- h5 {
6
- margin: 0;
7
- }
8
-
9
- .mfui-lkvas-upload-file-item {
10
- display: -webkit-box;
11
- display: -ms-flexbox;
12
- display: flex;
13
- gap: 12px;
14
- -webkit-box-align: start;
15
- -ms-flex-align: start;
16
- align-items: flex-start;
17
- -webkit-box-sizing: border-box;
18
- box-sizing: border-box;
19
- width: 100%;
20
- max-width: 455px;
21
- padding: 12px;
22
- border-color: var(--spbSky1);
23
- border-style: solid;
24
- border-width: 1px;
25
- border-radius: 12px;
26
- }
27
- .mfui-lkvas-upload-file-item__file-icon-box {
28
- -ms-flex-negative: 0;
29
- flex-shrink: 0;
30
- width: 32px;
31
- height: 32px;
32
- margin-top: 5px;
33
- }
34
- .mfui-lkvas-upload-file-item__cancel-icon-box {
35
- -ms-flex-negative: 0;
36
- flex-shrink: 0;
37
- width: 32px;
38
- height: 32px;
39
- margin-top: 5px;
40
- padding: 0;
41
- border: none;
42
- border-radius: 50%;
43
- background-color: var(--spbSky0);
44
- cursor: pointer;
45
- }
46
- .mfui-lkvas-upload-file-item__cancel-icon-box svg {
47
- fill: var(--spbSky3);
48
- }
49
- .mfui-lkvas-upload-file-item__icon {
50
- width: 100%;
51
- height: 100%;
52
- }
53
- .mfui-lkvas-upload-file-item__content {
54
- -webkit-box-flex: 1;
55
- -ms-flex-positive: 1;
56
- flex-grow: 1;
57
- overflow: hidden;
58
- }
59
- .mfui-lkvas-upload-file-item__name {
60
- font-size: 15px;
61
- line-height: 24px;
62
- font-weight: 500;
63
- width: 100%;
64
- overflow: hidden;
65
- white-space: nowrap;
66
- text-overflow: ellipsis;
67
- }
68
- .mfui-lkvas-upload-file-item__description {
69
- font-size: 12px;
70
- line-height: 18px;
71
- display: -webkit-box;
72
- display: -ms-flexbox;
73
- display: flex;
74
- gap: 4px;
75
- color: var(--spbSky3);
76
- font-weight: 400;
77
- }
78
- .mfui-lkvas-upload-file-item__progress-bar {
79
- width: 100%;
80
- height: 4px;
81
- margin-top: 12px;
82
- border-radius: 2px;
83
- background-color: var(--spbSky1);
84
- }
85
- .mfui-lkvas-upload-file-item__progress-bar-fill {
86
- width: 0;
87
- height: 100%;
88
- border-radius: 2px;
89
- background-color: var(--brandGreen);
90
- -webkit-transition: width 0.3s ease;
91
- transition: width 0.3s ease;
92
- }
93
- .mfui-lkvas-upload-file-item__service-message {
94
- color: var(--content);
95
- }
96
- .mfui-lkvas-upload-file-item__error-message {
97
- color: var(--fury);
98
- text-decoration-line: underline;
99
- text-decoration-style: dotted;
100
- text-decoration-color: var(--fury);
101
- text-underline-offset: 2px;
102
- cursor: pointer;
103
- }
104
- .mfui-lkvas-upload-file-item__error-tooltip {
105
- font-size: 15px;
106
- line-height: 24px;
107
- font-weight: 500;
108
- max-width: 260px;
109
- }
110
- .mfui-lkvas-upload-file-item_error {
111
- border-color: var(--fury20);
112
- }
@@ -1,25 +0,0 @@
1
- import * as React from 'react';
2
- import './UploadFileItem.scss';
3
- export interface IUploadFileItem {
4
- /** Дополнительный класс корневого элемента */
5
- className?: string;
6
- /** Имя файла с расширением */
7
- fileName: string;
8
- /** Размер файла в байтах */
9
- fileSize?: string | number;
10
- /** Процент загрузки файла */
11
- loadingProgress?: number;
12
- /** Сообщение об ошибке */
13
- errorText?: string;
14
- /** Проверка файла */
15
- isChecking?: string;
16
- /** Обработчик удаления файла */
17
- onDelete?: (e: React.SyntheticEvent<EventTarget>) => void;
18
- /** Дополнительные data атрибуты к внутренним элементам */
19
- dataAttrs?: {
20
- root?: Record<string, string>;
21
- deleteButton?: Record<string, string>;
22
- };
23
- }
24
- declare const UploadFileItem: React.FC<IUploadFileItem>;
25
- export default UploadFileItem;
@@ -1,86 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import "core-js/modules/es.function.name.js";
3
- import * as React from 'react';
4
- import { Tooltip } from '@megafon/ui-core';
5
- import { cnCreate, filterDataAttrs } from '@megafon/ui-helpers';
6
- import UploadFileItemIcon from "./components/_UploadFileItemIcon/UploadFileItemIcon";
7
- import { getReadableFileSize, splitFileName } from "./helpers";
8
- import "./UploadFileItem.css";
9
- var CancelIcon = function CancelIcon(props) {
10
- return /*#__PURE__*/React.createElement("svg", _extends({
11
- viewBox: "0 0 32 32"
12
- }, props), /*#__PURE__*/React.createElement("path", {
13
- className: "CancelIcon__st0",
14
- d: "M16 14.5L11.5 10 10 11.5l4.5 4.5-4.5 4.5 1.5 1.5 4.5-4.5 4.5 4.5 1.5-1.5-4.5-4.5 4.5-4.5-1.5-1.5-4.5 4.5z"
15
- }));
16
- };
17
- var cn = cnCreate('mfui-lkvas-upload-file-item');
18
- var UploadFileItem = function UploadFileItem(_ref) {
19
- var className = _ref.className,
20
- fileName = _ref.fileName,
21
- _ref$fileSize = _ref.fileSize,
22
- fileSize = _ref$fileSize === void 0 ? 0 : _ref$fileSize,
23
- _ref$loadingProgress = _ref.loadingProgress,
24
- loadingProgress = _ref$loadingProgress === void 0 ? 0 : _ref$loadingProgress,
25
- errorText = _ref.errorText,
26
- _ref$isChecking = _ref.isChecking,
27
- isChecking = _ref$isChecking === void 0 ? false : _ref$isChecking,
28
- onDelete = _ref.onDelete,
29
- dataAttrs = _ref.dataAttrs;
30
- var tooltipTriggerElement = React.useRef(null);
31
- var _splitFileName = splitFileName(fileName),
32
- name = _splitFileName.name,
33
- extension = _splitFileName.extension;
34
- var readableFileSize = getReadableFileSize(fileSize);
35
- var isError = !!errorText;
36
- var handleDelete = function handleDelete(e) {
37
- onDelete === null || onDelete === void 0 ? void 0 : onDelete(e);
38
- };
39
- var renderExtraContent = function renderExtraContent() {
40
- if (isError) {
41
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
42
- className: cn('error-message'),
43
- ref: tooltipTriggerElement
44
- }, "\u041E\u0448\u0438\u0431\u043A\u0430"), /*#__PURE__*/React.createElement(Tooltip, {
45
- className: cn('error-tooltip'),
46
- triggerElement: tooltipTriggerElement,
47
- colorTheme: "blue",
48
- placement: "bottom"
49
- }, errorText));
50
- }
51
- return /*#__PURE__*/React.createElement("span", {
52
- className: cn('service-message')
53
- }, isChecking ? 'Проверка файла…' : "\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 ".concat(loadingProgress, "%"));
54
- };
55
- return /*#__PURE__*/React.createElement("div", _extends({
56
- className: cn({
57
- error: isError
58
- }, [className])
59
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root)), /*#__PURE__*/React.createElement("div", {
60
- className: cn('file-icon-box')
61
- }, /*#__PURE__*/React.createElement(UploadFileItemIcon, {
62
- fileExtension: extension,
63
- className: cn('icon')
64
- })), /*#__PURE__*/React.createElement("div", {
65
- className: cn('content')
66
- }, /*#__PURE__*/React.createElement("div", {
67
- className: cn('name')
68
- }, name), /*#__PURE__*/React.createElement("div", {
69
- className: cn('description')
70
- }, !!extension && /*#__PURE__*/React.createElement("span", null, extension.toUpperCase()), /*#__PURE__*/React.createElement("span", null, readableFileSize), renderExtraContent()), /*#__PURE__*/React.createElement("div", {
71
- className: cn('progress-bar')
72
- }, /*#__PURE__*/React.createElement("div", {
73
- className: cn('progress-bar-fill'),
74
- style: {
75
- width: "".concat(loadingProgress, "%")
76
- }
77
- }))), /*#__PURE__*/React.createElement("button", _extends({
78
- type: "button",
79
- className: cn('cancel-icon-box')
80
- }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.deleteButton), {
81
- onClick: handleDelete
82
- }), /*#__PURE__*/React.createElement(CancelIcon, {
83
- className: cn('icon')
84
- })));
85
- };
86
- export default UploadFileItem;
@@ -1,7 +0,0 @@
1
- import * as React from 'react';
2
- export interface IUploadFileItemIcon {
3
- className?: string;
4
- fileExtension: string;
5
- }
6
- declare const UploadFileItemIcon: React.FC<IUploadFileItemIcon>;
7
- export default UploadFileItemIcon;