@seafile/seafile-database 0.0.19 → 0.0.21

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 (78) hide show
  1. package/dist/api/api.js +27 -21
  2. package/dist/assets/css/dropdown-menu.css +96 -0
  3. package/dist/common/components/file-tag/index.js +2 -2
  4. package/dist/common/utils/icon-utils.js +9 -2
  5. package/dist/common/utils/utils.js +28 -0
  6. package/dist/components/cell-editors/index.js +2 -2
  7. package/dist/components/cell-editors/multiple-select-editor/index.js +2 -2
  8. package/dist/components/cell-editors/single-select-editor/index.js +2 -2
  9. package/dist/components/cell-editors/tags-editor/index.js +1 -2
  10. package/dist/components/context-menu/index.js +2 -2
  11. package/dist/components/data-process-setter/filter-setter.js +1 -2
  12. package/dist/components/data-process-setter/manage-setter.js +1 -2
  13. package/dist/components/data-process-setter/sort-setter.js +2 -2
  14. package/dist/components/dialogs/custom-modal-header/index.css +34 -0
  15. package/dist/components/dialogs/custom-modal-header/index.js +34 -0
  16. package/dist/components/dialogs/insert-view-dialog.js +104 -0
  17. package/dist/components/icons/arrow-down-icon.js +19 -0
  18. package/dist/components/icons/arrow-up-icon.js +19 -0
  19. package/dist/components/icons/close-icon.js +23 -0
  20. package/dist/components/icons/index.js +14 -1
  21. package/dist/components/icons/set-up-icon.js +22 -0
  22. package/dist/components/image-previewer/_hooks/metadata-details.js +1 -1
  23. package/dist/components/image-previewer/_hooks/metadata-status.js +2 -2
  24. package/dist/components/image-previewer/image-detail/index.js +1 -1
  25. package/dist/components/image-previewer/index.js +2 -2
  26. package/dist/components/popover/groupbys-popover/index.js +5 -5
  27. package/dist/components/searcher/index.js +3 -3
  28. package/dist/components/view-toolbar/card-view-toolbar/index.js +89 -0
  29. package/dist/components/view-toolbar/index.css +54 -1
  30. package/dist/components/view-toolbar/index.js +40 -48
  31. package/dist/components/view-toolbar/rows-toolbar/index.js +2 -2
  32. package/dist/components/view-toolbar/table-view-toolbar/index.js +1 -1
  33. package/dist/components/view-toolbar/view-items/index.css +55 -0
  34. package/dist/components/view-toolbar/view-items/index.js +98 -0
  35. package/dist/components/view-toolbar/view-items/views-popover.js +80 -0
  36. package/dist/constants/event-bus-type.js +3 -1
  37. package/dist/constants/view/index.js +32 -2
  38. package/dist/context.js +89 -34
  39. package/dist/database.js +11 -18
  40. package/dist/file-base.js +31 -0
  41. package/dist/global-settings.js +3 -1
  42. package/dist/hooks/collaborators.js +9 -3
  43. package/dist/hooks/{app-context.js → file-repo-context.js} +25 -20
  44. package/dist/hooks/file-view-context.js +69 -0
  45. package/dist/hooks/index.js +14 -14
  46. package/dist/hooks/metadata.js +45 -47
  47. package/dist/hooks/tagsData.js +8 -2
  48. package/dist/index.js +3 -3
  49. package/dist/locale/en.js +6 -1
  50. package/dist/locale/zh_CN.js +6 -1
  51. package/dist/store/data-processor.js +1 -0
  52. package/dist/views/card/card-items/card-item/formatter.js +45 -0
  53. package/dist/views/card/card-items/card-item/index.css +234 -0
  54. package/dist/views/card/card-items/card-item/index.js +206 -0
  55. package/dist/views/card/card-items/index.css +31 -0
  56. package/dist/views/card/card-items/index.js +189 -0
  57. package/dist/views/card/context-menu/index.js +165 -0
  58. package/dist/views/card/index.js +64 -0
  59. package/dist/views/card/settings/index.css +68 -0
  60. package/dist/views/card/settings/index.js +143 -0
  61. package/dist/views/index.js +5 -3
  62. package/dist/views/table/editors/editor-container/index.js +2 -2
  63. package/dist/views/table/formatters/file-name.js +3 -3
  64. package/dist/views/table/index.js +2 -3
  65. package/dist/views/table/table-main/index.js +2 -2
  66. package/dist/views/table/table-main/rows/row/cell/formatter.js +2 -2
  67. package/dist/views/table/table-main/rows/row/cell/index.js +2 -2
  68. package/dist/views/table/table-main/rows-header/cell/dropdown-menu/index.js +1 -1
  69. package/dist/views/table/table-main/rows-header/cell/index.js +1 -1
  70. package/dist/views/table/table-main/rows-header/index.js +2 -2
  71. package/package.json +5 -2
  72. package/dist/components/view-toolbar/views/all-views/index.css +0 -85
  73. package/dist/components/view-toolbar/views/all-views/index.js +0 -165
  74. package/dist/components/view-toolbar/views/index.css +0 -22
  75. package/dist/components/view-toolbar/views/index.js +0 -215
  76. package/dist/components/view-toolbar/views/view-item/index.css +0 -83
  77. package/dist/components/view-toolbar/views/view-item/index.js +0 -159
  78. package/dist/hooks/viewsData.js +0 -154
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _cell = require("../../../utils/cell");
11
+ var _column = require("../../../utils/column");
12
+ var _file = require("../../../utils/file");
13
+ var _row = require("../../../utils/row");
14
+ var _table = require("../../../../components/sf-table/utils/table");
15
+ var _fileOperations = require("../../../../hooks/file-operations");
16
+ var _metadataStatus = require("../../../../hooks/metadata-status");
17
+ var _textTranslation = _interopRequireDefault(require("../../../../utils/text-translation"));
18
+ var _contextMenu = _interopRequireDefault(require("../../../components/context-menu"));
19
+ var _renameDialog = _interopRequireDefault(require("../../../components/dialog/rename-dialog"));
20
+ var _constants = require("../../../constants");
21
+ var _metadataView = require("../../../hooks/metadata-view");
22
+ var _menuBuilder = require("../../../utils/menu-builder");
23
+ const CardContextMenu = _ref => {
24
+ let {
25
+ selectedCard,
26
+ onDelete,
27
+ onRename
28
+ } = _ref;
29
+ const [isRenameDialogShow, setIsRenameDialogShow] = (0, _react.useState)(false);
30
+ const {
31
+ enableFaceRecognition,
32
+ enableTags
33
+ } = (0, _metadataStatus.useMetadataStatus)();
34
+ const {
35
+ handleDownload: handleDownloadAPI
36
+ } = (0, _fileOperations.useFileOperations)();
37
+ const {
38
+ metadata,
39
+ updateRecordDetails,
40
+ updateFaceRecognition,
41
+ updateRecordDescription,
42
+ onOCR,
43
+ generateFileTags
44
+ } = (0, _metadataView.useMetadataView)();
45
+ const selectedRecord = (0, _react.useMemo)(() => (0, _table.getRowById)(metadata, selectedCard), [metadata, selectedCard]);
46
+ const isDir = (0, _react.useMemo)(() => (0, _row.checkIsDir)(selectedRecord), [selectedRecord]);
47
+ const oldName = (0, _react.useMemo)(() => (0, _cell.getFileNameFromRecord)(selectedRecord), [selectedRecord]);
48
+ const parentDir = (0, _react.useMemo)(() => (0, _cell.getParentDirFromRecord)(selectedRecord), [selectedRecord]);
49
+ const repoID = window.sfMetadataContext.getSetting('repoID');
50
+ const readOnly = !window.sfMetadataContext.canModify();
51
+ const record = (0, _react.useMemo)(() => (0, _table.getRowById)(metadata, selectedCard), [metadata, selectedCard]);
52
+ const options = (0, _react.useMemo)(() => {
53
+ const metadataStatus = {
54
+ enableFaceRecognition,
55
+ enableGenerateDescription: (0, _column.getColumnByKey)(metadata.columns, _constants.PRIVATE_COLUMN_KEY.FILE_DESCRIPTION) !== null,
56
+ enableTags
57
+ };
58
+ return (0, _menuBuilder.buildCardMenuOptions)([record], readOnly, metadataStatus);
59
+ }, [enableFaceRecognition, metadata.columns, enableTags, record, readOnly]);
60
+ const openRenameDialog = (0, _react.useCallback)(() => {
61
+ setIsRenameDialogShow(true);
62
+ }, []);
63
+ const handleRename = (0, _react.useCallback)(newName => {
64
+ if (!selectedCard) return;
65
+ const record = (0, _table.getRowById)(metadata, selectedCard);
66
+ if (!record) return;
67
+ const oldName = (0, _cell.getFileNameFromRecord)(record);
68
+ const updates = {
69
+ [_constants.PRIVATE_COLUMN_KEY.FILE_NAME]: newName
70
+ };
71
+ const oldRowData = {
72
+ [_constants.PRIVATE_COLUMN_KEY.FILE_NAME]: oldName
73
+ };
74
+ onRename(selectedCard, updates, oldRowData, updates, oldRowData, {
75
+ success_callback: () => setIsRenameDialogShow(false)
76
+ });
77
+ }, [metadata, selectedCard, onRename]);
78
+ const handleDownload = (0, _react.useCallback)(() => {
79
+ handleDownloadAPI(parentDir, [{
80
+ name: oldName,
81
+ is_dir: isDir
82
+ }]);
83
+ }, [handleDownloadAPI, parentDir, oldName, isDir]);
84
+ const handleOptionClick = (0, _react.useCallback)(option => {
85
+ switch (option.key) {
86
+ case _textTranslation.default.OPEN_FILE_IN_NEW_TAB.key:
87
+ {
88
+ (0, _file.openInNewTab)(repoID, record);
89
+ break;
90
+ }
91
+ case _textTranslation.default.OPEN_PARENT_FOLDER.key:
92
+ {
93
+ (0, _file.openParentFolder)(record);
94
+ break;
95
+ }
96
+ case _textTranslation.default.RENAME.key:
97
+ {
98
+ openRenameDialog();
99
+ break;
100
+ }
101
+ case _textTranslation.default.MOVE.key:
102
+ window.sfMetadataContext.eventBus.dispatch(_constants.EVENT_BUS_TYPE.TOGGLE_MOVE_DIALOG, [record]);
103
+ break;
104
+ case _textTranslation.default.COPY.key:
105
+ window.sfMetadataContext.eventBus.dispatch(_constants.EVENT_BUS_TYPE.TOGGLE_COPY_DIALOG, [record]);
106
+ break;
107
+ case _textTranslation.default.DOWNLOAD.key:
108
+ {
109
+ handleDownload();
110
+ break;
111
+ }
112
+ case _textTranslation.default.DELETE.key:
113
+ {
114
+ onDelete([selectedCard]);
115
+ break;
116
+ }
117
+ case _textTranslation.default.DETECT_FACES.key:
118
+ {
119
+ updateFaceRecognition([record]);
120
+ break;
121
+ }
122
+ case _textTranslation.default.EXTRACT_FILE_DETAIL.key:
123
+ {
124
+ updateRecordDetails([record]);
125
+ break;
126
+ }
127
+ case _textTranslation.default.GENERATE_DESCRIPTION.key:
128
+ {
129
+ updateRecordDescription(record);
130
+ break;
131
+ }
132
+ case _textTranslation.default.GENERATE_TAGS.key:
133
+ {
134
+ generateFileTags(record);
135
+ break;
136
+ }
137
+ case _textTranslation.default.EXTRACT_TEXT.key:
138
+ {
139
+ onOCR(record, '.sf-metadata-card-item-image-container');
140
+ break;
141
+ }
142
+ default:
143
+ {
144
+ break;
145
+ }
146
+ }
147
+ }, [record, updateFaceRecognition, repoID, openRenameDialog, handleDownload, onDelete, selectedCard, updateRecordDetails, updateRecordDescription, generateFileTags, onOCR]);
148
+ (0, _react.useEffect)(() => {
149
+ const unsubscribe = window.sfMetadataContext.eventBus.subscribe(_constants.EVENT_BUS_TYPE.TOGGLE_CARD_RENAME_DIALOG, openRenameDialog);
150
+ return () => {
151
+ unsubscribe();
152
+ };
153
+ }, [openRenameDialog]);
154
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_contextMenu.default, {
155
+ options: options,
156
+ onOptionClick: handleOptionClick,
157
+ allowedTriggerElements: ['.sf-metadata-view-card']
158
+ }), isRenameDialogShow && /*#__PURE__*/_react.default.createElement(_renameDialog.default, {
159
+ isDir: isDir,
160
+ oldName: oldName,
161
+ onSubmit: handleRename,
162
+ onCancel: () => setIsRenameDialogShow(false)
163
+ }));
164
+ };
165
+ var _default = exports.default = CardContextMenu;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _constants = require("../../constants");
11
+ var _hooks = require("../../hooks");
12
+ var _cardItems = _interopRequireDefault(require("./card-items"));
13
+ // import Settings from './settings';
14
+
15
+ const Card = () => {
16
+ const [isShowSettings, setShowSettings] = (0, _react.useState)(false);
17
+ const {
18
+ context
19
+ } = (0, _hooks.useFileRepoContext)();
20
+ const {
21
+ metadata,
22
+ modifySettings,
23
+ modifyRecord: modifyRecordAPI,
24
+ deleteRecords,
25
+ modifyColumnData
26
+ } = (0, _hooks.useMetadata)();
27
+ const columns = (0, _react.useMemo)(() => metadata.view.columns, [metadata.view.columns]);
28
+ const modifyRecord = (0, _react.useCallback)(function (rowId, updates, oldRowData, originalUpdates, originalOldRowData) {
29
+ let {
30
+ success_callback
31
+ } = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
32
+ modifyRecordAPI(rowId, updates, oldRowData, originalUpdates, originalOldRowData, false, {
33
+ success_callback: () => {
34
+ success_callback && success_callback();
35
+ context.eventBus.dispatch(_constants.EVENT_BUS_TYPE.LOCAL_RECORD_DETAIL_CHANGED, {
36
+ recordId: rowId
37
+ }, updates);
38
+ }
39
+ });
40
+ }, [context.eventBus, modifyRecordAPI]);
41
+ const closeSettings = (0, _react.useCallback)(() => {
42
+ setShowSettings(false);
43
+ }, []);
44
+ (0, _react.useEffect)(() => {
45
+ const eventBus = context.eventBus;
46
+ const unsubscribeCardSetting = eventBus.subscribe(_constants.EVENT_BUS_TYPE.TOGGLE_CARD_SETTINGS, () => setShowSettings(!isShowSettings));
47
+ const unsubscribeCloseCardSetting = eventBus.subscribe(_constants.EVENT_BUS_TYPE.CLOSE_CARD_SETTINGS, () => setShowSettings(false));
48
+ return () => {
49
+ unsubscribeCardSetting();
50
+ unsubscribeCloseCardSetting();
51
+ };
52
+ }, [context, isShowSettings]);
53
+ return /*#__PURE__*/_react.default.createElement("div", {
54
+ className: "sea-metadata-container"
55
+ }, /*#__PURE__*/_react.default.createElement("div", {
56
+ className: "sea-metadata-view-card flex-fill o-auto position-relative"
57
+ }, /*#__PURE__*/_react.default.createElement(_cardItems.default, {
58
+ modifyRecord: modifyRecord,
59
+ deleteRecords: deleteRecords,
60
+ modifyColumnData: modifyColumnData,
61
+ onCloseSettings: closeSettings
62
+ })));
63
+ };
64
+ var _default = exports.default = Card;
@@ -0,0 +1,68 @@
1
+ .sf-metadata-view-card-setting-panel {
2
+ min-width: 300px;
3
+ height: 100%;
4
+ display: flex;
5
+ flex-direction: column;
6
+ border-left: 1px solid var(--bs-border-secondary-color);
7
+ background: var(--bs-body-bg);
8
+ }
9
+
10
+ .sf-metadata-view-card-setting-panel .setting-panel-header {
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: space-between;
14
+ padding: 10px 16px;
15
+ border-bottom: 1px solid var(--bs-border-secondary-color);
16
+ }
17
+
18
+ .sf-metadata-view-card-setting-panel .setting-panel-body {
19
+ width: 100%;
20
+ height: 100%;
21
+ padding: 16px 16px 50px;
22
+ font-size: 14px;
23
+ overflow: auto;
24
+ }
25
+
26
+ .sf-metadata-view-card-setting-panel .setting-panel-body .setting-item {
27
+ margin-bottom: 14px;
28
+ }
29
+
30
+ .sf-metadata-view-card-setting-panel .setting-item .setting-item-label {
31
+ display: inline-block;
32
+ margin-bottom: 8px;
33
+ }
34
+
35
+ .sf-metadata-view-card-setting-panel .setting-item .custom-switch-description {
36
+ margin: 0;
37
+ }
38
+
39
+ .sf-metadata-view-card-setting-panel .setting-item .switch-setting-item {
40
+ padding: 0;
41
+ display: flex;
42
+ justify-content: space-between;
43
+ }
44
+
45
+ .sf-metadata-view-card-setting-panel .custom-switch {
46
+ width: 100%;
47
+ padding: 0;
48
+ display: flex;
49
+ justify-content: space-between;
50
+ align-items: center;
51
+ cursor: pointer;
52
+ }
53
+
54
+ .sf-metadata-view-card-setting-panel .custom-switch-indicator {
55
+ border-radius: 6px;
56
+ height: 12px;
57
+ width: 22px;
58
+ margin-right: 8px;
59
+ }
60
+
61
+ .sf-metadata-view-card-setting-panel .custom-switch .custom-switch-indicator:before {
62
+ height: 8px;
63
+ width: 8px;
64
+ }
65
+
66
+ .sf-metadata-view-card-setting-panel .custom-switch .custom-switch-input:checked~.custom-switch-indicator:before {
67
+ left: 12px;
68
+ }
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _opIcon = _interopRequireDefault(require("../../../common/components/op-icon"));
11
+ var _switch = _interopRequireDefault(require("../../../common/components/switch"));
12
+ var _fieldDisplaySettings = _interopRequireDefault(require("../../../components/data-process-setter/field-display-settings"));
13
+ var _constants = require("../../../constants");
14
+ var _hooks = require("../../../hooks");
15
+ var _column = require("../../../utils/column");
16
+ var _constants2 = require("../../../../utils/constants");
17
+ require("./index.css");
18
+ const Settings = _ref => {
19
+ let {
20
+ columns,
21
+ columnsMap,
22
+ settings,
23
+ modifySettings,
24
+ onClose
25
+ } = _ref;
26
+ const {
27
+ globalHiddenColumns
28
+ } = (0, _hooks.useMetadataStatus)();
29
+ const validColumns = (0, _react.useMemo)(() => columns.filter(column => !globalHiddenColumns.includes(column.key)), [columns, globalHiddenColumns]);
30
+ const displayColumns = (0, _react.useMemo)(() => {
31
+ const displayColumnsConfig = settings[_constants.CARD_SETTINGS_KEYS.COLUMNS].filter(column => !globalHiddenColumns.includes(column.key));
32
+ const nameColumnKey = _constants.PRIVATE_COLUMN_KEY.FILE_NAME;
33
+ const mtimeColumnKey = _constants.PRIVATE_COLUMN_KEY.FILE_MTIME;
34
+ const lastModifierColumnKey = _constants.PRIVATE_COLUMN_KEY.FILE_MODIFIER;
35
+ const filteredColumns = validColumns.filter(item => item.key !== nameColumnKey && item.key !== mtimeColumnKey && item.key !== lastModifierColumnKey);
36
+ if (!displayColumnsConfig) {
37
+ return filteredColumns.map(column => ({
38
+ ...column,
39
+ shown: false
40
+ }));
41
+ }
42
+ const validDisplayColumnsConfig = displayColumnsConfig.map(columnConfig => {
43
+ const column = columnsMap[columnConfig.key];
44
+ if (column) return {
45
+ ...column,
46
+ shown: columnConfig.shown
47
+ };
48
+ return null;
49
+ }).filter(column => column && column.key !== nameColumnKey && column.key !== mtimeColumnKey);
50
+ const addedColumns = filteredColumns.filter(column => !(0, _column.getColumnByKey)(validDisplayColumnsConfig, column.key)).map(column => ({
51
+ ...column,
52
+ shown: false
53
+ }));
54
+ return [...validDisplayColumnsConfig, ...addedColumns];
55
+ }, [validColumns, columnsMap, settings, globalHiddenColumns]);
56
+ const displayColumnsConfig = (0, _react.useMemo)(() => displayColumns.map(column => ({
57
+ key: column.key,
58
+ shown: column.shown
59
+ })), [displayColumns]);
60
+ const handleUpdateSettings = (0, _react.useCallback)((key, value) => {
61
+ modifySettings({
62
+ ...settings,
63
+ [key]: value
64
+ });
65
+ }, [settings, modifySettings]);
66
+ const onToggleField = (0, _react.useCallback)((key, shown) => {
67
+ const newDisplayColumnsConfig = displayColumnsConfig.map(columnConfig => {
68
+ if (columnConfig.key === key) return {
69
+ ...columnConfig,
70
+ shown
71
+ };
72
+ return columnConfig;
73
+ });
74
+ handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.COLUMNS, newDisplayColumnsConfig);
75
+ }, [displayColumnsConfig, handleUpdateSettings]);
76
+ const onMoveField = (0, _react.useCallback)((sourceKey, targetKey) => {
77
+ const newDisplayColumnsConfig = displayColumnsConfig.slice(0);
78
+ const sourceIndex = displayColumnsConfig.findIndex(columnConfig => columnConfig.key === sourceKey);
79
+ const targetIndex = displayColumnsConfig.findIndex(columnConfig => columnConfig.key === targetKey);
80
+ if (sourceIndex === -1 || targetIndex === -1) return;
81
+ newDisplayColumnsConfig.splice(sourceIndex, 1, displayColumnsConfig[targetIndex]);
82
+ newDisplayColumnsConfig.splice(targetIndex, 1, displayColumnsConfig[sourceIndex]);
83
+ handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.COLUMNS, newDisplayColumnsConfig);
84
+ }, [displayColumnsConfig, handleUpdateSettings]);
85
+ const onToggleFieldsVisibility = (0, _react.useCallback)(visibility => {
86
+ const newDisplayColumnsConfig = displayColumnsConfig.map(columnConfig => ({
87
+ ...columnConfig,
88
+ shown: visibility
89
+ }));
90
+ handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.COLUMNS, newDisplayColumnsConfig);
91
+ }, [displayColumnsConfig, handleUpdateSettings]);
92
+ return /*#__PURE__*/_react.default.createElement("div", {
93
+ className: "sf-metadata-view-card-setting-panel"
94
+ }, /*#__PURE__*/_react.default.createElement("div", {
95
+ className: "setting-panel-header"
96
+ }, /*#__PURE__*/_react.default.createElement("h5", {
97
+ className: "m-0"
98
+ }, (0, _constants2.gettext)('Settings')), /*#__PURE__*/_react.default.createElement(_opIcon.default, {
99
+ className: "op-icon",
100
+ symbol: "close",
101
+ op: onClose,
102
+ title: (0, _constants2.gettext)('Close')
103
+ })), /*#__PURE__*/_react.default.createElement("div", {
104
+ className: "setting-panel-body"
105
+ }, /*#__PURE__*/_react.default.createElement("div", {
106
+ className: "setting-item"
107
+ }, /*#__PURE__*/_react.default.createElement(_switch.default, {
108
+ placeholder: (0, _constants2.gettext)('Don\'t show empty values'),
109
+ checked: settings[_constants.CARD_SETTINGS_KEYS.HIDE_EMPTY_VALUE] || false,
110
+ onChange: () => handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.HIDE_EMPTY_VALUE, !settings[_constants.CARD_SETTINGS_KEYS.HIDE_EMPTY_VALUE])
111
+ })), /*#__PURE__*/_react.default.createElement("div", {
112
+ className: "sf-metadata-setting-divide-line"
113
+ }), /*#__PURE__*/_react.default.createElement("div", {
114
+ className: "setting-item"
115
+ }, /*#__PURE__*/_react.default.createElement(_switch.default, {
116
+ placeholder: (0, _constants2.gettext)('Show property names'),
117
+ checked: settings[_constants.CARD_SETTINGS_KEYS.SHOW_COLUMN_NAME] || false,
118
+ onChange: () => handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.SHOW_COLUMN_NAME, !settings[_constants.CARD_SETTINGS_KEYS.SHOW_COLUMN_NAME])
119
+ })), /*#__PURE__*/_react.default.createElement("div", {
120
+ className: "sf-metadata-setting-divide-line"
121
+ }), /*#__PURE__*/_react.default.createElement("div", {
122
+ className: "setting-item"
123
+ }, /*#__PURE__*/_react.default.createElement(_switch.default, {
124
+ placeholder: (0, _constants2.gettext)('Text wraps'),
125
+ checked: settings[_constants.CARD_SETTINGS_KEYS.TEXT_WRAP] || false,
126
+ onChange: () => handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.TEXT_WRAP, !settings[_constants.CARD_SETTINGS_KEYS.TEXT_WRAP])
127
+ })), /*#__PURE__*/_react.default.createElement("div", {
128
+ className: "sf-metadata-setting-divide-line"
129
+ }), /*#__PURE__*/_react.default.createElement(_fieldDisplaySettings.default, {
130
+ fieldIconConfig: _constants.COLUMNS_ICON_CONFIG,
131
+ fields: displayColumns,
132
+ textProperties: {
133
+ titleValue: (0, _constants2.gettext)('Properties to display on the card'),
134
+ bannerValue: (0, _constants2.gettext)('Properties'),
135
+ hideValue: (0, _constants2.gettext)('Hide all'),
136
+ showValue: (0, _constants2.gettext)('Show all')
137
+ },
138
+ onToggleField: onToggleField,
139
+ onMoveField: onMoveField,
140
+ onToggleFieldsVisibility: onToggleFieldsVisibility
141
+ })));
142
+ };
143
+ var _default = exports.default = Settings;
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
- var _centeredLoading = _interopRequireDefault(require("../common/components/centered-loading"));
11
10
  var _constants = require("../constants");
12
11
  var _hooks = require("../hooks");
12
+ var _card = _interopRequireDefault(require("./card"));
13
13
  var _table = _interopRequireDefault(require("./table"));
14
14
  const View = _ref => {
15
15
  let {
@@ -18,7 +18,6 @@ const View = _ref => {
18
18
  children
19
19
  } = _ref;
20
20
  const {
21
- isLoading,
22
21
  metadata,
23
22
  errorMessage
24
23
  } = (0, _hooks.useMetadata)();
@@ -35,6 +34,10 @@ const View = _ref => {
35
34
  children: children
36
35
  });
37
36
  }
37
+ case _constants.VIEW_TYPE.CARD:
38
+ {
39
+ return /*#__PURE__*/_react.default.createElement(_card.default, null);
40
+ }
38
41
  default:
39
42
  {
40
43
  return /*#__PURE__*/_react.default.createElement(_table.default, {
@@ -45,7 +48,6 @@ const View = _ref => {
45
48
  }
46
49
  }
47
50
  }, [fixedColumnCount, expandRow, children]);
48
- if (isLoading) return /*#__PURE__*/_react.default.createElement(_centeredLoading.default, null);
49
51
  return /*#__PURE__*/_react.default.createElement("div", {
50
52
  className: "sea-metadata-wrapper"
51
53
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _constants = require("../../../../constants");
10
- var _appContext = require("../../../../hooks/app-context");
10
+ var _hooks = require("../../../../hooks");
11
11
  var _column = require("../../../../utils/column");
12
12
  var _normalEditorContainer = _interopRequireDefault(require("./normal-editor-container"));
13
13
  var _popupEditorContainer = _interopRequireDefault(require("./popup-editor-container"));
@@ -17,7 +17,7 @@ const PREVIEW_EDITOR_COLUMN_TYPES = [_constants.CellType.FILE_NAME];
17
17
  const EditorContainer = props => {
18
18
  const {
19
19
  context
20
- } = (0, _appContext.useAppContext)();
20
+ } = (0, _hooks.useFileRepoContext)();
21
21
  const {
22
22
  column,
23
23
  openEditorMode
@@ -12,7 +12,7 @@ var _iconUtils = require("../../../common/utils/icon-utils");
12
12
  var _utils = require("../../../common/utils/utils");
13
13
  var _fileNameFormatter = _interopRequireDefault(require("../../../components/cell-formatter/file-name-formatter"));
14
14
  var _globalSettings = _interopRequireDefault(require("../../../global-settings"));
15
- var _appContext = require("../../../hooks/app-context");
15
+ var _hooks = require("../../../hooks");
16
16
  var _cell = require("../../../utils/cell");
17
17
  var _row = require("../../../utils/row");
18
18
  const FileName = _ref => {
@@ -26,7 +26,7 @@ const FileName = _ref => {
26
26
  } = _ref;
27
27
  const {
28
28
  context
29
- } = (0, _appContext.useAppContext)();
29
+ } = (0, _hooks.useFileRepoContext)();
30
30
  const parentDir = (0, _react.useMemo)(() => (0, _cell.getParentDirFromRecord)(row), [row]);
31
31
  const isDir = (0, _react.useMemo)(() => (0, _row.checkIsDir)(row), [row]);
32
32
  const className = (0, _react.useMemo)(() => {
@@ -45,9 +45,9 @@ const FileName = _ref => {
45
45
  const defaultIconUrl = (0, _iconUtils.getFileIconUrl)(value);
46
46
  if (_utils.Utils.imageCheck(value)) {
47
47
  const path = _utils.Utils.encodePath(_utils.Utils.joinPath(parentDir, value));
48
- const repoID = context.getViewSetting('repoID');
49
48
  const siteRoot = _globalSettings.default.getSetting('siteRoot');
50
49
  const thumbnailDefaultSize = _globalSettings.default.getSetting('thumbnailDefaultSize') || 256;
50
+ const repoID = context.getViewSetting('repoID');
51
51
  const thumbnail = `${siteRoot}thumbnail/${repoID}/${thumbnailDefaultSize}${path}?mtime=${(0, _cell.getFileMTimeFromRecord)(row)}`;
52
52
  return {
53
53
  iconUrl: thumbnail,
@@ -12,9 +12,8 @@ var _toaster = _interopRequireDefault(require("../../common/components/toaster")
12
12
  var _hotkey = require("../../common/utils/hotkey");
13
13
  var _typeDetection = require("../../common/utils/type-detection");
14
14
  var _utils = require("../../common/utils/utils");
15
- var _appContext = require("../../hooks/app-context");
16
- var _constants = require("../../constants");
17
15
  var _hooks = require("../../hooks");
16
+ var _constants = require("../../constants");
18
17
  var _group = require("../../utils/group");
19
18
  var _tableMain = _interopRequireDefault(require("./table-main"));
20
19
  require("./index.css");
@@ -26,7 +25,7 @@ const Table = _ref => {
26
25
  } = _ref;
27
26
  const {
28
27
  context
29
- } = (0, _appContext.useAppContext)();
28
+ } = (0, _hooks.useFileRepoContext)();
30
29
  const [isLoadingMore, setLoadingMore] = (0, _react.useState)(false);
31
30
  const [isShowRowExpand, setIsShowRowExpand] = (0, _react.useState)(false);
32
31
  const expandRowRef = (0, _react.useRef)(null);
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _constants = require("../../../constants");
12
- var _appContext = require("../../../hooks/app-context");
12
+ var _hooks = require("../../../hooks");
13
13
  var _gridUtils = _interopRequireDefault(require("../utils/grid-utils"));
14
14
  var _rows = _interopRequireDefault(require("./rows"));
15
15
  require("./index.css");
@@ -33,7 +33,7 @@ const TableMain = _ref => {
33
33
  } = _ref;
34
34
  const {
35
35
  context
36
- } = (0, _appContext.useAppContext)();
36
+ } = (0, _hooks.useFileRepoContext)();
37
37
  const gridUtils = (0, _react.useMemo)(() => {
38
38
  return new _gridUtils.default(metadata, {
39
39
  context,
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _checkboxEditor = _interopRequireDefault(require("../../../../../../components/cell-editors/checkbox-editor"));
10
10
  var _priorityEditor = _interopRequireDefault(require("../../../../../../components/cell-editors/priority-editor"));
11
11
  var _constants = require("../../../../../../constants");
12
- var _appContext = require("../../../../../../hooks/app-context");
12
+ var _hooks = require("../../../../../../hooks");
13
13
  var _cell = require("../../../../../../utils/cell");
14
14
  var _fileName = _interopRequireDefault(require("../../../../formatters/file-name"));
15
15
  var _formatters = _interopRequireDefault(require("../../../../formatters"));
@@ -27,7 +27,7 @@ const Formatter = _ref => {
27
27
  } = column;
28
28
  const {
29
29
  context
30
- } = (0, _appContext.useAppContext)();
30
+ } = (0, _hooks.useFileRepoContext)();
31
31
  const cellEditAble = (0, _cell.canEditCell)(context, column, row, true);
32
32
  if (type === _constants.CellType.CHECKBOX && cellEditAble) {
33
33
  return /*#__PURE__*/_react.default.createElement(_checkboxEditor.default, {
@@ -11,7 +11,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _objectUtils = _interopRequireDefault(require("../../../../../../common/utils/object-utils"));
12
12
  var _typeDetection = require("../../../../../../common/utils/type-detection");
13
13
  var _constants = require("../../../../../../constants");
14
- var _appContext = require("../../../../../../hooks/app-context");
14
+ var _hooks = require("../../../../../../hooks");
15
15
  var _cell = require("../../../../../../utils/cell");
16
16
  var _file = require("../../../../../../utils/file");
17
17
  var _formatter = _interopRequireDefault(require("./formatter"));
@@ -36,7 +36,7 @@ const Cell = /*#__PURE__*/_react.default.memo(_ref => {
36
36
  } = _ref;
37
37
  const {
38
38
  context
39
- } = (0, _appContext.useAppContext)();
39
+ } = (0, _hooks.useFileRepoContext)();
40
40
  const canEditable = (0, _react.useMemo)(() => {
41
41
  if (!context.canModifyCell(column, row)) return false;
42
42
  const {
@@ -31,7 +31,7 @@ const HeaderDropdownMenu = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
31
31
  } = _ref;
32
32
  const {
33
33
  context
34
- } = (0, _hooks.useAppContext)();
34
+ } = (0, _hooks.useFileRepoContext)();
35
35
  const menuRef = /*#__PURE__*/(0, _react.createRef)();
36
36
  const dropdownDomRef = /*#__PURE__*/(0, _react.createRef)();
37
37
  const [isMenuShow, setMenuShow] = (0, _react.useState)(false);
@@ -44,7 +44,7 @@ const Cell = _ref => {
44
44
  const dropdownRef = (0, _react.useRef)(null);
45
45
  const {
46
46
  context
47
- } = (0, _hooks.useAppContext)();
47
+ } = (0, _hooks.useFileRepoContext)();
48
48
  const canEditColumnInfo = (0, _react.useMemo)(() => {
49
49
  if (isHideTriangle) return false;
50
50
  return context.canModify();
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _utils = require("../../../../common/utils/utils");
11
11
  var _constants = require("../../../../constants");
12
- var _appContext = require("../../../../hooks/app-context");
12
+ var _hooks = require("../../../../hooks");
13
13
  var _column = require("../../../../utils/column");
14
14
  var _common = require("../../../../utils/common");
15
15
  var _actionsCell = _interopRequireDefault(require("./actions-cell"));
@@ -38,7 +38,7 @@ const RowsHeader = _ref => {
38
38
  } = _ref;
39
39
  const {
40
40
  context
41
- } = (0, _appContext.useAppContext)();
41
+ } = (0, _hooks.useFileRepoContext)();
42
42
  const [resizingColumnMetrics, setResizingColumnMetrics] = (0, _react.useState)(null);
43
43
  const [draggingColumnKey, setDraggingCellKey] = (0, _react.useState)(null);
44
44
  const [dragOverColumnKey, setDragOverCellKey] = (0, _react.useState)(null);