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.umd.js
CHANGED
@@ -3340,6 +3340,68 @@
|
|
3340
3340
|
}, children));
|
3341
3341
|
};
|
3342
3342
|
|
3343
|
+
/**
|
3344
|
+
* Use Hash Page
|
3345
|
+
*/
|
3346
|
+
function useHashPage(defaultPage) {
|
3347
|
+
if (defaultPage === void 0) {
|
3348
|
+
defaultPage = "home";
|
3349
|
+
}
|
3350
|
+
var getCurrentPageFromURL = function getCurrentPageFromURL() {
|
3351
|
+
var hash = window.location.hash.replace("#", "");
|
3352
|
+
return hash || defaultPage;
|
3353
|
+
};
|
3354
|
+
var _useState = React.useState(getCurrentPageFromURL()),
|
3355
|
+
page = _useState[0],
|
3356
|
+
setPage = _useState[1];
|
3357
|
+
var _useState2 = React.useState([]),
|
3358
|
+
history = _useState2[0],
|
3359
|
+
setHistory = _useState2[1];
|
3360
|
+
var isFirstLoad = React.useRef(true);
|
3361
|
+
React.useEffect(function () {
|
3362
|
+
var handleHashChange = function handleHashChange() {
|
3363
|
+
var newPage = getCurrentPageFromURL();
|
3364
|
+
if (!isFirstLoad.current) {
|
3365
|
+
setHistory(function (prev) {
|
3366
|
+
return [].concat(prev, [page]);
|
3367
|
+
}); // Guarda la página anterior
|
3368
|
+
} else {
|
3369
|
+
isFirstLoad.current = false;
|
3370
|
+
}
|
3371
|
+
setPage(newPage);
|
3372
|
+
};
|
3373
|
+
window.addEventListener("hashchange", handleHashChange);
|
3374
|
+
return function () {
|
3375
|
+
return window.removeEventListener("hashchange", handleHashChange);
|
3376
|
+
};
|
3377
|
+
}, [page]);
|
3378
|
+
var _goto = function _goto(id) {
|
3379
|
+
if (page) {
|
3380
|
+
setHistory(function (prev) {
|
3381
|
+
return [].concat(prev, [page]);
|
3382
|
+
});
|
3383
|
+
}
|
3384
|
+
setPage(id);
|
3385
|
+
window.location.hash = id;
|
3386
|
+
};
|
3387
|
+
var goBack = function goBack() {
|
3388
|
+
if (history.length > 0) {
|
3389
|
+
var lastPage = history[history.length - 1];
|
3390
|
+
setHistory(function (prev) {
|
3391
|
+
return prev.slice(0, -1);
|
3392
|
+
});
|
3393
|
+
setPage(lastPage);
|
3394
|
+
window.location.hash = lastPage;
|
3395
|
+
}
|
3396
|
+
};
|
3397
|
+
return {
|
3398
|
+
page: page,
|
3399
|
+
"goto": _goto,
|
3400
|
+
goBack: goBack,
|
3401
|
+
history: history
|
3402
|
+
};
|
3403
|
+
}
|
3404
|
+
|
3343
3405
|
/**
|
3344
3406
|
* Site Provider
|
3345
3407
|
*/
|
@@ -3380,30 +3442,10 @@
|
|
3380
3442
|
var _useState11 = React.useState(),
|
3381
3443
|
breadcrumb = _useState11[0],
|
3382
3444
|
setBreadcrumb = _useState11[1];
|
3383
|
-
var
|
3384
|
-
|
3385
|
-
|
3386
|
-
|
3387
|
-
// 📌 Extraer la página actual desde la URL (por defecto "home")
|
3388
|
-
var getCurrentPageFromURL = function getCurrentPageFromURL() {
|
3389
|
-
var path = window.location.pathname.replace("/", "");
|
3390
|
-
return path || "home";
|
3391
|
-
};
|
3392
|
-
var _useState13 = React.useState(getCurrentPageFromURL()),
|
3393
|
-
page = _useState13[0],
|
3394
|
-
setPage = _useState13[1];
|
3395
|
-
React.useEffect(function () {
|
3396
|
-
// 📌 Detectar cambios en la URL cuando el usuario presiona "Atrás" o "Adelante"
|
3397
|
-
var handlePopState = function handlePopState(event) {
|
3398
|
-
var _event$state;
|
3399
|
-
var previousPage = ((_event$state = event.state) == null ? void 0 : _event$state.page) || "home";
|
3400
|
-
setPage(previousPage);
|
3401
|
-
};
|
3402
|
-
window.addEventListener("popstate", handlePopState);
|
3403
|
-
return function () {
|
3404
|
-
return window.removeEventListener("popstate", handlePopState);
|
3405
|
-
};
|
3406
|
-
}, []);
|
3445
|
+
var _useHashPage = useHashPage(),
|
3446
|
+
page = _useHashPage.page,
|
3447
|
+
_goto = _useHashPage["goto"],
|
3448
|
+
goBack = _useHashPage.goBack;
|
3407
3449
|
var value = {
|
3408
3450
|
lang: lang,
|
3409
3451
|
setLang: setLang,
|
@@ -3413,15 +3455,6 @@
|
|
3413
3455
|
var _dictionary$key;
|
3414
3456
|
return (dictionary == null ? void 0 : (_dictionary$key = dictionary[key]) == null ? void 0 : _dictionary$key[lang]) || key;
|
3415
3457
|
}, [lang, dictionary]),
|
3416
|
-
/*
|
3417
|
-
translate: (key) => {
|
3418
|
-
if (!key) return key
|
3419
|
-
if (dictionary === undefined) return key
|
3420
|
-
const term = dictionary[key]
|
3421
|
-
return term ? term[lang] : key
|
3422
|
-
},
|
3423
|
-
*/
|
3424
|
-
|
3425
3458
|
sideNav: sideNav,
|
3426
3459
|
setSideNav: setSideNav,
|
3427
3460
|
showNav: showNav,
|
@@ -3448,27 +3481,8 @@
|
|
3448
3481
|
breadcrumb: breadcrumb,
|
3449
3482
|
setBreadcrumb: setBreadcrumb,
|
3450
3483
|
page: page,
|
3451
|
-
"goto":
|
3452
|
-
|
3453
|
-
setHistory(function (prev) {
|
3454
|
-
return [].concat(prev, [page]);
|
3455
|
-
}); // 🔹 Guarda la página actual en el historial antes de cambiar
|
3456
|
-
}
|
3457
|
-
setPage(id);
|
3458
|
-
window.history.pushState({
|
3459
|
-
page: id
|
3460
|
-
}, "", "/" + id); // 🔹 Actualiza la URL
|
3461
|
-
},
|
3462
|
-
goBack: function goBack() {
|
3463
|
-
if (history.length > 0) {
|
3464
|
-
var lastPage = history[history.length - 1];
|
3465
|
-
setHistory(function (prev) {
|
3466
|
-
return prev.slice(0, -1);
|
3467
|
-
}); // 🔹 Elimina la última entrada del historial
|
3468
|
-
setPage(lastPage); // 🔹 Vuelve a la página anterior
|
3469
|
-
window.history.back(); // 🔹 Regresa en la navegación del navegador
|
3470
|
-
}
|
3471
|
-
},
|
3484
|
+
"goto": _goto,
|
3485
|
+
goBack: goBack,
|
3472
3486
|
dialog: dialog,
|
3473
3487
|
openDialog: function openDialog(dialog) {
|
3474
3488
|
setDialog(dialog);
|
@@ -3621,7 +3635,7 @@
|
|
3621
3635
|
var next = sideNav === 'max' ? 'min' : 'max';
|
3622
3636
|
setSideNav(next);
|
3623
3637
|
}
|
3624
|
-
var
|
3638
|
+
var _goto2 = function _goto2(id) {
|
3625
3639
|
context.setShowNav(false);
|
3626
3640
|
context["goto"](id);
|
3627
3641
|
};
|
@@ -3659,7 +3673,7 @@
|
|
3659
3673
|
className: "site-menu-item " + styleItem,
|
3660
3674
|
key: id,
|
3661
3675
|
onClick: function onClick() {
|
3662
|
-
return
|
3676
|
+
return _goto2(id);
|
3663
3677
|
}
|
3664
3678
|
}, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
|
3665
3679
|
text: title,
|
@@ -3670,7 +3684,7 @@
|
|
3670
3684
|
icon: icon,
|
3671
3685
|
clickable: true,
|
3672
3686
|
action: function action() {
|
3673
|
-
return
|
3687
|
+
return _goto2(id);
|
3674
3688
|
}
|
3675
3689
|
})), sideNav === 'max' ? /*#__PURE__*/React__default["default"].createElement("label", null, titleTxt) : null);
|
3676
3690
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
@@ -3869,6 +3883,36 @@
|
|
3869
3883
|
}, children));
|
3870
3884
|
};
|
3871
3885
|
|
3886
|
+
/**
|
3887
|
+
* PageLink - Navegación declarativa usando el sistema de hash
|
3888
|
+
*
|
3889
|
+
* Props:
|
3890
|
+
* - page: string → ID de la página a mostrar
|
3891
|
+
* - children: ReactNode → contenido visual del enlace
|
3892
|
+
* - className: string → clases opcionales
|
3893
|
+
* - style: object → estilos en línea opcionales
|
3894
|
+
*/
|
3895
|
+
var PageLink = function PageLink(_ref) {
|
3896
|
+
var page = _ref.page,
|
3897
|
+
children = _ref.children,
|
3898
|
+
_ref$className = _ref.className,
|
3899
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
3900
|
+
_ref$style = _ref.style,
|
3901
|
+
style = _ref$style === void 0 ? {} : _ref$style;
|
3902
|
+
var _useContext = React.useContext(SiteContext),
|
3903
|
+
_goto2 = _useContext["goto"];
|
3904
|
+
var handleClick = function handleClick(e) {
|
3905
|
+
e.preventDefault();
|
3906
|
+
_goto2(page);
|
3907
|
+
};
|
3908
|
+
return /*#__PURE__*/React__default["default"].createElement("a", {
|
3909
|
+
href: "#" + page,
|
3910
|
+
onClick: handleClick,
|
3911
|
+
className: className,
|
3912
|
+
style: style
|
3913
|
+
}, children);
|
3914
|
+
};
|
3915
|
+
|
3872
3916
|
/**
|
3873
3917
|
* Admin Change User Password Dialog
|
3874
3918
|
*/
|
@@ -12835,6 +12879,7 @@
|
|
12835
12879
|
exports.MultiSelector = MultiSelector;
|
12836
12880
|
exports.Page = Page;
|
12837
12881
|
exports.PageContext = PageContext;
|
12882
|
+
exports.PageLink = PageLink;
|
12838
12883
|
exports.PageProvider = PageProvider;
|
12839
12884
|
exports.PasswordEditor = PasswordEditor;
|
12840
12885
|
exports.PasswordField = PasswordField;
|