mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-31 11:08:04 +00:00 
			
		
		
		
	style: apply fixes for eslint issues [cw-3590] (#10210)
These fixes are all auto generated and can be merged directly Fixes the following issues 1. Event used on components should be hypenated 2. Attribute orders in components 3. Use `unmounted` instead of `destroyed` 4. Add explicit `emits` declarations for components, autofixed [using this script](https://gist.github.com/scmmishra/6f549109b96400006bb69bbde392eddf) We ignore the top level v-if for now, we will fix it later
This commit is contained in:
		| @@ -769,11 +769,11 @@ watch(conversationFilters, (newVal, oldVal) => { | |||||||
|       :has-applied-filters="hasAppliedFilters" |       :has-applied-filters="hasAppliedFilters" | ||||||
|       :has-active-folders="hasActiveFolders" |       :has-active-folders="hasActiveFolders" | ||||||
|       :active-status="activeStatus" |       :active-status="activeStatus" | ||||||
|       @addFolders="onClickOpenAddFoldersModal" |       @add-folders="onClickOpenAddFoldersModal" | ||||||
|       @deleteFolders="onClickOpenDeleteFoldersModal" |       @delete-folders="onClickOpenDeleteFoldersModal" | ||||||
|       @filtersModal="onToggleAdvanceFiltersModal" |       @filters-modal="onToggleAdvanceFiltersModal" | ||||||
|       @resetFilters="resetAndFetchData" |       @reset-filters="resetAndFetchData" | ||||||
|       @basicFilterChange="onBasicFilterChange" |       @basic-filter-change="onBasicFilterChange" | ||||||
|     /> |     /> | ||||||
|  |  | ||||||
|     <AddCustomViews |     <AddCustomViews | ||||||
| @@ -796,7 +796,7 @@ watch(conversationFilters, (newVal, oldVal) => { | |||||||
|       v-if="!hasAppliedFiltersOrActiveFolders" |       v-if="!hasAppliedFiltersOrActiveFolders" | ||||||
|       :items="assigneeTabItems" |       :items="assigneeTabItems" | ||||||
|       :active-tab="activeAssigneeTab" |       :active-tab="activeAssigneeTab" | ||||||
|       @chatTabChange="updateAssigneeTab" |       @chat-tab-change="updateAssigneeTab" | ||||||
|     /> |     /> | ||||||
|  |  | ||||||
|     <p |     <p | ||||||
| @@ -813,11 +813,11 @@ watch(conversationFilters, (newVal, oldVal) => { | |||||||
|       :show-open-action="allSelectedConversationsStatus('open')" |       :show-open-action="allSelectedConversationsStatus('open')" | ||||||
|       :show-resolved-action="allSelectedConversationsStatus('resolved')" |       :show-resolved-action="allSelectedConversationsStatus('resolved')" | ||||||
|       :show-snoozed-action="allSelectedConversationsStatus('snoozed')" |       :show-snoozed-action="allSelectedConversationsStatus('snoozed')" | ||||||
|       @selectAllConversations="toggleSelectAll" |       @select-all-conversations="toggleSelectAll" | ||||||
|       @assignAgent="onAssignAgent" |       @assign-agent="onAssignAgent" | ||||||
|       @updateConversations="onUpdateConversations" |       @update-conversations="onUpdateConversations" | ||||||
|       @assignLabels="onAssignLabels" |       @assign-labels="onAssignLabels" | ||||||
|       @assignTeam="onAssignTeamsForBulk" |       @assign-team="onAssignTeamsForBulk" | ||||||
|     /> |     /> | ||||||
|     <div |     <div | ||||||
|       ref="conversationListRef" |       ref="conversationListRef" | ||||||
| @@ -854,8 +854,8 @@ watch(conversationFilters, (newVal, oldVal) => { | |||||||
|               :folders-id="foldersId" |               :folders-id="foldersId" | ||||||
|               :conversation-type="conversationType" |               :conversation-type="conversationType" | ||||||
|               :show-assignee="showAssigneeInConversationCard" |               :show-assignee="showAssigneeInConversationCard" | ||||||
|               @selectConversation="selectConversation" |               @select-conversation="selectConversation" | ||||||
|               @deSelectConversation="deSelectConversation" |               @de-select-conversation="deSelectConversation" | ||||||
|             /> |             /> | ||||||
|           </DynamicScrollerItem> |           </DynamicScrollerItem> | ||||||
|         </template> |         </template> | ||||||
| @@ -889,8 +889,8 @@ watch(conversationFilters, (newVal, oldVal) => { | |||||||
|         :active-folder-name="activeFolderName" |         :active-folder-name="activeFolderName" | ||||||
|         :on-close="closeAdvanceFiltersModal" |         :on-close="closeAdvanceFiltersModal" | ||||||
|         :is-folder-view="hasActiveFolders" |         :is-folder-view="hasActiveFolders" | ||||||
|         @applyFilter="onApplyFilter" |         @apply-filter="onApplyFilter" | ||||||
|         @updateFolder="onUpdateSavedFilter" |         @update-folder="onUpdateSavedFilter" | ||||||
|       /> |       /> | ||||||
|     </woot-modal> |     </woot-modal> | ||||||
|   </div> |   </div> | ||||||
|   | |||||||
| @@ -108,7 +108,7 @@ const hasAppliedFiltersOrActiveFolders = computed(() => { | |||||||
|       /> |       /> | ||||||
|       <ConversationBasicFilter |       <ConversationBasicFilter | ||||||
|         v-if="!hasAppliedFiltersOrActiveFolders" |         v-if="!hasAppliedFiltersOrActiveFolders" | ||||||
|         @changeFilter="onBasicFilterChange" |         @change-filter="onBasicFilterChange" | ||||||
|       /> |       /> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
|   | |||||||
| @@ -56,14 +56,14 @@ export default { | |||||||
|     :selected="isConversationSelected(source.id)" |     :selected="isConversationSelected(source.id)" | ||||||
|     :show-assignee="showAssignee" |     :show-assignee="showAssignee" | ||||||
|     enable-context-menu |     enable-context-menu | ||||||
|     @selectConversation="selectConversation" |     @select-conversation="selectConversation" | ||||||
|     @deSelectConversation="deSelectConversation" |     @de-select-conversation="deSelectConversation" | ||||||
|     @assignAgent="assignAgent" |     @assign-agent="assignAgent" | ||||||
|     @assignTeam="assignTeam" |     @assign-team="assignTeam" | ||||||
|     @assignLabel="assignLabels" |     @assign-label="assignLabels" | ||||||
|     @updateConversationStatus="updateConversationStatus" |     @update-conversation-status="updateConversationStatus" | ||||||
|     @contextMenuToggle="toggleContextMenu" |     @context-menu-toggle="toggleContextMenu" | ||||||
|     @markAsUnread="markAsUnread" |     @mark-as-unread="markAsUnread" | ||||||
|     @assignPriority="assignPriority" |     @assign-priority="assignPriority" | ||||||
|   /> |   /> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -31,6 +31,7 @@ export default { | |||||||
|     attributeKey: { type: String, required: true }, |     attributeKey: { type: String, required: true }, | ||||||
|     contactId: { type: Number, default: null }, |     contactId: { type: Number, default: null }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['update', 'delete', 'copy'], | ||||||
|   setup() { |   setup() { | ||||||
|     return { v$: useVuelidate() }; |     return { v$: useVuelidate() }; | ||||||
|   }, |   }, | ||||||
| @@ -138,7 +139,7 @@ export default { | |||||||
|     this.editedValue = this.formattedValue; |     this.editedValue = this.formattedValue; | ||||||
|     emitter.on(BUS_EVENTS.FOCUS_CUSTOM_ATTRIBUTE, this.onFocusAttribute); |     emitter.on(BUS_EVENTS.FOCUS_CUSTOM_ATTRIBUTE, this.onFocusAttribute); | ||||||
|   }, |   }, | ||||||
|   destroyed() { |   unmounted() { | ||||||
|     emitter.off(BUS_EVENTS.FOCUS_CUSTOM_ATTRIBUTE, this.onFocusAttribute); |     emitter.off(BUS_EVENTS.FOCUS_CUSTOM_ATTRIBUTE, this.onFocusAttribute); | ||||||
|   }, |   }, | ||||||
|   methods: { |   methods: { | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ const shouldShowContent = computed( | |||||||
| ); | ); | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <div v-if="shouldShowContent"> |   <div v-if="shouldShowContent"> | ||||||
|     <slot /> |     <slot /> | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ export default { | |||||||
|   components: { |   components: { | ||||||
|     DatePicker, |     DatePicker, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['close', 'chooseTime'], | ||||||
|  |  | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|   | |||||||
| @@ -79,6 +79,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <Banner |   <Banner | ||||||
|     v-if="shouldShowBanner" |     v-if="shouldShowBanner" | ||||||
| @@ -86,6 +87,6 @@ export default { | |||||||
|     :banner-message="bannerMessage" |     :banner-message="bannerMessage" | ||||||
|     :action-button-label="actionButtonMessage" |     :action-button-label="actionButtonMessage" | ||||||
|     has-action-button |     has-action-button | ||||||
|     @primaryAction="routeToBilling" |     @primary-action="routeToBilling" | ||||||
|   /> |   /> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -28,6 +28,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <Banner |   <Banner | ||||||
|     v-if="shouldShowBanner" |     v-if="shouldShowBanner" | ||||||
| @@ -36,6 +37,6 @@ export default { | |||||||
|     :action-button-label="actionButtonMessage" |     :action-button-label="actionButtonMessage" | ||||||
|     action-button-icon="mail" |     action-button-icon="mail" | ||||||
|     has-action-button |     has-action-button | ||||||
|     @primaryAction="resendVerificationEmail" |     @primary-action="resendVerificationEmail" | ||||||
|   /> |   /> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -67,6 +67,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <Banner |   <Banner | ||||||
|     v-if="shouldShowBanner" |     v-if="shouldShowBanner" | ||||||
|   | |||||||
| @@ -81,6 +81,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <Banner |   <Banner | ||||||
|     v-if="shouldShowBanner" |     v-if="shouldShowBanner" | ||||||
| @@ -88,6 +89,6 @@ export default { | |||||||
|     :banner-message="bannerMessage" |     :banner-message="bannerMessage" | ||||||
|     :action-button-label="actionButtonMessage" |     :action-button-label="actionButtonMessage" | ||||||
|     has-action-button |     has-action-button | ||||||
|     @primaryAction="routeToBilling" |     @primary-action="routeToBilling" | ||||||
|   /> |   /> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -22,11 +22,14 @@ export default { | |||||||
|       type: Boolean, |       type: Boolean, | ||||||
|       default: true, |       default: true, | ||||||
|     }, |     }, | ||||||
|     hasBanner: { |  | ||||||
|       type: Boolean, |  | ||||||
|       default: false, |  | ||||||
|     }, |  | ||||||
|   }, |   }, | ||||||
|  |   emits: [ | ||||||
|  |     'toggleAccountModal', | ||||||
|  |     'showAddLabelPopup', | ||||||
|  |     'openNotificationPanel', | ||||||
|  |     'closeKeyShortcutModal', | ||||||
|  |     'openKeyShortcutModal', | ||||||
|  |   ], | ||||||
|   setup(props, { emit }) { |   setup(props, { emit }) { | ||||||
|     const route = useRoute(); |     const route = useRoute(); | ||||||
|     const router = useRouter(); |     const router = useRouter(); | ||||||
| @@ -217,9 +220,9 @@ export default { | |||||||
|       :account-id="accountId" |       :account-id="accountId" | ||||||
|       :menu-items="primaryMenuItems" |       :menu-items="primaryMenuItems" | ||||||
|       :active-menu-item="activePrimaryMenu.key" |       :active-menu-item="activePrimaryMenu.key" | ||||||
|       @toggleAccounts="toggleAccountModal" |       @toggle-accounts="toggleAccountModal" | ||||||
|       @openKeyShortcutModal="toggleKeyShortcutModal" |       @open-key-shortcut-modal="toggleKeyShortcutModal" | ||||||
|       @openNotificationPanel="openNotificationPanel" |       @open-notification-panel="openNotificationPanel" | ||||||
|     /> |     /> | ||||||
|     <SecondarySidebar |     <SecondarySidebar | ||||||
|       v-if="hasSecondarySidebar" |       v-if="hasSecondarySidebar" | ||||||
| @@ -231,8 +234,8 @@ export default { | |||||||
|       :menu-config="activeSecondaryMenu" |       :menu-config="activeSecondaryMenu" | ||||||
|       :current-user="currentUser" |       :current-user="currentUser" | ||||||
|       :is-on-chatwoot-cloud="isOnChatwootCloud" |       :is-on-chatwoot-cloud="isOnChatwootCloud" | ||||||
|       @addLabel="showAddLabelPopup" |       @add-label="showAddLabelPopup" | ||||||
|       @toggleAccounts="toggleAccountModal" |       @toggle-accounts="toggleAccountModal" | ||||||
|     /> |     /> | ||||||
|   </aside> |   </aside> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| import { mapGetters } from 'vuex'; | import { mapGetters } from 'vuex'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|  |   emits: ['toggleAccounts'], | ||||||
|   data() { |   data() { | ||||||
|     return { showSwitchButton: false }; |     return { showSwitchButton: false }; | ||||||
|   }, |   }, | ||||||
| @@ -25,6 +26,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <div |   <div | ||||||
|     v-if="showShowCurrentAccountContext" |     v-if="showShowCurrentAccountContext" | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ export default { | |||||||
|       default: true, |       default: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['closeAccountModal', 'showCreateAccountModal'], | ||||||
|   computed: { |   computed: { | ||||||
|     ...mapGetters({ |     ...mapGetters({ | ||||||
|       accountId: 'getCurrentAccountId', |       accountId: 'getCurrentAccountId', | ||||||
|   | |||||||
| @@ -15,6 +15,7 @@ export default { | |||||||
|       default: true, |       default: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['closeAccountCreateModal'], | ||||||
|   setup() { |   setup() { | ||||||
|     return { v$: useVuelidate() }; |     return { v$: useVuelidate() }; | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ export default { | |||||||
|   components: { |   components: { | ||||||
|     Thumbnail, |     Thumbnail, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['toggleMenu'], | ||||||
|   computed: { |   computed: { | ||||||
|     ...mapGetters({ |     ...mapGetters({ | ||||||
|       currentUser: 'getCurrentUser', |       currentUser: 'getCurrentUser', | ||||||
|   | |||||||
| @@ -2,6 +2,8 @@ | |||||||
| import { mapGetters } from 'vuex'; | import { mapGetters } from 'vuex'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|  |   emits: ['openNotificationPanel'], | ||||||
|  |  | ||||||
|   computed: { |   computed: { | ||||||
|     ...mapGetters({ |     ...mapGetters({ | ||||||
|       notificationMetadata: 'notifications/getMeta', |       notificationMetadata: 'notifications/getMeta', | ||||||
|   | |||||||
| @@ -17,6 +17,12 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: [ | ||||||
|  |     'close', | ||||||
|  |     'openKeyShortcutModal', | ||||||
|  |     'toggleAccounts', | ||||||
|  |     'showSupportChatWindow', | ||||||
|  |   ], | ||||||
|   computed: { |   computed: { | ||||||
|     ...mapGetters({ |     ...mapGetters({ | ||||||
|       currentUser: 'getCurrentUser', |       currentUser: 'getCurrentUser', | ||||||
|   | |||||||
| @@ -43,6 +43,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['toggleAccounts', 'openNotificationPanel', 'openKeyShortcutModal'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       helpDocsURL: wootConstants.DOCS_URL, |       helpDocsURL: wootConstants.DOCS_URL, | ||||||
| @@ -96,13 +97,13 @@ export default { | |||||||
|         open-in-new-page |         open-in-new-page | ||||||
|         :to="helpDocsURL" |         :to="helpDocsURL" | ||||||
|       /> |       /> | ||||||
|       <NotificationBell @openNotificationPanel="openNotificationPanel" /> |       <NotificationBell @open-notification-panel="openNotificationPanel" /> | ||||||
|       <AgentDetails @toggleMenu="toggleOptions" /> |       <AgentDetails @toggle-menu="toggleOptions" /> | ||||||
|       <OptionsMenu |       <OptionsMenu | ||||||
|         :show="showOptionsMenu" |         :show="showOptionsMenu" | ||||||
|         @toggleAccounts="toggleAccountModal" |         @toggle-accounts="toggleAccountModal" | ||||||
|         @showSupportChatWindow="toggleSupportChatWindow" |         @show-support-chat-window="toggleSupportChatWindow" | ||||||
|         @openKeyShortcutModal="$emit('openKeyShortcutModal')" |         @open-key-shortcut-modal="$emit('openKeyShortcutModal')" | ||||||
|         @close="toggleOptions" |         @close="toggleOptions" | ||||||
|       /> |       /> | ||||||
|     </div> |     </div> | ||||||
|   | |||||||
| @@ -49,6 +49,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['addLabel', 'toggleAccounts'], | ||||||
|   computed: { |   computed: { | ||||||
|     ...mapGetters({ |     ...mapGetters({ | ||||||
|       isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount', |       isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount', | ||||||
| @@ -242,7 +243,7 @@ export default { | |||||||
|   <div |   <div | ||||||
|     class="flex flex-col w-48 h-full px-2 pb-8 overflow-auto text-sm bg-white border-r dark:bg-slate-900 dark:border-slate-800/50 rtl:border-r-0 rtl:border-l border-slate-50" |     class="flex flex-col w-48 h-full px-2 pb-8 overflow-auto text-sm bg-white border-r dark:bg-slate-900 dark:border-slate-800/50 rtl:border-r-0 rtl:border-l border-slate-50" | ||||||
|   > |   > | ||||||
|     <AccountContext @toggleAccounts="toggleAccountModal" /> |     <AccountContext @toggle-accounts="toggleAccountModal" /> | ||||||
|     <transition-group |     <transition-group | ||||||
|       name="menu-list" |       name="menu-list" | ||||||
|       tag="ul" |       tag="ul" | ||||||
| @@ -257,7 +258,7 @@ export default { | |||||||
|         v-for="menuItem in additionalSecondaryMenuItems[menuConfig.parentNav]" |         v-for="menuItem in additionalSecondaryMenuItems[menuConfig.parentNav]" | ||||||
|         :key="menuItem.key" |         :key="menuItem.key" | ||||||
|         :menu-item="menuItem" |         :menu-item="menuItem" | ||||||
|         @addLabel="showAddLabelPopup" |         @add-label="showAddLabelPopup" | ||||||
|       /> |       /> | ||||||
|     </transition-group> |     </transition-group> | ||||||
|   </div> |   </div> | ||||||
|   | |||||||
| @@ -106,10 +106,11 @@ export default { | |||||||
|           <span |           <span | ||||||
|             v-if="showChildCount" |             v-if="showChildCount" | ||||||
|             class="bg-slate-50 dark:bg-slate-700 rounded-full min-w-[18px] justify-center items-center flex text-xxs mx-1 py-0 px-1" |             class="bg-slate-50 dark:bg-slate-700 rounded-full min-w-[18px] justify-center items-center flex text-xxs mx-1 py-0 px-1" | ||||||
|             :class="isCountZero |             :class=" | ||||||
|  |               isCountZero | ||||||
|                 ? `text-slate-300 dark:text-slate-500` |                 ? `text-slate-300 dark:text-slate-500` | ||||||
|                 : `text-slate-700 dark:text-slate-50` |                 : `text-slate-700 dark:text-slate-50` | ||||||
|               " |             " | ||||||
|           > |           > | ||||||
|             {{ childItemCount }} |             {{ childItemCount }} | ||||||
|           </span> |           </span> | ||||||
|   | |||||||
| @@ -22,6 +22,7 @@ export default { | |||||||
|       default: () => ({}), |       default: () => ({}), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['addLabel', 'open'], | ||||||
|   setup() { |   setup() { | ||||||
|     const { isAdmin } = useAdmin(); |     const { isAdmin } = useAdmin(); | ||||||
|     const { isEnterprise } = useConfig(); |     const { isEnterprise } = useConfig(); | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['open', 'close'], | ||||||
|   methods: { |   methods: { | ||||||
|     onClickOpenPath() { |     onClickOpenPath() { | ||||||
|       this.$emit('open'); |       this.$emit('open'); | ||||||
|   | |||||||
| @@ -38,6 +38,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['primaryAction', 'close'], | ||||||
|   computed: { |   computed: { | ||||||
|     bannerClasses() { |     bannerClasses() { | ||||||
|       const classList = [this.colorScheme]; |       const classList = [this.colorScheme]; | ||||||
|   | |||||||
| @@ -222,7 +222,7 @@ const emitDateRange = () => { | |||||||
|     > |     > | ||||||
|       <CalendarDateRange |       <CalendarDateRange | ||||||
|         :selected-range="selectedRange" |         :selected-range="selectedRange" | ||||||
|         @setRange="setDateRange" |         @set-range="setDateRange" | ||||||
|       /> |       /> | ||||||
|       <div |       <div | ||||||
|         class="flex flex-col w-[680px] ltr:border-l rtl:border-r border-slate-50 dark:border-slate-700/50" |         class="flex flex-col w-[680px] ltr:border-l rtl:border-r border-slate-50 dark:border-slate-700/50" | ||||||
| @@ -264,15 +264,15 @@ const emitDateRange = () => { | |||||||
|                   :calendar-type="calendar" |                   :calendar-type="calendar" | ||||||
|                   :start-current-date="startCurrentDate" |                   :start-current-date="startCurrentDate" | ||||||
|                   :end-current-date="endCurrentDate" |                   :end-current-date="endCurrentDate" | ||||||
|                   @selectYear="openCalendar($event, calendar, YEAR)" |                   @select-year="openCalendar($event, calendar, YEAR)" | ||||||
|                 /> |                 /> | ||||||
|                 <CalendarMonth |                 <CalendarMonth | ||||||
|                   v-else-if="calendarViews[calendar] === MONTH" |                   v-else-if="calendarViews[calendar] === MONTH" | ||||||
|                   :calendar-type="calendar" |                   :calendar-type="calendar" | ||||||
|                   :start-current-date="startCurrentDate" |                   :start-current-date="startCurrentDate" | ||||||
|                   :end-current-date="endCurrentDate" |                   :end-current-date="endCurrentDate" | ||||||
|                   @selectMonth="openCalendar($event, calendar)" |                   @select-month="openCalendar($event, calendar)" | ||||||
|                   @setView="setViewMode" |                   @set-view="setViewMode" | ||||||
|                   @prev="moveCalendar(calendar, 'prev', YEAR)" |                   @prev="moveCalendar(calendar, 'prev', YEAR)" | ||||||
|                   @next="moveCalendar(calendar, 'next', YEAR)" |                   @next="moveCalendar(calendar, 'next', YEAR)" | ||||||
|                 /> |                 /> | ||||||
| @@ -286,9 +286,9 @@ const emitDateRange = () => { | |||||||
|                   :selected-end-date="selectedEndDate" |                   :selected-end-date="selectedEndDate" | ||||||
|                   :selecting-end-date="selectingEndDate" |                   :selecting-end-date="selectingEndDate" | ||||||
|                   :hovered-end-date="hoveredEndDate" |                   :hovered-end-date="hoveredEndDate" | ||||||
|                   @updateHoveredEndDate="hoveredEndDate = $event" |                   @update-hovered-end-date="hoveredEndDate = $event" | ||||||
|                   @selectDate="selectDate" |                   @select-date="selectDate" | ||||||
|                   @setView="setViewMode" |                   @set-view="setViewMode" | ||||||
|                   @prev="moveCalendar(calendar, 'prev')" |                   @prev="moveCalendar(calendar, 'prev')" | ||||||
|                   @next="moveCalendar(calendar, 'next')" |                   @next="moveCalendar(calendar, 'next')" | ||||||
|                 /> |                 /> | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| <script setup> | <script setup> | ||||||
| const emit = defineEmits(['clear', 'clear']); | const emit = defineEmits(['clear', 'change']); | ||||||
|  |  | ||||||
| const onClickClear = () => { | const onClickClear = () => { | ||||||
|   emit('clear'); |   emit('clear'); | ||||||
|   | |||||||
| @@ -62,7 +62,7 @@ const selectMonth = index => { | |||||||
|           MONTH |           MONTH | ||||||
|         ) |         ) | ||||||
|       " |       " | ||||||
|       @setView="setViewMode" |       @set-view="setViewMode" | ||||||
|       @prev="onClickPrev" |       @prev="onClickPrev" | ||||||
|       @next="onClickNext" |       @next="onClickNext" | ||||||
|     /> |     /> | ||||||
|   | |||||||
| @@ -139,7 +139,7 @@ const dayClasses = day => ({ | |||||||
|       " |       " | ||||||
|       @prev="onClickPrev" |       @prev="onClickPrev" | ||||||
|       @next="onClickNext" |       @next="onClickNext" | ||||||
|       @setView="setViewMode" |       @set-view="setViewMode" | ||||||
|     /> |     /> | ||||||
|     <CalendarWeekLabel /> |     <CalendarWeekLabel /> | ||||||
|     <div |     <div | ||||||
|   | |||||||
| @@ -16,6 +16,7 @@ export default { | |||||||
|       default: () => [], |       default: () => [], | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['change'], | ||||||
|   methods: { |   methods: { | ||||||
|     handleChange(value) { |     handleChange(value) { | ||||||
|       this.$emit('change', value); |       this.$emit('change', value); | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ export default { | |||||||
|       default: [], |       default: [], | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['change'], | ||||||
|  |  | ||||||
|   methods: { |   methods: { | ||||||
|     handleChange(value) { |     handleChange(value) { | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ const props = defineProps({ | |||||||
|   }, |   }, | ||||||
| }); | }); | ||||||
|  |  | ||||||
| const emit = defineEmits(['onSearch', 'select']); | const emit = defineEmits(['onSearch', 'select', 'removeFilter']); | ||||||
|  |  | ||||||
| const searchTerm = ref(''); | const searchTerm = ref(''); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -44,6 +44,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['remove'], | ||||||
|   computed: { |   computed: { | ||||||
|     textColor() { |     textColor() { | ||||||
|       if (this.variant === 'smooth') return ''; |       if (this.variant === 'smooth') return ''; | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ export default { | |||||||
|     AICTAModal, |     AICTAModal, | ||||||
|     AIAssistanceCTAButton, |     AIAssistanceCTAButton, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['replaceText'], | ||||||
|   setup(props, { emit }) { |   setup(props, { emit }) { | ||||||
|     const { uiSettings, updateUISettings } = useUISettings(); |     const { uiSettings, updateUISettings } = useUISettings(); | ||||||
|  |  | ||||||
| @@ -142,7 +143,7 @@ export default { | |||||||
|       > |       > | ||||||
|         <AIAssistanceModal |         <AIAssistanceModal | ||||||
|           :ai-option="aiOption" |           :ai-option="aiOption" | ||||||
|           @applyText="insertText" |           @apply-text="insertText" | ||||||
|           @close="hideAIAssistanceModal" |           @close="hideAIAssistanceModal" | ||||||
|         /> |         /> | ||||||
|       </woot-modal> |       </woot-modal> | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| <script> | <script> | ||||||
| export default { | export default { | ||||||
|  |   emits: ['open'], | ||||||
|  |  | ||||||
|   methods: { |   methods: { | ||||||
|     onClick() { |     onClick() { | ||||||
|       this.$emit('open'); |       this.$emit('open'); | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['close', 'applyText'], | ||||||
|   setup() { |   setup() { | ||||||
|     const { formatMessage } = useMessageFormatter(); |     const { formatMessage } = useMessageFormatter(); | ||||||
|     const { draftMessage, processEvent, recordAnalytics } = useAI(); |     const { draftMessage, processEvent, recordAnalytics } = useAI(); | ||||||
|   | |||||||
| @@ -7,6 +7,8 @@ import { useAI } from 'dashboard/composables/useAI'; | |||||||
| import { OPEN_AI_EVENTS } from 'dashboard/helper/AnalyticsHelper/events'; | import { OPEN_AI_EVENTS } from 'dashboard/helper/AnalyticsHelper/events'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|  |   emits: ['close'], | ||||||
|  |  | ||||||
|   setup() { |   setup() { | ||||||
|     const { updateUISettings } = useUISettings(); |     const { updateUISettings } = useUISettings(); | ||||||
|     const { recordAnalytics } = useAI(); |     const { recordAnalytics } = useAI(); | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['update:modelValue'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       uploadState: 'idle', |       uploadState: 'idle', | ||||||
|   | |||||||
| @@ -12,6 +12,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['channelItemClick'], | ||||||
|   computed: { |   computed: { | ||||||
|     hasFbConfigured() { |     hasFbConfigured() { | ||||||
|       return window.chatwootConfig?.fbAppId; |       return window.chatwootConfig?.fbAppId; | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['update:modelValue'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       isPickerOpen: false, |       isPickerOpen: false, | ||||||
| @@ -45,7 +46,7 @@ export default { | |||||||
|       disable-alpha |       disable-alpha | ||||||
|       :model-value="modelValue" |       :model-value="modelValue" | ||||||
|       class="colorpicker--chrome" |       class="colorpicker--chrome" | ||||||
|       @update:modelValue="updateColor" |       @update:model-value="updateColor" | ||||||
|     /> |     /> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -80,6 +80,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <div v-if="hasOpenedAtleastOnce" class="dashboard-app--container"> |   <div v-if="hasOpenedAtleastOnce" class="dashboard-app--container"> | ||||||
|     <div |     <div | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <div v-if="isFeatureEnabled"> |   <div v-if="isFeatureEnabled"> | ||||||
|     <slot /> |     <slot /> | ||||||
|   | |||||||
| @@ -47,6 +47,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['update:modelValue', 'removeFilter', 'resetFilter'], | ||||||
|   computed: { |   computed: { | ||||||
|     attributeKey: { |     attributeKey: { | ||||||
|       get() { |       get() { | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ export default { | |||||||
|   props: { |   props: { | ||||||
|     inbox: { |     inbox: { | ||||||
|       type: Object, |       type: Object, | ||||||
|       default: () => { }, |       default: () => {}, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|   computed: { |   computed: { | ||||||
|   | |||||||
| @@ -16,6 +16,8 @@ const props = defineProps({ | |||||||
|     default: 0, |     default: 0, | ||||||
|   }, |   }, | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | const emit = defineEmits(['pageChange']); | ||||||
| const totalPages = computed(() => Math.ceil(props.totalCount / props.pageSize)); | const totalPages = computed(() => Math.ceil(props.totalCount / props.pageSize)); | ||||||
| const firstIndex = computed(() => props.pageSize * (props.currentPage - 1) + 1); | const firstIndex = computed(() => props.pageSize * (props.currentPage - 1) + 1); | ||||||
| const lastIndex = computed(() => | const lastIndex = computed(() => | ||||||
| @@ -26,6 +28,7 @@ const isFooterVisible = computed( | |||||||
| ); | ); | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <footer |   <footer | ||||||
|     v-if="isFooterVisible" |     v-if="isFooterVisible" | ||||||
| @@ -42,7 +45,7 @@ const isFooterVisible = computed( | |||||||
|       :total-pages="totalPages" |       :total-pages="totalPages" | ||||||
|       :total-count="totalCount" |       :total-count="totalCount" | ||||||
|       :page-size="pageSize" |       :page-size="pageSize" | ||||||
|       @pageChange="$emit('pageChange', $event)" |       @page-change="emit('pageChange', $event)" | ||||||
|     /> |     /> | ||||||
|   </footer> |   </footer> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -41,6 +41,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <woot-button |   <woot-button | ||||||
|     v-if="isVideoIntegrationEnabled" |     v-if="isVideoIntegrationEnabled" | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ export default { | |||||||
|     }, |     }, | ||||||
|     onSend: { |     onSend: { | ||||||
|       type: Function, |       type: Function, | ||||||
|       default: () => { }, |       default: () => {}, | ||||||
|     }, |     }, | ||||||
|     sendButtonText: { |     sendButtonText: { | ||||||
|       type: String, |       type: String, | ||||||
| @@ -53,19 +53,19 @@ export default { | |||||||
|     }, |     }, | ||||||
|     onFileUpload: { |     onFileUpload: { | ||||||
|       type: Function, |       type: Function, | ||||||
|       default: () => { }, |       default: () => {}, | ||||||
|     }, |     }, | ||||||
|     toggleEmojiPicker: { |     toggleEmojiPicker: { | ||||||
|       type: Function, |       type: Function, | ||||||
|       default: () => { }, |       default: () => {}, | ||||||
|     }, |     }, | ||||||
|     toggleAudioRecorder: { |     toggleAudioRecorder: { | ||||||
|       type: Function, |       type: Function, | ||||||
|       default: () => { }, |       default: () => {}, | ||||||
|     }, |     }, | ||||||
|     toggleAudioRecorderPlayPause: { |     toggleAudioRecorderPlayPause: { | ||||||
|       type: Function, |       type: Function, | ||||||
|       default: () => { }, |       default: () => {}, | ||||||
|     }, |     }, | ||||||
|     isRecordingAudio: { |     isRecordingAudio: { | ||||||
|       type: Boolean, |       type: Boolean, | ||||||
| @@ -112,6 +112,12 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: [ | ||||||
|  |     'replaceText', | ||||||
|  |     'toggleInsertArticle', | ||||||
|  |     'toggleEditor', | ||||||
|  |     'selectWhatsappTemplate', | ||||||
|  |   ], | ||||||
|   setup() { |   setup() { | ||||||
|     const { setSignatureFlagForInbox, fetchSignatureFlagFromUISettings } = |     const { setSignatureFlagForInbox, fetchSignatureFlagFromUISettings } = | ||||||
|       useUISettings(); |       useUISettings(); | ||||||
| @@ -166,9 +172,9 @@ export default { | |||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|       // Disable audio recorder for safari browser as recording is not supported |       // Disable audio recorder for safari browser as recording is not supported | ||||||
|       const isSafari = /^((?!chrome|android|crios|fxios).)*safari/i.test( |       // const isSafari = /^((?!chrome|android|crios|fxios).)*safari/i.test( | ||||||
|         navigator.userAgent |       //   navigator.userAgent | ||||||
|       ); |       // ); | ||||||
|  |  | ||||||
|       return ( |       return ( | ||||||
|         this.isFeatureEnabledonAccount( |         this.isFeatureEnabledonAccount( | ||||||
| @@ -340,7 +346,7 @@ export default { | |||||||
|         :conversation-id="conversationId" |         :conversation-id="conversationId" | ||||||
|         :is-private-note="isOnPrivateNote" |         :is-private-note="isOnPrivateNote" | ||||||
|         :message="message" |         :message="message" | ||||||
|         @replaceText="replaceText" |         @replace-text="replaceText" | ||||||
|       /> |       /> | ||||||
|       <transition name="modal-fade"> |       <transition name="modal-fade"> | ||||||
|         <div |         <div | ||||||
|   | |||||||
| @@ -22,6 +22,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['setReplyMode', 'togglePopout'], | ||||||
|   setup(props, { emit }) { |   setup(props, { emit }) { | ||||||
|     const setReplyMode = mode => { |     const setReplyMode = mode => { | ||||||
|       emit('setReplyMode', mode); |       emit('setReplyMode', mode); | ||||||
|   | |||||||
| @@ -48,7 +48,7 @@ onMounted(() => { | |||||||
|     v-if="items.length" |     v-if="items.length" | ||||||
|     type="emoji" |     type="emoji" | ||||||
|     :items="items" |     :items="items" | ||||||
|     @mentionSelect="handleMentionClick" |     @mention-select="handleMentionClick" | ||||||
|   > |   > | ||||||
|     <template #default="{ item, selected }"> |     <template #default="{ item, selected }"> | ||||||
|       <span |       <span | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['replace'], | ||||||
|   computed: { |   computed: { | ||||||
|     ...mapGetters({ |     ...mapGetters({ | ||||||
|       cannedMessages: 'getCannedResponses', |       cannedMessages: 'getCannedResponses', | ||||||
| @@ -46,6 +47,6 @@ export default { | |||||||
|   <MentionBox |   <MentionBox | ||||||
|     v-if="items.length" |     v-if="items.length" | ||||||
|     :items="items" |     :items="items" | ||||||
|     @mentionSelect="handleMentionClick" |     @mention-select="handleMentionClick" | ||||||
|   /> |   /> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -37,6 +37,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['applyFilter', 'updateFolder'], | ||||||
|   setup() { |   setup() { | ||||||
|     const { setFilterAttributes } = useFilter({ |     const { setFilterAttributes } = useFilter({ | ||||||
|       filteri18nKey: 'FILTER', |       filteri18nKey: 'FILTER', | ||||||
| @@ -363,8 +364,8 @@ export default { | |||||||
|               ? $t(`CONTACTS_FILTER.ERRORS.VALUE_REQUIRED`) |               ? $t(`CONTACTS_FILTER.ERRORS.VALUE_REQUIRED`) | ||||||
|               : '' |               : '' | ||||||
|           " |           " | ||||||
|           @resetFilter="resetFilter(i, appliedFilters[i])" |           @reset-filter="resetFilter(i, appliedFilters[i])" | ||||||
|           @removeFilter="removeFilter(i)" |           @remove-filter="removeFilter(i)" | ||||||
|         /> |         /> | ||||||
|         <div class="mt-4"> |         <div class="mt-4"> | ||||||
|           <woot-button |           <woot-button | ||||||
|   | |||||||
| @@ -27,6 +27,7 @@ export default { | |||||||
|   components: { |   components: { | ||||||
|     FilterItem, |     FilterItem, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['changeFilter'], | ||||||
|   setup() { |   setup() { | ||||||
|     const { updateUISettings } = useUISettings(); |     const { updateUISettings } = useUISettings(); | ||||||
|  |  | ||||||
| @@ -107,7 +108,7 @@ export default { | |||||||
|           :selected-value="chatStatus" |           :selected-value="chatStatus" | ||||||
|           :items="chatStatusItems" |           :items="chatStatusItems" | ||||||
|           path-prefix="CHAT_LIST.CHAT_STATUS_FILTER_ITEMS" |           path-prefix="CHAT_LIST.CHAT_STATUS_FILTER_ITEMS" | ||||||
|           @onChangeFilter="onChangeFilter" |           @on-change-filter="onChangeFilter" | ||||||
|         /> |         /> | ||||||
|       </div> |       </div> | ||||||
|       <div class="flex items-center justify-between last:mt-4"> |       <div class="flex items-center justify-between last:mt-4"> | ||||||
| @@ -119,7 +120,7 @@ export default { | |||||||
|           :selected-value="sortFilter" |           :selected-value="sortFilter" | ||||||
|           :items="chatSortItems" |           :items="chatSortItems" | ||||||
|           path-prefix="CHAT_LIST.SORT_ORDER_ITEMS" |           path-prefix="CHAT_LIST.SORT_ORDER_ITEMS" | ||||||
|           @onChangeFilter="onChangeFilter" |           @on-change-filter="onChangeFilter" | ||||||
|         /> |         /> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|   | |||||||
| @@ -34,6 +34,7 @@ export default { | |||||||
|       default: true, |       default: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['contactPanelToggle'], | ||||||
|   data() { |   data() { | ||||||
|     return { activeIndex: 0 }; |     return { activeIndex: 0 }; | ||||||
|   }, |   }, | ||||||
| @@ -103,7 +104,7 @@ export default { | |||||||
|       :is-inbox-view="isInboxView" |       :is-inbox-view="isInboxView" | ||||||
|       :is-contact-panel-open="isContactPanelOpen" |       :is-contact-panel-open="isContactPanelOpen" | ||||||
|       :show-back-button="isOnExpandedLayout && !isInboxView" |       :show-back-button="isOnExpandedLayout && !isInboxView" | ||||||
|       @contactPanelToggle="onToggleContactPanel" |       @contact-panel-toggle="onToggleContactPanel" | ||||||
|     /> |     /> | ||||||
|     <woot-tabs |     <woot-tabs | ||||||
|       v-if="dashboardApps.length && currentChat.id" |       v-if="dashboardApps.length && currentChat.id" | ||||||
| @@ -128,7 +129,7 @@ export default { | |||||||
|         :inbox-id="inboxId" |         :inbox-id="inboxId" | ||||||
|         :is-inbox-view="isInboxView" |         :is-inbox-view="isInboxView" | ||||||
|         :is-contact-panel-open="isContactPanelOpen" |         :is-contact-panel-open="isContactPanelOpen" | ||||||
|         @contactPanelToggle="onToggleContactPanel" |         @contact-panel-toggle="onToggleContactPanel" | ||||||
|       /> |       /> | ||||||
|       <EmptyState |       <EmptyState | ||||||
|         v-if="!currentChat.id && !isInboxView" |         v-if="!currentChat.id && !isInboxView" | ||||||
|   | |||||||
| @@ -69,6 +69,15 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: [ | ||||||
|  |     'contextMenuToggle', | ||||||
|  |     'assignAgent', | ||||||
|  |     'assignLabel', | ||||||
|  |     'assignTeam', | ||||||
|  |     'markAsUnread', | ||||||
|  |     'assignPriority', | ||||||
|  |     'updateConversationStatus', | ||||||
|  |   ], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       hovered: false, |       hovered: false, | ||||||
| @@ -336,12 +345,12 @@ export default { | |||||||
|         :priority="chat.priority" |         :priority="chat.priority" | ||||||
|         :chat-id="chat.id" |         :chat-id="chat.id" | ||||||
|         :has-unread-messages="hasUnread" |         :has-unread-messages="hasUnread" | ||||||
|         @updateConversation="onUpdateConversation" |         @update-conversation="onUpdateConversation" | ||||||
|         @assignAgent="onAssignAgent" |         @assign-agent="onAssignAgent" | ||||||
|         @assignLabel="onAssignLabel" |         @assign-label="onAssignLabel" | ||||||
|         @assignTeam="onAssignTeam" |         @assign-team="onAssignTeam" | ||||||
|         @markAsUnread="markAsUnread" |         @mark-as-unread="markAsUnread" | ||||||
|         @assignPriority="assignPriority" |         @assign-priority="assignPriority" | ||||||
|       /> |       /> | ||||||
|     </ContextMenu> |     </ContextMenu> | ||||||
|   </div> |   </div> | ||||||
|   | |||||||
| @@ -41,6 +41,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['contactPanelToggle'], | ||||||
|   setup(props, { emit }) { |   setup(props, { emit }) { | ||||||
|     const keyboardEvents = { |     const keyboardEvents = { | ||||||
|       'Alt+KeyO': { |       'Alt+KeyO': { | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['onChangeFilter'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       activeValue: this.selectedValue, |       activeValue: this.selectedValue, | ||||||
|   | |||||||
| @@ -439,6 +439,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <li |   <li | ||||||
|     v-if="shouldRenderMessage" |     v-if="shouldRenderMessage" | ||||||
| @@ -579,7 +580,7 @@ export default { | |||||||
|         :message="data" |         :message="data" | ||||||
|         @open="openContextMenu" |         @open="openContextMenu" | ||||||
|         @close="closeContextMenu" |         @close="closeContextMenu" | ||||||
|         @replyTo="handleReplyTo" |         @reply-to="handleReplyTo" | ||||||
|       /> |       /> | ||||||
|     </div> |     </div> | ||||||
|   </li> |   </li> | ||||||
|   | |||||||
| @@ -52,6 +52,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['contactPanelToggle'], | ||||||
|   setup() { |   setup() { | ||||||
|     const isPopOutReplyBox = ref(false); |     const isPopOutReplyBox = ref(false); | ||||||
|     const { isEnterprise } = useConfig(); |     const { isEnterprise } = useConfig(); | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ export default { | |||||||
|     emitter.on(CMD_UNMUTE_CONVERSATION, this.unmute); |     emitter.on(CMD_UNMUTE_CONVERSATION, this.unmute); | ||||||
|     emitter.on(CMD_SEND_TRANSCRIPT, this.toggleEmailActionsModal); |     emitter.on(CMD_SEND_TRANSCRIPT, this.toggleEmailActionsModal); | ||||||
|   }, |   }, | ||||||
|   destroyed() { |   unmounted() { | ||||||
|     emitter.off(CMD_MUTE_CONVERSATION, this.mute); |     emitter.off(CMD_MUTE_CONVERSATION, this.mute); | ||||||
|     emitter.off(CMD_UNMUTE_CONVERSATION, this.unmute); |     emitter.off(CMD_UNMUTE_CONVERSATION, this.unmute); | ||||||
|     emitter.off(CMD_SEND_TRANSCRIPT, this.toggleEmailActionsModal); |     emitter.off(CMD_SEND_TRANSCRIPT, this.toggleEmailActionsModal); | ||||||
|   | |||||||
| @@ -29,6 +29,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <span |   <span | ||||||
|     v-if="priority" |     v-if="priority" | ||||||
|   | |||||||
| @@ -465,12 +465,10 @@ export default { | |||||||
|       this.onNewConversationModalActive |       this.onNewConversationModalActive | ||||||
|     ); |     ); | ||||||
|   }, |   }, | ||||||
|   destroyed() { |   unmounted() { | ||||||
|     document.removeEventListener('paste', this.onPaste); |     document.removeEventListener('paste', this.onPaste); | ||||||
|     document.removeEventListener('keydown', this.handleKeyEvents); |     document.removeEventListener('keydown', this.handleKeyEvents); | ||||||
|     emitter.off(BUS_EVENTS.TOGGLE_REPLY_TO_MESSAGE, this.fetchAndSetReplyTo); |     emitter.off(BUS_EVENTS.TOGGLE_REPLY_TO_MESSAGE, this.fetchAndSetReplyTo); | ||||||
|   }, |  | ||||||
|   unmounted() { |  | ||||||
|     emitter.off( |     emitter.off( | ||||||
|       BUS_EVENTS.NEW_CONVERSATION_MODAL, |       BUS_EVENTS.NEW_CONVERSATION_MODAL, | ||||||
|       this.onNewConversationModalActive |       this.onNewConversationModalActive | ||||||
| @@ -1128,9 +1126,9 @@ export default { | |||||||
|         v-if="showAudioRecorderEditor" |         v-if="showAudioRecorderEditor" | ||||||
|         ref="audioRecorderInput" |         ref="audioRecorderInput" | ||||||
|         :audio-record-format="audioRecordFormat" |         :audio-record-format="audioRecordFormat" | ||||||
|         @recorderProgressChanged="onRecordProgressChanged" |         @recorder-progress-changed="onRecordProgressChanged" | ||||||
|         @stateRecorderChanged="onStateRecorderChanged" |         @state-recorder-changed="onStateRecorderChanged" | ||||||
|         @finishRecord="onFinishRecorder" |         @finish-record="onFinishRecorder" | ||||||
|       /> |       /> | ||||||
|       <ResizableTextArea |       <ResizableTextArea | ||||||
|         v-else-if="!showRichContentEditor" |         v-else-if="!showRichContentEditor" | ||||||
| @@ -1142,8 +1140,8 @@ export default { | |||||||
|         :signature="signatureToApply" |         :signature="signatureToApply" | ||||||
|         allow-signature |         allow-signature | ||||||
|         :send-with-signature="sendWithSignature" |         :send-with-signature="sendWithSignature" | ||||||
|         @typingOff="onTypingOff" |         @typing-off="onTypingOff" | ||||||
|         @typingOn="onTypingOn" |         @typing-on="onTypingOn" | ||||||
|         @focus="onFocus" |         @focus="onFocus" | ||||||
|         @blur="onBlur" |         @blur="onBlur" | ||||||
|       /> |       /> | ||||||
| @@ -1161,21 +1159,21 @@ export default { | |||||||
|         :signature="signatureToApply" |         :signature="signatureToApply" | ||||||
|         allow-signature |         allow-signature | ||||||
|         :channel-type="channelType" |         :channel-type="channelType" | ||||||
|         @typingOff="onTypingOff" |         @typing-off="onTypingOff" | ||||||
|         @typingOn="onTypingOn" |         @typing-on="onTypingOn" | ||||||
|         @focus="onFocus" |         @focus="onFocus" | ||||||
|         @blur="onBlur" |         @blur="onBlur" | ||||||
|         @toggleUserMention="toggleUserMention" |         @toggle-user-mention="toggleUserMention" | ||||||
|         @toggleCannedMenu="toggleCannedMenu" |         @toggle-canned-menu="toggleCannedMenu" | ||||||
|         @toggleVariablesMenu="toggleVariablesMenu" |         @toggle-variables-menu="toggleVariablesMenu" | ||||||
|         @clearSelection="clearEditorSelection" |         @clear-selection="clearEditorSelection" | ||||||
|       /> |       /> | ||||||
|     </div> |     </div> | ||||||
|     <div v-if="hasAttachments" class="attachment-preview-box" @paste="onPaste"> |     <div v-if="hasAttachments" class="attachment-preview-box" @paste="onPaste"> | ||||||
|       <AttachmentPreview |       <AttachmentPreview | ||||||
|         class="flex-col mt-4" |         class="flex-col mt-4" | ||||||
|         :attachments="attachedFiles" |         :attachments="attachedFiles" | ||||||
|         @removeAttachment="removeAttachment" |         @remove-attachment="removeAttachment" | ||||||
|       /> |       /> | ||||||
|     </div> |     </div> | ||||||
|     <MessageSignatureMissingAlert |     <MessageSignatureMissingAlert | ||||||
| @@ -1205,16 +1203,16 @@ export default { | |||||||
|       :message="message" |       :message="message" | ||||||
|       :portal-slug="connectedPortalSlug" |       :portal-slug="connectedPortalSlug" | ||||||
|       :new-conversation-modal-active="newConversationModalActive" |       :new-conversation-modal-active="newConversationModalActive" | ||||||
|       @selectWhatsappTemplate="openWhatsappTemplateModal" |       @select-whatsapp-template="openWhatsappTemplateModal" | ||||||
|       @toggleEditor="toggleRichContentEditor" |       @toggle-editor="toggleRichContentEditor" | ||||||
|       @replaceText="replaceText" |       @replace-text="replaceText" | ||||||
|       @toggleInsertArticle="toggleInsertArticle" |       @toggle-insert-article="toggleInsertArticle" | ||||||
|     /> |     /> | ||||||
|     <WhatsappTemplates |     <WhatsappTemplates | ||||||
|       :inbox-id="inbox.id" |       :inbox-id="inbox.id" | ||||||
|       :show="showWhatsAppTemplatesModal" |       :show="showWhatsAppTemplatesModal" | ||||||
|       @close="hideWhatsappTemplatesModal" |       @close="hideWhatsappTemplatesModal" | ||||||
|       @onSend="onSendWhatsAppReply" |       @on-send="onSendWhatsAppReply" | ||||||
|       @cancel="hideWhatsappTemplatesModal" |       @cancel="hideWhatsappTemplatesModal" | ||||||
|     /> |     /> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['dismiss'], | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['selectVariable'], | ||||||
|   computed: { |   computed: { | ||||||
|     ...mapGetters({ |     ...mapGetters({ | ||||||
|       customAttributes: 'attributes/getAttributes', |       customAttributes: 'attributes/getAttributes', | ||||||
| @@ -62,7 +63,7 @@ export default { | |||||||
|     v-if="items.length" |     v-if="items.length" | ||||||
|     type="variable" |     type="variable" | ||||||
|     :items="items" |     :items="items" | ||||||
|     @mentionSelect="handleVariableClick" |     @mention-select="handleVariableClick" | ||||||
|   /> |   /> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ export default { | |||||||
|       default: () => ({}), |       default: () => ({}), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['sendMessage', 'resetTemplate'], | ||||||
|   setup(props, { emit }) { |   setup(props, { emit }) { | ||||||
|     const processVariable = str => { |     const processVariable = str => { | ||||||
|       return str.replace(/{{|}}/g, ''); |       return str.replace(/{{|}}/g, ''); | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ export default { | |||||||
|       default: undefined, |       default: undefined, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['onSelect'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       query: '', |       query: '', | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['error'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       show: false, |       show: false, | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['error'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       show: false, |       show: false, | ||||||
|   | |||||||
| @@ -15,6 +15,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['error'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       hasImgStoryError: false, |       hasImgStoryError: false, | ||||||
|   | |||||||
| @@ -31,6 +31,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <DyteVideoCall |   <DyteVideoCall | ||||||
|     v-if="showDyteIntegration" |     v-if="showDyteIntegration" | ||||||
|   | |||||||
| @@ -45,6 +45,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <div |   <div | ||||||
|     v-if="showHead" |     v-if="showHead" | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ export default { | |||||||
|       default: '', |       default: '', | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['close'], | ||||||
|   computed: { |   computed: { | ||||||
|     translationsAvailable() { |     translationsAvailable() { | ||||||
|       return !!Object.keys(this.translations).length; |       return !!Object.keys(this.translations).length; | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['error'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       show: false, |       show: false, | ||||||
|   | |||||||
| @@ -103,6 +103,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <div |   <div | ||||||
|     v-if="hasSlaThreshold" |     v-if="hasSlaThreshold" | ||||||
|   | |||||||
| @@ -37,6 +37,14 @@ export default { | |||||||
|       default: null, |       default: null, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: [ | ||||||
|  |     'updateConversation', | ||||||
|  |     'assignPriority', | ||||||
|  |     'markAsUnread', | ||||||
|  |     'assignAgent', | ||||||
|  |     'assignTeam', | ||||||
|  |     'assignLabel', | ||||||
|  |   ], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       STATUS_TYPE: wootConstants.STATUS_TYPE, |       STATUS_TYPE: wootConstants.STATUS_TYPE, | ||||||
|   | |||||||
| @@ -150,6 +150,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <li |   <li | ||||||
|     v-if="shouldShowSuggestions" |     v-if="shouldShowSuggestions" | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ export default { | |||||||
|       default: 0, |       default: 0, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['select', 'close'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       query: '', |       query: '', | ||||||
|   | |||||||
| @@ -48,6 +48,14 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: [ | ||||||
|  |     'selectAllConversations', | ||||||
|  |     'assignAgent', | ||||||
|  |     'updateConversations', | ||||||
|  |     'assignLabels', | ||||||
|  |     'assignTeam', | ||||||
|  |     'resolveConversations', | ||||||
|  |   ], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       showAgentsList: false, |       showAgentsList: false, | ||||||
| @@ -72,7 +80,7 @@ export default { | |||||||
|       this.onCmdResolveConversation |       this.onCmdResolveConversation | ||||||
|     ); |     ); | ||||||
|   }, |   }, | ||||||
|   destroyed() { |   unmounted() { | ||||||
|     emitter.off( |     emitter.off( | ||||||
|       CMD_BULK_ACTION_SNOOZE_CONVERSATION, |       CMD_BULK_ACTION_SNOOZE_CONVERSATION, | ||||||
|       this.onCmdSnoozeConversation |       this.onCmdSnoozeConversation | ||||||
| @@ -231,7 +239,7 @@ export default { | |||||||
|         <TeamActions |         <TeamActions | ||||||
|           v-if="showTeamsList" |           v-if="showTeamsList" | ||||||
|           class="team-actions-box" |           class="team-actions-box" | ||||||
|           @assignTeam="assignTeam" |           @assign-team="assignTeam" | ||||||
|           @close="showTeamsList = false" |           @close="showTeamsList = false" | ||||||
|         /> |         /> | ||||||
|       </transition> |       </transition> | ||||||
| @@ -245,7 +253,7 @@ export default { | |||||||
|     > |     > | ||||||
|       <CustomSnoozeModal |       <CustomSnoozeModal | ||||||
|         @close="hideCustomSnoozeModal" |         @close="hideCustomSnoozeModal" | ||||||
|         @chooseTime="customSnoozeTime" |         @choose-time="customSnoozeTime" | ||||||
|       /> |       /> | ||||||
|     </woot-modal> |     </woot-modal> | ||||||
|   </div> |   </div> | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| import { mapGetters } from 'vuex'; | import { mapGetters } from 'vuex'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|  |   emits: ['update', 'close', 'assign'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       query: '', |       query: '', | ||||||
|   | |||||||
| @@ -1,6 +1,8 @@ | |||||||
| <script> | <script> | ||||||
| import { mapGetters } from 'vuex'; | import { mapGetters } from 'vuex'; | ||||||
| export default { | export default { | ||||||
|  |   emits: ['assignTeam', 'close'], | ||||||
|  |  | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       query: '', |       query: '', | ||||||
|   | |||||||
| @@ -63,7 +63,7 @@ const unlinkIssue = () => { | |||||||
|         :identifier="issue.identifier" |         :identifier="issue.identifier" | ||||||
|         :link-id="linkId" |         :link-id="linkId" | ||||||
|         :issue-url="issue.url" |         :issue-url="issue.url" | ||||||
|         @unlinkIssue="unlinkIssue" |         @unlink-issue="unlinkIssue" | ||||||
|       /> |       /> | ||||||
|  |  | ||||||
|       <span class="mt-2 text-sm font-medium text-ash-900"> |       <span class="mt-2 text-sm font-medium text-ash-900"> | ||||||
|   | |||||||
| @@ -120,7 +120,7 @@ const linkIssue = async () => { | |||||||
|           :loading-placeholder="$t('INTEGRATION_SETTINGS.LINEAR.LINK.LOADING')" |           :loading-placeholder="$t('INTEGRATION_SETTINGS.LINEAR.LINK.LOADING')" | ||||||
|           enable-search |           enable-search | ||||||
|           class="left-0 flex flex-col w-full overflow-y-auto h-fit !max-h-[160px] md:left-auto md:right-0 top-10" |           class="left-0 flex flex-col w-full overflow-y-auto h-fit !max-h-[160px] md:left-auto md:right-0 top-10" | ||||||
|           @onSearch="onSearch" |           @on-search="onSearch" | ||||||
|           @select="onSelectIssue" |           @select="onSelectIssue" | ||||||
|         /> |         /> | ||||||
|       </template> |       </template> | ||||||
|   | |||||||
| @@ -119,7 +119,7 @@ onMounted(() => { | |||||||
|       :issue="linkedIssue.issue" |       :issue="linkedIssue.issue" | ||||||
|       :link-id="linkedIssue.id" |       :link-id="linkedIssue.id" | ||||||
|       class="absolute right-0 top-[40px] invisible group-hover:visible" |       class="absolute right-0 top-[40px] invisible group-hover:visible" | ||||||
|       @unlinkIssue="unlinkIssue" |       @unlink-issue="unlinkIssue" | ||||||
|     /> |     /> | ||||||
|     <woot-modal |     <woot-modal | ||||||
|       v-model:show="shouldShowPopup" |       v-model:show="shouldShowPopup" | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['onAvatarSelect', 'onAvatarDelete'], | ||||||
|   watch: {}, |   watch: {}, | ||||||
|   methods: { |   methods: { | ||||||
|     handleImageUpload(event) { |     handleImageUpload(event) { | ||||||
|   | |||||||
| @@ -16,6 +16,8 @@ defineProps({ | |||||||
|   }, |   }, | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | defineEmits(['close']); | ||||||
|  |  | ||||||
| const { t } = useI18n(); | const { t } = useI18n(); | ||||||
|  |  | ||||||
| const shortcutKeys = SHORTCUT_KEYS; | const shortcutKeys = SHORTCUT_KEYS; | ||||||
|   | |||||||
| @@ -16,6 +16,7 @@ export default { | |||||||
|       required: true, |       required: true, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['close'], | ||||||
|   setup() { |   setup() { | ||||||
|     const show = defineModel('show', { type: Boolean, default: false }); |     const show = defineModel('show', { type: Boolean, default: false }); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,6 +12,7 @@ export default { | |||||||
|     value: { type: [String, Number], default: '' }, |     value: { type: [String, Number], default: '' }, | ||||||
|     showEdit: { type: Boolean, default: false }, |     showEdit: { type: Boolean, default: false }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['update'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       isEditing: false, |       isEditing: false, | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ export default { | |||||||
|       default: () => ({}), |       default: () => ({}), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['update', 'createAttribute'], | ||||||
|  |  | ||||||
|   computed: { |   computed: { | ||||||
|     additionalAttributes() { |     additionalAttributes() { | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ export default { | |||||||
|       default: () => ({}), |       default: () => ({}), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['edit', 'message'], | ||||||
|  |  | ||||||
|   computed: { |   computed: { | ||||||
|     additionalAttributes() { |     additionalAttributes() { | ||||||
|   | |||||||
| @@ -77,7 +77,7 @@ export default { | |||||||
|     <ContactFields |     <ContactFields | ||||||
|       :contact="contact" |       :contact="contact" | ||||||
|       @update="updateField" |       @update="updateField" | ||||||
|       @createAttribute="toggleCustomAttributeModal" |       @create-attribute="toggleCustomAttributeModal" | ||||||
|     /> |     /> | ||||||
|     <EditContact |     <EditContact | ||||||
|       v-if="showEditModal" |       v-if="showEditModal" | ||||||
|   | |||||||
| @@ -25,6 +25,7 @@ export default { | |||||||
|       default: () => [], |       default: () => [], | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['search', 'submit', 'cancel'], | ||||||
|   setup() { |   setup() { | ||||||
|     return { v$: useVuelidate() }; |     return { v$: useVuelidate() }; | ||||||
|   }, |   }, | ||||||
| @@ -115,9 +116,11 @@ export default { | |||||||
|                 :phone-number="props.option.phone_number" |                 :phone-number="props.option.phone_number" | ||||||
|               /> |               /> | ||||||
|             </template> |             </template> | ||||||
|             <span slot="noResult"> |             <template #noResult> | ||||||
|               {{ $t('AGENT_MGMT.SEARCH.NO_RESULTS') }} |               <span> | ||||||
|             </span> |                 {{ $t('AGENT_MGMT.SEARCH.NO_RESULTS') }} | ||||||
|  |               </span> | ||||||
|  |             </template> | ||||||
|           </multiselect> |           </multiselect> | ||||||
|           <span v-if="v$.parentContact.$error" class="message"> |           <span v-if="v$.parentContact.$error" class="message"> | ||||||
|             {{ $t('MERGE_CONTACTS.FORM.CHILD_CONTACT.ERROR') }} |             {{ $t('MERGE_CONTACTS.FORM.CHILD_CONTACT.ERROR') }} | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ export default { | |||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | <!-- eslint-disable-next-line vue/no-root-v-if --> | ||||||
| <template> | <template> | ||||||
|   <div |   <div | ||||||
|     v-if="parentContactName" |     v-if="parentContactName" | ||||||
|   | |||||||
| @@ -39,6 +39,7 @@ export default { | |||||||
|       default: () => ({}), |       default: () => ({}), | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['open', 'close', 'replyTo'], | ||||||
|   setup() { |   setup() { | ||||||
|     const { getPlainText } = useMessageFormatter(); |     const { getPlainText } = useMessageFormatter(); | ||||||
|     return { |     return { | ||||||
|   | |||||||
| @@ -25,6 +25,7 @@ export default { | |||||||
|       default: 0, |       default: 0, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['delete'], | ||||||
|   setup() { |   setup() { | ||||||
|     const { formatMessage } = useMessageFormatter(); |     const { formatMessage } = useMessageFormatter(); | ||||||
|     return { |     return { | ||||||
|   | |||||||
| @@ -20,6 +20,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['add', 'edit', 'delete'], | ||||||
|  |  | ||||||
|   methods: { |   methods: { | ||||||
|     onAddNote(value) { |     onAddNote(value) { | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ export default { | |||||||
|       default: false, |       default: false, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['expand'], | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| <script> | <script> | ||||||
| export default { | export default { | ||||||
|  |   emits: ['search'], | ||||||
|  |  | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       searchQuery: '', |       searchQuery: '', | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ export default { | |||||||
|       default: 0, |       default: 0, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['tabChange'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       activeTab: 0, |       activeTab: 0, | ||||||
|   | |||||||
| @@ -220,7 +220,7 @@ export default { | |||||||
|           v-if="query" |           v-if="query" | ||||||
|           :tabs="tabs" |           :tabs="tabs" | ||||||
|           :selected-tab="activeTabIndex" |           :selected-tab="activeTabIndex" | ||||||
|           @tabChange="tab => (selectedTab = tab)" |           @tab-change="tab => (selectedTab = tab)" | ||||||
|         /> |         /> | ||||||
|       </header> |       </header> | ||||||
|       <div class="search-results"> |       <div class="search-results"> | ||||||
|   | |||||||
| @@ -159,23 +159,23 @@ export default { | |||||||
|       :route="currentRoute" |       :route="currentRoute" | ||||||
|       :has-banner="hasBanner" |       :has-banner="hasBanner" | ||||||
|       :show-secondary-sidebar="isSidebarOpen" |       :show-secondary-sidebar="isSidebarOpen" | ||||||
|       @openNotificationPanel="openNotificationPanel" |       @open-notification-panel="openNotificationPanel" | ||||||
|       @toggleAccountModal="toggleAccountModal" |       @toggle-account-modal="toggleAccountModal" | ||||||
|       @openKeyShortcutModal="toggleKeyShortcutModal" |       @open-key-shortcut-modal="toggleKeyShortcutModal" | ||||||
|       @closeKeyShortcutModal="closeKeyShortcutModal" |       @close-key-shortcut-modal="closeKeyShortcutModal" | ||||||
|       @showAddLabelPopup="showAddLabelPopup" |       @show-add-label-popup="showAddLabelPopup" | ||||||
|     /> |     /> | ||||||
|     <main class="flex flex-1 h-full min-h-0 px-0 overflow-hidden"> |     <main class="flex flex-1 h-full min-h-0 px-0 overflow-hidden"> | ||||||
|       <router-view /> |       <router-view /> | ||||||
|       <CommandBar /> |       <CommandBar /> | ||||||
|       <AccountSelector |       <AccountSelector | ||||||
|         :show-account-modal="showAccountModal" |         :show-account-modal="showAccountModal" | ||||||
|         @closeAccountModal="toggleAccountModal" |         @close-account-modal="toggleAccountModal" | ||||||
|         @showCreateAccountModal="openCreateAccountModal" |         @show-create-account-modal="openCreateAccountModal" | ||||||
|       /> |       /> | ||||||
|       <AddAccountModal |       <AddAccountModal | ||||||
|         :show="showCreateAccountModal" |         :show="showCreateAccountModal" | ||||||
|         @closeAccountCreateModal="closeCreateAccountModal" |         @close-account-create-modal="closeCreateAccountModal" | ||||||
|       /> |       /> | ||||||
|       <WootKeyShortcutModal |       <WootKeyShortcutModal | ||||||
|         v-model:show="showShortcutModal" |         v-model:show="showShortcutModal" | ||||||
|   | |||||||
| @@ -66,7 +66,7 @@ useEmitter(CMD_SNOOZE_CONVERSATION, onCmdSnoozeConversation); | |||||||
|   > |   > | ||||||
|     <CustomSnoozeModal |     <CustomSnoozeModal | ||||||
|       @close="hideCustomSnoozeModal" |       @close="hideCustomSnoozeModal" | ||||||
|       @chooseTime="chooseSnoozeTime" |       @choose-time="chooseSnoozeTime" | ||||||
|     /> |     /> | ||||||
|   </woot-modal> |   </woot-modal> | ||||||
| </template> | </template> | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ export default { | |||||||
|       default: () => [], |       default: () => [], | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |   emits: ['add'], | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       content: '', |       content: '', | ||||||
|   | |||||||
| @@ -86,8 +86,8 @@ export default { | |||||||
|       :show-avatar="showAvatar" |       :show-avatar="showAvatar" | ||||||
|       :contact="contact" |       :contact="contact" | ||||||
|       close-icon-name="dismiss" |       close-icon-name="dismiss" | ||||||
|       @panelClose="onClose" |       @panel-close="onClose" | ||||||
|       @togglePanel="onClose" |       @toggle-panel="onClose" | ||||||
|     /> |     /> | ||||||
|     <div class="list-group"> |     <div class="list-group"> | ||||||
|       <Draggable |       <Draggable | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	 Shivam Mishra
					Shivam Mishra