ywana-core8 0.0.886 → 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.
@@ -4024,6 +4024,7 @@ var SiteMenu = function SiteMenu(_ref6) {
4024
4024
  icon = _ref7$icon === void 0 ? 'info' : _ref7$icon,
4025
4025
  title = _ref7.title;
4026
4026
  var styleItem = id === page ? 'selected' : '';
4027
+ var titleTxt = context.translate(title);
4027
4028
  return /*#__PURE__*/React.createElement("div", {
4028
4029
  className: "site-menu-item " + styleItem,
4029
4030
  key: id,
@@ -4033,7 +4034,7 @@ var SiteMenu = function SiteMenu(_ref6) {
4033
4034
  }, /*#__PURE__*/React.createElement(Tooltip, {
4034
4035
  text: title,
4035
4036
  top: ".5rem",
4036
- left: "2rem"
4037
+ left: "4.5rem"
4037
4038
  }, /*#__PURE__*/React.createElement(Icon, {
4038
4039
  key: id,
4039
4040
  icon: icon,
@@ -4041,7 +4042,7 @@ var SiteMenu = function SiteMenu(_ref6) {
4041
4042
  action: function action() {
4042
4043
  return _goto(id);
4043
4044
  }
4044
- })), sideNav === 'max' ? /*#__PURE__*/React.createElement("label", null, title) : null);
4045
+ })), sideNav === 'max' ? /*#__PURE__*/React.createElement("label", null, titleTxt) : null);
4045
4046
  }), /*#__PURE__*/React.createElement("div", {
4046
4047
  className: "section-divider"
4047
4048
  }));
@@ -4297,77 +4298,169 @@ var UploadDialog = function UploadDialog(_ref) {
4297
4298
  };
4298
4299
 
4299
4300
  /**
4300
- * File Explorer
4301
+ * File Explorer View
4301
4302
  */
4302
- var FileExplorer = function FileExplorer(props) {
4303
- 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,
4304
4308
  _props$files = props.files,
4305
- 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
+ }
4306
4324
  return /*#__PURE__*/React.createElement("div", {
4307
4325
  className: "file-explorer"
4308
- }, /*#__PURE__*/React.createElement("header", null, title, /*#__PURE__*/React.createElement("nav", null, /*#__PURE__*/React.createElement(Icon, {
4309
- icon: "info"
4310
- }))), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement(FilesGrid, {
4311
- files: files
4312
- })), /*#__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
+ }));
4313
4391
  };
4314
4392
 
4315
4393
  /**
4316
4394
  * File Icons View
4317
4395
  */
4318
- var FilesGrid = function FilesGrid(props) {
4396
+ var FilesGridView = function FilesGridView(props) {
4319
4397
  var _props$files2 = props.files,
4320
4398
  files = _props$files2 === void 0 ? [] : _props$files2,
4399
+ selected = props.selected,
4321
4400
  onSelect = props.onSelect;
4322
- var _useState = useState(),
4323
- selected = _useState[0],
4324
- setSelected = _useState[1];
4325
- function select(id) {
4326
- setSelected(id);
4327
- if (onSelect) onSelect(id);
4328
- }
4329
4401
  function isSelected(id) {
4330
4402
  return selected === id;
4331
4403
  }
4332
4404
  return /*#__PURE__*/React.createElement("div", {
4333
- className: "file-view file-view--icons"
4405
+ className: "files-grid"
4334
4406
  }, files.map(function (file) {
4335
- return /*#__PURE__*/React.createElement(FileIcon, {
4407
+ return /*#__PURE__*/React.createElement(FileGridItem, {
4408
+ key: file.id,
4336
4409
  file: file,
4337
- onSelect: select,
4410
+ onSelect: onSelect,
4338
4411
  selected: isSelected(file.id)
4339
4412
  });
4340
4413
  }));
4341
4414
  };
4342
4415
 
4343
4416
  /**
4344
- * File Icon
4417
+ * File Grid Item
4345
4418
  */
4346
- var FileIcon = function FileIcon(props) {
4419
+ var FileGridItem = function FileGridItem(props) {
4347
4420
  var _props$file = props.file,
4348
4421
  file = _props$file === void 0 ? {} : _props$file,
4349
4422
  _props$selected = props.selected,
4350
4423
  selected = _props$selected === void 0 ? false : _props$selected,
4351
4424
  onSelect = props.onSelect;
4352
4425
  var id = file.id,
4353
- icon = file.icon,
4354
- label = file.label,
4426
+ title = file.title,
4427
+ subtitle = file.subtitle,
4355
4428
  _file$src = file.src,
4356
- src = _file$src === void 0 ? "https://findicons.com/files/icons/2813/flat_jewels/256/file.png" : _file$src,
4357
- footer = file.footer;
4429
+ src = _file$src === void 0 ? "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQkAPtY9GS4QgwAjRUSvLaa6TP4fSlQkVDqEg&usqp=CAU" : _file$src;
4358
4430
  function select() {
4359
4431
  if (onSelect && !selected) onSelect(id);
4360
4432
  }
4361
- var style = selected ? 'file-icon--selected' : '';
4433
+ var style = selected ? 'file-item--selected' : '';
4362
4434
  return /*#__PURE__*/React.createElement("div", {
4363
- className: "file-icon " + style,
4435
+ className: "file-item " + style,
4364
4436
  onClick: select
4365
4437
  }, /*#__PURE__*/React.createElement("picture", null, /*#__PURE__*/React.createElement("img", {
4366
4438
  src: src
4367
- })), /*#__PURE__*/React.createElement("main", null, icon ? /*#__PURE__*/React.createElement(Icon, {
4368
- size: "small",
4369
- icon: icon
4370
- }) : 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));
4371
4464
  };
4372
4465
 
4373
4466
  /**
@@ -10949,5 +11042,5 @@ var isFunction = function isFunction(value) {
10949
11042
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
10950
11043
  };
10951
11044
 
10952
- 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 };
10953
11046
  //# sourceMappingURL=index.modern.js.map