ide-assi 0.373.0 → 0.375.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.
@@ -201852,352 +201852,10 @@ class IdeAssi extends HTMLElement
201852
201852
 
201853
201853
  this.shadowRoot.appendChild(document.createElement('ide-diff-popup'));
201854
201854
 
201855
- //setTimeout(() => {
201856
- const src1 = `
201857
- import React, { useRef, useEffect } from "react";
201858
- import { api, ai } from "ide-assi";
201859
- import ninegrid from "ninegrid2";
201860
-
201861
- const DocManager = () => {
201862
- const tabRef = useRef(null);
201863
- const gridRef = useRef(null);
201864
-
201865
- const selectList = async (params) => {
201866
- if (!gridRef.current) return;
201867
- gridRef.current.classList.add("loading");
201868
- api.post(\`/api/tmpl-a/doc-manager/selectList\`, params).then((res) => {
201869
- gridRef.current.data.source = res.list;
201870
- });
201871
- };
201872
-
201873
- const handleNaturalLanguageSearch = async () => {
201874
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
201875
- const searchText = searchTextElement ? searchTextElement.value : "";
201876
-
201877
- if (!gridRef.current) return;
201878
- gridRef.current.classList.add("loading");
201879
-
201880
- let params = {};
201881
- if (searchText) {
201882
- params = {
201883
- _whereClause: await ai.generateWhereCause(
201884
- "tmpla/DocManagerMapper.xml",
201885
- "selectList",
201886
- searchText,
201887
- import.meta.env.VITE_GEMINI_API_KEY
201888
- ),
201889
- };
201890
- }
201891
- selectList(params);
201892
- };
201893
-
201894
- const handleClassicSearch = () => {
201895
- if (!gridRef.current) return;
201896
- gridRef.current.classList.add("loading");
201897
-
201898
- const form2Element = ninegrid.querySelector(".form2", tabRef.current);
201899
- const params = form2Element ? form2Element.getData() : {};
201900
- selectList(params);
201901
- };
201902
-
201903
- useEffect(() => {
201904
- selectList({});
201905
-
201906
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
201907
- const searchButton = ninegrid.querySelector(".search", tabRef.current);
201908
-
201909
- const handleKeyDown = (e) => {
201910
- if (e.key === "Enter" && !e.isComposing) {
201911
- handleNaturalLanguageSearch();
201912
- }
201913
- };
201914
-
201915
- const handleClick = () => {
201916
- handleClassicSearch();
201917
- };
201918
-
201919
- if (searchTextElement) {
201920
- searchTextElement.addEventListener("keydown", handleKeyDown);
201921
- }
201922
- if (searchButton) {
201923
- searchButton.addEventListener("click", handleClick);
201924
- }
201925
-
201926
- return () => {
201927
- if (searchTextElement) {
201928
- searchTextElement.removeEventListener("keydown", handleKeyDown);
201929
- }
201930
- if (searchButton) {
201931
- searchButton.removeEventListener("click", handleClick);
201932
- }
201933
- };
201934
- }, []);
201935
-
201936
- return (
201937
- <div className="wrapper">
201938
- <nx-collapse target="nx-tab" className="search-collapse"></nx-collapse>
201939
- <div className="list-wrapper">
201940
- <nx-tab theme="theme-3" ref={tabRef}>
201941
- <nx-tab-page caption="자연어 검색">
201942
- <nx-form className="form1">
201943
- <input
201944
- type="text"
201945
- id="searchText"
201946
- name="searchText"
201947
- placeholder="자연어 검색어를 입력하세요 (ex: 작성자가 홍길동인 데이타를 찾아줘)"
201948
- />
201949
- </nx-form>
201950
- </nx-tab-page>
201951
- <nx-tab-page caption="클래식 검색">
201952
- <nx-form className="form2">
201953
- <label>문서명: <input type="text" name="docNm" /></label>
201954
- <label>매출액:
201955
- <input type="number" name="minAmt" placeholder="최소" /> ~
201956
- <input type="number" name="maxAmt" placeholder="최대" />
201957
- </label>
201958
- </nx-form>
201959
- <button className="search">검색</button>
201960
- </nx-tab-page>
201961
- </nx-tab>
201962
-
201963
- <div className="grid-wrapper">
201964
- <nine-grid
201965
- ref={gridRef}
201966
- caption="문서관리"
201967
- select-type="row"
201968
- show-title-bar="true"
201969
- show-menu-icon="true"
201970
- show-status-bar="true"
201971
- enable-fixed-col="true"
201972
- row-resizable="false"
201973
- col-movable="true"
201974
- >
201975
- <table>
201976
- <colgroup>
201977
- <col width="50" fixed="left" background-color="gray" />
201978
- <col width="100" />
201979
- <col width="100" />
201980
- <col width="200" />
201981
- <col width="120" />
201982
- <col width="100" />
201983
- <col width="150" />
201984
- <col width="150" />
201985
- </colgroup>
201986
- <thead>
201987
- <tr>
201988
- <th>No.</th>
201989
- <th>최종수정자</th>
201990
- <th>문서ID</th>
201991
- <th>문서명</th>
201992
- <th>매출액</th>
201993
- <th>최초등록자</th>
201994
- <th>최초등록일</th>
201995
- <th>최종수정일</th>
201996
- </tr>
201997
- </thead>
201998
- <tbody>
201999
- <tr>
202000
- <th><ng-row-indicator /></th>
202001
- <td data-bind="updateUser" text-align="center"></td>
202002
- <td data-bind="docId" text-align="center"></td>
202003
- <td data-bind="docNm" text-align="left"></td>
202004
- <td
202005
- data-bind="amt"
202006
- data-expr="data.amt.toLocaleString()"
202007
- text-align="right"
202008
- show-icon="true"
202009
- icon-type="sphere"
202010
- icon-color="data.amt >= 2000 ? 'red' : 'gray'"
202011
- ></td>
202012
- <td data-bind="insertUser" text-align="center"></td>
202013
- <td data-bind="insertDt" text-align="center"></td>
202014
- <td data-bind="updateDt" text-align="center"></td>
202015
- </tr>
202016
- </tbody>
202017
- </table>
202018
- </nine-grid>
202019
- </div>
202020
- </div>
202021
- </div>
202022
- );
202023
- };
202024
-
202025
- export default DocManager;
202026
- `;
202027
-
202028
- const src2 = `
202029
- import React, { useRef, useEffect } from "react";
202030
- import { api, ai } from "ide-assi";
202031
- import ninegrid from "ninegrid2";
202032
-
202033
- const DocManager = () => {
202034
- const tabRef = useRef(null);
202035
- const gridRef = useRef(null);
202036
-
202037
- const selectList = async (params) => {
202038
- if (!gridRef.current) return;
202039
- gridRef.current.classList.add("loading");
202040
- api.post(\`/api/tmpl-a/doc-manager/selectList\`, params).then((res) => {
202041
- gridRef.current.data.source = res.list;
202042
- });
202043
- };
202044
-
202045
- const handleNaturalLanguageSearch = async () => {
202046
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
202047
- const searchText = searchTextElement ? searchTextElement.value : "";
202048
-
202049
- if (!gridRef.current) return;
202050
- gridRef.current.classList.add("loading");
202051
-
202052
- let params = {};
202053
- if (searchText) {
202054
- params = {
202055
- _whereClause: await ai.generateWhereCause(
202056
- "tmpla/DocManagerMapper.xml",
202057
- "selectList",
202058
- searchText,
202059
- import.meta.env.VITE_GEMINI_API_KEY
202060
- ),
202061
- };
202062
- }
202063
- selectList(params);
202064
- };
202065
-
202066
- const handleClassicSearch = () => {
202067
- if (!gridRef.current) return;
202068
- gridRef.current.classList.add("loading");
202069
-
202070
- const form2Element = ninegrid.querySelector(".form2", tabRef.current);
202071
- const params = form2Element ? form2Element.getData() : {};
202072
- selectList(params);
202073
- };
201855
+ const src3 = 'asdfa asdfadf\nasdfa asdfadf\n';
201856
+ const src4 = '111 asdfadf\nasdfa asdfadf\n';
202074
201857
 
202075
- useEffect(() => {
202076
- selectList({});
202077
-
202078
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
202079
- const searchButton = ninegrid.querySelector(".search", tabRef.current);
202080
-
202081
- const handleKeyDown = (e) => {
202082
- if (e.key === "Enter" && !e.isComposing) {
202083
- handleNaturalLanguageSearch();
202084
- }
202085
- };
202086
-
202087
- const handleClick = () => {
202088
- handleClassicSearch();
202089
- };
202090
-
202091
- if (searchTextElement) {
202092
- searchTextElement.addEventListener("keydown", handleKeyDown);
202093
- }
202094
- if (searchButton) {
202095
- searchButton.addEventListener("click", handleClick);
202096
- }
202097
-
202098
- return () => {
202099
- if (searchTextElement) {
202100
- searchTextElement.removeEventListener("keydown", handleKeyDown);
202101
- }
202102
- if (searchButton) {
202103
- searchButton.removeEventListener("click", handleClick);
202104
- }
202105
- };
202106
- }, []);
202107
-
202108
- return (
202109
- <div className="wrapper">
202110
- <nx-collapse target="nx-tab" className="search-collapse"></nx-collapse>
202111
- <div className="list-wrapper">
202112
- <nx-tab theme="theme-3" ref={tabRef}>
202113
- <nx-tab-page caption="자연어 검색">
202114
- <nx-form className="form1">
202115
- <input
202116
- type="text"
202117
- id="searchText"
202118
- name="searchText"
202119
- placeholder="자연어 검색어를 입력하세요 (ex: 작성자가 홍길동인 데이타를 찾아줘)"
202120
- />
202121
- </nx-form>
202122
- </nx-tab-page>
202123
- <nx-tab-page caption="클래식 검색">
202124
- <nx-form className="form2">
202125
- <label>문서명: <input type="text" name="docNm" /></label>
202126
- <label>매출액:
202127
- <input type="number" name="minAmt" placeholder="최소" /> ~
202128
- <input type="number" name="maxAmt" placeholder="최대" />
202129
- </label>
202130
- </nx-form>
202131
- <button className="search">검색</button>
202132
- </nx-tab-page>
202133
- </nx-tab>
202134
-
202135
- <div className="grid-wrapper">
202136
- <nine-grid
202137
- ref={gridRef}
202138
- caption="매출 문서 관리"
202139
- select-type="row"
202140
- show-title-bar="true"
202141
- show-menu-icon="true"
202142
- show-status-bar="true"
202143
- enable-fixed-col="true"
202144
- row-resizable="false"
202145
- col-movable="true"
202146
- >
202147
- <table>
202148
- <colgroup>
202149
- <col width="50" fixed="left" background-color="gray" />
202150
- <col width="100" />
202151
- <col width="120" />
202152
- <col width="100" />
202153
- <col width="200" />
202154
- <col width="100" />
202155
- <col width="150" />
202156
- <col width="150" />
202157
- </colgroup>
202158
- <thead>
202159
- <tr>
202160
- <th>No.</th>
202161
- <th>문서ID</th>
202162
- <th>매출액</th>
202163
- <th>최종수정자</th>
202164
- <th>문서명</th>
202165
- <th>최초등록자</th>
202166
- <th>최초등록일</th>
202167
- <th>최종수정일</th>
202168
- </tr>
202169
- </thead>
202170
- <tbody>
202171
- <tr>
202172
- <th><ng-row-indicator /></th>
202173
- <td data-bind="docId" text-align="center"></td>
202174
- <td
202175
- data-bind="amt"
202176
- data-expr="data.amt.toLocaleString()"
202177
- text-align="right"
202178
- show-icon="true"
202179
- icon-type="sphere"
202180
- icon-color="data.amt >= 2000 ? 'red' : 'gray'"
202181
- ></td>
202182
- <td data-bind="updateUser" text-align="center"></td>
202183
- <td data-bind="docNm" text-align="left"></td>
202184
- <td data-bind="insertUser" text-align="center"></td>
202185
- <td data-bind="insertDt" text-align="center"></td>
202186
- <td data-bind="updateDt" text-align="center"></td>
202187
- </tr>
202188
- </tbody>
202189
- </table>
202190
- </nine-grid>
202191
- </div>
202192
- </div>
202193
- </div>
202194
- );
202195
- };
202196
-
202197
- export default DocManager;
202198
- `;
202199
-
202200
- this.shadowRoot.querySelector("ide-diff-popup").popup(src1, src2);
201858
+ this.shadowRoot.querySelector("ide-diff-popup").popup(src3, src4);
202201
201859
 
202202
201860
  return;
202203
201861
  }
@@ -234831,35 +234489,6 @@ class IdeDiff extends HTMLElement {
234831
234489
  /* ninegrid CSS 및 필요한 기본 스타일 (변동 없음) */
234832
234490
  @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideDiff.css";
234833
234491
  ${ninegrid.getCustomPath(this, "ideDiff.css")}
234834
-
234835
- /* CodeMirror를 위한 기본적인 Flexbox 레이아웃 (변동 없음) */
234836
- .wrapper {
234837
- display: flex;
234838
- width: 100%;
234839
- height: 100%;
234840
- overflow: hidden;
234841
- }
234842
- .panel {
234843
- flex: 1;
234844
- overflow: hidden;
234845
- min-width: 0;
234846
- }
234847
- .cm-editor {
234848
- height: 100%;
234849
- }
234850
-
234851
- /* Diff 시각화를 위한 CSS 클래스 (변동 없음) */
234852
- .cm-inserted-line-bg { background-color: #e6ffe6; }
234853
- .cm-deleted-line-bg { background-color: #ffe6e6; }
234854
- .cm-inserted-inline {
234855
- background-color: #90ee90;
234856
- font-weight: bold;
234857
- }
234858
- .cm-deleted-inline {
234859
- background-color: #ff9999;
234860
- text-decoration: line-through;
234861
- font-weight: bold;
234862
- }
234863
234492
  </style>
234864
234493
 
234865
234494
  <div class="wrapper">
@@ -235012,11 +234641,12 @@ class IdeDiff extends HTMLElement {
235012
234641
 
235013
234642
  switch (op) {
235014
234643
  case diffMatchPatchExports.diff_match_patch.DIFF_INSERT: // Added text
234644
+ /**
235015
234645
  tobeMarkDecos.push({
235016
234646
  from: tobeCursor,
235017
234647
  to: tobeCursor + len,
235018
234648
  deco: Decoration.mark({ class: "cm-inserted-inline" })
235019
- });
234649
+ }); */
235020
234650
 
235021
234651
  let currentTobeLineOffset = tobeCursor;
235022
234652
  const tobeLines = text.split('\n');
@@ -235039,11 +234669,12 @@ class IdeDiff extends HTMLElement {
235039
234669
  break;
235040
234670
 
235041
234671
  case diffMatchPatchExports.diff_match_patch.DIFF_DELETE: // Deleted text
234672
+ /**
235042
234673
  asisMarkDecos.push({
235043
234674
  from: asisCursor,
235044
234675
  to: asisCursor + len,
235045
234676
  deco: Decoration.mark({ class: "cm-deleted-inline" })
235046
- });
234677
+ }); */
235047
234678
 
235048
234679
  let currentAsisLineOffset = asisCursor;
235049
234680
  const asisLines = text.split('\n');
@@ -201848,352 +201848,10 @@ class IdeAssi extends HTMLElement
201848
201848
 
201849
201849
  this.shadowRoot.appendChild(document.createElement('ide-diff-popup'));
201850
201850
 
201851
- //setTimeout(() => {
201852
- const src1 = `
201853
- import React, { useRef, useEffect } from "react";
201854
- import { api, ai } from "ide-assi";
201855
- import ninegrid from "ninegrid2";
201856
-
201857
- const DocManager = () => {
201858
- const tabRef = useRef(null);
201859
- const gridRef = useRef(null);
201860
-
201861
- const selectList = async (params) => {
201862
- if (!gridRef.current) return;
201863
- gridRef.current.classList.add("loading");
201864
- api.post(\`/api/tmpl-a/doc-manager/selectList\`, params).then((res) => {
201865
- gridRef.current.data.source = res.list;
201866
- });
201867
- };
201868
-
201869
- const handleNaturalLanguageSearch = async () => {
201870
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
201871
- const searchText = searchTextElement ? searchTextElement.value : "";
201872
-
201873
- if (!gridRef.current) return;
201874
- gridRef.current.classList.add("loading");
201875
-
201876
- let params = {};
201877
- if (searchText) {
201878
- params = {
201879
- _whereClause: await ai.generateWhereCause(
201880
- "tmpla/DocManagerMapper.xml",
201881
- "selectList",
201882
- searchText,
201883
- import.meta.env.VITE_GEMINI_API_KEY
201884
- ),
201885
- };
201886
- }
201887
- selectList(params);
201888
- };
201889
-
201890
- const handleClassicSearch = () => {
201891
- if (!gridRef.current) return;
201892
- gridRef.current.classList.add("loading");
201893
-
201894
- const form2Element = ninegrid.querySelector(".form2", tabRef.current);
201895
- const params = form2Element ? form2Element.getData() : {};
201896
- selectList(params);
201897
- };
201898
-
201899
- useEffect(() => {
201900
- selectList({});
201901
-
201902
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
201903
- const searchButton = ninegrid.querySelector(".search", tabRef.current);
201904
-
201905
- const handleKeyDown = (e) => {
201906
- if (e.key === "Enter" && !e.isComposing) {
201907
- handleNaturalLanguageSearch();
201908
- }
201909
- };
201910
-
201911
- const handleClick = () => {
201912
- handleClassicSearch();
201913
- };
201914
-
201915
- if (searchTextElement) {
201916
- searchTextElement.addEventListener("keydown", handleKeyDown);
201917
- }
201918
- if (searchButton) {
201919
- searchButton.addEventListener("click", handleClick);
201920
- }
201921
-
201922
- return () => {
201923
- if (searchTextElement) {
201924
- searchTextElement.removeEventListener("keydown", handleKeyDown);
201925
- }
201926
- if (searchButton) {
201927
- searchButton.removeEventListener("click", handleClick);
201928
- }
201929
- };
201930
- }, []);
201931
-
201932
- return (
201933
- <div className="wrapper">
201934
- <nx-collapse target="nx-tab" className="search-collapse"></nx-collapse>
201935
- <div className="list-wrapper">
201936
- <nx-tab theme="theme-3" ref={tabRef}>
201937
- <nx-tab-page caption="자연어 검색">
201938
- <nx-form className="form1">
201939
- <input
201940
- type="text"
201941
- id="searchText"
201942
- name="searchText"
201943
- placeholder="자연어 검색어를 입력하세요 (ex: 작성자가 홍길동인 데이타를 찾아줘)"
201944
- />
201945
- </nx-form>
201946
- </nx-tab-page>
201947
- <nx-tab-page caption="클래식 검색">
201948
- <nx-form className="form2">
201949
- <label>문서명: <input type="text" name="docNm" /></label>
201950
- <label>매출액:
201951
- <input type="number" name="minAmt" placeholder="최소" /> ~
201952
- <input type="number" name="maxAmt" placeholder="최대" />
201953
- </label>
201954
- </nx-form>
201955
- <button className="search">검색</button>
201956
- </nx-tab-page>
201957
- </nx-tab>
201958
-
201959
- <div className="grid-wrapper">
201960
- <nine-grid
201961
- ref={gridRef}
201962
- caption="문서관리"
201963
- select-type="row"
201964
- show-title-bar="true"
201965
- show-menu-icon="true"
201966
- show-status-bar="true"
201967
- enable-fixed-col="true"
201968
- row-resizable="false"
201969
- col-movable="true"
201970
- >
201971
- <table>
201972
- <colgroup>
201973
- <col width="50" fixed="left" background-color="gray" />
201974
- <col width="100" />
201975
- <col width="100" />
201976
- <col width="200" />
201977
- <col width="120" />
201978
- <col width="100" />
201979
- <col width="150" />
201980
- <col width="150" />
201981
- </colgroup>
201982
- <thead>
201983
- <tr>
201984
- <th>No.</th>
201985
- <th>최종수정자</th>
201986
- <th>문서ID</th>
201987
- <th>문서명</th>
201988
- <th>매출액</th>
201989
- <th>최초등록자</th>
201990
- <th>최초등록일</th>
201991
- <th>최종수정일</th>
201992
- </tr>
201993
- </thead>
201994
- <tbody>
201995
- <tr>
201996
- <th><ng-row-indicator /></th>
201997
- <td data-bind="updateUser" text-align="center"></td>
201998
- <td data-bind="docId" text-align="center"></td>
201999
- <td data-bind="docNm" text-align="left"></td>
202000
- <td
202001
- data-bind="amt"
202002
- data-expr="data.amt.toLocaleString()"
202003
- text-align="right"
202004
- show-icon="true"
202005
- icon-type="sphere"
202006
- icon-color="data.amt >= 2000 ? 'red' : 'gray'"
202007
- ></td>
202008
- <td data-bind="insertUser" text-align="center"></td>
202009
- <td data-bind="insertDt" text-align="center"></td>
202010
- <td data-bind="updateDt" text-align="center"></td>
202011
- </tr>
202012
- </tbody>
202013
- </table>
202014
- </nine-grid>
202015
- </div>
202016
- </div>
202017
- </div>
202018
- );
202019
- };
202020
-
202021
- export default DocManager;
202022
- `;
202023
-
202024
- const src2 = `
202025
- import React, { useRef, useEffect } from "react";
202026
- import { api, ai } from "ide-assi";
202027
- import ninegrid from "ninegrid2";
202028
-
202029
- const DocManager = () => {
202030
- const tabRef = useRef(null);
202031
- const gridRef = useRef(null);
202032
-
202033
- const selectList = async (params) => {
202034
- if (!gridRef.current) return;
202035
- gridRef.current.classList.add("loading");
202036
- api.post(\`/api/tmpl-a/doc-manager/selectList\`, params).then((res) => {
202037
- gridRef.current.data.source = res.list;
202038
- });
202039
- };
202040
-
202041
- const handleNaturalLanguageSearch = async () => {
202042
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
202043
- const searchText = searchTextElement ? searchTextElement.value : "";
202044
-
202045
- if (!gridRef.current) return;
202046
- gridRef.current.classList.add("loading");
202047
-
202048
- let params = {};
202049
- if (searchText) {
202050
- params = {
202051
- _whereClause: await ai.generateWhereCause(
202052
- "tmpla/DocManagerMapper.xml",
202053
- "selectList",
202054
- searchText,
202055
- import.meta.env.VITE_GEMINI_API_KEY
202056
- ),
202057
- };
202058
- }
202059
- selectList(params);
202060
- };
202061
-
202062
- const handleClassicSearch = () => {
202063
- if (!gridRef.current) return;
202064
- gridRef.current.classList.add("loading");
202065
-
202066
- const form2Element = ninegrid.querySelector(".form2", tabRef.current);
202067
- const params = form2Element ? form2Element.getData() : {};
202068
- selectList(params);
202069
- };
201851
+ const src3 = 'asdfa asdfadf\nasdfa asdfadf\n';
201852
+ const src4 = '111 asdfadf\nasdfa asdfadf\n';
202070
201853
 
202071
- useEffect(() => {
202072
- selectList({});
202073
-
202074
- const searchTextElement = ninegrid.querySelector("#searchText", tabRef.current);
202075
- const searchButton = ninegrid.querySelector(".search", tabRef.current);
202076
-
202077
- const handleKeyDown = (e) => {
202078
- if (e.key === "Enter" && !e.isComposing) {
202079
- handleNaturalLanguageSearch();
202080
- }
202081
- };
202082
-
202083
- const handleClick = () => {
202084
- handleClassicSearch();
202085
- };
202086
-
202087
- if (searchTextElement) {
202088
- searchTextElement.addEventListener("keydown", handleKeyDown);
202089
- }
202090
- if (searchButton) {
202091
- searchButton.addEventListener("click", handleClick);
202092
- }
202093
-
202094
- return () => {
202095
- if (searchTextElement) {
202096
- searchTextElement.removeEventListener("keydown", handleKeyDown);
202097
- }
202098
- if (searchButton) {
202099
- searchButton.removeEventListener("click", handleClick);
202100
- }
202101
- };
202102
- }, []);
202103
-
202104
- return (
202105
- <div className="wrapper">
202106
- <nx-collapse target="nx-tab" className="search-collapse"></nx-collapse>
202107
- <div className="list-wrapper">
202108
- <nx-tab theme="theme-3" ref={tabRef}>
202109
- <nx-tab-page caption="자연어 검색">
202110
- <nx-form className="form1">
202111
- <input
202112
- type="text"
202113
- id="searchText"
202114
- name="searchText"
202115
- placeholder="자연어 검색어를 입력하세요 (ex: 작성자가 홍길동인 데이타를 찾아줘)"
202116
- />
202117
- </nx-form>
202118
- </nx-tab-page>
202119
- <nx-tab-page caption="클래식 검색">
202120
- <nx-form className="form2">
202121
- <label>문서명: <input type="text" name="docNm" /></label>
202122
- <label>매출액:
202123
- <input type="number" name="minAmt" placeholder="최소" /> ~
202124
- <input type="number" name="maxAmt" placeholder="최대" />
202125
- </label>
202126
- </nx-form>
202127
- <button className="search">검색</button>
202128
- </nx-tab-page>
202129
- </nx-tab>
202130
-
202131
- <div className="grid-wrapper">
202132
- <nine-grid
202133
- ref={gridRef}
202134
- caption="매출 문서 관리"
202135
- select-type="row"
202136
- show-title-bar="true"
202137
- show-menu-icon="true"
202138
- show-status-bar="true"
202139
- enable-fixed-col="true"
202140
- row-resizable="false"
202141
- col-movable="true"
202142
- >
202143
- <table>
202144
- <colgroup>
202145
- <col width="50" fixed="left" background-color="gray" />
202146
- <col width="100" />
202147
- <col width="120" />
202148
- <col width="100" />
202149
- <col width="200" />
202150
- <col width="100" />
202151
- <col width="150" />
202152
- <col width="150" />
202153
- </colgroup>
202154
- <thead>
202155
- <tr>
202156
- <th>No.</th>
202157
- <th>문서ID</th>
202158
- <th>매출액</th>
202159
- <th>최종수정자</th>
202160
- <th>문서명</th>
202161
- <th>최초등록자</th>
202162
- <th>최초등록일</th>
202163
- <th>최종수정일</th>
202164
- </tr>
202165
- </thead>
202166
- <tbody>
202167
- <tr>
202168
- <th><ng-row-indicator /></th>
202169
- <td data-bind="docId" text-align="center"></td>
202170
- <td
202171
- data-bind="amt"
202172
- data-expr="data.amt.toLocaleString()"
202173
- text-align="right"
202174
- show-icon="true"
202175
- icon-type="sphere"
202176
- icon-color="data.amt >= 2000 ? 'red' : 'gray'"
202177
- ></td>
202178
- <td data-bind="updateUser" text-align="center"></td>
202179
- <td data-bind="docNm" text-align="left"></td>
202180
- <td data-bind="insertUser" text-align="center"></td>
202181
- <td data-bind="insertDt" text-align="center"></td>
202182
- <td data-bind="updateDt" text-align="center"></td>
202183
- </tr>
202184
- </tbody>
202185
- </table>
202186
- </nine-grid>
202187
- </div>
202188
- </div>
202189
- </div>
202190
- );
202191
- };
202192
-
202193
- export default DocManager;
202194
- `;
202195
-
202196
- this.shadowRoot.querySelector("ide-diff-popup").popup(src1, src2);
201854
+ this.shadowRoot.querySelector("ide-diff-popup").popup(src3, src4);
202197
201855
 
202198
201856
  return;
202199
201857
  }
@@ -234827,35 +234485,6 @@ class IdeDiff extends HTMLElement {
234827
234485
  /* ninegrid CSS 및 필요한 기본 스타일 (변동 없음) */
234828
234486
  @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideDiff.css";
234829
234487
  ${ninegrid.getCustomPath(this, "ideDiff.css")}
234830
-
234831
- /* CodeMirror를 위한 기본적인 Flexbox 레이아웃 (변동 없음) */
234832
- .wrapper {
234833
- display: flex;
234834
- width: 100%;
234835
- height: 100%;
234836
- overflow: hidden;
234837
- }
234838
- .panel {
234839
- flex: 1;
234840
- overflow: hidden;
234841
- min-width: 0;
234842
- }
234843
- .cm-editor {
234844
- height: 100%;
234845
- }
234846
-
234847
- /* Diff 시각화를 위한 CSS 클래스 (변동 없음) */
234848
- .cm-inserted-line-bg { background-color: #e6ffe6; }
234849
- .cm-deleted-line-bg { background-color: #ffe6e6; }
234850
- .cm-inserted-inline {
234851
- background-color: #90ee90;
234852
- font-weight: bold;
234853
- }
234854
- .cm-deleted-inline {
234855
- background-color: #ff9999;
234856
- text-decoration: line-through;
234857
- font-weight: bold;
234858
- }
234859
234488
  </style>
234860
234489
 
234861
234490
  <div class="wrapper">
@@ -235008,11 +234637,12 @@ class IdeDiff extends HTMLElement {
235008
234637
 
235009
234638
  switch (op) {
235010
234639
  case diffMatchPatchExports.diff_match_patch.DIFF_INSERT: // Added text
234640
+ /**
235011
234641
  tobeMarkDecos.push({
235012
234642
  from: tobeCursor,
235013
234643
  to: tobeCursor + len,
235014
234644
  deco: Decoration.mark({ class: "cm-inserted-inline" })
235015
- });
234645
+ }); */
235016
234646
 
235017
234647
  let currentTobeLineOffset = tobeCursor;
235018
234648
  const tobeLines = text.split('\n');
@@ -235035,11 +234665,12 @@ class IdeDiff extends HTMLElement {
235035
234665
  break;
235036
234666
 
235037
234667
  case diffMatchPatchExports.diff_match_patch.DIFF_DELETE: // Deleted text
234668
+ /**
235038
234669
  asisMarkDecos.push({
235039
234670
  from: asisCursor,
235040
234671
  to: asisCursor + len,
235041
234672
  deco: Decoration.mark({ class: "cm-deleted-inline" })
235042
- });
234673
+ }); */
235043
234674
 
235044
234675
  let currentAsisLineOffset = asisCursor;
235045
234676
  const asisLines = text.split('\n');
@@ -467,7 +467,10 @@ const DocManager = () => {
467
467
  export default DocManager;
468
468
  `;
469
469
 
470
- this.shadowRoot.querySelector("ide-diff-popup").popup(src1, src2);
470
+ const src3 = 'asdfa asdfadf\nasdfa asdfadf\n';
471
+ const src4 = '111 asdfadf\nasdfa asdfadf\n';
472
+
473
+ this.shadowRoot.querySelector("ide-diff-popup").popup(src3, src4);
471
474
 
472
475
  return;
473
476
 
@@ -79,35 +79,6 @@ export class IdeDiff extends HTMLElement {
79
79
  /* ninegrid CSS 및 필요한 기본 스타일 (변동 없음) */
80
80
  @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideDiff.css";
81
81
  ${ninegrid.getCustomPath(this, "ideDiff.css")}
82
-
83
- /* CodeMirror를 위한 기본적인 Flexbox 레이아웃 (변동 없음) */
84
- .wrapper {
85
- display: flex;
86
- width: 100%;
87
- height: 100%;
88
- overflow: hidden;
89
- }
90
- .panel {
91
- flex: 1;
92
- overflow: hidden;
93
- min-width: 0;
94
- }
95
- .cm-editor {
96
- height: 100%;
97
- }
98
-
99
- /* Diff 시각화를 위한 CSS 클래스 (변동 없음) */
100
- .cm-inserted-line-bg { background-color: #e6ffe6; }
101
- .cm-deleted-line-bg { background-color: #ffe6e6; }
102
- .cm-inserted-inline {
103
- background-color: #90ee90;
104
- font-weight: bold;
105
- }
106
- .cm-deleted-inline {
107
- background-color: #ff9999;
108
- text-decoration: line-through;
109
- font-weight: bold;
110
- }
111
82
  </style>
112
83
 
113
84
  <div class="wrapper">
@@ -260,11 +231,12 @@ export class IdeDiff extends HTMLElement {
260
231
 
261
232
  switch (op) {
262
233
  case diff_match_patch.DIFF_INSERT: // Added text
234
+ /**
263
235
  tobeMarkDecos.push({
264
236
  from: tobeCursor,
265
237
  to: tobeCursor + len,
266
238
  deco: Decoration.mark({ class: "cm-inserted-inline" })
267
- });
239
+ }); */
268
240
 
269
241
  let currentTobeLineOffset = tobeCursor;
270
242
  const tobeLines = text.split('\n');
@@ -287,11 +259,12 @@ export class IdeDiff extends HTMLElement {
287
259
  break;
288
260
 
289
261
  case diff_match_patch.DIFF_DELETE: // Deleted text
262
+ /**
290
263
  asisMarkDecos.push({
291
264
  from: asisCursor,
292
265
  to: asisCursor + len,
293
266
  deco: Decoration.mark({ class: "cm-deleted-inline" })
294
- });
267
+ }); */
295
268
 
296
269
  let currentAsisLineOffset = asisCursor;
297
270
  const asisLines = text.split('\n');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ide-assi",
3
3
  "type": "module",
4
- "version": "0.373.0",
4
+ "version": "0.375.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -467,7 +467,10 @@ const DocManager = () => {
467
467
  export default DocManager;
468
468
  `;
469
469
 
470
- this.shadowRoot.querySelector("ide-diff-popup").popup(src1, src2);
470
+ const src3 = 'asdfa asdfadf\nasdfa asdfadf\n';
471
+ const src4 = '111 asdfadf\nasdfa asdfadf\n';
472
+
473
+ this.shadowRoot.querySelector("ide-diff-popup").popup(src3, src4);
471
474
 
472
475
  return;
473
476
 
@@ -79,35 +79,6 @@ export class IdeDiff extends HTMLElement {
79
79
  /* ninegrid CSS 및 필요한 기본 스타일 (변동 없음) */
80
80
  @import "https://cdn.jsdelivr.net/npm/ninegrid@${ninegrid.version}/dist/css/ideDiff.css";
81
81
  ${ninegrid.getCustomPath(this, "ideDiff.css")}
82
-
83
- /* CodeMirror를 위한 기본적인 Flexbox 레이아웃 (변동 없음) */
84
- .wrapper {
85
- display: flex;
86
- width: 100%;
87
- height: 100%;
88
- overflow: hidden;
89
- }
90
- .panel {
91
- flex: 1;
92
- overflow: hidden;
93
- min-width: 0;
94
- }
95
- .cm-editor {
96
- height: 100%;
97
- }
98
-
99
- /* Diff 시각화를 위한 CSS 클래스 (변동 없음) */
100
- .cm-inserted-line-bg { background-color: #e6ffe6; }
101
- .cm-deleted-line-bg { background-color: #ffe6e6; }
102
- .cm-inserted-inline {
103
- background-color: #90ee90;
104
- font-weight: bold;
105
- }
106
- .cm-deleted-inline {
107
- background-color: #ff9999;
108
- text-decoration: line-through;
109
- font-weight: bold;
110
- }
111
82
  </style>
112
83
 
113
84
  <div class="wrapper">
@@ -260,11 +231,12 @@ export class IdeDiff extends HTMLElement {
260
231
 
261
232
  switch (op) {
262
233
  case diff_match_patch.DIFF_INSERT: // Added text
234
+ /**
263
235
  tobeMarkDecos.push({
264
236
  from: tobeCursor,
265
237
  to: tobeCursor + len,
266
238
  deco: Decoration.mark({ class: "cm-inserted-inline" })
267
- });
239
+ }); */
268
240
 
269
241
  let currentTobeLineOffset = tobeCursor;
270
242
  const tobeLines = text.split('\n');
@@ -287,11 +259,12 @@ export class IdeDiff extends HTMLElement {
287
259
  break;
288
260
 
289
261
  case diff_match_patch.DIFF_DELETE: // Deleted text
262
+ /**
290
263
  asisMarkDecos.push({
291
264
  from: asisCursor,
292
265
  to: asisCursor + len,
293
266
  deco: Decoration.mark({ class: "cm-deleted-inline" })
294
- });
267
+ }); */
295
268
 
296
269
  let currentAsisLineOffset = asisCursor;
297
270
  const asisLines = text.split('\n');