@open-tender/store 0.4.0 → 0.5.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.
Files changed (63) hide show
  1. package/dist/cjs/app/hooks.d.ts +1 -0
  2. package/dist/cjs/app/store.d.ts +3 -0
  3. package/dist/cjs/app/store.js +1 -0
  4. package/dist/cjs/hooks/index.d.ts +8 -1
  5. package/dist/cjs/hooks/index.js +15 -1
  6. package/dist/cjs/hooks/useBarcode.d.ts +7 -0
  7. package/dist/cjs/hooks/useBarcode.js +62 -0
  8. package/dist/cjs/hooks/useCardSwipe.d.ts +7 -0
  9. package/dist/cjs/hooks/useCardSwipe.js +78 -0
  10. package/dist/cjs/hooks/useEmployee.d.ts +8 -0
  11. package/dist/cjs/hooks/useEmployee.js +60 -0
  12. package/dist/cjs/hooks/useGiftCardBalance.d.ts +9 -0
  13. package/dist/cjs/hooks/useGiftCardBalance.js +52 -0
  14. package/dist/cjs/hooks/usePrevious.d.ts +2 -0
  15. package/dist/cjs/hooks/usePrevious.js +11 -0
  16. package/dist/cjs/hooks/usePunch.d.ts +12 -0
  17. package/dist/cjs/hooks/usePunch.js +123 -0
  18. package/dist/cjs/hooks/useRefund.d.ts +17 -0
  19. package/dist/cjs/hooks/useRefund.js +90 -0
  20. package/dist/cjs/services/api.d.ts +2 -1
  21. package/dist/cjs/services/api.js +3 -0
  22. package/dist/cjs/slices/index.d.ts +1 -0
  23. package/dist/cjs/slices/index.js +1 -0
  24. package/dist/cjs/slices/kiosk.d.ts +32 -0
  25. package/dist/cjs/slices/kiosk.js +116 -0
  26. package/dist/cjs/slices/types.d.ts +1 -0
  27. package/dist/cjs/slices/types.js +1 -0
  28. package/dist/cjs/types/api/index.d.ts +1 -0
  29. package/dist/cjs/types/api/index.js +1 -0
  30. package/dist/cjs/types/api/kiosk.d.ts +8 -0
  31. package/dist/cjs/types/api/kiosk.js +2 -0
  32. package/dist/esm/app/hooks.d.ts +1 -0
  33. package/dist/esm/app/store.d.ts +3 -0
  34. package/dist/esm/app/store.js +2 -1
  35. package/dist/esm/hooks/index.d.ts +8 -1
  36. package/dist/esm/hooks/index.js +8 -1
  37. package/dist/esm/hooks/useBarcode.d.ts +7 -0
  38. package/dist/esm/hooks/useBarcode.js +60 -0
  39. package/dist/esm/hooks/useCardSwipe.d.ts +7 -0
  40. package/dist/esm/hooks/useCardSwipe.js +76 -0
  41. package/dist/esm/hooks/useEmployee.d.ts +8 -0
  42. package/dist/esm/hooks/useEmployee.js +58 -0
  43. package/dist/esm/hooks/useGiftCardBalance.d.ts +9 -0
  44. package/dist/esm/hooks/useGiftCardBalance.js +50 -0
  45. package/dist/esm/hooks/usePrevious.d.ts +2 -0
  46. package/dist/esm/hooks/usePrevious.js +9 -0
  47. package/dist/esm/hooks/usePunch.d.ts +12 -0
  48. package/dist/esm/hooks/usePunch.js +121 -0
  49. package/dist/esm/hooks/useRefund.d.ts +17 -0
  50. package/dist/esm/hooks/useRefund.js +88 -0
  51. package/dist/esm/services/api.d.ts +2 -1
  52. package/dist/esm/services/api.js +3 -0
  53. package/dist/esm/slices/index.d.ts +1 -0
  54. package/dist/esm/slices/index.js +1 -0
  55. package/dist/esm/slices/kiosk.d.ts +32 -0
  56. package/dist/esm/slices/kiosk.js +110 -0
  57. package/dist/esm/slices/types.d.ts +1 -0
  58. package/dist/esm/slices/types.js +1 -0
  59. package/dist/esm/types/api/index.d.ts +1 -0
  60. package/dist/esm/types/api/index.js +1 -0
  61. package/dist/esm/types/api/kiosk.d.ts +8 -0
  62. package/dist/esm/types/api/kiosk.js +1 -0
  63. package/package.json +1 -1
@@ -9,6 +9,7 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<i
9
9
  discounts: import("..").DiscountsState;
10
10
  errorAlerts: import("..").ErrorAlertsState;
11
11
  kds: import("..").KdsState;
12
+ kiosk: import("..").KioskState;
12
13
  menu: import("..").MenuState;
13
14
  menuPages: import("..").MenuPagesState;
14
15
  modal: import("..").ModalState;
@@ -8,6 +8,7 @@ export declare const appReducer: import("redux").Reducer<import("redux").Combine
8
8
  discounts: import("../slices").DiscountsState;
9
9
  errorAlerts: import("../slices").ErrorAlertsState;
10
10
  kds: import("../slices").KdsState;
11
+ kiosk: import("../slices").KioskState;
11
12
  menu: import("../slices").MenuState;
12
13
  menuPages: import("../slices").MenuPagesState;
13
14
  modal: import("../slices").ModalState;
@@ -32,6 +33,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<import("redux").Co
32
33
  discounts: import("../slices").DiscountsState;
33
34
  errorAlerts: import("../slices").ErrorAlertsState;
34
35
  kds: import("../slices").KdsState;
36
+ kiosk: import("../slices").KioskState;
35
37
  menu: import("../slices").MenuState;
36
38
  menuPages: import("../slices").MenuPagesState;
37
39
  modal: import("../slices").ModalState;
@@ -54,6 +56,7 @@ declare const store: import("@reduxjs/toolkit").EnhancedStore<import("redux").Co
54
56
  discounts: import("../slices").DiscountsState;
55
57
  errorAlerts: import("../slices").ErrorAlertsState;
56
58
  kds: import("../slices").KdsState;
59
+ kiosk: import("../slices").KioskState;
57
60
  menu: import("../slices").MenuState;
58
61
  menuPages: import("../slices").MenuPagesState;
59
62
  modal: import("../slices").ModalState;
@@ -12,6 +12,7 @@ exports.appReducer = (0, toolkit_1.combineReducers)({
12
12
  discounts: slices_1.discountsReducer,
13
13
  errorAlerts: slices_1.errorAlertsReducer,
14
14
  kds: slices_1.kdsReducer,
15
+ kiosk: slices_1.kioskReducer,
15
16
  menu: slices_1.menuReducer,
16
17
  menuPages: slices_1.menuPagesReducer,
17
18
  modal: slices_1.modalReducer,
@@ -1,2 +1,9 @@
1
+ import useBarcode from './useBarcode';
1
2
  import useBuilder from './useBuilder';
2
- export { useBuilder };
3
+ import useCardSwipe from './useCardSwipe';
4
+ import useEmployee from './useEmployee';
5
+ import useGiftCardBalance from './useGiftCardBalance';
6
+ import usePrevious from './usePrevious';
7
+ import usePunch from './usePunch';
8
+ import useRefund from './useRefund';
9
+ export { useBarcode, useBuilder, useCardSwipe, useEmployee, useGiftCardBalance, usePrevious, usePunch, useRefund };
@@ -1,6 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useBuilder = void 0;
3
+ exports.useRefund = exports.usePunch = exports.usePrevious = exports.useGiftCardBalance = exports.useEmployee = exports.useCardSwipe = exports.useBuilder = exports.useBarcode = void 0;
4
4
  var tslib_1 = require("tslib");
5
+ var useBarcode_1 = tslib_1.__importDefault(require("./useBarcode"));
6
+ exports.useBarcode = useBarcode_1.default;
5
7
  var useBuilder_1 = tslib_1.__importDefault(require("./useBuilder"));
6
8
  exports.useBuilder = useBuilder_1.default;
9
+ var useCardSwipe_1 = tslib_1.__importDefault(require("./useCardSwipe"));
10
+ exports.useCardSwipe = useCardSwipe_1.default;
11
+ var useEmployee_1 = tslib_1.__importDefault(require("./useEmployee"));
12
+ exports.useEmployee = useEmployee_1.default;
13
+ var useGiftCardBalance_1 = tslib_1.__importDefault(require("./useGiftCardBalance"));
14
+ exports.useGiftCardBalance = useGiftCardBalance_1.default;
15
+ var usePrevious_1 = tslib_1.__importDefault(require("./usePrevious"));
16
+ exports.usePrevious = usePrevious_1.default;
17
+ var usePunch_1 = tslib_1.__importDefault(require("./usePunch"));
18
+ exports.usePunch = usePunch_1.default;
19
+ var useRefund_1 = tslib_1.__importDefault(require("./useRefund"));
20
+ exports.useRefund = useRefund_1.default;
@@ -0,0 +1,7 @@
1
+ declare const useBarcode: (api: any) => {
2
+ code: string | null;
3
+ error: string | null;
4
+ read: () => Promise<void>;
5
+ cancel: () => Promise<void>;
6
+ };
7
+ export default useBarcode;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = require("react");
5
+ var utils_1 = require("../utils");
6
+ var useBarcode = function (api) {
7
+ var isAborted = (0, react_1.useRef)(false);
8
+ var _a = (0, react_1.useState)(null), code = _a[0], setCode = _a[1];
9
+ var _b = (0, react_1.useState)(null), error = _b[0], setError = _b[1];
10
+ (0, react_1.useEffect)(function () {
11
+ return function () {
12
+ isAborted.current = true;
13
+ };
14
+ }, []);
15
+ var read = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
16
+ var data, err_1, detail;
17
+ return tslib_1.__generator(this, function (_a) {
18
+ switch (_a.label) {
19
+ case 0:
20
+ _a.trys.push([0, 2, , 3]);
21
+ return [4 /*yield*/, api.getBarcodeRead()];
22
+ case 1:
23
+ data = (_a.sent()).data;
24
+ if (!isAborted.current) {
25
+ setCode(data);
26
+ }
27
+ return [3 /*break*/, 3];
28
+ case 2:
29
+ err_1 = _a.sent();
30
+ if (!isAborted.current) {
31
+ detail = (0, utils_1.handleRespError)(err_1).detail;
32
+ setError(detail);
33
+ }
34
+ return [3 /*break*/, 3];
35
+ case 3: return [2 /*return*/];
36
+ }
37
+ });
38
+ }); }, [api]);
39
+ var cancel = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
40
+ var err_2, detail;
41
+ return tslib_1.__generator(this, function (_a) {
42
+ switch (_a.label) {
43
+ case 0:
44
+ _a.trys.push([0, 2, , 3]);
45
+ return [4 /*yield*/, api.postBarcodeCancel()];
46
+ case 1:
47
+ _a.sent();
48
+ return [3 /*break*/, 3];
49
+ case 2:
50
+ err_2 = _a.sent();
51
+ if (!isAborted.current) {
52
+ detail = (0, utils_1.handleRespError)(err_2).detail;
53
+ setError(detail);
54
+ }
55
+ return [3 /*break*/, 3];
56
+ case 3: return [2 /*return*/];
57
+ }
58
+ });
59
+ }); }, [api]);
60
+ return (0, react_1.useMemo)(function () { return ({ code: code, error: error, read: read, cancel: cancel }); }, [code, error, read, cancel]);
61
+ };
62
+ exports.default = useBarcode;
@@ -0,0 +1,7 @@
1
+ declare const useCardSwipe: (api: any, parse?: boolean) => {
2
+ code: string | null;
3
+ error: string | null;
4
+ read: () => Promise<void>;
5
+ cancel: () => Promise<void>;
6
+ };
7
+ export default useCardSwipe;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = require("react");
5
+ var utils_1 = require("../utils");
6
+ var parseSwipeCard = function (data) {
7
+ try {
8
+ var parts = data.split('?');
9
+ var code = parts[0].slice(1);
10
+ return code.length > 36 ? null : code;
11
+ }
12
+ catch (err) {
13
+ return null;
14
+ }
15
+ };
16
+ var useCardSwipe = function (api, parse) {
17
+ if (parse === void 0) { parse = true; }
18
+ var isAborted = (0, react_1.useRef)(false);
19
+ var _a = (0, react_1.useState)(null), code = _a[0], setCode = _a[1];
20
+ var _b = (0, react_1.useState)(null), error = _b[0], setError = _b[1];
21
+ (0, react_1.useEffect)(function () {
22
+ return function () {
23
+ isAborted.current = true;
24
+ };
25
+ }, []);
26
+ var read = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
27
+ var data, err_1, detail;
28
+ return tslib_1.__generator(this, function (_a) {
29
+ switch (_a.label) {
30
+ case 0:
31
+ _a.trys.push([0, 2, , 3]);
32
+ return [4 /*yield*/, api.getCardRead()];
33
+ case 1:
34
+ data = (_a.sent()).data;
35
+ if (parse)
36
+ data = parseSwipeCard(data);
37
+ data ? setCode(data) : setError('Could not read card. Please try again.');
38
+ if (!isAborted.current) {
39
+ data
40
+ ? setCode(data)
41
+ : setError('Could not read card. Please try again.');
42
+ }
43
+ return [3 /*break*/, 3];
44
+ case 2:
45
+ err_1 = _a.sent();
46
+ if (!isAborted.current) {
47
+ detail = (0, utils_1.handleRespError)(err_1).detail;
48
+ setError(detail);
49
+ }
50
+ return [3 /*break*/, 3];
51
+ case 3: return [2 /*return*/];
52
+ }
53
+ });
54
+ }); }, [api, parse]);
55
+ var cancel = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
56
+ var err_2, detail;
57
+ return tslib_1.__generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0:
60
+ _a.trys.push([0, 2, , 3]);
61
+ return [4 /*yield*/, api.postCardCancel()];
62
+ case 1:
63
+ _a.sent();
64
+ return [3 /*break*/, 3];
65
+ case 2:
66
+ err_2 = _a.sent();
67
+ if (!isAborted.current) {
68
+ detail = (0, utils_1.handleRespError)(err_2).detail;
69
+ setError(detail);
70
+ }
71
+ return [3 /*break*/, 3];
72
+ case 3: return [2 /*return*/];
73
+ }
74
+ });
75
+ }); }, [api]);
76
+ return (0, react_1.useMemo)(function () { return ({ code: code, error: error, read: read, cancel: cancel }); }, [code, error, read, cancel]);
77
+ };
78
+ exports.default = useCardSwipe;
@@ -0,0 +1,8 @@
1
+ import { Employee } from '../types';
2
+ declare const useEmployee: (api: any) => {
3
+ employee: Employee | null;
4
+ error: string | null;
5
+ fetch: (identifier: string | number, withPunches?: boolean) => Promise<void>;
6
+ reset: () => void;
7
+ };
8
+ export default useEmployee;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = require("react");
5
+ var utils_1 = require("../utils");
6
+ var useEmployee = function (api) {
7
+ var isAborted = (0, react_1.useRef)(false);
8
+ var _a = (0, react_1.useState)(null), employee = _a[0], setEmployee = _a[1];
9
+ var _b = (0, react_1.useState)(null), error = _b[0], setError = _b[1];
10
+ (0, react_1.useEffect)(function () {
11
+ return function () {
12
+ isAborted.current = true;
13
+ };
14
+ }, []);
15
+ var fetch = (0, react_1.useCallback)(function (identifier, withPunches) {
16
+ if (withPunches === void 0) { withPunches = false; }
17
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
18
+ var employee_1, employee_id, response, err_1, detail;
19
+ return tslib_1.__generator(this, function (_a) {
20
+ switch (_a.label) {
21
+ case 0:
22
+ _a.trys.push([0, 4, , 5]);
23
+ return [4 /*yield*/, api.getEmployee(identifier)];
24
+ case 1:
25
+ employee_1 = _a.sent();
26
+ if (!withPunches) return [3 /*break*/, 3];
27
+ employee_id = employee_1.employee_id;
28
+ return [4 /*yield*/, api.getTimePunchesReport(null, employee_id)];
29
+ case 2:
30
+ response = _a.sent();
31
+ if (response.length)
32
+ employee_1 = response[0];
33
+ _a.label = 3;
34
+ case 3:
35
+ if (!isAborted.current) {
36
+ setEmployee(employee_1);
37
+ }
38
+ return [3 /*break*/, 5];
39
+ case 4:
40
+ err_1 = _a.sent();
41
+ if (!isAborted.current) {
42
+ detail = (0, utils_1.handleRespError)(err_1).detail;
43
+ if (detail.includes('does not exist')) {
44
+ detail = 'Employee not found. Please try again.';
45
+ }
46
+ setError(detail);
47
+ }
48
+ return [3 /*break*/, 5];
49
+ case 5: return [2 /*return*/];
50
+ }
51
+ });
52
+ });
53
+ }, [api]);
54
+ var reset = (0, react_1.useCallback)(function () {
55
+ setEmployee(null);
56
+ setError(null);
57
+ }, []);
58
+ return (0, react_1.useMemo)(function () { return ({ employee: employee, error: error, fetch: fetch, reset: reset }); }, [employee, error, fetch, reset]);
59
+ };
60
+ exports.default = useEmployee;
@@ -0,0 +1,9 @@
1
+ import { GiftCardBalance } from '../types';
2
+ declare const useGiftCardBalance: (api: any) => {
3
+ giftCard: GiftCardBalance | null;
4
+ loading: string;
5
+ error: string | null;
6
+ fetch: (code: string) => Promise<void>;
7
+ reset: () => void;
8
+ };
9
+ export default useGiftCardBalance;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = require("react");
5
+ var utils_1 = require("../utils");
6
+ var useGiftCardBalance = function (api) {
7
+ var isAborted = (0, react_1.useRef)(false);
8
+ var _a = (0, react_1.useState)(null), giftCard = _a[0], setGiftCard = _a[1];
9
+ var _b = (0, react_1.useState)('idle'), loading = _b[0], setLoading = _b[1];
10
+ var _c = (0, react_1.useState)(null), error = _c[0], setError = _c[1];
11
+ (0, react_1.useEffect)(function () {
12
+ return function () {
13
+ isAborted.current = true;
14
+ };
15
+ }, []);
16
+ var fetch = (0, react_1.useCallback)(function (code) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
17
+ var giftCard_1, err_1, detail;
18
+ return tslib_1.__generator(this, function (_a) {
19
+ switch (_a.label) {
20
+ case 0:
21
+ setLoading('pending');
22
+ _a.label = 1;
23
+ case 1:
24
+ _a.trys.push([1, 3, , 4]);
25
+ return [4 /*yield*/, api.getGiftCardBalance(code)];
26
+ case 2:
27
+ giftCard_1 = _a.sent();
28
+ if (!isAborted.current) {
29
+ setGiftCard(giftCard_1);
30
+ }
31
+ return [3 /*break*/, 4];
32
+ case 3:
33
+ err_1 = _a.sent();
34
+ if (!isAborted.current) {
35
+ detail = (0, utils_1.handleRespError)(err_1).detail;
36
+ setError(detail);
37
+ }
38
+ return [3 /*break*/, 4];
39
+ case 4:
40
+ setLoading('idle');
41
+ return [2 /*return*/];
42
+ }
43
+ });
44
+ }); }, [api]);
45
+ var reset = (0, react_1.useCallback)(function () {
46
+ setGiftCard(null);
47
+ setLoading('idle');
48
+ setError(null);
49
+ }, []);
50
+ return (0, react_1.useMemo)(function () { return ({ giftCard: giftCard, loading: loading, error: error, fetch: fetch, reset: reset }); }, [giftCard, loading, error, fetch, reset]);
51
+ };
52
+ exports.default = useGiftCardBalance;
@@ -0,0 +1,2 @@
1
+ declare const usePrevious: (value: any) => undefined;
2
+ export default usePrevious;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var usePrevious = function (value) {
5
+ var ref = (0, react_1.useRef)();
6
+ (0, react_1.useEffect)(function () {
7
+ ref.current = value;
8
+ });
9
+ return ref.current;
10
+ };
11
+ exports.default = usePrevious;
@@ -0,0 +1,12 @@
1
+ import { ModalState } from '../slices';
2
+ import { Employee, Punch } from '../types';
3
+ declare const usePunch: (api: any) => {
4
+ submit: (employee: Employee, blockPin: boolean) => void;
5
+ send: (data: Punch, employee: Employee) => Promise<void>;
6
+ print: (employeeId: number) => Promise<void>;
7
+ error: string | null;
8
+ msg: string | null;
9
+ modal: ModalState | null;
10
+ reset: () => void;
11
+ };
12
+ export default usePunch;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = require("react");
5
+ var utils_1 = require("../utils");
6
+ var codeErrMsg = 'Employee has been assigned a swipe card. Please use card to punch in / out.';
7
+ var deptErrMsg = "This employee doesn't have any departments. Please contact HR.";
8
+ var usePunch = function (api) {
9
+ var isAborted = (0, react_1.useRef)(false);
10
+ var _a = (0, react_1.useState)(null), error = _a[0], setError = _a[1];
11
+ var _b = (0, react_1.useState)(null), msg = _b[0], setMsg = _b[1];
12
+ var _c = (0, react_1.useState)(null), modal = _c[0], setModal = _c[1];
13
+ (0, react_1.useEffect)(function () {
14
+ return function () {
15
+ isAborted.current = true;
16
+ };
17
+ }, []);
18
+ var reset = (0, react_1.useCallback)(function () {
19
+ setError(null);
20
+ setModal(null);
21
+ setMsg(null);
22
+ }, []);
23
+ var print = (0, react_1.useCallback)(function (employeeId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
24
+ var err_1, detail;
25
+ return tslib_1.__generator(this, function (_a) {
26
+ switch (_a.label) {
27
+ case 0:
28
+ _a.trys.push([0, 2, , 3]);
29
+ return [4 /*yield*/, api.postPrintShiftSummary(employeeId)];
30
+ case 1:
31
+ _a.sent();
32
+ return [3 /*break*/, 3];
33
+ case 2:
34
+ err_1 = _a.sent();
35
+ if (!isAborted.current) {
36
+ detail = (0, utils_1.handleRespError)(err_1).detail;
37
+ setError(detail);
38
+ }
39
+ return [3 /*break*/, 3];
40
+ case 3: return [2 /*return*/];
41
+ }
42
+ });
43
+ }); }, [api]);
44
+ var send = (0, react_1.useCallback)(function (data, employee) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
45
+ var err_2, detail;
46
+ return tslib_1.__generator(this, function (_a) {
47
+ switch (_a.label) {
48
+ case 0:
49
+ _a.trys.push([0, 2, , 3]);
50
+ return [4 /*yield*/, api.postTimePunch(data)];
51
+ case 1:
52
+ _a.sent();
53
+ if (!isAborted.current) {
54
+ setMsg((0, utils_1.makePunchMessage)(employee, data.punch_type));
55
+ }
56
+ return [3 /*break*/, 3];
57
+ case 2:
58
+ err_2 = _a.sent();
59
+ if (!isAborted.current) {
60
+ detail = (0, utils_1.handleRespError)(err_2).detail;
61
+ setError(detail);
62
+ }
63
+ return [3 /*break*/, 3];
64
+ case 3: return [2 /*return*/];
65
+ }
66
+ });
67
+ }); }, [api]);
68
+ var submit = (0, react_1.useCallback)(function (employee, blockPin) {
69
+ if (employee && employee.code && blockPin) {
70
+ setError(codeErrMsg);
71
+ }
72
+ else if (!employee.punches) {
73
+ if (!employee.departments.length) {
74
+ setError(deptErrMsg);
75
+ }
76
+ else if (employee.departments.length > 1) {
77
+ setModal({ type: 'punchDept', args: { employee: employee } });
78
+ }
79
+ else {
80
+ var employee_id = employee.employee_id, departments = employee.departments;
81
+ var data = {
82
+ employee_id: employee_id,
83
+ department_id: departments[0].id,
84
+ punch_type: 'PUNCH_IN',
85
+ tips: '0.00'
86
+ };
87
+ send(data, employee);
88
+ }
89
+ }
90
+ else {
91
+ var lastPunch = employee.punches[employee.punches.length - 1];
92
+ var employee_id = lastPunch.employee_id, department_id = lastPunch.department_id, punch_type = lastPunch.punch_type;
93
+ if (punch_type === 'BREAK_OUT') {
94
+ var data = {
95
+ employee_id: employee_id,
96
+ department_id: department_id,
97
+ punch_type: 'BREAK_IN',
98
+ tips: '0.00'
99
+ };
100
+ send(data, employee);
101
+ }
102
+ else if (punch_type === 'PUNCH_OUT') {
103
+ if (employee.departments.length > 1) {
104
+ setModal({ type: 'punchDept', args: { employee: employee } });
105
+ }
106
+ else {
107
+ var data = {
108
+ employee_id: employee_id,
109
+ department_id: employee.departments[0].id,
110
+ punch_type: 'PUNCH_IN',
111
+ tips: '0.00'
112
+ };
113
+ send(data, employee);
114
+ }
115
+ }
116
+ else {
117
+ setModal({ type: 'punchType', args: { employee: employee } });
118
+ }
119
+ }
120
+ }, [send]);
121
+ return (0, react_1.useMemo)(function () { return ({ submit: submit, send: send, print: print, error: error, msg: msg, modal: modal, reset: reset }); }, [submit, send, print, error, msg, modal, reset]);
122
+ };
123
+ exports.default = usePunch;
@@ -0,0 +1,17 @@
1
+ import { Money, OrderSurcharge, Refund, RefundItem } from '../types';
2
+ declare const useRefund: (initialState?: {}) => {
3
+ refund: Refund;
4
+ resetRefund: () => void;
5
+ incrementItem: (item: RefundItem) => void;
6
+ decrementItem: (item: RefundItem) => void;
7
+ removeSurcharge: (surcharge: OrderSurcharge) => void;
8
+ addBackSurcharge: (surcharge: OrderSurcharge) => void;
9
+ removeTip: (tip: Money) => void;
10
+ addBackTip: () => void;
11
+ removeShipping: (shipping: Money) => void;
12
+ addBackShipping: () => void;
13
+ removeTax: () => void;
14
+ addBackTax: () => void;
15
+ refundInFull: () => void;
16
+ };
17
+ export default useRefund;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = require("react");
5
+ var emptyState = {
6
+ full_refund: false,
7
+ all_taxes: false,
8
+ items: [],
9
+ surcharges: [],
10
+ tip: '0.00',
11
+ shipping: '0.00'
12
+ };
13
+ var useRefund = function (initialState) {
14
+ if (initialState === void 0) { initialState = {}; }
15
+ var _a = (0, react_1.useState)(tslib_1.__assign(tslib_1.__assign({}, emptyState), initialState)), refund = _a[0], setRefund = _a[1];
16
+ var resetRefund = function () {
17
+ setRefund(emptyState);
18
+ };
19
+ var refundInFull = function () {
20
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, emptyState), { full_refund: true }));
21
+ };
22
+ var updateItems = function (refundItem) {
23
+ var otherItems = refund.items.filter(function (i) { return i.item_no !== refundItem.item_no; });
24
+ var items = refundItem.quantity ? tslib_1.__spreadArray(tslib_1.__spreadArray([], otherItems, true), [refundItem], false) : otherItems;
25
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { items: items }));
26
+ };
27
+ var incrementItem = function (item) {
28
+ var quantity = item.quantity, item_no = item.item_no;
29
+ var currentItem = refund.items.find(function (i) { return i.item_no === item_no; });
30
+ var newQuantity = currentItem ? currentItem.quantity + 1 : 1;
31
+ var updatedQuantity = Math.min(newQuantity, quantity);
32
+ var refundItem = { item_no: item_no, quantity: updatedQuantity };
33
+ updateItems(refundItem);
34
+ };
35
+ var decrementItem = function (item) {
36
+ var item_no = item.item_no;
37
+ var currentItem = refund.items.find(function (i) { return i.item_no === item_no; });
38
+ var newQuantity = currentItem ? currentItem.quantity - 1 : 0;
39
+ var updatedQuantity = Math.max(newQuantity, 0);
40
+ var refundItem = { item_no: item_no, quantity: updatedQuantity };
41
+ updateItems(refundItem);
42
+ };
43
+ var removeSurcharge = function (surcharge) {
44
+ var current = refund.surcharges.find(function (i) { return i.surcharge_id === surcharge.id; });
45
+ if (current)
46
+ return;
47
+ var surcharges = tslib_1.__spreadArray(tslib_1.__spreadArray([], (refund.surcharges || []), true), [
48
+ { surcharge_id: surcharge.id }
49
+ ], false);
50
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { surcharges: surcharges }));
51
+ };
52
+ var addBackSurcharge = function (surcharge) {
53
+ var surcharges = refund.surcharges.filter(function (i) { return i.surcharge_id !== surcharge.id; });
54
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { surcharges: surcharges }));
55
+ };
56
+ var removeTip = function (tip) {
57
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { tip: tip }));
58
+ };
59
+ var addBackTip = function () {
60
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { tip: '0.00' }));
61
+ };
62
+ var removeShipping = function (shipping) {
63
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { shipping: shipping }));
64
+ };
65
+ var addBackShipping = function () {
66
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { shipping: '0.00' }));
67
+ };
68
+ var removeTax = function () {
69
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { all_taxes: true }));
70
+ };
71
+ var addBackTax = function () {
72
+ setRefund(tslib_1.__assign(tslib_1.__assign({}, refund), { all_taxes: false }));
73
+ };
74
+ return {
75
+ refund: refund,
76
+ resetRefund: resetRefund,
77
+ incrementItem: incrementItem,
78
+ decrementItem: decrementItem,
79
+ removeSurcharge: removeSurcharge,
80
+ addBackSurcharge: addBackSurcharge,
81
+ removeTip: removeTip,
82
+ addBackTip: addBackTip,
83
+ removeShipping: removeShipping,
84
+ addBackShipping: addBackShipping,
85
+ removeTax: removeTax,
86
+ addBackTax: addBackTax,
87
+ refundInFull: refundInFull
88
+ };
89
+ };
90
+ exports.default = useRefund;
@@ -1,4 +1,4 @@
1
- import { Arrivals, CashEvent, CashSummary, Config, CustomerCheckout, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, EntityType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, LevelUp, Menu, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, OrderCreate, Orders, OrderTender, OrderType, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, ServiceType, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
1
+ import { Arrivals, CashEvent, CashSummary, Config, CustomerCheckout, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, EntityType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, KioskConfig, LevelUp, Menu, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, OrderCreate, Orders, OrderTender, OrderType, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, ServiceType, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
2
2
  interface ConfigAPI {
3
3
  apiUrl: string;
4
4
  }
@@ -8,6 +8,7 @@ declare class PosAPI {
8
8
  request: <T>(endpoint: string, method?: string, data?: any) => Promise<T | null | undefined>;
9
9
  post(endpoint: string, data: Record<string, unknown>): Promise<Record<string, unknown> | null | undefined>;
10
10
  getConfig(): Promise<Config | null | undefined>;
11
+ getKioskConfig(): Promise<KioskConfig | null | undefined>;
11
12
  getStore(): Promise<Store | null | undefined>;
12
13
  getSelectOptions(): Promise<SelectOptions | null | undefined>;
13
14
  getItemTypes(): Promise<ItemTypes | null | undefined>;
@@ -92,6 +92,9 @@ var PosAPI = /** @class */ (function () {
92
92
  PosAPI.prototype.getConfig = function () {
93
93
  return this.request("/config");
94
94
  };
95
+ PosAPI.prototype.getKioskConfig = function () {
96
+ return this.request("/config-kiosk");
97
+ };
95
98
  PosAPI.prototype.getStore = function () {
96
99
  return this.request("/store");
97
100
  };