kelt-ui-kit-react 1.8.5 → 1.9.0
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/App.js +22 -0
- package/dist/App.menu.js +251 -0
- package/dist/App.routes.js +8 -0
- package/dist/_core/hooks/HistoryProvider.js +29 -0
- package/dist/_core/hooks/ImageChecker.js +68 -0
- package/dist/_core/hooks/imageExist.js +5 -0
- package/dist/_core/hooks/isEAN13.js +10 -0
- package/dist/_core/hooks/objectToQueryParams.js +28 -0
- package/dist/_core/hooks/useCurrency.js +12 -0
- package/dist/_core/hooks/useDateutils.js +59 -0
- package/dist/_core/hooks/useIsMobile.js +13 -0
- package/dist/_core/hooks/useToken.js +17 -0
- package/dist/_core/hooks/useValidate.js +15 -0
- package/dist/_core/hooks/widgetSupport.js +18 -0
- package/dist/action/Action.view.js +22 -0
- package/dist/action/ButtonAction.js +25 -0
- package/dist/badge/Badge.js +25 -0
- package/dist/badge/Badge.view.js +5 -0
- package/dist/button/Button.js +25 -0
- package/dist/button/Button.view.js +74 -0
- package/dist/button/button.interface.js +1 -0
- package/dist/button/buttonActions/ButtonActions.js +55 -0
- package/dist/button/buttonFile/ButtonFile.js +37 -0
- package/dist/button/buttonFile/ButtonFile.view.js +35 -0
- package/dist/button/buttonFilters/ButtonFilters.js +47 -0
- package/dist/card/Card.js +57 -0
- package/dist/card/Card.view.js +60 -0
- package/dist/card/card.interface.js +1 -0
- package/dist/card/cardAction/CardAction.js +66 -0
- package/dist/card/cardAction.interface.js +1 -0
- package/dist/card/hook/useCardInteractions.js +25 -0
- package/dist/carousel/Carousel.js +67 -0
- package/dist/carousel/Carousel.view.js +16 -0
- package/dist/damier/Damier.js +48 -0
- package/dist/damier/Damier.view.js +22 -0
- package/dist/damier/damierCell/DamierCell.js +21 -0
- package/dist/damier/damierCell/damierCell.interface.js +1 -0
- package/dist/dataTable/DataTable.js +117 -0
- package/dist/dataTable/DataTable.view.js +48 -0
- package/dist/dataTable/dataTable.interface.d.ts +4 -1
- package/dist/dataTable/dataTable.interface.js +1 -0
- package/dist/dataTable/dataTableActions/DataTableAction.js +26 -0
- package/dist/dataTable/dataTableColumn/DataTableColumn.js +21 -0
- package/dist/dataTable/dataTableLoading/DataTableLoading.js +16 -0
- package/dist/dataTable/dataTableRow/DataTableRow.js +39 -0
- package/dist/datePicker/DatePicker.js +64 -0
- package/dist/datePicker/DatePicker.view.js +5 -0
- package/dist/expands/Expands.js +28 -0
- package/dist/expands/Expands.view.js +67 -0
- package/dist/expands/expand/expand.interface.js +1 -0
- package/dist/expands/expand/expand.js +40 -0
- package/dist/filAriane/FilAriane.js +28 -0
- package/dist/filAriane/FilAriane.view.js +28 -0
- package/dist/filAriane/filAriane.interface.js +1 -0
- package/dist/form/Form.js +135 -0
- package/dist/form/Form.view.js +50 -0
- package/dist/form/form.enum.js +14 -0
- package/dist/form/form.interface.js +1 -0
- package/dist/form/input/Input.js +26 -0
- package/dist/form/inputNumber/InputNumber.js +57 -0
- package/dist/form/inputNumber/InputNumber.view.js +7 -0
- package/dist/form/inputPrice/InputPrice.js +36 -0
- package/dist/form/inputPrice/InputPrice.view.js +7 -0
- package/dist/form/textArea/TextArea.js +18 -0
- package/dist/form/textArea/TextArea.view.js +15 -0
- package/dist/grid/Grid.js +19 -0
- package/dist/grid/Grid.view.js +22 -0
- package/dist/grid/col/Col.js +17 -0
- package/dist/grid/col/colStyled/ColStyled.js +26 -0
- package/dist/grid/container/Container.js +17 -0
- package/dist/grid/grid.interface.js +1 -0
- package/dist/grid/row/Row.js +17 -0
- package/dist/header/Header.js +26 -0
- package/dist/header/Header.view.js +5 -0
- package/dist/header/header.interface.js +1 -0
- package/dist/home/Home.js +4 -0
- package/dist/icon/Icon.js +6 -0
- package/dist/icon/Icons.view.js +27 -0
- package/dist/icon/icon.interface.js +1 -0
- package/dist/icon/iconSize.enum.js +8 -0
- package/dist/index.js +50 -5356
- package/dist/loader/Loader.js +20 -0
- package/dist/loader/Loader.view.js +9 -0
- package/dist/main.js +7 -0
- package/dist/menus/Menus.js +23 -0
- package/dist/menus/Menus.view.js +48 -0
- package/dist/menus/menu/Menu.js +15 -0
- package/dist/menus/menu/menu.interface.js +1 -0
- package/dist/message/Message.js +33 -0
- package/dist/message/Message.view.js +11 -0
- package/dist/modal/Modal.js +27 -0
- package/dist/modal/Modal.view.js +22 -0
- package/dist/notFound/NotFound.js +4 -0
- package/dist/overlayPanel/OverlayPanel.js +132 -0
- package/dist/overlayPanel/OverlayPanel.view.js +20 -0
- package/dist/overlayPanel/overlay.context.js +26 -0
- package/dist/overlayPanel/overlayPanelStyled/OverlayPanelStyled.js +13 -0
- package/dist/pdfViewer/PdfViewer.js +71 -0
- package/dist/pdfViewer/PdfViewer.view.js +5 -0
- package/dist/quantity/Quantity.js +60 -0
- package/dist/quantity/Quantity.view.js +1 -0
- package/dist/search/Search.js +80 -0
- package/dist/search/Search.view.js +8 -0
- package/dist/select/Select.d.ts +2 -1
- package/dist/select/Select.js +41 -0
- package/dist/select/Select.view.js +75 -0
- package/dist/select/selectOption.interface.js +1 -0
- package/dist/sidebar/Sidebar.js +132 -0
- package/dist/sidebar/Sidebar.view.js +11 -0
- package/dist/sidebarData/SidebarData.js +17 -0
- package/dist/sidebarData/SidebarData.view.js +14 -0
- package/dist/style.css +1 -1
- package/dist/tabs/Tabs.js +41 -0
- package/dist/tabs/Tabs.view.js +26 -0
- package/dist/toaster/Toaster.js +37 -0
- package/dist/toaster/Toaster.view.js +16 -0
- package/dist/toaster/store/useToasterStore.js +22 -0
- package/package.json +1 -1
- package/src/dataTable/DataTable.tsx +55 -14
- package/src/dataTable/dataTable.css +26 -2
- package/src/dataTable/dataTable.interface.ts +4 -1
- package/src/dataTable/dataTableRow/DataTableRow.tsx +36 -11
- package/src/select/Select.tsx +4 -1
- package/vite.config.ts.timestamp-1787675603363-8ddae73d076bd.mjs +28 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
|
+
import { createPortal } from "react-dom";
|
|
14
|
+
import "./loader.css";
|
|
15
|
+
export var Loader = function (_a) {
|
|
16
|
+
var display = _a.display, full = _a.full, message = _a.message;
|
|
17
|
+
return (_jsxs(_Fragment, { children: [display && !full && (_jsxs("div", __assign({ className: "d-flex flex-column align-items-center" }, { children: [message && _jsx("span", __assign({ className: "mb-3" }, { children: message })), _jsx("div", __assign({ className: "position-relative" }, { children: _jsx("span", { className: "loader" }) }))] }))), display &&
|
|
18
|
+
full &&
|
|
19
|
+
createPortal(_jsx("div", __assign({ className: "loader-overlay" }, { children: _jsx("div", { children: _jsxs("div", __assign({ className: "d-flex flex-column align-items-center" }, { children: [message && _jsx("span", __assign({ className: "mb-3" }, { children: message })), _jsx("div", __assign({ className: "position-relative" }, { children: _jsx("span", { className: "loader" }) }))] })) }) })), document.body)] }));
|
|
20
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Button } from "../button/Button";
|
|
4
|
+
import { IconSizeEnum } from "../icon/iconSize.enum";
|
|
5
|
+
import { Loader } from "./Loader";
|
|
6
|
+
export var LoaderView = function () {
|
|
7
|
+
var _a = useState(false), display = _a[0], setDisplay = _a[1];
|
|
8
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { title: "loader-overlay", onClick: function () { return setDisplay(!display); } }), _jsx(Loader, { size: IconSizeEnum.EXTRA_LARGE, display: !display, message: "Loading..." }), _jsx(Loader, { display: display, message: "Loading...", full: true })] }));
|
|
9
|
+
};
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import "bootstrap-icons/font/bootstrap-icons.css";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import ReactDOM from "react-dom/client";
|
|
5
|
+
import App from "./App";
|
|
6
|
+
import "./index.css";
|
|
7
|
+
ReactDOM.createRoot(document.getElementById("root")).render(_jsx(React.StrictMode, { children: _jsx(App, {}) }));
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useCallback, useState } from "react";
|
|
14
|
+
import { Menu } from "./menu/Menu";
|
|
15
|
+
import "./menus.css";
|
|
16
|
+
export var Menus = function (props) {
|
|
17
|
+
var _a = useState(null), currentItem = _a[0], setCurrentItem = _a[1];
|
|
18
|
+
var onChange = useCallback(function (item) {
|
|
19
|
+
setCurrentItem(item);
|
|
20
|
+
}, []);
|
|
21
|
+
var renderMenuItems = function (items) { return (_jsx("ul", { children: items.map(function (item) { return (_jsxs("li", { children: [_jsx(Menu, { item: item, onChange: onChange, active: (currentItem === null || currentItem === void 0 ? void 0 : currentItem.id) === item.id }), item.subMenu && item.subMenu.length > 0 && (_jsx("div", __assign({ className: "ml-3 mt-1 submenu" }, { children: renderMenuItems(item.subMenu) })))] }, item.id)); }) })); };
|
|
22
|
+
return (_jsx("div", __assign({ className: "menu ".concat(props.className || "") }, { children: renderMenuItems(props.items) })));
|
|
23
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { NavLink } from "react-router-dom";
|
|
14
|
+
import { Menus } from "./Menus";
|
|
15
|
+
import { Button } from "../button/Button";
|
|
16
|
+
import { useCallback } from "react";
|
|
17
|
+
export var MenusView = function () {
|
|
18
|
+
var buttonAction = useCallback(function (e) {
|
|
19
|
+
console.log("Button clicked", e);
|
|
20
|
+
}, []);
|
|
21
|
+
var mockItems = [
|
|
22
|
+
{
|
|
23
|
+
id: 1,
|
|
24
|
+
name: "Menu 1",
|
|
25
|
+
children: "Menu 1",
|
|
26
|
+
active: true,
|
|
27
|
+
subMenu: [{
|
|
28
|
+
id: 1,
|
|
29
|
+
name: "Menu 1",
|
|
30
|
+
children: _jsx(NavLink, __assign({ to: "/expands" }, { children: "Menu 1" })),
|
|
31
|
+
active: true,
|
|
32
|
+
}]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 2,
|
|
36
|
+
name: "Menu 2",
|
|
37
|
+
children: _jsx(Button, { onClick: buttonAction, title: "deconnexion" }),
|
|
38
|
+
active: false,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: 3,
|
|
42
|
+
children: _jsx(NavLink, __assign({ to: "/expands" }, { children: "Menu 1" })),
|
|
43
|
+
name: "Menu 3",
|
|
44
|
+
active: false,
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
return _jsx(Menus, { items: mockItems });
|
|
48
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
export var Menu = function (props) {
|
|
14
|
+
return (_jsx("div", __assign({ onClick: function () { return props.onChange(props.item); }, className: props.active ? "expand expand--active" : "expand" }, { children: props.item.children })));
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useMemo } from "react";
|
|
14
|
+
import { Icon } from "../icon/Icon";
|
|
15
|
+
import "./message.css";
|
|
16
|
+
export var Message = function (_a) {
|
|
17
|
+
var text = _a.text, severity = _a.severity, className = _a.className;
|
|
18
|
+
var icon = useMemo(function () {
|
|
19
|
+
switch (severity) {
|
|
20
|
+
case "info":
|
|
21
|
+
return "bi-info-circle";
|
|
22
|
+
case "warning":
|
|
23
|
+
return "bi-exclamation-triangle";
|
|
24
|
+
case "error":
|
|
25
|
+
return "bi-x-circle";
|
|
26
|
+
case "success":
|
|
27
|
+
return "bi-check-circle";
|
|
28
|
+
default:
|
|
29
|
+
return "bi-info-circle";
|
|
30
|
+
}
|
|
31
|
+
}, [severity]);
|
|
32
|
+
return (_jsxs("div", __assign({ className: "message message--".concat(severity, " ").concat(className !== null && className !== void 0 ? className : "") }, { children: [_jsx(Icon, { classIcon: icon }), _jsx("span", __assign({ className: "message-text" }, { children: text }))] })));
|
|
33
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Message } from "./Message";
|
|
3
|
+
export var MessageView = function () {
|
|
4
|
+
var messages = [
|
|
5
|
+
{ text: "Information message", severity: "info" },
|
|
6
|
+
{ text: "Warning message", severity: "warning" },
|
|
7
|
+
{ text: "Error message", severity: "error" },
|
|
8
|
+
{ text: "Success message", severity: "success" },
|
|
9
|
+
];
|
|
10
|
+
return (_jsx("div", { children: messages.map(function (msg, index) { return (_jsx(Message, { className: "mb-2", text: msg.text, severity: msg.severity }, index)); }) }));
|
|
11
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { createPortal } from "react-dom";
|
|
14
|
+
import { Button } from "../button/Button";
|
|
15
|
+
import { Icon } from "../icon/Icon";
|
|
16
|
+
import "./modal.css";
|
|
17
|
+
export var Modal = function (_a) {
|
|
18
|
+
var isOpen = _a.isOpen, onClose = _a.onClose, children = _a.children, onSubmit = _a.onSubmit, titleButton = _a.titleButton, title = _a.title, _b = _a.styleContainer, styleContainer = _b === void 0 ? {} : _b, _c = _a.classNameContainer, classNameContainer = _c === void 0 ? "" : _c, _d = _a.closeOnOverlayClick, closeOnOverlayClick = _d === void 0 ? true : _d;
|
|
19
|
+
if (!isOpen)
|
|
20
|
+
return null;
|
|
21
|
+
var handleOverlayMouseDown = function () {
|
|
22
|
+
if (closeOnOverlayClick) {
|
|
23
|
+
onClose();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return createPortal(_jsx("div", __assign({ className: "modal-overlay", onMouseDown: handleOverlayMouseDown }, { children: _jsxs("div", __assign({ className: "modal-container ".concat(classNameContainer), style: styleContainer, onMouseDown: function (e) { return e.stopPropagation(); } }, { children: [_jsxs("div", __assign({ className: "modal-header" }, { children: [title && _jsx("h2", __assign({ className: "modal-title" }, { children: title })), _jsx("div", __assign({ className: "modal-close-button", onClick: onClose }, { children: _jsx(Icon, { classIcon: "bi-x-lg" }) }))] })), _jsx("div", __assign({ className: "modal-content" }, { children: children })), onSubmit && (_jsx("div", __assign({ className: "d-flex justify-content-end" }, { children: _jsx(Button, { onClick: onSubmit, title: titleButton !== null && titleButton !== void 0 ? titleButton : "" }) })))] })) })), document.body);
|
|
27
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useCallback, useState } from "react";
|
|
14
|
+
import { Button } from "../button/Button";
|
|
15
|
+
import { Modal } from "./Modal";
|
|
16
|
+
export var ModalView = function () {
|
|
17
|
+
var _a = useState(false), isOpen = _a[0], setIsOpen = _a[1];
|
|
18
|
+
var openModal = useCallback(function () {
|
|
19
|
+
setIsOpen(true);
|
|
20
|
+
}, [setIsOpen, true]);
|
|
21
|
+
return (_jsxs("div", { children: [_jsx(Button, { onClick: openModal, title: "Open Modal" }), _jsx(Modal, __assign({ onSubmit: function () { return setIsOpen(false); }, title: "test", titleButton: "Submit", closeOnOverlayClick: false, onClose: function () { return setIsOpen(false); }, isOpen: isOpen }, { children: "test" }))] }));
|
|
22
|
+
};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useRef, useState, } from "react";
|
|
14
|
+
import ReactDOM from "react-dom";
|
|
15
|
+
import { Icon } from "../icon/Icon";
|
|
16
|
+
import { useOverlayContext } from "./overlay.context";
|
|
17
|
+
import "./overlayPanel.css";
|
|
18
|
+
import { OverlayPanelStyled } from "./overlayPanelStyled/OverlayPanelStyled";
|
|
19
|
+
export var OverlayPanel = forwardRef(function (_a, ref) {
|
|
20
|
+
var referenceElement = _a.referenceElement, position = _a.position, coordonnees = _a.coordonnees, children = _a.children, show = _a.show, id = _a.id, closeOverlay = _a.closeOverlay;
|
|
21
|
+
var _b = useOverlayContext(), activeOverlayId = _b.activeOverlayId, setActiveOverlay = _b.setActiveOverlay;
|
|
22
|
+
var _c = useState(show || false), isShow = _c[0], setIsShow = _c[1];
|
|
23
|
+
var _d = useState(coordonnees !== null && coordonnees !== void 0 ? coordonnees : { top: 0, left: 0 }), coords = _d[0], setCoords = _d[1];
|
|
24
|
+
var boxRef = useRef(null);
|
|
25
|
+
var overlayId = useId();
|
|
26
|
+
useImperativeHandle(ref, function () { return ({
|
|
27
|
+
setCoords: setCoords,
|
|
28
|
+
}); });
|
|
29
|
+
useEffect(function () {
|
|
30
|
+
if (activeOverlayId !== overlayId) {
|
|
31
|
+
setIsShow(false);
|
|
32
|
+
}
|
|
33
|
+
}, [activeOverlayId, overlayId]);
|
|
34
|
+
useEffect(function () {
|
|
35
|
+
var updatePosition = function () {
|
|
36
|
+
var _a;
|
|
37
|
+
var _b;
|
|
38
|
+
if (!position && coordonnees) {
|
|
39
|
+
setCoords(coordonnees);
|
|
40
|
+
}
|
|
41
|
+
else if (referenceElement) {
|
|
42
|
+
var rect_1 = referenceElement.getBoundingClientRect();
|
|
43
|
+
var boxRect_1 = (_b = boxRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();
|
|
44
|
+
var innerWidth_1 = window.innerWidth, innerHeight_1 = window.innerHeight;
|
|
45
|
+
if (boxRect_1) {
|
|
46
|
+
// Positions par défaut si définies
|
|
47
|
+
var top_1, left = void 0;
|
|
48
|
+
var positions = {
|
|
49
|
+
topRight: function () { return ({
|
|
50
|
+
top: rect_1.top - boxRect_1.height,
|
|
51
|
+
left: rect_1.right - boxRect_1.width,
|
|
52
|
+
}); },
|
|
53
|
+
topLeft: function () { return ({
|
|
54
|
+
top: rect_1.top - boxRect_1.height,
|
|
55
|
+
left: rect_1.left,
|
|
56
|
+
}); },
|
|
57
|
+
bottomRight: function () { return ({
|
|
58
|
+
top: rect_1.bottom,
|
|
59
|
+
left: rect_1.right - boxRect_1.width,
|
|
60
|
+
}); },
|
|
61
|
+
bottomLeft: function () { return ({
|
|
62
|
+
top: rect_1.bottom,
|
|
63
|
+
left: rect_1.left,
|
|
64
|
+
}); },
|
|
65
|
+
left: function () { return ({
|
|
66
|
+
top: rect_1.top + rect_1.height / 2 - boxRect_1.height / 2,
|
|
67
|
+
left: rect_1.left - boxRect_1.width,
|
|
68
|
+
}); },
|
|
69
|
+
right: function () { return ({
|
|
70
|
+
top: rect_1.top + rect_1.height / 2 - boxRect_1.height / 2,
|
|
71
|
+
left: rect_1.right,
|
|
72
|
+
}); },
|
|
73
|
+
};
|
|
74
|
+
if (position && positions[position]) {
|
|
75
|
+
// Si une position est définie, on tente de l'appliquer
|
|
76
|
+
(_a = positions[position](), top_1 = _a.top, left = _a.left);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Sinon, on adapte dynamiquement
|
|
80
|
+
left = rect_1.right;
|
|
81
|
+
top_1 = rect_1.bottom;
|
|
82
|
+
if (rect_1.right + boxRect_1.width > innerWidth_1) {
|
|
83
|
+
left = rect_1.left - boxRect_1.width; // Manque d'espace à droite → afficher à gauche
|
|
84
|
+
}
|
|
85
|
+
if (rect_1.bottom + boxRect_1.height > innerHeight_1) {
|
|
86
|
+
top_1 = rect_1.top - boxRect_1.height; // Manque d'espace en bas → afficher en haut
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
setCoords({ top: top_1, left: left < 0 ? 0 : left });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
if (isShow) {
|
|
94
|
+
updatePosition();
|
|
95
|
+
window.addEventListener("resize", updatePosition);
|
|
96
|
+
}
|
|
97
|
+
return function () { return window.removeEventListener("resize", updatePosition); };
|
|
98
|
+
}, [referenceElement, isShow, position]);
|
|
99
|
+
var openOverlay = function () {
|
|
100
|
+
setIsShow(true);
|
|
101
|
+
setActiveOverlay(overlayId);
|
|
102
|
+
};
|
|
103
|
+
var closeOverlayHandler = useCallback(function (e) {
|
|
104
|
+
e.stopPropagation();
|
|
105
|
+
setIsShow(false);
|
|
106
|
+
setActiveOverlay(null);
|
|
107
|
+
if (closeOverlay) {
|
|
108
|
+
closeOverlay(false);
|
|
109
|
+
}
|
|
110
|
+
}, [closeOverlay, setActiveOverlay]);
|
|
111
|
+
useEffect(function () {
|
|
112
|
+
var handleClickOutside = function (event) {
|
|
113
|
+
if (boxRef.current && !boxRef.current.contains(event.target)) {
|
|
114
|
+
closeOverlayHandler(event);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
if (isShow) {
|
|
118
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
119
|
+
}
|
|
120
|
+
return function () {
|
|
121
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
122
|
+
};
|
|
123
|
+
}, [isShow, closeOverlayHandler]);
|
|
124
|
+
useEffect(function () {
|
|
125
|
+
if (show) {
|
|
126
|
+
openOverlay();
|
|
127
|
+
}
|
|
128
|
+
}, [show]);
|
|
129
|
+
if (!isShow)
|
|
130
|
+
return null;
|
|
131
|
+
return ReactDOM.createPortal(_jsx(OverlayPanelStyled, __assign({ ref: boxRef, "$top": coords.top, "$left": coords.left }, { children: _jsxs("div", __assign({ className: "overlayPanel ".concat(coords.top > 0 || coords.left > 0 ? "visible" : "hide") }, { children: [_jsx("button", __assign({ id: id !== null && id !== void 0 ? id : "", className: "toggle-btn", onClick: closeOverlayHandler }, { children: _jsx(Icon, { classIcon: "bi-x-lg" }) })), children] })) })), document.body);
|
|
132
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useRef, useState } from "react";
|
|
14
|
+
import { Icon } from "../icon/Icon";
|
|
15
|
+
import { OverlayPanel } from "./OverlayPanel";
|
|
16
|
+
export var OverlayPanelView = function () {
|
|
17
|
+
var refButton = useRef(null);
|
|
18
|
+
var _a = useState(false), openOverlay = _a[0], setOpenOverlay = _a[1];
|
|
19
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", __assign({ ref: refButton, onClick: function () { return setOpenOverlay(!openOverlay); } }, { children: _jsx(Icon, { classIcon: "bi-list" }) })), refButton.current && (_jsx(OverlayPanel, { position: "bottomRight", show: openOverlay, closeOverlay: setOpenOverlay, referenceElement: refButton.current, children: _jsx("div", { children: "boom" }) }))] }));
|
|
20
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { createContext, useContext, useState } from "react";
|
|
14
|
+
var OverlayContext = createContext(undefined);
|
|
15
|
+
export var OverlayProvider = function (_a) {
|
|
16
|
+
var children = _a.children;
|
|
17
|
+
var _b = useState(null), activeOverlayId = _b[0], setActiveOverlay = _b[1];
|
|
18
|
+
return (_jsx(OverlayContext.Provider, __assign({ value: { activeOverlayId: activeOverlayId, setActiveOverlay: setActiveOverlay } }, { children: children })));
|
|
19
|
+
};
|
|
20
|
+
export var useOverlayContext = function () {
|
|
21
|
+
var context = useContext(OverlayContext);
|
|
22
|
+
if (!context) {
|
|
23
|
+
throw new Error("useOverlayContext must be used within an OverlayProvider");
|
|
24
|
+
}
|
|
25
|
+
return context;
|
|
26
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
import styled from "styled-components";
|
|
6
|
+
export var OverlayPanelStyled = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n z-index: 5;\n top: ", "px;\n left: ", "px;\n background-color: white;\n padding: 10px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n border-radius: 2px;\n border: 1px solid #ede;\n"], ["\n position: absolute;\n z-index: 5;\n top: ", "px;\n left: ", "px;\n background-color: white;\n padding: 10px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n border-radius: 2px;\n border: 1px solid #ede;\n"])), function (_a) {
|
|
7
|
+
var $top = _a.$top;
|
|
8
|
+
return $top;
|
|
9
|
+
}, function (_a) {
|
|
10
|
+
var $left = _a.$left;
|
|
11
|
+
return $left;
|
|
12
|
+
});
|
|
13
|
+
var templateObject_1;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
38
|
+
import { forwardRef, useCallback, useEffect, useState } from "react";
|
|
39
|
+
export var PdfViewer = forwardRef(function (_a, ref) {
|
|
40
|
+
var arrayBuffer = _a.arrayBuffer, _b = _a.displayToolBar, displayToolBar = _b === void 0 ? false : _b, _c = _a.height, height = _c === void 0 ? "600px" : _c, _d = _a.width, width = _d === void 0 ? "100%" : _d, className = _a.className, title = _a.title, id = _a.id;
|
|
41
|
+
var _e = useState(null), pdfUrl = _e[0], setPdfUrl = _e[1];
|
|
42
|
+
var handleLoadPDF = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var blob, url, pdfUrlWithoutToolbar;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
blob = new Blob([arrayBuffer], { type: "application/pdf" });
|
|
46
|
+
url = URL.createObjectURL(blob);
|
|
47
|
+
if (!displayToolBar) {
|
|
48
|
+
pdfUrlWithoutToolbar = "".concat(url, "#toolbar=0&navpanes=0&scrollbar=0");
|
|
49
|
+
setPdfUrl(pdfUrlWithoutToolbar);
|
|
50
|
+
return [2 /*return*/];
|
|
51
|
+
}
|
|
52
|
+
setPdfUrl(url);
|
|
53
|
+
return [2 /*return*/];
|
|
54
|
+
});
|
|
55
|
+
}); }, [arrayBuffer, displayToolBar, setPdfUrl]);
|
|
56
|
+
useEffect(function () {
|
|
57
|
+
handleLoadPDF();
|
|
58
|
+
}, [arrayBuffer, handleLoadPDF]);
|
|
59
|
+
// Nettoyer l'URL quand le composant se démonte
|
|
60
|
+
useEffect(function () {
|
|
61
|
+
return function () {
|
|
62
|
+
if (pdfUrl) {
|
|
63
|
+
URL.revokeObjectURL(pdfUrl);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}, [pdfUrl]);
|
|
67
|
+
return (_jsx(_Fragment, { children: pdfUrl && (_jsx("iframe", { ref: ref, className: className, src: pdfUrl, width: width, height: height, title: title, id: id, style: {
|
|
68
|
+
border: "none",
|
|
69
|
+
pointerEvents: "auto", // Permet le scroll
|
|
70
|
+
} })) }));
|
|
71
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useCallback, useEffect, useState } from "react";
|
|
14
|
+
import { Icon } from "../icon/Icon";
|
|
15
|
+
import { IconSizeEnum } from "../icon/iconSize.enum";
|
|
16
|
+
import "./quantity.css";
|
|
17
|
+
export var Quantity = function (_a) {
|
|
18
|
+
var setQuantity = _a.setQuantity, item = _a.item, onClickQuantity = _a.onClickQuantity, disabled = _a.disabled, disabledPlus = _a.disabledPlus, disabledMinus = _a.disabledMinus, pas = _a.pas;
|
|
19
|
+
var _b = useState(pas), qte = _b[0], setQte = _b[1];
|
|
20
|
+
var changeQuantity = useCallback(function (qte) {
|
|
21
|
+
if (disabled) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
setQte(qte);
|
|
25
|
+
if (setQuantity) {
|
|
26
|
+
setQuantity(item, qte);
|
|
27
|
+
}
|
|
28
|
+
}, [setQte, setQuantity]);
|
|
29
|
+
var incrementQte = useCallback(function (e) {
|
|
30
|
+
e.stopPropagation();
|
|
31
|
+
if (disabled || disabledPlus) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
var newQuantity = qte + pas;
|
|
35
|
+
changeQuantity(Math.round(newQuantity * 100) / 100);
|
|
36
|
+
}, [qte, changeQuantity]);
|
|
37
|
+
var decrementQte = useCallback(function (e) {
|
|
38
|
+
e.stopPropagation();
|
|
39
|
+
if (disabled || disabledMinus) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (qte === 0) {
|
|
43
|
+
return qte;
|
|
44
|
+
}
|
|
45
|
+
var newQuantity = qte - pas;
|
|
46
|
+
changeQuantity(Math.round(newQuantity * 100) / 100);
|
|
47
|
+
}, [changeQuantity, qte]);
|
|
48
|
+
useEffect(function () {
|
|
49
|
+
if (item.quantity) {
|
|
50
|
+
setQte(item.quantity);
|
|
51
|
+
}
|
|
52
|
+
}, [item.quantity, setQte]);
|
|
53
|
+
var handleClick = useCallback(function (e) {
|
|
54
|
+
e.stopPropagation();
|
|
55
|
+
if (onClickQuantity) {
|
|
56
|
+
onClickQuantity(item);
|
|
57
|
+
}
|
|
58
|
+
}, [onClickQuantity, item]);
|
|
59
|
+
return (_jsxs("div", __assign({ className: "qte " }, { children: [_jsx("div", __assign({ onClick: function (e) { return decrementQte(e); }, className: "qte-action qte-action--minus ".concat(disabled || disabledMinus ? "disabled" : "", " ") }, { children: _jsx(Icon, { size: IconSizeEnum.LARGE, classIcon: "bi bi-dash-square" }) })), _jsx("span", __assign({ onClick: function (e) { return handleClick(e); }, className: "qte-label" }, { children: qte })), _jsx("div", __assign({ onClick: function (e) { return incrementQte(e); }, className: "qte-action qte-action--plus ".concat(disabled || disabledPlus ? "disabled" : "") }, { children: _jsx(Icon, { size: IconSizeEnum.LARGE, classIcon: "bi bi-plus-square" }) }))] })));
|
|
60
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|