pukaad-ui-lib 1.459.0 → 1.461.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.
- package/dist/module.json +1 -1
- package/dist/runtime/assets/json/social-icon.json +76 -76
- package/dist/runtime/assets/svg/bell-outline.svg +3 -3
- package/dist/runtime/assets/svg/bookmark-solid.svg +2 -2
- package/dist/runtime/assets/svg/box.svg +22 -22
- package/dist/runtime/assets/svg/camera-plus.svg +9 -9
- package/dist/runtime/assets/svg/clock-fading.svg +46 -46
- package/dist/runtime/assets/svg/coin.svg +20 -20
- package/dist/runtime/assets/svg/empty-document.svg +15 -15
- package/dist/runtime/assets/svg/file-jpg.svg +14 -14
- package/dist/runtime/assets/svg/file-pdf.svg +13 -13
- package/dist/runtime/assets/svg/flags/cn.svg +15 -15
- package/dist/runtime/assets/svg/flags/th.svg +12 -12
- package/dist/runtime/assets/svg/flags/uk.svg +14 -14
- package/dist/runtime/assets/svg/heart-fill.svg +2 -2
- package/dist/runtime/assets/svg/id-card-example-1.svg +18 -18
- package/dist/runtime/assets/svg/id-card-example.svg +9 -9
- package/dist/runtime/assets/svg/id-card-guideline.svg +7 -7
- package/dist/runtime/assets/svg/id-card-selfie-guideline.svg +15 -15
- package/dist/runtime/assets/svg/map-location-dot.svg +9 -9
- package/dist/runtime/assets/svg/map-pin.svg +6 -6
- package/dist/runtime/assets/svg/memsg-circle.svg +7 -7
- package/dist/runtime/assets/svg/memsg-fade.svg +5 -5
- package/dist/runtime/assets/svg/memsg-logo-outline.svg +3 -3
- package/dist/runtime/assets/svg/memsg-square.svg +9 -9
- package/dist/runtime/assets/svg/message.svg +3 -3
- package/dist/runtime/assets/svg/page-not-found.svg +9 -9
- package/dist/runtime/assets/svg/passport-example.svg +26 -26
- package/dist/runtime/assets/svg/passport-guideline.svg +6 -6
- package/dist/runtime/assets/svg/share-from-square.svg +3 -3
- package/dist/runtime/assets/svg/share.svg +2 -2
- package/dist/runtime/assets/svg/shopping-cart.svg +16 -16
- package/dist/runtime/assets/svg/socials/Email.svg +12 -12
- package/dist/runtime/assets/svg/socials/Facebook.svg +4 -4
- package/dist/runtime/assets/svg/socials/Instagram.svg +14 -14
- package/dist/runtime/assets/svg/socials/Line.svg +11 -11
- package/dist/runtime/assets/svg/socials/LinkedIn.svg +5 -5
- package/dist/runtime/assets/svg/socials/Pinterest.svg +4 -4
- package/dist/runtime/assets/svg/socials/SnapChat.svg +5 -5
- package/dist/runtime/assets/svg/socials/Threads.svg +12 -12
- package/dist/runtime/assets/svg/socials/TikTok.svg +6 -6
- package/dist/runtime/assets/svg/socials/Tumblr.svg +4 -4
- package/dist/runtime/assets/svg/socials/Website.svg +11 -11
- package/dist/runtime/assets/svg/socials/WhatsApp.svg +5 -5
- package/dist/runtime/assets/svg/socials/X.svg +4 -4
- package/dist/runtime/assets/svg/socials/YouTube.svg +5 -5
- package/dist/runtime/assets/svg/tag-empty.svg +25 -25
- package/dist/runtime/assets/svg/thumbs-up-regular.svg +9 -9
- package/dist/runtime/assets/svg/thumbs-up-solid.svg +2 -2
- package/dist/runtime/assets/svg/vector.svg +2 -2
- package/dist/runtime/assets/svg/verify.svg +10 -10
- package/dist/runtime/assets/svg/write-review.svg +15 -15
- package/dist/runtime/components/avatar-profile.vue +29 -29
- package/dist/runtime/components/avatar.vue +20 -20
- package/dist/runtime/components/badge/badge-count.vue +17 -17
- package/dist/runtime/components/button.vue +18 -18
- package/dist/runtime/components/card/card-blog.vue +47 -47
- package/dist/runtime/components/card/card-color-post-it.d.vue.ts +10 -0
- package/dist/runtime/components/card/card-color-post-it.vue +46 -0
- package/dist/runtime/components/card/card-color-post-it.vue.d.ts +10 -0
- package/dist/runtime/components/card/card-content/card-content-close.vue +9 -9
- package/dist/runtime/components/card/card-content/card-content-disable.vue +3 -3
- package/dist/runtime/components/card/card-content/card-content-image.vue +21 -21
- package/dist/runtime/components/card/card-content/card-content-menu.vue +14 -14
- package/dist/runtime/components/card/card-content/card-content-post-it.vue +21 -21
- package/dist/runtime/components/card/card-content/card-content-recommend.vue +32 -32
- package/dist/runtime/components/card/card-content/card-content-select.vue +9 -9
- package/dist/runtime/components/card/card-content/card-content-time.vue +7 -7
- package/dist/runtime/components/card/card-content/card-content-video.vue +25 -25
- package/dist/runtime/components/card/card-content/card-content.vue +46 -46
- package/dist/runtime/components/card/card-file.vue +35 -35
- package/dist/runtime/components/card/card-mention/card-mention-skeleton.vue +14 -14
- package/dist/runtime/components/card/card-mention/card-mention.d.vue.ts +3 -1
- package/dist/runtime/components/card/card-mention/card-mention.vue +81 -80
- package/dist/runtime/components/card/card-mention/card-mention.vue.d.ts +3 -1
- package/dist/runtime/components/card/card-opening-hours.vue +50 -50
- package/dist/runtime/components/card/card-place/card-place-detail.vue +95 -95
- package/dist/runtime/components/card/card-place/card-place-item.vue +53 -53
- package/dist/runtime/components/card/card-place/card-place-search-row.vue +38 -38
- package/dist/runtime/components/card/card-place/card-place.vue +42 -42
- package/dist/runtime/components/card/card-profile/card-profile-about.vue +81 -81
- package/dist/runtime/components/card/card-profile/card-profile-header.vue +94 -94
- package/dist/runtime/components/card/card-reaction.vue +23 -23
- package/dist/runtime/components/card/card-recommend/card-recommend-blog.vue +42 -42
- package/dist/runtime/components/card/card-recommend/card-recommend-place.vue +56 -56
- package/dist/runtime/components/card/card-recommend/card-recommend-profile.vue +47 -47
- package/dist/runtime/components/card/card-refer.vue +86 -86
- package/dist/runtime/components/card/card-review.vue +136 -136
- package/dist/runtime/components/card/card-spotlight.vue +18 -18
- package/dist/runtime/components/card/card-user/card-user-blog.vue +76 -76
- package/dist/runtime/components/card/card-user/card-user-item.vue +24 -24
- package/dist/runtime/components/card/card.vue +29 -29
- package/dist/runtime/components/carousel.vue +31 -31
- package/dist/runtime/components/chart/chart-approval-activity.vue +68 -68
- package/dist/runtime/components/chat/chat-conversation-item-skeleton.vue +7 -7
- package/dist/runtime/components/chat/chat-conversation-item.vue +46 -46
- package/dist/runtime/components/chat/chat-conversation-list.vue +26 -26
- package/dist/runtime/components/chat/chat-media-grid.vue +50 -50
- package/dist/runtime/components/chat/chat-media-viewer.vue +25 -25
- package/dist/runtime/components/chat/chat-message-bubble.d.vue.ts +3 -1
- package/dist/runtime/components/chat/chat-message-bubble.vue +113 -99
- package/dist/runtime/components/chat/chat-message-bubble.vue.d.ts +3 -1
- package/dist/runtime/components/chat/chat-room.d.vue.ts +6 -1
- package/dist/runtime/components/chat/chat-room.vue +147 -128
- package/dist/runtime/components/chat/chat-room.vue.d.ts +6 -1
- package/dist/runtime/components/chat/chat-welcome.vue +6 -6
- package/dist/runtime/components/chip.vue +10 -10
- package/dist/runtime/components/collapse/collapse-multiple.vue +42 -42
- package/dist/runtime/components/collapse/collapse.vue +23 -23
- package/dist/runtime/components/comment.vue +134 -134
- package/dist/runtime/components/data-table.vue +140 -140
- package/dist/runtime/components/display/display-image-place.vue +231 -231
- package/dist/runtime/components/display/display-image-review.vue +10 -10
- package/dist/runtime/components/display/display-image.vue +49 -49
- package/dist/runtime/components/display/display-rating-summary.vue +53 -53
- package/dist/runtime/components/display/display-video.vue +146 -146
- package/dist/runtime/components/divider.vue +8 -8
- package/dist/runtime/components/draggable.vue +15 -15
- package/dist/runtime/components/drawer/drawer-notification.vue +105 -105
- package/dist/runtime/components/drawer/drawer-post-blog.vue +70 -70
- package/dist/runtime/components/drawer/drawer-post-content.vue +156 -156
- package/dist/runtime/components/drawer/drawer-post-review.vue +77 -77
- package/dist/runtime/components/drawer/drawer-profile-about.vue +52 -52
- package/dist/runtime/components/drawer/drawer-profile-network.vue +241 -241
- package/dist/runtime/components/drawer/drawer-suggest-place/drawer-suggest-place.vue +112 -112
- package/dist/runtime/components/drawer/drawer-suggest-place/suggest-place-form.vue +150 -150
- package/dist/runtime/components/drawer/drawer-suggest-place/suggest-place-map.vue +3 -3
- package/dist/runtime/components/drawer/drawer.vue +24 -24
- package/dist/runtime/components/dropdown.vue +8 -8
- package/dist/runtime/components/filter/filter-list-chip.vue +10 -10
- package/dist/runtime/components/filter/filter-list.vue +17 -17
- package/dist/runtime/components/google-translate.client.vue +1 -1
- package/dist/runtime/components/icons.vue +1 -1
- package/dist/runtime/components/image/image-cropper.d.vue.ts +1 -1
- package/dist/runtime/components/image/image-cropper.vue +9 -9
- package/dist/runtime/components/image/image-cropper.vue.d.ts +1 -1
- package/dist/runtime/components/image/image.vue +27 -27
- package/dist/runtime/components/input/input-OTP.vue +27 -27
- package/dist/runtime/components/input/input-address.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-address.vue +154 -154
- package/dist/runtime/components/input/input-address.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-autocomplete.vue +101 -101
- package/dist/runtime/components/input/input-birth-date.vue +20 -20
- package/dist/runtime/components/input/input-chat.d.vue.ts +3 -1
- package/dist/runtime/components/input/input-chat.vue +97 -92
- package/dist/runtime/components/input/input-chat.vue.d.ts +3 -1
- package/dist/runtime/components/input/input-checkbox.vue +24 -24
- package/dist/runtime/components/input/input-combobox.vue +112 -112
- package/dist/runtime/components/input/input-comment.vue +45 -45
- package/dist/runtime/components/input/input-content.vue +32 -32
- package/dist/runtime/components/input/input-date-opening-special.vue +126 -126
- package/dist/runtime/components/input/input-date-opening.vue +96 -96
- package/dist/runtime/components/input/input-date-picker.vue +113 -113
- package/dist/runtime/components/input/input-email.vue +9 -9
- package/dist/runtime/components/input/input-file.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-file.vue +149 -149
- package/dist/runtime/components/input/input-file.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-id-card.vue +54 -54
- package/dist/runtime/components/input/input-link.vue +25 -25
- package/dist/runtime/components/input/input-localized-name.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-localized-name.vue +26 -26
- package/dist/runtime/components/input/input-localized-name.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-mention.d.vue.ts +1 -0
- package/dist/runtime/components/input/input-mention.vue +113 -126
- package/dist/runtime/components/input/input-mention.vue.d.ts +1 -0
- package/dist/runtime/components/input/input-passport.vue +44 -44
- package/dist/runtime/components/input/input-password.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-password.vue +43 -43
- package/dist/runtime/components/input/input-password.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-personal-card-id-selfie.vue +44 -44
- package/dist/runtime/components/input/input-personal-card-id.vue +44 -44
- package/dist/runtime/components/input/input-phone.vue +11 -11
- package/dist/runtime/components/input/input-profile-name.vue +10 -10
- package/dist/runtime/components/input/input-radio.vue +55 -55
- package/dist/runtime/components/input/input-rating.vue +6 -6
- package/dist/runtime/components/input/input-search.vue +71 -71
- package/dist/runtime/components/input/input-select-place.vue +153 -153
- package/dist/runtime/components/input/input-select-province.vue +94 -94
- package/dist/runtime/components/input/input-select.vue +57 -57
- package/dist/runtime/components/input/input-slider.vue +19 -19
- package/dist/runtime/components/input/input-suggest.vue +47 -47
- package/dist/runtime/components/input/input-switch.vue +25 -25
- package/dist/runtime/components/input/input-tag-modal.vue +85 -85
- package/dist/runtime/components/input/input-tag.vue +154 -154
- package/dist/runtime/components/input/input-text-field.vue +90 -90
- package/dist/runtime/components/input/input-textarea.vue +58 -58
- package/dist/runtime/components/input/input-typed-field.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-typed-field.vue +51 -51
- package/dist/runtime/components/input/input-typed-field.vue.d.ts +1 -1
- package/dist/runtime/components/label/label-card-content.vue +49 -49
- package/dist/runtime/components/label/label.vue +45 -45
- package/dist/runtime/components/loading.vue +8 -8
- package/dist/runtime/components/modal/modal-2FA-generate.vue +48 -48
- package/dist/runtime/components/modal/modal-2FA.vue +28 -28
- package/dist/runtime/components/modal/modal-account-disabled-alert.vue +33 -33
- package/dist/runtime/components/modal/modal-account-disabled-confirmed.vue +32 -32
- package/dist/runtime/components/modal/modal-account-disabled-reason.vue +45 -45
- package/dist/runtime/components/modal/modal-account-disabled.vue +9 -9
- package/dist/runtime/components/modal/modal-chat-share.d.vue.ts +17 -0
- package/dist/runtime/components/modal/modal-chat-share.vue +214 -0
- package/dist/runtime/components/modal/modal-chat-share.vue.d.ts +17 -0
- package/dist/runtime/components/modal/modal-display-image.vue +45 -45
- package/dist/runtime/components/modal/modal-email-OTP.vue +32 -32
- package/dist/runtime/components/modal/modal-forgot-password.vue +9 -9
- package/dist/runtime/components/modal/modal-media-view.vue +171 -171
- package/dist/runtime/components/modal/modal-passport.vue +151 -151
- package/dist/runtime/components/modal/modal-password-confirmed.vue +30 -30
- package/dist/runtime/components/modal/modal-password-new.vue +34 -34
- package/dist/runtime/components/modal/modal-password-verify.vue +13 -13
- package/dist/runtime/components/modal/modal-personal-card-ID-selfie.vue +116 -116
- package/dist/runtime/components/modal/modal-personal-card-ID.vue +162 -162
- package/dist/runtime/components/modal/modal-phone-OTP.vue +49 -49
- package/dist/runtime/components/modal/modal-profile-edit.vue +69 -71
- package/dist/runtime/components/modal/modal-province-domain.vue +25 -25
- package/dist/runtime/components/modal/modal-report.vue +48 -48
- package/dist/runtime/components/modal/modal-secure.vue +7 -7
- package/dist/runtime/components/modal/modal-share.vue +20 -20
- package/dist/runtime/components/modal/modal-user-account-search.vue +68 -68
- package/dist/runtime/components/modal/modal.vue +42 -42
- package/dist/runtime/components/modal/suggest-edit-place/modal-suggest-edit-place.vue +251 -251
- package/dist/runtime/components/modal/suggest-edit-place/place-Adddateopening.vue +12 -12
- package/dist/runtime/components/modal/suggest-edit-place/place-Adddescription.vue +18 -18
- package/dist/runtime/components/modal/suggest-edit-place/place-Addlink.vue +12 -12
- package/dist/runtime/components/modal/suggest-edit-place/place-Addphone.vue +12 -12
- package/dist/runtime/components/modal/suggest-edit-place/place-address.vue +43 -43
- package/dist/runtime/components/modal/suggest-edit-place/place-category.vue +32 -32
- package/dist/runtime/components/modal/suggest-edit-place/place-dateopening.vue +32 -32
- package/dist/runtime/components/modal/suggest-edit-place/place-description.vue +32 -32
- package/dist/runtime/components/modal/suggest-edit-place/place-link.vue +41 -41
- package/dist/runtime/components/modal/suggest-edit-place/place-name.vue +70 -70
- package/dist/runtime/components/modal/suggest-edit-place/place-phone.vue +26 -26
- package/dist/runtime/components/pagination.vue +47 -47
- package/dist/runtime/components/picker/picker-image-cover-profile.vue +80 -80
- package/dist/runtime/components/picker/picker-image-profile.vue +102 -102
- package/dist/runtime/components/picker/picker-option-menu/picker-option-menu-user.vue +22 -22
- package/dist/runtime/components/picker/picker-option-menu/picker-option-menu.vue +28 -28
- package/dist/runtime/components/preview/preview-content.vue +138 -138
- package/dist/runtime/components/preview/preview-place.vue +194 -194
- package/dist/runtime/components/progress-bar.vue +9 -9
- package/dist/runtime/components/read-more-text.vue +4 -4
- package/dist/runtime/components/table.vue +79 -79
- package/dist/runtime/components/timeline.vue +59 -59
- package/dist/runtime/components/tooltip.vue +12 -12
- package/dist/runtime/components/ui/accordion/Accordion.vue +3 -3
- package/dist/runtime/components/ui/accordion/AccordionContent.vue +9 -9
- package/dist/runtime/components/ui/accordion/AccordionItem.vue +8 -8
- package/dist/runtime/components/ui/accordion/AccordionTrigger.vue +16 -16
- package/dist/runtime/components/ui/alert/Alert.vue +7 -7
- package/dist/runtime/components/ui/alert/AlertDescription.vue +6 -6
- package/dist/runtime/components/ui/alert/AlertTitle.vue +6 -6
- package/dist/runtime/components/ui/alert-dialog/AlertDialog.vue +3 -3
- package/dist/runtime/components/ui/alert-dialog/AlertDialogAction.vue +3 -3
- package/dist/runtime/components/ui/alert-dialog/AlertDialogCancel.vue +6 -6
- package/dist/runtime/components/ui/alert-dialog/AlertDialogContent.vue +13 -13
- package/dist/runtime/components/ui/alert-dialog/AlertDialogDescription.vue +7 -7
- package/dist/runtime/components/ui/alert-dialog/AlertDialogFooter.vue +6 -6
- package/dist/runtime/components/ui/alert-dialog/AlertDialogHeader.vue +6 -6
- package/dist/runtime/components/ui/alert-dialog/AlertDialogTitle.vue +7 -7
- package/dist/runtime/components/ui/alert-dialog/AlertDialogTrigger.vue +3 -3
- package/dist/runtime/components/ui/avatar/Avatar.vue +6 -6
- package/dist/runtime/components/ui/avatar/AvatarFallback.vue +7 -7
- package/dist/runtime/components/ui/avatar/AvatarImage.vue +7 -7
- package/dist/runtime/components/ui/badge/Badge.vue +7 -7
- package/dist/runtime/components/ui/breadcrumb/Breadcrumb.vue +7 -7
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbEllipsis.vue +11 -11
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbItem.vue +6 -6
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbLink.vue +8 -8
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbList.vue +6 -6
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbPage.vue +9 -9
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbSeparator.vue +10 -10
- package/dist/runtime/components/ui/button/Button.vue +8 -8
- package/dist/runtime/components/ui/calendar/Calendar.vue +128 -128
- package/dist/runtime/components/ui/calendar/CalendarCell.vue +7 -7
- package/dist/runtime/components/ui/calendar/CalendarCellTrigger.vue +7 -7
- package/dist/runtime/components/ui/calendar/CalendarGrid.vue +7 -7
- package/dist/runtime/components/ui/calendar/CalendarGridBody.vue +6 -6
- package/dist/runtime/components/ui/calendar/CalendarGridHead.vue +6 -6
- package/dist/runtime/components/ui/calendar/CalendarGridRow.vue +6 -6
- package/dist/runtime/components/ui/calendar/CalendarHeadCell.vue +7 -7
- package/dist/runtime/components/ui/calendar/CalendarHeader.vue +7 -7
- package/dist/runtime/components/ui/calendar/CalendarHeading.vue +10 -10
- package/dist/runtime/components/ui/calendar/CalendarNextButton.vue +9 -9
- package/dist/runtime/components/ui/calendar/CalendarPrevButton.vue +9 -9
- package/dist/runtime/components/ui/card/Card.vue +8 -8
- package/dist/runtime/components/ui/card/CardAction.vue +6 -6
- package/dist/runtime/components/ui/card/CardContent.vue +6 -6
- package/dist/runtime/components/ui/card/CardDescription.vue +6 -6
- package/dist/runtime/components/ui/card/CardFooter.vue +6 -6
- package/dist/runtime/components/ui/card/CardHeader.vue +6 -6
- package/dist/runtime/components/ui/card/CardTitle.vue +6 -6
- package/dist/runtime/components/ui/carousel/Carousel.vue +10 -10
- package/dist/runtime/components/ui/carousel/CarouselContent.vue +12 -12
- package/dist/runtime/components/ui/carousel/CarouselItem.vue +8 -8
- package/dist/runtime/components/ui/carousel/CarouselNext.vue +13 -13
- package/dist/runtime/components/ui/carousel/CarouselPrevious.vue +13 -13
- package/dist/runtime/components/ui/chart/ChartContainer.vue +9 -9
- package/dist/runtime/components/ui/chart/ChartLegendContent.vue +19 -19
- package/dist/runtime/components/ui/chart/ChartStyle.vue +6 -6
- package/dist/runtime/components/ui/chart/ChartTooltipContent.vue +38 -38
- package/dist/runtime/components/ui/checkbox/Checkbox.vue +8 -8
- package/dist/runtime/components/ui/command/Command.vue +7 -7
- package/dist/runtime/components/ui/command/CommandDialog.vue +11 -11
- package/dist/runtime/components/ui/command/CommandEmpty.vue +16 -16
- package/dist/runtime/components/ui/command/CommandGroup.vue +16 -16
- package/dist/runtime/components/ui/command/CommandInput.vue +13 -13
- package/dist/runtime/components/ui/command/CommandItem.vue +11 -11
- package/dist/runtime/components/ui/command/CommandList.vue +9 -9
- package/dist/runtime/components/ui/command/CommandSeparator.vue +7 -7
- package/dist/runtime/components/ui/command/CommandShortcut.vue +6 -6
- package/dist/runtime/components/ui/dialog/Dialog.vue +3 -3
- package/dist/runtime/components/ui/dialog/DialogClose.vue +3 -3
- package/dist/runtime/components/ui/dialog/DialogContent.vue +26 -26
- package/dist/runtime/components/ui/dialog/DialogDescription.vue +7 -7
- package/dist/runtime/components/ui/dialog/DialogFooter.vue +6 -6
- package/dist/runtime/components/ui/dialog/DialogHeader.vue +6 -6
- package/dist/runtime/components/ui/dialog/DialogOverlay.vue +7 -7
- package/dist/runtime/components/ui/dialog/DialogScrollContent.vue +20 -20
- package/dist/runtime/components/ui/dialog/DialogTitle.vue +7 -7
- package/dist/runtime/components/ui/dialog/DialogTrigger.vue +3 -3
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenu.vue +6 -6
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +12 -12
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue +10 -10
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuGroup.vue +6 -6
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue +9 -9
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuLabel.vue +8 -8
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +6 -6
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +16 -16
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSeparator.vue +5 -5
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuShortcut.vue +6 -6
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSub.vue +3 -3
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue +7 -7
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +8 -8
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuTrigger.vue +6 -6
- package/dist/runtime/components/ui/form/FormControl.vue +8 -8
- package/dist/runtime/components/ui/form/FormDescription.vue +7 -7
- package/dist/runtime/components/ui/form/FormItem.vue +3 -3
- package/dist/runtime/components/ui/form/FormLabel.vue +8 -8
- package/dist/runtime/components/ui/form/FormMessage.vue +7 -7
- package/dist/runtime/components/ui/input/Input.vue +7 -7
- package/dist/runtime/components/ui/input-group/InputGroup.vue +7 -7
- package/dist/runtime/components/ui/input-group/InputGroupAddon.vue +9 -9
- package/dist/runtime/components/ui/input-group/InputGroupButton.vue +8 -8
- package/dist/runtime/components/ui/input-group/InputGroupInput.vue +5 -5
- package/dist/runtime/components/ui/input-group/InputGroupText.vue +5 -5
- package/dist/runtime/components/ui/input-group/InputGroupTextarea.vue +4 -4
- package/dist/runtime/components/ui/label/Label.vue +7 -7
- package/dist/runtime/components/ui/native-select/NativeSelect.vue +19 -19
- package/dist/runtime/components/ui/native-select/NativeSelectOptGroup.vue +3 -3
- package/dist/runtime/components/ui/native-select/NativeSelectOption.vue +3 -3
- package/dist/runtime/components/ui/pagination/Pagination.vue +8 -8
- package/dist/runtime/components/ui/pagination/PaginationContent.vue +8 -8
- package/dist/runtime/components/ui/pagination/PaginationEllipsis.vue +10 -10
- package/dist/runtime/components/ui/pagination/PaginationFirst.vue +10 -10
- package/dist/runtime/components/ui/pagination/PaginationItem.vue +7 -7
- package/dist/runtime/components/ui/pagination/PaginationLast.vue +10 -10
- package/dist/runtime/components/ui/pagination/PaginationNext.vue +10 -10
- package/dist/runtime/components/ui/pagination/PaginationPrevious.vue +10 -10
- package/dist/runtime/components/ui/pin-input/PinInput.vue +7 -7
- package/dist/runtime/components/ui/pin-input/PinInputGroup.vue +7 -7
- package/dist/runtime/components/ui/pin-input/PinInputSeparator.vue +3 -3
- package/dist/runtime/components/ui/pin-input/PinInputSlot.vue +5 -5
- package/dist/runtime/components/ui/popover/Popover.vue +7 -7
- package/dist/runtime/components/ui/popover/PopoverAnchor.vue +6 -6
- package/dist/runtime/components/ui/popover/PopoverContent.vue +9 -9
- package/dist/runtime/components/ui/popover/PopoverTrigger.vue +6 -6
- package/dist/runtime/components/ui/scroll-area/ScrollArea.vue +14 -14
- package/dist/runtime/components/ui/scroll-area/ScrollBar.vue +10 -10
- package/dist/runtime/components/ui/select/Select.vue +7 -7
- package/dist/runtime/components/ui/select/SelectContent.vue +10 -10
- package/dist/runtime/components/ui/select/SelectGroup.vue +6 -6
- package/dist/runtime/components/ui/select/SelectItem.vue +17 -17
- package/dist/runtime/components/ui/select/SelectItemText.vue +6 -6
- package/dist/runtime/components/ui/select/SelectLabel.vue +6 -6
- package/dist/runtime/components/ui/select/SelectScrollDownButton.vue +9 -9
- package/dist/runtime/components/ui/select/SelectScrollUpButton.vue +9 -9
- package/dist/runtime/components/ui/select/SelectSeparator.vue +5 -5
- package/dist/runtime/components/ui/select/SelectTrigger.vue +11 -11
- package/dist/runtime/components/ui/select/SelectValue.vue +6 -6
- package/dist/runtime/components/ui/separator/Separator.vue +5 -5
- package/dist/runtime/components/ui/sheet/Sheet.vue +3 -3
- package/dist/runtime/components/ui/sheet/SheetClose.vue +3 -3
- package/dist/runtime/components/ui/sheet/SheetContent.vue +26 -26
- package/dist/runtime/components/ui/sheet/SheetDescription.vue +7 -7
- package/dist/runtime/components/ui/sheet/SheetFooter.vue +6 -6
- package/dist/runtime/components/ui/sheet/SheetHeader.vue +6 -6
- package/dist/runtime/components/ui/sheet/SheetOverlay.vue +7 -7
- package/dist/runtime/components/ui/sheet/SheetTitle.vue +7 -7
- package/dist/runtime/components/ui/sheet/SheetTrigger.vue +3 -3
- package/dist/runtime/components/ui/skeleton/Skeleton.vue +4 -4
- package/dist/runtime/components/ui/spinner/Spinner.vue +6 -6
- package/dist/runtime/components/ui/table/Table.vue +5 -5
- package/dist/runtime/components/ui/table/TableBody.vue +6 -6
- package/dist/runtime/components/ui/table/TableCaption.vue +6 -6
- package/dist/runtime/components/ui/table/TableCell.vue +6 -6
- package/dist/runtime/components/ui/table/TableEmpty.vue +15 -15
- package/dist/runtime/components/ui/table/TableFooter.vue +6 -6
- package/dist/runtime/components/ui/table/TableHead.vue +6 -6
- package/dist/runtime/components/ui/table/TableHeader.vue +6 -6
- package/dist/runtime/components/ui/table/TableRow.vue +6 -6
- package/dist/runtime/components/ui/tabs/Tabs.vue +8 -8
- package/dist/runtime/components/ui/tabs/TabsContent.vue +7 -7
- package/dist/runtime/components/ui/tabs/TabsList.vue +7 -7
- package/dist/runtime/components/ui/tabs/TabsTrigger.vue +7 -7
- package/dist/runtime/components/ui/textarea/Textarea.vue +5 -5
- package/dist/runtime/components/ui/tooltip/Tooltip.vue +7 -7
- package/dist/runtime/components/ui/tooltip/TooltipContent.vue +13 -13
- package/dist/runtime/components/ui/tooltip/TooltipProvider.vue +3 -3
- package/dist/runtime/components/ui/tooltip/TooltipTrigger.vue +6 -6
- package/dist/runtime/components/video.vue +2 -2
- package/dist/runtime/composables/store-chat.d.ts +83 -2
- package/dist/runtime/composables/store-chat.js +39 -5
- package/dist/runtime/composables/useChatSession.d.ts +82 -1
- package/dist/runtime/composables/useContentCard.js +1 -0
- package/dist/runtime/geo/README.md +87 -87
- package/dist/runtime/geo/postal_codes.json +5569 -5569
- package/dist/runtime/types/chat.d.ts +16 -1
- package/dist/runtime/utils/mention.d.ts +39 -0
- package/dist/runtime/utils/mention.js +52 -0
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChatConversation, ChatMessage } from "../types/chat.js";
|
|
1
|
+
import type { ChatConversation, ChatMessage, ChatSharePreview } from "../types/chat.js";
|
|
2
2
|
export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat", Pick<{
|
|
3
3
|
conversations: import("vue").Ref<{
|
|
4
4
|
id: string;
|
|
@@ -31,6 +31,19 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
31
31
|
is_deleted: boolean;
|
|
32
32
|
thumbnail_url: string | null;
|
|
33
33
|
} | null | undefined;
|
|
34
|
+
share?: {
|
|
35
|
+
type: import("../types/chat.js").ChatShareType;
|
|
36
|
+
id: string;
|
|
37
|
+
title: string;
|
|
38
|
+
content_type?: string | undefined;
|
|
39
|
+
cover_color?: string | undefined;
|
|
40
|
+
image?: string | undefined;
|
|
41
|
+
thumbnail?: string | undefined;
|
|
42
|
+
place_name?: string | undefined;
|
|
43
|
+
address?: string | undefined;
|
|
44
|
+
author_name?: string | undefined;
|
|
45
|
+
author_avatar?: string | null | undefined;
|
|
46
|
+
} | null | undefined;
|
|
34
47
|
is_deleted: boolean;
|
|
35
48
|
created_at: string;
|
|
36
49
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -74,6 +87,19 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
74
87
|
is_deleted: boolean;
|
|
75
88
|
thumbnail_url: string | null;
|
|
76
89
|
} | null | undefined;
|
|
90
|
+
share?: {
|
|
91
|
+
type: import("../types/chat.js").ChatShareType;
|
|
92
|
+
id: string;
|
|
93
|
+
title: string;
|
|
94
|
+
content_type?: string | undefined;
|
|
95
|
+
cover_color?: string | undefined;
|
|
96
|
+
image?: string | undefined;
|
|
97
|
+
thumbnail?: string | undefined;
|
|
98
|
+
place_name?: string | undefined;
|
|
99
|
+
address?: string | undefined;
|
|
100
|
+
author_name?: string | undefined;
|
|
101
|
+
author_avatar?: string | null | undefined;
|
|
102
|
+
} | null | undefined;
|
|
77
103
|
is_deleted: boolean;
|
|
78
104
|
created_at: string;
|
|
79
105
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -107,6 +133,7 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
107
133
|
fetchOlderMessages: (conversationId: string) => Promise<void>;
|
|
108
134
|
sendMessage: (conversationId: string, body: string, replyTo?: ChatMessage) => Promise<void>;
|
|
109
135
|
sendMedia: (conversationId: string, files: File[], replyTo?: ChatMessage) => Promise<void>;
|
|
136
|
+
sendShare: (conversationId: string, share: ChatSharePreview) => Promise<void>;
|
|
110
137
|
retryMessage: (conversationId: string, clientId: string) => Promise<void>;
|
|
111
138
|
markRead: (conversationId: string, messageId: string) => Promise<void>;
|
|
112
139
|
isReadByPeer: (conversationId: string, messageId: string) => boolean;
|
|
@@ -153,6 +180,19 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
153
180
|
is_deleted: boolean;
|
|
154
181
|
thumbnail_url: string | null;
|
|
155
182
|
} | null | undefined;
|
|
183
|
+
share?: {
|
|
184
|
+
type: import("../types/chat.js").ChatShareType;
|
|
185
|
+
id: string;
|
|
186
|
+
title: string;
|
|
187
|
+
content_type?: string | undefined;
|
|
188
|
+
cover_color?: string | undefined;
|
|
189
|
+
image?: string | undefined;
|
|
190
|
+
thumbnail?: string | undefined;
|
|
191
|
+
place_name?: string | undefined;
|
|
192
|
+
address?: string | undefined;
|
|
193
|
+
author_name?: string | undefined;
|
|
194
|
+
author_avatar?: string | null | undefined;
|
|
195
|
+
} | null | undefined;
|
|
156
196
|
is_deleted: boolean;
|
|
157
197
|
created_at: string;
|
|
158
198
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -196,6 +236,19 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
196
236
|
is_deleted: boolean;
|
|
197
237
|
thumbnail_url: string | null;
|
|
198
238
|
} | null | undefined;
|
|
239
|
+
share?: {
|
|
240
|
+
type: import("../types/chat.js").ChatShareType;
|
|
241
|
+
id: string;
|
|
242
|
+
title: string;
|
|
243
|
+
content_type?: string | undefined;
|
|
244
|
+
cover_color?: string | undefined;
|
|
245
|
+
image?: string | undefined;
|
|
246
|
+
thumbnail?: string | undefined;
|
|
247
|
+
place_name?: string | undefined;
|
|
248
|
+
address?: string | undefined;
|
|
249
|
+
author_name?: string | undefined;
|
|
250
|
+
author_avatar?: string | null | undefined;
|
|
251
|
+
} | null | undefined;
|
|
199
252
|
is_deleted: boolean;
|
|
200
253
|
created_at: string;
|
|
201
254
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -229,6 +282,7 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
229
282
|
fetchOlderMessages: (conversationId: string) => Promise<void>;
|
|
230
283
|
sendMessage: (conversationId: string, body: string, replyTo?: ChatMessage) => Promise<void>;
|
|
231
284
|
sendMedia: (conversationId: string, files: File[], replyTo?: ChatMessage) => Promise<void>;
|
|
285
|
+
sendShare: (conversationId: string, share: ChatSharePreview) => Promise<void>;
|
|
232
286
|
retryMessage: (conversationId: string, clientId: string) => Promise<void>;
|
|
233
287
|
markRead: (conversationId: string, messageId: string) => Promise<void>;
|
|
234
288
|
isReadByPeer: (conversationId: string, messageId: string) => boolean;
|
|
@@ -275,6 +329,19 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
275
329
|
is_deleted: boolean;
|
|
276
330
|
thumbnail_url: string | null;
|
|
277
331
|
} | null | undefined;
|
|
332
|
+
share?: {
|
|
333
|
+
type: import("../types/chat.js").ChatShareType;
|
|
334
|
+
id: string;
|
|
335
|
+
title: string;
|
|
336
|
+
content_type?: string | undefined;
|
|
337
|
+
cover_color?: string | undefined;
|
|
338
|
+
image?: string | undefined;
|
|
339
|
+
thumbnail?: string | undefined;
|
|
340
|
+
place_name?: string | undefined;
|
|
341
|
+
address?: string | undefined;
|
|
342
|
+
author_name?: string | undefined;
|
|
343
|
+
author_avatar?: string | null | undefined;
|
|
344
|
+
} | null | undefined;
|
|
278
345
|
is_deleted: boolean;
|
|
279
346
|
created_at: string;
|
|
280
347
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -318,6 +385,19 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
318
385
|
is_deleted: boolean;
|
|
319
386
|
thumbnail_url: string | null;
|
|
320
387
|
} | null | undefined;
|
|
388
|
+
share?: {
|
|
389
|
+
type: import("../types/chat.js").ChatShareType;
|
|
390
|
+
id: string;
|
|
391
|
+
title: string;
|
|
392
|
+
content_type?: string | undefined;
|
|
393
|
+
cover_color?: string | undefined;
|
|
394
|
+
image?: string | undefined;
|
|
395
|
+
thumbnail?: string | undefined;
|
|
396
|
+
place_name?: string | undefined;
|
|
397
|
+
address?: string | undefined;
|
|
398
|
+
author_name?: string | undefined;
|
|
399
|
+
author_avatar?: string | null | undefined;
|
|
400
|
+
} | null | undefined;
|
|
321
401
|
is_deleted: boolean;
|
|
322
402
|
created_at: string;
|
|
323
403
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -351,6 +431,7 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
351
431
|
fetchOlderMessages: (conversationId: string) => Promise<void>;
|
|
352
432
|
sendMessage: (conversationId: string, body: string, replyTo?: ChatMessage) => Promise<void>;
|
|
353
433
|
sendMedia: (conversationId: string, files: File[], replyTo?: ChatMessage) => Promise<void>;
|
|
434
|
+
sendShare: (conversationId: string, share: ChatSharePreview) => Promise<void>;
|
|
354
435
|
retryMessage: (conversationId: string, clientId: string) => Promise<void>;
|
|
355
436
|
markRead: (conversationId: string, messageId: string) => Promise<void>;
|
|
356
437
|
isReadByPeer: (conversationId: string, messageId: string) => boolean;
|
|
@@ -365,4 +446,4 @@ export declare const useChatStore: import("pinia").StoreDefinition<"pukaad-chat"
|
|
|
365
446
|
startRealtime: () => void;
|
|
366
447
|
stopRealtime: () => void;
|
|
367
448
|
resync: (activeConversationId?: string) => Promise<void>;
|
|
368
|
-
}, "reset" | "setUnreadFirst" | "setMyProfileId" | "fetchConversations" | "fetchConversation" | "fetchLatestMessages" | "fetchOlderMessages" | "sendMessage" | "sendMedia" | "retryMessage" | "markRead" | "isReadByPeer" | "unreadCountOf" | "startUnreadBadge" | "stopUnreadBadge" | "previewOf" | "sendTyping" | "isPeerTyping" | "deleteMessage" | "startRealtime" | "stopRealtime" | "resync">>;
|
|
449
|
+
}, "reset" | "setUnreadFirst" | "setMyProfileId" | "fetchConversations" | "fetchConversation" | "fetchLatestMessages" | "fetchOlderMessages" | "sendMessage" | "sendMedia" | "sendShare" | "retryMessage" | "markRead" | "isReadByPeer" | "unreadCountOf" | "startUnreadBadge" | "stopUnreadBadge" | "previewOf" | "sendTyping" | "isPeerTyping" | "deleteMessage" | "startRealtime" | "stopRealtime" | "resync">>;
|
|
@@ -117,10 +117,15 @@ export const useChatStore = defineStore("pukaad-chat", () => {
|
|
|
117
117
|
const last = myLastRead[conversationId];
|
|
118
118
|
return !last || BigInt(msg.id) > BigInt(last);
|
|
119
119
|
};
|
|
120
|
+
const shareLabels = {
|
|
121
|
+
post: "\u0E2A\u0E48\u0E07\u0E40\u0E19\u0E37\u0E49\u0E2D\u0E2B\u0E32",
|
|
122
|
+
place: "\u0E2A\u0E48\u0E07\u0E2A\u0E16\u0E32\u0E19\u0E17\u0E35\u0E48",
|
|
123
|
+
blog: "\u0E2A\u0E48\u0E07\u0E1A\u0E25\u0E47\u0E2D\u0E01"
|
|
124
|
+
};
|
|
120
125
|
const previewOf = (conversation) => {
|
|
121
126
|
const msg = conversation.last_message;
|
|
122
127
|
if (!msg) return "";
|
|
123
|
-
const text = msg.is_deleted ? "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E16\u0E39\u0E01\u0E25\u0E1A\u0E41\u0E25\u0E49\u0E27" : msg.kind === "image" ? "\u0E2A\u0E48\u0E07\u0E23\u0E39\u0E1B\u0E20\u0E32\u0E1E" : msg.kind === "video" ? "\u0E2A\u0E48\u0E07\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D" : msg.body.replace(/\s+/g, " ");
|
|
128
|
+
const text = msg.is_deleted ? "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E16\u0E39\u0E01\u0E25\u0E1A\u0E41\u0E25\u0E49\u0E27" : msg.kind === "image" ? "\u0E2A\u0E48\u0E07\u0E23\u0E39\u0E1B\u0E20\u0E32\u0E1E" : msg.kind === "video" ? "\u0E2A\u0E48\u0E07\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D" : msg.kind === "share" ? shareLabels[msg.share?.type ?? "post"] : msg.body.replace(/\s+/g, " ");
|
|
124
129
|
return msg.sender_profile_id === myProfileId.value ? `\u0E04\u0E38\u0E13: ${text}` : text;
|
|
125
130
|
};
|
|
126
131
|
const unreadCountOf = (conversation) => {
|
|
@@ -239,23 +244,29 @@ export const useChatStore = defineStore("pukaad-chat", () => {
|
|
|
239
244
|
};
|
|
240
245
|
const toReplyPreview = (original) => {
|
|
241
246
|
const first = original.attachments[0];
|
|
247
|
+
const share = original.share;
|
|
242
248
|
return {
|
|
243
249
|
id: original.id,
|
|
244
250
|
sender_profile_id: original.sender_profile_id,
|
|
245
251
|
kind: original.kind,
|
|
246
|
-
body: [...original.body].slice(0, 100).join(""),
|
|
252
|
+
body: [...share?.title ?? original.body].slice(0, 100).join(""),
|
|
247
253
|
is_deleted: false,
|
|
248
|
-
thumbnail_url: first ? first.thumbnail_url ?? (first.kind === "image" ? first.url : null) : null
|
|
254
|
+
thumbnail_url: share ? share.image || share.thumbnail || null : first ? first.thumbnail_url ?? (first.kind === "image" ? first.url : null) : null
|
|
249
255
|
};
|
|
250
256
|
};
|
|
251
257
|
const replyIdOf = (conversationId, clientId) => messages[conversationId]?.find((m) => m.client_id === clientId)?.reply_to?.id;
|
|
252
|
-
const postMessage = async (conversationId, clientId, body) => {
|
|
258
|
+
const postMessage = async (conversationId, clientId, body, share) => {
|
|
253
259
|
try {
|
|
254
260
|
const res = await api(
|
|
255
261
|
`/chat/conversations/${conversationId}/messages`,
|
|
256
262
|
{
|
|
257
263
|
method: "POST",
|
|
258
|
-
body: {
|
|
264
|
+
body: {
|
|
265
|
+
client_id: clientId,
|
|
266
|
+
body,
|
|
267
|
+
share: share ? { type: share.type, id: share.id } : void 0,
|
|
268
|
+
reply_to_message_id: replyIdOf(conversationId, clientId)
|
|
269
|
+
},
|
|
259
270
|
timeout: REQUEST_TIMEOUT
|
|
260
271
|
}
|
|
261
272
|
);
|
|
@@ -286,6 +297,23 @@ export const useChatStore = defineStore("pukaad-chat", () => {
|
|
|
286
297
|
messages[conversationId] = [...messages[conversationId] ?? [], local];
|
|
287
298
|
await postMessage(conversationId, clientId, body);
|
|
288
299
|
};
|
|
300
|
+
const sendShare = async (conversationId, share) => {
|
|
301
|
+
const clientId = crypto.randomUUID();
|
|
302
|
+
const local = {
|
|
303
|
+
id: `local-${clientId}`,
|
|
304
|
+
client_id: clientId,
|
|
305
|
+
sender_profile_id: myProfileId.value,
|
|
306
|
+
kind: "share",
|
|
307
|
+
body: "",
|
|
308
|
+
attachments: [],
|
|
309
|
+
share,
|
|
310
|
+
is_deleted: false,
|
|
311
|
+
created_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
312
|
+
status: "sending"
|
|
313
|
+
};
|
|
314
|
+
messages[conversationId] = [...messages[conversationId] ?? [], local];
|
|
315
|
+
await postMessage(conversationId, clientId, "", share);
|
|
316
|
+
};
|
|
289
317
|
const pendingFiles = /* @__PURE__ */ new Map();
|
|
290
318
|
const setProgress = (conversationId, clientId, progress) => {
|
|
291
319
|
const msg = messages[conversationId]?.find((m) => m.client_id === clientId);
|
|
@@ -389,6 +417,10 @@ export const useChatStore = defineStore("pukaad-chat", () => {
|
|
|
389
417
|
if (!msg || msg.status !== "failed" || msg.failure?.retryable === false) return;
|
|
390
418
|
msg.status = "sending";
|
|
391
419
|
msg.failure = void 0;
|
|
420
|
+
if (msg.kind === "share") {
|
|
421
|
+
await postMessage(conversationId, clientId, "", msg.share);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
392
424
|
if (msg.kind !== "text") {
|
|
393
425
|
msg.progress = 0;
|
|
394
426
|
await postMedia(conversationId, clientId);
|
|
@@ -403,6 +435,7 @@ export const useChatStore = defineStore("pukaad-chat", () => {
|
|
|
403
435
|
msg.body = "";
|
|
404
436
|
msg.attachments = [];
|
|
405
437
|
msg.reply_to = null;
|
|
438
|
+
msg.share = null;
|
|
406
439
|
}
|
|
407
440
|
for (const m of messages[conversationId] ?? []) {
|
|
408
441
|
if (m.reply_to?.id === messageId) {
|
|
@@ -564,6 +597,7 @@ export const useChatStore = defineStore("pukaad-chat", () => {
|
|
|
564
597
|
fetchOlderMessages,
|
|
565
598
|
sendMessage,
|
|
566
599
|
sendMedia,
|
|
600
|
+
sendShare,
|
|
567
601
|
retryMessage,
|
|
568
602
|
markRead,
|
|
569
603
|
isReadByPeer,
|
|
@@ -32,6 +32,19 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
32
32
|
is_deleted: boolean;
|
|
33
33
|
thumbnail_url: string | null;
|
|
34
34
|
} | null | undefined;
|
|
35
|
+
share?: {
|
|
36
|
+
type: import("../types/chat.js").ChatShareType;
|
|
37
|
+
id: string;
|
|
38
|
+
title: string;
|
|
39
|
+
content_type?: string | undefined;
|
|
40
|
+
cover_color?: string | undefined;
|
|
41
|
+
image?: string | undefined;
|
|
42
|
+
thumbnail?: string | undefined;
|
|
43
|
+
place_name?: string | undefined;
|
|
44
|
+
address?: string | undefined;
|
|
45
|
+
author_name?: string | undefined;
|
|
46
|
+
author_avatar?: string | null | undefined;
|
|
47
|
+
} | null | undefined;
|
|
35
48
|
is_deleted: boolean;
|
|
36
49
|
created_at: string;
|
|
37
50
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -75,6 +88,19 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
75
88
|
is_deleted: boolean;
|
|
76
89
|
thumbnail_url: string | null;
|
|
77
90
|
} | null | undefined;
|
|
91
|
+
share?: {
|
|
92
|
+
type: import("../types/chat.js").ChatShareType;
|
|
93
|
+
id: string;
|
|
94
|
+
title: string;
|
|
95
|
+
content_type?: string | undefined;
|
|
96
|
+
cover_color?: string | undefined;
|
|
97
|
+
image?: string | undefined;
|
|
98
|
+
thumbnail?: string | undefined;
|
|
99
|
+
place_name?: string | undefined;
|
|
100
|
+
address?: string | undefined;
|
|
101
|
+
author_name?: string | undefined;
|
|
102
|
+
author_avatar?: string | null | undefined;
|
|
103
|
+
} | null | undefined;
|
|
78
104
|
is_deleted: boolean;
|
|
79
105
|
created_at: string;
|
|
80
106
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -108,6 +134,7 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
108
134
|
fetchOlderMessages: (conversationId: string) => Promise<void>;
|
|
109
135
|
sendMessage: (conversationId: string, body: string, replyTo?: import("../types/chat.js").ChatMessage) => Promise<void>;
|
|
110
136
|
sendMedia: (conversationId: string, files: File[], replyTo?: import("../types/chat.js").ChatMessage) => Promise<void>;
|
|
137
|
+
sendShare: (conversationId: string, share: import("../types/chat.js").ChatSharePreview) => Promise<void>;
|
|
111
138
|
retryMessage: (conversationId: string, clientId: string) => Promise<void>;
|
|
112
139
|
markRead: (conversationId: string, messageId: string) => Promise<void>;
|
|
113
140
|
isReadByPeer: (conversationId: string, messageId: string) => boolean;
|
|
@@ -154,6 +181,19 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
154
181
|
is_deleted: boolean;
|
|
155
182
|
thumbnail_url: string | null;
|
|
156
183
|
} | null | undefined;
|
|
184
|
+
share?: {
|
|
185
|
+
type: import("../types/chat.js").ChatShareType;
|
|
186
|
+
id: string;
|
|
187
|
+
title: string;
|
|
188
|
+
content_type?: string | undefined;
|
|
189
|
+
cover_color?: string | undefined;
|
|
190
|
+
image?: string | undefined;
|
|
191
|
+
thumbnail?: string | undefined;
|
|
192
|
+
place_name?: string | undefined;
|
|
193
|
+
address?: string | undefined;
|
|
194
|
+
author_name?: string | undefined;
|
|
195
|
+
author_avatar?: string | null | undefined;
|
|
196
|
+
} | null | undefined;
|
|
157
197
|
is_deleted: boolean;
|
|
158
198
|
created_at: string;
|
|
159
199
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -197,6 +237,19 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
197
237
|
is_deleted: boolean;
|
|
198
238
|
thumbnail_url: string | null;
|
|
199
239
|
} | null | undefined;
|
|
240
|
+
share?: {
|
|
241
|
+
type: import("../types/chat.js").ChatShareType;
|
|
242
|
+
id: string;
|
|
243
|
+
title: string;
|
|
244
|
+
content_type?: string | undefined;
|
|
245
|
+
cover_color?: string | undefined;
|
|
246
|
+
image?: string | undefined;
|
|
247
|
+
thumbnail?: string | undefined;
|
|
248
|
+
place_name?: string | undefined;
|
|
249
|
+
address?: string | undefined;
|
|
250
|
+
author_name?: string | undefined;
|
|
251
|
+
author_avatar?: string | null | undefined;
|
|
252
|
+
} | null | undefined;
|
|
200
253
|
is_deleted: boolean;
|
|
201
254
|
created_at: string;
|
|
202
255
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -230,6 +283,7 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
230
283
|
fetchOlderMessages: (conversationId: string) => Promise<void>;
|
|
231
284
|
sendMessage: (conversationId: string, body: string, replyTo?: import("../types/chat.js").ChatMessage) => Promise<void>;
|
|
232
285
|
sendMedia: (conversationId: string, files: File[], replyTo?: import("../types/chat.js").ChatMessage) => Promise<void>;
|
|
286
|
+
sendShare: (conversationId: string, share: import("../types/chat.js").ChatSharePreview) => Promise<void>;
|
|
233
287
|
retryMessage: (conversationId: string, clientId: string) => Promise<void>;
|
|
234
288
|
markRead: (conversationId: string, messageId: string) => Promise<void>;
|
|
235
289
|
isReadByPeer: (conversationId: string, messageId: string) => boolean;
|
|
@@ -276,6 +330,19 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
276
330
|
is_deleted: boolean;
|
|
277
331
|
thumbnail_url: string | null;
|
|
278
332
|
} | null | undefined;
|
|
333
|
+
share?: {
|
|
334
|
+
type: import("../types/chat.js").ChatShareType;
|
|
335
|
+
id: string;
|
|
336
|
+
title: string;
|
|
337
|
+
content_type?: string | undefined;
|
|
338
|
+
cover_color?: string | undefined;
|
|
339
|
+
image?: string | undefined;
|
|
340
|
+
thumbnail?: string | undefined;
|
|
341
|
+
place_name?: string | undefined;
|
|
342
|
+
address?: string | undefined;
|
|
343
|
+
author_name?: string | undefined;
|
|
344
|
+
author_avatar?: string | null | undefined;
|
|
345
|
+
} | null | undefined;
|
|
279
346
|
is_deleted: boolean;
|
|
280
347
|
created_at: string;
|
|
281
348
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -319,6 +386,19 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
319
386
|
is_deleted: boolean;
|
|
320
387
|
thumbnail_url: string | null;
|
|
321
388
|
} | null | undefined;
|
|
389
|
+
share?: {
|
|
390
|
+
type: import("../types/chat.js").ChatShareType;
|
|
391
|
+
id: string;
|
|
392
|
+
title: string;
|
|
393
|
+
content_type?: string | undefined;
|
|
394
|
+
cover_color?: string | undefined;
|
|
395
|
+
image?: string | undefined;
|
|
396
|
+
thumbnail?: string | undefined;
|
|
397
|
+
place_name?: string | undefined;
|
|
398
|
+
address?: string | undefined;
|
|
399
|
+
author_name?: string | undefined;
|
|
400
|
+
author_avatar?: string | null | undefined;
|
|
401
|
+
} | null | undefined;
|
|
322
402
|
is_deleted: boolean;
|
|
323
403
|
created_at: string;
|
|
324
404
|
status?: import("../types/chat.js").ChatMessageStatus | undefined;
|
|
@@ -352,6 +432,7 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
352
432
|
fetchOlderMessages: (conversationId: string) => Promise<void>;
|
|
353
433
|
sendMessage: (conversationId: string, body: string, replyTo?: import("../types/chat.js").ChatMessage) => Promise<void>;
|
|
354
434
|
sendMedia: (conversationId: string, files: File[], replyTo?: import("../types/chat.js").ChatMessage) => Promise<void>;
|
|
435
|
+
sendShare: (conversationId: string, share: import("../types/chat.js").ChatSharePreview) => Promise<void>;
|
|
355
436
|
retryMessage: (conversationId: string, clientId: string) => Promise<void>;
|
|
356
437
|
markRead: (conversationId: string, messageId: string) => Promise<void>;
|
|
357
438
|
isReadByPeer: (conversationId: string, messageId: string) => boolean;
|
|
@@ -366,6 +447,6 @@ export declare function useChatSession(activeId: MaybeRefOrGetter<string | undef
|
|
|
366
447
|
startRealtime: () => void;
|
|
367
448
|
stopRealtime: () => void;
|
|
368
449
|
resync: (activeConversationId?: string) => Promise<void>;
|
|
369
|
-
}, "reset" | "setUnreadFirst" | "setMyProfileId" | "fetchConversations" | "fetchConversation" | "fetchLatestMessages" | "fetchOlderMessages" | "sendMessage" | "sendMedia" | "retryMessage" | "markRead" | "isReadByPeer" | "unreadCountOf" | "startUnreadBadge" | "stopUnreadBadge" | "previewOf" | "sendTyping" | "isPeerTyping" | "deleteMessage" | "startRealtime" | "stopRealtime" | "resync">>;
|
|
450
|
+
}, "reset" | "setUnreadFirst" | "setMyProfileId" | "fetchConversations" | "fetchConversation" | "fetchLatestMessages" | "fetchOlderMessages" | "sendMessage" | "sendMedia" | "sendShare" | "retryMessage" | "markRead" | "isReadByPeer" | "unreadCountOf" | "startUnreadBadge" | "stopUnreadBadge" | "previewOf" | "sendTyping" | "isPeerTyping" | "deleteMessage" | "startRealtime" | "stopRealtime" | "resync">>;
|
|
370
451
|
resync: () => Promise<void>;
|
|
371
452
|
};
|
|
@@ -3,6 +3,7 @@ export const CONTENT_COVER_COLORS = [
|
|
|
3
3
|
{ hex: "#C9E8FF", name: "blue-info" },
|
|
4
4
|
{ hex: "#DEFFE1", name: "green-info" },
|
|
5
5
|
{ hex: "#FFF5C2", name: "yellow-info" },
|
|
6
|
+
{ hex: "#FFDAC3", name: "orange-info" },
|
|
6
7
|
{ hex: "#FDD", name: "red-info" },
|
|
7
8
|
{ hex: "#FFE6F4", name: "pink-info" }
|
|
8
9
|
];
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
# OpenGISData-Thailand
|
|
2
|
-
Open GIS Data Sources in Thailand
|
|
3
|
-
|
|
4
|
-
## เป็นไฟล์รูปแบบ geojson มีทั้งหมด 3 ไฟล์คือ
|
|
5
|
-
- ชั้นข้อมูลขอบเขตจังหวัด 77 จังหวัด (provinces.geojson)
|
|
6
|
-
- ชั้นข้อมูลขอบเขตอำเภอ 928 อำเภอ (districts.geojson)
|
|
7
|
-
- ชั้นข้อมูลขอบเขตตำบล 7367 ตำบล (subdistricts.geojson)
|
|
8
|
-
- ชั้นข้อมูลขอบเขตภูมิภาค 7 ภูมิภาค (region_royin.geojson)
|
|
9
|
-
- ชั้นข้อมูลขอบเขตภูมิภาค 6 ภูมิภาค (region_nesdb.geojson)
|
|
10
|
-
|
|
11
|
-
## Data dictionary
|
|
12
|
-
**provinces**
|
|
13
|
-
|
|
14
|
-
|Field |Type |Key|Description |
|
|
15
|
-
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
16
|
-
|gid|Integer(10)|PK|gid|
|
|
17
|
-
|tam_code|String(6)||รหัสตำบล|
|
|
18
|
-
|tam_th|String(254)||ชื่อตำบลภาษาไทย|
|
|
19
|
-
|tam_en|String(254)||ชื่อตำบลภาษาอังกฤษ|
|
|
20
|
-
|amp_code|String(4)||รหัสอำเภอ|
|
|
21
|
-
|amp_th|String(254)||ชื่ออำเภอภาษาไทย|
|
|
22
|
-
|amp_en|String(254)||ชื่ออำเภอภาษาอังกฤษ|
|
|
23
|
-
|pro_code|String(2)||รหัสจังหวัด|
|
|
24
|
-
|pro_th|String(254)||ชื่อจังหวัดภาษาไทย|
|
|
25
|
-
|pro_en|String(254)||ชื่อจังหวัดภาษาอังกฤษ|
|
|
26
|
-
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
27
|
-
|reg_royin|String(254)||เขตภูมิภาค|
|
|
28
|
-
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
29
|
-
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
----------
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
**districts**
|
|
36
|
-
|
|
37
|
-
|Field |Type |Key|Description |
|
|
38
|
-
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
39
|
-
|amp_code|String(4)|PK|รหัสอำเภอ|
|
|
40
|
-
|amp_th|String(254)||ชื่ออำเภอภาษาไทย|
|
|
41
|
-
|amp_en|String(254)||ชื่ออำเภอภาษาอังกฤษ|
|
|
42
|
-
|pro_code|String(2)||รหัสจังหวัด|
|
|
43
|
-
|pro_th|String(254)||ชื่อจังหวัดภาษาไทย|
|
|
44
|
-
|pro_en|String(254)||ชื่อจังหวัดภาษาอังกฤษ|
|
|
45
|
-
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
46
|
-
|reg_royin|String(254)||เขตภูมิภาค|
|
|
47
|
-
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
48
|
-
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
49
|
-
|
|
50
|
-
----------
|
|
51
|
-
|
|
52
|
-
**subdistricts**
|
|
53
|
-
|
|
54
|
-
|Field |Type |Key|Description |
|
|
55
|
-
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
56
|
-
|pro_code|String(2)|PK|รหัสจังหวัด|
|
|
57
|
-
|pro_th|String(254)||ชื่อจังหวัดภาษาไทย|
|
|
58
|
-
|pro_en|String(254)||ชื่อจังหวัดภาษาอังกฤษ|
|
|
59
|
-
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
60
|
-
|reg_royin|String(254)||เขตภูมิภาค|
|
|
61
|
-
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
62
|
-
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
63
|
-
|
|
64
|
-
----------
|
|
65
|
-
|
|
66
|
-
**region_royin**
|
|
67
|
-
|
|
68
|
-
|Field |Type |Key|Description |
|
|
69
|
-
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
70
|
-
|reg_royin|String(254)||เขตภูมิภาค|
|
|
71
|
-
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
72
|
-
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
73
|
-
|
|
74
|
-
----------
|
|
75
|
-
|
|
76
|
-
**region_nesdb**
|
|
77
|
-
|
|
78
|
-
|Field |Type |Key|Description |
|
|
79
|
-
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
80
|
-
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
81
|
-
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
82
|
-
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
83
|
-
|
|
84
|
-
----------
|
|
85
|
-
|
|
86
|
-
## แหล่งอ้างอิงข้อมูล
|
|
87
|
-
-
|
|
1
|
+
# OpenGISData-Thailand
|
|
2
|
+
Open GIS Data Sources in Thailand
|
|
3
|
+
|
|
4
|
+
## เป็นไฟล์รูปแบบ geojson มีทั้งหมด 3 ไฟล์คือ
|
|
5
|
+
- ชั้นข้อมูลขอบเขตจังหวัด 77 จังหวัด (provinces.geojson)
|
|
6
|
+
- ชั้นข้อมูลขอบเขตอำเภอ 928 อำเภอ (districts.geojson)
|
|
7
|
+
- ชั้นข้อมูลขอบเขตตำบล 7367 ตำบล (subdistricts.geojson)
|
|
8
|
+
- ชั้นข้อมูลขอบเขตภูมิภาค 7 ภูมิภาค (region_royin.geojson)
|
|
9
|
+
- ชั้นข้อมูลขอบเขตภูมิภาค 6 ภูมิภาค (region_nesdb.geojson)
|
|
10
|
+
|
|
11
|
+
## Data dictionary
|
|
12
|
+
**provinces**
|
|
13
|
+
|
|
14
|
+
|Field |Type |Key|Description |
|
|
15
|
+
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
16
|
+
|gid|Integer(10)|PK|gid|
|
|
17
|
+
|tam_code|String(6)||รหัสตำบล|
|
|
18
|
+
|tam_th|String(254)||ชื่อตำบลภาษาไทย|
|
|
19
|
+
|tam_en|String(254)||ชื่อตำบลภาษาอังกฤษ|
|
|
20
|
+
|amp_code|String(4)||รหัสอำเภอ|
|
|
21
|
+
|amp_th|String(254)||ชื่ออำเภอภาษาไทย|
|
|
22
|
+
|amp_en|String(254)||ชื่ออำเภอภาษาอังกฤษ|
|
|
23
|
+
|pro_code|String(2)||รหัสจังหวัด|
|
|
24
|
+
|pro_th|String(254)||ชื่อจังหวัดภาษาไทย|
|
|
25
|
+
|pro_en|String(254)||ชื่อจังหวัดภาษาอังกฤษ|
|
|
26
|
+
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
27
|
+
|reg_royin|String(254)||เขตภูมิภาค|
|
|
28
|
+
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
29
|
+
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
----------
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
**districts**
|
|
36
|
+
|
|
37
|
+
|Field |Type |Key|Description |
|
|
38
|
+
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
39
|
+
|amp_code|String(4)|PK|รหัสอำเภอ|
|
|
40
|
+
|amp_th|String(254)||ชื่ออำเภอภาษาไทย|
|
|
41
|
+
|amp_en|String(254)||ชื่ออำเภอภาษาอังกฤษ|
|
|
42
|
+
|pro_code|String(2)||รหัสจังหวัด|
|
|
43
|
+
|pro_th|String(254)||ชื่อจังหวัดภาษาไทย|
|
|
44
|
+
|pro_en|String(254)||ชื่อจังหวัดภาษาอังกฤษ|
|
|
45
|
+
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
46
|
+
|reg_royin|String(254)||เขตภูมิภาค|
|
|
47
|
+
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
48
|
+
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
49
|
+
|
|
50
|
+
----------
|
|
51
|
+
|
|
52
|
+
**subdistricts**
|
|
53
|
+
|
|
54
|
+
|Field |Type |Key|Description |
|
|
55
|
+
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
56
|
+
|pro_code|String(2)|PK|รหัสจังหวัด|
|
|
57
|
+
|pro_th|String(254)||ชื่อจังหวัดภาษาไทย|
|
|
58
|
+
|pro_en|String(254)||ชื่อจังหวัดภาษาอังกฤษ|
|
|
59
|
+
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
60
|
+
|reg_royin|String(254)||เขตภูมิภาค|
|
|
61
|
+
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
62
|
+
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
63
|
+
|
|
64
|
+
----------
|
|
65
|
+
|
|
66
|
+
**region_royin**
|
|
67
|
+
|
|
68
|
+
|Field |Type |Key|Description |
|
|
69
|
+
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
70
|
+
|reg_royin|String(254)||เขตภูมิภาค|
|
|
71
|
+
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
72
|
+
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
73
|
+
|
|
74
|
+
----------
|
|
75
|
+
|
|
76
|
+
**region_nesdb**
|
|
77
|
+
|
|
78
|
+
|Field |Type |Key|Description |
|
|
79
|
+
|----------------|-------------------------------|-----------------------------|-----------------------------|
|
|
80
|
+
|reg_nesdb|String(254)||เขตภูมิภาค|
|
|
81
|
+
|perimeter|Real(18,11)||เส้นรอบรูป กิโลเมตร|
|
|
82
|
+
|area_sqkm|Real(18,11)||เนื้อที่ ตารางกิโลเมตร|
|
|
83
|
+
|
|
84
|
+
----------
|
|
85
|
+
|
|
86
|
+
## แหล่งอ้างอิงข้อมูล
|
|
87
|
+
-
|