ywana-core8 0.1.55 → 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 +102 -57
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +102 -58
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +102 -57
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/site/index.js +3 -1
- package/src/site/link.js +75 -0
- package/src/site/navigation.js +51 -0
- package/src/site/site.js +4 -41
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
|
3391
|
-
|
3392
|
-
|
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":
|
3459
|
-
|
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
|
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
|
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
|
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
|
*/
|
@@ -12842,6 +12886,7 @@ exports.MonthCalendar = MonthCalendar;
|
|
12842
12886
|
exports.MultiSelector = MultiSelector;
|
12843
12887
|
exports.Page = Page;
|
12844
12888
|
exports.PageContext = PageContext;
|
12889
|
+
exports.PageLink = PageLink;
|
12845
12890
|
exports.PageProvider = PageProvider;
|
12846
12891
|
exports.PasswordEditor = PasswordEditor;
|
12847
12892
|
exports.PasswordField = PasswordField;
|