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.
package/dist/index.cjs CHANGED
@@ -3347,6 +3347,68 @@ var Page = function Page(props) {
3347
3347
  }, children));
3348
3348
  };
3349
3349
 
3350
+ /**
3351
+ * Use Hash Page
3352
+ */
3353
+ function useHashPage(defaultPage) {
3354
+ if (defaultPage === void 0) {
3355
+ defaultPage = "home";
3356
+ }
3357
+ var getCurrentPageFromURL = function getCurrentPageFromURL() {
3358
+ var hash = window.location.hash.replace("#", "");
3359
+ return hash || defaultPage;
3360
+ };
3361
+ var _useState = React.useState(getCurrentPageFromURL()),
3362
+ page = _useState[0],
3363
+ setPage = _useState[1];
3364
+ var _useState2 = React.useState([]),
3365
+ history = _useState2[0],
3366
+ setHistory = _useState2[1];
3367
+ var isFirstLoad = React.useRef(true);
3368
+ React.useEffect(function () {
3369
+ var handleHashChange = function handleHashChange() {
3370
+ var newPage = getCurrentPageFromURL();
3371
+ if (!isFirstLoad.current) {
3372
+ setHistory(function (prev) {
3373
+ return [].concat(prev, [page]);
3374
+ }); // Guarda la página anterior
3375
+ } else {
3376
+ isFirstLoad.current = false;
3377
+ }
3378
+ setPage(newPage);
3379
+ };
3380
+ window.addEventListener("hashchange", handleHashChange);
3381
+ return function () {
3382
+ return window.removeEventListener("hashchange", handleHashChange);
3383
+ };
3384
+ }, [page]);
3385
+ var _goto = function _goto(id) {
3386
+ if (page) {
3387
+ setHistory(function (prev) {
3388
+ return [].concat(prev, [page]);
3389
+ });
3390
+ }
3391
+ setPage(id);
3392
+ window.location.hash = id;
3393
+ };
3394
+ var goBack = function goBack() {
3395
+ if (history.length > 0) {
3396
+ var lastPage = history[history.length - 1];
3397
+ setHistory(function (prev) {
3398
+ return prev.slice(0, -1);
3399
+ });
3400
+ setPage(lastPage);
3401
+ window.location.hash = lastPage;
3402
+ }
3403
+ };
3404
+ return {
3405
+ page: page,
3406
+ "goto": _goto,
3407
+ goBack: goBack,
3408
+ history: history
3409
+ };
3410
+ }
3411
+
3350
3412
  /**
3351
3413
  * Site Provider
3352
3414
  */
@@ -3387,30 +3449,10 @@ var SiteProvider = function SiteProvider(_ref) {
3387
3449
  var _useState11 = React.useState(),
3388
3450
  breadcrumb = _useState11[0],
3389
3451
  setBreadcrumb = _useState11[1];
3390
- var _useState12 = React.useState([]),
3391
- history = _useState12[0],
3392
- setHistory = _useState12[1];
3393
-
3394
- // 📌 Extraer la página actual desde la URL (por defecto "home")
3395
- var getCurrentPageFromURL = function getCurrentPageFromURL() {
3396
- var path = window.location.pathname.replace("/", "");
3397
- return path || "home";
3398
- };
3399
- var _useState13 = React.useState(getCurrentPageFromURL()),
3400
- page = _useState13[0],
3401
- setPage = _useState13[1];
3402
- React.useEffect(function () {
3403
- // 📌 Detectar cambios en la URL cuando el usuario presiona "Atrás" o "Adelante"
3404
- var handlePopState = function handlePopState(event) {
3405
- var _event$state;
3406
- var previousPage = ((_event$state = event.state) == null ? void 0 : _event$state.page) || "home";
3407
- setPage(previousPage);
3408
- };
3409
- window.addEventListener("popstate", handlePopState);
3410
- return function () {
3411
- return window.removeEventListener("popstate", handlePopState);
3412
- };
3413
- }, []);
3452
+ var _useHashPage = useHashPage(),
3453
+ page = _useHashPage.page,
3454
+ _goto = _useHashPage["goto"],
3455
+ goBack = _useHashPage.goBack;
3414
3456
  var value = {
3415
3457
  lang: lang,
3416
3458
  setLang: setLang,
@@ -3420,15 +3462,6 @@ var SiteProvider = function SiteProvider(_ref) {
3420
3462
  var _dictionary$key;
3421
3463
  return (dictionary == null ? void 0 : (_dictionary$key = dictionary[key]) == null ? void 0 : _dictionary$key[lang]) || key;
3422
3464
  }, [lang, dictionary]),
3423
- /*
3424
- translate: (key) => {
3425
- if (!key) return key
3426
- if (dictionary === undefined) return key
3427
- const term = dictionary[key]
3428
- return term ? term[lang] : key
3429
- },
3430
- */
3431
-
3432
3465
  sideNav: sideNav,
3433
3466
  setSideNav: setSideNav,
3434
3467
  showNav: showNav,
@@ -3455,27 +3488,8 @@ var SiteProvider = function SiteProvider(_ref) {
3455
3488
  breadcrumb: breadcrumb,
3456
3489
  setBreadcrumb: setBreadcrumb,
3457
3490
  page: page,
3458
- "goto": function goto(id) {
3459
- if (page) {
3460
- setHistory(function (prev) {
3461
- return [].concat(prev, [page]);
3462
- }); // 🔹 Guarda la página actual en el historial antes de cambiar
3463
- }
3464
- setPage(id);
3465
- window.history.pushState({
3466
- page: id
3467
- }, "", "/" + id); // 🔹 Actualiza la URL
3468
- },
3469
- goBack: function goBack() {
3470
- if (history.length > 0) {
3471
- var lastPage = history[history.length - 1];
3472
- setHistory(function (prev) {
3473
- return prev.slice(0, -1);
3474
- }); // 🔹 Elimina la última entrada del historial
3475
- setPage(lastPage); // 🔹 Vuelve a la página anterior
3476
- window.history.back(); // 🔹 Regresa en la navegación del navegador
3477
- }
3478
- },
3491
+ "goto": _goto,
3492
+ goBack: goBack,
3479
3493
  dialog: dialog,
3480
3494
  openDialog: function openDialog(dialog) {
3481
3495
  setDialog(dialog);
@@ -3628,7 +3642,7 @@ var SiteMenu = function SiteMenu(_ref6) {
3628
3642
  var next = sideNav === 'max' ? 'min' : 'max';
3629
3643
  setSideNav(next);
3630
3644
  }
3631
- var _goto = function _goto(id) {
3645
+ var _goto2 = function _goto2(id) {
3632
3646
  context.setShowNav(false);
3633
3647
  context["goto"](id);
3634
3648
  };
@@ -3666,7 +3680,7 @@ var SiteMenu = function SiteMenu(_ref6) {
3666
3680
  className: "site-menu-item " + styleItem,
3667
3681
  key: id,
3668
3682
  onClick: function onClick() {
3669
- return _goto(id);
3683
+ return _goto2(id);
3670
3684
  }
3671
3685
  }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
3672
3686
  text: title,
@@ -3677,7 +3691,7 @@ var SiteMenu = function SiteMenu(_ref6) {
3677
3691
  icon: icon,
3678
3692
  clickable: true,
3679
3693
  action: function action() {
3680
- return _goto(id);
3694
+ return _goto2(id);
3681
3695
  }
3682
3696
  })), sideNav === 'max' ? /*#__PURE__*/React__default["default"].createElement("label", null, titleTxt) : null);
3683
3697
  }), /*#__PURE__*/React__default["default"].createElement("div", {
@@ -3876,6 +3890,36 @@ var TabbedView = function TabbedView(props) {
3876
3890
  }, children));
3877
3891
  };
3878
3892
 
3893
+ /**
3894
+ * PageLink - Navegación declarativa usando el sistema de hash
3895
+ *
3896
+ * Props:
3897
+ * - page: string → ID de la página a mostrar
3898
+ * - children: ReactNode → contenido visual del enlace
3899
+ * - className: string → clases opcionales
3900
+ * - style: object → estilos en línea opcionales
3901
+ */
3902
+ var PageLink = function PageLink(_ref) {
3903
+ var page = _ref.page,
3904
+ children = _ref.children,
3905
+ _ref$className = _ref.className,
3906
+ className = _ref$className === void 0 ? '' : _ref$className,
3907
+ _ref$style = _ref.style,
3908
+ style = _ref$style === void 0 ? {} : _ref$style;
3909
+ var _useContext = React.useContext(SiteContext),
3910
+ _goto2 = _useContext["goto"];
3911
+ var handleClick = function handleClick(e) {
3912
+ e.preventDefault();
3913
+ _goto2(page);
3914
+ };
3915
+ return /*#__PURE__*/React__default["default"].createElement("a", {
3916
+ href: "#" + page,
3917
+ onClick: handleClick,
3918
+ className: className,
3919
+ style: style
3920
+ }, children);
3921
+ };
3922
+
3879
3923
  /**
3880
3924
  * Admin Change User Password Dialog
3881
3925
  */
@@ -9940,15 +9984,15 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9940
9984
  return Promise.reject(e);
9941
9985
  }
9942
9986
  },
9943
- changeFilters: function changeFilters(filters) {
9944
- this.filters = filters;
9945
- },
9946
- loadQueries: function loadQueries(user) {
9987
+ removeChecked: function removeChecked() {
9947
9988
  try {
9948
9989
  var _this6 = this;
9949
9990
  var _temp8 = _catch$3(function () {
9950
- return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
9951
- _this6.queries = _API$queries;
9991
+ var promises = _this6.checked.map(function (id) {
9992
+ return API.remove(id);
9993
+ });
9994
+ return Promise.resolve(Promise.all(promises)).then(function () {
9995
+ return Promise.resolve(_this6.load()).then(function () {});
9952
9996
  });
9953
9997
  }, function (error) {
9954
9998
  console.log(error);
@@ -9958,12 +10002,15 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9958
10002
  return Promise.reject(e);
9959
10003
  }
9960
10004
  },
9961
- createQuery: function createQuery(query, user) {
10005
+ removeAll: function removeAll() {
9962
10006
  try {
9963
10007
  var _this7 = this;
9964
10008
  var _temp9 = _catch$3(function () {
9965
- return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
9966
- return Promise.resolve(_this7.loadQueries(user)).then(function () {});
10009
+ var promises = _this7.all.map(function (item) {
10010
+ return API.remove(item.id);
10011
+ });
10012
+ return Promise.resolve(Promise.all(promises)).then(function () {
10013
+ return Promise.resolve(_this7.load()).then(function () {});
9967
10014
  });
9968
10015
  }, function (error) {
9969
10016
  console.log(error);
@@ -9973,12 +10020,15 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9973
10020
  return Promise.reject(e);
9974
10021
  }
9975
10022
  },
9976
- removeQuery: function removeQuery(id, user) {
10023
+ changeFilters: function changeFilters(filters) {
10024
+ this.filters = filters;
10025
+ },
10026
+ loadQueries: function loadQueries(user) {
9977
10027
  try {
9978
10028
  var _this8 = this;
9979
10029
  var _temp10 = _catch$3(function () {
9980
- return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
9981
- return Promise.resolve(_this8.loadQueries(user)).then(function () {});
10030
+ return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
10031
+ _this8.queries = _API$queries;
9982
10032
  });
9983
10033
  }, function (error) {
9984
10034
  console.log(error);
@@ -9987,6 +10037,36 @@ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
9987
10037
  } catch (e) {
9988
10038
  return Promise.reject(e);
9989
10039
  }
10040
+ },
10041
+ createQuery: function createQuery(query, user) {
10042
+ try {
10043
+ var _this9 = this;
10044
+ var _temp11 = _catch$3(function () {
10045
+ return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
10046
+ return Promise.resolve(_this9.loadQueries(user)).then(function () {});
10047
+ });
10048
+ }, function (error) {
10049
+ console.log(error);
10050
+ });
10051
+ return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
10052
+ } catch (e) {
10053
+ return Promise.reject(e);
10054
+ }
10055
+ },
10056
+ removeQuery: function removeQuery(id, user) {
10057
+ try {
10058
+ var _this10 = this;
10059
+ var _temp12 = _catch$3(function () {
10060
+ return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
10061
+ return Promise.resolve(_this10.loadQueries(user)).then(function () {});
10062
+ });
10063
+ }, function (error) {
10064
+ console.log(error);
10065
+ });
10066
+ return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(function () {}) : void 0);
10067
+ } catch (e) {
10068
+ return Promise.reject(e);
10069
+ }
9990
10070
  }
9991
10071
  };
9992
10072
  };
@@ -12806,6 +12886,7 @@ exports.MonthCalendar = MonthCalendar;
12806
12886
  exports.MultiSelector = MultiSelector;
12807
12887
  exports.Page = Page;
12808
12888
  exports.PageContext = PageContext;
12889
+ exports.PageLink = PageLink;
12809
12890
  exports.PageProvider = PageProvider;
12810
12891
  exports.PasswordEditor = PasswordEditor;
12811
12892
  exports.PasswordField = PasswordField;