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 CHANGED
@@ -4043,7 +4043,7 @@ var SiteMenu = function SiteMenu(_ref6) {
4043
4043
  }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
4044
4044
  text: title,
4045
4045
  top: ".5rem",
4046
- left: "2rem"
4046
+ left: "4.5rem"
4047
4047
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
4048
4048
  key: id,
4049
4049
  icon: icon,
@@ -4310,74 +4310,213 @@ var UploadDialog = function UploadDialog(_ref) {
4310
4310
  * File Explorer
4311
4311
  */
4312
4312
  var FileExplorer = function FileExplorer(props) {
4313
- var title = props.title,
4313
+ var _useState = React.useState("10002"),
4314
+ selectedFolder = _useState[0],
4315
+ setSelectedFolder = _useState[1];
4316
+ var _useState2 = React.useState(),
4317
+ selectedFile = _useState2[0],
4318
+ setSelectedFile = _useState2[1];
4319
+ var _useState3 = React.useState(),
4320
+ search = _useState3[0],
4321
+ setSearch = _useState3[1];
4322
+ function selectFolder(id) {
4323
+ setSelectedFolder(id);
4324
+ }
4325
+ function selectFile(id) {
4326
+ setSelectedFile(id);
4327
+ }
4328
+ function searchChanged(value) {
4329
+ setSearch(value);
4330
+ }
4331
+ var filteredFiles = search ? files.filter(function (file) {
4332
+ return file.title.toLowerCase().includes(search.toLowerCase());
4333
+ }) : files;
4334
+ var selectedFiles = filteredFiles.filter(function (file) {
4335
+ return file.folder === selectedFolder;
4336
+ });
4337
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4338
+ style: {
4339
+ padding: "1rem",
4340
+ flex: "1",
4341
+ height: "100%"
4342
+ }
4343
+ }, /*#__PURE__*/React__default["default"].createElement(FileExplorerView, {
4344
+ title: "File Explorer Test",
4345
+ folders: folders,
4346
+ selectedFolder: selectedFolder,
4347
+ onSelectFolder: selectFolder,
4348
+ files: selectedFiles,
4349
+ selectedFile: selectedFile,
4350
+ onSelectFile: selectFile,
4351
+ search: search,
4352
+ onSearch: searchChanged
4353
+ }));
4354
+ };
4355
+
4356
+ /**
4357
+ * File Explorer View
4358
+ */
4359
+ var FileExplorerView = function FileExplorerView(props) {
4360
+ var _props$folders = props.folders,
4361
+ folders = _props$folders === void 0 ? [] : _props$folders,
4362
+ selectedFolder = props.selectedFolder,
4363
+ onSelectFolder = props.onSelectFolder,
4314
4364
  _props$files = props.files,
4315
- files = _props$files === void 0 ? [] : _props$files;
4365
+ files = _props$files === void 0 ? [] : _props$files,
4366
+ selectedFile = props.selectedFile,
4367
+ onSelectFile = props.onSelectFile,
4368
+ search = props.search,
4369
+ onSearch = props.onSearch;
4370
+ var _useState4 = React.useState('list'),
4371
+ view = _useState4[0],
4372
+ setView = _useState4[1];
4373
+ var folder = folders.find(function (folder) {
4374
+ return folder.id === selectedFolder;
4375
+ });
4376
+ var folderTitle = folder ? folder.title : '';
4377
+ function switchView() {
4378
+ setView(view === 'grid' ? 'list' : 'grid');
4379
+ }
4316
4380
  return /*#__PURE__*/React__default["default"].createElement("div", {
4317
4381
  className: "file-explorer"
4318
- }, /*#__PURE__*/React__default["default"].createElement("header", null, title, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
4319
- icon: "info"
4320
- }))), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(FilesGrid, {
4321
- files: files
4322
- })), /*#__PURE__*/React__default["default"].createElement("aside", null));
4382
+ }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("header", {
4383
+ className: "folder-header"
4384
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4385
+ className: "folder-title"
4386
+ }, folderTitle)), /*#__PURE__*/React__default["default"].createElement("div", {
4387
+ className: "folder-actions"
4388
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
4389
+ icon: "list",
4390
+ clickable: true,
4391
+ action: switchView,
4392
+ checked: view === "list"
4393
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
4394
+ icon: "grid_view",
4395
+ clickable: true,
4396
+ action: switchView,
4397
+ checked: view === "grid"
4398
+ })), /*#__PURE__*/React__default["default"].createElement(FilesSearchBox, {
4399
+ search: search,
4400
+ onSearch: onSearch
4401
+ })), /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement(FoldersTreeView, {
4402
+ folders: folders,
4403
+ selected: selectedFolder,
4404
+ onSelect: onSelectFolder
4405
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, view === 'grid' ? /*#__PURE__*/React__default["default"].createElement(FilesGridView, {
4406
+ files: files,
4407
+ selected: selectedFile,
4408
+ onSelect: onSelectFile
4409
+ }) : null, view === 'list' ? /*#__PURE__*/React__default["default"].createElement(FilesTableView, {
4410
+ files: files,
4411
+ selected: selectedFile,
4412
+ onSelect: onSelectFile
4413
+ }) : null));
4414
+ };
4415
+ var FoldersTreeView = function FoldersTreeView(props) {
4416
+ var _props$folders2 = props.folders,
4417
+ folders = _props$folders2 === void 0 ? [] : _props$folders2,
4418
+ selected = props.selected,
4419
+ _onSelect = props.onSelect;
4420
+ function isSelected(id) {
4421
+ return selected === id;
4422
+ }
4423
+ return /*#__PURE__*/React__default["default"].createElement(Tree, null, folders.map(function (folder) {
4424
+ return /*#__PURE__*/React__default["default"].createElement(TreeItem, {
4425
+ key: folder.id,
4426
+ icon: folder.icon,
4427
+ label: folder.title,
4428
+ onSelect: function onSelect() {
4429
+ return _onSelect(folder.id);
4430
+ },
4431
+ selected: isSelected(folder.id)
4432
+ });
4433
+ }));
4434
+ };
4435
+ var FilesSearchBox = function FilesSearchBox(props) {
4436
+ var onSearch = props.onSearch;
4437
+ function searchChanged(id, value) {
4438
+ onSearch(value);
4439
+ }
4440
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4441
+ className: "file-searchbox"
4442
+ }, /*#__PURE__*/React__default["default"].createElement(TextField, {
4443
+ placeholder: "Search...",
4444
+ onChange: searchChanged,
4445
+ outlined: true
4446
+ }));
4323
4447
  };
4324
4448
 
4325
4449
  /**
4326
4450
  * File Icons View
4327
4451
  */
4328
- var FilesGrid = function FilesGrid(props) {
4452
+ var FilesGridView = function FilesGridView(props) {
4329
4453
  var _props$files2 = props.files,
4330
4454
  files = _props$files2 === void 0 ? [] : _props$files2,
4455
+ selected = props.selected,
4331
4456
  onSelect = props.onSelect;
4332
- var _useState = React.useState(),
4333
- selected = _useState[0],
4334
- setSelected = _useState[1];
4335
- function select(id) {
4336
- setSelected(id);
4337
- if (onSelect) onSelect(id);
4338
- }
4339
4457
  function isSelected(id) {
4340
4458
  return selected === id;
4341
4459
  }
4342
4460
  return /*#__PURE__*/React__default["default"].createElement("div", {
4343
- className: "file-view file-view--icons"
4461
+ className: "files-grid"
4344
4462
  }, files.map(function (file) {
4345
- return /*#__PURE__*/React__default["default"].createElement(FileIcon, {
4463
+ return /*#__PURE__*/React__default["default"].createElement(FileGridItem, {
4464
+ key: file.id,
4346
4465
  file: file,
4347
- onSelect: select,
4466
+ onSelect: onSelect,
4348
4467
  selected: isSelected(file.id)
4349
4468
  });
4350
4469
  }));
4351
4470
  };
4352
4471
 
4353
4472
  /**
4354
- * File Icon
4473
+ * File Grid Item
4355
4474
  */
4356
- var FileIcon = function FileIcon(props) {
4475
+ var FileGridItem = function FileGridItem(props) {
4357
4476
  var _props$file = props.file,
4358
4477
  file = _props$file === void 0 ? {} : _props$file,
4359
4478
  _props$selected = props.selected,
4360
4479
  selected = _props$selected === void 0 ? false : _props$selected,
4361
4480
  onSelect = props.onSelect;
4362
4481
  var id = file.id,
4363
- icon = file.icon,
4364
- label = file.label,
4482
+ title = file.title,
4483
+ subtitle = file.subtitle,
4365
4484
  _file$src = file.src,
4366
- src = _file$src === void 0 ? "https://findicons.com/files/icons/2813/flat_jewels/256/file.png" : _file$src,
4367
- footer = file.footer;
4485
+ src = _file$src === void 0 ? "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQkAPtY9GS4QgwAjRUSvLaa6TP4fSlQkVDqEg&usqp=CAU" : _file$src;
4368
4486
  function select() {
4369
4487
  if (onSelect && !selected) onSelect(id);
4370
4488
  }
4371
- var style = selected ? 'file-icon--selected' : '';
4489
+ var style = selected ? 'file-item--selected' : '';
4372
4490
  return /*#__PURE__*/React__default["default"].createElement("div", {
4373
- className: "file-icon " + style,
4491
+ className: "file-item " + style,
4374
4492
  onClick: select
4375
4493
  }, /*#__PURE__*/React__default["default"].createElement("picture", null, /*#__PURE__*/React__default["default"].createElement("img", {
4376
4494
  src: src
4377
- })), /*#__PURE__*/React__default["default"].createElement("main", null, icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
4378
- size: "small",
4379
- icon: icon
4380
- }) : null, /*#__PURE__*/React__default["default"].createElement("label", null, label)), footer ? /*#__PURE__*/React__default["default"].createElement("footer", null, footer) : null);
4495
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement("div", {
4496
+ className: "file-item-title"
4497
+ }, title), /*#__PURE__*/React__default["default"].createElement("div", {
4498
+ className: "file-item-subtitle"
4499
+ }, subtitle)));
4500
+ };
4501
+ var FilesTableView = function FilesTableView(props) {
4502
+ var _props$files3 = props.files,
4503
+ files = _props$files3 === void 0 ? [] : _props$files3;
4504
+ var table = {
4505
+ columns: [{
4506
+ id: "icon",
4507
+ type: "ICON"
4508
+ }, {
4509
+ id: "title",
4510
+ label: "Title"
4511
+ }, {
4512
+ id: "subtitle",
4513
+ label: "Subtitle"
4514
+ }],
4515
+ rows: files
4516
+ };
4517
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4518
+ className: "files-table"
4519
+ }, /*#__PURE__*/React__default["default"].createElement(DataTable, table));
4381
4520
  };
4382
4521
 
4383
4522
  /**
@@ -10992,7 +11131,12 @@ exports.EmptyMessage = EmptyMessage;
10992
11131
  exports.FORMATS = FORMATS$1;
10993
11132
  exports.FieldEditor = FieldEditor;
10994
11133
  exports.FileExplorer = FileExplorer;
10995
- exports.FilesGrid = FilesGrid;
11134
+ exports.FileExplorerView = FileExplorerView;
11135
+ exports.FileGridItem = FileGridItem;
11136
+ exports.FilesGridView = FilesGridView;
11137
+ exports.FilesSearchBox = FilesSearchBox;
11138
+ exports.FilesTableView = FilesTableView;
11139
+ exports.FoldersTreeView = FoldersTreeView;
10996
11140
  exports.Form = Form;
10997
11141
  exports.HTTPClient = HTTPClient;
10998
11142
  exports.Header = Header;