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