ywana-core8 0.0.887 → 0.0.889
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/dist/index.cjs +176 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +61 -42
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +171 -32
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +176 -32
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/site/site.css +8 -0
- package/src/site/site.js +1 -1
- package/src/widgets/explorer/Explorer.css +53 -42
- package/src/widgets/explorer/Explorer.js +134 -31
- package/src/widgets/explorer/Explorer.test.js +80 -13
package/dist/index.modern.js
CHANGED
@@ -4034,7 +4034,7 @@ var SiteMenu = function SiteMenu(_ref6) {
|
|
4034
4034
|
}, /*#__PURE__*/React.createElement(Tooltip, {
|
4035
4035
|
text: title,
|
4036
4036
|
top: ".5rem",
|
4037
|
-
left: "
|
4037
|
+
left: "4.5rem"
|
4038
4038
|
}, /*#__PURE__*/React.createElement(Icon, {
|
4039
4039
|
key: id,
|
4040
4040
|
icon: icon,
|
@@ -4301,74 +4301,213 @@ var UploadDialog = function UploadDialog(_ref) {
|
|
4301
4301
|
* File Explorer
|
4302
4302
|
*/
|
4303
4303
|
var FileExplorer = function FileExplorer(props) {
|
4304
|
-
var
|
4304
|
+
var _useState = useState("10002"),
|
4305
|
+
selectedFolder = _useState[0],
|
4306
|
+
setSelectedFolder = _useState[1];
|
4307
|
+
var _useState2 = useState(),
|
4308
|
+
selectedFile = _useState2[0],
|
4309
|
+
setSelectedFile = _useState2[1];
|
4310
|
+
var _useState3 = useState(),
|
4311
|
+
search = _useState3[0],
|
4312
|
+
setSearch = _useState3[1];
|
4313
|
+
function selectFolder(id) {
|
4314
|
+
setSelectedFolder(id);
|
4315
|
+
}
|
4316
|
+
function selectFile(id) {
|
4317
|
+
setSelectedFile(id);
|
4318
|
+
}
|
4319
|
+
function searchChanged(value) {
|
4320
|
+
setSearch(value);
|
4321
|
+
}
|
4322
|
+
var filteredFiles = search ? files.filter(function (file) {
|
4323
|
+
return file.title.toLowerCase().includes(search.toLowerCase());
|
4324
|
+
}) : files;
|
4325
|
+
var selectedFiles = filteredFiles.filter(function (file) {
|
4326
|
+
return file.folder === selectedFolder;
|
4327
|
+
});
|
4328
|
+
return /*#__PURE__*/React.createElement("div", {
|
4329
|
+
style: {
|
4330
|
+
padding: "1rem",
|
4331
|
+
flex: "1",
|
4332
|
+
height: "100%"
|
4333
|
+
}
|
4334
|
+
}, /*#__PURE__*/React.createElement(FileExplorerView, {
|
4335
|
+
title: "File Explorer Test",
|
4336
|
+
folders: folders,
|
4337
|
+
selectedFolder: selectedFolder,
|
4338
|
+
onSelectFolder: selectFolder,
|
4339
|
+
files: selectedFiles,
|
4340
|
+
selectedFile: selectedFile,
|
4341
|
+
onSelectFile: selectFile,
|
4342
|
+
search: search,
|
4343
|
+
onSearch: searchChanged
|
4344
|
+
}));
|
4345
|
+
};
|
4346
|
+
|
4347
|
+
/**
|
4348
|
+
* File Explorer View
|
4349
|
+
*/
|
4350
|
+
var FileExplorerView = function FileExplorerView(props) {
|
4351
|
+
var _props$folders = props.folders,
|
4352
|
+
folders = _props$folders === void 0 ? [] : _props$folders,
|
4353
|
+
selectedFolder = props.selectedFolder,
|
4354
|
+
onSelectFolder = props.onSelectFolder,
|
4305
4355
|
_props$files = props.files,
|
4306
|
-
files = _props$files === void 0 ? [] : _props$files
|
4356
|
+
files = _props$files === void 0 ? [] : _props$files,
|
4357
|
+
selectedFile = props.selectedFile,
|
4358
|
+
onSelectFile = props.onSelectFile,
|
4359
|
+
search = props.search,
|
4360
|
+
onSearch = props.onSearch;
|
4361
|
+
var _useState4 = useState('list'),
|
4362
|
+
view = _useState4[0],
|
4363
|
+
setView = _useState4[1];
|
4364
|
+
var folder = folders.find(function (folder) {
|
4365
|
+
return folder.id === selectedFolder;
|
4366
|
+
});
|
4367
|
+
var folderTitle = folder ? folder.title : '';
|
4368
|
+
function switchView() {
|
4369
|
+
setView(view === 'grid' ? 'list' : 'grid');
|
4370
|
+
}
|
4307
4371
|
return /*#__PURE__*/React.createElement("div", {
|
4308
4372
|
className: "file-explorer"
|
4309
|
-
}, /*#__PURE__*/React.createElement("
|
4310
|
-
|
4311
|
-
}
|
4312
|
-
|
4313
|
-
})), /*#__PURE__*/React.createElement("
|
4373
|
+
}, /*#__PURE__*/React.createElement("nav", null, /*#__PURE__*/React.createElement("header", {
|
4374
|
+
className: "folder-header"
|
4375
|
+
}, /*#__PURE__*/React.createElement("div", {
|
4376
|
+
className: "folder-title"
|
4377
|
+
}, folderTitle)), /*#__PURE__*/React.createElement("div", {
|
4378
|
+
className: "folder-actions"
|
4379
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
4380
|
+
icon: "list",
|
4381
|
+
clickable: true,
|
4382
|
+
action: switchView,
|
4383
|
+
checked: view === "list"
|
4384
|
+
}), /*#__PURE__*/React.createElement(Icon, {
|
4385
|
+
icon: "grid_view",
|
4386
|
+
clickable: true,
|
4387
|
+
action: switchView,
|
4388
|
+
checked: view === "grid"
|
4389
|
+
})), /*#__PURE__*/React.createElement(FilesSearchBox, {
|
4390
|
+
search: search,
|
4391
|
+
onSearch: onSearch
|
4392
|
+
})), /*#__PURE__*/React.createElement("menu", null, /*#__PURE__*/React.createElement(FoldersTreeView, {
|
4393
|
+
folders: folders,
|
4394
|
+
selected: selectedFolder,
|
4395
|
+
onSelect: onSelectFolder
|
4396
|
+
})), /*#__PURE__*/React.createElement("main", null, view === 'grid' ? /*#__PURE__*/React.createElement(FilesGridView, {
|
4397
|
+
files: files,
|
4398
|
+
selected: selectedFile,
|
4399
|
+
onSelect: onSelectFile
|
4400
|
+
}) : null, view === 'list' ? /*#__PURE__*/React.createElement(FilesTableView, {
|
4401
|
+
files: files,
|
4402
|
+
selected: selectedFile,
|
4403
|
+
onSelect: onSelectFile
|
4404
|
+
}) : null));
|
4405
|
+
};
|
4406
|
+
var FoldersTreeView = function FoldersTreeView(props) {
|
4407
|
+
var _props$folders2 = props.folders,
|
4408
|
+
folders = _props$folders2 === void 0 ? [] : _props$folders2,
|
4409
|
+
selected = props.selected,
|
4410
|
+
_onSelect = props.onSelect;
|
4411
|
+
function isSelected(id) {
|
4412
|
+
return selected === id;
|
4413
|
+
}
|
4414
|
+
return /*#__PURE__*/React.createElement(Tree, null, folders.map(function (folder) {
|
4415
|
+
return /*#__PURE__*/React.createElement(TreeItem, {
|
4416
|
+
key: folder.id,
|
4417
|
+
icon: folder.icon,
|
4418
|
+
label: folder.title,
|
4419
|
+
onSelect: function onSelect() {
|
4420
|
+
return _onSelect(folder.id);
|
4421
|
+
},
|
4422
|
+
selected: isSelected(folder.id)
|
4423
|
+
});
|
4424
|
+
}));
|
4425
|
+
};
|
4426
|
+
var FilesSearchBox = function FilesSearchBox(props) {
|
4427
|
+
var onSearch = props.onSearch;
|
4428
|
+
function searchChanged(id, value) {
|
4429
|
+
onSearch(value);
|
4430
|
+
}
|
4431
|
+
return /*#__PURE__*/React.createElement("div", {
|
4432
|
+
className: "file-searchbox"
|
4433
|
+
}, /*#__PURE__*/React.createElement(TextField, {
|
4434
|
+
placeholder: "Search...",
|
4435
|
+
onChange: searchChanged,
|
4436
|
+
outlined: true
|
4437
|
+
}));
|
4314
4438
|
};
|
4315
4439
|
|
4316
4440
|
/**
|
4317
4441
|
* File Icons View
|
4318
4442
|
*/
|
4319
|
-
var
|
4443
|
+
var FilesGridView = function FilesGridView(props) {
|
4320
4444
|
var _props$files2 = props.files,
|
4321
4445
|
files = _props$files2 === void 0 ? [] : _props$files2,
|
4446
|
+
selected = props.selected,
|
4322
4447
|
onSelect = props.onSelect;
|
4323
|
-
var _useState = useState(),
|
4324
|
-
selected = _useState[0],
|
4325
|
-
setSelected = _useState[1];
|
4326
|
-
function select(id) {
|
4327
|
-
setSelected(id);
|
4328
|
-
if (onSelect) onSelect(id);
|
4329
|
-
}
|
4330
4448
|
function isSelected(id) {
|
4331
4449
|
return selected === id;
|
4332
4450
|
}
|
4333
4451
|
return /*#__PURE__*/React.createElement("div", {
|
4334
|
-
className: "
|
4452
|
+
className: "files-grid"
|
4335
4453
|
}, files.map(function (file) {
|
4336
|
-
return /*#__PURE__*/React.createElement(
|
4454
|
+
return /*#__PURE__*/React.createElement(FileGridItem, {
|
4455
|
+
key: file.id,
|
4337
4456
|
file: file,
|
4338
|
-
onSelect:
|
4457
|
+
onSelect: onSelect,
|
4339
4458
|
selected: isSelected(file.id)
|
4340
4459
|
});
|
4341
4460
|
}));
|
4342
4461
|
};
|
4343
4462
|
|
4344
4463
|
/**
|
4345
|
-
* File
|
4464
|
+
* File Grid Item
|
4346
4465
|
*/
|
4347
|
-
var
|
4466
|
+
var FileGridItem = function FileGridItem(props) {
|
4348
4467
|
var _props$file = props.file,
|
4349
4468
|
file = _props$file === void 0 ? {} : _props$file,
|
4350
4469
|
_props$selected = props.selected,
|
4351
4470
|
selected = _props$selected === void 0 ? false : _props$selected,
|
4352
4471
|
onSelect = props.onSelect;
|
4353
4472
|
var id = file.id,
|
4354
|
-
|
4355
|
-
|
4473
|
+
title = file.title,
|
4474
|
+
subtitle = file.subtitle,
|
4356
4475
|
_file$src = file.src,
|
4357
|
-
src = _file$src === void 0 ? "https://
|
4358
|
-
footer = file.footer;
|
4476
|
+
src = _file$src === void 0 ? "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQkAPtY9GS4QgwAjRUSvLaa6TP4fSlQkVDqEg&usqp=CAU" : _file$src;
|
4359
4477
|
function select() {
|
4360
4478
|
if (onSelect && !selected) onSelect(id);
|
4361
4479
|
}
|
4362
|
-
var style = selected ? 'file-
|
4480
|
+
var style = selected ? 'file-item--selected' : '';
|
4363
4481
|
return /*#__PURE__*/React.createElement("div", {
|
4364
|
-
className: "file-
|
4482
|
+
className: "file-item " + style,
|
4365
4483
|
onClick: select
|
4366
4484
|
}, /*#__PURE__*/React.createElement("picture", null, /*#__PURE__*/React.createElement("img", {
|
4367
4485
|
src: src
|
4368
|
-
})), /*#__PURE__*/React.createElement("main", null,
|
4369
|
-
|
4370
|
-
|
4371
|
-
|
4486
|
+
})), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement("div", {
|
4487
|
+
className: "file-item-title"
|
4488
|
+
}, title), /*#__PURE__*/React.createElement("div", {
|
4489
|
+
className: "file-item-subtitle"
|
4490
|
+
}, subtitle)));
|
4491
|
+
};
|
4492
|
+
var FilesTableView = function FilesTableView(props) {
|
4493
|
+
var _props$files3 = props.files,
|
4494
|
+
files = _props$files3 === void 0 ? [] : _props$files3;
|
4495
|
+
var table = {
|
4496
|
+
columns: [{
|
4497
|
+
id: "icon",
|
4498
|
+
type: "ICON"
|
4499
|
+
}, {
|
4500
|
+
id: "title",
|
4501
|
+
label: "Title"
|
4502
|
+
}, {
|
4503
|
+
id: "subtitle",
|
4504
|
+
label: "Subtitle"
|
4505
|
+
}],
|
4506
|
+
rows: files
|
4507
|
+
};
|
4508
|
+
return /*#__PURE__*/React.createElement("div", {
|
4509
|
+
className: "files-table"
|
4510
|
+
}, /*#__PURE__*/React.createElement(DataTable, table));
|
4372
4511
|
};
|
4373
4512
|
|
4374
4513
|
/**
|
@@ -10950,5 +11089,5 @@ var isFunction = function isFunction(value) {
|
|
10950
11089
|
return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
|
10951
11090
|
};
|
10952
11091
|
|
10953
|
-
export { Accordion, Avatar, Button, Calendar, CheckBox, Chip, Chips, CircularProgress, CollectionAPI$1 as CollectionAPI, CollectionAPI as CollectionAPI2, CollectionContext$1 as CollectionContext, CollectionContext as CollectionContext2, CollectionEditor$2 as CollectionEditor, CollectionFilters$1 as CollectionFilters, CollectionPage$1 as CollectionPage, CollectionPage as CollectionPage2, CollectionTree, ColorField, Content, ContentEditor, ContentForm, ContentViewer, CreateContentDialog, DataTable, DateRange, Dialog, DropDown, DynamicForm, EditContentDialog, EmptyMessage, FORMATS$1 as FORMATS, FieldEditor, FileExplorer,
|
11092
|
+
export { Accordion, Avatar, Button, Calendar, CheckBox, Chip, Chips, CircularProgress, CollectionAPI$1 as CollectionAPI, CollectionAPI as CollectionAPI2, CollectionContext$1 as CollectionContext, CollectionContext as CollectionContext2, CollectionEditor$2 as CollectionEditor, CollectionFilters$1 as CollectionFilters, CollectionPage$1 as CollectionPage, CollectionPage as CollectionPage2, CollectionTree, ColorField, Content, ContentEditor, ContentForm, ContentViewer, CreateContentDialog, DataTable, DateRange, Dialog, DropDown, DynamicForm, EditContentDialog, EmptyMessage, FORMATS$1 as FORMATS, FieldEditor, FileExplorer, FileExplorerView, FileGridItem, FilesGridView, FilesSearchBox, FilesTableView, FoldersTreeView, Form, HTTPClient, Header, Icon, ImageViewer, Kanban, KanbanCard, KanbanColumn, LinearProgress, List, ListEditor, LoginBox, Menu, MenuIcon, MenuItem, MenuSeparator, MultiSelector, Page, PageContext, PageProvider, PasswordEditor, PasswordField, Planner, Property, RadioButton, ResetPasswordBox, Section, Session, Site, SiteContext, SiteProvider, Stack, Switch, Switch2, TASK_STATES, TEXTFORMATS, TYPES$1 as TYPES, Tab, TabbedContentEditor, TabbedTablePage, TabbedView, TableEditor$2 as TableEditor, TablePage, TablePage2, Tabs, TaskContext, TaskContextProvider, TaskMonitor, TaskProgress, Text, TextArea, TextField, Thumbnail, ToggleButton, TokenField, Tooltip, Tree, TreeItem, TreeNode, TreededContentEditor, UploadArea, UploadDialog, UploadFile$1 as UploadFile, UploadForm, UploadIcon, Uploader, View, Viewer, WaitScreen, Wizard, WizardContext, isEmpty, isFunction };
|
10954
11093
|
//# sourceMappingURL=index.modern.js.map
|