ninegrid2 6.641.0 → 6.643.0

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.
@@ -193072,6 +193072,97 @@ class aiContainer extends HTMLElement
193072
193072
 
193073
193073
  customElements.define("nx-ai-container", aiContainer);
193074
193074
 
193075
+ class ideAssi extends HTMLElement
193076
+ {
193077
+ #ing = false;
193078
+
193079
+ constructor() {
193080
+ super();
193081
+ this.attachShadow({ mode: 'open' });
193082
+ }
193083
+
193084
+ connectedCallback() {
193085
+
193086
+ const textareaText = "나에게 무엇이든 물어봐...";
193087
+
193088
+ this.shadowRoot.innerHTML = `
193089
+ <style>
193090
+ @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
193091
+ ${ninegrid.getCustomPath(this,"ideAssi.css")}
193092
+ </style>
193093
+
193094
+ <div class="wrapper">
193095
+ <div class="container">
193096
+ <div class="head">
193097
+ <div class="logo"></div>
193098
+ </div>
193099
+ <nx-ai-chat></nx-ai-chat>
193100
+ <div class="foot">
193101
+ <textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
193102
+ </div>
193103
+ </div>
193104
+ <div class="menu">
193105
+ <div class="collapse-icon"></div>
193106
+ <div class="menu-icon menu-filter active"></div>
193107
+ <div class="menu-icon menu-general"></div>
193108
+ <div class="menu-icon menu-setting"></div>
193109
+ </div>
193110
+ </div>
193111
+
193112
+ <div class="expand-icon"></div>
193113
+ `;
193114
+
193115
+ requestAnimationFrame(() => {
193116
+ this.#init();
193117
+ });
193118
+ };
193119
+
193120
+
193121
+ #init = (info) => {
193122
+
193123
+ this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
193124
+
193125
+ this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
193126
+ this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
193127
+
193128
+ //this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
193129
+ };
193130
+
193131
+ #keydownHandler = async (e) => {
193132
+ if (e.key !== "Enter") return;
193133
+
193134
+ e.preventDefault();
193135
+
193136
+ const question = e.target.value.trim();
193137
+ if (!question) return;
193138
+
193139
+ if (this.#ing) return;
193140
+ this.#ing = true;
193141
+
193142
+ /**
193143
+ * setTimeout 없으면, 맥에서 한글 잔상이 남음
193144
+ * setTimeout 내에서 e.target이 nx-ai-container가 된다.
193145
+ */
193146
+ setTimeout(() => {
193147
+ this.shadowRoot.querySelector("textarea").value = "";
193148
+ });
193149
+
193150
+ const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
193151
+
193152
+ elAiChat.add("me", question);
193153
+ elAiChat.add("ing", question);
193154
+
193155
+
193156
+ this.#ing = false;
193157
+ }
193158
+
193159
+ #toggleCollapseHandler = () => {
193160
+ this.classList.toggle("collapse");
193161
+ };
193162
+ }
193163
+
193164
+ customElements.define("nx-ide-assi", ideAssi);
193165
+
193075
193166
  //import $ from "https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js";
193076
193167
 
193077
193168
 
@@ -193068,6 +193068,97 @@ class aiContainer extends HTMLElement
193068
193068
 
193069
193069
  customElements.define("nx-ai-container", aiContainer);
193070
193070
 
193071
+ class ideAssi extends HTMLElement
193072
+ {
193073
+ #ing = false;
193074
+
193075
+ constructor() {
193076
+ super();
193077
+ this.attachShadow({ mode: 'open' });
193078
+ }
193079
+
193080
+ connectedCallback() {
193081
+
193082
+ const textareaText = "나에게 무엇이든 물어봐...";
193083
+
193084
+ this.shadowRoot.innerHTML = `
193085
+ <style>
193086
+ @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
193087
+ ${ninegrid.getCustomPath(this,"ideAssi.css")}
193088
+ </style>
193089
+
193090
+ <div class="wrapper">
193091
+ <div class="container">
193092
+ <div class="head">
193093
+ <div class="logo"></div>
193094
+ </div>
193095
+ <nx-ai-chat></nx-ai-chat>
193096
+ <div class="foot">
193097
+ <textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
193098
+ </div>
193099
+ </div>
193100
+ <div class="menu">
193101
+ <div class="collapse-icon"></div>
193102
+ <div class="menu-icon menu-filter active"></div>
193103
+ <div class="menu-icon menu-general"></div>
193104
+ <div class="menu-icon menu-setting"></div>
193105
+ </div>
193106
+ </div>
193107
+
193108
+ <div class="expand-icon"></div>
193109
+ `;
193110
+
193111
+ requestAnimationFrame(() => {
193112
+ this.#init();
193113
+ });
193114
+ };
193115
+
193116
+
193117
+ #init = (info) => {
193118
+
193119
+ this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
193120
+
193121
+ this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
193122
+ this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
193123
+
193124
+ //this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
193125
+ };
193126
+
193127
+ #keydownHandler = async (e) => {
193128
+ if (e.key !== "Enter") return;
193129
+
193130
+ e.preventDefault();
193131
+
193132
+ const question = e.target.value.trim();
193133
+ if (!question) return;
193134
+
193135
+ if (this.#ing) return;
193136
+ this.#ing = true;
193137
+
193138
+ /**
193139
+ * setTimeout 없으면, 맥에서 한글 잔상이 남음
193140
+ * setTimeout 내에서 e.target이 nx-ai-container가 된다.
193141
+ */
193142
+ setTimeout(() => {
193143
+ this.shadowRoot.querySelector("textarea").value = "";
193144
+ });
193145
+
193146
+ const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
193147
+
193148
+ elAiChat.add("me", question);
193149
+ elAiChat.add("ing", question);
193150
+
193151
+
193152
+ this.#ing = false;
193153
+ }
193154
+
193155
+ #toggleCollapseHandler = () => {
193156
+ this.classList.toggle("collapse");
193157
+ };
193158
+ }
193159
+
193160
+ customElements.define("nx-ide-assi", ideAssi);
193161
+
193071
193162
  //import $ from "https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js";
193072
193163
 
193073
193164
 
@@ -0,0 +1,107 @@
1
+ import ninegrid from "../index.js";
2
+ import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
3
+ import { Ollama } from "@langchain/ollama";
4
+ import { ChatOpenAI } from '@langchain/openai';
5
+ import { HumanMessage, SystemMessage } from '@langchain/core/messages';
6
+ import { OllamaEmbeddings } from "@langchain/ollama";
7
+ import { QdrantClient } from "@qdrant/js-client-rest";
8
+ import { StringOutputParser } from "@langchain/core/output_parsers"
9
+ import { PromptTemplate} from "@langchain/core/prompts"
10
+
11
+ class ideAssi extends HTMLElement
12
+ {
13
+ #ing = false;
14
+
15
+ constructor() {
16
+ super();
17
+ this.attachShadow({ mode: 'open' });
18
+ }
19
+
20
+ connectedCallback() {
21
+
22
+ const textareaText = "나에게 무엇이든 물어봐...";
23
+
24
+ this.shadowRoot.innerHTML = `
25
+ <style>
26
+ @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
27
+ ${ninegrid.getCustomPath(this,"ideAssi.css")}
28
+ </style>
29
+
30
+ <div class="wrapper">
31
+ <div class="container">
32
+ <div class="head">
33
+ <div class="logo"></div>
34
+ </div>
35
+ <nx-ai-chat></nx-ai-chat>
36
+ <div class="foot">
37
+ <textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
38
+ </div>
39
+ </div>
40
+ <div class="menu">
41
+ <div class="collapse-icon"></div>
42
+ <div class="menu-icon menu-filter active"></div>
43
+ <div class="menu-icon menu-general"></div>
44
+ <div class="menu-icon menu-setting"></div>
45
+ </div>
46
+ </div>
47
+
48
+ <div class="expand-icon"></div>
49
+ `;
50
+
51
+ requestAnimationFrame(() => {
52
+ this.#init();
53
+ });
54
+ };
55
+
56
+
57
+ #init = (info) => {
58
+
59
+ this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
60
+
61
+ this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
62
+ this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
63
+
64
+ //this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
65
+ };
66
+
67
+ #keydownHandler = async (e) => {
68
+ if (e.key !== "Enter") return;
69
+
70
+ e.preventDefault();
71
+
72
+ const question = e.target.value.trim();
73
+ if (!question) return;
74
+
75
+ if (this.#ing) return;
76
+ this.#ing = true;
77
+
78
+ /**
79
+ * setTimeout 없으면, 맥에서 한글 잔상이 남음
80
+ * setTimeout 내에서 e.target이 nx-ai-container가 된다.
81
+ */
82
+ setTimeout(() => {
83
+ this.shadowRoot.querySelector("textarea").value = "";
84
+ });
85
+
86
+ const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
87
+
88
+ elAiChat.add("me", question);
89
+ elAiChat.add("ing", question);
90
+
91
+ try {
92
+ //
93
+ } catch (error) {
94
+ console.error(error);
95
+ //elAiChat.add("ai", error);
96
+ }
97
+
98
+
99
+ this.#ing = false;
100
+ }
101
+
102
+ #toggleCollapseHandler = () => {
103
+ this.classList.toggle("collapse");
104
+ };
105
+ }
106
+
107
+ customElements.define("nx-ide-assi", ideAssi);
package/dist/index.js CHANGED
@@ -106,6 +106,9 @@ import "./ai/aiSettings.js";
106
106
  import "./ai/aiMessage.js";
107
107
  import "./ai/aiContainer.js";
108
108
 
109
+
110
+ import "./ide-assi/ideAssi.js";
111
+
109
112
  if (typeof window !== "undefined") {
110
113
  //window.ninegrid = window.NG = ninegrid;
111
114
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ninegrid2",
3
3
  "type": "module",
4
- "version": "6.641.0",
4
+ "version": "6.643.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -0,0 +1,107 @@
1
+ import ninegrid from "../index.js";
2
+ import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
3
+ import { Ollama } from "@langchain/ollama";
4
+ import { ChatOpenAI } from '@langchain/openai';
5
+ import { HumanMessage, SystemMessage } from '@langchain/core/messages';
6
+ import { OllamaEmbeddings } from "@langchain/ollama";
7
+ import { QdrantClient } from "@qdrant/js-client-rest";
8
+ import { StringOutputParser } from "@langchain/core/output_parsers"
9
+ import { PromptTemplate} from "@langchain/core/prompts"
10
+
11
+ class ideAssi extends HTMLElement
12
+ {
13
+ #ing = false;
14
+
15
+ constructor() {
16
+ super();
17
+ this.attachShadow({ mode: 'open' });
18
+ }
19
+
20
+ connectedCallback() {
21
+
22
+ const textareaText = "나에게 무엇이든 물어봐...";
23
+
24
+ this.shadowRoot.innerHTML = `
25
+ <style>
26
+ @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideAssi.css";
27
+ ${ninegrid.getCustomPath(this,"ideAssi.css")}
28
+ </style>
29
+
30
+ <div class="wrapper">
31
+ <div class="container">
32
+ <div class="head">
33
+ <div class="logo"></div>
34
+ </div>
35
+ <nx-ai-chat></nx-ai-chat>
36
+ <div class="foot">
37
+ <textarea name="ask" id="q" name="q" rows="4" placeholder="${textareaText}"></textarea>
38
+ </div>
39
+ </div>
40
+ <div class="menu">
41
+ <div class="collapse-icon"></div>
42
+ <div class="menu-icon menu-filter active"></div>
43
+ <div class="menu-icon menu-general"></div>
44
+ <div class="menu-icon menu-setting"></div>
45
+ </div>
46
+ </div>
47
+
48
+ <div class="expand-icon"></div>
49
+ `;
50
+
51
+ requestAnimationFrame(() => {
52
+ this.#init();
53
+ });
54
+ };
55
+
56
+
57
+ #init = (info) => {
58
+
59
+ this.shadowRoot.querySelector("textarea").addEventListener("keydown", this.#keydownHandler);
60
+
61
+ this.shadowRoot.querySelector(".expand-icon").addEventListener("click", this.#toggleCollapseHandler);
62
+ this.shadowRoot.querySelector(".collapse-icon").addEventListener("click", this.#toggleCollapseHandler);
63
+
64
+ //this.shadowRoot.querySelectorAll(".menu-icon").forEach(el => el.addEventListener("click", this.#menuClickHandler));
65
+ };
66
+
67
+ #keydownHandler = async (e) => {
68
+ if (e.key !== "Enter") return;
69
+
70
+ e.preventDefault();
71
+
72
+ const question = e.target.value.trim();
73
+ if (!question) return;
74
+
75
+ if (this.#ing) return;
76
+ this.#ing = true;
77
+
78
+ /**
79
+ * setTimeout 없으면, 맥에서 한글 잔상이 남음
80
+ * setTimeout 내에서 e.target이 nx-ai-container가 된다.
81
+ */
82
+ setTimeout(() => {
83
+ this.shadowRoot.querySelector("textarea").value = "";
84
+ });
85
+
86
+ const elAiChat = this.shadowRoot.querySelector("nx-ai-chat");
87
+
88
+ elAiChat.add("me", question);
89
+ elAiChat.add("ing", question);
90
+
91
+ try {
92
+ //
93
+ } catch (error) {
94
+ console.error(error);
95
+ //elAiChat.add("ai", error);
96
+ }
97
+
98
+
99
+ this.#ing = false;
100
+ }
101
+
102
+ #toggleCollapseHandler = () => {
103
+ this.classList.toggle("collapse");
104
+ };
105
+ }
106
+
107
+ customElements.define("nx-ide-assi", ideAssi);
package/src/index.js CHANGED
@@ -106,6 +106,9 @@ import "./ai/aiSettings.js";
106
106
  import "./ai/aiMessage.js";
107
107
  import "./ai/aiContainer.js";
108
108
 
109
+
110
+ import "./ide-assi/ideAssi.js";
111
+
109
112
  if (typeof window !== "undefined") {
110
113
  //window.ninegrid = window.NG = ninegrid;
111
114
  }