diff --git a/css/api_block/index.css b/css/api_block/index.css index 4360fab4..daa6f6a7 100644 --- a/css/api_block/index.css +++ b/css/api_block/index.css @@ -324,6 +324,7 @@ } .vp-block { position: relative; + min-width: 205px; min-height: 25px; z-index: 1; text-align: left; diff --git a/css/common/frameEditor.css b/css/common/frameEditor.css index fb3f5cc1..d4d67a18 100644 --- a/css/common/frameEditor.css +++ b/css/common/frameEditor.css @@ -53,7 +53,8 @@ grid-row-gap: 5px; /* grid-template-rows: 35px 30px 60% calc(40% - 80px); */ /* grid-template-rows: 35px 30px calc(100% - 80px); */ - grid-template-rows: 35px 65px calc(100% - 110px); + /* grid-template-rows: 35px 65px calc(100% - 110px); */ + grid-template-rows: 35px 65px 35px calc(100% - 145px); grid-template-columns: 100%; } @@ -93,6 +94,13 @@ cursor: pointer; margin-left: 5px; } +.vp-fe-toolbar { + border-top: 1px solid var(--border-gray-color); + padding-top: 5px; +} +.vp-fe-toolbar-item { + width: fit-content; +} .vp-fe-menu-box { position: absolute; top: 0; @@ -141,7 +149,7 @@ transform: translate(-50%, -50%); min-width: 400px; min-height: 150px; - width: 30%; + width: fit-content; height: fit-content; background-color: white; z-index: 200; diff --git a/src/api/functions/fileNaviCommand.py b/src/api/functions/fileNaviCommand.py index c538b376..52858a8d 100644 --- a/src/api/functions/fileNaviCommand.py +++ b/src/api/functions/fileNaviCommand.py @@ -56,7 +56,7 @@ def _vp_get_documents_path(): def _vp_sizeof_fmt(num, suffix='B'): """ - 파일크기 보기 좋게 변환해서 반환 + Return resized image """ for unit in ['','K','M','G','T','P','E','Z']: if abs(num) < 1024.0: @@ -66,7 +66,7 @@ def _vp_sizeof_fmt(num, suffix='B'): def _vp_search_path(path): """ - 경로 하위 폴더, 파일 조회 + Search child folder and file list under the given path """ import datetime as _dt _current = _vp_os.path.abspath(path) @@ -94,8 +94,20 @@ def _vp_search_path(path): def _vp_get_image_by_path(path): """ - 경로로 이미지 파일 받아오기 + Get image file by path """ from PIL import Image img = Image.open(path) - return img \ No newline at end of file + return img + +def _vp_get_relative_path(start, path): + """ + Get relative path using start path and current path + start: str + start path + path: str + current path + returns: str + current relative path + """ + return _vp_os.path.relpath(path, start) \ No newline at end of file diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js index 16d98620..7d216979 100644 --- a/src/api_block/blockContainer.js +++ b/src/api_block/blockContainer.js @@ -2649,7 +2649,7 @@ define([ this.hideOptionPreviewBox(); $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_PREVIEW_BUTTON).removeClass('enabled'); - this.setNavigator(BLOCK_CODELINE_TYPE.NONE, 'Visual Python 1.1.14'); + this.setNavigator(BLOCK_CODELINE_TYPE.NONE, 'Visual Python 1.1.15'); this.setFocusedPageType(FOCUSED_PAGE_TYPE.BOARD); $('.vp-apiblock-option-tab-none').css(STR_DISPLAY, STR_BLOCK); } diff --git a/src/api_block/index.html b/src/api_block/index.html index b3128cdf..11795e2e 100644 --- a/src/api_block/index.html +++ b/src/api_block/index.html @@ -120,7 +120,7 @@ id='vp_apiblock_option_page'>
- Visual Python 1.1.14 + Visual Python 1.1.15
diff --git a/src/common/component/vpMultiSelector.js b/src/common/component/vpMultiSelector.js index b01916fe..636e25da 100644 --- a/src/common/component/vpMultiSelector.js +++ b/src/common/component/vpMultiSelector.js @@ -233,8 +233,8 @@ define([ dataList && dataList.forEach((data, idx) => { // for column : data.array parsing var info = vpCommon.safeString(data.array); - if (info) { - info = data.value + ':\n'; + if (info && info != 'undefined') { + info = data.value + ':\n' + info; } else { info = ''; } diff --git a/src/common/constant.js b/src/common/constant.js index 499832fb..26bdf935 100644 --- a/src/common/constant.js +++ b/src/common/constant.js @@ -48,7 +48,7 @@ define ([ * toolbar btn properties */ const TOOLBAR_BTN_INFO = { - HELP: "Visual Python 1.1.14" + HELP: "Visual Python 1.1.15" // , ICON: "fa-angellist" , ICON: "vp-main-icon" , ID: "vpBtnToggle" diff --git a/src/common/vpBind.js b/src/common/vpBind.js index 2c7a0482..46499646 100644 --- a/src/common/vpBind.js +++ b/src/common/vpBind.js @@ -342,14 +342,14 @@ define([ page.appendFormatLine('
', 'vp-bd-type-box', 'merge', this.state.type=='merge'?'':'style="display: none;"'); // left dataframe page.appendLine('
'); - page.appendFormatLine('', 'vp_bdLeftDataframe', 'vp-orange-text wp100', 'Left Dataframe'); + page.appendFormatLine('', 'vp_bdLeftDataframe', 'vp-orange-text wp100', 'Left Data'); page.appendFormatLine(''); page.appendFormatLine('
', 'vp-bd-df-refresh', 'Refresh all dataframe list', '/nbextensions/visualpython/resource/refresh.svg'); page.appendLine('
'); // right dataframe page.appendLine('
'); - page.appendFormatLine('', 'vp_bdRightDataframe', 'vp-orange-text wp100', 'Right Dataframe'); + page.appendFormatLine('', 'vp_bdRightDataframe', 'vp-orange-text wp100', 'Right Data'); page.appendFormatLine(''); page.appendLine('
'); diff --git a/src/common/vpFrameEditor.js b/src/common/vpFrameEditor.js index e305b095..bde97f12 100644 --- a/src/common/vpFrameEditor.js +++ b/src/common/vpFrameEditor.js @@ -88,6 +88,7 @@ define([ SET_IDX: 7, RESET_IDX: 8, REPLACE: 9, + AS_TYPE: 10, ADD_COL: 97, ADD_ROW: 98, @@ -213,6 +214,15 @@ define([ }; } + // numpy.dtype or python type + this.astypeList = [ + 'datetime64', + 'int', 'int32', 'int64', + 'float', 'float64', + 'object', 'category', + 'bool', 'str' + ]; + this.codepreview = undefined; this.cmpreviewall = undefined; this.previewOpened = false; @@ -310,7 +320,12 @@ define([ page.appendFormatLine('', 'vp-input', 'vp_feReturn', 'Variable name'); page.appendLine('
'); page.appendLine('
'); - + page.appendFormatLine('
', 'vp-fe-toolbar'); + page.appendFormatLine('' + , 'vp-button vp-fe-toolbar-item', FRAME_EDIT_TYPE.ADD_COL, 'Add Column'); + page.appendFormatLine('' + , 'vp-button vp-fe-toolbar-item', FRAME_EDIT_TYPE.ADD_ROW, 'Add Row'); + page.appendLine('
'); // Table page.appendFormatLine('
', VP_FE_TABLE, 'no-selection'); @@ -368,18 +383,18 @@ define([ var page = new sb.StringBuilder(); // Menus page.appendFormatLine('