quikchat 1.0.0 → 1.0.2

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.
@@ -18,7 +18,7 @@ function _defineProperties(e, r) {
18
18
  }
19
19
  }
20
20
  function _createClass(e, r, t) {
21
- return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
21
+ return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
22
22
  writable: !1
23
23
  }), e;
24
24
  }
@@ -45,6 +45,15 @@ function _toPropertyKey(t) {
45
45
  var i = _toPrimitive(t, "string");
46
46
  return "symbol" == typeof i ? i : i + "";
47
47
  }
48
+ function _typeof(o) {
49
+ "@babel/helpers - typeof";
50
+
51
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
52
+ return typeof o;
53
+ } : function (o) {
54
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
55
+ }, _typeof(o);
56
+ }
48
57
  function _unsupportedIterableToArray(r, a) {
49
58
  if (r) {
50
59
  if ("string" == typeof r) return _arrayLikeToArray(r, a);
@@ -53,14 +62,22 @@ function _unsupportedIterableToArray(r, a) {
53
62
  }
54
63
  }
55
64
 
56
- // quikchat.js
57
65
  var quikchat = /*#__PURE__*/function () {
66
+ /**
67
+ *
68
+ * @param string or DOM element parentElement
69
+ * @param {*} meta
70
+ */
58
71
  function quikchat(parentElement) {
59
72
  var meta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
60
73
  theme: 'quikchat-theme-light',
61
- onSend: function onSend() {}
74
+ onSend: function onSend() {},
75
+ trackHistory: true
62
76
  };
63
77
  _classCallCheck(this, quikchat);
78
+ if (typeof parentElement === 'string') {
79
+ parentElement = document.querySelector(parentElement);
80
+ }
64
81
  this._parentElement = parentElement;
65
82
  this._theme = meta.theme;
66
83
  this._onSend = meta.onSend ? meta.onSend : function () {};
@@ -75,6 +92,8 @@ var quikchat = /*#__PURE__*/function () {
75
92
  }
76
93
  }
77
94
  this._attachEventListeners();
95
+ this.trackHistory = meta.trackHistory || true;
96
+ this._history = [];
78
97
  }
79
98
  return _createClass(quikchat, [{
80
99
  key: "_createWidget",
@@ -191,7 +210,7 @@ var quikchat = /*#__PURE__*/function () {
191
210
  }, {
192
211
  key: "messageAddNew",
193
212
  value: function messageAddNew(message) {
194
- var user = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "foo";
213
+ var userObject = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "test";
195
214
  var align = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left';
196
215
  var messageDiv = document.createElement('div');
197
216
  var msgid = this.msgid;
@@ -199,8 +218,20 @@ var quikchat = /*#__PURE__*/function () {
199
218
  messageDiv.classList.add('quikchat-message', msgidClass);
200
219
  this.msgid++;
201
220
  messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');
221
+ var user = {
222
+ name: "not-set",
223
+ role: "user"
224
+ };
225
+ if (_typeof(userObject) === 'object') {
226
+ for (var key in userObject) {
227
+ user[key] = userObject[key];
228
+ }
229
+ } else {
230
+ // if userObject is a string
231
+ user["name"] = userObject;
232
+ }
202
233
  var userDiv = document.createElement('div');
203
- userDiv.innerHTML = user;
234
+ userDiv.innerHTML = user.name;
204
235
  userDiv.style = "width: 100%; text-align: ".concat(align, "; font-size: 1em; font-weight:700; color: #444;");
205
236
  var contentDiv = document.createElement('div');
206
237
  contentDiv.style = "width: 100%; text-align: ".concat(align, ";");
@@ -211,6 +242,22 @@ var quikchat = /*#__PURE__*/function () {
211
242
  this._messagesArea.lastChild.scrollIntoView();
212
243
  this._textEntry.value = '';
213
244
  this._adjustMessagesAreaHeight();
245
+ var timestamp = new Date().toISOString();
246
+ var updatedtime = timestamp;
247
+ if (this.trackHistory) {
248
+ this._history.push({
249
+ msgid: msgid,
250
+ user: user,
251
+ message: message,
252
+ align: align,
253
+ timestamp: timestamp,
254
+ updatedtime: updatedtime,
255
+ messageDiv: messageDiv
256
+ });
257
+ if (this._history.length > 10000000) {
258
+ this._history.shift();
259
+ }
260
+ }
214
261
  return {
215
262
  msgid: msgid
216
263
  };
@@ -226,6 +273,12 @@ var quikchat = /*#__PURE__*/function () {
226
273
  } catch (error) {
227
274
  console.log("{String(n)} : Message ID not found");
228
275
  }
276
+ if (sucess) {
277
+ // remove from history
278
+ this._history = this._history.filter(function (item) {
279
+ return item.msgid !== n;
280
+ });
281
+ }
229
282
  return sucess;
230
283
  }
231
284
  /* returns the message html object from the DOM
@@ -284,6 +337,49 @@ var quikchat = /*#__PURE__*/function () {
284
337
  }
285
338
  return sucess;
286
339
  }
340
+ // history functions
341
+ /**
342
+ *
343
+ * @param {*} n
344
+ * @param {*} m
345
+ * @returns array of history messages
346
+ */
347
+ }, {
348
+ key: "historyGet",
349
+ value: function historyGet(n, m) {
350
+ if (n == undefined) {
351
+ n = 0;
352
+ m = this._history.length;
353
+ }
354
+ if (m === undefined) {
355
+ m = n < 0 ? m : n + 1;
356
+ }
357
+ return this._history.slice(n, m);
358
+ }
359
+ }, {
360
+ key: "historyClear",
361
+ value: function historyClear() {
362
+ this.msgid = 0;
363
+ this._history = [];
364
+ }
365
+ }, {
366
+ key: "historyGetLength",
367
+ value: function historyGetLength() {
368
+ return this._history.length;
369
+ }
370
+ }, {
371
+ key: "historyGetMessage",
372
+ value: function historyGetMessage(n) {
373
+ if (n >= 0 && n < this._history.length) {
374
+ this._history[n];
375
+ }
376
+ return {};
377
+ }
378
+ }, {
379
+ key: "historyGetMessageContent",
380
+ value: function historyGetMessageContent(n) {
381
+ return this._history[n].message;
382
+ }
287
383
  }, {
288
384
  key: "changeTheme",
289
385
  value: function changeTheme(newTheme) {
@@ -291,6 +387,18 @@ var quikchat = /*#__PURE__*/function () {
291
387
  this._chatWidget.classList.add(newTheme);
292
388
  this._theme = newTheme;
293
389
  }
390
+ }, {
391
+ key: "theme",
392
+ get: function get() {
393
+ return this._theme;
394
+ }
395
+ }], [{
396
+ key: "getVersion",
397
+ value: function getVersion() {
398
+ return {
399
+ "version": "1.0.2"
400
+ };
401
+ }
294
402
  }]);
295
403
  }();
296
404
 
@@ -1 +1 @@
1
- {"version":3,"file":"quikchat.cjs.js","sources":["../src/quikchat.js"],"sourcesContent":["// quikchat.js\n\nclass quikchat {\n constructor(parentElement, meta = { theme: 'quikchat-theme-light', onSend: () => { } }) {\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.onSend : () => { };\n this._createWidget();\n // title area\n if (meta.titleArea) {\n this.titleAreaSetContents(meta.titleArea.title, meta.titleArea.align);\n if (meta.titleArea.show) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n this._attachEventListeners();\n }\n\n _createWidget() {\n const widgetHTML =\n `\n <div class=\"quikchat-base ${this.theme}\">\n <div class=\"quikchat-title-area\">\n <span style=\"font-size: 1.5em; font-weight: 600;\">Title Area</span>\n </div>\n <div class=\"quikchat-messages-area\"></div>\n <div class=\"quikchat-input-area\">\n <textarea class=\"quikchat-input-textbox\"></textarea>\n <button class=\"quikchat-input-send-btn\">Send</button>\n </div>\n </div>\n `;\n\n this._parentElement.innerHTML = widgetHTML;\n this._chatWidget = this._parentElement.querySelector('.quikchat-base');\n this._titleArea = this._chatWidget.querySelector('.quikchat-title-area');\n this._messagesArea = this._chatWidget.querySelector('.quikchat-messages-area');\n this._inputArea = this._chatWidget.querySelector('.quikchat-input-area');\n this._textEntry = this._inputArea.querySelector('.quikchat-input-textbox');\n this._sendButton = this._inputArea.querySelector('.quikchat-input-send-btn');\n this.msgid = 0;\n }\n $() {\n }\n _attachEventListeners() {\n this._sendButton.addEventListener('click', () => this._onSend(this, this._textEntry.value.trim()));\n window.addEventListener('resize', () => this._handleContainerResize());\n this._chatWidget.addEventListener('resize', () => this._handleContainerResize());\n this._textEntry.addEventListener('keydown', (event) => {\n // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\n }\n });\n }\n\n titleAreaToggle() {\n this._titleArea.style.display === 'none' ? this.titleAreaShow() : this.titleAreaHide();\n }\n\n titleAreaShow() {\n this._titleArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaHide() {\n this._titleArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaSetContents(title, align = 'center') {\n this._titleArea.innerHTML = title;\n this._titleArea.style.textAlign = align;\n }\n\n titleAreaGetContents() {\n return this._titleArea.innerHTML;\n }\n\n inputAreaToggle() {\n this._inputArea.classList.toggle('hidden');\n this._inputArea.style.display === 'none' ? this.inputAreaShow() : this.inputAreaHide();\n }\n\n inputAreaShow() {\n this._inputArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n inputAreaHide() {\n this._inputArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n _adjustMessagesAreaHeight() {\n const hiddenElements = [...this._chatWidget.children].filter(child => child.classList.contains('hidden'));\n const totalHiddenHeight = hiddenElements.reduce((sum, child) => sum + child.offsetHeight, 0);\n const containerHeight = this._chatWidget.offsetHeight;\n this._messagesArea.style.height = `calc(100% - ${containerHeight - totalHiddenHeight}px)`;\n }\n\n _handleContainerResize() {\n this._adjustMessagesAreaHeight();\n this._adjustSendButtonWidth();\n //console.log('Container resized');\n }\n\n _adjustSendButtonWidth() {\n const sendButtonText = this._sendButton.textContent.trim();\n const fontSize = parseFloat(getComputedStyle(this._sendButton).fontSize);\n const minWidth = fontSize * sendButtonText.length + 16;\n this._sendButton.style.minWidth = `${minWidth}px`;\n }\n\n messageAddNew(message, user = \"foo\", align = 'left') {\n const messageDiv = document.createElement('div');\n const msgid = this.msgid;\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n messageDiv.classList.add('quikchat-message', msgidClass);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n\n const userDiv = document.createElement('div');\n userDiv.innerHTML = user;\n userDiv.style = `width: 100%; text-align: ${align}; font-size: 1em; font-weight:700; color: #444;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${align};`;\n contentDiv.innerHTML = message;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n this._messagesArea.lastChild.scrollIntoView();\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n return {msgid};\n }\n\n messageRemove(n) {\n // use css selector to remove the message\n let sucess = false;\n try {\n this._messagesArea.removeChild(this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`));\n sucess = true;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\n }\n /* returns the message html object from the DOM\n */\n messageGetDOMObject(n) {\n let msg = null;\n // now use css selector to get the message \n try {\n msg = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`);\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return msg; \n }\n /* returns the message content only\n */\n messageGetContent(n) {\n let content = \"\"\n // now use css selector to get the message \n try {\n content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\n }\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","meta","arguments","length","undefined","theme","onSend","_classCallCheck","_parentElement","_theme","_onSend","_createWidget","titleArea","titleAreaSetContents","title","align","show","titleAreaShow","titleAreaHide","_attachEventListeners","_createClass","key","value","widgetHTML","concat","innerHTML","_chatWidget","querySelector","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","$","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","titleAreaToggle","style","display","_adjustMessagesAreaHeight","textAlign","titleAreaGetContents","inputAreaToggle","classList","toggle","inputAreaShow","inputAreaHide","hiddenElements","_toConsumableArray","children","filter","child","contains","totalHiddenHeight","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","fontSize","parseFloat","getComputedStyle","minWidth","messageAddNew","message","user","messageDiv","document","createElement","msgidClass","String","padStart","add","userDiv","contentDiv","appendChild","lastChild","scrollIntoView","messageRemove","n","sucess","removeChild","error","console","log","messageGetDOMObject","msg","messageGetContent","content","messageAppendContent","messageReplaceContent","changeTheme","newTheme","remove"],"mappings":"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"}
1
+ {"version":3,"file":"quikchat.cjs.js","sources":["../src/quikchat.js"],"sourcesContent":["\nclass quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, \n meta = { \n theme: 'quikchat-theme-light', \n onSend: () => { },\n trackHistory: true,\n }) {\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.onSend : () => { };\n this._createWidget();\n // title area\n if (meta.titleArea) {\n this.titleAreaSetContents(meta.titleArea.title, meta.titleArea.align);\n if (meta.titleArea.show) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._history = [];\n }\n\n _createWidget() {\n const widgetHTML =\n `\n <div class=\"quikchat-base ${this.theme}\">\n <div class=\"quikchat-title-area\">\n <span style=\"font-size: 1.5em; font-weight: 600;\">Title Area</span>\n </div>\n <div class=\"quikchat-messages-area\"></div>\n <div class=\"quikchat-input-area\">\n <textarea class=\"quikchat-input-textbox\"></textarea>\n <button class=\"quikchat-input-send-btn\">Send</button>\n </div>\n </div>\n `;\n\n this._parentElement.innerHTML = widgetHTML;\n this._chatWidget = this._parentElement.querySelector('.quikchat-base');\n this._titleArea = this._chatWidget.querySelector('.quikchat-title-area');\n this._messagesArea = this._chatWidget.querySelector('.quikchat-messages-area');\n this._inputArea = this._chatWidget.querySelector('.quikchat-input-area');\n this._textEntry = this._inputArea.querySelector('.quikchat-input-textbox');\n this._sendButton = this._inputArea.querySelector('.quikchat-input-send-btn');\n this.msgid = 0;\n }\n $() {\n }\n _attachEventListeners() {\n this._sendButton.addEventListener('click', () => this._onSend(this, this._textEntry.value.trim()));\n window.addEventListener('resize', () => this._handleContainerResize());\n this._chatWidget.addEventListener('resize', () => this._handleContainerResize());\n this._textEntry.addEventListener('keydown', (event) => {\n // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\n }\n });\n }\n\n titleAreaToggle() {\n this._titleArea.style.display === 'none' ? this.titleAreaShow() : this.titleAreaHide();\n }\n\n titleAreaShow() {\n this._titleArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaHide() {\n this._titleArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaSetContents(title, align = 'center') {\n this._titleArea.innerHTML = title;\n this._titleArea.style.textAlign = align;\n }\n\n titleAreaGetContents() {\n return this._titleArea.innerHTML;\n }\n\n inputAreaToggle() {\n this._inputArea.classList.toggle('hidden');\n this._inputArea.style.display === 'none' ? this.inputAreaShow() : this.inputAreaHide();\n }\n\n inputAreaShow() {\n this._inputArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n inputAreaHide() {\n this._inputArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n _adjustMessagesAreaHeight() {\n const hiddenElements = [...this._chatWidget.children].filter(child => child.classList.contains('hidden'));\n const totalHiddenHeight = hiddenElements.reduce((sum, child) => sum + child.offsetHeight, 0);\n const containerHeight = this._chatWidget.offsetHeight;\n this._messagesArea.style.height = `calc(100% - ${containerHeight - totalHiddenHeight}px)`;\n }\n\n _handleContainerResize() {\n this._adjustMessagesAreaHeight();\n this._adjustSendButtonWidth();\n //console.log('Container resized');\n }\n\n _adjustSendButtonWidth() {\n const sendButtonText = this._sendButton.textContent.trim();\n const fontSize = parseFloat(getComputedStyle(this._sendButton).fontSize);\n const minWidth = fontSize * sendButtonText.length + 16;\n this._sendButton.style.minWidth = `${minWidth}px`;\n }\n\n messageAddNew(message, userObject = \"test\", align = 'left') {\n const messageDiv = document.createElement('div');\n const msgid = this.msgid;\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n messageDiv.classList.add('quikchat-message', msgidClass);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n let user = {name: \"not-set\",role : \"user\"};\n if (typeof userObject === 'object') {\n for (const key in userObject) {\n user[key] = userObject[key];\n }\n }\n else { // if userObject is a string\n user[\"name\"] = userObject ;\n }\n const userDiv = document.createElement('div');\n userDiv.innerHTML = user.name;\n userDiv.style = `width: 100%; text-align: ${align}; font-size: 1em; font-weight:700; color: #444;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${align};`;\n contentDiv.innerHTML = message;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n this._messagesArea.lastChild.scrollIntoView();\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n const timestamp = new Date().toISOString();\n const updatedtime = timestamp;\n if (this.trackHistory) {\n this._history.push({ msgid, user, message, align, timestamp, updatedtime, messageDiv});\n if (this._history.length > 10000000) {\n this._history.shift();\n }\n }\n return {msgid};\n }\n\n messageRemove(n) {\n // use css selector to remove the message\n let sucess = false;\n try {\n this._messagesArea.removeChild(this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`));\n sucess = true;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n if (sucess) {\n // remove from history\n this._history = this._history.filter((item) => item.msgid !== n);\n }\n return sucess;\n }\n /* returns the message html object from the DOM\n */\n messageGetDOMObject(n) {\n let msg = null;\n // now use css selector to get the message \n try {\n msg = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`);\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return msg; \n }\n /* returns the message content only\n */\n messageGetContent(n) {\n let content = \"\"\n // now use css selector to get the message \n try {\n content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\n }\n // history functions\n /**\n * \n * @param {*} n \n * @param {*} m \n * @returns array of history messages\n */\n historyGet(n,m) {\n\n if (n == undefined) {\n n = 0;\n m= this._history.length;\n }\n if (m === undefined) {\n m = n < 0 ? m: n + 1;\n }\n return this._history.slice(n,m);\n }\n\n historyClear() {\n this.msgid = 0;\n this._history = [];\n } \n\n historyGetLength() {\n return this._history.length;\n } \n\n historyGetMessage(n) {\n if ( n>=0 && n < this._history.length) {\n this._history[n];\n }\n return {};\n\n } \n\n historyGetMessageContent(n) {\n return this._history[n].message;\n }\n\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n get theme() {\n return this._theme;\n }\n\n static getVersion() {\n return {\"version\" : \"1.0.2\"}\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","meta","arguments","length","undefined","theme","onSend","trackHistory","_classCallCheck","document","querySelector","_parentElement","_theme","_onSend","_createWidget","titleArea","titleAreaSetContents","title","align","show","titleAreaShow","titleAreaHide","_attachEventListeners","_history","_createClass","key","value","widgetHTML","concat","innerHTML","_chatWidget","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","$","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","titleAreaToggle","style","display","_adjustMessagesAreaHeight","textAlign","titleAreaGetContents","inputAreaToggle","classList","toggle","inputAreaShow","inputAreaHide","hiddenElements","_toConsumableArray","children","filter","child","contains","totalHiddenHeight","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","fontSize","parseFloat","getComputedStyle","minWidth","messageAddNew","message","userObject","messageDiv","createElement","msgidClass","String","padStart","add","user","name","role","_typeof","userDiv","contentDiv","appendChild","lastChild","scrollIntoView","timestamp","Date","toISOString","updatedtime","push","shift","messageRemove","n","sucess","removeChild","error","console","log","item","messageGetDOMObject","msg","messageGetContent","content","messageAppendContent","messageReplaceContent","historyGet","m","slice","historyClear","historyGetLength","historyGetMessage","historyGetMessageContent","changeTheme","newTheme","remove","get","getVersion"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n<e;n++)i[n]=t[n];return i}function e(t,e,n){return e&&function(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,i(a.key),a)}}(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function n(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(e)||function(e,n){if(e){if("string"==typeof e)return t(e,n);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?t(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}var a=function(){return e((function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{theme:"quikchat-theme-light",onSend:function(){}};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._parentElement=e,this._theme=n.theme,this._onSend=n.onSend?n.onSend:function(){},this._createWidget(),n.titleArea&&(this.titleAreaSetContents(n.titleArea.title,n.titleArea.align),n.titleArea.show?this.titleAreaShow():this.titleAreaHide()),this._attachEventListeners()}),[{key:"_createWidget",value:function(){var t='\n <div class="quikchat-base '.concat(this.theme,'">\n <div class="quikchat-title-area">\n <span style="font-size: 1.5em; font-weight: 600;">Title Area</span>\n </div>\n <div class="quikchat-messages-area"></div>\n <div class="quikchat-input-area">\n <textarea class="quikchat-input-textbox"></textarea>\n <button class="quikchat-input-send-btn">Send</button>\n </div>\n </div>\n ');this._parentElement.innerHTML=t,this._chatWidget=this._parentElement.querySelector(".quikchat-base"),this._titleArea=this._chatWidget.querySelector(".quikchat-title-area"),this._messagesArea=this._chatWidget.querySelector(".quikchat-messages-area"),this._inputArea=this._chatWidget.querySelector(".quikchat-input-area"),this._textEntry=this._inputArea.querySelector(".quikchat-input-textbox"),this._sendButton=this._inputArea.querySelector(".quikchat-input-send-btn"),this.msgid=0}},{key:"$",value:function(){}},{key:"_attachEventListeners",value:function(){var t=this;this._sendButton.addEventListener("click",(function(){return t._onSend(t,t._textEntry.value.trim())})),window.addEventListener("resize",(function(){return t._handleContainerResize()})),this._chatWidget.addEventListener("resize",(function(){return t._handleContainerResize()})),this._textEntry.addEventListener("keydown",(function(e){e.shiftKey&&13===e.keyCode&&(e.preventDefault(),t._onSend(t,t._textEntry.value.trim()))}))}},{key:"titleAreaToggle",value:function(){"none"===this._titleArea.style.display?this.titleAreaShow():this.titleAreaHide()}},{key:"titleAreaShow",value:function(){this._titleArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"titleAreaHide",value:function(){this._titleArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"titleAreaSetContents",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"center";this._titleArea.innerHTML=t,this._titleArea.style.textAlign=e}},{key:"titleAreaGetContents",value:function(){return this._titleArea.innerHTML}},{key:"inputAreaToggle",value:function(){this._inputArea.classList.toggle("hidden"),"none"===this._inputArea.style.display?this.inputAreaShow():this.inputAreaHide()}},{key:"inputAreaShow",value:function(){this._inputArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"inputAreaHide",value:function(){this._inputArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"_adjustMessagesAreaHeight",value:function(){var t=n(this._chatWidget.children).filter((function(t){return t.classList.contains("hidden")})).reduce((function(t,e){return t+e.offsetHeight}),0),e=this._chatWidget.offsetHeight;this._messagesArea.style.height="calc(100% - ".concat(e-t,"px)")}},{key:"_handleContainerResize",value:function(){this._adjustMessagesAreaHeight(),this._adjustSendButtonWidth()}},{key:"_adjustSendButtonWidth",value:function(){var t=this._sendButton.textContent.trim(),e=parseFloat(getComputedStyle(this._sendButton).fontSize)*t.length+16;this._sendButton.style.minWidth="".concat(e,"px")}},{key:"messageAddNew",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"foo",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",i=document.createElement("div"),a=this.msgid,s="quikchat-msgid-"+String(a).padStart(10,"0");i.classList.add("quikchat-message",s),this.msgid++,i.classList.add(this._messagesArea.children.length%2==1?"quikchat-message-1":"quikchat-message-2");var r=document.createElement("div");r.innerHTML=e,r.style="width: 100%; text-align: ".concat(n,"; font-size: 1em; font-weight:700; color: #444;");var o=document.createElement("div");return o.style="width: 100%; text-align: ".concat(n,";"),o.innerHTML=t,i.appendChild(r),i.appendChild(o),this._messagesArea.appendChild(i),this._messagesArea.lastChild.scrollIntoView(),this._textEntry.value="",this._adjustMessagesAreaHeight(),{msgid:a}}},{key:"messageRemove",value:function(t){var e=!1;try{this._messagesArea.removeChild(this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))),e=!0}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageGetDOMObject",value:function(t){var e=null;try{e=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageGetContent",value:function(t){var e="";try{e=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.textContent}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageAppendContent",value:function(t,e){try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML+=e,!0}catch(t){console.log("{String(n)} : Message ID not found")}}},{key:"messageReplaceContent",value:function(t,e){var n=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML=e,n=!0}catch(t){console.log("{String(n)} : Message ID not found")}return n}},{key:"changeTheme",value:function(t){this._chatWidget.classList.remove(this._theme),this._chatWidget.classList.add(t),this._theme=t}}])}();module.exports=a;
1
+ "use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);i<e;i++)n[i]=t[i];return n}function e(t,e){for(var i=0;i<e.length;i++){var s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,n(s.key),s)}}function i(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(e)||function(e,i){if(e){if("string"==typeof e)return t(e,i);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,i):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}var r=function(){return t=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{theme:"quikchat-theme-light",onSend:function(){},trackHistory:!0};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),"string"==typeof e&&(e=document.querySelector(e)),this._parentElement=e,this._theme=i.theme,this._onSend=i.onSend?i.onSend:function(){},this._createWidget(),i.titleArea&&(this.titleAreaSetContents(i.titleArea.title,i.titleArea.align),i.titleArea.show?this.titleAreaShow():this.titleAreaHide()),this._attachEventListeners(),this.trackHistory=i.trackHistory||!0,this._history=[]},n=[{key:"_createWidget",value:function(){var t='\n <div class="quikchat-base '.concat(this.theme,'">\n <div class="quikchat-title-area">\n <span style="font-size: 1.5em; font-weight: 600;">Title Area</span>\n </div>\n <div class="quikchat-messages-area"></div>\n <div class="quikchat-input-area">\n <textarea class="quikchat-input-textbox"></textarea>\n <button class="quikchat-input-send-btn">Send</button>\n </div>\n </div>\n ');this._parentElement.innerHTML=t,this._chatWidget=this._parentElement.querySelector(".quikchat-base"),this._titleArea=this._chatWidget.querySelector(".quikchat-title-area"),this._messagesArea=this._chatWidget.querySelector(".quikchat-messages-area"),this._inputArea=this._chatWidget.querySelector(".quikchat-input-area"),this._textEntry=this._inputArea.querySelector(".quikchat-input-textbox"),this._sendButton=this._inputArea.querySelector(".quikchat-input-send-btn"),this.msgid=0}},{key:"$",value:function(){}},{key:"_attachEventListeners",value:function(){var t=this;this._sendButton.addEventListener("click",(function(){return t._onSend(t,t._textEntry.value.trim())})),window.addEventListener("resize",(function(){return t._handleContainerResize()})),this._chatWidget.addEventListener("resize",(function(){return t._handleContainerResize()})),this._textEntry.addEventListener("keydown",(function(e){e.shiftKey&&13===e.keyCode&&(e.preventDefault(),t._onSend(t,t._textEntry.value.trim()))}))}},{key:"titleAreaToggle",value:function(){"none"===this._titleArea.style.display?this.titleAreaShow():this.titleAreaHide()}},{key:"titleAreaShow",value:function(){this._titleArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"titleAreaHide",value:function(){this._titleArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"titleAreaSetContents",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"center";this._titleArea.innerHTML=t,this._titleArea.style.textAlign=e}},{key:"titleAreaGetContents",value:function(){return this._titleArea.innerHTML}},{key:"inputAreaToggle",value:function(){this._inputArea.classList.toggle("hidden"),"none"===this._inputArea.style.display?this.inputAreaShow():this.inputAreaHide()}},{key:"inputAreaShow",value:function(){this._inputArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"inputAreaHide",value:function(){this._inputArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"_adjustMessagesAreaHeight",value:function(){var t=i(this._chatWidget.children).filter((function(t){return t.classList.contains("hidden")})).reduce((function(t,e){return t+e.offsetHeight}),0),e=this._chatWidget.offsetHeight;this._messagesArea.style.height="calc(100% - ".concat(e-t,"px)")}},{key:"_handleContainerResize",value:function(){this._adjustMessagesAreaHeight(),this._adjustSendButtonWidth()}},{key:"_adjustSendButtonWidth",value:function(){var t=this._sendButton.textContent.trim(),e=parseFloat(getComputedStyle(this._sendButton).fontSize)*t.length+16;this._sendButton.style.minWidth="".concat(e,"px")}},{key:"messageAddNew",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"test",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",n=document.createElement("div"),r=this.msgid,a="quikchat-msgid-"+String(r).padStart(10,"0");n.classList.add("quikchat-message",a),this.msgid++,n.classList.add(this._messagesArea.children.length%2==1?"quikchat-message-1":"quikchat-message-2");var o={name:"not-set",role:"user"};if("object"===s(e))for(var u in e)o[u]=e[u];else o.name=e;var h=document.createElement("div");h.innerHTML=o.name,h.style="width: 100%; text-align: ".concat(i,"; font-size: 1em; font-weight:700; color: #444;");var l=document.createElement("div");l.style="width: 100%; text-align: ".concat(i,";"),l.innerHTML=t,n.appendChild(h),n.appendChild(l),this._messagesArea.appendChild(n),this._messagesArea.lastChild.scrollIntoView(),this._textEntry.value="",this._adjustMessagesAreaHeight();var c=(new Date).toISOString(),d=c;return this.trackHistory&&(this._history.push({msgid:r,user:o,message:t,align:i,timestamp:c,updatedtime:d,messageDiv:n}),this._history.length>1e7&&this._history.shift()),{msgid:r}}},{key:"messageRemove",value:function(t){var e=!1;try{this._messagesArea.removeChild(this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))),e=!0}catch(t){console.log("{String(n)} : Message ID not found")}return e&&(this._history=this._history.filter((function(e){return e.msgid!==t}))),e}},{key:"messageGetDOMObject",value:function(t){var e=null;try{e=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageGetContent",value:function(t){var e="";try{e=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.textContent}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageAppendContent",value:function(t,e){try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML+=e}catch(t){console.log("{String(n)} : Message ID not found")}}},{key:"messageReplaceContent",value:function(t,e){var i=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML=e,i=!0}catch(t){console.log("{String(n)} : Message ID not found")}return i}},{key:"historyGet",value:function(t,e){return null==t&&(t=0,e=this._history.length),void 0===e&&(e=t<0?e:t+1),this._history.slice(t,e)}},{key:"historyClear",value:function(){this.msgid=0,this._history=[]}},{key:"historyGetLength",value:function(){return this._history.length}},{key:"historyGetMessage",value:function(t){return t>=0&&t<this._history.length&&this._history[t],{}}},{key:"historyGetMessageContent",value:function(t){return this._history[t].message}},{key:"changeTheme",value:function(t){this._chatWidget.classList.remove(this._theme),this._chatWidget.classList.add(t),this._theme=t}},{key:"theme",get:function(){return this._theme}}],r=[{key:"getVersion",value:function(){return{version:"1.0.2"}}}],n&&e(t.prototype,n),r&&e(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();module.exports=r;
2
2
  //# sourceMappingURL=quikchat.cjs.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quikchat.cjs.min.js","sources":["../src/quikchat.js"],"sourcesContent":["// quikchat.js\n\nclass quikchat {\n constructor(parentElement, meta = { theme: 'quikchat-theme-light', onSend: () => { } }) {\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.onSend : () => { };\n this._createWidget();\n // title area\n if (meta.titleArea) {\n this.titleAreaSetContents(meta.titleArea.title, meta.titleArea.align);\n if (meta.titleArea.show) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n this._attachEventListeners();\n }\n\n _createWidget() {\n const widgetHTML =\n `\n <div class=\"quikchat-base ${this.theme}\">\n <div class=\"quikchat-title-area\">\n <span style=\"font-size: 1.5em; font-weight: 600;\">Title Area</span>\n </div>\n <div class=\"quikchat-messages-area\"></div>\n <div class=\"quikchat-input-area\">\n <textarea class=\"quikchat-input-textbox\"></textarea>\n <button class=\"quikchat-input-send-btn\">Send</button>\n </div>\n </div>\n `;\n\n this._parentElement.innerHTML = widgetHTML;\n this._chatWidget = this._parentElement.querySelector('.quikchat-base');\n this._titleArea = this._chatWidget.querySelector('.quikchat-title-area');\n this._messagesArea = this._chatWidget.querySelector('.quikchat-messages-area');\n this._inputArea = this._chatWidget.querySelector('.quikchat-input-area');\n this._textEntry = this._inputArea.querySelector('.quikchat-input-textbox');\n this._sendButton = this._inputArea.querySelector('.quikchat-input-send-btn');\n this.msgid = 0;\n }\n $() {\n }\n _attachEventListeners() {\n this._sendButton.addEventListener('click', () => this._onSend(this, this._textEntry.value.trim()));\n window.addEventListener('resize', () => this._handleContainerResize());\n this._chatWidget.addEventListener('resize', () => this._handleContainerResize());\n this._textEntry.addEventListener('keydown', (event) => {\n // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\n }\n });\n }\n\n titleAreaToggle() {\n this._titleArea.style.display === 'none' ? this.titleAreaShow() : this.titleAreaHide();\n }\n\n titleAreaShow() {\n this._titleArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaHide() {\n this._titleArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaSetContents(title, align = 'center') {\n this._titleArea.innerHTML = title;\n this._titleArea.style.textAlign = align;\n }\n\n titleAreaGetContents() {\n return this._titleArea.innerHTML;\n }\n\n inputAreaToggle() {\n this._inputArea.classList.toggle('hidden');\n this._inputArea.style.display === 'none' ? this.inputAreaShow() : this.inputAreaHide();\n }\n\n inputAreaShow() {\n this._inputArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n inputAreaHide() {\n this._inputArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n _adjustMessagesAreaHeight() {\n const hiddenElements = [...this._chatWidget.children].filter(child => child.classList.contains('hidden'));\n const totalHiddenHeight = hiddenElements.reduce((sum, child) => sum + child.offsetHeight, 0);\n const containerHeight = this._chatWidget.offsetHeight;\n this._messagesArea.style.height = `calc(100% - ${containerHeight - totalHiddenHeight}px)`;\n }\n\n _handleContainerResize() {\n this._adjustMessagesAreaHeight();\n this._adjustSendButtonWidth();\n //console.log('Container resized');\n }\n\n _adjustSendButtonWidth() {\n const sendButtonText = this._sendButton.textContent.trim();\n const fontSize = parseFloat(getComputedStyle(this._sendButton).fontSize);\n const minWidth = fontSize * sendButtonText.length + 16;\n this._sendButton.style.minWidth = `${minWidth}px`;\n }\n\n messageAddNew(message, user = \"foo\", align = 'left') {\n const messageDiv = document.createElement('div');\n const msgid = this.msgid;\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n messageDiv.classList.add('quikchat-message', msgidClass);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n\n const userDiv = document.createElement('div');\n userDiv.innerHTML = user;\n userDiv.style = `width: 100%; text-align: ${align}; font-size: 1em; font-weight:700; color: #444;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${align};`;\n contentDiv.innerHTML = message;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n this._messagesArea.lastChild.scrollIntoView();\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n return {msgid};\n }\n\n messageRemove(n) {\n // use css selector to remove the message\n let sucess = false;\n try {\n this._messagesArea.removeChild(this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`));\n sucess = true;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\n }\n /* returns the message html object from the DOM\n */\n messageGetDOMObject(n) {\n let msg = null;\n // now use css selector to get the message \n try {\n msg = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`);\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return msg; \n }\n /* returns the message content only\n */\n messageGetContent(n) {\n let content = \"\"\n // now use css selector to get the message \n try {\n content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\n }\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","_createClass","parentElement","meta","arguments","length","undefined","theme","onSend","_classCallCheck","this","_parentElement","_theme","_onSend","_createWidget","titleArea","titleAreaSetContents","title","align","show","titleAreaShow","titleAreaHide","_attachEventListeners","key","value","widgetHTML","concat","innerHTML","_chatWidget","querySelector","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","style","display","_adjustMessagesAreaHeight","textAlign","classList","toggle","inputAreaShow","inputAreaHide","totalHiddenHeight","_toConsumableArray","children","filter","child","contains","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","minWidth","parseFloat","getComputedStyle","fontSize","message","user","messageDiv","document","createElement","msgidClass","String","padStart","add","userDiv","contentDiv","appendChild","lastChild","scrollIntoView","n","sucess","removeChild","error","console","log","msg","content","newTheme","remove"],"mappings":"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"}
1
+ {"version":3,"file":"quikchat.cjs.min.js","sources":["../src/quikchat.js"],"sourcesContent":["\nclass quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, \n meta = { \n theme: 'quikchat-theme-light', \n onSend: () => { },\n trackHistory: true,\n }) {\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.onSend : () => { };\n this._createWidget();\n // title area\n if (meta.titleArea) {\n this.titleAreaSetContents(meta.titleArea.title, meta.titleArea.align);\n if (meta.titleArea.show) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._history = [];\n }\n\n _createWidget() {\n const widgetHTML =\n `\n <div class=\"quikchat-base ${this.theme}\">\n <div class=\"quikchat-title-area\">\n <span style=\"font-size: 1.5em; font-weight: 600;\">Title Area</span>\n </div>\n <div class=\"quikchat-messages-area\"></div>\n <div class=\"quikchat-input-area\">\n <textarea class=\"quikchat-input-textbox\"></textarea>\n <button class=\"quikchat-input-send-btn\">Send</button>\n </div>\n </div>\n `;\n\n this._parentElement.innerHTML = widgetHTML;\n this._chatWidget = this._parentElement.querySelector('.quikchat-base');\n this._titleArea = this._chatWidget.querySelector('.quikchat-title-area');\n this._messagesArea = this._chatWidget.querySelector('.quikchat-messages-area');\n this._inputArea = this._chatWidget.querySelector('.quikchat-input-area');\n this._textEntry = this._inputArea.querySelector('.quikchat-input-textbox');\n this._sendButton = this._inputArea.querySelector('.quikchat-input-send-btn');\n this.msgid = 0;\n }\n $() {\n }\n _attachEventListeners() {\n this._sendButton.addEventListener('click', () => this._onSend(this, this._textEntry.value.trim()));\n window.addEventListener('resize', () => this._handleContainerResize());\n this._chatWidget.addEventListener('resize', () => this._handleContainerResize());\n this._textEntry.addEventListener('keydown', (event) => {\n // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\n }\n });\n }\n\n titleAreaToggle() {\n this._titleArea.style.display === 'none' ? this.titleAreaShow() : this.titleAreaHide();\n }\n\n titleAreaShow() {\n this._titleArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaHide() {\n this._titleArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaSetContents(title, align = 'center') {\n this._titleArea.innerHTML = title;\n this._titleArea.style.textAlign = align;\n }\n\n titleAreaGetContents() {\n return this._titleArea.innerHTML;\n }\n\n inputAreaToggle() {\n this._inputArea.classList.toggle('hidden');\n this._inputArea.style.display === 'none' ? this.inputAreaShow() : this.inputAreaHide();\n }\n\n inputAreaShow() {\n this._inputArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n inputAreaHide() {\n this._inputArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n _adjustMessagesAreaHeight() {\n const hiddenElements = [...this._chatWidget.children].filter(child => child.classList.contains('hidden'));\n const totalHiddenHeight = hiddenElements.reduce((sum, child) => sum + child.offsetHeight, 0);\n const containerHeight = this._chatWidget.offsetHeight;\n this._messagesArea.style.height = `calc(100% - ${containerHeight - totalHiddenHeight}px)`;\n }\n\n _handleContainerResize() {\n this._adjustMessagesAreaHeight();\n this._adjustSendButtonWidth();\n //console.log('Container resized');\n }\n\n _adjustSendButtonWidth() {\n const sendButtonText = this._sendButton.textContent.trim();\n const fontSize = parseFloat(getComputedStyle(this._sendButton).fontSize);\n const minWidth = fontSize * sendButtonText.length + 16;\n this._sendButton.style.minWidth = `${minWidth}px`;\n }\n\n messageAddNew(message, userObject = \"test\", align = 'left') {\n const messageDiv = document.createElement('div');\n const msgid = this.msgid;\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n messageDiv.classList.add('quikchat-message', msgidClass);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n let user = {name: \"not-set\",role : \"user\"};\n if (typeof userObject === 'object') {\n for (const key in userObject) {\n user[key] = userObject[key];\n }\n }\n else { // if userObject is a string\n user[\"name\"] = userObject ;\n }\n const userDiv = document.createElement('div');\n userDiv.innerHTML = user.name;\n userDiv.style = `width: 100%; text-align: ${align}; font-size: 1em; font-weight:700; color: #444;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${align};`;\n contentDiv.innerHTML = message;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n this._messagesArea.lastChild.scrollIntoView();\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n const timestamp = new Date().toISOString();\n const updatedtime = timestamp;\n if (this.trackHistory) {\n this._history.push({ msgid, user, message, align, timestamp, updatedtime, messageDiv});\n if (this._history.length > 10000000) {\n this._history.shift();\n }\n }\n return {msgid};\n }\n\n messageRemove(n) {\n // use css selector to remove the message\n let sucess = false;\n try {\n this._messagesArea.removeChild(this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`));\n sucess = true;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n if (sucess) {\n // remove from history\n this._history = this._history.filter((item) => item.msgid !== n);\n }\n return sucess;\n }\n /* returns the message html object from the DOM\n */\n messageGetDOMObject(n) {\n let msg = null;\n // now use css selector to get the message \n try {\n msg = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`);\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return msg; \n }\n /* returns the message content only\n */\n messageGetContent(n) {\n let content = \"\"\n // now use css selector to get the message \n try {\n content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\n }\n // history functions\n /**\n * \n * @param {*} n \n * @param {*} m \n * @returns array of history messages\n */\n historyGet(n,m) {\n\n if (n == undefined) {\n n = 0;\n m= this._history.length;\n }\n if (m === undefined) {\n m = n < 0 ? m: n + 1;\n }\n return this._history.slice(n,m);\n }\n\n historyClear() {\n this.msgid = 0;\n this._history = [];\n } \n\n historyGetLength() {\n return this._history.length;\n } \n\n historyGetMessage(n) {\n if ( n>=0 && n < this._history.length) {\n this._history[n];\n }\n return {};\n\n } \n\n historyGetMessageContent(n) {\n return this._history[n].message;\n }\n\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n get theme() {\n return this._theme;\n }\n\n static getVersion() {\n return {\"version\" : \"1.0.2\"}\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","meta","arguments","length","undefined","theme","onSend","trackHistory","_classCallCheck","document","querySelector","this","_parentElement","_theme","_onSend","_createWidget","titleArea","titleAreaSetContents","title","align","show","titleAreaShow","titleAreaHide","_attachEventListeners","_history","key","value","widgetHTML","concat","innerHTML","_chatWidget","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","style","display","_adjustMessagesAreaHeight","textAlign","classList","toggle","inputAreaShow","inputAreaHide","totalHiddenHeight","_toConsumableArray","children","filter","child","contains","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","minWidth","parseFloat","getComputedStyle","fontSize","message","userObject","messageDiv","createElement","msgidClass","String","padStart","add","user","name","role","_typeof","userDiv","contentDiv","appendChild","lastChild","scrollIntoView","timestamp","Date","toISOString","updatedtime","push","shift","n","sucess","removeChild","error","console","log","item","msg","content","m","slice","newTheme","remove","get","version"],"mappings":"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"}
package/dist/quikchat.css CHANGED
@@ -13,6 +13,7 @@
13
13
  margin-right: 8px;
14
14
  padding-left : 2px;
15
15
  padding-right : 2px;
16
+ padding: 8px;
16
17
  font-weight: 600;
17
18
  font-size: 1.3em;
18
19
  }
@@ -61,7 +62,6 @@
61
62
  .quikchat-theme-debug {
62
63
  border: 1px solid black;
63
64
  border-radius: 10px;
64
- padding: 5px;
65
65
  background-color: mediumorchid;
66
66
  }
67
67
 
@@ -90,6 +90,8 @@
90
90
 
91
91
  .quikchat-theme-debug .quikchat-input-area {
92
92
  background-color: lightgreen;
93
+ border-bottom-left-radius : 10px;
94
+ border-bottom-right-radius : 10px;
93
95
  }
94
96
 
95
97
  .quikchat-theme-debug .quikchat-input-textbox {
@@ -111,7 +113,6 @@
111
113
  .quikchat-theme-dark {
112
114
  border: 1px solid #555555;
113
115
  border-radius: 8px;
114
- padding: 5px;
115
116
  background-color: #212121;
116
117
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
117
118
  }
@@ -147,6 +148,9 @@
147
148
  .quikchat-theme-dark .quikchat-input-area {
148
149
  padding: 8px;
149
150
  background-color: #263238;
151
+
152
+ border-bottom-left-radius : 10px;
153
+ border-bottom-right-radius : 10px;
150
154
  }
151
155
 
152
156
  .quikchat-theme-dark .quikchat-input-textbox {
@@ -175,11 +179,11 @@
175
179
  .quikchat-theme-light {
176
180
  border: 1px solid #cccccc;
177
181
  border-radius: 10px;
178
- padding: 5px;
179
182
  background-color: #f9f9f9;
180
183
  }
181
184
 
182
185
  .quikchat-theme-light .quikchat-title-area {
186
+ padding: 8px;
183
187
  color: #333;
184
188
  }
185
189
 
@@ -200,7 +204,9 @@
200
204
 
201
205
  .quikchat-theme-light .quikchat-input-area {
202
206
  background-color: #f9f9f9;
203
- }
207
+ border-bottom-left-radius : 10px;
208
+ border-bottom-right-radius : 10px;
209
+ }
204
210
 
205
211
  .quikchat-theme-light .quikchat-input-textbox {
206
212
  background-color: #ffffff;