@fctc/widget-logic 1.0.11 → 1.1.1

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/action.js CHANGED
@@ -27,7 +27,7 @@ __export(action_exports, {
27
27
  });
28
28
  module.exports = __toCommonJS(action_exports);
29
29
 
30
- // src/action/use-archieve-row.tsx
30
+ // src/action/use-archieve-row.ts
31
31
  var import_interface_logic = require("@fctc/interface-logic");
32
32
  var useArchieveHandler = ({
33
33
  data,
@@ -54,7 +54,7 @@ var useArchieveHandler = ({
54
54
  return handleDuplicateRecord;
55
55
  };
56
56
 
57
- // src/action/use-duplicate-row.tsx
57
+ // src/action/use-duplicate-row.ts
58
58
  var import_interface_logic2 = require("@fctc/interface-logic");
59
59
  var useDuplicateRowHandler = ({
60
60
  data,
@@ -80,7 +80,7 @@ var useDuplicateRowHandler = ({
80
80
  return handleDuplicateRecord;
81
81
  };
82
82
 
83
- // src/action/use-get-field-export.tsx
83
+ // src/action/use-get-field-export.ts
84
84
  var import_interface_logic3 = require("@fctc/interface-logic");
85
85
  var useGetFieldExportHandler = ({
86
86
  data,
@@ -113,7 +113,7 @@ var useGetFieldExportHandler = ({
113
113
  return handleGetFieldExport;
114
114
  };
115
115
 
116
- // src/action/use-export-excel.tsx
116
+ // src/action/use-export-excel.ts
117
117
  var import_interface_logic4 = require("@fctc/interface-logic");
118
118
  var useExportExcelHandler = ({
119
119
  data,
package/dist/action.mjs CHANGED
@@ -1,4 +1,4 @@
1
- // src/action/use-archieve-row.tsx
1
+ // src/action/use-archieve-row.ts
2
2
  import { useButton } from "@fctc/interface-logic";
3
3
  var useArchieveHandler = ({
4
4
  data,
@@ -25,7 +25,7 @@ var useArchieveHandler = ({
25
25
  return handleDuplicateRecord;
26
26
  };
27
27
 
28
- // src/action/use-duplicate-row.tsx
28
+ // src/action/use-duplicate-row.ts
29
29
  import { useDuplicateRecord } from "@fctc/interface-logic";
30
30
  var useDuplicateRowHandler = ({
31
31
  data,
@@ -51,7 +51,7 @@ var useDuplicateRowHandler = ({
51
51
  return handleDuplicateRecord;
52
52
  };
53
53
 
54
- // src/action/use-get-field-export.tsx
54
+ // src/action/use-get-field-export.ts
55
55
  import { useGetFieldExport } from "@fctc/interface-logic";
56
56
  var useGetFieldExportHandler = ({
57
57
  data,
@@ -84,7 +84,7 @@ var useGetFieldExportHandler = ({
84
84
  return handleGetFieldExport;
85
85
  };
86
86
 
87
- // src/action/use-export-excel.tsx
87
+ // src/action/use-export-excel.ts
88
88
  import { evalJSONDomain, useExportExcel } from "@fctc/interface-logic";
89
89
  var useExportExcelHandler = ({
90
90
  data,
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+
3
+ declare const DEFAULT_EVENTS: readonly ["mousedown", "touchstart"];
4
+ type EventType = (typeof DEFAULT_EVENTS)[number];
5
+ interface UseClickOutsideOptions {
6
+ handler: (event?: Event) => void;
7
+ events?: readonly EventType[];
8
+ nodes?: (HTMLDivElement | null)[];
9
+ refs?: any;
10
+ }
11
+ declare const useClickOutside: ({ handler, events, nodes, refs, }: UseClickOutsideOptions) => RefObject<HTMLDivElement | null>;
12
+
13
+ export { useClickOutside };
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+
3
+ declare const DEFAULT_EVENTS: readonly ["mousedown", "touchstart"];
4
+ type EventType = (typeof DEFAULT_EVENTS)[number];
5
+ interface UseClickOutsideOptions {
6
+ handler: (event?: Event) => void;
7
+ events?: readonly EventType[];
8
+ nodes?: (HTMLDivElement | null)[];
9
+ refs?: any;
10
+ }
11
+ declare const useClickOutside: ({ handler, events, nodes, refs, }: UseClickOutsideOptions) => RefObject<HTMLDivElement | null>;
12
+
13
+ export { useClickOutside };
package/dist/common.js ADDED
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/common.ts
21
+ var common_exports = {};
22
+ __export(common_exports, {
23
+ useClickOutside: () => useClickOutside
24
+ });
25
+ module.exports = __toCommonJS(common_exports);
26
+
27
+ // src/common/use-click-outside.ts
28
+ var import_react = require("react");
29
+ var DEFAULT_EVENTS = ["mousedown", "touchstart"];
30
+ var useClickOutside = ({
31
+ handler,
32
+ events = DEFAULT_EVENTS,
33
+ nodes = [],
34
+ refs
35
+ }) => {
36
+ const ref = (0, import_react.useRef)(null);
37
+ (0, import_react.useEffect)(() => {
38
+ const listener = (event) => {
39
+ const { target } = event;
40
+ if (refs && refs?.length > 0 && refs?.some((r) => r.current?.contains(target))) {
41
+ return;
42
+ }
43
+ if (!(target instanceof HTMLElement)) return;
44
+ const shouldIgnore = target.hasAttribute("data-ignore-outside-clicks") || !document.body.contains(target) && target.tagName !== "HTML";
45
+ const shouldTrigger = nodes.length > 0 ? nodes.every((node) => node && !event.composedPath().includes(node)) : ref.current && !ref.current.contains(target);
46
+ if (shouldTrigger && !shouldIgnore) {
47
+ handler(event);
48
+ }
49
+ };
50
+ events.forEach((event) => document.addEventListener(event, listener));
51
+ return () => {
52
+ events.forEach((event) => document.removeEventListener(event, listener));
53
+ };
54
+ }, [handler, nodes, events]);
55
+ return ref;
56
+ };
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ useClickOutside
60
+ });
@@ -0,0 +1,33 @@
1
+ // src/common/use-click-outside.ts
2
+ import { useEffect, useRef } from "react";
3
+ var DEFAULT_EVENTS = ["mousedown", "touchstart"];
4
+ var useClickOutside = ({
5
+ handler,
6
+ events = DEFAULT_EVENTS,
7
+ nodes = [],
8
+ refs
9
+ }) => {
10
+ const ref = useRef(null);
11
+ useEffect(() => {
12
+ const listener = (event) => {
13
+ const { target } = event;
14
+ if (refs && refs?.length > 0 && refs?.some((r) => r.current?.contains(target))) {
15
+ return;
16
+ }
17
+ if (!(target instanceof HTMLElement)) return;
18
+ const shouldIgnore = target.hasAttribute("data-ignore-outside-clicks") || !document.body.contains(target) && target.tagName !== "HTML";
19
+ const shouldTrigger = nodes.length > 0 ? nodes.every((node) => node && !event.composedPath().includes(node)) : ref.current && !ref.current.contains(target);
20
+ if (shouldTrigger && !shouldIgnore) {
21
+ handler(event);
22
+ }
23
+ };
24
+ events.forEach((event) => document.addEventListener(event, listener));
25
+ return () => {
26
+ events.forEach((event) => document.removeEventListener(event, listener));
27
+ };
28
+ }, [handler, nodes, events]);
29
+ return ref;
30
+ };
31
+ export {
32
+ useClickOutside
33
+ };
package/dist/form.d.mts CHANGED
@@ -3,22 +3,23 @@ interface UseSaveFormProps$1 {
3
3
  context: any;
4
4
  model: string;
5
5
  specification: any;
6
- id: any;
7
- nameField: any;
8
- object: any;
6
+ ids: any;
7
+ nameField?: any;
8
+ object?: any;
9
9
  };
10
10
  onSuccess?: (res: any) => void;
11
11
  onError?: (err: any) => void;
12
12
  onSettled?: (err: any) => void;
13
13
  }
14
- declare const UseOnChangeFormHandler: ({ data, onSuccess, onError, onSettled, }: UseSaveFormProps$1) => () => void;
14
+ declare const UseOnChangeFormHandler: ({ data, onSuccess, onError, onSettled, }: UseSaveFormProps$1) => Promise<any>;
15
15
 
16
16
  interface UseSaveFormProps {
17
17
  data: {
18
18
  context: any;
19
19
  model: string;
20
- specification: any;
21
- id: number | string;
20
+ specification?: any;
21
+ ids: any;
22
+ records: any;
22
23
  };
23
24
  onSuccess?: (res: any) => void;
24
25
  onError?: (err: any) => void;
package/dist/form.d.ts CHANGED
@@ -3,22 +3,23 @@ interface UseSaveFormProps$1 {
3
3
  context: any;
4
4
  model: string;
5
5
  specification: any;
6
- id: any;
7
- nameField: any;
8
- object: any;
6
+ ids: any;
7
+ nameField?: any;
8
+ object?: any;
9
9
  };
10
10
  onSuccess?: (res: any) => void;
11
11
  onError?: (err: any) => void;
12
12
  onSettled?: (err: any) => void;
13
13
  }
14
- declare const UseOnChangeFormHandler: ({ data, onSuccess, onError, onSettled, }: UseSaveFormProps$1) => () => void;
14
+ declare const UseOnChangeFormHandler: ({ data, onSuccess, onError, onSettled, }: UseSaveFormProps$1) => Promise<any>;
15
15
 
16
16
  interface UseSaveFormProps {
17
17
  data: {
18
18
  context: any;
19
19
  model: string;
20
- specification: any;
21
- id: number | string;
20
+ specification?: any;
21
+ ids: any;
22
+ records: any;
22
23
  };
23
24
  onSuccess?: (res: any) => void;
24
25
  onError?: (err: any) => void;
package/dist/form.js CHANGED
@@ -26,7 +26,7 @@ __export(form_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(form_exports);
28
28
 
29
- // src/widget/form/use-on-change-form.tsx
29
+ // src/widget/form/use-on-change-form.ts
30
30
  var import_interface_logic = require("@fctc/interface-logic");
31
31
  var UseOnChangeFormHandler = ({
32
32
  data,
@@ -35,27 +35,32 @@ var UseOnChangeFormHandler = ({
35
35
  onSettled
36
36
  }) => {
37
37
  const fetchOnchange = (0, import_interface_logic.useOnChangeForm)();
38
- const handleOnChangeForm = () => {
38
+ return new Promise((resolve, reject) => {
39
39
  fetchOnchange.mutate(
40
40
  {
41
- ids: data.id ? data.id : [],
41
+ ids: data.ids ? data.ids : [],
42
42
  model: data.model,
43
43
  specification: data.specification,
44
44
  context: data.context,
45
45
  object: data.object,
46
- fieldChange: [data.nameField]
46
+ fieldChange: data.nameField
47
47
  },
48
48
  {
49
- onSuccess,
50
- onError,
49
+ onSuccess: (res) => {
50
+ onSuccess?.(res);
51
+ resolve(res);
52
+ },
53
+ onError: (err) => {
54
+ onError?.(err);
55
+ reject(err);
56
+ },
51
57
  onSettled
52
58
  }
53
59
  );
54
- };
55
- return handleOnChangeForm;
60
+ });
56
61
  };
57
62
 
58
- // src/widget/form/use-save-form.tsx
63
+ // src/widget/form/use-save-form.ts
59
64
  var import_interface_logic2 = require("@fctc/interface-logic");
60
65
  var useSaveFormHandler = ({
61
66
  data,
@@ -67,9 +72,9 @@ var useSaveFormHandler = ({
67
72
  const handleSaveForm = () => {
68
73
  fetchSave.mutate(
69
74
  {
70
- ids: data.id ? [data.id] : [],
75
+ ids: data.ids ? [data.ids] : [],
71
76
  model: data.model,
72
- data,
77
+ data: data.records,
73
78
  specification: data.specification,
74
79
  context: data.context
75
80
  },
@@ -83,7 +88,7 @@ var useSaveFormHandler = ({
83
88
  return handleSaveForm;
84
89
  };
85
90
 
86
- // src/widget/form/use-remove-row.tsx
91
+ // src/widget/form/use-remove-row.ts
87
92
  var import_interface_logic3 = require("@fctc/interface-logic");
88
93
  var useRemoveRowHandler = ({
89
94
  data,
package/dist/form.mjs CHANGED
@@ -1,4 +1,4 @@
1
- // src/widget/form/use-on-change-form.tsx
1
+ // src/widget/form/use-on-change-form.ts
2
2
  import { useOnChangeForm } from "@fctc/interface-logic";
3
3
  var UseOnChangeFormHandler = ({
4
4
  data,
@@ -7,27 +7,32 @@ var UseOnChangeFormHandler = ({
7
7
  onSettled
8
8
  }) => {
9
9
  const fetchOnchange = useOnChangeForm();
10
- const handleOnChangeForm = () => {
10
+ return new Promise((resolve, reject) => {
11
11
  fetchOnchange.mutate(
12
12
  {
13
- ids: data.id ? data.id : [],
13
+ ids: data.ids ? data.ids : [],
14
14
  model: data.model,
15
15
  specification: data.specification,
16
16
  context: data.context,
17
17
  object: data.object,
18
- fieldChange: [data.nameField]
18
+ fieldChange: data.nameField
19
19
  },
20
20
  {
21
- onSuccess,
22
- onError,
21
+ onSuccess: (res) => {
22
+ onSuccess?.(res);
23
+ resolve(res);
24
+ },
25
+ onError: (err) => {
26
+ onError?.(err);
27
+ reject(err);
28
+ },
23
29
  onSettled
24
30
  }
25
31
  );
26
- };
27
- return handleOnChangeForm;
32
+ });
28
33
  };
29
34
 
30
- // src/widget/form/use-save-form.tsx
35
+ // src/widget/form/use-save-form.ts
31
36
  import { useSave } from "@fctc/interface-logic";
32
37
  var useSaveFormHandler = ({
33
38
  data,
@@ -39,9 +44,9 @@ var useSaveFormHandler = ({
39
44
  const handleSaveForm = () => {
40
45
  fetchSave.mutate(
41
46
  {
42
- ids: data.id ? [data.id] : [],
47
+ ids: data.ids ? [data.ids] : [],
43
48
  model: data.model,
44
- data,
49
+ data: data.records,
45
50
  specification: data.specification,
46
51
  context: data.context
47
52
  },
@@ -55,7 +60,7 @@ var useSaveFormHandler = ({
55
60
  return handleSaveForm;
56
61
  };
57
62
 
58
- // src/widget/form/use-remove-row.tsx
63
+ // src/widget/form/use-remove-row.ts
59
64
  import { useRemoveRow } from "@fctc/interface-logic";
60
65
  var useRemoveRowHandler = ({
61
66
  data,
package/dist/index.d.mts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { useArchieveHandler, useDuplicateRowHandler, useExportExcelHandler, useGetFieldExportHandler } from './action.mjs';
2
2
  export { UseOnChangeFormHandler, useRemoveRowHandler, useSaveFormHandler } from './form.mjs';
3
3
  export { useTableHandler } from './table.mjs';
4
+ export { useClickOutside } from './common.mjs';
5
+ import 'react';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { useArchieveHandler, useDuplicateRowHandler, useExportExcelHandler, useGetFieldExportHandler } from './action.js';
2
2
  export { UseOnChangeFormHandler, useRemoveRowHandler, useSaveFormHandler } from './form.js';
3
3
  export { useTableHandler } from './table.js';
4
+ export { useClickOutside } from './common.js';
5
+ import 'react';