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.
@@ -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: "2rem"
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 title = props.title,
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("header", null, title, /*#__PURE__*/React.createElement("nav", null, /*#__PURE__*/React.createElement(Icon, {
4310
- icon: "info"
4311
- }))), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement(FilesGrid, {
4312
- files: files
4313
- })), /*#__PURE__*/React.createElement("aside", null));
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 FilesGrid = function FilesGrid(props) {
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: "file-view file-view--icons"
4452
+ className: "files-grid"
4335
4453
  }, files.map(function (file) {
4336
- return /*#__PURE__*/React.createElement(FileIcon, {
4454
+ return /*#__PURE__*/React.createElement(FileGridItem, {
4455
+ key: file.id,
4337
4456
  file: file,
4338
- onSelect: select,
4457
+ onSelect: onSelect,
4339
4458
  selected: isSelected(file.id)
4340
4459
  });
4341
4460
  }));
4342
4461
  };
4343
4462
 
4344
4463
  /**
4345
- * File Icon
4464
+ * File Grid Item
4346
4465
  */
4347
- var FileIcon = function FileIcon(props) {
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
- icon = file.icon,
4355
- label = file.label,
4473
+ title = file.title,
4474
+ subtitle = file.subtitle,
4356
4475
  _file$src = file.src,
4357
- src = _file$src === void 0 ? "https://findicons.com/files/icons/2813/flat_jewels/256/file.png" : _file$src,
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-icon--selected' : '';
4480
+ var style = selected ? 'file-item--selected' : '';
4363
4481
  return /*#__PURE__*/React.createElement("div", {
4364
- className: "file-icon " + style,
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, icon ? /*#__PURE__*/React.createElement(Icon, {
4369
- size: "small",
4370
- icon: icon
4371
- }) : null, /*#__PURE__*/React.createElement("label", null, label)), footer ? /*#__PURE__*/React.createElement("footer", null, footer) : null);
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, FilesGrid, 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 };
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