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