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