@7365admin1/layer-common 3.2.1-staging.72 → 3.2.2

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 (45) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/components/EntryPassInformation.vue +4 -4
  3. package/components/FeedbackMain.vue +7 -7
  4. package/components/HidAccessLogDashboard.vue +44 -119
  5. package/components/HidIdentityMapping.vue +975 -0
  6. package/components/HidIntercomManagement.vue +201 -808
  7. package/components/HidQrCodeConfiguration.vue +95 -907
  8. package/components/HidServiceSettingsPanel.vue +1 -20
  9. package/components/HidUserEnrollment.vue +81 -392
  10. package/components/Layout/NavigationDrawer.vue +2 -43
  11. package/components/NavigationItem.vue +0 -9
  12. package/components/Nfc/NFCPatrolRouteMain.vue +7 -52
  13. package/components/OnlineFormConfigurationForm.vue +224 -620
  14. package/components/OnlineFormFill.vue +8 -36
  15. package/components/OnlineFormsConfiguration.vue +2 -6
  16. package/components/QrTemplate/CreditCardLandscape.vue +12 -19
  17. package/components/QrTemplate/PrintDialog.vue +196 -209
  18. package/components/SiteSettings.vue +2 -4
  19. package/components/VisitorForm.vue +78 -201
  20. package/components/VisitorManagement.vue +2 -1
  21. package/composables/useComment.ts +3 -3
  22. package/composables/useHidAmico.ts +0 -127
  23. package/composables/useHidNavigation.ts +7 -0
  24. package/composables/useOnlineFormPages.ts +0 -2
  25. package/composables/useSiteSettings.ts +0 -50
  26. package/composables/useWebUsb.ts +37 -127
  27. package/middleware/member.ts +4 -0
  28. package/package.json +1 -2
  29. package/pages/[org]/[site]/access-mgmt/identity-mapping/index.vue +23 -0
  30. package/pages/[org]/[site]/access-mgmt/intercom/index.vue +1 -1
  31. package/plugins/secure-member.client.ts +56 -21
  32. package/plugins/vuetify.ts +9 -37
  33. package/types/site.d.ts +0 -71
  34. package/.changeset/camera-wall-gated-endpoint.md +0 -47
  35. package/.changeset/camera-wall-plain-english.md +0 -60
  36. package/.changeset/camera-wall-selection-and-guidance.md +0 -65
  37. package/.changeset/dark-primary-contrast.md +0 -39
  38. package/components/CameraWall.vue +0 -1034
  39. package/components/CameraWallTile.vue +0 -818
  40. package/components/HidCameraCaptureDialog.vue +0 -199
  41. package/composables/useSipWebPhone.ts +0 -311
  42. package/utils/camera-wall.test.ts +0 -571
  43. package/utils/camera-wall.ts +0 -926
  44. package/utils/theme.test.ts +0 -201
  45. package/utils/theme.ts +0 -136
@@ -247,40 +247,6 @@
247
247
  {{ resolveText(block.text) }}
248
248
  </p>
249
249
 
250
- <!-- ORDERED LIST -->
251
- <div v-else-if="block.type === 'ordered-list'" class="mb-3">
252
- <div
253
- v-if="block.title"
254
- class="text-body-2 font-weight-bold mb-1"
255
- style="text-decoration: underline; text-underline-offset: 3px"
256
- >{{ block.title }}</div>
257
- <ol style="padding-left: 22px; margin: 0">
258
- <li
259
- v-for="(item, itemIdx) in block.items"
260
- :key="itemIdx"
261
- class="text-body-2 mb-1"
262
- style="line-height: 1.55; color: #333"
263
- >{{ item }}</li>
264
- </ol>
265
- </div>
266
-
267
- <!-- UNORDERED LIST -->
268
- <div v-else-if="block.type === 'unordered-list'" class="mb-3">
269
- <div
270
- v-if="block.title"
271
- class="text-body-2 font-weight-bold mb-1"
272
- style="text-decoration: underline; text-underline-offset: 3px"
273
- >{{ block.title }}</div>
274
- <ul style="padding-left: 22px; margin: 0">
275
- <li
276
- v-for="(item, itemIdx) in block.items"
277
- :key="itemIdx"
278
- class="text-body-2 mb-1"
279
- style="line-height: 1.55; color: #333"
280
- >{{ item }}</li>
281
- </ul>
282
- </div>
283
-
284
250
  <!-- DIVIDER -->
285
251
  <v-divider v-else-if="block.type === 'divider'" class="my-4" />
286
252
 
@@ -467,7 +433,6 @@ const props = defineProps({
467
433
  approvalMode: { type: Boolean, default: false },
468
434
  initialManagementValues: { type: Object as PropType<Record<string, string>>, default: () => ({}) },
469
435
  formType: { type: String, default: "" },
470
- paymentAmount: { type: Number, default: 0 },
471
436
  /** Optional custom submit handler. Receives the collected form values.
472
437
  * If omitted the component submits to /api/online-forms automatically. */
473
438
  submitFn: {
@@ -631,8 +596,15 @@ const submissionStatusColor = computed(() => {
631
596
  }
632
597
  });
633
598
 
599
+ const PAYMENT_REQUIRED_FORM_TYPES = new Set([
600
+ "Application for Electronic Access Card",
601
+ "Application for Booking of BBQ Pit",
602
+ "Application for Moving In/Out & Delivery",
603
+ "Application for Main Entrance RFID Transponder",
604
+ ]);
605
+
634
606
  const requiresPayment = computed(() => {
635
- if (props.paymentAmount <= 0) return false;
607
+ if (!PAYMENT_REQUIRED_FORM_TYPES.has(props.formType)) return false;
636
608
  if (props.formType === "Application for Main Entrance RFID Transponder") {
637
609
  return !!(props.initialValues.reasonLost || props.initialValues.reasonDamaged);
638
610
  }
@@ -88,7 +88,7 @@
88
88
  >
89
89
 
90
90
  <!-- Create Dialog -->
91
- <v-dialog v-model="createDialog" width="720" persistent>
91
+ <v-dialog v-model="createDialog" width="450" persistent>
92
92
  <OnlineFormConfigurationForm
93
93
  mode="add"
94
94
  @cancel="createDialog = false"
@@ -97,7 +97,7 @@
97
97
  </v-dialog>
98
98
 
99
99
  <!-- Edit Dialog -->
100
- <v-dialog v-model="editDialog" width="720" persistent>
100
+ <v-dialog v-model="editDialog" width="450" persistent>
101
101
  <OnlineFormConfigurationForm
102
102
  mode="edit"
103
103
  @cancel="editDialog = false"
@@ -113,7 +113,6 @@
113
113
  :definition="selectedFormDefinition"
114
114
  :site-id="siteId"
115
115
  :org-id="orgId"
116
- :payment-amount="selectedPaymentAmount"
117
116
  readonly
118
117
  @cancel="previewDialog = false"
119
118
  >
@@ -337,9 +336,6 @@ const selectedFormDefinition = ref<any>(null);
337
336
  const deleteLoading = ref(false);
338
337
  const confirmDialog = ref(false);
339
338
  const selectedOnlineFormId = ref<string | null>(null);
340
- const selectedPaymentAmount = computed(() =>
341
- Number(selectedOnlineForm.value?.fields?.paymentAmount ?? 0)
342
- );
343
339
 
344
340
  function parseFieldsToInputs(fields: Record<string, string>): any[] {
345
341
  return Object.keys(fields)
@@ -33,7 +33,7 @@
33
33
 
34
34
  <qrcode-vue
35
35
  v-if="templateQrCode.CCFrontQREnabled"
36
- :value="getPassNumberValue(card.number)"
36
+ :value="`${prefix}0${+printRangeStart + +card.number - 1}`"
37
37
  :size="templateQrCode.CCFrontQRCodeSize"
38
38
  level="H"
39
39
  :style="{
@@ -53,7 +53,9 @@
53
53
  }"
54
54
  class="position-absolute text-center"
55
55
  >
56
- Pass Number: {{ getPassNumberValue(card.number) }}
56
+ Pass Number: {{ prefix }}0{{
57
+ +printRangeStart + +card.number - 1
58
+ }}
57
59
  </div>
58
60
  </v-card>
59
61
 
@@ -72,7 +74,7 @@
72
74
 
73
75
  <qrcode-vue
74
76
  v-if="templateQrCode.CCBackQREnabled"
75
- :value="getPassNumberValue(card.number)"
77
+ :value="`${prefix}0${+printRangeStart + +card.number - 1}`"
76
78
  :size="templateQrCode.CCBackQRCodeSize"
77
79
  level="H"
78
80
  :style="{
@@ -91,7 +93,9 @@
91
93
  }"
92
94
  class="position-absolute text-center"
93
95
  >
94
- Pass Number: {{ getPassNumberValue(card.number) }}
96
+ Pass Number: {{ prefix }}0{{
97
+ +printRangeStart + +card.number - 1
98
+ }}
95
99
  </div>
96
100
  </v-card>
97
101
  </v-col>
@@ -109,22 +113,11 @@ const props = defineProps({
109
113
  paginatedCardData: Array,
110
114
  templateQrCode: Object,
111
115
  prefix: String,
112
- printRangeStart: [String, Number],
116
+ printRangeStart: Number,
117
+ });
118
+ onMounted(() => {
119
+ console.log("templateQrCode 11", props.templateQrCode.CCOrientation);
113
120
  });
114
-
115
- const getPassNumberValue = (position) => {
116
- const rawStartValue = `${props.printRangeStart ?? ""}`.trim();
117
- const startMatch = rawStartValue.match(/(\d+)$/);
118
- const startValue = startMatch?.[1] ?? "0";
119
- const startNumber = Number(startValue);
120
- const sequenceNumber = startNumber + Number(position) - 1;
121
- const cleanPrefix = `${props.prefix ?? ""}`.replace(/\d+$/, "");
122
- const width = startValue.length;
123
- const formattedSequence =
124
- width > 0 ? `${sequenceNumber}`.padStart(width, "0") : `${sequenceNumber}`;
125
-
126
- return `${cleanPrefix}${formattedSequence}`;
127
- };
128
121
  </script>
129
122
 
130
123
  <style scoped>