diff --git a/source/entryjs/api/2024-02-29-popup.md b/source/entryjs/api/2024-02-29-popup.md
index 36c46968..8f5cde82 100644
--- a/source/entryjs/api/2024-02-29-popup.md
+++ b/source/entryjs/api/2024-02-29-popup.md
@@ -52,6 +52,7 @@ updated: 2024-04-08
- [projects](#projects)
- [table](#table)
- [이벤트](#이벤트)
+ - [openManager 이벤트](#openManager-이벤트)
@@ -75,6 +76,17 @@ updated: 2024-04-08
+- [Entry제공 함수](#Entry제공-함수)
+ - [Entry.generateHash](#Entry-generateHash)
+ - [Entry.container.addObject](#Entry-container-addObject)
+ - [Entry.playground.addPicture](#Entry-playground-addPicture)
+ - [Entry.playground.addSound](#Entry-playground-addSound)
+ - [Entry.playground.addExpansionBlocks](#Entry-playground-addExpansionBlocks)
+ - [Entry.playground.removeExpansionBlocks](#Entry-playground-removeExpansionBlocks)
+ - [Entry.playground.dataTable.addSources](#Entry-playground-dataTable-addSources)
+
+
+
- [기타](#기타)
- [ListTool](#ListTool)
- [DataAnalytics](#DataAnalytics)
@@ -808,7 +820,7 @@ popup.on('submit', (expansionItems) => {
"isInitialized": false,
"api": "/api/expansionBlock/ko/festival",
"active": false
- // 이하 프로퍼티들은 확장블록별 공유의 프로퍼티입니다. 아래는 예시로써 '행사' 확장블록의 공유 프로퍼티입니다.
+ // 이하 프로퍼티들은 확장블록별 공유의 프로퍼티입니다. 아래는 예시로써 '행사' 확장블록의 공유 프로퍼티입니다.
"locationMap": {
"Seoul": {
"code": 1,
@@ -1383,6 +1395,66 @@ item 선택 해제시 발생하는 이벤트입니다.
+
+
+
+
+### openManager 이벤트
+
+엔트리 WS에서 '오브젝 추가하기', '모양 추가하기', '소리 추가하기'와 같은 버튼을 클릭하면 각 타입에 맞는 openManager 이벤트가 entryjs에서 발생합니다.
+
+각 타입에 맞는 Popup 창이 show되도록 이벤트 핸들링을 해주어야 합니다.
+
+````js
+// entryjs 초기화 이후
+import { Popup } from '@entrylabs/tool';
+const popup = new Popup({...});
+
+const addEventListener = Entry.addEventListener.bind(Entry);
+const removeAllEventListener = Entry.removeAllEventListener.bind(Entry);
+
+// '오브젝트 추가하기' 클릭시 dispatch
+removeAllEventListener('openSpriteManager');
+addEventListener('openSpriteManager', () => {
+ this.popup.show('sprite');
+});
+// '모양 추가하기' 클릭시 dispatch
+removeAllEventListener('openPictureManager');
+addEventListener('openPictureManager', () => {
+ this.popup.show('picture');
+});
+// '소리 추가하기' 클릭시 dispatch
+removeAllEventListener('openSoundManager');
+addEventListener('openSoundManager', () => {
+ this.popup.show('sound');
+});
+// '인공지능 블록 불러오기' 클릭시 dispatch
+removeAllEventListener('openAIUtilizeBlockManager');
+addEventListener('openAIUtilizeBlockManager', () => {
+ const blocks = this.popup.aiUtilizeBlocks;
+ this.popup.show('aiUtilize', blocks);
+});
+// '확장 블록 불러오기' 클릭시 dispatch
+removeAllEventListener('openExpansionBlockManager');
+addEventListener('openExpansionBlockManager', () => {
+ const blocks = this.popup.expansionBlocks;
+ this.popup.show('expansion', blocks);
+});
+// '모양 가져오기' 클릭시 dispatch
+removeAllEventListener('openPictureImport');
+addEventListener('openPictureImport', () => {
+ this.popup.show('paint');
+});
+````
+
+
+
+
+
+
+
+
+
## Widget
**이 문서는 작성중인 문서입니다.**
@@ -1421,7 +1493,121 @@ item 선택 해제시 발생하는 이벤트입니다.
-### 기타
+## Entry제공 함수
+이 문서의 예시코드에서 사용중인 Entry객체 하위 함수에 대해 기술합니다.
+이 단원에 작성된 내용은 추후 별도의 페이지로 통합 될 수 있습니다.
+
+
+
+### Entry.generateHash
+
+[소스원본](https://github.com/entrylabs/entryjs/blob/cd630e9b9fa41a5c7bfd76752d507d5b02be78cf/src/util/utils.js#L927)
+
+숫자와 알파벳으로 구성된 n자리 랜덤 해시값을 리턴합니다.
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------ | ------ | ------ | ----------------------------- |
+| length | number | ✔️ | 4 | 리턴할 해시값의 자릿수입니다. |
+
+Return : String
+
+
+
+### Entry.container.addObject
+
+[소스원본](https://github.com/entrylabs/entryjs/blob/cd630e9b9fa41a5c7bfd76752d507d5b02be78cf/src/class/container.js#L368)
+
+엔트리 WS에 오브젝트를 추가합니다.
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| ----------- | ------ | ------ | ------ | ------------------------------------------------------------ |
+| objectModel | Object | | | WS에 추가할 오브젝트 모델정보입니다. |
+| index | number | | | 삽입될 오브젝트의 인덱스입니다. 일반적으로 0값을 입력합니다. |
+
+Return : void
+
+
+
+### Entry.playground.addPicture
+
+[소스원본](https://github.com/entrylabs/entryjs/blob/015d78d3ec88c0b048088d4093fcffa00bb556cb/src/class/playground.js#L1245)
+
+엔트리WS에 모양(picture)을 추가합니다.
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | ------- | ------ | ------ | ------------------------------------------------------------ |
+| picture | Object | | | WS에 추가할 모양 정보입니다. |
+| isNew | boolean | ✔️ | false | 추가할 모양이 신규인지 여부를 나타냅니다.
이 값에따라 picture파라미터의 id값을 재사용할지 판단합니다. |
+| isSelect | boolean | ✔️ | true | 이 모양을 포함하는 오브젝트에서 이 모양을 선택하고 있는지 여부를 나타냅니다.
선택된 이미지는 오브젝트의 대표썸네일이 되며, 모양 탭에서 선택된 상태가 됩니다. |
+
+Return : void
+
+
+
+### Entry.playground.addSound
+
+[소스원본](https://github.com/entrylabs/entryjs/blob/015d78d3ec88c0b048088d4093fcffa00bb556cb/src/class/playground.js#L1500)
+
+엔트리 WS에 소리(sound)를 추가합니다.
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| ---------- | ------- | ------ | ------ | ------------------------------------------------------------ |
+| sound | Object | | | WS에 추가할 소리 정보입니다. |
+| NotForView | boolean | ✔️ | false | **현재 사용하지 않는 파라미터입니다.** |
+| isNew | boolean | ✔️ | false | 추가할 소리가 신규인지 여부를 나타냅니다.
이 값에따라 sound파라미터의 id값을 재사용할지 판단합니다. |
+| isSelect | boolean | ✔️ | true | |
+
+Return : void
+
+
+
+
+
+### Entry.playground.addExpansionBlocks
+
+[소스원본1](https://github.com/entrylabs/entryjs/blob/015d78d3ec88c0b048088d4093fcffa00bb556cb/src/class/playground.js#L1475) [소스원본2](https://github.com/entrylabs/entryjs/blob/015d78d3ec88c0b048088d4093fcffa00bb556cb/src/command/commands/object.js#L221)
+
+파라미터로 넘겨준 block들의 name값이 Entry.EXPANSION_BLOCK에 포함된 경우, 해당 블럭들을 초기화하고 WS에 노출시킵니다.
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| --------------- | -------------- | ------ | ------ | ------------------------- |
+| expansionBlocks | Array< Object> | | | 추가할 블록의 배열입니다. |
+
+Return : void
+
+
+
+### Entry.playground.removeExpansionBlocks
+
+[소스원본1](https://github.com/entrylabs/entryjs/blob/015d78d3ec88c0b048088d4093fcffa00bb556cb/src/class/playground.js#L1478) [소스원본2](https://github.com/entrylabs/entryjs/blob/015d78d3ec88c0b048088d4093fcffa00bb556cb/src/command/commands/object.js#L250)
+
+파라미터로 넘겨준 block들의 name값들을 기반으로 Entry.expansionBlocks에서 제거하고 해당 블럭들을 WS에서 미노출시킵니다.
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| --------------- | -------------- | ------ | ------ | ------------------------- |
+| expansionBlocks | Array< Object> | | | 제거할 블록을 배열입니다. |
+
+Return : void
+
+
+
+### Entry.playground.dataTable.addSources
+
+[소스원본](https://github.com/entrylabs/entryjs/blob/015d78d3ec88c0b048088d4093fcffa00bb556cb/src/class/DataTable.js#L119)
+
+엔트리 WS에 테이블 정보를 추가합니다.
+
+| 파라미터 | 타입 | 선택적 | 기본값 | 설명 |
+| -------- | --------------- | ------ | ------ | ------------------------------ |
+| tables | Array< Object > | ✔️ | [ ] | WS에 추가할 테이블 정보입니다. |
+
+Return : void
+
+
+
+
+
+## 기타
### ListTool
diff --git a/source/entryjs/api/2024-04-24-ml.md b/source/entryjs/api/2024-04-24-ml.md
index 077c3f3f..16fe4a0e 100644
--- a/source/entryjs/api/2024-04-24-ml.md
+++ b/source/entryjs/api/2024-04-24-ml.md
@@ -62,37 +62,28 @@ updated: 2024-05-22
-## ~~설치 및 세팅~~
-
-2024.04.30 기준 entrylabs/entry-ml 레포지토리가 추가되어 있지 않습니다. 추후 제공 예정입니다.
-
-### 패키지 매니저로 가져오기
-
-```bash
-# in package.json
-"dependencies": {
- # 접두사 dist/가 있는 브랜치는 빌드파일만 있는 브랜치입니다.
- "entry-ml": "git+https://github.com/entrylabs/entry-ml.git#dist/develop",
-}
-```
-
+## 설치 및 세팅
+2024.06.04 기준 entry-ml 레포지토지토리는 압축된 번들 파일로 제공됩니다.
+entry-ml 파일을 제공받는 방법에 대해서는 [엔트리 고객센터](help@playentry.org)로 문의 부탁드립니다.
+제공받은 압축파일을 해제하면 아래와 같은 구조로 되어 있습니다.
+아래의 파일들을 모두 같은 위치의 디렉토리에 두고 사용해야 합니다.
+- **entry-ml.css**, **entry-ml.js** : html에서 불러올 entry-ml의 메인 스크립트와 css파일입니다.
+- **313.css**, **313.js**, **549.css**, **549.js**, **869.js**, **933.js**, **khaiii.js** : entry-ml.js, entry-ml.css에서 동적으로 불러오는 js와 css파일입니다.
+- **libkhaiii.wasm** : khaiii.js에서 사용하는 wasm파일입니다.
+- **resources** : khaiii.js에서 사용하는 리소스가 포함된 디렉토리입니다.
### External JavaScript로 가져오기
html에서 script태그를 사용하여 번들js와 css파일을 불러와 사용할 수 있습니다.
+불러올 js와 css는 entry-ml.js와 entry-ml.css입니다.
```html
-# 설치경로에서 가져오기: node_modules
-
-
-
# 설치경로에서 가져오기: 직접 추가한 경우
-
```