ywana-core8 0.1.55 → 0.1.57
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 +137 -60
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +5 -0
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +137 -61
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +140 -64
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -1
- package/src/site/index.js +3 -1
- package/src/site/link.js +75 -0
- package/src/site/navigation.js +54 -0
- package/src/site/site.css +5 -0
- package/src/site/site.js +23 -44
package/dist/index.cjs
CHANGED
@@ -3,6 +3,7 @@ var React = require('react');
|
|
3
3
|
var ResumableJS = require('resumablejs');
|
4
4
|
var RSwitch = require('react-switch');
|
5
5
|
var reactNotificationsComponent = require('react-notifications-component');
|
6
|
+
var framerMotion = require('framer-motion');
|
6
7
|
require('react-notifications-component/dist/theme.css');
|
7
8
|
var moment$1 = require('moment');
|
8
9
|
var momentRange = require('moment-range');
|
@@ -3347,6 +3348,75 @@ var Page = function Page(props) {
|
|
3347
3348
|
}, children));
|
3348
3349
|
};
|
3349
3350
|
|
3351
|
+
/**
|
3352
|
+
* Use Hash Page
|
3353
|
+
*/
|
3354
|
+
function useHashPage(defaultPage) {
|
3355
|
+
if (defaultPage === void 0) {
|
3356
|
+
defaultPage = "home";
|
3357
|
+
}
|
3358
|
+
var getCurrentPageFromURL = function getCurrentPageFromURL() {
|
3359
|
+
var hash = window.location.hash.replace("#", "");
|
3360
|
+
return hash || defaultPage;
|
3361
|
+
};
|
3362
|
+
var _useState = React.useState(getCurrentPageFromURL()),
|
3363
|
+
page = _useState[0],
|
3364
|
+
setPage = _useState[1];
|
3365
|
+
var _useState2 = React.useState([]),
|
3366
|
+
history = _useState2[0],
|
3367
|
+
setHistory = _useState2[1];
|
3368
|
+
var _useState3 = React.useState("left"),
|
3369
|
+
setDirection = _useState3[1];
|
3370
|
+
var isFirstLoad = React.useRef(true);
|
3371
|
+
React.useEffect(function () {
|
3372
|
+
var handleHashChange = function handleHashChange() {
|
3373
|
+
var newPage = getCurrentPageFromURL();
|
3374
|
+
if (!isFirstLoad.current) {
|
3375
|
+
setHistory(function (prev) {
|
3376
|
+
return [].concat(prev, [page]);
|
3377
|
+
}); // Guarda la página anterior
|
3378
|
+
} else {
|
3379
|
+
isFirstLoad.current = false;
|
3380
|
+
}
|
3381
|
+
setPage(newPage);
|
3382
|
+
};
|
3383
|
+
window.addEventListener("hashchange", handleHashChange);
|
3384
|
+
return function () {
|
3385
|
+
return window.removeEventListener("hashchange", handleHashChange);
|
3386
|
+
};
|
3387
|
+
}, [page]);
|
3388
|
+
var _goto = function _goto(id, dir) {
|
3389
|
+
if (dir === void 0) {
|
3390
|
+
dir = "left";
|
3391
|
+
}
|
3392
|
+
if (page) {
|
3393
|
+
setHistory(function (prev) {
|
3394
|
+
return [].concat(prev, [page]);
|
3395
|
+
});
|
3396
|
+
}
|
3397
|
+
setDirection(dir);
|
3398
|
+
setPage(id);
|
3399
|
+
window.location.hash = id;
|
3400
|
+
};
|
3401
|
+
var goBack = function goBack() {
|
3402
|
+
if (history.length > 0) {
|
3403
|
+
var lastPage = history[history.length - 1];
|
3404
|
+
setHistory(function (prev) {
|
3405
|
+
return prev.slice(0, -1);
|
3406
|
+
});
|
3407
|
+
setDirection("right");
|
3408
|
+
setPage(lastPage);
|
3409
|
+
window.location.hash = lastPage;
|
3410
|
+
}
|
3411
|
+
};
|
3412
|
+
return {
|
3413
|
+
page: page,
|
3414
|
+
"goto": _goto,
|
3415
|
+
goBack: goBack,
|
3416
|
+
history: history
|
3417
|
+
};
|
3418
|
+
}
|
3419
|
+
|
3350
3420
|
/**
|
3351
3421
|
* Site Provider
|
3352
3422
|
*/
|
@@ -3387,30 +3457,10 @@ var SiteProvider = function SiteProvider(_ref) {
|
|
3387
3457
|
var _useState11 = React.useState(),
|
3388
3458
|
breadcrumb = _useState11[0],
|
3389
3459
|
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
|
-
}, []);
|
3460
|
+
var _useHashPage = useHashPage(),
|
3461
|
+
page = _useHashPage.page,
|
3462
|
+
_goto = _useHashPage["goto"],
|
3463
|
+
goBack = _useHashPage.goBack;
|
3414
3464
|
var value = {
|
3415
3465
|
lang: lang,
|
3416
3466
|
setLang: setLang,
|
@@ -3420,15 +3470,6 @@ var SiteProvider = function SiteProvider(_ref) {
|
|
3420
3470
|
var _dictionary$key;
|
3421
3471
|
return (dictionary == null ? void 0 : (_dictionary$key = dictionary[key]) == null ? void 0 : _dictionary$key[lang]) || key;
|
3422
3472
|
}, [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
3473
|
sideNav: sideNav,
|
3433
3474
|
setSideNav: setSideNav,
|
3434
3475
|
showNav: showNav,
|
@@ -3455,27 +3496,8 @@ var SiteProvider = function SiteProvider(_ref) {
|
|
3455
3496
|
breadcrumb: breadcrumb,
|
3456
3497
|
setBreadcrumb: setBreadcrumb,
|
3457
3498
|
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
|
-
},
|
3499
|
+
"goto": _goto,
|
3500
|
+
goBack: goBack,
|
3479
3501
|
dialog: dialog,
|
3480
3502
|
openDialog: function openDialog(dialog) {
|
3481
3503
|
setDialog(dialog);
|
@@ -3628,7 +3650,7 @@ var SiteMenu = function SiteMenu(_ref6) {
|
|
3628
3650
|
var next = sideNav === 'max' ? 'min' : 'max';
|
3629
3651
|
setSideNav(next);
|
3630
3652
|
}
|
3631
|
-
var
|
3653
|
+
var _goto2 = function _goto2(id) {
|
3632
3654
|
context.setShowNav(false);
|
3633
3655
|
context["goto"](id);
|
3634
3656
|
};
|
@@ -3666,7 +3688,7 @@ var SiteMenu = function SiteMenu(_ref6) {
|
|
3666
3688
|
className: "site-menu-item " + styleItem,
|
3667
3689
|
key: id,
|
3668
3690
|
onClick: function onClick() {
|
3669
|
-
return
|
3691
|
+
return _goto2(id);
|
3670
3692
|
}
|
3671
3693
|
}, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
|
3672
3694
|
text: title,
|
@@ -3677,7 +3699,7 @@ var SiteMenu = function SiteMenu(_ref6) {
|
|
3677
3699
|
icon: icon,
|
3678
3700
|
clickable: true,
|
3679
3701
|
action: function action() {
|
3680
|
-
return
|
3702
|
+
return _goto2(id);
|
3681
3703
|
}
|
3682
3704
|
})), sideNav === 'max' ? /*#__PURE__*/React__default["default"].createElement("label", null, titleTxt) : null);
|
3683
3705
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
@@ -3697,7 +3719,8 @@ var SitePage = function SitePage(_ref8) {
|
|
3697
3719
|
var children = _ref8.children,
|
3698
3720
|
init = _ref8.init;
|
3699
3721
|
var context = React.useContext(SiteContext);
|
3700
|
-
var page = context.page
|
3722
|
+
var page = context.page,
|
3723
|
+
direction = context.direction;
|
3701
3724
|
React.useEffect(function () {
|
3702
3725
|
if (init) {
|
3703
3726
|
context["goto"](init);
|
@@ -3705,9 +3728,32 @@ var SitePage = function SitePage(_ref8) {
|
|
3705
3728
|
context["goto"]("EMPTY");
|
3706
3729
|
}
|
3707
3730
|
}, []);
|
3708
|
-
|
3731
|
+
var currentPage = React__default["default"].Children.toArray(children).filter(function (child) {
|
3709
3732
|
return child.props ? child.props.id === page : false;
|
3710
|
-
})
|
3733
|
+
});
|
3734
|
+
var xOffset = direction === "left" ? 40 : -40;
|
3735
|
+
return /*#__PURE__*/React__default["default"].createElement("main", {
|
3736
|
+
className: "site-page-container"
|
3737
|
+
}, /*#__PURE__*/React__default["default"].createElement(framerMotion.AnimatePresence, {
|
3738
|
+
exitBeforeEnter: true
|
3739
|
+
}, currentPage && /*#__PURE__*/React__default["default"].createElement(framerMotion.motion.div, {
|
3740
|
+
key: page,
|
3741
|
+
initial: {
|
3742
|
+
opacity: 0,
|
3743
|
+
x: xOffset
|
3744
|
+
},
|
3745
|
+
animate: {
|
3746
|
+
opacity: 1,
|
3747
|
+
x: 0
|
3748
|
+
},
|
3749
|
+
exit: {
|
3750
|
+
opacity: 0,
|
3751
|
+
x: -xOffset
|
3752
|
+
},
|
3753
|
+
transition: {
|
3754
|
+
duration: 0.3
|
3755
|
+
}
|
3756
|
+
}, currentPage)));
|
3711
3757
|
};
|
3712
3758
|
|
3713
3759
|
/**
|
@@ -3876,6 +3922,36 @@ var TabbedView = function TabbedView(props) {
|
|
3876
3922
|
}, children));
|
3877
3923
|
};
|
3878
3924
|
|
3925
|
+
/**
|
3926
|
+
* PageLink - Navegación declarativa usando el sistema de hash
|
3927
|
+
*
|
3928
|
+
* Props:
|
3929
|
+
* - page: string → ID de la página a mostrar
|
3930
|
+
* - children: ReactNode → contenido visual del enlace
|
3931
|
+
* - className: string → clases opcionales
|
3932
|
+
* - style: object → estilos en línea opcionales
|
3933
|
+
*/
|
3934
|
+
var PageLink = function PageLink(_ref) {
|
3935
|
+
var page = _ref.page,
|
3936
|
+
children = _ref.children,
|
3937
|
+
_ref$className = _ref.className,
|
3938
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
3939
|
+
_ref$style = _ref.style,
|
3940
|
+
style = _ref$style === void 0 ? {} : _ref$style;
|
3941
|
+
var _useContext = React.useContext(SiteContext),
|
3942
|
+
_goto2 = _useContext["goto"];
|
3943
|
+
var handleClick = function handleClick(e) {
|
3944
|
+
e.preventDefault();
|
3945
|
+
_goto2(page);
|
3946
|
+
};
|
3947
|
+
return /*#__PURE__*/React__default["default"].createElement("a", {
|
3948
|
+
href: "#" + page,
|
3949
|
+
onClick: handleClick,
|
3950
|
+
className: className,
|
3951
|
+
style: style
|
3952
|
+
}, children);
|
3953
|
+
};
|
3954
|
+
|
3879
3955
|
/**
|
3880
3956
|
* Admin Change User Password Dialog
|
3881
3957
|
*/
|
@@ -12842,6 +12918,7 @@ exports.MonthCalendar = MonthCalendar;
|
|
12842
12918
|
exports.MultiSelector = MultiSelector;
|
12843
12919
|
exports.Page = Page;
|
12844
12920
|
exports.PageContext = PageContext;
|
12921
|
+
exports.PageLink = PageLink;
|
12845
12922
|
exports.PageProvider = PageProvider;
|
12846
12923
|
exports.PasswordEditor = PasswordEditor;
|
12847
12924
|
exports.PasswordField = PasswordField;
|