pos-gis/public/assets/js/pages/custom/chat/chat.js
2024-10-07 13:13:42 +07:00

94 lines
2.8 KiB
JavaScript
Vendored

"use strict";
// Class definition
var KTAppChat = function () {
var _chatAsideEl;
var _chatAsideOffcanvasObj;
var _chatContentEl;
// Private functions
var _initAside = function () {
// Mobile offcanvas for mobile mode
_chatAsideOffcanvasObj = new KTOffcanvas(_chatAsideEl, {
overlay: true,
baseClass: 'offcanvas-mobile',
//closeBy: 'kt_chat_aside_close',
toggleBy: 'kt_app_chat_toggle'
});
// User listing
var cardScrollEl = KTUtil.find(_chatAsideEl, '.scroll');
var cardBodyEl = KTUtil.find(_chatAsideEl, '.card-body');
var searchEl = KTUtil.find(_chatAsideEl, '.input-group');
if (cardScrollEl) {
// Initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)
KTUtil.scrollInit(cardScrollEl, {
mobileNativeScroll: true, // Enable native scroll for mobile
desktopNativeScroll: false, // Disable native scroll and use custom scroll for desktop
resetHeightOnDestroy: true, // Reset css height on scroll feature destroyed
handleWindowResize: true, // Recalculate hight on window resize
rememberPosition: true, // Remember scroll position in cookie
height: function() { // Calculate height
var height;
if (KTUtil.isBreakpointUp('lg')) {
height = KTLayoutContent.getHeight();
} else {
height = KTUtil.getViewPort().height;
}
if (_chatAsideEl) {
height = height - parseInt(KTUtil.css(_chatAsideEl, 'margin-top')) - parseInt(KTUtil.css(_chatAsideEl, 'margin-bottom'));
height = height - parseInt(KTUtil.css(_chatAsideEl, 'padding-top')) - parseInt(KTUtil.css(_chatAsideEl, 'padding-bottom'));
}
if (cardScrollEl) {
height = height - parseInt(KTUtil.css(cardScrollEl, 'margin-top')) - parseInt(KTUtil.css(cardScrollEl, 'margin-bottom'));
}
if (cardBodyEl) {
height = height - parseInt(KTUtil.css(cardBodyEl, 'padding-top')) - parseInt(KTUtil.css(cardBodyEl, 'padding-bottom'));
}
if (searchEl) {
height = height - parseInt(KTUtil.css(searchEl, 'height'));
height = height - parseInt(KTUtil.css(searchEl, 'margin-top')) - parseInt(KTUtil.css(searchEl, 'margin-bottom'));
}
// Remove additional space
height = height - 2;
return height;
}
});
}
}
return {
// Public functions
init: function() {
// Elements
_chatAsideEl = KTUtil.getById('kt_chat_aside');
_chatContentEl = KTUtil.getById('kt_chat_content');
// Init aside and user list
_initAside();
// Init inline chat example
KTLayoutChat.setup(KTUtil.getById('kt_chat_content'));
// Trigger click to show popup modal chat on page load
if (KTUtil.getById('kt_app_chat_toggle')) {
setTimeout(function() {
KTUtil.getById('kt_app_chat_toggle').click();
}, 1000);
}
}
};
}();
jQuery(document).ready(function() {
KTAppChat.init();
});