@7365admin1/layer-common 1.11.51 → 1.11.53

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.
@@ -0,0 +1,71 @@
1
+ export type TFormEntryFields = Record<string | number, string | number | boolean | null>;
2
+
3
+ export type TFormEntryCreate = {
4
+ _id?: string;
5
+ formType: string;
6
+ block?: string;
7
+ level?: string;
8
+ unit?: string;
9
+ name?: string;
10
+ phoneNumber?: string;
11
+ fields: TFormEntryFields;
12
+ status?: string;
13
+ org?: string;
14
+ site?: string;
15
+ createdAt?: string;
16
+ updatedAt?: string | null;
17
+ deletedAt?: string | null;
18
+ };
19
+
20
+ export type TFormEntryUpdate = {
21
+ _id?: string;
22
+ formType: string;
23
+ fields: Record<string, string | number | boolean | null>;
24
+ status?: string;
25
+ updatedAt?: string | null;
26
+ deletedAt?: string | null;
27
+ };
28
+
29
+ export default function useOnlineFormConfiguration() {
30
+ function getAll({
31
+ page = 1,
32
+ search = "",
33
+ limit = 10,
34
+ status = "",
35
+ org = "",
36
+ site = "",
37
+ } = {}) {
38
+ return useNuxtApp().$api<Record<string, any>>("/api/online-form-configurations", {
39
+ method: "GET",
40
+ query: { page, search, limit, status, org, site },
41
+ });
42
+ }
43
+
44
+ function getById(id: string) {
45
+ return useNuxtApp().$api<Record<string, any>>(`/api/online-form-configurations/id/${id}`, {
46
+ method: "GET",
47
+ });
48
+ }
49
+
50
+ function create(value: TFormEntryCreate) {
51
+ return useNuxtApp().$api<Record<string, any>>("/api/online-form-configurations", {
52
+ method: "POST",
53
+ body: value,
54
+ });
55
+ }
56
+
57
+ function updateById(id: string, value: TFormEntryUpdate) {
58
+ return useNuxtApp().$api<Record<string, any>>(`/api/online-form-configurations/id/${id}`, {
59
+ method: "PUT",
60
+ body: value,
61
+ });
62
+ }
63
+
64
+ function deleteById(id: string) {
65
+ return useNuxtApp().$api<Record<string, any>>(`/api/online-form-configurations/id/${id}`, {
66
+ method: "PATCH",
67
+ });
68
+ }
69
+
70
+ return { getAll, getById, create, updateById, deleteById };
71
+ }
@@ -0,0 +1,145 @@
1
+ export type OnlineFormTemplateInput = {
2
+ label: string;
3
+ dataType: string;
4
+ required: boolean;
5
+ multiple: boolean;
6
+ options?: string[];
7
+ };
8
+
9
+ const formTemplates: Record<string, OnlineFormTemplateInput[]> = {
10
+ "Application for Bicycle Parking": [
11
+ { label: "Name", dataType: "Text Input", required: true, multiple: false },
12
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
13
+ { label: "IC/Passport No.", dataType: "Text Input", required: true, multiple: false },
14
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
15
+ { label: "Bicycle Description", dataType: "Text Input", required: true, multiple: false },
16
+ { label: "Bicycle Serial No.", dataType: "Text Input", required: false, multiple: false },
17
+ { label: "Date", dataType: "Date Input", required: true, multiple: false },
18
+ ],
19
+ "Application for Booking of BBQ Pit": [
20
+ { label: "Name", dataType: "Text Input", required: true, multiple: false },
21
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
22
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
23
+ { label: "Date of Booking", dataType: "Date Input", required: true, multiple: false },
24
+ { label: "Time From", dataType: "Text Input", required: true, multiple: false },
25
+ { label: "Time To", dataType: "Text Input", required: true, multiple: false },
26
+ { label: "No. of Pax", dataType: "Text Input", required: true, multiple: false },
27
+ { label: "Remarks", dataType: "Text Area", required: false, multiple: false },
28
+ ],
29
+ "Application for Booking of Rooftop Bar/Dining": [
30
+ { label: "Name", dataType: "Text Input", required: true, multiple: false },
31
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
32
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
33
+ { label: "Date of Booking", dataType: "Date Input", required: true, multiple: false },
34
+ { label: "Time From", dataType: "Text Input", required: true, multiple: false },
35
+ { label: "Time To", dataType: "Text Input", required: true, multiple: false },
36
+ { label: "No. of Pax", dataType: "Text Input", required: true, multiple: false },
37
+ { label: "Remarks", dataType: "Text Area", required: false, multiple: false },
38
+ ],
39
+ "Application for Electronic Access Card": [
40
+ { label: "Name", dataType: "Text Input", required: true, multiple: false },
41
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
42
+ { label: "IC/Passport No.", dataType: "Text Input", required: true, multiple: false },
43
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
44
+ { label: "No. of Cards Required", dataType: "Text Input", required: true, multiple: false },
45
+ { label: "Date", dataType: "Date Input", required: true, multiple: false },
46
+ ],
47
+ "Application for Main Entrance RFID Transponder": [
48
+ { label: "Owner Name", dataType: "Text Input", required: true, multiple: false },
49
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
50
+ { label: "IC/Passport No.", dataType: "Text Input", required: true, multiple: false },
51
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
52
+ { label: "Vehicle No.", dataType: "Text Input", required: true, multiple: false },
53
+ { label: "Vehicle Make/Model", dataType: "Text Input", required: true, multiple: false },
54
+ { label: "No. of Transponders", dataType: "Text Input", required: true, multiple: false },
55
+ { label: "Date", dataType: "Date Input", required: true, multiple: false },
56
+ ],
57
+ "Application for Moving In/Out & Delivery": [
58
+ { label: "Name", dataType: "Text Input", required: true, multiple: false },
59
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
60
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
61
+ { label: "Type", dataType: "Select", required: true, multiple: false, options: ["Moving In", "Moving Out", "Delivery"] },
62
+ { label: "Date", dataType: "Date Input", required: true, multiple: false },
63
+ { label: "Time From", dataType: "Text Input", required: true, multiple: false },
64
+ { label: "Time To", dataType: "Text Input", required: true, multiple: false },
65
+ { label: "Moving Company", dataType: "Text Input", required: false, multiple: false },
66
+ { label: "Remarks", dataType: "Text Area", required: false, multiple: false },
67
+ ],
68
+ "Application for Renovation/Addition & Alteration Works": [
69
+ { label: "Owner/Tenant Name", dataType: "Text Input", required: true, multiple: false },
70
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
71
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
72
+ { label: "Description of Works", dataType: "Text Area", required: true, multiple: false },
73
+ { label: "Contractor Name", dataType: "Text Input", required: true, multiple: false },
74
+ { label: "Contractor Contact No.", dataType: "Text Input", required: true, multiple: false },
75
+ { label: "Commencement Date", dataType: "Date Input", required: true, multiple: false },
76
+ { label: "Completion Date", dataType: "Date Input", required: true, multiple: false },
77
+ { label: "Remarks", dataType: "Text Area", required: false, multiple: false },
78
+ ],
79
+ "Letter of Undertaking & Indemnity": [
80
+ { label: "Owner Name", dataType: "Text Input", required: true, multiple: false },
81
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
82
+ { label: "IC/Passport No.", dataType: "Text Input", required: true, multiple: false },
83
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
84
+ { label: "Purpose of Undertaking", dataType: "Text Area", required: true, multiple: false },
85
+ { label: "Date", dataType: "Date Input", required: true, multiple: false },
86
+ ],
87
+ "Letter of Undertaking by Marketing Agent": [
88
+ { label: "Marketing Agent Name", dataType: "Text Input", required: true, multiple: false },
89
+ { label: "Agency Name", dataType: "Text Input", required: true, multiple: false },
90
+ { label: "CEA Registration No.", dataType: "Text Input", required: true, multiple: false },
91
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
92
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
93
+ { label: "Owner Name", dataType: "Text Input", required: true, multiple: false },
94
+ { label: "Date", dataType: "Date Input", required: true, multiple: false },
95
+ ],
96
+ "Pet's Record Form": [
97
+ { label: "Owner Name", dataType: "Text Input", required: true, multiple: false },
98
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
99
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
100
+ { label: "Pet Name", dataType: "Text Input", required: true, multiple: false },
101
+ { label: "Pet Type", dataType: "Select", required: true, multiple: false, options: ["Dog", "Cat", "Rabbit", "Bird", "Fish", "Others"] },
102
+ { label: "Breed", dataType: "Text Input", required: true, multiple: false },
103
+ { label: "Colour", dataType: "Text Input", required: true, multiple: false },
104
+ { label: "Age", dataType: "Text Input", required: true, multiple: false },
105
+ { label: "Sex", dataType: "Select", required: true, multiple: false, options: ["Male", "Female"] },
106
+ { label: "Microchip No.", dataType: "Text Input", required: false, multiple: false },
107
+ { label: "License No.", dataType: "Text Input", required: false, multiple: false },
108
+ ],
109
+ "Refund of Deposit": [
110
+ { label: "Owner/Tenant Name", dataType: "Text Input", required: true, multiple: false },
111
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
112
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
113
+ { label: "Bank Name", dataType: "Text Input", required: true, multiple: false },
114
+ { label: "Account No.", dataType: "Text Input", required: true, multiple: false },
115
+ { label: "Account Holder Name", dataType: "Text Input", required: true, multiple: false },
116
+ { label: "Deposit Type", dataType: "Select", required: true, multiple: false, options: ["Renovation Deposit", "Access Card Deposit", "Moving Deposit", "Others"] },
117
+ { label: "Remarks", dataType: "Text Area", required: false, multiple: false },
118
+ ],
119
+ "Update of Mailing Address": [
120
+ { label: "Name", dataType: "Text Input", required: true, multiple: false },
121
+ { label: "IC/Passport No.", dataType: "Text Input", required: true, multiple: false },
122
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
123
+ { label: "New Mailing Address", dataType: "Text Area", required: true, multiple: false },
124
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
125
+ { label: "Effective Date", dataType: "Date Input", required: true, multiple: false },
126
+ ],
127
+ "Vehicle Registration Form": [
128
+ { label: "Owner Name", dataType: "Text Input", required: true, multiple: false },
129
+ { label: "Unit No.", dataType: "Text Input", required: true, multiple: false },
130
+ { label: "IC/Passport No.", dataType: "Text Input", required: true, multiple: false },
131
+ { label: "Contact No.", dataType: "Text Input", required: true, multiple: false },
132
+ { label: "Vehicle No.", dataType: "Text Input", required: true, multiple: false },
133
+ { label: "Vehicle Make", dataType: "Text Input", required: true, multiple: false },
134
+ { label: "Vehicle Model", dataType: "Text Input", required: true, multiple: false },
135
+ { label: "Vehicle Colour", dataType: "Text Input", required: true, multiple: false },
136
+ { label: "IU Number", dataType: "Text Input", required: false, multiple: false },
137
+ { label: "Remarks", dataType: "Text Area", required: false, multiple: false },
138
+ ],
139
+ };
140
+
141
+ const templateNames = Object.keys(formTemplates);
142
+
143
+ export default function useOnlineFormTemplates() {
144
+ return { formTemplates, templateNames };
145
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@7365admin1/layer-common",
3
3
  "license": "MIT",
4
4
  "type": "module",
5
- "version": "1.11.51",
5
+ "version": "1.11.53",
6
6
  "author": "7365admin1",
7
7
  "main": "./nuxt.config.ts",
8
8
  "publishConfig": {
@@ -10,6 +10,7 @@ declare type TFacility = {
10
10
  endTime: string;
11
11
  breakTimes: { startTime: string; endTime: string }[];
12
12
  peakTimes: { startTime: string; endTime: string }[];
13
+ timeSlotsManual: { startTime: string; endTime: string }[] | null;
13
14
  };
14
15
  tuesday: {
15
16
  isEnabled: boolean;
@@ -17,6 +18,7 @@ declare type TFacility = {
17
18
  endTime: string;
18
19
  breakTimes: { startTime: string; endTime: string }[];
19
20
  peakTimes: { startTime: string; endTime: string }[];
21
+ timeSlotsManual: { startTime: string; endTime: string }[] | null;
20
22
  };
21
23
  wednesday: {
22
24
  isEnabled: boolean;
@@ -24,6 +26,7 @@ declare type TFacility = {
24
26
  endTime: string;
25
27
  breakTimes: { startTime: string; endTime: string }[];
26
28
  peakTimes: { startTime: string; endTime: string }[];
29
+ timeSlotsManual: { startTime: string; endTime: string }[] | null;
27
30
  };
28
31
  thursday: {
29
32
  isEnabled: boolean;
@@ -31,6 +34,7 @@ declare type TFacility = {
31
34
  endTime: string;
32
35
  breakTimes: { startTime: string; endTime: string }[];
33
36
  peakTimes: { startTime: string; endTime: string }[];
37
+ timeSlotsManual: { startTime: string; endTime: string }[] | null;
34
38
  };
35
39
  friday: {
36
40
  isEnabled: boolean;
@@ -38,6 +42,7 @@ declare type TFacility = {
38
42
  endTime: string;
39
43
  breakTimes: { startTime: string; endTime: string }[];
40
44
  peakTimes: { startTime: string; endTime: string }[];
45
+ timeSlotsManual: { startTime: string; endTime: string }[] | null;
41
46
  };
42
47
  saturday: {
43
48
  isEnabled: boolean;
@@ -45,6 +50,7 @@ declare type TFacility = {
45
50
  endTime: string;
46
51
  breakTimes: { startTime: string; endTime: string }[];
47
52
  peakTimes: { startTime: string; endTime: string }[];
53
+ timeSlotsManual: { startTime: string; endTime: string }[] | null;
48
54
  };
49
55
  sunday: {
50
56
  isEnabled: boolean;
@@ -52,6 +58,7 @@ declare type TFacility = {
52
58
  endTime: string;
53
59
  breakTimes: { startTime: string; endTime: string }[];
54
60
  peakTimes: { startTime: string; endTime: string }[];
61
+ timeSlotsManual: { startTime: string; endTime: string }[] | null;
55
62
  };
56
63
  description: string;
57
64
  about: string;
@@ -85,6 +92,12 @@ declare type TFacility = {
85
92
  count: number;
86
93
  permanentRemarks: string;
87
94
  }[];
95
+ isBookingUnitLimitEnabled: boolean;
96
+ bookingUnitLimit: number | null;
97
+ isMaxNumberGuestLimitEnabled: boolean;
98
+ maxNumberGuestLimit: number | null;
99
+ isCancelAllowedLimitEnabled: boolean;
100
+ daysAllowedCancel: number | null;
88
101
  isBookingPolicyEnabled: boolean;
89
102
  updatedBy?: string;
90
103
  };