@things-factory/meta-ui 7.0.1-alpha.1 → 7.0.1-alpha.11
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.
- package/client/actions/main.js +14 -20
- package/client/bootstrap.ts +13 -6
- package/client/component/grist/renderer/grist-renderer-meta-object-selector.js +18 -13
- package/client/pages/entity/config-entity.js +180 -112
- package/client/pages/entity/main-menu-selector.js +85 -84
- package/client/pages/history/history-copy-list-popup.js +33 -45
- package/client/pages/history/history-json-list-popup.js +38 -50
- package/client/pages/menu/dynamic-menu-template.js +1 -1
- package/client/pages/menu/dynamic-menu.js +137 -121
- package/client/pages/menu/export-menu-popup.js +210 -218
- package/client/pages/personalize/personal-column-selector.js +112 -122
- package/client/utils/meta-ui-util.js +0 -4
- package/client/utils/service-util.js +4 -4
- package/client/utils/terms-util.js +41 -42
- package/client/utils/ui-util.js +2 -5
- package/client/viewparts/dynamic-menu-part.js +7 -28
- package/dist-client/actions/main.js +6 -5
- package/dist-client/actions/main.js.map +1 -1
- package/dist-client/bootstrap.d.ts +4 -1
- package/dist-client/bootstrap.js +12 -6
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-code-input.d.ts +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-code-selector.d.ts +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.d.ts +1 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js +9 -3
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js.map +1 -1
- package/dist-client/component/popup/code-input-editor-popup.d.ts +1 -1
- package/dist-client/component/popup/meta-object-selector-popup.d.ts +1 -1
- package/dist-client/component/popup/record-based-code-editor-popup.d.ts +1 -1
- package/dist-client/mixin/meta-basic-grist-mixin.d.ts +1 -1
- package/dist-client/pages/activity/meta-activity-viewer-element.d.ts +1 -1
- package/dist-client/pages/activity/meta-activity-writer-element.d.ts +1 -1
- package/dist-client/pages/button-role/button-role-detail.d.ts +1 -1
- package/dist-client/pages/entity/config-entity.js +131 -62
- package/dist-client/pages/entity/config-entity.js.map +1 -1
- package/dist-client/pages/entity/main-menu-selector.d.ts +1 -1
- package/dist-client/pages/entity/main-menu-selector.js +74 -73
- package/dist-client/pages/entity/main-menu-selector.js.map +1 -1
- package/dist-client/pages/history/history-copy-list-popup.d.ts +1 -1
- package/dist-client/pages/history/history-copy-list-popup.js +14 -26
- package/dist-client/pages/history/history-copy-list-popup.js.map +1 -1
- package/dist-client/pages/history/history-json-list-popup.d.ts +5 -5
- package/dist-client/pages/history/history-json-list-popup.js +19 -31
- package/dist-client/pages/history/history-json-list-popup.js.map +1 -1
- package/dist-client/pages/menu/dynamic-menu-setting-let.d.ts +1 -1
- package/dist-client/pages/menu/dynamic-menu-template.js +1 -1
- package/dist-client/pages/menu/dynamic-menu-template.js.map +1 -1
- package/dist-client/pages/menu/dynamic-menu.js +68 -48
- package/dist-client/pages/menu/dynamic-menu.js.map +1 -1
- package/dist-client/pages/menu/export-menu-popup.d.ts +5 -5
- package/dist-client/pages/menu/export-menu-popup.js +50 -54
- package/dist-client/pages/menu/export-menu-popup.js.map +1 -1
- package/dist-client/pages/meta-grist-element.d.ts +1 -1
- package/dist-client/pages/meta-grist-page.d.ts +1 -1
- package/dist-client/pages/personalize/personal-column-selector.d.ts +1 -1
- package/dist-client/pages/personalize/personal-column-selector.js +76 -84
- package/dist-client/pages/personalize/personal-column-selector.js.map +1 -1
- package/dist-client/pages/work-code/work-code-detail-popup.d.ts +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/utils/meta-ui-util.js +0 -3
- package/dist-client/utils/meta-ui-util.js.map +1 -1
- package/dist-client/utils/service-util.js +4 -4
- package/dist-client/utils/service-util.js.map +1 -1
- package/dist-client/utils/terms-util.d.ts +13 -13
- package/dist-client/utils/terms-util.js +10 -12
- package/dist-client/utils/terms-util.js.map +1 -1
- package/dist-client/utils/ui-util.js +1 -4
- package/dist-client/utils/ui-util.js.map +1 -1
- package/dist-client/viewparts/dynamic-menu-part.d.ts +1 -1
- package/dist-client/viewparts/dynamic-menu-part.js +7 -26
- package/dist-client/viewparts/dynamic-menu-part.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
- package/client/viewparts/dynamic-menu-landscape-styles.js +0 -149
- package/client/viewparts/dynamic-menu-landscape.js +0 -106
- package/client/viewparts/dynamic-menu-portrait-styles.js +0 -130
- package/client/viewparts/dynamic-menu-portrait.js +0 -90
- package/client/viewparts/dynamic-top-menu-bar.js +0 -148
- package/dist-client/viewparts/dynamic-menu-landscape-styles.d.ts +0 -1
- package/dist-client/viewparts/dynamic-menu-landscape-styles.js +0 -149
- package/dist-client/viewparts/dynamic-menu-landscape-styles.js.map +0 -1
- package/dist-client/viewparts/dynamic-menu-landscape.d.ts +0 -21
- package/dist-client/viewparts/dynamic-menu-landscape.js +0 -87
- package/dist-client/viewparts/dynamic-menu-landscape.js.map +0 -1
- package/dist-client/viewparts/dynamic-menu-portrait-styles.d.ts +0 -1
- package/dist-client/viewparts/dynamic-menu-portrait-styles.js +0 -130
- package/dist-client/viewparts/dynamic-menu-portrait-styles.js.map +0 -1
- package/dist-client/viewparts/dynamic-menu-portrait.d.ts +0 -13
- package/dist-client/viewparts/dynamic-menu-portrait.js +0 -74
- package/dist-client/viewparts/dynamic-menu-portrait.js.map +0 -1
- package/dist-client/viewparts/dynamic-top-menu-bar.d.ts +0 -27
- package/dist-client/viewparts/dynamic-top-menu-bar.js +0 -133
- package/dist-client/viewparts/dynamic-top-menu-bar.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-util.js","sourceRoot":"","sources":["../../client/utils/ui-util.js"],"names":[],"mappings":"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","sourcesContent":["import { store, CustomAlert, navigate } from '@things-factory/shell'\n\nimport { openPopup } from '@operato/layout'\nimport { closePopup } from '@operato/popup'\nimport { isMobileDevice } from '@operato/utils'\nimport { getEditor } from '@operato/data-grist'\n\nimport { TermsUtil } from './terms-util'\nimport { ValueUtil } from './value-util'\nimport { MetaUiUtil } from './meta-ui-util'\n\n/**\n * @license\n * Copyright © HatioLab Inc. All rights reserved.\n * @author Shortstop <shortstop@hatiolab.com>\n * @description UI 관련 유틸리티 함수 정의\n */\nexport class UiUtil {\n /**\n * @description 현재 디바이스가 모바일 장비인지 체크\n **************************************\n * @returns {Boolean} 모바일 장비 여부\n */\n static isMobileEnv() {\n return isMobileDevice()\n }\n\n /**\n * @description 현재 로케일 정보 리턴\n **************************************\n * @returns {String} 현재 브라우저의 로케일 정보\n */\n static currentLocale() {\n let cookie = document.cookie\n cookie = cookie.substring(cookie.indexOf('i18next'))\n if (cookie.indexOf(';') > -1) {\n cookie = cookie.substring(0, cookie.indexOf(';'))\n }\n cookie = cookie.replace('i18next=', '')\n if (cookie == 'ko') return 'ko-KR'\n else return cookie\n }\n\n /**\n * @description 최종 애플리케이션 모듈 정보 리턴\n *****************************************\n * @returns {Object} 최종 애플리케이션 모듈\n */\n static getApplicationModuleInfo() {\n let modules = store.getState().app.modules\n return modules[modules.length - 1]\n }\n\n /**\n * @description 현재 액티브 된 화면의 라우팅 정보\n **************************************\n * @returns {String} 현재 액티브 된 화면의 라우팅 정보\n */\n static currentRouting() {\n return store.getState().route.page\n }\n\n /**\n * @description popup 닫기\n ************************\n * @param {HTML} popup\n */\n static closePopupBy(popup) {\n closePopup(popup)\n }\n\n /**\n * @description 오픈하고자 하는 엘리먼트를 받아 팝업 오픈\n *************************************************\n * @param {String} popupTitle 팝업 타이틀\n * @param {String} popupSize 팝업 사이즈 ex) 'large', 'medium', 'small'\n * @param {String} element 팝업에 표시할 엘리먼트\n * @param {Boolean} backdrop 백드롭 여부\n * @returns {Object} popup\n */\n static openPopupByElement(popupTitle, popupSize, element, backdrop) {\n if (popupSize === 'full') {\n element.style.height = '95dvh'\n }\n\n return openPopup(element, {\n backdrop: true,\n hovering: popupSize === 'full' ? 'edge' : 'center',\n size: popupSize === 'full' ? 'large' : popupSize,\n title: popupTitle,\n backdrop: backdrop\n })\n }\n\n /**\n * @description popupConfig에 포함된 element 정보를 이용해 팝업을 연다\n **************************************************************\n * @param {String} title 팝업 타이틀\n * @param {Object} popupConfig 팝업 구성을 위한 설정 정보 ex) { module: '', location: '', tagname: '', size : '', popup_field: '', parent_field: ''}\n * @param {Object} paramData 팝업에 넘겨 줄 파라미터\n * @param {Function} popupCloseCallback 팝업 닫을 때 실행되기 위한 콜백 함수\n */\n static async openDynamicPopup(title, popupConfig, paramData, popupCloseCallback) {\n // 부모 필드\n let parentValue = ValueUtil.isNotEmpty(popupConfig.parent_field)\n ? ValueUtil.getParams(paramData, ...popupConfig.parent_field.split('.'))\n : undefined\n\n // 팝업 엘리먼트 생성\n let htmlText = `<${popupConfig.tagname} route_name='${popupConfig.menu}' parent_id='${parentValue}' is_popup=true></${popupConfig.tagname}>`\n let htmlElements = UiUtil.htmlToElement(htmlText)\n htmlElements.config = popupConfig\n\n // 파라미터 설정\n if (ValueUtil.isNotEmpty(popupConfig.popup_field)) {\n htmlElements[popupConfig.popup_field] = paramData\n }\n\n // 팝업 오픈\n let popup = UiUtil.openPopupByElement(title, popupConfig.size, htmlElements, true)\n\n // 팝업 클로즈 핸들러\n if (popupCloseCallback) {\n popup.onclosed = popupCloseCallback\n }\n }\n\n /**\n * @description tagname, routing으로 커스텀 엘리먼트 생성\n ****************************************************\n * @param {String} tagname 팝업에 포함할 태그 명\n * @param {String} routing 라우팅\n * @returns {HTMLElement} 커스텀 엘리먼트\n */\n static createCustomElement(tagname, routing) {\n let htmlStr = `<${tagname} route_name='${routing}'></${tagname}>`\n return UiUtil.htmlToElement(htmlStr)\n }\n\n /**\n * @description HTML 문자열을 elements로 변환\n **************************************\n * @param {String} htmlString html 문자열\n * @returns {HTMLElement} 커스텀 엘리먼트\n */\n static htmlToElement(htmlString) {\n var template = document.createElement('template')\n template.innerHTML = htmlString\n var elements = template.content.childNodes\n var element = elements[0]\n template.content.removeChild(element)\n return element\n }\n\n /**\n * @description 페이지 이동\n **************************************\n * @param {String} url 페이지 URL (route 값)\n * @param {Object} params 페이지 파라미터, null 가능\n */\n static pageNavigate(url, params) {\n let paramStr = params ? '?' : ''\n\n if (params) {\n paramStr += 'pass=' + JSON.stringify(params)\n }\n\n navigate(`${url}${paramStr}`)\n }\n\n /**\n * @description store의 정보 추출\n ****************************************************\n * @param {String} accessor1 스토어 액세서 1, 빈 값 가능\n * @param {String} accessor2 스토어 액세서 2, 빈 값 가능\n * @param {String} accessor3 스토어 액세서 3, 빈 값 가능\n * @returns {Object} store 정보\n */\n static getStore(accessor1, accessor2, accessor3) {\n let store = store.getState()\n\n if (accessor1 && accessor2 && accessor3) {\n return store[accessor1][accessor2][accessor3]\n } else if (accessor1 && accessor2) {\n return store[accessor1][accessor2]\n } else if (accessor1) {\n return store[accessor1]\n } else {\n return store\n }\n }\n\n /**\n * @description 커스텀 이벤트 전파\n *************************************\n * @param {String} eventName 이벤트 이름\n * @param {Object} eventDetail 이벤트 상세 정보\n */\n static fireCustomEvent(eventName, eventDetail) {\n document.dispatchEvent(\n new CustomEvent(eventName, {\n detail: eventDetail\n })\n )\n }\n\n /**\n * @description 토스트 메시지 표시\n *************************************\n * @param {String} type 토스트 타입\n * @param {String} message 메시지\n */\n static showToast(type, message) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: { type, message }\n })\n )\n }\n\n /**\n * @description Alert 메시지 창 표시\n *************************************\n * @param {String} titleCode Alert 제목 표시를 위한 용어 이름, 예) title.confirm\n * @param {String} textCode Alert 텍스트 표시를 위한 용어 이름 예) text.are_you_sure\n * @param {String} type Alert 창 유형 - info, error, warning ...\n * @param {String} confirmButtonCode 확인 버튼 표시를 위한 용어 이름 예) confirm\n * @param {String} cancelButtonCode 취소 버튼 표시를 위한 용어 이름 예) cancel\n * @returns {Object} Alert 팝업\n */\n static async showAlertPopup(titleCode, textCode, type, confirmButtonCode, cancelButtonCode) {\n let popupTitle = TermsUtil.t(titleCode) || titleCode\n let popupText = TermsUtil.t(textCode) || textCode\n let alert = { title: popupTitle, text: popupText }\n\n if (type) {\n alert['type'] = type\n }\n\n if (confirmButtonCode) {\n alert['confirmButton'] = TermsUtil.tButton(confirmButtonCode)\n }\n\n if (cancelButtonCode) {\n alert['cancelButton'] = TermsUtil.tButton(cancelButtonCode)\n }\n\n return await CustomAlert(alert)\n }\n\n /**\n * @description 필터 폼 내의 에디터들이 가지고 있는 값을 키-값 형태로 추출\n *******************************************************\n * @param {Object} filterForm 그리드 필터 폼\n * @returns {Object} 필터 폼 내의 에디터들이 가지고 있는 값을 키-값 형태로 추출\n */\n static getFilterFormData(filterForm) {\n let formValues = {};\n\n if (ValueUtil.isNotEmpty(filterForm)) {\n let filters = filterForm.filters()\n\n if (ValueUtil.isNotEmpty(filters)) {\n filters.forEach(f => {\n if (ValueUtil.isNotEmpty(f.value)) {\n item[f.name] = f.value ? f.value : null\n }\n })\n }\n }\n\n return formValues\n }\n\n /**\n * @description name으로 필터 폼 내 에디터를 찾아 값을 셋팅\n *****************************************************\n * @param {Object} filterForm 그리스트 필터 폼\n * @param {String} name 그리스트 필터 폼 내 에디터의 이름\n * @param {Object} value 설정할 값\n */\n static setSearchFormEditorValue(filterForm, name, value) {\n if (ValueUtil.isNotEmpty(filterForm)) {\n let editor = filterForm.renderRoot?.querySelector(`[name='${name}']`)\n\n if (ValueUtil.isNotEmpty(editor)) {\n editor.value = value\n }\n }\n }\n\n /**\n * @description 파라미터를 기준으로 유형에 맞는 에디터를 생성한다.\n ******************************************************\n * @param {String} editorType 에디터 유형\n * @param {Object} column 컬럼 Object\n * @param {Object} record 레코드 Object\n * @param {Number} rowIndex 추가할 열 Index\n * @returns {HTMLElement} HTML 에디터\n */\n static createEditorHtml(editorType, column, record, rowIndex) {\n return getEditor(editorType)('', column, record, rowIndex, {})\n }\n\n /**\n * @description 에디터에 값을 설정한다.\n *********************************\n * @param {Object} editor 에디터\n * @param {String} newValue 설정할 값\n */\n static setValueToEditor(editor, newValue) {\n let input = UiUtil.getLeafInput(editor)\n input.value = newValue\n }\n\n /**\n * @description 엘리먼트 내 최 하단 Input Element를 추출\n ************************************************\n * @param {Object} editor 에디터\n * @returns {HTMLElement} 엘리먼트 내 최 하단 Input Element\n */\n static getLeafInput(editor) {\n let editorType = editor.getType()\n\n if (editorType == 'code-editor') {\n return editor.renderRoot.querySelector('ox-input-code')\n } else if (editorType == 'textarea') {\n return editor.renderRoot.querySelector('textarea')\n } else if (editorType == 'select-combo') {\n return editor.renderRoot.querySelector('ox-select').firstElementChild\n } else if (editorType == 'barcode') {\n return editor.renderRoot.querySelector('ox-input-barcode').renderRoot.querySelector('input')\n } else {\n return editor.renderRoot.firstElementChild.editor\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ui-util.js","sourceRoot":"","sources":["../../client/utils/ui-util.js"],"names":[],"mappings":"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","sourcesContent":["import { store, CustomAlert, navigate } from '@things-factory/shell'\n\nimport { openPopup } from '@operato/layout'\nimport { closePopup } from '@operato/popup'\nimport { isMobileDevice } from '@operato/utils'\nimport { getEditor } from '@operato/data-grist'\n\nimport { TermsUtil } from './terms-util'\nimport { ValueUtil } from './value-util'\n\n/**\n * @license\n * Copyright © HatioLab Inc. All rights reserved.\n * @author Shortstop <shortstop@hatiolab.com>\n * @description UI 관련 유틸리티 함수 정의\n */\nexport class UiUtil {\n /**\n * @description 현재 디바이스가 모바일 장비인지 체크\n **************************************\n * @returns {Boolean} 모바일 장비 여부\n */\n static isMobileEnv() {\n return isMobileDevice()\n }\n\n /**\n * @description 현재 로케일 정보 리턴\n **************************************\n * @returns {String} 현재 브라우저의 로케일 정보\n */\n static currentLocale() {\n let cookie = document.cookie\n cookie = cookie.substring(cookie.indexOf('i18next'))\n if (cookie.indexOf(';') > -1) {\n cookie = cookie.substring(0, cookie.indexOf(';'))\n }\n cookie = cookie.replace('i18next=', '')\n if (cookie == 'ko') return 'ko-KR'\n else return cookie\n }\n\n /**\n * @description 최종 애플리케이션 모듈 정보 리턴\n *****************************************\n * @returns {Object} 최종 애플리케이션 모듈\n */\n static getApplicationModuleInfo() {\n let modules = store.getState().app.modules\n return modules[modules.length - 1]\n }\n\n /**\n * @description 현재 액티브 된 화면의 라우팅 정보\n **************************************\n * @returns {String} 현재 액티브 된 화면의 라우팅 정보\n */\n static currentRouting() {\n return store.getState().route.page\n }\n\n /**\n * @description popup 닫기\n ************************\n * @param {HTML} popup\n */\n static closePopupBy(popup) {\n closePopup(popup)\n }\n\n /**\n * @description 오픈하고자 하는 엘리먼트를 받아 팝업 오픈\n *************************************************\n * @param {String} popupTitle 팝업 타이틀\n * @param {String} popupSize 팝업 사이즈 ex) 'large', 'medium', 'small'\n * @param {String} element 팝업에 표시할 엘리먼트\n * @param {Boolean} backdrop 백드롭 여부\n * @returns {Object} popup\n */\n static openPopupByElement(popupTitle, popupSize, element, backdrop) {\n if (popupSize === 'full') {\n element.style.height = '95dvh'\n }\n\n return openPopup(element, {\n backdrop: true,\n hovering: popupSize === 'full' ? 'edge' : 'center',\n size: popupSize === 'full' ? 'large' : popupSize,\n title: popupTitle,\n backdrop: backdrop\n })\n }\n\n /**\n * @description popupConfig에 포함된 element 정보를 이용해 팝업을 연다\n **************************************************************\n * @param {String} title 팝업 타이틀\n * @param {Object} popupConfig 팝업 구성을 위한 설정 정보 ex) { module: '', location: '', tagname: '', size : '', popup_field: '', parent_field: ''}\n * @param {Object} paramData 팝업에 넘겨 줄 파라미터\n * @param {Function} popupCloseCallback 팝업 닫을 때 실행되기 위한 콜백 함수\n */\n static async openDynamicPopup(title, popupConfig, paramData, popupCloseCallback) {\n // 부모 필드\n let parentValue = ValueUtil.isNotEmpty(popupConfig.parent_field) ? ValueUtil.getParams(paramData, ...popupConfig.parent_field.split('.')) : undefined\n\n // 팝업 엘리먼트 생성\n let htmlText = `<${popupConfig.tagname} route_name='${popupConfig.menu}' parent_id='${parentValue}' is_popup=true></${popupConfig.tagname}>`\n let htmlElements = UiUtil.htmlToElement(htmlText)\n htmlElements.config = popupConfig\n\n // 파라미터 설정\n if (ValueUtil.isNotEmpty(popupConfig.popup_field)) {\n htmlElements[popupConfig.popup_field] = paramData\n }\n\n // 팝업 오픈\n let popup = UiUtil.openPopupByElement(title, popupConfig.size, htmlElements, true)\n\n // 팝업 클로즈 핸들러\n if (popupCloseCallback) {\n popup.onclosed = popupCloseCallback\n }\n }\n\n /**\n * @description tagname, routing으로 커스텀 엘리먼트 생성\n ****************************************************\n * @param {String} tagname 팝업에 포함할 태그 명\n * @param {String} routing 라우팅\n * @returns {HTMLElement} 커스텀 엘리먼트\n */\n static createCustomElement(tagname, routing) {\n let htmlStr = `<${tagname} route_name='${routing}'></${tagname}>`\n return UiUtil.htmlToElement(htmlStr)\n }\n\n /**\n * @description HTML 문자열을 elements로 변환\n **************************************\n * @param {String} htmlString html 문자열\n * @returns {HTMLElement} 커스텀 엘리먼트\n */\n static htmlToElement(htmlString) {\n var template = document.createElement('template')\n template.innerHTML = htmlString\n var elements = template.content.childNodes\n var element = elements[0]\n template.content.removeChild(element)\n return element\n }\n\n /**\n * @description 페이지 이동\n **************************************\n * @param {String} url 페이지 URL (route 값)\n * @param {Object} params 페이지 파라미터, null 가능\n */\n static pageNavigate(url, params) {\n let paramStr = params ? '?' : ''\n\n if (params) {\n paramStr += 'pass=' + JSON.stringify(params)\n }\n\n navigate(`${url}${paramStr}`)\n }\n\n /**\n * @description store의 정보 추출\n ****************************************************\n * @param {String} accessor1 스토어 액세서 1, 빈 값 가능\n * @param {String} accessor2 스토어 액세서 2, 빈 값 가능\n * @param {String} accessor3 스토어 액세서 3, 빈 값 가능\n * @returns {Object} store 정보\n */\n static getStore(accessor1, accessor2, accessor3) {\n let store = store.getState()\n\n if (accessor1 && accessor2 && accessor3) {\n return store[accessor1][accessor2][accessor3]\n } else if (accessor1 && accessor2) {\n return store[accessor1][accessor2]\n } else if (accessor1) {\n return store[accessor1]\n } else {\n return store\n }\n }\n\n /**\n * @description 커스텀 이벤트 전파\n *************************************\n * @param {String} eventName 이벤트 이름\n * @param {Object} eventDetail 이벤트 상세 정보\n */\n static fireCustomEvent(eventName, eventDetail) {\n document.dispatchEvent(\n new CustomEvent(eventName, {\n detail: eventDetail\n })\n )\n }\n\n /**\n * @description 토스트 메시지 표시\n *************************************\n * @param {String} type 토스트 타입\n * @param {String} message 메시지\n */\n static showToast(type, message) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: { type, message }\n })\n )\n }\n\n /**\n * @description Alert 메시지 창 표시\n *************************************\n * @param {String} titleCode Alert 제목 표시를 위한 용어 이름, 예) title.confirm\n * @param {String} textCode Alert 텍스트 표시를 위한 용어 이름 예) text.are_you_sure\n * @param {String} type Alert 창 유형 - info, error, warning ...\n * @param {String} confirmButtonCode 확인 버튼 표시를 위한 용어 이름 예) confirm\n * @param {String} cancelButtonCode 취소 버튼 표시를 위한 용어 이름 예) cancel\n * @returns {Object} Alert 팝업\n */\n static async showAlertPopup(titleCode, textCode, type, confirmButtonCode, cancelButtonCode) {\n let popupTitle = TermsUtil.t(titleCode) || titleCode\n let popupText = TermsUtil.t(textCode) || textCode\n let alert = { title: popupTitle, text: popupText }\n\n if (type) {\n alert['type'] = type\n }\n\n if (confirmButtonCode) {\n alert['confirmButton'] = TermsUtil.tButton(confirmButtonCode)\n }\n\n if (cancelButtonCode) {\n alert['cancelButton'] = TermsUtil.tButton(cancelButtonCode)\n }\n\n return await CustomAlert(alert)\n }\n\n /**\n * @description 필터 폼 내의 에디터들이 가지고 있는 값을 키-값 형태로 추출\n *******************************************************\n * @param {Object} filterForm 그리드 필터 폼\n * @returns {Object} 필터 폼 내의 에디터들이 가지고 있는 값을 키-값 형태로 추출\n */\n static getFilterFormData(filterForm) {\n let formValues = {}\n\n if (ValueUtil.isNotEmpty(filterForm)) {\n let filters = filterForm.filters()\n\n if (ValueUtil.isNotEmpty(filters)) {\n filters.forEach(f => {\n if (ValueUtil.isNotEmpty(f.value)) {\n item[f.name] = f.value ? f.value : null\n }\n })\n }\n }\n\n return formValues\n }\n\n /**\n * @description name으로 필터 폼 내 에디터를 찾아 값을 셋팅\n *****************************************************\n * @param {Object} filterForm 그리스트 필터 폼\n * @param {String} name 그리스트 필터 폼 내 에디터의 이름\n * @param {Object} value 설정할 값\n */\n static setSearchFormEditorValue(filterForm, name, value) {\n if (ValueUtil.isNotEmpty(filterForm)) {\n let editor = filterForm.renderRoot?.querySelector(`[name='${name}']`)\n\n if (ValueUtil.isNotEmpty(editor)) {\n editor.value = value\n }\n }\n }\n\n /**\n * @description 파라미터를 기준으로 유형에 맞는 에디터를 생성한다.\n ******************************************************\n * @param {String} editorType 에디터 유형\n * @param {Object} column 컬럼 Object\n * @param {Object} record 레코드 Object\n * @param {Number} rowIndex 추가할 열 Index\n * @returns {HTMLElement} HTML 에디터\n */\n static createEditorHtml(editorType, column, record, rowIndex) {\n return getEditor(editorType)('', column, record, rowIndex, {})\n }\n\n /**\n * @description 에디터에 값을 설정한다.\n *********************************\n * @param {Object} editor 에디터\n * @param {String} newValue 설정할 값\n */\n static setValueToEditor(editor, newValue) {\n let input = UiUtil.getLeafInput(editor)\n input.value = newValue\n }\n\n /**\n * @description 엘리먼트 내 최 하단 Input Element를 추출\n ************************************************\n * @param {Object} editor 에디터\n * @returns {HTMLElement} 엘리먼트 내 최 하단 Input Element\n */\n static getLeafInput(editor) {\n let editorType = editor.getType()\n\n if (editorType == 'code-editor') {\n return editor.renderRoot.querySelector('ox-input-code')\n } else if (editorType == 'textarea') {\n return editor.renderRoot.querySelector('textarea')\n } else if (editorType == 'select-combo') {\n return editor.renderRoot.querySelector('ox-select').firstElementChild\n } else if (editorType == 'barcode') {\n return editor.renderRoot.querySelector('ox-input-barcode').renderRoot.querySelector('input')\n } else {\n return editor.renderRoot.firstElementChild.editor\n }\n }\n}\n"]}
|
|
@@ -16,7 +16,7 @@ export class DynamicMenuPart extends DynamicMenuPart_base {
|
|
|
16
16
|
_path: StringConstructor;
|
|
17
17
|
};
|
|
18
18
|
static get styles(): import("lit").CSSResult[];
|
|
19
|
-
render(): import("lit
|
|
19
|
+
render(): import("lit").TemplateResult<1>;
|
|
20
20
|
firstUpdated(): void;
|
|
21
21
|
_activeTopLevel: any;
|
|
22
22
|
updated(changes: any): void;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import '@material/mwc-icon';
|
|
2
|
-
import '
|
|
3
|
-
import '
|
|
2
|
+
import '@operato/menu/ox-menu-portrait.js';
|
|
3
|
+
import '@operato/menu/ox-menu-landscape.js';
|
|
4
4
|
import { css, html, LitElement } from 'lit';
|
|
5
5
|
import { connect } from 'pwa-helpers';
|
|
6
6
|
import { store } from '@operato/shell';
|
|
7
7
|
import { ScrollbarStyles } from '@operato/styles';
|
|
8
8
|
function isActiveMenu(menu, path) {
|
|
9
9
|
var _a;
|
|
10
|
-
return ((
|
|
11
|
-
(menu.active && typeof menu.active === 'function' && menu.active.call(menu, { path })));
|
|
10
|
+
return ((_a = menu.path) === null || _a === void 0 ? void 0 : _a.split('?')[0]) === path || (menu.active && typeof menu.active === 'function' && menu.active.call(menu, { path }));
|
|
12
11
|
}
|
|
13
12
|
export class DynamicMenuPart extends connect(store)(LitElement) {
|
|
14
13
|
static get properties() {
|
|
@@ -35,14 +34,6 @@ export class DynamicMenuPart extends connect(store)(LitElement) {
|
|
|
35
34
|
background-color: var(--theme-white-color);
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
:host::before {
|
|
39
|
-
content: '';
|
|
40
|
-
position: absolute;
|
|
41
|
-
width: 100%;
|
|
42
|
-
height: 3px;
|
|
43
|
-
background-color: rgba(0, 0, 0, 0.1);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
37
|
:host([landscape]) {
|
|
47
38
|
overflow-x: auto;
|
|
48
39
|
flex-direction: row;
|
|
@@ -50,8 +41,8 @@ export class DynamicMenuPart extends connect(store)(LitElement) {
|
|
|
50
41
|
min-height: 20px;
|
|
51
42
|
}
|
|
52
43
|
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
ox-menu-portrait,
|
|
45
|
+
ox-menu-landscape {
|
|
55
46
|
flex: 1;
|
|
56
47
|
}
|
|
57
48
|
`
|
|
@@ -61,18 +52,8 @@ export class DynamicMenuPart extends connect(store)(LitElement) {
|
|
|
61
52
|
return html `
|
|
62
53
|
<slot name="head"></slot>
|
|
63
54
|
${this.orientation !== 'landscape'
|
|
64
|
-
? html `<
|
|
65
|
-
.menus=${this.menus}
|
|
66
|
-
.activeTopLevel=${this._activeTopLevel}
|
|
67
|
-
.activeMenu=${this._activeMenu}
|
|
68
|
-
.path=${this._path}
|
|
69
|
-
></dynamic-menu-portrait>`
|
|
70
|
-
: html `<dynamic-menu-landscape
|
|
71
|
-
.menus=${this.menus}
|
|
72
|
-
.activeTopLevel=${this._activeTopLevel}
|
|
73
|
-
.activeMenu=${this._activeMenu}
|
|
74
|
-
.path=${this._path}
|
|
75
|
-
></dynamic-menu-landscape>`}
|
|
55
|
+
? html `<ox-menu-portrait .menus=${this.menus} .activeTopLevel=${this._activeTopLevel} .activeMenu=${this._activeMenu} .path=${this._path}></ox-menu-portrait>`
|
|
56
|
+
: html `<ox-menu-landscape .menus=${this.menus} .activeTopLevel=${this._activeTopLevel} .activeMenu=${this._activeMenu} .path=${this._path}></ox-menu-landscape>`}
|
|
76
57
|
<slot name="tail"></slot>
|
|
77
58
|
`;
|
|
78
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-menu-part.js","sourceRoot":"","sources":["../../client/viewparts/dynamic-menu-part.js"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"dynamic-menu-part.js","sourceRoot":"","sources":["../../client/viewparts/dynamic-menu-part.js"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-icon'\nimport '@operato/menu/ox-menu-portrait.js'\nimport '@operato/menu/ox-menu-landscape.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { connect } from 'pwa-helpers'\n\nimport { store } from '@operato/shell'\nimport { ScrollbarStyles } from '@operato/styles'\n\nfunction isActiveMenu(menu, path) {\n return menu.path?.split('?')[0] === path || (menu.active && typeof menu.active === 'function' && menu.active.call(menu, { path }))\n}\n\nexport class DynamicMenuPart extends connect(store)(LitElement) {\n static get properties() {\n return {\n page: String,\n resourceId: String,\n menus: Array,\n orientation: String,\n\n _activeTopLevel: Object,\n _activeMenu: Object,\n _path: String\n }\n }\n\n static get styles() {\n return [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n overflow-y: auto;\n flex-direction: column;\n height: 100%;\n min-width: 200px;\n background-color: var(--theme-white-color);\n }\n\n :host([landscape]) {\n overflow-x: auto;\n flex-direction: row;\n width: 100%;\n min-height: 20px;\n }\n\n ox-menu-portrait,\n ox-menu-landscape {\n flex: 1;\n }\n `\n ]\n }\n\n render() {\n return html`\n <slot name=\"head\"></slot>\n ${this.orientation !== 'landscape'\n ? html`<ox-menu-portrait .menus=${this.menus} .activeTopLevel=${this._activeTopLevel} .activeMenu=${this._activeMenu} .path=${this._path}></ox-menu-portrait>`\n : html`<ox-menu-landscape .menus=${this.menus} .activeTopLevel=${this._activeTopLevel} .activeMenu=${this._activeMenu} .path=${this._path}></ox-menu-landscape>`}\n <slot name=\"tail\"></slot>\n `\n }\n\n firstUpdated() {\n this.renderRoot.addEventListener('active-toplevel', e => {\n e.stopPropagation()\n e.preventDefault()\n\n this._activeTopLevel = e.detail\n })\n }\n\n updated(changes) {\n if (changes.has('menus') || changes.has('page') || changes.has('resourceId')) {\n this._findActivePage()\n }\n\n if (changes.has('orientation')) {\n if (this.orientation == 'portrait') {\n this.removeAttribute('landscape')\n } else {\n this.setAttribute('landscape', true)\n }\n }\n\n if (changes.has('slotTemplate')) {\n this.replaceChild(this.slotTemplate)\n }\n }\n\n stateChanged(state) {\n this.page = state.route.page\n this.resourceId = state.route.resourceId\n this.menus = state.metaUI.menus || []\n this.slotTemplate = state.metaUI.slotTemplate\n }\n\n _findActivePage() {\n var path = this.resourceId ? `${this.page}/${this.resourceId}` : this.page\n var menus = this.menus || []\n var activeMenu\n\n this._activeTopLevel = menus.find(menu => {\n if (isActiveMenu(menu, path)) {\n activeMenu = menu\n return true\n } else if (menu.menus) {\n activeMenu = menu.menus.find(menu => isActiveMenu(menu, path))\n return !!activeMenu\n }\n })\n\n this._path = path\n this._activeMenu = activeMenu || this._activeTopLevel\n }\n}\n\ncustomElements.define('dynamic-menu-part', DynamicMenuPart)\n"]}
|