zignal-stencil-library 1.1.109 → 1.1.110
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/cjs/autocomplete-address_43.cjs.entry.js +129 -67
- package/dist/cjs/quick-message-app.cjs.entry.js +1 -1
- package/dist/cjs/quick-message-app.entry.cjs.js.map +1 -1
- package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
- package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
- package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
- package/dist/collection/components/autocomplete-select/autocomplete-select.js +4 -3
- package/dist/collection/components/autocomplete-select/autocomplete-select.js.map +1 -1
- package/dist/collection/components/channel-box/channel-box.css +1 -1
- package/dist/collection/components/chat-app/chat-app.css +1 -1
- package/dist/collection/components/chat-header/chat-header.css +1 -1
- package/dist/collection/components/chat-input/chat-input.css +1 -1
- package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
- package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
- package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
- package/dist/collection/components/dialog-editor/dialog-editor.js +42 -25
- package/dist/collection/components/dialog-editor/dialog-editor.js.map +1 -1
- package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
- package/dist/collection/components/dialog-search/dialog-search.css +1 -1
- package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
- package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
- package/dist/collection/components/menu-list/menu-list.css +1 -1
- package/dist/collection/components/message-box/message-box.css +1 -1
- package/dist/collection/components/message-content/message-content.css +1 -1
- package/dist/collection/components/message-item/message-item.css +1 -1
- package/dist/collection/components/message-media/message-media.css +1 -1
- package/dist/collection/components/profile-history/profile-history.css +1 -1
- package/dist/collection/components/profile-info/profile-info.css +1 -1
- package/dist/collection/components/profile-info/profile-info.js +5 -4
- package/dist/collection/components/profile-info/profile-info.js.map +1 -1
- package/dist/collection/components/profile-info/user-info-section.js +2 -2
- package/dist/collection/components/profile-info/user-info-section.js.map +1 -1
- package/dist/collection/components/profile-media/profile-media.css +1 -1
- package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
- package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
- package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
- package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
- package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
- package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
- package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
- package/dist/collection/components/search-box/search-box.css +1 -1
- package/dist/collection/components/status-badge/status-badge.css +1 -1
- package/dist/collection/components/tag-list/tag-list.css +1 -1
- package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
- package/dist/collection/components/tag-popper/tag-popper.css +1 -1
- package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
- package/dist/collection/components/z-avatar/z-avatar.css +1 -1
- package/dist/collection/components/z-dialog/z-dialog.css +1 -1
- package/dist/components/autocomplete-address.js +1 -1
- package/dist/components/autocomplete-multiple-select.js +1 -1
- package/dist/components/autocomplete-select.js +1 -1
- package/dist/components/channel-box.js +1 -1
- package/dist/components/chat-app.js +38 -38
- package/dist/components/chat-app.js.map +1 -1
- package/dist/components/chat-header.js +1 -1
- package/dist/components/chat-input.js +1 -1
- package/dist/components/checkbox-list.js +1 -1
- package/dist/components/dialog-bill-editor.js +1 -1
- package/dist/components/dialog-editor.js +1 -1
- package/dist/components/dialog-preview-media.js +1 -1
- package/dist/components/dialog-search.js +1 -1
- package/dist/components/menu-chat-channel.js +1 -1
- package/dist/components/menu-chat-type.js +1 -1
- package/dist/components/menu-list.js +1 -1
- package/dist/components/message-box.js +1 -1
- package/dist/components/message-content.js +1 -1
- package/dist/components/message-item.js +1 -1
- package/dist/components/message-media.js +1 -1
- package/dist/components/{p-DVnAr27s.js → p-2nxqY6Yv.js} +5 -5
- package/dist/components/{p-DVnAr27s.js.map → p-2nxqY6Yv.js.map} +1 -1
- package/dist/components/{p-DkAZFStQ.js → p-34NvdAct.js} +7 -7
- package/dist/components/{p-DkAZFStQ.js.map → p-34NvdAct.js.map} +1 -1
- package/dist/components/{p-C6_QUEmP.js → p-8c8Dr0ZV.js} +17 -17
- package/dist/components/{p-C6_QUEmP.js.map → p-8c8Dr0ZV.js.map} +1 -1
- package/dist/components/{p-BxtUL608.js → p-B0F3Fpbq.js} +3 -3
- package/dist/components/{p-BxtUL608.js.map → p-B0F3Fpbq.js.map} +1 -1
- package/dist/components/{p-BVEUC5lT.js → p-B5dJsgfS.js} +3 -3
- package/dist/components/{p-BVEUC5lT.js.map → p-B5dJsgfS.js.map} +1 -1
- package/dist/components/{p-CAzwNTwH.js → p-BQ0yCCV6.js} +3 -3
- package/dist/components/{p-CAzwNTwH.js.map → p-BQ0yCCV6.js.map} +1 -1
- package/dist/components/{p-CTSEDIyo.js → p-BQwk0OCD.js} +8 -8
- package/dist/components/{p-CTSEDIyo.js.map → p-BQwk0OCD.js.map} +1 -1
- package/dist/components/{p-BLIkH1Mo.js → p-BTItt0Vn.js} +18 -17
- package/dist/components/p-BTItt0Vn.js.map +1 -0
- package/dist/components/{p-lh6oIsdX.js → p-BfwDQevk.js} +4 -4
- package/dist/components/{p-lh6oIsdX.js.map → p-BfwDQevk.js.map} +1 -1
- package/dist/components/{p-DE1veeiP.js → p-BtVgKal4.js} +10 -10
- package/dist/components/p-BtVgKal4.js.map +1 -0
- package/dist/components/{p-Cq3trT50.js → p-COFzcZWg.js} +5 -5
- package/dist/components/{p-Cq3trT50.js.map → p-COFzcZWg.js.map} +1 -1
- package/dist/components/{p-DozNuTlX.js → p-CZjMEPqi.js} +42 -25
- package/dist/components/p-CZjMEPqi.js.map +1 -0
- package/dist/components/{p-LUMkIl0L.js → p-Cav9Xvhc.js} +4 -4
- package/dist/components/{p-LUMkIl0L.js.map → p-Cav9Xvhc.js.map} +1 -1
- package/dist/components/{p-VAINz5I8.js → p-CoklAWrF.js} +17 -17
- package/dist/components/{p-VAINz5I8.js.map → p-CoklAWrF.js.map} +1 -1
- package/dist/components/{p-BcvqaW9a.js → p-Csg2zfWF.js} +4 -4
- package/dist/components/{p-BcvqaW9a.js.map → p-Csg2zfWF.js.map} +1 -1
- package/dist/components/{p--O1ZEUbW.js → p-D-KXyaWT.js} +4 -4
- package/dist/components/{p--O1ZEUbW.js.map → p-D-KXyaWT.js.map} +1 -1
- package/dist/components/{p-DI7kfodM.js → p-D6cBz4be.js} +8 -8
- package/dist/components/{p-DI7kfodM.js.map → p-D6cBz4be.js.map} +1 -1
- package/dist/components/{p-Cr7gI0aa.js → p-DBgHNduI.js} +3 -3
- package/dist/components/{p-Cr7gI0aa.js.map → p-DBgHNduI.js.map} +1 -1
- package/dist/components/{p-DGF1OMnC.js → p-DHFOACHm.js} +3 -3
- package/dist/components/{p-DGF1OMnC.js.map → p-DHFOACHm.js.map} +1 -1
- package/dist/components/{p-D3TCeN-_.js → p-DLUy8rmx.js} +8 -8
- package/dist/components/{p-D3TCeN-_.js.map → p-DLUy8rmx.js.map} +1 -1
- package/dist/components/{p-Bi4p_UFq.js → p-DOx_fYz_.js} +7 -7
- package/dist/components/{p-Bi4p_UFq.js.map → p-DOx_fYz_.js.map} +1 -1
- package/dist/components/{p-fbMxRrBR.js → p-DQjjDohc.js} +3 -3
- package/dist/components/{p-fbMxRrBR.js.map → p-DQjjDohc.js.map} +1 -1
- package/dist/components/{p-BsAFeM-5.js → p-DT1e8U5J.js} +5 -5
- package/dist/components/{p-BsAFeM-5.js.map → p-DT1e8U5J.js.map} +1 -1
- package/dist/components/{p-BvfI15a9.js → p-DXliIvkR.js} +3 -3
- package/dist/components/{p-BvfI15a9.js.map → p-DXliIvkR.js.map} +1 -1
- package/dist/components/{p-D4jpzhhj.js → p-Drdp5Euh.js} +3 -3
- package/dist/components/{p-D4jpzhhj.js.map → p-Drdp5Euh.js.map} +1 -1
- package/dist/components/{p-CQYTqV0b.js → p-DyI3f7kr.js} +3 -3
- package/dist/components/{p-CQYTqV0b.js.map → p-DyI3f7kr.js.map} +1 -1
- package/dist/components/{p-DagQghge.js → p-GrnK0v_A.js} +3 -3
- package/dist/components/{p-DagQghge.js.map → p-GrnK0v_A.js.map} +1 -1
- package/dist/components/{p-BPSZx5dO.js → p-UWiH2uHw.js} +46 -3
- package/dist/components/p-UWiH2uHw.js.map +1 -0
- package/dist/components/{p-Bz_ZwZP1.js → p-WYN1j0PL.js} +7 -6
- package/dist/components/p-WYN1j0PL.js.map +1 -0
- package/dist/components/{p-xDz70z-M.js → p-Zye2AvZI.js} +3 -3
- package/dist/components/{p-xDz70z-M.js.map → p-Zye2AvZI.js.map} +1 -1
- package/dist/components/{p-V8jogkYH.js → p-a3QvEULN.js} +3 -3
- package/dist/components/{p-V8jogkYH.js.map → p-a3QvEULN.js.map} +1 -1
- package/dist/components/{p-Cl7hIV7X.js → p-aG9sejEo.js} +4 -4
- package/dist/components/{p-Cl7hIV7X.js.map → p-aG9sejEo.js.map} +1 -1
- package/dist/components/{p-B8KaZkC1.js → p-b7Sv1iEG.js} +3 -3
- package/dist/components/{p-B8KaZkC1.js.map → p-b7Sv1iEG.js.map} +1 -1
- package/dist/components/p-eM9QTWv9.js +95 -0
- package/dist/components/{p-Db2KItIV.js.map → p-eM9QTWv9.js.map} +1 -1
- package/dist/components/{p-Bfsq37ia.js → p-rShdvhEn.js} +3 -3
- package/dist/components/{p-Bfsq37ia.js.map → p-rShdvhEn.js.map} +1 -1
- package/dist/components/{p-DBulpvHu.js → p-tAmACNBr.js} +5 -5
- package/dist/components/{p-DBulpvHu.js.map → p-tAmACNBr.js.map} +1 -1
- package/dist/components/{p-C2y4A6PK.js → p-uDj0XDfv.js} +3 -3
- package/dist/components/{p-C2y4A6PK.js.map → p-uDj0XDfv.js.map} +1 -1
- package/dist/components/{p-DKZZLjoB.js → p-xc8pAQt4.js} +3 -3
- package/dist/components/{p-DKZZLjoB.js.map → p-xc8pAQt4.js.map} +1 -1
- package/dist/components/profile-history.js +1 -1
- package/dist/components/profile-info.js +1 -1
- package/dist/components/profile-media.js +1 -1
- package/dist/components/profile-tabs.js +1 -1
- package/dist/components/quick-message-add-template.js +1 -1
- package/dist/components/quick-message-app.js +6 -6
- package/dist/components/quick-message-app.js.map +1 -1
- package/dist/components/quick-message-file.js +1 -1
- package/dist/components/quick-message-image.js +1 -1
- package/dist/components/quick-message-modal.js +1 -1
- package/dist/components/quick-message-template.js +1 -1
- package/dist/components/search-box.js +1 -1
- package/dist/components/status-badge.js +1 -1
- package/dist/components/summarize-message-section.js +1 -1
- package/dist/components/tag-list.js +1 -1
- package/dist/components/tag-or-status-item.js +1 -1
- package/dist/components/tag-popper.js +1 -1
- package/dist/components/typography-clamp.js +1 -1
- package/dist/components/user-info-section.js +1 -1
- package/dist/components/z-avatar.js +1 -1
- package/dist/components/z-dialog.js +1 -1
- package/dist/esm/autocomplete-address_43.entry.js +129 -67
- package/dist/esm/quick-message-app.entry.js +1 -1
- package/dist/esm/quick-message-app.entry.js.map +1 -1
- package/dist/zignal-stencil-library/{p-d9b292e2.entry.js → p-35a45709.entry.js} +3 -3
- package/dist/zignal-stencil-library/p-35a45709.entry.js.map +1 -0
- package/dist/zignal-stencil-library/p-b3cbf3e3.entry.js +2 -0
- package/dist/zignal-stencil-library/{p-605cf9fb.entry.js.map → p-b3cbf3e3.entry.js.map} +1 -1
- package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
- package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
- package/package.json +1 -1
- package/dist/components/p-BLIkH1Mo.js.map +0 -1
- package/dist/components/p-BPSZx5dO.js.map +0 -1
- package/dist/components/p-Bz_ZwZP1.js.map +0 -1
- package/dist/components/p-DE1veeiP.js.map +0 -1
- package/dist/components/p-Db2KItIV.js +0 -95
- package/dist/components/p-DozNuTlX.js.map +0 -1
- package/dist/zignal-stencil-library/p-605cf9fb.entry.js +0 -2
- package/dist/zignal-stencil-library/p-d9b292e2.entry.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as e,h as i,H as a}from"./p-DjdYK_gt.js";import{i as r}from"./p-CdYiy5U2.js";import{c as o,s as n,a as s,u as l}from"./p-DO7BhE7i.js";const c='@layer base{*,::backdrop,:after,:before{--tw-space-x-reverse:0;--tw-shadow:0 0 #0000;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-alpha:100%;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-drop-shadow-alpha:100%;--tw-border-style:solid;border:0 solid;box-sizing:border-box;margin:0;padding:0}}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-space-x-reverse:0;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid}}}@layer theme{:host,:root{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-medium:500;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:"Kanit",var(--default-font);--default-mono-font-family:var(--font-mono);--default-font:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-primary-dark:#b50f30;--color-secondary-dark:#fff;--color-background-dark:#23292d}}@layer base{::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-meridiem-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-color:oklch(55.1% .027 264.364);border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);border-color:oklch(54.6% .245 262.881);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'none\' viewBox=\'0 0 20 20\'%3E%3Cpath stroke=\'oklch(55.1%25 0.027 264.364)\' stroke-linecap=\'round\' stroke-linejoin=\'round\' stroke-width=\'1.5\' d=\'m6 8 4 4 4-4\'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}[type=checkbox],[type=radio]{appearance:none;color:oklch(54.6% .245 262.881);print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-color:oklch(55.1% .027 264.364);border-width:1px;display:inline-block;flex-shrink:0;height:1rem;padding:0;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 16 16\'%3E%3Cpath d=\'M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0\'/%3E%3C/svg%3E")}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 16 16\'%3E%3Ccircle cx=\'8\' cy=\'8\' r=\'3\'/%3E%3C/svg%3E")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'none\' viewBox=\'0 0 16 16\'%3E%3Cpath stroke=\'%23fff\' stroke-linecap=\'round\' stroke-linejoin=\'round\' stroke-width=\'2\' d=\'M4 8h8\'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.dialog-backdrop{align-items:center;background-color:#0006;display:flex;inset:calc(var(--spacing)*0);justify-content:center;position:fixed;z-index:50}@supports (color:color-mix(in lab,red,red)){.dialog-backdrop{background-color:color-mix(in oklab,var(--color-black)40%,transparent);background-color:color-mix(in srgb,#00040%,transparent)}}.chat-item{border-radius:var(--radius-xl);cursor:pointer;margin-block:calc(var(--spacing)*1);margin-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);align-items:flex-start;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:flex;position:relative}:where(.chat-item>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-pin{position:absolute;right:-12px;top:calc(var(--spacing)*1)}.chat-item .chat-item-pin-icon{fill:currentColor;height:calc(var(--spacing)*3);rotate:45deg;width:calc(var(--spacing)*3)}.chat-item .chat-item-content-container{display:flex;flex-direction:row;width:100%}:where(.chat-item .chat-item-content-container>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-avatar-wrapper{align-self:center;flex-shrink:0;position:relative}.chat-item .chat-item-avatar-badge{bottom:-2px;position:absolute;right:-2px}.chat-item .chat-item-content-wrapper{min-height:calc(var(--spacing)*18);width:100%}.chat-item .chat-item-content-main{align-items:center;display:flex}:where(.chat-item .chat-item-content-main>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}.chat-item .chat-item-content-main-image{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.chat-item .chat-item-content-main-name{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-main-time{color:var(--color-gray-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-secondary{align-items:flex-start;display:flex;flex-direction:row;width:100%}.chat-item .chat-item-content-secondary-nickname{font-size:var(--text-base);-webkit-line-clamp:1;line-height:var(--tw-leading,var(--text-base--line-height));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message{color:var(--color-gray-600);font-size:var(--text-sm);-webkit-line-clamp:1;line-height:var(--tw-leading,var(--text-sm--line-height));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-unread{background-color:var(--color-primary);border-radius:3.40282e+38px;color:var(--color-white);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-unread-mark{display:inline-block;height:calc(var(--spacing)*2.5);width:calc(var(--spacing)*2.5)}.chat-item .chat-item-content-unread-count{padding-block:calc(var(--spacing)*.5);padding-inline:calc(var(--spacing)*2)}.z-icon-button{cursor:pointer;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-icon-button:focus{--tw-outline-style:none;outline-style:none}.z-icon-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-icon-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-icon-button-disabled{cursor:not-allowed;opacity:.5}.z-button{cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button:focus{--tw-outline-style:none;outline-style:none}.z-button-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px;color:var(--color-primary)}.z-button-disabled{cursor:not-allowed;opacity:.5}.z-button-text{margin-inline:calc(var(--spacing)*2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.z-input-area-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input-area-input,.z-input-area-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input-area-input{border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input-area-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-area-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-input-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input,.z-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input{border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-radius:3.40282e+38px;border-width:1px;width:100%}.z-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-select-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-tag-or-status-item{align-items:center;border-radius:var(--radius-2xl);gap:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*3);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:inline-flex}.z-tag-or-status-item .z-tag-or-status-item-name{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));max-width:calc(var(--spacing)*20)}.z-tag-or-status-item .z-tag-or-status-item-icon{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-context-input{align-items:center;display:flex;flex-direction:row;margin-block:calc(var(--spacing)*1)}.z-context-input-key{border-bottom-left-radius:var(--radius-3xl);border-style:var(--tw-border-style);border-top-left-radius:var(--radius-3xl);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);width:100%;--tw-ring-color:var(--color-primary);border-width:1px;flex:1}.z-context-input-key:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-context-input-value{border-bottom-right-radius:var(--radius-3xl);border-style:var(--tw-border-style);border-top-right-radius:var(--radius-3xl);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);width:100%;--tw-ring-color:var(--color-primary);border-width:1px;flex:2}.z-context-input-value:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-text-with-link{color:var(--color-blue-600);text-decoration-line:underline}}@layer utilities{.contents{display:contents}.px-4{padding-inline:calc(var(--spacing)*4)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.scroll-container::-webkit-scrollbar{background:#0000001a;height:8px;width:8px}.scroll-container:active::-webkit-scrollbar,.scroll-container:hover::-webkit-scrollbar{background:#0003}.scroll-container:active::-webkit-scrollbar-thumb,.scroll-container:hover::-webkit-scrollbar-thumb{background:#0006;border-radius:4px}.z-text-light{color:var(--color-black)}.z-text-dark{color:var(--color-white)}.z-text-primary-light{color:var(--color-primary)}.z-text-primary-dark{color:var(--color-primary-dark)}.z-text-gray-light{color:var(--color-gray-500)}.z-text-gray-dark{color:var(--color-gray-300)}.z-text-background-light{color:var(--color-background)}.z-text-background-dark{color:var(--color-background-dark)}.z-border-light{border-color:var(--color-black)}.z-border-dark{border-color:var(--color-white)}.z-border-primary-light{border-color:var(--color-primary)}.z-border-primary-dark{border-color:var(--color-primary-dark)}.z-border-divider-light{border-color:var(--color-gray-400)}.z-border-divider-dark{border-color:var(--color-gray-300)}.z-search-input-background-light{background-color:var(--color-gray-200)}.z-search-input-background-dark{background-color:var(--color-gray-500)}.z-chat-input-background-light{background-color:var(--color-white)}.z-chat-input-background-dark{background-color:var(--color-gray-700)}.z-placeholder-light::placeholder{color:var(--color-gray-500)}.z-placeholder-dark::placeholder{color:var(--color-gray-200)}.z-background-primary-light{background-color:var(--color-primary)}.z-background-primary-dark{background-color:var(--color-primary-dark)}.z-background-light{background-color:var(--color-background)}.z-background-dark{background-color:var(--color-background-dark)}.z-paper-light{background-color:var(--color-gray-100)}.z-paper-dark{background-color:var(--color-gray-700)}.z-bg-gray-light{background-color:var(--color-gray-500)}.z-bg-gray-dark{background-color:var(--color-gray-300)}.z-width-100{width:100%}.z-width-90{width:90%}.z-width-75{width:75%}.z-width-50{width:50%}.z-width-25{width:25%}.z-width-0{width:0}.z-animate-width{transition-duration:.5s;transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.z-animate-grid-template-cols{transition:grid-template-rows .5s}[type=checkbox]{background-color:var(--color-gray-300);border-color:var(--color-gray-300);border-radius:4px;cursor:pointer}[type=checkbox]:checked,[type=checkbox]:indeterminate{background-color:var(--color-primary);border-color:var(--color-primary);border-radius:4px;cursor:pointer}[type=checkbox]:focus{offset:0;outline-offset:0;--tw-ring-color:var(--color-primary);outline:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grid-cols-1{grid-template-columns:1fr}.grid-cols-1_3{grid-template-columns:1fr 3fr}.grid-cols-1_2_1{grid-template-columns:1fr 2fr 1fr}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-space-x-reverse:0;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid}}}@layer base{}@layer components{.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-input,.z-input-area-input,.z-input-area-label,.z-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.quick-message-app__host,:host{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;max-height:var(--quick-message-app-max-height,calc(100vh - 120px));min-height:var(--quick-message-app-min-height,calc(100vh - 120px));overflow:hidden;width:100%}.quick-message-app__shell{box-sizing:border-box;height:100%;max-height:var(--quick-message-app-max-height,calc(100vh - 120px));min-height:var(--quick-message-app-min-height,calc(100vh - 120px));--quick-app-primary:var(--color-primary);--quick-modal-surface:var(--color-background);--quick-modal-primary:var(--quick-app-primary);--quick-modal-primary-soft:var(--quick-modal-primary);--quick-modal-primary-border:var(--quick-modal-primary);--quick-modal-primary-shadow:var(--quick-modal-primary);--quick-modal-primary-ghost:var(--quick-modal-primary);display:flex;flex:1;flex-direction:column;gap:8px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.quick-message-app__shell{--quick-modal-primary-soft:var(--quick-modal-primary);--quick-modal-primary-soft:color-mix(in srgb,var(--quick-modal-primary)14%,transparent);--quick-modal-primary-border:var(--quick-modal-primary);--quick-modal-primary-border:color-mix(in srgb,var(--quick-modal-primary)55%,transparent);--quick-modal-primary-shadow:var(--quick-modal-primary);--quick-modal-primary-shadow:color-mix(in srgb,var(--quick-modal-primary)22%,transparent);--quick-modal-primary-ghost:var(--quick-modal-primary);--quick-modal-primary-ghost:color-mix(in srgb,var(--quick-modal-primary)18%,var(--quick-modal-surface))}}.quick-message-app__host.z-background-dark .quick-message-app__shell{--quick-app-primary:var(--color-primary-dark);--quick-modal-surface:var(--color-background-dark)}.quick-message-app__header{display:flex;flex-direction:column;gap:12px}.quick-message-app__header-text h1{font-size:20px;font-weight:600;margin:0}.quick-message-app__header-text p{font-size:14px;margin:4px 0 0;opacity:.7}.quick-message-app__stats{display:flex;flex-wrap:wrap;font-size:12px;gap:12px;opacity:.8}.quick-message-app__tabs{border-bottom:1px solid #94a3b859;display:flex;gap:12px;padding-bottom:8px}.quick-message-app__tabs button{background:0 0;border:none;border-radius:9999px;color:inherit;cursor:pointer;font-weight:600;opacity:.7;padding:8px 20px;transition:background .2s,opacity .2s}.quick-message-app__tabs button.active{background:var(--quick-app-primary);color:var(--quick-app-primary);opacity:1}@supports (color:color-mix(in lab,red,red)){.quick-message-app__tabs button.active{background:var(--quick-app-primary);background:color-mix(in srgb,var(--quick-app-primary)14%,transparent)}}.quick-message-app__content{display:flex;flex-direction:column;overflow:hidden}.quick-message-app__content,.quick-message-app__content quick-message-file,.quick-message-app__content quick-message-image,.quick-message-app__content quick-message-template{flex:1;min-height:0;min-width:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@media (forced-colors:active){[type=checkbox]:checked,[type=radio]:checked{appearance:auto}[type=checkbox]:indeterminate{appearance:auto}[type=checkbox]:checked,[type=checkbox]:indeterminate,[type=radio]:checked{appearance:auto}}@media (hover:hover){.z-button-outlined:hover,.z-button-primary:hover,.z-icon-button-outlined:hover,.z-icon-button-primary:hover,.z-icon-button-text:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}@media screen and (min-width:0){.z-max-height{height:calc(100vh - 56px)}}@media screen and (min-width:600px){.z-max-height{height:calc(100vh - 64px)}}@media (min-width:768px){.quick-message-app__header{align-items:flex-start;flex-direction:row;justify-content:space-between}.quick-message-app__header-text{max-width:480px}}@media (max-width:640px){.quick-message-app__shell{padding:16px}}';const d=class{constructor(i){t(this,i);this.templatesChange=e(this,"templatesChange");this.imagesChange=e(this,"imagesChange");this.filesChange=e(this,"filesChange")}languagePref="en";themeMode="light";templateData;imageLibrary;fileLibrary;businessId;shopId;accessToken;isProduction;timeZone;activeTab="template";templates=[];images=[];files=[];templatesChange;imagesChange;filesChange;connectedCallback(){this.applyLanguage(this.languagePref);this.applyTheme(this.themeMode);this.setBusinessId(this.businessId);this.setShopId(this.shopId);this.setAccessToken(this.accessToken);this.setIsProduction(this.toBoolean(this.isProduction));this.setTimeZone(this.timeZone)}componentWillLoad(){this.templates=this.parseTemplates(this.templateData);this.images=this.parseLibrary(this.imageLibrary);this.files=this.parseLibrary(this.fileLibrary);this.setBusinessId(this.businessId);this.setShopId(this.shopId);this.setAccessToken(this.accessToken);this.setIsProduction(this.toBoolean(this.isProduction));this.setTimeZone(this.timeZone)}handleLanguageChange(t){this.applyLanguage(t)}handleThemeChange(t){this.applyTheme(t)}handleTemplateDataChange(t){this.templates=this.parseTemplates(t)}handleImageLibraryChange(t){this.images=this.parseLibrary(t)}handleFileLibraryChange(t){this.files=this.parseLibrary(t)}handleBusinessIdChange(t){this.setBusinessId(t)}handleShopIdChange(t){this.setShopId(t)}handleAccessTokenChange(t){this.setAccessToken(t)}handleIsProductionChange(t){this.setIsProduction(this.toBoolean(t))}handleTimeZoneChange(t){this.setTimeZone(t)}applyLanguage(t){if(r.language!==t){r.changeLanguage(t)}o.set("language",t);n(t)}applyTheme(t){o.set("theme",t)}setBusinessId(t){o.set("businessId",t||null)}setShopId(t){o.set("shopId",t||null)}setAccessToken(t){o.set("accessToken",t||null)}setIsProduction(t){o.set("isProduction",t)}setTimeZone(t){if(!t||t==="null"){const t=Intl.DateTimeFormat().resolvedOptions().timeZone;o.set("timeZone",t);s(t);return}o.set("timeZone",t);s(t)}toBoolean(t){if(typeof t==="boolean"){return t}if(typeof t==="string"){return t.toLowerCase()==="true"}return false}parseTemplates(t){if(!t){return[]}if(typeof t==="string"){try{const e=JSON.parse(t);return this.cloneTemplates(e)}catch(t){console.warn("[quick-message-app] Failed to parse template data",t);return[]}}return this.cloneTemplates(t)}parseLibrary(t){if(!t){return[]}if(typeof t==="string"){try{const e=JSON.parse(t);return this.cloneLibrary(e)}catch(t){console.warn("[quick-message-app] Failed to parse library data",t);return[]}}return this.cloneLibrary(t)}cloneTemplates(t){return(t||[]).map((t=>{const e=t.contents||[];const i=e.map((t=>{const e=t.menu_list||[];const i=e.map((t=>({...t,buttons:(t.buttons||[]).map((t=>({...t})))})));return{...t,buttons:(t.buttons||[]).map((t=>({...t}))),menu_list:i,menuList:i}}));return{...t,content:i}}))}cloneLibrary(t){return(t||[]).map((t=>({...t,isSelected:t.isSelected??false})))}handleTemplatesChange(t){const e=this.cloneTemplates(t.detail||[]);this.templates=e;this.templatesChange.emit(e)}handleImagesChange(t){const e=this.cloneLibrary(t.detail||[]);this.images=e;this.imagesChange.emit(e)}handleFilesChange(t){const e=this.cloneLibrary(t.detail||[]);this.files=e;this.filesChange.emit(e)}setActiveTab(t){this.activeTab=t}render(){const t=l();const e=o.get("theme");return i(a,{key:"33bde3d431766a4fe61c43b995c62871241eac16",class:`quick-message-app__host z-background-${e} z-text-${e}`},i("div",{key:"c075f624c6dd503ede14bd4c271d65ce9ff9ad26",class:"quick-message-app__shell px-4"},i("header",{key:"eb1847c806e01e639b1e4acb398c046b5aa22627",class:"quick-message-app__header"},i("div",{key:"7f728526df466a7ae564502f90d343661df55753",class:"quick-message-app__header-text"},i("h1",{key:"8d14d0ad86d77439afe657c13bc28fd254d74a4a"},t("quick_message.title")))),i("nav",{key:"49f355d3326a66343a2db6d48c399926994c8ee1",class:"quick-message-app__tabs text-sm"},i("button",{key:"57d195bdac97e6aa227a07b7ed1b2b4e33fc2944",type:"button",class:this.activeTab==="template"?"active":"",onClick:()=>this.setActiveTab("template")},t("quick_message.tab_template")),i("button",{key:"122641f8bc71c21d93d24c3f282f244fc279f6ac",type:"button",class:this.activeTab==="image"?"active":"",onClick:()=>this.setActiveTab("image")},t("image")),i("button",{key:"4f97f9fe3afa5757060b15aeb17340bc8f954f8d",type:"button",class:this.activeTab==="file"?"active":"",onClick:()=>this.setActiveTab("file")},t("file"))),i("section",{key:"076374e93bc7fa0a86013dfb39d4664f9b5a9714",class:"quick-message-app__content"},this.activeTab==="template"&&i("quick-message-template",{key:"711332d421056c2d77c8b80b3ae1de164925f4e8",value:this.templates,onTemplatesChange:t=>this.handleTemplatesChange(t),isMaster:true}),this.activeTab==="image"&&i("quick-message-image",{key:"bfbd68ca36d192e3b9c5a6beec7f862cc6554479",value:this.images,onImagesChange:t=>this.handleImagesChange(t),isMaster:true}),this.activeTab==="file"&&i("quick-message-file",{key:"f669ac01415b58af49337cefdcda1a54c036d2ae",value:this.files,onFilesChange:t=>this.handleFilesChange(t),isMaster:true}))),i("z-dialog",{key:"9b31aa1d39560410d6aa0905c01c3e12e1866c0a"}))}static get watchers(){return{languagePref:["handleLanguageChange"],themeMode:["handleThemeChange"],templateData:["handleTemplateDataChange"],imageLibrary:["handleImageLibraryChange"],fileLibrary:["handleFileLibraryChange"],businessId:["handleBusinessIdChange"],shopId:["handleShopIdChange"],accessToken:["handleAccessTokenChange"],isProduction:["handleIsProductionChange"],timeZone:["handleTimeZoneChange"]}}};d.style=c;export{d as quick_message_app};
|
|
2
|
+
//# sourceMappingURL=p-b3cbf3e3.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerInstance","createEvent","h","Host","instance","configStore","setDayjsLocale","setDayjsTimeZone","useTranslation","quickMessageAppCss","QuickMessageAppComponent","constructor","hostRef","this","templatesChange","imagesChange","filesChange","languagePref","themeMode","templateData","imageLibrary","fileLibrary","businessId","shopId","accessToken","isProduction","timeZone","activeTab","templates","images","files","connectedCallback","applyLanguage","applyTheme","setBusinessId","setShopId","setAccessToken","setIsProduction","toBoolean","setTimeZone","componentWillLoad","parseTemplates","parseLibrary","handleLanguageChange","newLang","handleThemeChange","newTheme","handleTemplateDataChange","newValue","handleImageLibraryChange","handleFileLibraryChange","handleBusinessIdChange","handleShopIdChange","handleAccessTokenChange","handleIsProductionChange","handleTimeZoneChange","lang","language","changeLanguage","set","theme","resolved","Intl","DateTimeFormat","resolvedOptions","value","toLowerCase","parsed","JSON","parse","cloneTemplates","error","console","warn","cloneLibrary","map","template","rawContents","contents","normalizedContents","content","rawMenuList","menu_list","menuList","menu","buttons","button","library","item","isSelected","handleTemplatesChange","event","next","detail","emit","handleImagesChange","handleFilesChange","setActiveTab","tab","render","t","get","key","class","type","onClick","onTemplatesChange","isMaster","onImagesChange","onFilesChange","watchers","style"],"sources":["0"],"mappings":"YAAcA,OAAuBC,OAAaC,OAAQC,MAAY,
|
|
1
|
+
{"version":3,"names":["registerInstance","createEvent","h","Host","instance","configStore","setDayjsLocale","setDayjsTimeZone","useTranslation","quickMessageAppCss","QuickMessageAppComponent","constructor","hostRef","this","templatesChange","imagesChange","filesChange","languagePref","themeMode","templateData","imageLibrary","fileLibrary","businessId","shopId","accessToken","isProduction","timeZone","activeTab","templates","images","files","connectedCallback","applyLanguage","applyTheme","setBusinessId","setShopId","setAccessToken","setIsProduction","toBoolean","setTimeZone","componentWillLoad","parseTemplates","parseLibrary","handleLanguageChange","newLang","handleThemeChange","newTheme","handleTemplateDataChange","newValue","handleImageLibraryChange","handleFileLibraryChange","handleBusinessIdChange","handleShopIdChange","handleAccessTokenChange","handleIsProductionChange","handleTimeZoneChange","lang","language","changeLanguage","set","theme","resolved","Intl","DateTimeFormat","resolvedOptions","value","toLowerCase","parsed","JSON","parse","cloneTemplates","error","console","warn","cloneLibrary","map","template","rawContents","contents","normalizedContents","content","rawMenuList","menu_list","menuList","menu","buttons","button","library","item","isSelected","handleTemplatesChange","event","next","detail","emit","handleImagesChange","handleFilesChange","setActiveTab","tab","render","t","get","key","class","type","onClick","onTemplatesChange","isMaster","onImagesChange","onFilesChange","watchers","style"],"sources":["0"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-message-app.entry.esm.js","sources":["src/components/quick-message-app/quick-message-app.css?tag=quick-message-app","src/components/quick-message-app/quick-message-app.tsx"],"sourcesContent":[":host,\n.quick-message-app__host {\n display: grid;\n grid-template-rows: auto 1fr;\n grid-template-columns: 1fr;\n width: 100%;\n min-height: var(--quick-message-app-min-height, calc(100vh - 120px));\n max-height: var(--quick-message-app-max-height, calc(100vh - 120px));\n overflow: hidden;\n}\n\n.quick-message-app__shell {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n height: 100%;\n overflow: hidden;\n box-sizing: border-box;\n min-height: var(--quick-message-app-min-height, calc(100vh - 120px));\n max-height: var(--quick-message-app-max-height, calc(100vh - 120px));\n --quick-app-primary: var(--color-primary);\n --quick-modal-surface: var(--color-background);\n --quick-modal-primary: var(--quick-app-primary);\n --quick-modal-primary-soft: color-mix(in srgb, var(--quick-modal-primary) 14%, transparent);\n --quick-modal-primary-border: color-mix(in srgb, var(--quick-modal-primary) 55%, transparent);\n --quick-modal-primary-shadow: color-mix(in srgb, var(--quick-modal-primary) 22%, transparent);\n --quick-modal-primary-ghost: color-mix(in srgb, var(--quick-modal-primary) 18%, var(--quick-modal-surface));\n}\n\n.quick-message-app__host.z-background-dark .quick-message-app__shell {\n --quick-app-primary: var(--color-primary-dark);\n --quick-modal-surface: var(--color-background-dark);\n}\n\n.quick-message-app__header {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.quick-message-app__header-text h1 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n}\n\n.quick-message-app__header-text p {\n margin: 4px 0 0;\n font-size: 14px;\n opacity: 0.7;\n}\n\n.quick-message-app__stats {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 12px;\n opacity: 0.8;\n}\n\n.quick-message-app__tabs {\n display: flex;\n gap: 12px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.35);\n padding-bottom: 8px;\n}\n\n.quick-message-app__tabs button {\n background: transparent;\n border: none;\n padding: 8px 20px;\n border-radius: 9999px;\n font-weight: 600;\n cursor: pointer;\n color: inherit;\n opacity: 0.7;\n transition:\n background 0.2s ease,\n opacity 0.2s ease;\n}\n\n.quick-message-app__tabs button.active {\n background: color-mix(in srgb, var(--quick-app-primary) 14%, transparent);\n color: var(--quick-app-primary);\n opacity: 1;\n}\n\n.quick-message-app__content {\n flex: 1;\n min-height: 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.quick-message-app__content quick-message-template,\n.quick-message-app__content quick-message-image,\n.quick-message-app__content quick-message-file {\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\n\n@media (min-width: 768px) {\n .quick-message-app__header {\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n }\n\n .quick-message-app__header-text {\n max-width: 480px;\n }\n}\n\n@media (max-width: 640px) {\n .quick-message-app__shell {\n padding: 16px;\n }\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport i18n from '../../global/i18n';\nimport { configStore } from '../../store/store';\nimport { QuickMessageLibraryFile, QuickMessageTemplate as QuickMessageTemplateModel } from '../../store/type';\nimport { setDayjsLocale, setDayjsTimeZone } from '../../utils/dayjs';\nimport { useTranslation } from '../../utils/utils';\n\n@Component({\n tag: 'quick-message-app',\n styleUrl: 'quick-message-app.css',\n})\nexport class QuickMessageAppComponent {\n @Prop() languagePref: 'th' | 'en' = 'en';\n @Prop() themeMode: 'dark' | 'light' = 'light';\n @Prop() templateData?: string | QuickMessageTemplateModel[];\n @Prop() imageLibrary?: string | QuickMessageLibraryFile[];\n @Prop() fileLibrary?: string | QuickMessageLibraryFile[];\n @Prop() businessId?: string;\n @Prop() shopId?: string;\n @Prop() accessToken?: string;\n @Prop() isProduction?: string | boolean;\n @Prop() timeZone?: string;\n\n @State() private activeTab: 'template' | 'image' | 'file' = 'template';\n @State() private templates: QuickMessageTemplateModel[] = [];\n @State() private images: QuickMessageLibraryFile[] = [];\n @State() private files: QuickMessageLibraryFile[] = [];\n\n @Event({ bubbles: true, composed: true }) templatesChange!: EventEmitter<QuickMessageTemplateModel[]>;\n @Event({ bubbles: true, composed: true }) imagesChange!: EventEmitter<QuickMessageLibraryFile[]>;\n @Event({ bubbles: true, composed: true }) filesChange!: EventEmitter<QuickMessageLibraryFile[]>;\n\n connectedCallback() {\n this.applyLanguage(this.languagePref);\n this.applyTheme(this.themeMode);\n this.setBusinessId(this.businessId);\n this.setShopId(this.shopId);\n this.setAccessToken(this.accessToken);\n this.setIsProduction(this.toBoolean(this.isProduction));\n this.setTimeZone(this.timeZone);\n }\n\n componentWillLoad() {\n this.templates = this.parseTemplates(this.templateData);\n this.images = this.parseLibrary(this.imageLibrary);\n this.files = this.parseLibrary(this.fileLibrary);\n this.setBusinessId(this.businessId);\n this.setShopId(this.shopId);\n this.setAccessToken(this.accessToken);\n this.setIsProduction(this.toBoolean(this.isProduction));\n this.setTimeZone(this.timeZone);\n }\n\n @Watch('languagePref')\n protected handleLanguageChange(newLang: 'th' | 'en') {\n this.applyLanguage(newLang);\n }\n\n @Watch('themeMode')\n protected handleThemeChange(newTheme: 'dark' | 'light') {\n this.applyTheme(newTheme);\n }\n\n @Watch('templateData')\n protected handleTemplateDataChange(newValue?: string | QuickMessageTemplateModel[]) {\n this.templates = this.parseTemplates(newValue);\n }\n\n @Watch('imageLibrary')\n protected handleImageLibraryChange(newValue?: string | QuickMessageLibraryFile[]) {\n this.images = this.parseLibrary(newValue);\n }\n\n @Watch('fileLibrary')\n protected handleFileLibraryChange(newValue?: string | QuickMessageLibraryFile[]) {\n this.files = this.parseLibrary(newValue);\n }\n\n @Watch('businessId')\n protected handleBusinessIdChange(newValue?: string) {\n this.setBusinessId(newValue);\n }\n\n @Watch('shopId')\n protected handleShopIdChange(newValue?: string) {\n this.setShopId(newValue);\n }\n\n @Watch('accessToken')\n protected handleAccessTokenChange(newValue?: string) {\n this.setAccessToken(newValue);\n }\n\n @Watch('isProduction')\n protected handleIsProductionChange(newValue?: string | boolean) {\n this.setIsProduction(this.toBoolean(newValue));\n }\n\n @Watch('timeZone')\n protected handleTimeZoneChange(newValue?: string) {\n this.setTimeZone(newValue);\n }\n\n private applyLanguage(lang: 'th' | 'en') {\n if (i18n.language !== lang) {\n i18n.changeLanguage(lang);\n }\n configStore.set('language', lang);\n setDayjsLocale(lang);\n }\n\n private applyTheme(theme: 'dark' | 'light') {\n configStore.set('theme', theme);\n }\n\n private setBusinessId(businessId?: string) {\n configStore.set('businessId', businessId || null);\n }\n\n private setShopId(shopId?: string) {\n configStore.set('shopId', shopId || null);\n }\n\n private setAccessToken(accessToken?: string) {\n configStore.set('accessToken', accessToken || null);\n }\n\n private setIsProduction(isProduction: boolean) {\n configStore.set('isProduction', isProduction);\n }\n\n private setTimeZone(timeZone?: string) {\n if (!timeZone || timeZone === 'null') {\n const resolved = Intl.DateTimeFormat().resolvedOptions().timeZone;\n configStore.set('timeZone', resolved);\n setDayjsTimeZone(resolved);\n return;\n }\n\n configStore.set('timeZone', timeZone);\n setDayjsTimeZone(timeZone);\n }\n\n private toBoolean(value?: string | boolean): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n return value.toLowerCase() === 'true';\n }\n\n return false;\n }\n\n private parseTemplates(value?: string | QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (!value) {\n return [];\n }\n\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value) as QuickMessageTemplateModel[];\n return this.cloneTemplates(parsed);\n } catch (error: unknown) {\n console.warn('[quick-message-app] Failed to parse template data', error);\n return [];\n }\n }\n\n return this.cloneTemplates(value);\n }\n\n private parseLibrary(value?: string | QuickMessageLibraryFile[]): QuickMessageLibraryFile[] {\n if (!value) {\n return [];\n }\n\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value) as QuickMessageLibraryFile[];\n return this.cloneLibrary(parsed);\n } catch (error: unknown) {\n console.warn('[quick-message-app] Failed to parse library data', error);\n return [];\n }\n }\n\n return this.cloneLibrary(value);\n }\n\n private cloneTemplates(templates: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n return (templates || []).map(template => {\n const rawContents = template.contents || [];\n\n const normalizedContents = rawContents.map(content => {\n const rawMenuList = content.menu_list || [];\n const menuList = rawMenuList.map(menu => ({\n ...menu,\n buttons: (menu.buttons || []).map(button => ({ ...button })),\n }));\n\n return {\n ...content,\n buttons: (content.buttons || []).map(button => ({ ...button })),\n menu_list: menuList,\n menuList,\n };\n });\n\n return {\n ...template,\n content: normalizedContents,\n };\n });\n }\n\n private cloneLibrary(library: QuickMessageLibraryFile[]): QuickMessageLibraryFile[] {\n return (library || []).map(item => ({\n ...item,\n isSelected: item.isSelected ?? false,\n }));\n }\n\n private handleTemplatesChange(event: CustomEvent<QuickMessageTemplateModel[]>) {\n const next = this.cloneTemplates(event.detail || []);\n this.templates = next;\n this.templatesChange.emit(next);\n }\n\n private handleImagesChange(event: CustomEvent<QuickMessageLibraryFile[]>) {\n const next = this.cloneLibrary(event.detail || []);\n this.images = next;\n this.imagesChange.emit(next);\n }\n\n private handleFilesChange(event: CustomEvent<QuickMessageLibraryFile[]>) {\n const next = this.cloneLibrary(event.detail || []);\n this.files = next;\n this.filesChange.emit(next);\n }\n\n private setActiveTab(tab: 'template' | 'image' | 'file') {\n this.activeTab = tab;\n }\n\n render() {\n const t = useTranslation();\n const theme = configStore.get('theme');\n\n return (\n <Host class={`quick-message-app__host z-background-${theme} z-text-${theme}`}>\n <div class=\"quick-message-app__shell px-4\">\n <header class=\"quick-message-app__header\">\n <div class=\"quick-message-app__header-text\">\n <h1>{t('quick_message.title')}</h1>\n </div>\n </header>\n\n <nav class=\"quick-message-app__tabs text-sm\">\n <button type=\"button\" class={this.activeTab === 'template' ? 'active' : ''} onClick={() => this.setActiveTab('template')}>\n {t('quick_message.tab_template')}\n </button>\n <button type=\"button\" class={this.activeTab === 'image' ? 'active' : ''} onClick={() => this.setActiveTab('image')}>\n {t('image')}\n </button>\n <button type=\"button\" class={this.activeTab === 'file' ? 'active' : ''} onClick={() => this.setActiveTab('file')}>\n {t('file')}\n </button>\n </nav>\n\n <section class=\"quick-message-app__content\">\n {this.activeTab === 'template' && <quick-message-template value={this.templates} onTemplatesChange={event => this.handleTemplatesChange(event)} isMaster={true} />}\n {this.activeTab === 'image' && <quick-message-image value={this.images} onImagesChange={event => this.handleImagesChange(event)} isMaster={true} />}\n {this.activeTab === 'file' && <quick-message-file value={this.files} onFilesChange={event => this.handleFilesChange(event)} isMaster={true} />}\n </section>\n </div>\n <z-dialog />\n </Host>\n );\n }\n}\n"],"names":["i18n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quick-message-app.entry.esm.js","sources":["src/components/quick-message-app/quick-message-app.css?tag=quick-message-app","src/components/quick-message-app/quick-message-app.tsx"],"sourcesContent":[":host,\n.quick-message-app__host {\n display: grid;\n grid-template-rows: auto 1fr;\n grid-template-columns: 1fr;\n width: 100%;\n min-height: var(--quick-message-app-min-height, calc(100vh - 120px));\n max-height: var(--quick-message-app-max-height, calc(100vh - 120px));\n overflow: hidden;\n}\n\n.quick-message-app__shell {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n height: 100%;\n overflow: hidden;\n box-sizing: border-box;\n min-height: var(--quick-message-app-min-height, calc(100vh - 120px));\n max-height: var(--quick-message-app-max-height, calc(100vh - 120px));\n --quick-app-primary: var(--color-primary);\n --quick-modal-surface: var(--color-background);\n --quick-modal-primary: var(--quick-app-primary);\n --quick-modal-primary-soft: color-mix(in srgb, var(--quick-modal-primary) 14%, transparent);\n --quick-modal-primary-border: color-mix(in srgb, var(--quick-modal-primary) 55%, transparent);\n --quick-modal-primary-shadow: color-mix(in srgb, var(--quick-modal-primary) 22%, transparent);\n --quick-modal-primary-ghost: color-mix(in srgb, var(--quick-modal-primary) 18%, var(--quick-modal-surface));\n}\n\n.quick-message-app__host.z-background-dark .quick-message-app__shell {\n --quick-app-primary: var(--color-primary-dark);\n --quick-modal-surface: var(--color-background-dark);\n}\n\n.quick-message-app__header {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.quick-message-app__header-text h1 {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n}\n\n.quick-message-app__header-text p {\n margin: 4px 0 0;\n font-size: 14px;\n opacity: 0.7;\n}\n\n.quick-message-app__stats {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 12px;\n opacity: 0.8;\n}\n\n.quick-message-app__tabs {\n display: flex;\n gap: 12px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.35);\n padding-bottom: 8px;\n}\n\n.quick-message-app__tabs button {\n background: transparent;\n border: none;\n padding: 8px 20px;\n border-radius: 9999px;\n font-weight: 600;\n cursor: pointer;\n color: inherit;\n opacity: 0.7;\n transition:\n background 0.2s ease,\n opacity 0.2s ease;\n}\n\n.quick-message-app__tabs button.active {\n background: color-mix(in srgb, var(--quick-app-primary) 14%, transparent);\n color: var(--quick-app-primary);\n opacity: 1;\n}\n\n.quick-message-app__content {\n flex: 1;\n min-height: 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.quick-message-app__content quick-message-template,\n.quick-message-app__content quick-message-image,\n.quick-message-app__content quick-message-file {\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\n\n@media (min-width: 768px) {\n .quick-message-app__header {\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n }\n\n .quick-message-app__header-text {\n max-width: 480px;\n }\n}\n\n@media (max-width: 640px) {\n .quick-message-app__shell {\n padding: 16px;\n }\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport i18n from '../../global/i18n';\nimport { configStore } from '../../store/store';\nimport { QuickMessageLibraryFile, QuickMessageTemplate as QuickMessageTemplateModel } from '../../store/type';\nimport { setDayjsLocale, setDayjsTimeZone } from '../../utils/dayjs';\nimport { useTranslation } from '../../utils/utils';\n\n@Component({\n tag: 'quick-message-app',\n styleUrl: 'quick-message-app.css',\n})\nexport class QuickMessageAppComponent {\n @Prop() languagePref: 'th' | 'en' = 'en';\n @Prop() themeMode: 'dark' | 'light' = 'light';\n @Prop() templateData?: string | QuickMessageTemplateModel[];\n @Prop() imageLibrary?: string | QuickMessageLibraryFile[];\n @Prop() fileLibrary?: string | QuickMessageLibraryFile[];\n @Prop() businessId?: string;\n @Prop() shopId?: string;\n @Prop() accessToken?: string;\n @Prop() isProduction?: string | boolean;\n @Prop() timeZone?: string;\n\n @State() private activeTab: 'template' | 'image' | 'file' = 'template';\n @State() private templates: QuickMessageTemplateModel[] = [];\n @State() private images: QuickMessageLibraryFile[] = [];\n @State() private files: QuickMessageLibraryFile[] = [];\n\n @Event({ bubbles: true, composed: true }) templatesChange!: EventEmitter<QuickMessageTemplateModel[]>;\n @Event({ bubbles: true, composed: true }) imagesChange!: EventEmitter<QuickMessageLibraryFile[]>;\n @Event({ bubbles: true, composed: true }) filesChange!: EventEmitter<QuickMessageLibraryFile[]>;\n\n connectedCallback() {\n this.applyLanguage(this.languagePref);\n this.applyTheme(this.themeMode);\n this.setBusinessId(this.businessId);\n this.setShopId(this.shopId);\n this.setAccessToken(this.accessToken);\n this.setIsProduction(this.toBoolean(this.isProduction));\n this.setTimeZone(this.timeZone);\n }\n\n componentWillLoad() {\n this.templates = this.parseTemplates(this.templateData);\n this.images = this.parseLibrary(this.imageLibrary);\n this.files = this.parseLibrary(this.fileLibrary);\n this.setBusinessId(this.businessId);\n this.setShopId(this.shopId);\n this.setAccessToken(this.accessToken);\n this.setIsProduction(this.toBoolean(this.isProduction));\n this.setTimeZone(this.timeZone);\n }\n\n @Watch('languagePref')\n protected handleLanguageChange(newLang: 'th' | 'en') {\n this.applyLanguage(newLang);\n }\n\n @Watch('themeMode')\n protected handleThemeChange(newTheme: 'dark' | 'light') {\n this.applyTheme(newTheme);\n }\n\n @Watch('templateData')\n protected handleTemplateDataChange(newValue?: string | QuickMessageTemplateModel[]) {\n this.templates = this.parseTemplates(newValue);\n }\n\n @Watch('imageLibrary')\n protected handleImageLibraryChange(newValue?: string | QuickMessageLibraryFile[]) {\n this.images = this.parseLibrary(newValue);\n }\n\n @Watch('fileLibrary')\n protected handleFileLibraryChange(newValue?: string | QuickMessageLibraryFile[]) {\n this.files = this.parseLibrary(newValue);\n }\n\n @Watch('businessId')\n protected handleBusinessIdChange(newValue?: string) {\n this.setBusinessId(newValue);\n }\n\n @Watch('shopId')\n protected handleShopIdChange(newValue?: string) {\n this.setShopId(newValue);\n }\n\n @Watch('accessToken')\n protected handleAccessTokenChange(newValue?: string) {\n this.setAccessToken(newValue);\n }\n\n @Watch('isProduction')\n protected handleIsProductionChange(newValue?: string | boolean) {\n this.setIsProduction(this.toBoolean(newValue));\n }\n\n @Watch('timeZone')\n protected handleTimeZoneChange(newValue?: string) {\n this.setTimeZone(newValue);\n }\n\n private applyLanguage(lang: 'th' | 'en') {\n if (i18n.language !== lang) {\n i18n.changeLanguage(lang);\n }\n configStore.set('language', lang);\n setDayjsLocale(lang);\n }\n\n private applyTheme(theme: 'dark' | 'light') {\n configStore.set('theme', theme);\n }\n\n private setBusinessId(businessId?: string) {\n configStore.set('businessId', businessId || null);\n }\n\n private setShopId(shopId?: string) {\n configStore.set('shopId', shopId || null);\n }\n\n private setAccessToken(accessToken?: string) {\n configStore.set('accessToken', accessToken || null);\n }\n\n private setIsProduction(isProduction: boolean) {\n configStore.set('isProduction', isProduction);\n }\n\n private setTimeZone(timeZone?: string) {\n if (!timeZone || timeZone === 'null') {\n const resolved = Intl.DateTimeFormat().resolvedOptions().timeZone;\n configStore.set('timeZone', resolved);\n setDayjsTimeZone(resolved);\n return;\n }\n\n configStore.set('timeZone', timeZone);\n setDayjsTimeZone(timeZone);\n }\n\n private toBoolean(value?: string | boolean): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n return value.toLowerCase() === 'true';\n }\n\n return false;\n }\n\n private parseTemplates(value?: string | QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (!value) {\n return [];\n }\n\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value) as QuickMessageTemplateModel[];\n return this.cloneTemplates(parsed);\n } catch (error: unknown) {\n console.warn('[quick-message-app] Failed to parse template data', error);\n return [];\n }\n }\n\n return this.cloneTemplates(value);\n }\n\n private parseLibrary(value?: string | QuickMessageLibraryFile[]): QuickMessageLibraryFile[] {\n if (!value) {\n return [];\n }\n\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value) as QuickMessageLibraryFile[];\n return this.cloneLibrary(parsed);\n } catch (error: unknown) {\n console.warn('[quick-message-app] Failed to parse library data', error);\n return [];\n }\n }\n\n return this.cloneLibrary(value);\n }\n\n private cloneTemplates(templates: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n return (templates || []).map(template => {\n const rawContents = template.contents || [];\n\n const normalizedContents = rawContents.map(content => {\n const rawMenuList = content.menu_list || [];\n const menuList = rawMenuList.map(menu => ({\n ...menu,\n buttons: (menu.buttons || []).map(button => ({ ...button })),\n }));\n\n return {\n ...content,\n buttons: (content.buttons || []).map(button => ({ ...button })),\n menu_list: menuList,\n menuList,\n };\n });\n\n return {\n ...template,\n content: normalizedContents,\n };\n });\n }\n\n private cloneLibrary(library: QuickMessageLibraryFile[]): QuickMessageLibraryFile[] {\n return (library || []).map(item => ({\n ...item,\n isSelected: item.isSelected ?? false,\n }));\n }\n\n private handleTemplatesChange(event: CustomEvent<QuickMessageTemplateModel[]>) {\n const next = this.cloneTemplates(event.detail || []);\n this.templates = next;\n this.templatesChange.emit(next);\n }\n\n private handleImagesChange(event: CustomEvent<QuickMessageLibraryFile[]>) {\n const next = this.cloneLibrary(event.detail || []);\n this.images = next;\n this.imagesChange.emit(next);\n }\n\n private handleFilesChange(event: CustomEvent<QuickMessageLibraryFile[]>) {\n const next = this.cloneLibrary(event.detail || []);\n this.files = next;\n this.filesChange.emit(next);\n }\n\n private setActiveTab(tab: 'template' | 'image' | 'file') {\n this.activeTab = tab;\n }\n\n render() {\n const t = useTranslation();\n const theme = configStore.get('theme');\n\n return (\n <Host class={`quick-message-app__host z-background-${theme} z-text-${theme}`}>\n <div class=\"quick-message-app__shell px-4\">\n <header class=\"quick-message-app__header\">\n <div class=\"quick-message-app__header-text\">\n <h1>{t('quick_message.title')}</h1>\n </div>\n </header>\n\n <nav class=\"quick-message-app__tabs text-sm\">\n <button type=\"button\" class={this.activeTab === 'template' ? 'active' : ''} onClick={() => this.setActiveTab('template')}>\n {t('quick_message.tab_template')}\n </button>\n <button type=\"button\" class={this.activeTab === 'image' ? 'active' : ''} onClick={() => this.setActiveTab('image')}>\n {t('image')}\n </button>\n <button type=\"button\" class={this.activeTab === 'file' ? 'active' : ''} onClick={() => this.setActiveTab('file')}>\n {t('file')}\n </button>\n </nav>\n\n <section class=\"quick-message-app__content\">\n {this.activeTab === 'template' && <quick-message-template value={this.templates} onTemplatesChange={event => this.handleTemplatesChange(event)} isMaster={true} />}\n {this.activeTab === 'image' && <quick-message-image value={this.images} onImagesChange={event => this.handleImagesChange(event)} isMaster={true} />}\n {this.activeTab === 'file' && <quick-message-file value={this.files} onFilesChange={event => this.handleFilesChange(event)} isMaster={true} />}\n </section>\n </div>\n <z-dialog />\n </Host>\n );\n }\n}\n"],"names":["i18n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,b as a}from"./p-DjdYK_gt.js";export{s as setNonce}from"./p-DjdYK_gt.js";import{g as t}from"./p-DQuL1Twl.js";var i=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};i().then((async e=>{await t();return a([["p-
|
|
1
|
+
import{p as e,b as a}from"./p-DjdYK_gt.js";export{s as setNonce}from"./p-DjdYK_gt.js";import{g as t}from"./p-DQuL1Twl.js";var i=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};i().then((async e=>{await t();return a([["p-35a45709",[[256,"chat-app",{languagePref:[1,"language-pref"],themeMode:[1,"theme-mode"],businessId:[1,"business-id"],shopId:[1,"shop-id"],accessToken:[1,"access-token"],isProduction:[1,"is-production"],timeZone:[1,"time-zone"],translationSettings:[16,"translation-settings"],isNotConnected:[1,"is-not-connected"],connectionList:[16,"connection-list"],memberList:[16,"member-list"],nextKey:[32],isLoading:[32]},[[0,"click","handleClick"]],{languagePref:["handleLanguageChange"],themeMode:["handleThemeChange"],businessId:["handleBusinessIdChange"],shopId:["handleShopIdChange"],accessToken:["handleAccessTokenChange"],isProduction:["handleIsProductionChange"],timeZone:["handleTimeZoneChange"],translationSettings:["handleTranslationSettingsChange"],isNotConnected:["handleIsNotConnectedChange"],connectionList:["handleConnectionListChange"],memberList:["handleMemberListChange"]},null,{translationSettings:["deserializeTranslateSettingsArray"],connectionList:["deserializeTConnectionArray"],memberList:["deserializeChannelMemberArray"]}],[256,"message-box",{isInitial:[32],isLoadingTop:[32],isLoadingBottom:[32],isAtBottom:[32],replyTokenInfo:[32],showReplyTokenBanner:[32],visibleRange:[32]},[[0,"click","handleClick"]]],[256,"profile-tabs",{active:[32]}],[256,"search-box",{query:[32],showDialog:[32],isUnRead:[32],filterSet:[32]}],[256,"channel-box",{nextKey:[32],isLoading:[32]}],[256,"chat-input",{value:[32],originalText:[32],images:[32],isLoading:[32],isFileLoading:[32],isImageLoading:[32],isTranslated:[32],isTranslateLoading:[32],showQuickMessageModal:[32],isQuickMessageLoading:[32]},[[16,"focusRequested","onFocusRequested"]]],[260,"profile-info",{isLoading:[32],isEditStatus:[32],statusId:[32],isEditTag:[32],isAddTag:[32],isMerge:[32],isOpenDrawer:[32],tempDrawerUser:[32],mergeIndex:[32],tempUser:[32],activeTabIndex:[32],tagItems:[32],showDialog:[32],associatedUsers:[32],isEditContext:[32],context:[32],isEditSummarizeMessage:[32],summarizeMessageItems:[32],isSyncUserLoading:[32]}],[256,"message-item",{item:[16],replyMessage:[32],isLoading:[32]}],[256,"chat-header",{isPinLoading:[32],isSpamLoading:[32],isReadLoading:[32],isPin:[32],isSpam:[32],isUnRead:[32]}],[256,"profile-history",{isLoading:[32],logs:[32]}],[256,"tag-list",{tags:[16],chatId:[1,"chat-id"],referenceSelector:[1,"reference-selector"],visibleCount:[32]}],[256,"dialog-search",{oldFilter:[16],filter:[32]}],[256,"menu-chat-channel",{referenceSelector:[1,"reference-selector"],isOpen:[32],selected:[32]}],[256,"menu-chat-type",{referenceSelector:[1,"reference-selector"],isOpen:[32],selectedItem:[32]}],[256,"profile-media"],[256,"z-dialog"],[256,"quick-message-modal",{activeTab:[32],templates:[32],images:[32],files:[32]}],[256,"user-info-section",{user:[16],readOnly:[4,"read-only"],isEditStatus:[4,"is-edit-status"],statusId:[1,"status-id"],showDialogBill:[32]}],[256,"message-content",{item:[16],isReply:[4,"is-reply"],seeTranslate:[32],isClamped:[32],showMore:[32]}],[256,"dialog-editor",{dialogType:[1,"dialog-type"],label:[1],field:[1],value:[1],allowEmpty:[4,"allow-empty"],data:[32],error:[32]}],[256,"autocomplete-multiple-select",{fetchItems:[16],selectedIds:[16],referenceSelector:[1,"reference-selector"],allItems:[32],filteredItems:[32],inputValue:[32],showDropdown:[32],loading:[32]}],[256,"checkbox-list",{itemList:[16],selected:[16]}],[260,"summarize-message-section",{user:[16],readOnly:[4,"read-only"],activeTabIndex:[2,"active-tab-index"],isEditSummarizeMessage:[4,"is-edit-summarize-message"],summarizeMessageItems:[16],items:[32]}],[256,"tag-popper",{tags:[16],referenceSelector:[1,"reference-selector"],isOpen:[32]}],[256,"message-media",{item:[16],messageMediaUrl:[32],showDialog:[32],hasError:[32]}],[256,"autocomplete-address",{field:[1],value:[1],selectedValue:[1,"selected-value"],placeholder:[1],referenceSelector:[1,"reference-selector"],allItems:[32],showDropdown:[32],isLoading:[32]}],[256,"autocomplete-select",{type:[1],value:[1],fetchItems:[16],createItem:[16],selectedIds:[16],referenceSelector:[1,"reference-selector"],allItems:[32],filteredItems:[32],inputValue:[32],showDropdown:[32],loading:[32]}],[256,"dialog-bill-editor",{data:[32],error:[32]}],[256,"status-badge",{status:[1],label:[1],padding:[1],borderWidth:[2,"border-width"],radius:[2],color:[1]}],[256,"quick-message-template",{handleClose:[16],value:[1],isMaster:[4,"is-master"],searchTemplate:[32],templates:[32],showAddTemplateDialog:[32],editingTemplate:[32],dialogMode:[32],isLoading:[32],isLoadingMore:[32],isSavingTemplate:[32],deletingTemplateId:[32],templatePendingDelete:[32],totalTemplates:[32],totalPages:[32]},null,{value:["handleValueChange"]}],[256,"dialog-preview-media",{dialogType:[1,"dialog-type"],url:[1],hasError:[32]}],[256,"quick-message-file",{handleClose:[16],value:[1],isMaster:[4,"is-master"],searchFile:[32],files:[32],isLoading:[32],isLoadingMore:[32],isUploading:[32],isDeleting:[32],totalFiles:[32],totalPages:[32],renameTargetId:[32],renameName:[32],renameExtension:[32],isRenaming:[32],openMenuId:[32]},[[4,"click","handleDocumentClick"]],{value:["handleValueChange"]}],[256,"quick-message-image",{handleClose:[16],value:[1],isMaster:[4,"is-master"],searchImage:[32],images:[32],imageDisplayMode:[32],isLoading:[32],isLoadingMore:[32],isUploading:[32],isDeleting:[32],totalImages:[32],totalPages:[32],renameTargetId:[32],renameName:[32],renameExtension:[32],isRenaming:[32],openMenuId:[32]},[[4,"click","handleDocumentClick"]],{value:["handleValueChange"]}],[256,"typography-clamp",{text:[1],textColor:[1,"text-color"],lines:[2],showMore:[32],isClamped:[32]},null,{text:["onTextChange"],lines:["onLinesChange"]}],[256,"quick-message-add-template",{handleClose:[16],handleSave:[16],handleSend:[16],initialTemplate:[16],mode:[1],isSaving:[4,"is-saving"],draftTemplate:[32]},null,{initialTemplate:["handleInitialTemplateChange"]}],[256,"menu-list",{menuItems:[16],position:[1],referenceSelector:[1,"reference-selector"],iconName:[1,"icon-name"],buttonTitle:[1,"button-title"],variant:[1],isOpen:[32]}],[256,"tag-or-status-item",{chatId:[1,"chat-id"],item:[16],expandText:[4,"expand-text"],isOpen:[32]}],[256,"quick-message-button-content",{content:[16],maxLength:[2,"max-length"],maxButtonCount:[2,"max-button-count"],maxButtonNameLength:[2,"max-button-name-length"],placeholder:[1],isShowCreateButtonDialog:[32],createButtonLabel:[32],createButtonAction:[32],createButtonType:[32],editingButtonId:[32]}],[256,"quick-message-image-content",{content:[16],maxFileSize:[2,"max-file-size"],errorMessage:[32]}],[256,"quick-message-menu-list-content",{content:[16],maxMenuList:[2,"max-menu-list"],maxFileSize:[2,"max-file-size"],maxTitleLength:[2,"max-title-length"],maxDescriptionLength:[2,"max-description-length"],maxButtonCount:[2,"max-button-count"],maxButtonNameLength:[2,"max-button-name-length"],isButtonDialogOpen:[32],buttonDialogMenuId:[32],buttonDialogLabel:[32],buttonDialogAction:[32],buttonDialogType:[32],editingButtonId:[32],menuErrors:[32]}],[256,"quick-message-text-content",{content:[16],maxLength:[2,"max-length"],placeholder:[1]}],[256,"quick-message-video-content",{content:[16],videoUrl:[32],isDialogOpen:[32],errorMessage:[32]}],[256,"z-avatar",{pictureUrl:[1,"picture-url"],size:[1],isNotRound:[4,"is-not-round"],hasError:[32]},null,{pictureUrl:["watchPictureUrl"]}]]],["p-b3cbf3e3",[[256,"quick-message-app",{languagePref:[1,"language-pref"],themeMode:[1,"theme-mode"],templateData:[1,"template-data"],imageLibrary:[1,"image-library"],fileLibrary:[1,"file-library"],businessId:[1,"business-id"],shopId:[1,"shop-id"],accessToken:[1,"access-token"],isProduction:[8,"is-production"],timeZone:[1,"time-zone"],activeTab:[32],templates:[32],images:[32],files:[32]},null,{languagePref:["handleLanguageChange"],themeMode:["handleThemeChange"],templateData:["handleTemplateDataChange"],imageLibrary:["handleImageLibraryChange"],fileLibrary:["handleFileLibraryChange"],businessId:["handleBusinessIdChange"],shopId:["handleShopIdChange"],accessToken:["handleAccessTokenChange"],isProduction:["handleIsProductionChange"],timeZone:["handleTimeZoneChange"]}]]]],e)}));
|
|
2
2
|
//# sourceMappingURL=zignal-stencil-library.esm.js.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-BLIkH1Mo.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/utils/func.ts","src/components/internal-component/about-section.tsx","src/components/internal-component/tag-section.tsx","src/components/internal-component/associated-users-section.tsx","src/components/internal-component/merge-user-view.tsx","src/components/internal-component/context-section.tsx","src/components/profile-info/profile-info.css?tag=profile-info","src/components/profile-info/profile-info.tsx"],"sourcesContent":["import { UserAddress } from '../components';\n\nexport const getAddressAsText = (address?: UserAddress | null) => {\n if (!address) return '';\n\n const addressStr = [];\n if (address?.address) addressStr.push(address.address);\n if (address?.province) addressStr.push(address.province);\n if (address?.district) addressStr.push(address.district);\n if (address?.sub_district) addressStr.push(address.sub_district);\n if (address?.zip_code) addressStr.push(address.zip_code);\n return addressStr.join(', ');\n};\n\n\nexport const isUrl = (value: string) => {\n try {\n new URL(value)\n\n return true;\n } catch {\n return false;\n }\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, UserAddress } from '../../store/type';\nimport { displayDate } from '../../utils/dayjs';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from './z-icon-button';\nimport { getAddressAsText } from '../../utils/func';\nimport { configStore, selectedChatStore } from '../../store/store';\nimport { getChatChannelPictureUrl } from '../../store/chat';\n\ninterface AboutSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n onOpenDialogEditor: (params: { label: string; field: string; value: string | string[] | UserAddress; type?: 'input' | 'textarea' | 'address' }) => void;\n}\n\nexport const AboutSection: FunctionalComponent<AboutSectionProps> = ({ user, readOnly = false, activeTabIndex, onOpenDialogEditor }) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3\">\n <span class={`z-text-${theme}`}>{t('about')}</span>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('channel')}</span>\n </div>\n <div class=\"col-span-2\">\n <div class=\"profile-info-connection-wrapper\">\n <span class={`text-sm z-text-${theme}`}>{user.channel === 'zignal' ? 'Zignal' : selectedChat.connection.name}</span>\n <img\n src={getChatChannelPictureUrl(selectedChat)}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n </div>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('email')}</span>\n </div>\n <div class=\"col-span-2 profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>{user.email ? (Array.isArray(user.email) ? user.email.join(', ') : user.email) : '-'}</span>\n {!readOnly && activeTabIndex === 0 && (\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={() => onOpenDialogEditor({ label: 'Email', field: 'email', value: user.email })} />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('phone_no')}</span>\n </div>\n <div class=\"col-span-2 profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {user.phone_number ? (Array.isArray(user.phone_number) ? user.phone_number.join(', ') : user.phone_number) : '-'}\n </span>\n {!readOnly && activeTabIndex === 0 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Phone no.', field: 'phone_number', value: user.phone_number })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('address')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`profile-info-pre-line z-text-${theme}`}>{getAddressAsText(user.address) || '-'}</span>\n {!readOnly && activeTabIndex === 0 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Address', field: 'address', value: user.address, type: 'address' })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('gender')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`profile-info-capitalize z-text-${theme}`}>{user.gender ? user.gender : '-'}</span>\n {!readOnly && activeTabIndex === 1 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Gender', field: 'gender', value: user.gender, type: 'input' })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('locale')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`text-sm z-text-${theme}`}>{user.locale}</span>\n {!readOnly && activeTabIndex === 1 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Locale', field: 'locale', value: user.locale, type: 'input' })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('register_date')}</span>\n </div>\n <div class=\"col-span-2\">\n <span class={`text-sm z-text-${theme}`}>{displayDate(user.created_at)}</span>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('last_active_date')}</span>\n </div>\n <div class=\"col-span-2\">\n <span class={`text-sm z-text-${theme}`}>{displayDate(user.last_active_at)}</span>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('note')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`profile-info-pre-line z-text-${theme}`}>{user.note ? user.note : '-'}</span>\n {!readOnly && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Note', field: 'note', value: user.note, type: 'textarea' })}\n />\n )}\n </div>\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, TTagOrStatusItem } from '../../store/type';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from './z-icon-button';\nimport { ZTagOrStatusItem } from './z-tag-or-status-item';\nimport { ZButton } from './z-button';\nimport { handleGetUserTags } from '../../store/chat';\nimport { configStore, selectedChatStore } from '../../store/store';\n\ninterface TagSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n isEditTag: boolean;\n isAddTag: boolean;\n tagItems: {\n item: TTagOrStatusItem;\n isAdd?: boolean;\n isDelete?: boolean;\n }[];\n onEditTag: () => void;\n onCloseTag: () => void;\n onSaveUserTags: () => void;\n onSetIsAddTag: (value: boolean) => void;\n onDeleteTag: (tagId: string) => void;\n onAddTag: (tag: TTagOrStatusItem) => void;\n onCreateUserTag: (name: string) => Promise<TTagOrStatusItem>;\n}\n\nexport const TagSection: FunctionalComponent<TagSectionProps> = ({\n user,\n readOnly = false,\n activeTabIndex,\n isEditTag,\n isAddTag,\n tagItems,\n onEditTag,\n onCloseTag,\n onSaveUserTags,\n onSetIsAddTag,\n onDeleteTag,\n onAddTag,\n onCreateUserTag,\n}) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme} whitespace-nowrap`}>{t('tag')}</span>\n\n {!readOnly && activeTabIndex === 0 && (\n <slot>\n {isEditTag ? (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={onCloseTag} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={onSaveUserTags} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={onEditTag} />\n </div>\n )}\n </slot>\n )}\n </div>\n\n <div class={`profile-info-tag-wrapper scroll-container`}>\n {isEditTag ? (\n <div class=\"col-span-3\">\n <div class=\"profile-info-box-wrapper flex-wrap\">\n {tagItems.length > 0 &&\n tagItems\n .filter(({ isDelete }) => !isDelete)\n .sort((a, b) => a.item.sequence - b.item.sequence)\n .map(tag => <ZTagOrStatusItem item={tag.item} onDelete={() => onDeleteTag(tag.item.id)} />)}\n </div>\n {selectedChatStore.get('isSyncingTag') && (\n <div class=\"profile-info-status-wrapper\">\n <status-badge status=\"loading\" label={t('chat_tab.syncing_tag')} />\n </div>\n )}\n <div class=\"mt-2\">\n {isAddTag ? (\n <autocomplete-select\n referenceSelector=\"profile-tag\"\n type=\"tag\"\n selectedIds={tagItems.filter(({ isDelete }) => !isDelete).map(({ item }) => item.id)}\n fetchItems={handleGetUserTags}\n createItem={name => onCreateUserTag(name).then(res => res)}\n onSelecting={item => onAddTag(item.detail)}\n />\n ) : (\n <ZButton variant=\"outlined\" fullWidth label={`+ ${t('profile_tab.add_tag')}`} onClick={() => onSetIsAddTag(true)} />\n )}\n </div>\n </div>\n ) : (\n <div class=\"col-span-3\">\n <div class=\"profile-info-box-wrapper flex-wrap\">\n {user.tags && user.tags.length > 0 ? (\n user.tags\n .sort((a, b) => a.sequence - b.sequence)\n .map(tag => <tag-or-status-item item={tag} expandText chatId={`profile-status-${selectedChat.id}-${readOnly ? 'readonly' : ''}`} />)\n ) : (\n <span class={`text-sm z-text-gray-${theme}`}>{t('profile_tab.tag_empty')}</span>\n )}\n </div>\n {selectedChatStore.get('isSyncingTag') && (\n <div class=\"profile-info-status-bottom-wrapper\">\n <status-badge status=\"loading\" label={t('chat_tab.syncing_tag')} />\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import { FunctionalComponent, h, JSX } from '@stencil/core';\nimport { AssociatedUser, UserItem } from '../../store/type';\nimport { ZIconButton } from './z-icon-button';\nimport { configStore, responsiveStore, selectedChatStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\n\ninterface AssociatedUsersSectionProps {\n associatedUsers: AssociatedUser[];\n isOpenDrawer: boolean;\n tempDrawerUser: UserItem;\n onJumpToChat: (user: AssociatedUser) => void;\n onViewProfile: (user: AssociatedUser) => void;\n onUnlinkUser: (user: AssociatedUser) => void;\n onSetIsOpenDrawer: (value: boolean) => void;\n renderUserInfo: (user: UserItem, readOnly: boolean) => JSX.Element;\n}\n\nexport const AssociatedUsersSection: FunctionalComponent<AssociatedUsersSectionProps> = ({\n associatedUsers,\n isOpenDrawer,\n tempDrawerUser,\n onJumpToChat,\n onViewProfile,\n onUnlinkUser,\n onSetIsOpenDrawer,\n renderUserInfo,\n}) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const isMobile = responsiveStore.get('isMobile');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n return (\n <div class={`profile-info-user-wrapper pt-2 gap-y-1`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme}`}>{t('profile_tab.related_user')}</span>\n </div>\n\n <div class={`col-span-3 w-full`}>\n {associatedUsers.map((userItem, index) => {\n const isSelected = userItem.id === selectedChat.user.id;\n const backgroundClass = theme === 'dark' ? 'z-background-dark' : 'z-background-light';\n const textClass = theme === 'dark' ? 'z-text-dark' : 'z-text-light';\n\n return (\n <div\n key={index}\n class={`profile-info-associated-user-wrapper ${isSelected ? 'bg-pink-100' : backgroundClass} z-border-divider-${theme} ${isSelected ? 'text-black' : textClass}`}\n >\n <div class=\"profile-info-box-wrapper w-full\">\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${userItem.channel === 'zignal' ? `${theme}-zignal` : userItem.channel}.png`}\n alt=\"agent avatar\"\n class=\"size-5 rounded-full\"\n loading=\"lazy\"\n />\n <span class={`profile-info-capitalize truncate w-1/2`} title={userItem.connection?.name || ''}>\n {userItem.connection?.name}\n </span>\n <z-avatar pictureUrl={userItem.picture_url} size=\"small\" />\n <span class={`profile-info-capitalize truncate w-1/2`} title={userItem.name || ''}>\n {userItem.name}\n </span>\n\n <div class=\"profile-info-associated-user-action-wrapper\">\n {!isSelected && (\n <ZIconButton\n variant=\"none\"\n iconName=\"MessageSquareText\"\n addClassIcon={`size-4 z-text-primary-${theme}`}\n noPaddingY\n onClick={() => onJumpToChat(userItem)}\n />\n )}\n {!isSelected && (\n <ZIconButton\n variant=\"none\"\n iconName=\"UserSearch\"\n addClassIcon={`size-4 z-text-primary-${theme}`}\n noPaddingY\n onClick={() => onViewProfile(userItem)}\n />\n )}\n <ZIconButton variant=\"none\" iconName=\"Unlink\" addClassIcon={`size-4 z-text-primary-${theme}`} noPaddingY onClick={() => onUnlinkUser(userItem)} />\n </div>\n </div>\n </div>\n );\n })}\n </div>\n <div class={`profile-info-drawer-backdrop z-width-${isMobile ? '100' : '25'} ${isOpenDrawer ? 'opacity-100 pointer-events-auto' : 'opacity-0 pointer-events-none'}`} onClick={() => onSetIsOpenDrawer(false)} />\n <div class={`profile-info-drawer-wrapper z-width-${isMobile ? '100' : '25'} z-background-${theme} ${isOpenDrawer ? 'translate-y-0' : 'translate-y-full'}`}>\n <div class=\"profile-info-drawer-content scroll-container\">\n <div class=\"profile-info-drawer-content-close\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon={`size-4 z-text-${theme}`} onClick={() => onSetIsOpenDrawer(false)} />\n </div>\n <div class={'mt-2'}></div>\n {tempDrawerUser && renderUserInfo(tempDrawerUser, true)}\n </div>\n </div>\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from './z-icon-button';\nimport { ZButton } from './z-button';\nimport { Icon } from './icon';\nimport { MatchDecision } from '../../api/type';\nimport { configStore, userStore } from '../../store/store';\nimport { getAddressAsText } from '../../utils/func';\n\ninterface MergeUserViewProps {\n mergeIndex: number;\n onClose: () => void;\n onPrevMergeUser: () => void;\n onNextMergeUser: () => void;\n onActionMergeUser: (decision: MatchDecision) => void;\n}\n\nexport const MergeUserView: FunctionalComponent<MergeUserViewProps> = ({ mergeIndex, onClose, onPrevMergeUser, onNextMergeUser, onActionMergeUser }) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const user = userStore.get('user');\n\n return (\n <div class=\"z-animate-width\">\n <div class={`profile-info-compare-wrapper z-text-${theme}`}>\n <ZIconButton variant=\"none\" iconName=\"ChevronLeft\" onClick={onClose} />\n <span>{t('profile_tab.compare_user')}</span>\n </div>\n <div class=\"profile-info-compare-remark-wrapper\">\n <span class={`profile-info-compare-remark z-text-gray-${theme} `}>*{t('profile_tab.compare_user_info')}</span>\n </div>\n {user.match_users && user.match_users.length > 0 && (\n <div>\n <div class=\"profile-info-match-user-wrapper\">\n {/* Prev Button */}\n <ZIconButton\n variant=\"none\"\n iconName=\"ChevronLeft\"\n addClassIcon={`size-8 ${mergeIndex === 0 ? `z-text-background-${theme}` : `z-text-primary-${theme}`}`}\n noPadding\n onClick={onPrevMergeUser}\n />\n {(() => {\n const matchUser = user.match_users[mergeIndex];\n return (\n <div class=\"profile-info-match-user-container\">\n <div class=\"profile-info-match-user-box\">\n {/* Current User */}\n <div class=\"relative\">\n <z-avatar pictureUrl={user.picture_url} size=\"full\" isNotRound />\n <div class=\"profile-info-avatar-box\">\n <ZButton\n maxWidth=\"max-w-32\"\n label={user.name}\n endIcon={\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${user.channel}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n }\n />\n </div>\n </div>\n {/* Match User */}\n <div class=\"relative\">\n <z-avatar pictureUrl={matchUser.user.picture_url} size=\"full\" isNotRound />\n <div class=\"profile-info-avatar-box\">\n <ZButton\n maxWidth=\"max-w-32\"\n label={matchUser.user.name}\n endIcon={\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${matchUser?.channel}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n }\n />\n </div>\n </div>\n </div>\n <div class={`m-2 z-text-${theme}`}>\n <p class=\"font-semibold\">{t('profile_tab.ai_summary')}</p>\n <span class=\"profile-info-pre-line\">\n {matchUser.reason} {t('profile_tab.prob')} {matchUser.confidence}% {t('profile_tab.same_user')}\n </span>\n </div>\n <div class=\"profile-info-match-user-action-wrapper\">\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('no')}\n startIcon={<Icon name=\"X\" addClass=\"size-5 text-red-700\" />}\n onClick={() => onActionMergeUser('reject')}\n />\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('profile_tab.merge_user')}\n startIcon={<Icon name=\"Check\" addClass=\"size-5 text-green-700\" />}\n onClick={() => onActionMergeUser('merge')}\n />\n </div>\n </div>\n );\n })()}\n {/* Next Button */}\n <ZIconButton\n variant=\"none\"\n iconName=\"ChevronRight\"\n addClassIcon={`size-8 ${mergeIndex === user.match_users.length - 1 ? `z-text-background-${theme}` : `z-text-primary-${theme}`}`}\n noPadding\n onClick={onNextMergeUser}\n />\n </div>\n <p class={`font-semibold mx-4 z-text-${theme}`}>{t('profile_tab.compare_table')}</p>\n {(() => {\n const matchUser = user.match_users[mergeIndex];\n const fields = [\n { label: t('channel'), key: 'channel' },\n { label: t('email'), key: 'email' },\n { label: t('phone_no'), key: 'phone_number' },\n { label: t('address'), key: 'address' },\n { label: t('gender'), key: 'gender' },\n ];\n return (\n <div class=\"profile-info-match-user-name-wrapper scroll-container\">\n <table class=\"profile-info-match-user-table\">\n <thead class=\"profile-info-match-user-table-header\">\n <tr>\n <th>{t('name')}</th>\n <th>{user.name}</th>\n <th>{matchUser.user.name}</th>\n </tr>\n </thead>\n <tbody>\n {fields.map(({ label, key }, index) => {\n let value = user[key];\n let comparedValue = matchUser.user[key];\n if (key === 'channel') {\n comparedValue = matchUser[key];\n }\n if (key === 'address') {\n value = getAddressAsText(user[key]);\n comparedValue = getAddressAsText(matchUser[key]);\n }\n return (\n <tr key={index}>\n <td class={`z-text-${theme}`}>\n <p class=\"profile-info-match-user-table-label\">{label}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{value || '-'}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{comparedValue || '-'}</p>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n );\n })()}\n </div>\n )}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, TContextItem } from '../../store/type';\nimport { ZIconButton } from './z-icon-button';\nimport { configStore } from '../../store/store';\n\ninterface TagSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n isEditContext: boolean;\n context?: TContextItem;\n onEditContext: () => void;\n onCloseContext: () => void;\n onSaveUserContexts: () => void;\n onContextSelecting: (context: TContextItem) => void;\n // onRemoveContext: () => void;\n onCreateUserContext: (name: string) => Promise<TContextItem>;\n}\n\nexport const ContextSection: FunctionalComponent<TagSectionProps> = ({\n user,\n readOnly = false,\n activeTabIndex,\n isEditContext,\n context,\n onEditContext,\n onCloseContext,\n onSaveUserContexts,\n onContextSelecting,\n // onRemoveContext,\n onCreateUserContext,\n}) => {\n const theme = configStore.get('theme');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme} whitespace-nowrap`}>บริบทของบทสนทนา</span>\n\n {!readOnly && activeTabIndex === 0 && (\n <slot>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={onCloseContext} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={onSaveUserContexts} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={onEditContext} />\n </div>\n )}\n </slot>\n )}\n </div>\n\n <div class={`profile-info-tag-wrapper scroll-container`}>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper\">\n <autocomplete-select\n value={user.context?.id === context?.id ? user.context?.name : ''}\n fetchItems={() => Promise.resolve([{\n id: '1',\n name: 'ส่งต่อแอดมิน'\n }])}\n createItem={name => onCreateUserContext(name)}\n onSelecting={item => onContextSelecting(item.detail)}\n referenceSelector=\"profile-context\"\n />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {user.context ? user.context.name : '-'}\n </span>\n </div>\n )}\n </div>\n </div>\n );\n};\n",":host {\n display: block;\n}\n\n.profile-info-user-wrapper {\n @apply grid grid-flow-row-dense grid-cols-3 grid-rows-1 w-full p-4 mb-2\n}\n\n.profile-info-avatar-wrapper {\n @apply col-span-1 my-auto mr-1\n}\n\n.profile-info-avatar-box {\n @apply relative w-full text-center\n}\n\n.profile-info-avatar-badge {\n @apply absolute bottom-[-2px] right-[-2px];\n}\n\n.profile-info-name-wrapper {\n @apply col-span-2 flex flex-col\n}\n\n.profile-info-box-wrapper {\n @apply flex flex-row gap-1 items-center\n}\n\n.profile-info-nickname {\n @apply font-semibold text-base\n}\n\n.profile-info-summarize-wrapper {\n @apply col-span-3 flex flex-row items-center justify-between mt-2\n}\n\n.profile-info-summarize-text {\n @apply col-span-3 mt-1\n}\n\n.profile-info-connection-wrapper {\n @apply flex items-center space-x-1\n}\n\n.profile-info-avatar {\n @apply size-4 rounded-full\n}\n\n.profile-info-content-wrapper-baseline {\n @apply col-span-2 flex flex-row gap-1 items-baseline-last\n}\n\n.profile-info-pre-line {\n @apply text-sm whitespace-pre-line\n}\n\n.profile-info-capitalize {\n @apply text-sm capitalize\n}\n\n.profile-info-tag-wrapper {\n @apply col-span-3 w-full max-h-60 overflow-y-auto\n}\n\n.profile-info-status-wrapper {\n @apply w-fit mt-2 mx-auto\n}\n\n.profile-info-status-bottom-wrapper {\n @apply w-fit mt-4 mx-auto\n}\n\n.profile-info-avatar-box {\n @apply mt-[-40px] flex justify-center\n}\n\n.profile-info {\n @apply relative h-full\n}\n\n.profile-info-compare-wrapper {\n @apply flex flex-row items-center pt-3 mt-[-16px] text-sm\n}\n\n.profile-info-compare-remark-wrapper {\n @apply px-3 pb-3\n}\n\n.profile-info-compare-remark {\n @apply text-xs whitespace-pre-line\n}\n\n.profile-info-match-user-wrapper {\n @apply flex flex-row items-center justify-between mb-3\n}\n\n.profile-info-match-user-container {\n @apply rounded-xl shadow-md w-full my-2 overflow-clip\n}\n\n.profile-info-match-user-box {\n @apply grid grid-cols-2 mb-2\n}\n\n.profile-info-match-user-action-wrapper {\n @apply flex flex-row items-center justify-around\n}\n\n.profile-info-match-user-name-wrapper {\n @apply rounded-xl my-2 mx-4 overflow-x-auto overflow-y-hidden\n}\n\n.profile-info-match-user-table {\n @apply table-auto w-full text-sm\n}\n\n.profile-info-match-user-table-header {\n @apply bg-pink-100 h-10 shadow-sm\n}\n\n.profile-info-match-user-table-label {\n @apply ml-2 mt-2 whitespace-nowrap\n}\n\n.profile-info-match-user-table-value {\n @apply ml-2 mt-2 whitespace-pre-line\n}\n\n.profile-info-match-user-suggest-wrapper {\n @apply flex flex-row items-center justify-between p-3 mt-[-16px] mb-2 text-sm text-white\n}\n\n.profile-info-match-user-suggest-button {\n @apply text-xs underline cursor-pointer\n}\n\n.profile-info-match-user-suggest-user-wrapper {\n @apply flex border-2 rounded-full overflow-hidden w-fit mx-auto p-0.5 mb-1\n}\n\n.profile-info-associated-user-wrapper {\n @apply flex flex-row gap-1 px-2 py-1 items-center border-b-[0.5px] rounded-xs\n}\n\n.profile-info-associated-user-action-wrapper {\n @apply flex flex-row items-center justify-end w-full\n}\n\n.profile-info-drawer-backdrop {\n @apply fixed inset-0 bg-black/40 !left-auto right-0 transition-opacity duration-300\n}\n\n.profile-info-drawer-wrapper {\n @apply fixed right-0 bottom-0 rounded-t-2xl shadow-lg transition-transform duration-300\n}\n\n.profile-info-drawer-content {\n @apply p-2 relative overflow-y-auto max-h-[90vh]\n}\n\n.profile-info-drawer-content-close {\n @apply absolute top-2 right-2\n}\n\n.profile-info-bill {\n @apply col-span-3 mx-auto mt-2\n}\n\n.profile-info-bill-icon {\n @apply rotate-180 size-2 fill-current\n}\n\n.profile-info-jump-chat-sign {\n @apply flex flex-row items-center justify-center gap-4\n}\n\n.profile-info-section-wrapper {\n @apply border-b-[0.5px] pt-0 min-h-20\n}\n\n.profile-info-refresh-user-button {\n @apply absolute -top-2 right-2\n}","import { Component, Host, State, h } from '@stencil/core';\nimport { configStore, selectedChatStore, statusesStore, userStore } from '../../store/store';\nimport { /*createUserContext,*/ createUserStatus, createUserTag, getUser, mergeUser, syncUser, unlinkUser, updateUser } from '../../api';\nimport { ZButton } from '../internal-component/z-button';\nimport { AssociatedUser, BillingItem, ChannelType, TChatItem, TContextItem, TTagOrStatusItem, UserAddress, UserItem } from '../../store/type';\nimport { getRandomHexColor, useTranslation } from '../../utils/utils';\nimport { MatchDecision } from '../../api/type';\nimport { leaveRoom } from '../../utils/socket';\nimport { getChatPicture, handleGetChat } from '../../store/chat';\nimport { closeDialog, DIALOG_TYPE, handleError, openDialog } from '../../store/dialog';\nimport { serviceUpdateChatItem } from '../../store/message';\nimport { AboutSection } from '../internal-component/about-section';\nimport { TagSection } from '../internal-component/tag-section';\nimport { AssociatedUsersSection } from '../internal-component/associated-users-section';\nimport { MergeUserView } from '../internal-component/merge-user-view';\nimport { ContextSection } from '../internal-component/context-section';\nimport { Icon } from '../internal-component/icon';\nimport { ZIconButton } from '../internal-component/z-icon-button';\n\ntype ShowDialog = {\n open: boolean;\n type?: 'input' | 'textarea' | 'address';\n label?: string;\n field?: string;\n value?: string | string[] | UserAddress;\n};\n\n@Component({\n tag: 'profile-info',\n styleUrl: 'profile-info.css',\n})\nexport class ProfileInfo {\n private disposeListener: () => void;\n\n @State() isLoading = false;\n @State() isEditStatus = false;\n @State() statusId?: string;\n @State() isEditTag = false;\n @State() isAddTag = false;\n @State() isMerge = false;\n @State() isOpenDrawer = false;\n @State() tempDrawerUser: UserItem = null;\n @State() mergeIndex = 0;\n @State() tempUser: UserItem = null;\n @State() activeTabIndex = 0;\n @State() tagItems: {\n item: TTagOrStatusItem;\n isAdd?: boolean;\n isDelete?: boolean;\n }[] = [];\n @State() showDialog: ShowDialog = { open: false };\n @State() associatedUsers: AssociatedUser[] = [];\n @State() isEditContext = false;\n @State() context?: TContextItem;\n @State() isEditSummarizeMessage = false;\n @State() summarizeMessageItems: {\n item: TTagOrStatusItem;\n isAdd?: boolean;\n isDelete?: boolean;\n }[] = [];\n @State() isSyncUserLoading = false;\n\n private prevSelectedChat: TChatItem | null = null;\n\n private tabs() {\n const t = useTranslation();\n return [{ label: t('profile_tab.profile_this_chat') }, { label: t('profile_tab.merged_profile') }];\n }\n\n private resetState() {\n this.isEditStatus = false;\n this.statusId = undefined;\n this.isEditTag = false;\n this.isAddTag = false;\n this.isMerge = false;\n this.isOpenDrawer = false;\n this.tempDrawerUser = null;\n this.mergeIndex = 0;\n this.tempUser = null;\n this.activeTabIndex = 0;\n this.associatedUsers = [];\n this.tagItems = [];\n this.isEditContext = false;\n this.context = undefined;\n this.isEditSummarizeMessage = false;\n this.summarizeMessageItems = [];\n this.prevSelectedChat = null;\n userStore.reset();\n }\n\n async componentWillLoad() {\n this.disposeListener = selectedChatStore.onChange('selectedChat', async newChat => {\n if (!newChat) {\n this.resetState();\n return;\n }\n if (newChat.id !== this.prevSelectedChat?.id) {\n this.resetState();\n const type = newChat.type === 'group' ? 'group' : 'user';\n await this.loadUser({ type, channel: newChat.channel, id: newChat[type].id, sessionId: newChat.id });\n this.prevSelectedChat = newChat;\n }\n });\n }\n\n private async loadUser({ type, channel, id, sessionId, isZignalUser }:\n {\n type?: \"user\" | \"group\"\n channel: ChannelType\n id: string\n sessionId?: string\n isZignalUser?: boolean\n }\n ) {\n try {\n this.isLoading = true;\n if (isZignalUser) {\n this.tempUser = userStore.get('user');\n }\n const user = await getUser({ type, channel, id, sessionId });\n userStore.set('user', user);\n this.statusId = user.status?.id;\n this.context = user.context;\n this.tagItems = user.tags.map(tag => ({ item: tag }));\n this.summarizeMessageItems = user.summarize_messages?.map(tag => ({ item: tag })) || [];\n serviceUpdateChatItem({\n chatId: sessionId,\n updateValue: {\n tags: user.tags,\n summarize_messages: user.summarize_messages,\n },\n });\n await this.loadAssociatedUsers(user);\n } catch (error: unknown) {\n if (isZignalUser) {\n this.tempUser = null;\n }\n handleError(error, 'Failed to load user');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async loadAssociatedUsers(user: UserItem) {\n try {\n this.isLoading = true;\n if (user.zignal_user_id) {\n const zignalUser = await getUser({ channel: 'zignal', id: user.zignal_user_id });\n this.associatedUsers = zignalUser.associated_users;\n } else {\n this.associatedUsers = [];\n }\n } catch (error: unknown) {\n handleError(error, 'Failed to load associated users');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async createNewUserStatus(name: string) {\n try {\n this.isLoading = true;\n const userStatuses = await createUserStatus({ name, color: getRandomHexColor() });\n return userStatuses;\n } catch (error) {\n handleError(error, 'Failed to createUserStatus');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async createNewUserTag(name: string) {\n try {\n this.isLoading = true;\n const userTags = await createUserTag({ name, color: getRandomHexColor() });\n return userTags;\n } catch (error: unknown) {\n handleError(error, 'Failed to create user tag');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async createNewUserContext(name: string) {\n try {\n this.isLoading = true;\n const userContexts = {\n id: new Date().getTime().toString(),\n name\n } //await createUserContext({ name });\n return userContexts;\n } catch (error: unknown) {\n handleError(error, 'Failed to create user context');\n } finally {\n this.isLoading = false;\n }\n }\n\n disconnectedCallback() {\n this.disposeListener?.();\n }\n\n render() {\n const t = useTranslation();\n const selectedChat = selectedChatStore.get('selectedChat');\n const user = userStore.get('user');\n const theme = configStore.get('theme');\n const type = selectedChat?.type === 'group' ? 'group' : 'user';\n\n const handleOpenDialogEditor = async ({ label, field, value, type = 'input' }: Omit<ShowDialog, 'open'>) => {\n this.showDialog = { open: true, type, label, field, value };\n };\n\n const handleCloseDialogEditor = () => {\n this.showDialog = { open: false };\n };\n\n const handleEditStatus = () => {\n this.isEditStatus = true;\n };\n\n const handleCloseStatus = () => {\n this.isEditStatus = false;\n };\n\n const handleEditTag = () => {\n this.isEditTag = true;\n };\n\n const handleCloseTag = () => {\n this.isEditTag = false;\n this.tagItems = this.tagItems\n .filter(({ isAdd }) => !isAdd)\n .map(item => ({\n ...item,\n isDelete: undefined,\n isAdd: undefined,\n }));\n };\n\n const handleEditContext = () => {\n this.isEditContext = true;\n };\n\n const handleCloseContext = () => {\n this.isEditContext = false;\n };\n\n const handleEditSummarizeMessage = () => {\n this.isEditSummarizeMessage = true;\n };\n\n const handleCloseSummarizeMessage = () => {\n this.isEditSummarizeMessage = false;\n this.summarizeMessageItems = this.summarizeMessageItems\n .filter(({ isAdd }) => !isAdd)\n .map(item => ({\n ...item,\n isDelete: undefined,\n isAdd: undefined,\n }));\n };\n\n const isAllowEmpty = (field: string) => {\n return ['email', 'phone_number', 'address', 'gender', 'locale', 'note', 'status_id'].includes(field);\n };\n\n const handleUpdateUser = async (field: string, value: string | string[]) => {\n try {\n this.isLoading = true;\n const updateValue = { [field]: isAllowEmpty(field) ? (value ? value : null) : value };\n const userResponse = await updateUser({\n type,\n channel: user.channel,\n id: user.id,\n ...updateValue,\n });\n\n if (['user-updated', 'group-updated'].includes(userResponse.code)) {\n userStore.set('user', {\n ...userStore.get('user'),\n ...(field === 'status_id'\n ? {\n status: statusesStore.get('statuses').find(status => status.id === value),\n }\n : updateValue),\n });\n }\n } catch (error) {\n handleError(error, 'Failed to UpdateUser');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleRemoveStatus = () => {\n this.statusId = undefined;\n };\n\n // const handleRemoveContext = () => {\n // this.context = undefined;\n // };\n\n const handleSaveDialogEditor = async (field: string, value: string) => {\n await handleUpdateUser(field, value);\n handleCloseDialogEditor();\n };\n\n const handleCreateBill = async (value: BillingItem) => {\n alert('Create billing item: ' + JSON.stringify(value));\n // await handleUpdateUser(field, value);\n };\n\n const handleSaveUserStatus = async () => {\n await handleUpdateUser('status_id', this.statusId);\n handleCloseStatus();\n };\n\n const handleSaveUserTags = async () => {\n try {\n this.isLoading = true;\n\n const addTagIds = [];\n const removeTagIds = [];\n for (const item of this.tagItems) {\n if (item?.isAdd) {\n addTagIds.push(item.item.id);\n } else if (item?.isDelete) {\n removeTagIds.push(item.item.id);\n }\n }\n\n const userResponse = await updateUser({\n type,\n channel: selectedChat.channel,\n id: user.id,\n add_tag_ids: addTagIds.length > 0 ? addTagIds : undefined,\n remove_tag_ids: removeTagIds.length > 0 ? removeTagIds : undefined,\n });\n\n if (['user-updated', 'group-updated'].includes(userResponse.code)) {\n const type = selectedChat.type === 'group' ? 'group' : 'user';\n await this.loadUser({ type, channel: selectedChat.channel, id: user.id, sessionId: selectedChat.id });\n }\n\n handleCloseTag();\n } catch (error) {\n handleError(error, 'Failed to UpdateUserTags');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleSaveUserContext = async () => {\n // await handleUpdateUser('context_id', this.context);\n\n userStore.set('user', {\n ...userStore.get('user'),\n ...({\n context: this.context,\n }),\n });\n\n handleCloseContext();\n };\n\n const handleSaveUserSummarizeMessages = async (detail: { item: TTagOrStatusItem; isAdd?: boolean; isDelete?: boolean; }[]) => {\n try {\n this.isLoading = true;\n\n // const addSummarizeMessageIds = [];\n // const removeSummarizeMessageIds = [];\n // for (const item of this.summarizeMessageItems) {\n // if (item?.isAdd) {\n // addSummarizeMessageIds.push(item.item.id);\n // } else if (item?.isDelete) {\n // removeSummarizeMessageIds.push(item.item.id);\n // }\n // }\n this.summarizeMessageItems = detail;\n userStore.set('user', {\n ...userStore.get('user'),\n ...({\n summarize_messages: detail.map(item => item.item),\n })\n })\n // const userResponse = await updateUser({\n // channel: selectedChat.channel,\n // userId: user.id,\n // add_tag_ids: addSummarizeMessageIds.length > 0 ? addSummarizeMessageIds : undefined,\n // remove_tag_ids: removeSummarizeMessageIds.length > 0 ? removeSummarizeMessageIds : undefined,\n // });\n\n // if (['user-updated', 'group-updated'].includes(userResponse.code)) {\n // await this.loadUser(selectedChat.channel, user.id, selectedChat.id);\n // }\n\n handleCloseSummarizeMessage();\n } catch (error) {\n handleError(error, 'Failed to UpdateUserSummarizeMessages');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handlePrevMergeUser = () => {\n const prevIndex = this.mergeIndex - 1;\n if (prevIndex >= 0 && prevIndex <= user.match_users.length - 1) {\n this.mergeIndex = prevIndex;\n }\n };\n\n const handleNextMergeUser = () => {\n const nextIndex = this.mergeIndex + 1;\n if (nextIndex <= user.match_users.length - 1) {\n this.mergeIndex = nextIndex;\n }\n };\n\n const handleActionMergeUser = async (matchDecision: MatchDecision) => {\n try {\n this.isLoading = true;\n\n const mergeResponse = await mergeUser({\n matchUserId: user.match_users[this.mergeIndex].id,\n matchDecision,\n });\n\n if (['match-user-merged', 'match-user-rejected'].includes(mergeResponse.code)) {\n const type = selectedChat.type === 'group' ? 'group' : 'user';\n await this.loadUser({ type, channel: selectedChat.channel, id: user.id, sessionId: selectedChat.id });\n }\n\n if (user.match_users.length === 1) {\n this.isMerge = false;\n await handleSelectTab(1);\n }\n } catch (error) {\n handleError(error, 'Failed to MergeUser');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleSelectTab = async (index: number) => {\n if (this.activeTabIndex === index) return;\n this.activeTabIndex = index;\n if (index !== 1 && this.tempUser !== null) {\n const tempUser = userStore.get('user');\n userStore.set('user', this.tempUser);\n this.statusId = this.tempUser.status?.id;\n this.context = this.tempUser.context;\n this.tagItems = this.tempUser.tags.map(tag => ({ item: tag }));\n this.tempUser = tempUser;\n }\n handleCloseStatus();\n handleCloseTag();\n handleCloseContext();\n };\n\n const handleJumpToChat = ({ session_id: sessionId }: AssociatedUser) => {\n const customSign = <div class=\"profile-info-jump-chat-sign\">\n <z-avatar pictureUrl={getChatPicture(selectedChat)} />\n <Icon name=\"ArrowRight\" addClass='size-8' />\n <z-avatar\n pictureUrl={getChatPicture({\n ...selectedChat,\n user: {\n ...selectedChat.user,\n picture_url: this.associatedUsers.find(associatedUser => associatedUser.session_id === sessionId)?.picture_url || ''\n }\n })}\n />\n </div>;\n\n const onSubmitDialog = async () => {\n try {\n const selectedChat = selectedChatStore.get('selectedChat');\n if (selectedChat && selectedChat.id !== sessionId) {\n this.isLoading = true;\n leaveRoom(selectedChat.id);\n const chat = await handleGetChat(sessionId);\n selectedChatStore.set('selectedChat', chat);\n } else {\n return;\n }\n } catch (error) {\n handleError(error, 'Failed to jump Chat');\n } finally {\n this.isLoading = false;\n }\n };\n\n openDialog({\n open: true,\n type: DIALOG_TYPE.CUSTOM,\n customSign,\n title: 'คุณต้องการสลับไปยังแชทอื่นใช่หรือไม่',\n contentCustom: 'เมื่อยืนยัน ระบบจะพาคุณไปยังแชทที่เลือก หากต้องการกลับมาแชทนี้ คุณจะต้องเลือกแชทนี้ใหม่อีกครั้ง',\n buttonName: t('confirm'),\n cancelButtonName: t('cancel'),\n onSubmitDialog,\n onCloseDialog: closeDialog,\n });\n };\n\n const handleViewProfile = async ({ channel, id, session_id: sessionId }: AssociatedUser) => {\n try {\n this.isLoading = true;\n const user = await getUser({ channel, id, sessionId });\n this.tempDrawerUser = user;\n this.isOpenDrawer = true;\n } catch (error) {\n handleError(error, 'Failed to load View User');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleUnlinkUser = async ({ channel, id: userId }: AssociatedUser) => {\n try {\n this.isLoading = true;\n const unlinkResponse = await unlinkUser({\n zignalUserId: user.zignal_user_id,\n channel,\n userId,\n });\n\n if (unlinkResponse.code === 'user-unlinked') {\n await this.loadUser({ channel: selectedChat.channel, id: user.id, sessionId: selectedChat.id });\n }\n } catch (error) {\n handleError(error, 'Failed to unlinkUser');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleSyncUser = async () => {\n try {\n this.isSyncUserLoading = true;\n const id = user.id;\n const channel = selectedChat.channel;\n const response = await syncUser({ channel, id });\n\n if (response.code === 'user-synced') {\n const type = selectedChat.type === 'group' ? 'group' : 'user';\n await this.loadUser({ type, channel, id, sessionId: selectedChat.id });\n }\n } catch (error) {\n handleError(error, 'Failed to SyncUser');\n } finally {\n this.isSyncUserLoading = false;\n }\n };\n\n const renderUserInfo = (_user: UserItem, readOnly: boolean = false) => {\n return (\n <div>\n <user-info-section\n user={_user}\n readOnly={readOnly}\n isEditStatus={this.isEditStatus}\n statusId={this.statusId}\n onOpenDialogEditor={event => handleOpenDialogEditor(event.detail)}\n onEditStatus={() => handleEditStatus()}\n onCloseStatus={() => handleCloseStatus()}\n onRemoveStatus={() => handleRemoveStatus()}\n onSaveUserStatus={() => handleSaveUserStatus()}\n onStatusSelecting={event => (this.statusId = event.detail)}\n onCreateUserStatusRequest={(event) => {\n this.createNewUserStatus(event.detail.name).then(result => {\n event.detail.callback(result);\n });\n }}\n onCreateBill={(event) => handleCreateBill(event.detail)}\n />\n\n <AboutSection\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n onOpenDialogEditor={handleOpenDialogEditor}\n />\n\n <TagSection\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n isEditTag={this.isEditTag}\n isAddTag={this.isAddTag}\n tagItems={this.tagItems}\n onEditTag={handleEditTag}\n onCloseTag={handleCloseTag}\n onSaveUserTags={handleSaveUserTags}\n onSetIsAddTag={value => (this.isAddTag = value)}\n onDeleteTag={tagId => {\n this.tagItems = this.tagItems.map(item =>\n item.item.id === tagId\n ? {\n ...item,\n isDelete: true,\n isAdd: false,\n }\n : item,\n );\n }}\n onAddTag={tag => {\n this.tagItems = [\n ...this.tagItems,\n {\n item: tag,\n isAdd: true,\n isDelete: undefined,\n },\n ];\n }}\n onCreateUserTag={name => this.createNewUserTag(name)}\n />\n\n <ContextSection\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n isEditContext={this.isEditContext}\n context={this.context}\n onEditContext={handleEditContext}\n onCloseContext={handleCloseContext}\n // onRemoveContext={handleRemoveContext}\n onSaveUserContexts={handleSaveUserContext}\n onContextSelecting={context => (this.context = context)}\n onCreateUserContext={name => this.createNewUserContext(name)}\n />\n\n <summarize-message-section\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n isEditSummarizeMessage={this.isEditSummarizeMessage}\n summarizeMessageItems={this.summarizeMessageItems}\n onEditSummarizeMessage={handleEditSummarizeMessage}\n onCancelSummarizeMessage={handleCloseSummarizeMessage}\n onSaveUserSummarizeMessage={(event) => handleSaveUserSummarizeMessages(event.detail)}\n />\n </div>\n );\n };\n\n return (\n <Host>\n {selectedChat && user && (\n <div class=\"z-animate-width profile-info\">\n {this.isMerge ? (\n <MergeUserView\n mergeIndex={this.mergeIndex}\n onClose={() => (this.isMerge = false)}\n onPrevMergeUser={handlePrevMergeUser}\n onNextMergeUser={handleNextMergeUser}\n onActionMergeUser={handleActionMergeUser}\n />\n ) : (\n <div class=\"z-animate-width relative\">\n {selectedChat.type === 'user' &&\n <div class=\"profile-info-refresh-user-button\">\n <ZIconButton\n variant=\"text\"\n iconName=\"RotateCw\"\n addClassIcon=\"size-4\"\n isLoading={this.isSyncUserLoading}\n onClick={() => handleSyncUser()}\n />\n </div>\n }\n\n {user.match_users && user.match_users.length > 0 && (\n <div class={`profile-info-match-user-suggest-wrapper z-background-primary-${theme}`}>\n <div class={`profile-info-box-wrapper`}>\n <span>{t('profile_tab.match_user')}</span>\n <div class=\"relative\">\n <z-avatar size=\"small\" pictureUrl={user.match_users[0].user.picture_url} />\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${user.match_users[0].channel}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar absolute bottom-[-2px] right-[-2px]\"\n loading=\"lazy\"\n />\n </div>\n </div>\n <span class=\"profile-info-match-user-suggest-button\" onClick={() => (this.isMerge = true)}>\n {`${t('profile_tab.view_data')} >`}\n </span>\n </div>\n )}\n\n {(user.zignal_user_id || this.tempUser !== null) && (\n <div class={`profile-info-match-user-suggest-user-wrapper z-border-primary-${theme}`}>\n {this.tabs().map(({ label }, index) => (\n <ZButton\n label={label}\n onClick={() => handleSelectTab(index)}\n variant={this.activeTabIndex === index ? 'primary' : 'text'}\n startIcon={\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${index === 0 ? selectedChat.channel : `${theme}-zignal`}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n }\n />\n ))}\n </div>\n )}\n\n {renderUserInfo(user)}\n\n {this.associatedUsers && this.associatedUsers.length > 0 && (\n <AssociatedUsersSection\n associatedUsers={this.associatedUsers}\n isOpenDrawer={this.isOpenDrawer}\n tempDrawerUser={this.tempDrawerUser}\n onJumpToChat={handleJumpToChat}\n onViewProfile={handleViewProfile}\n onUnlinkUser={handleUnlinkUser}\n onSetIsOpenDrawer={value => (this.isOpenDrawer = value)}\n renderUserInfo={renderUserInfo}\n />\n )}\n\n {this.showDialog.open && (\n <div class=\"dialog-backdrop\">\n <dialog-editor\n label={this.showDialog.label}\n dialogType={this.showDialog.type}\n field={this.showDialog.field}\n value={this.showDialog.value}\n allowEmpty={isAllowEmpty(this.showDialog.field)}\n onCancel={handleCloseDialogEditor}\n onSave={(event: any) => handleSaveDialogEditor(this.showDialog.field, event?.detail)}\n />\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|