ywana-core8 0.0.887 → 0.0.888

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,
@@ -4307,77 +4307,169 @@ var UploadDialog = function UploadDialog(_ref) {
4307
4307
  };
4308
4308
 
4309
4309
  /**
4310
- * File Explorer
4310
+ * File Explorer View
4311
4311
  */
4312
- var FileExplorer = function FileExplorer(props) {
4313
- var title = props.title,
4312
+ var FileExplorerView = function FileExplorerView(props) {
4313
+ var _props$folders = props.folders,
4314
+ folders = _props$folders === void 0 ? [] : _props$folders,
4315
+ selectedFolder = props.selectedFolder,
4316
+ onSelectFolder = props.onSelectFolder,
4314
4317
  _props$files = props.files,
4315
- files = _props$files === void 0 ? [] : _props$files;
4318
+ files = _props$files === void 0 ? [] : _props$files,
4319
+ selectedFile = props.selectedFile,
4320
+ onSelectFile = props.onSelectFile,
4321
+ search = props.search,
4322
+ onSearch = props.onSearch;
4323
+ var _useState4 = React.useState('list'),
4324
+ view = _useState4[0],
4325
+ setView = _useState4[1];
4326
+ var folder = folders.find(function (folder) {
4327
+ return folder.id === selectedFolder;
4328
+ });
4329
+ var folderTitle = folder ? folder.title : '';
4330
+ function switchView() {
4331
+ setView(view === 'grid' ? 'list' : 'grid');
4332
+ }
4316
4333
  return /*#__PURE__*/React__default["default"].createElement("div", {
4317
4334
  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));
4335
+ }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("header", {
4336
+ className: "folder-header"
4337
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4338
+ className: "folder-title"
4339
+ }, folderTitle)), /*#__PURE__*/React__default["default"].createElement("div", {
4340
+ className: "folder-actions"
4341
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
4342
+ icon: "list",
4343
+ clickable: true,
4344
+ action: switchView,
4345
+ checked: view === "list"
4346
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
4347
+ icon: "grid_view",
4348
+ clickable: true,
4349
+ action: switchView,
4350
+ checked: view === "grid"
4351
+ })), /*#__PURE__*/React__default["default"].createElement(FilesSearchBox, {
4352
+ search: search,
4353
+ onSearch: onSearch
4354
+ })), /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement(FoldersTreeView, {
4355
+ folders: folders,
4356
+ selected: selectedFolder,
4357
+ onSelect: onSelectFolder
4358
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, view === 'grid' ? /*#__PURE__*/React__default["default"].createElement(FilesGridView, {
4359
+ files: files,
4360
+ selected: selectedFile,
4361
+ onSelect: onSelectFile
4362
+ }) : null, view === 'list' ? /*#__PURE__*/React__default["default"].createElement(FilesTableView, {
4363
+ files: files,
4364
+ selected: selectedFile,
4365
+ onSelect: onSelectFile
4366
+ }) : null));
4367
+ };
4368
+ var FoldersTreeView = function FoldersTreeView(props) {
4369
+ var _props$folders2 = props.folders,
4370
+ folders = _props$folders2 === void 0 ? [] : _props$folders2,
4371
+ selected = props.selected,
4372
+ _onSelect = props.onSelect;
4373
+ function isSelected(id) {
4374
+ return selected === id;
4375
+ }
4376
+ return /*#__PURE__*/React__default["default"].createElement(Tree, null, folders.map(function (folder) {
4377
+ return /*#__PURE__*/React__default["default"].createElement(TreeItem, {
4378
+ key: folder.id,
4379
+ icon: folder.icon,
4380
+ label: folder.title,
4381
+ onSelect: function onSelect() {
4382
+ return _onSelect(folder.id);
4383
+ },
4384
+ selected: isSelected(folder.id)
4385
+ });
4386
+ }));
4387
+ };
4388
+ var FilesSearchBox = function FilesSearchBox(props) {
4389
+ var onSearch = props.onSearch;
4390
+ function searchChanged(id, value) {
4391
+ onSearch(value);
4392
+ }
4393
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4394
+ className: "file-searchbox"
4395
+ }, /*#__PURE__*/React__default["default"].createElement(TextField, {
4396
+ placeholder: "Search...",
4397
+ onChange: searchChanged,
4398
+ outlined: true
4399
+ }));
4323
4400
  };
4324
4401
 
4325
4402
  /**
4326
4403
  * File Icons View
4327
4404
  */
4328
- var FilesGrid = function FilesGrid(props) {
4405
+ var FilesGridView = function FilesGridView(props) {
4329
4406
  var _props$files2 = props.files,
4330
4407
  files = _props$files2 === void 0 ? [] : _props$files2,
4408
+ selected = props.selected,
4331
4409
  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
4410
  function isSelected(id) {
4340
4411
  return selected === id;
4341
4412
  }
4342
4413
  return /*#__PURE__*/React__default["default"].createElement("div", {
4343
- className: "file-view file-view--icons"
4414
+ className: "files-grid"
4344
4415
  }, files.map(function (file) {
4345
- return /*#__PURE__*/React__default["default"].createElement(FileIcon, {
4416
+ return /*#__PURE__*/React__default["default"].createElement(FileGridItem, {
4417
+ key: file.id,
4346
4418
  file: file,
4347
- onSelect: select,
4419
+ onSelect: onSelect,
4348
4420
  selected: isSelected(file.id)
4349
4421
  });
4350
4422
  }));
4351
4423
  };
4352
4424
 
4353
4425
  /**
4354
- * File Icon
4426
+ * File Grid Item
4355
4427
  */
4356
- var FileIcon = function FileIcon(props) {
4428
+ var FileGridItem = function FileGridItem(props) {
4357
4429
  var _props$file = props.file,
4358
4430
  file = _props$file === void 0 ? {} : _props$file,
4359
4431
  _props$selected = props.selected,
4360
4432
  selected = _props$selected === void 0 ? false : _props$selected,
4361
4433
  onSelect = props.onSelect;
4362
4434
  var id = file.id,
4363
- icon = file.icon,
4364
- label = file.label,
4435
+ title = file.title,
4436
+ subtitle = file.subtitle,
4365
4437
  _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;
4438
+ src = _file$src === void 0 ? "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQkAPtY9GS4QgwAjRUSvLaa6TP4fSlQkVDqEg&usqp=CAU" : _file$src;
4368
4439
  function select() {
4369
4440
  if (onSelect && !selected) onSelect(id);
4370
4441
  }
4371
- var style = selected ? 'file-icon--selected' : '';
4442
+ var style = selected ? 'file-item--selected' : '';
4372
4443
  return /*#__PURE__*/React__default["default"].createElement("div", {
4373
- className: "file-icon " + style,
4444
+ className: "file-item " + style,
4374
4445
  onClick: select
4375
4446
  }, /*#__PURE__*/React__default["default"].createElement("picture", null, /*#__PURE__*/React__default["default"].createElement("img", {
4376
4447
  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);
4448
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement("div", {
4449
+ className: "file-item-title"
4450
+ }, title), /*#__PURE__*/React__default["default"].createElement("div", {
4451
+ className: "file-item-subtitle"
4452
+ }, subtitle)));
4453
+ };
4454
+ var FilesTableView = function FilesTableView(props) {
4455
+ var _props$files3 = props.files,
4456
+ files = _props$files3 === void 0 ? [] : _props$files3;
4457
+ var table = {
4458
+ columns: [{
4459
+ id: "icon",
4460
+ type: "ICON"
4461
+ }, {
4462
+ id: "title",
4463
+ label: "Title"
4464
+ }, {
4465
+ id: "subtitle",
4466
+ label: "Subtitle"
4467
+ }],
4468
+ rows: files
4469
+ };
4470
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4471
+ className: "files-table"
4472
+ }, /*#__PURE__*/React__default["default"].createElement(DataTable, table));
4381
4473
  };
4382
4474
 
4383
4475
  /**
@@ -10991,8 +11083,10 @@ exports.EditContentDialog = EditContentDialog;
10991
11083
  exports.EmptyMessage = EmptyMessage;
10992
11084
  exports.FORMATS = FORMATS$1;
10993
11085
  exports.FieldEditor = FieldEditor;
10994
- exports.FileExplorer = FileExplorer;
10995
- exports.FilesGrid = FilesGrid;
11086
+ exports.FileExplorerView = FileExplorerView;
11087
+ exports.FilesGridView = FilesGridView;
11088
+ exports.FilesSearchBox = FilesSearchBox;
11089
+ exports.FoldersTreeView = FoldersTreeView;
10996
11090
  exports.Form = Form;
10997
11091
  exports.HTTPClient = HTTPClient;
10998
11092
  exports.Header = Header;