|
@@ -0,0 +1,53 @@
|
|
|
+
|
|
|
+ * --------------------------------------------
|
|
|
+ * AdminLTE direct-chat.ts
|
|
|
+ * License MIT
|
|
|
+ * --------------------------------------------
|
|
|
+ */
|
|
|
+
|
|
|
+import {
|
|
|
+ domReady
|
|
|
+} from './util/index'
|
|
|
+
|
|
|
+
|
|
|
+ * Constants
|
|
|
+ * ====================================================
|
|
|
+ */
|
|
|
+
|
|
|
+const SELECTOR_DATA_TOGGLE = '[data-widget="chat-pane-toggle"]'
|
|
|
+const SELECTOR_DIRECT_CHAT = '.direct-chat'
|
|
|
+
|
|
|
+const CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'
|
|
|
+
|
|
|
+
|
|
|
+ * Class Definition
|
|
|
+ * ====================================================
|
|
|
+ */
|
|
|
+
|
|
|
+class DirectChat {
|
|
|
+ toggle(chatPane: Element): void {
|
|
|
+
|
|
|
+ chatPane.closest(SELECTOR_DIRECT_CHAT)?.classList.toggle(CLASS_NAME_DIRECT_CHAT_OPEN)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * Data Api implementation
|
|
|
+ * ====================================================
|
|
|
+ */
|
|
|
+
|
|
|
+domReady(() => {
|
|
|
+ const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE)
|
|
|
+
|
|
|
+ for (const btn of button) {
|
|
|
+ btn.addEventListener('click', event => {
|
|
|
+ event.preventDefault()
|
|
|
+ const chatPane = event.target as Element
|
|
|
+ const data = new DirectChat()
|
|
|
+ data.toggle(chatPane)
|
|
|
+ })
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+export default DirectChat
|