@goweekdays/layer-common 1.6.2 → 1.6.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @goweekdays/layer-common
2
2
 
3
+ ## 1.6.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 552b4e8: Add customer composable, types and proxy
8
+
9
+ ## 1.6.3
10
+
11
+ ### Patch Changes
12
+
13
+ - e3ff9c3: Fix input currency component
14
+
3
15
  ## 1.6.2
4
16
 
5
17
  ### Patch Changes
@@ -37,22 +37,58 @@ const format = () => {
37
37
  };
38
38
 
39
39
  function onInput(val: string) {
40
- if (!/^[0-9,]*$/.test(val)) return;
41
- model.value = parse(val);
42
- display.value = val;
40
+ // Filter out any non-numeric characters except commas
41
+ const filtered = val.replace(/[^0-9,]/g, "");
42
+ model.value = parse(filtered);
43
+ display.value = filtered;
43
44
  }
44
45
 
45
46
  function onKeydown(e: KeyboardEvent) {
47
+ // Allow: backspace, delete, tab, escape, enter, arrows, home, end
48
+ const allowedKeys = [
49
+ "Backspace",
50
+ "Delete",
51
+ "Tab",
52
+ "Escape",
53
+ "Enter",
54
+ "ArrowLeft",
55
+ "ArrowRight",
56
+ "ArrowUp",
57
+ "ArrowDown",
58
+ "Home",
59
+ "End",
60
+ ];
61
+
62
+ // Allow: Ctrl/Cmd+A, Ctrl/Cmd+C, Ctrl/Cmd+V, Ctrl/Cmd+X
63
+ if (
64
+ (e.ctrlKey || e.metaKey) &&
65
+ ["a", "c", "v", "x"].includes(e.key.toLowerCase())
66
+ ) {
67
+ return;
68
+ }
69
+
46
70
  if (e.key === "ArrowUp") {
47
71
  e.preventDefault();
48
72
  model.value += localProps.step;
49
73
  format();
74
+ return;
50
75
  }
51
76
 
52
77
  if (e.key === "ArrowDown") {
53
78
  e.preventDefault();
54
79
  model.value = Math.max(0, model.value - localProps.step);
55
80
  format();
81
+ return;
82
+ }
83
+
84
+ // Allow navigation and control keys
85
+ if (allowedKeys.includes(e.key)) {
86
+ return;
87
+ }
88
+
89
+ // Block if not a number or comma
90
+ if (!/^[0-9,]$/.test(e.key)) {
91
+ e.preventDefault();
56
92
  }
57
93
  }
58
94
 
@@ -0,0 +1,72 @@
1
+ export default function useCustomer() {
2
+ const customer = ref<TCustomer>({
3
+ _id: "",
4
+ firstName: "",
5
+ lastName: "",
6
+ middleName: "",
7
+ email: "",
8
+ contractNumber: "",
9
+ phoneNumber: "",
10
+ address: {
11
+ street: "",
12
+ cityMunicipality: "",
13
+ postalCode: "",
14
+ country: "",
15
+ },
16
+ org: "",
17
+ });
18
+
19
+ const api = useNuxtApp().$api.create({
20
+ baseURL: "/api/customers/org",
21
+ });
22
+
23
+ function add(org: string, value: Omit<TCustomer, "org">) {
24
+ return api(`/${org}`, {
25
+ method: "POST",
26
+ body: value,
27
+ });
28
+ }
29
+
30
+ function getAll(
31
+ org: string,
32
+ { page = 1, limit = 10, search = "", status = "active" } = {}
33
+ ) {
34
+ return api<Record<string, any>>(`/${org}`, {
35
+ method: "GET",
36
+ params: {
37
+ page,
38
+ limit,
39
+ search,
40
+ status,
41
+ },
42
+ });
43
+ }
44
+
45
+ function getById(org: string, id: string) {
46
+ return api<TCustomer>(`/${org}/id/${id}`, {
47
+ method: "GET",
48
+ });
49
+ }
50
+
51
+ function updateById(org: string, id: string, value: Partial<TCustomer>) {
52
+ return api(`/${org}/id/${id}`, {
53
+ method: "PATCH",
54
+ body: value,
55
+ });
56
+ }
57
+
58
+ function deleteById(org: string, id: string) {
59
+ return api(`/${org}/id/${id}`, {
60
+ method: "DELETE",
61
+ });
62
+ }
63
+
64
+ return {
65
+ customer,
66
+ add,
67
+ getAll,
68
+ getById,
69
+ updateById,
70
+ deleteById,
71
+ };
72
+ }
package/nuxt.config.ts CHANGED
@@ -86,6 +86,7 @@ export default defineNuxtConfig({
86
86
  },
87
87
  "/api/job/posts/**": { proxy: `${process.env.API_CORE}/api/job/posts/**` },
88
88
  "/api/finance/**": { proxy: `${process.env.API_CORE}/api/finance/**` },
89
+ "/api/customers/**": { proxy: `${process.env.API_CORE}/api/customers/**` },
89
90
  },
90
91
 
91
92
  vite: {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@goweekdays/layer-common",
3
3
  "license": "MIT",
4
4
  "type": "module",
5
- "version": "1.6.2",
5
+ "version": "1.6.4",
6
6
  "main": "./nuxt.config.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
@@ -0,0 +1,18 @@
1
+ declare type TCustomer = {
2
+ _id?: string;
3
+ firstName: string;
4
+ lastName: string;
5
+ middleName?: string;
6
+ email?: string;
7
+ contractNumber?: string;
8
+ phoneNumber?: string;
9
+ address?: {
10
+ street: string;
11
+ cityMunicipality: string;
12
+ postalCode: string;
13
+ country: string;
14
+ };
15
+ org?: string;
16
+ createdAt?: string;
17
+ updatedAt?: string;
18
+ };