ywana-core8 0.1.54 → 0.1.56

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.
@@ -3338,6 +3338,68 @@ var Page = function Page(props) {
3338
3338
  }, children));
3339
3339
  };
3340
3340
 
3341
+ /**
3342
+ * Use Hash Page
3343
+ */
3344
+ function useHashPage(defaultPage) {
3345
+ if (defaultPage === void 0) {
3346
+ defaultPage = "home";
3347
+ }
3348
+ var getCurrentPageFromURL = function getCurrentPageFromURL() {
3349
+ var hash = window.location.hash.replace("#", "");
3350
+ return hash || defaultPage;
3351
+ };
3352
+ var _useState = useState(getCurrentPageFromURL()),
3353
+ page = _useState[0],
3354
+ setPage = _useState[1];
3355
+ var _useState2 = useState([]),
3356
+ history = _useState2[0],
3357
+ setHistory = _useState2[1];
3358
+ var isFirstLoad = useRef(true);
3359
+ useEffect(function () {
3360
+ var handleHashChange = function handleHashChange() {
3361
+ var newPage = getCurrentPageFromURL();
3362
+ if (!isFirstLoad.current) {
3363
+ setHistory(function (prev) {
3364
+ return [].concat(prev, [page]);
3365
+ }); // Guarda la página anterior
3366
+ } else {
3367
+ isFirstLoad.current = false;
3368
+ }
3369
+ setPage(newPage);
3370
+ };
3371
+ window.addEventListener("hashchange", handleHashChange);
3372
+ return function () {
3373
+ return window.removeEventListener("hashchange", handleHashChange);
3374
+ };
3375
+ }, [page]);
3376
+ var _goto = function _goto(id) {
3377
+ if (page) {
3378
+ setHistory(function (prev) {
3379
+ return [].concat(prev, [page]);
3380
+ });
3381
+ }
3382
+ setPage(id);
3383
+ window.location.hash = id;
3384
+ };
3385
+ var goBack = function goBack() {
3386
+ if (history.length > 0) {
3387
+ var lastPage = history[history.length - 1];
3388
+ setHistory(function (prev) {
3389
+ return prev.slice(0, -1);
3390
+ });
3391
+ setPage(lastPage);
3392
+ window.location.hash = lastPage;
3393
+ }
3394
+ };
3395
+ return {
3396
+ page: page,
3397
+ "goto": _goto,
3398
+ goBack: goBack,
3399
+ history: history
3400
+ };
3401
+ }
3402
+
3341
3403
  /**
3342
3404
  * Site Provider
3343
3405
  */
@@ -3378,30 +3440,10 @@ var SiteProvider = function SiteProvider(_ref) {
3378
3440
  var _useState11 = useState(),
3379
3441
  breadcrumb = _useState11[0],
3380
3442
  setBreadcrumb = _useState11[1];
3381
- var _useState12 = useState([]),
3382
- history = _useState12[0],
3383
- setHistory = _useState12[1];
3384
-
3385
- // 📌 Extraer la página actual desde la URL (por defecto "home")
3386
- var getCurrentPageFromURL = function getCurrentPageFromURL() {
3387
- var path = window.location.pathname.replace("/", "");
3388
- return path || "home";
3389
- };
3390
- var _useState13 = useState(getCurrentPageFromURL()),
3391
- page = _useState13[0],
3392
- setPage = _useState13[1];
3393
- useEffect(function () {
3394
- // 📌 Detectar cambios en la URL cuando el usuario presiona "Atrás" o "Adelante"
3395
- var handlePopState = function handlePopState(event) {
3396
- var _event$state;
3397
- var previousPage = ((_event$state = event.state) == null ? void 0 : _event$state.page) || "home";
3398
- setPage(previousPage);
3399
- };
3400
- window.addEventListener("popstate", handlePopState);
3401
- return function () {
3402
- return window.removeEventListener("popstate", handlePopState);
3403
- };
3404
- }, []);
3443
+ var _useHashPage = useHashPage(),
3444
+ page = _useHashPage.page,
3445
+ _goto = _useHashPage["goto"],
3446
+ goBack = _useHashPage.goBack;
3405
3447
  var value = {
3406
3448
  lang: lang,
3407
3449
  setLang: setLang,
@@ -3411,15 +3453,6 @@ var SiteProvider = function SiteProvider(_ref) {
3411
3453
  var _dictionary$key;
3412
3454
  return (dictionary == null ? void 0 : (_dictionary$key = dictionary[key]) == null ? void 0 : _dictionary$key[lang]) || key;
3413
3455
  }, [lang, dictionary]),
3414
- /*
3415
- translate: (key) => {
3416
- if (!key) return key
3417
- if (dictionary === undefined) return key
3418
- const term = dictionary[key]
3419
- return term ? term[lang] : key
3420
- },
3421
- */
3422
-
3423
3456
  sideNav: sideNav,
3424
3457
  setSideNav: setSideNav,
3425
3458
  showNav: showNav,
@@ -3446,27 +3479,8 @@ var SiteProvider = function SiteProvider(_ref) {
3446
3479
  breadcrumb: breadcrumb,
3447
3480
  setBreadcrumb: setBreadcrumb,
3448
3481
  page: page,
3449
- "goto": function goto(id) {
3450
- if (page) {
3451
- setHistory(function (prev) {
3452
- return [].concat(prev, [page]);
3453
- }); // 🔹 Guarda la página actual en el historial antes de cambiar
3454
- }
3455
- setPage(id);
3456
- window.history.pushState({
3457
- page: id
3458
- }, "", "/" + id); // 🔹 Actualiza la URL
3459
- },
3460
- goBack: function goBack() {
3461
- if (history.length > 0) {
3462
- var lastPage = history[history.length - 1];
3463
- setHistory(function (prev) {
3464
- return prev.slice(0, -1);
3465
- }); // 🔹 Elimina la última entrada del historial
3466
- setPage(lastPage); // 🔹 Vuelve a la página anterior
3467
- window.history.back(); // 🔹 Regresa en la navegación del navegador
3468
- }
3469
- },
3482
+ "goto": _goto,
3483
+ goBack: goBack,
3470
3484
  dialog: dialog,
3471
3485
  openDialog: function openDialog(dialog) {
3472
3486
  setDialog(dialog);
@@ -3619,7 +3633,7 @@ var SiteMenu = function SiteMenu(_ref6) {
3619
3633
  var next = sideNav === 'max' ? 'min' : 'max';
3620
3634
  setSideNav(next);
3621
3635
  }
3622
- var _goto = function _goto(id) {
3636
+ var _goto2 = function _goto2(id) {
3623
3637
  context.setShowNav(false);
3624
3638
  context["goto"](id);
3625
3639
  };
@@ -3657,7 +3671,7 @@ var SiteMenu = function SiteMenu(_ref6) {
3657
3671
  className: "site-menu-item " + styleItem,
3658
3672
  key: id,
3659
3673
  onClick: function onClick() {
3660
- return _goto(id);
3674
+ return _goto2(id);
3661
3675
  }
3662
3676
  }, /*#__PURE__*/React.createElement(Tooltip, {
3663
3677
  text: title,
@@ -3668,7 +3682,7 @@ var SiteMenu = function SiteMenu(_ref6) {
3668
3682
  icon: icon,
3669
3683
  clickable: true,
3670
3684
  action: function action() {
3671
- return _goto(id);
3685
+ return _goto2(id);
3672
3686
  }
3673
3687
  })), sideNav === 'max' ? /*#__PURE__*/React.createElement("label", null, titleTxt) : null);
3674
3688
  }), /*#__PURE__*/React.createElement("div", {
@@ -3867,6 +3881,36 @@ var TabbedView = function TabbedView(props) {
3867
3881
  }, children));
3868
3882
  };
3869
3883
 
3884
+ /**
3885
+ * PageLink - Navegación declarativa usando el sistema de hash
3886
+ *
3887
+ * Props:
3888
+ * - page: string → ID de la página a mostrar
3889
+ * - children: ReactNode → contenido visual del enlace
3890
+ * - className: string → clases opcionales
3891
+ * - style: object → estilos en línea opcionales
3892
+ */
3893
+ var PageLink = function PageLink(_ref) {
3894
+ var page = _ref.page,
3895
+ children = _ref.children,
3896
+ _ref$className = _ref.className,
3897
+ className = _ref$className === void 0 ? '' : _ref$className,
3898
+ _ref$style = _ref.style,
3899
+ style = _ref$style === void 0 ? {} : _ref$style;
3900
+ var _useContext = useContext(SiteContext),
3901
+ _goto2 = _useContext["goto"];
3902
+ var handleClick = function handleClick(e) {
3903
+ e.preventDefault();
3904
+ _goto2(page);
3905
+ };
3906
+ return /*#__PURE__*/React.createElement("a", {
3907
+ href: "#" + page,
3908
+ onClick: handleClick,
3909
+ className: className,
3910
+ style: style
3911
+ }, children);
3912
+ };
3913
+
3870
3914
  /**
3871
3915
  * Admin Change User Password Dialog
3872
3916
  */
@@ -9931,15 +9975,15 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9931
9975
  return Promise.reject(e);
9932
9976
  }
9933
9977
  },
9934
- changeFilters: function changeFilters(filters) {
9935
- this.filters = filters;
9936
- },
9937
- loadQueries: function loadQueries(user) {
9978
+ removeChecked: function removeChecked() {
9938
9979
  try {
9939
9980
  var _this6 = this;
9940
9981
  var _temp8 = _catch$3(function () {
9941
- return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
9942
- _this6.queries = _API$queries;
9982
+ var promises = _this6.checked.map(function (id) {
9983
+ return API.remove(id);
9984
+ });
9985
+ return Promise.resolve(Promise.all(promises)).then(function () {
9986
+ return Promise.resolve(_this6.load()).then(function () {});
9943
9987
  });
9944
9988
  }, function (error) {
9945
9989
  console.log(error);
@@ -9949,12 +9993,15 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9949
9993
  return Promise.reject(e);
9950
9994
  }
9951
9995
  },
9952
- createQuery: function createQuery(query, user) {
9996
+ removeAll: function removeAll() {
9953
9997
  try {
9954
9998
  var _this7 = this;
9955
9999
  var _temp9 = _catch$3(function () {
9956
- return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
9957
- return Promise.resolve(_this7.loadQueries(user)).then(function () {});
10000
+ var promises = _this7.all.map(function (item) {
10001
+ return API.remove(item.id);
10002
+ });
10003
+ return Promise.resolve(Promise.all(promises)).then(function () {
10004
+ return Promise.resolve(_this7.load()).then(function () {});
9958
10005
  });
9959
10006
  }, function (error) {
9960
10007
  console.log(error);
@@ -9964,12 +10011,15 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9964
10011
  return Promise.reject(e);
9965
10012
  }
9966
10013
  },
9967
- removeQuery: function removeQuery(id, user) {
10014
+ changeFilters: function changeFilters(filters) {
10015
+ this.filters = filters;
10016
+ },
10017
+ loadQueries: function loadQueries(user) {
9968
10018
  try {
9969
10019
  var _this8 = this;
9970
10020
  var _temp10 = _catch$3(function () {
9971
- return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
9972
- return Promise.resolve(_this8.loadQueries(user)).then(function () {});
10021
+ return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
10022
+ _this8.queries = _API$queries;
9973
10023
  });
9974
10024
  }, function (error) {
9975
10025
  console.log(error);
@@ -9978,6 +10028,36 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9978
10028
  } catch (e) {
9979
10029
  return Promise.reject(e);
9980
10030
  }
10031
+ },
10032
+ createQuery: function createQuery(query, user) {
10033
+ try {
10034
+ var _this9 = this;
10035
+ var _temp11 = _catch$3(function () {
10036
+ return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
10037
+ return Promise.resolve(_this9.loadQueries(user)).then(function () {});
10038
+ });
10039
+ }, function (error) {
10040
+ console.log(error);
10041
+ });
10042
+ return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
10043
+ } catch (e) {
10044
+ return Promise.reject(e);
10045
+ }
10046
+ },
10047
+ removeQuery: function removeQuery(id, user) {
10048
+ try {
10049
+ var _this10 = this;
10050
+ var _temp12 = _catch$3(function () {
10051
+ return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
10052
+ return Promise.resolve(_this10.loadQueries(user)).then(function () {});
10053
+ });
10054
+ }, function (error) {
10055
+ console.log(error);
10056
+ });
10057
+ return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(function () {}) : void 0);
10058
+ } catch (e) {
10059
+ return Promise.reject(e);
10060
+ }
9981
10061
  }
9982
10062
  };
9983
10063
  };
@@ -12729,5 +12809,5 @@ var isFunction = function isFunction(value) {
12729
12809
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
12730
12810
  };
12731
12811
 
12732
- export { Accordion, ActionButton, Avatar, Button, Calendar, ChangeUserPasswordAction, ChangeUserPasswordDialog, 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, ForgetUserPasswordAction, Form, HTTPClient, Header, Icon, ImageViewer, Kanban, KanbanCard, KanbanColumn, KanbanHeader, KanbanSwimlane, LOGIN_API, LOGIN_CONTEXT, LOGIN_DICTIONARY, LinearProgress, List, ListEditor, LoginBox, Menu, MenuIcon, MenuItem, MenuSeparator, MonthCalendar, MultiSelector, Page, PageContext, PageProvider, PasswordEditor, PasswordField, Planner, Planner2, 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, UnlockUserAction, UploadArea, UploadDialog, UploadFile$1 as UploadFile, UploadForm, UploadIcon, Uploader, View, Viewer, WaitScreen, Wizard, WizardContext, isEmpty, isFunction, validatePassword };
12812
+ export { Accordion, ActionButton, Avatar, Button, Calendar, ChangeUserPasswordAction, ChangeUserPasswordDialog, 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, ForgetUserPasswordAction, Form, HTTPClient, Header, Icon, ImageViewer, Kanban, KanbanCard, KanbanColumn, KanbanHeader, KanbanSwimlane, LOGIN_API, LOGIN_CONTEXT, LOGIN_DICTIONARY, LinearProgress, List, ListEditor, LoginBox, Menu, MenuIcon, MenuItem, MenuSeparator, MonthCalendar, MultiSelector, Page, PageContext, PageLink, PageProvider, PasswordEditor, PasswordField, Planner, Planner2, 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, UnlockUserAction, UploadArea, UploadDialog, UploadFile$1 as UploadFile, UploadForm, UploadIcon, Uploader, View, Viewer, WaitScreen, Wizard, WizardContext, isEmpty, isFunction, validatePassword };
12733
12813
  //# sourceMappingURL=index.modern.js.map