tplus-components-touch 3.41.13 → 3.41.14
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/README.md +16 -16
- package/dist/components/acCitySelect/CitySelect.js +18 -18
- package/dist/components/acCitySelect/CitySelect.js.map +1 -1
- package/dist/components/acCitySelect/CitySelect.less +9 -9
- package/dist/components/acCitySelect/citys.js.map +1 -1
- package/dist/components/acCitySelect/index.js.map +1 -1
- package/dist/components/acCitySelect/provinceData.js +7 -7
- package/dist/components/acCitySelect/provinceData.js.map +1 -1
- package/dist/components/addLog/AddLogProcessor.js +6 -6
- package/dist/components/addLog/AddLogProcessor.js.map +1 -1
- package/dist/components/addLog/OperationLogApi.js +3 -3
- package/dist/components/addLog/OperationLogApi.js.map +1 -1
- package/dist/components/autoComplete/index.js +14 -14
- package/dist/components/autoComplete/index.js.map +1 -1
- package/dist/components/autoComplete/index.less +89 -89
- package/dist/components/autoComplete/option.js.map +1 -1
- package/dist/components/autoCompleteWithKeyboard/index.js +14 -14
- package/dist/components/autoCompleteWithKeyboard/index.js.map +1 -1
- package/dist/components/autoCompleteWithKeyboard/index.less +18 -18
- package/dist/components/billSearch/api.js +29 -29
- package/dist/components/billSearch/api.js.map +1 -1
- package/dist/components/billSearch/index.js +6 -6
- package/dist/components/billSearch/index.js.map +1 -1
- package/dist/components/billSearch/index.less +384 -384
- package/dist/components/cloudPrint/BTPrintFormatUtil.js +17 -17
- package/dist/components/cloudPrint/BTPrintFormatUtil.js.map +1 -1
- package/dist/components/cloudPrint/api.js.map +1 -1
- package/dist/components/cloudPrint/index.js.map +1 -1
- package/dist/components/cloudPrint/printDispatch.js +7 -7
- package/dist/components/cloudPrint/printDispatch.js.map +1 -1
- package/dist/components/cloudPrint/printTemplate/dialy_one.json +238 -238
- package/dist/components/cloudPrint/printTemplate/duty_one.json +238 -238
- package/dist/components/cloudPrint/printTemplate/retail_one.json +203 -203
- package/dist/components/cloudPrint/printTemplate/retail_two.json +219 -219
- package/dist/components/cloudPrint/printTemplate/storage_one.json +128 -128
- package/dist/components/cloudPrint/printTemplate/template.js +7 -7
- package/dist/components/cloudPrint/printTemplate/template.js.map +1 -1
- package/dist/components/commonForm/addressPicker/index.js +7 -7
- package/dist/components/commonForm/addressPicker/index.js.map +1 -1
- package/dist/components/commonForm/addressPicker/style.less +10 -10
- package/dist/components/commonForm/autoComplete/index.js.map +1 -1
- package/dist/components/commonForm/autoComplete/style.less +2 -2
- package/dist/components/commonForm/datePicker/index.js.map +1 -1
- package/dist/components/commonForm/datePicker/style.less +4 -4
- package/dist/components/commonForm/formControl/index.js.map +1 -1
- package/dist/components/commonForm/index.js +4 -4
- package/dist/components/commonForm/index.js.map +1 -1
- package/dist/components/commonForm/inputNumber/index.js.map +1 -1
- package/dist/components/commonForm/inputNumber/style.less +10 -10
- package/dist/components/commonForm/radio/index.js.map +1 -1
- package/dist/components/commonForm/style.less +1 -1
- package/dist/components/deliverySearch/api.js +21 -21
- package/dist/components/deliverySearch/api.js.map +1 -1
- package/dist/components/deliverySearch/index.js +6 -6
- package/dist/components/deliverySearch/index.js.map +1 -1
- package/dist/components/deliverySearch/index.less +553 -553
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/hardwareAPI/index.js +7 -7
- package/dist/components/hardwareAPI/index.js.map +1 -1
- package/dist/components/hotKey/config.js +23 -23
- package/dist/components/hotKey/config.js.map +1 -1
- package/dist/components/hotKey/hotKeyModal.js.map +1 -1
- package/dist/components/hotKey/index.js +26 -26
- package/dist/components/hotKey/index.js.map +1 -1
- package/dist/components/hotKey/localConfig.js.map +1 -1
- package/dist/components/hotKey/style.less +96 -96
- package/dist/components/hotKey/utils.js.map +1 -1
- package/dist/components/input/index.js +6 -6
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/scanInput.js.map +1 -1
- package/dist/components/input/scanInput.less +30 -30
- package/dist/components/input/style.less +106 -106
- package/dist/components/input/tplusInput/index.js +30 -30
- package/dist/components/input/tplusInput/index.js.map +1 -1
- package/dist/components/input/tplusInput/inputContent.js.map +1 -1
- package/dist/components/input/tplusInput/inputs.js.map +1 -1
- package/dist/components/input/tplusInput/style.less +132 -132
- package/dist/components/input/utils/index.js.map +1 -1
- package/dist/components/inventorySearch/api.js +58 -58
- package/dist/components/inventorySearch/api.js.map +1 -1
- package/dist/components/inventorySearch/index.js +3 -3
- package/dist/components/inventorySearch/index.js.map +1 -1
- package/dist/components/inventorySearch/index.less +119 -119
- package/dist/components/inventorySearch/store.js.map +1 -1
- package/dist/components/inventorySearch/tab.js.map +1 -1
- package/dist/components/keyboard/index.js.map +1 -1
- package/dist/components/keyboard/index.less +485 -485
- package/dist/components/keyboard/letterKeyboard.js +2 -2
- package/dist/components/keyboard/letterKeyboard.js.map +1 -1
- package/dist/components/keyboard/numKeyboard.js +4 -4
- package/dist/components/keyboard/numKeyboard.js.map +1 -1
- package/dist/components/keyboard/numKeyboardScan.js.map +1 -1
- package/dist/components/keyboard/numberButton_input.js +5 -5
- package/dist/components/keyboard/numberButton_input.js.map +1 -1
- package/dist/components/keyboard/numkeyboardPassword.js +4 -4
- package/dist/components/keyboard/numkeyboardPassword.js.map +1 -1
- package/dist/components/keyboard/onlyKeyboard.js +7 -7
- package/dist/components/keyboard/onlyKeyboard.js.map +1 -1
- package/dist/components/keyboard/onlyLetterButton.js +2 -2
- package/dist/components/keyboard/onlyLetterButton.js.map +1 -1
- package/dist/components/keyboard/onlyLetterButton2.js +2 -2
- package/dist/components/keyboard/onlyLetterButton2.js.map +1 -1
- package/dist/components/keyboard/onlyLetterButton2.less +156 -156
- package/dist/components/keyboard/onlyNumberButton.js +2 -2
- package/dist/components/keyboard/onlyNumberButton.js.map +1 -1
- package/dist/components/keyboard/onlyNumberButton2.js +3 -3
- package/dist/components/keyboard/onlyNumberButton2.js.map +1 -1
- package/dist/components/keyboard/textKeyboard.js.map +1 -1
- package/dist/components/layout/hamburger.js.map +1 -1
- package/dist/components/layout/index.js +10 -10
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/layout/layout.js.map +1 -1
- package/dist/components/layout/sider.js +12 -12
- package/dist/components/layout/sider.js.map +1 -1
- package/dist/components/layout/style.less +82 -82
- package/dist/components/loading/index.js +15 -15
- package/dist/components/loading/index.js.map +1 -1
- package/dist/components/loading/loadingContent.js.map +1 -1
- package/dist/components/loading/style.less +72 -72
- package/dist/components/loading/utils.js.map +1 -1
- package/dist/components/message/index.js +8 -8
- package/dist/components/message/index.js.map +1 -1
- package/dist/components/message/index.less +101 -101
- package/dist/components/modal/index.js.map +1 -1
- package/dist/components/modal/index.less +19 -19
- package/dist/components/modalVertical/index.js +7 -7
- package/dist/components/modalVertical/index.js.map +1 -1
- package/dist/components/modalVertical/style.less +60 -60
- package/dist/components/modalWraper/index.js +15 -15
- package/dist/components/modalWraper/index.js.map +1 -1
- package/dist/components/modalWraper/style.less +257 -257
- package/dist/components/modalWraper/utils.js.map +1 -1
- package/dist/components/notification/index.js +4 -4
- package/dist/components/notification/index.js.map +1 -1
- package/dist/components/notification/index.less +51 -51
- package/dist/components/overflowTip/index.js +15 -15
- package/dist/components/overflowTip/index.js.map +1 -1
- package/dist/components/overflowTip/style.less +66 -66
- package/dist/components/page/index.js.map +1 -1
- package/dist/components/page/index.less +21 -21
- package/dist/components/presale/pickup.js.map +1 -1
- package/dist/components/presale/style.less +58 -58
- package/dist/components/product/detail.js +7 -7
- package/dist/components/product/detail.js.map +1 -1
- package/dist/components/product/getCard.js +5 -5
- package/dist/components/product/getCard.js.map +1 -1
- package/dist/components/product/index.less +128 -128
- package/dist/components/progressState/EmptyAndErrorView.js.map +1 -1
- package/dist/components/progressState/ProgressState.js +10 -10
- package/dist/components/progressState/ProgressState.js.map +1 -1
- package/dist/components/progressState/index.js.map +1 -1
- package/dist/components/progressState/style.less +65 -65
- package/dist/components/scan/index.js.map +1 -1
- package/dist/components/scan/index.less +33 -33
- package/dist/components/select/index.js.map +1 -1
- package/dist/components/select/index.less +11 -11
- package/dist/components/settlement/asyncModal.js.map +1 -1
- package/dist/components/settlement/index.js.map +1 -1
- package/dist/components/settlement/moreCzkTable/index.js.map +1 -1
- package/dist/components/settlement/moreCzkTable/style.less +6 -6
- package/dist/components/settlement/prototypeTable/index.js.map +1 -1
- package/dist/components/settlement/prototypeTable/style.less +58 -58
- package/dist/components/settlement/prototypeTable/utils.js.map +1 -1
- package/dist/components/settlement/settlement.js +7 -6
- package/dist/components/settlement/settlement.js.map +1 -1
- package/dist/components/settlement/settlement.less +1705 -1705
- package/dist/components/settlement/settlementStore.js +6 -6
- package/dist/components/settlement/settlementStore.js.map +1 -1
- package/dist/components/settlement/utils.js.map +1 -1
- package/dist/components/socket/index.js +11 -11
- package/dist/components/socket/index.js.map +1 -1
- package/dist/components/spin/index.js +6 -6
- package/dist/components/spin/index.js.map +1 -1
- package/dist/components/spin/spin-style.less +436 -436
- package/dist/components/test/index.js +3 -3
- package/dist/components/test/index.js.map +1 -1
- package/dist/components/ticon/iconfont/demo.css +539 -539
- package/dist/components/ticon/iconfont/demo_index.html +5248 -5248
- package/dist/components/ticon/iconfont/iconfont.css +895 -895
- package/dist/components/ticon/iconfont/iconfont.json +1549 -1549
- package/dist/components/ticon/iconfont/iconfont.svg +593 -593
- package/dist/components/ticon/index.js.map +1 -1
- package/dist/components/touchScroll/index.js +9 -9
- package/dist/components/touchScroll/index.js.map +1 -1
- package/dist/components/touchTable/AuthProcess.js.map +1 -1
- package/dist/components/touchTable/generateWater.js.map +1 -1
- package/dist/components/touchTable/index.js +9 -9
- package/dist/components/touchTable/index.js.map +1 -1
- package/dist/components/touchTable/index.less +376 -376
- package/dist/components/touchTable/utils.js.map +1 -1
- package/dist/demo/PopOverDemo.js.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/util/tools.js.map +1 -1
- package/locales/zh/tplus-components-touch.json +1 -1
- package/locales/zh-CN/tplus-components-touch.json +1 -1
- package/mocks/memberInfo.json +79 -79
- package/package.json +35 -35
- package/tsconfig.json +26 -26
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/hotKey/index.js"],"names":["keyboard","keymaster","noConflict","hotKeyFactory","constructor","keys","handler","observerCallback","pressed","log","hotKeyConfig","defaultHotKeyConfig","operationControl","defaultOperationControl","filter","clickBefore","observe","MutationObserver","showLog","defineHotKeyConfig","getDefineHotKeyConfigByStore","length","window","deleteScope","getScope","join","defineOperationControl","getDefineOperationControlByStore","control","dynamicSelector","newhotKeyArraySort","a","b","replace","clickBeforeProp","controller","action","actuator","find","next","find_element","getFocusId","bind","register","unRegister","setFocus","clearFocus","observerTrigger","unbind","on","off","observer","dom","config","attributes","childList","subtree","containerDom","document","body","asyncQueryHotKeyDom","operator","currentNode","pollQueryDom","Array","isArray","index","element","target","result","setting_setData","localStore","get","JSON","parse","localStorage","getItem","defineHotKeyConfigList","conflictHotKeyConfigList","forEach","settingItem","enumController","getEnumOj","RE_POSParamType","SHORTCUT_KEY","ParamType","Id","DefaultValue","ExtField","Title","ID","Value","Name","TabIndex","ExtFieldParse","dynamic","classification","enableEdit","operation","operationType","isdisplay","error","configItem","describe","keyValue","id","push","itemOperationType","defineHotKey","defineHotKeyList","defineKey","operationKeys","opKey","array","fn","t","x","y","i","j","dynamicAction","keyName","focusId","directionSelector","targetKey","key","domSelector","actionNode","queryNode","includes","fnName","down","up","right","left","click","waring","triggerRegister","registerKey","trigger","item","container","className","targetDom","classNameList","some","queryDom","name","unlock","containerName","addKey","prev","rejectDoAction","resolve","reject","dynamicActionTarget","hotKeyProto","actionCompose","callback","actionPromise","prveValue","listener","value","then","res","isShouldQuickKeyClicked","lock","operations","operationItem","selector","isNew","filterNum","nextSibling","previousSibling","returnValue","arr","split","map","el","querySelectorAll","v","style","display","classList","add","focusContainer","remove","querySelector","currentClassList","hotKeyIdNode","callBack","handles","isHaveEvent","handle","handleIndex","findIndex","splice","node","nodeType","isShowLog","console","loadingImgs","hotKey","option","call","hotKeyPart","partName","otherClassName","hotKeyBindClass","hotKeyNotFilter","showHotKeyModal","classificationList","keyReplaceStringList","operationTypeName"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * Created by hzy on 2019/11/27.\r\n */\r\n/**\r\n * @hotKey(option) 调用hotKey方法初始化状态\r\n * @option 可传入选项 {handler: 全局的句柄默认为$}\r\n * @observerCallback dom变化后的回调\r\n * @log 是否显示log\r\n * @hotKeyConfig 快捷键配置项\r\n * @operationControl 快捷键权限控制\r\n * @clickBefore 点击事件前的回调方法\r\n *\r\n * 初始化后的方法\r\n * action 传入第一个参数 按键字符串,触发config中的动作,返回一个promise,执行then方法可以从参数中拿到当前的上下文对象\r\n * action 第二个参数为回调函数,回调函数的参数会返回当前的动作触发的元素属性以及当前为第几步\r\n *\r\n * observer 监听dom变化,第一个参数为监听的dom目标,第二个参数为配置 具体查看 new MutationObserver observer\r\n * find 查找dom,可链式调用\r\n * next 查找下一个兄弟节点,参数中可传入数量跳过几个相邻的\r\n * prev 查找上一个兄弟节点,参数中可传入数量跳过几个相邻的\r\n * click 触发点击事件\r\n * register 注册一个全局的快捷键,第一个方法参数为快捷键名,第二个方法参数为目标容器class名,第三个方法参数为触发事件dom class名\r\n * unRegister 注销一个全局的快捷键\r\n *\r\n * \r\n * config & control 说明 见 ./config.js 文件\r\n *\r\n */\r\nimport keymaster from 'keymaster';\r\nimport { queryHotKey, queryCount } from './utils';\r\nimport { hotKeyConfig as defaultHotKeyConfig, operationControl as defaultOperationControl, classificationList,keyReplaceStringList,operationTypeName} from './config';\r\nimport { showHotKeyModal } from './hotKeyModal'\r\nimport {localStore,enumController} from 'mutants-util';\r\nimport './style.less';\r\n\r\nconst keyboard = keymaster.noConflict();\r\n\r\nconst hotKeyFactory = {\r\n constructor({\r\n keys = [],\r\n handler = '$',\r\n observerCallback,\r\n pressed,\r\n log = false,\r\n hotKeyConfig = defaultHotKeyConfig,\r\n operationControl = defaultOperationControl,\r\n filter,\r\n clickBefore\r\n } = {}) {\r\n // keys = ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKeyInjectOrEject)];\r\n const observe = observerCallback && new MutationObserver(observerCallback);\r\n hotKeyFactory.showLog = log;\r\n // 如果快捷键配置不存在使用默认\r\n let defineHotKeyConfig = this.getDefineHotKeyConfigByStore();\r\n \r\n // hotKeyFactory.hotKeyConfig = Object.keys(defineHotKeyConfig).length?defineHotKeyConfig:hotKeyConfig;\r\n hotKeyFactory.hotKeyConfig = Object.keys(defineHotKeyConfig).length?defineHotKeyConfig:hotKeyConfig;\r\n keys = keys.length == 0 ? ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKeyFactory.hotKeyConfig)] : keys;\r\n\r\n // 删除原来挂载的按键监听\r\n if(window[handler]){\r\n keyboard.deleteScope(keyboard.getScope())\r\n }\r\n keyboard(keys.join(), pressed);\r\n keyboard.filter = filter;\r\n \r\n let defineOperationControl = this.getDefineOperationControlByStore(hotKeyFactory.hotKeyConfig)\r\n hotKeyFactory.operationControl = defineOperationControl || operationControl;\r\n \r\n // 排序复合结算\r\n if(hotKeyFactory.operationControl[5] && hotKeyFactory.operationControl[5].control && hotKeyFactory.operationControl[5].dynamicSelector){\r\n const dynamicSelector = hotKeyFactory.operationControl[5].dynamicSelector;\r\n hotKeyFactory.operationControl[5].control = hotKeyFactory.newhotKeyArraySort(hotKeyFactory.operationControl[5].control,(a,b)=>{\r\n return dynamicSelector[a] && dynamicSelector[b]?dynamicSelector[a][0].replace('.settlement .paymode:','') - dynamicSelector[b][0].replace('.settlement .paymode:',''):-1\r\n })\r\n }\r\n\r\n hotKeyFactory.clickBeforeProp = clickBefore;\r\n const controller = {\r\n keys,\r\n hotKeyConfig:hotKeyFactory.hotKeyConfig,\r\n operationControl:hotKeyFactory.operationControl,\r\n action: this.actuator,\r\n find: this.find,\r\n next: this.next,\r\n find_element: this.find_element,\r\n getFocusId: this.getFocusId.bind(this),\r\n register: this.register,\r\n unRegister: this.unRegister,\r\n setFocus: this.setFocus,\r\n clearFocus: this.clearFocus,\r\n observerTrigger: observerCallback,\r\n bind: this.bind,\r\n unbind: this.unbind,\r\n on: this.on,\r\n off: this.off,\r\n observer(dom, config = { attributes: true, childList: true, subtree: true }) {\r\n const containerDom = dom || document.body;\r\n observe.observe(containerDom, config);\r\n },\r\n };\r\n // if (!window[handler]) {\r\n window[handler] = controller;\r\n // }\r\n return controller;\r\n },\r\n asyncQueryHotKeyDom(operator, currentNode) {\r\n const pollQueryDom = () => {\r\n if(Array.isArray(operator)){\r\n for (let index = 0; index < operator.length; index++) {\r\n const element = operator[index];\r\n const target = queryHotKey(element, currentNode);\r\n if (target) return target;\r\n }\r\n }else{\r\n const target = queryHotKey(operator, currentNode);\r\n if (target) return target;\r\n }\r\n const result = queryCount();\r\n if (result === 'done') return;\r\n\r\n return pollQueryDom();\r\n };\r\n\r\n return pollQueryDom();\r\n },\r\n\r\n // 获取自定义快捷键\r\n getDefineHotKeyConfigByStore() {\r\n // 正式环境使用缓存对象\r\n let setting_setData = localStore.get(\"setting_setData\");\r\n setting_setData = (setting_setData == 'undefined') || !setting_setData ? [] : setting_setData;\r\n if (setting_setData == null) {\r\n setting_setData = JSON.parse(localStorage.getItem(\"setting_setData\"));\r\n }\r\n\r\n // 本地调试使用\r\n // const setting_setData = window.web_hotKeyConfig\r\n let defineHotKeyConfig = {}\r\n let defineHotKeyConfigList = [];\r\n let conflictHotKeyConfigList = [];\r\n if (setting_setData && setting_setData.length != 0) {\r\n setting_setData.forEach((settingItem) => {\r\n // 快捷键固定ParamType\r\n const { RE_POSParamType } = enumController.getEnumOj();\r\n const { SHORTCUT_KEY } = RE_POSParamType\r\n if (settingItem.ParamType && (settingItem.ParamType.Id === SHORTCUT_KEY || settingItem.ParamType === SHORTCUT_KEY)) {\r\n const { DefaultValue, ExtField, Title, ID, Value, Name, TabIndex } = settingItem || {};\r\n let ExtFieldParse = { dynamic: false, classification: \"\", enableEdit: false, operation: [], operationType: 1, isdisplay: false };\r\n try {\r\n ExtFieldParse = JSON.parse(ExtField)\r\n } catch (error) { }\r\n const { dynamic, classification, enableEdit, operation, operationType, isdisplay } = ExtFieldParse\r\n\r\n const configItem = { Name, describe: Title, dynamic, keyValue: Value, operation, enableEdit, classification, id: ID, DefaultValue, operationType, TabIndex, isdisplay };\r\n\r\n if (Value !== '') {\r\n // 快捷键未被设置为空\r\n if (defineHotKeyConfig[Value]) {\r\n // 存在使用相同快捷键\r\n const { operationControl } = defineHotKeyConfig[Value];\r\n if (operationControl) {\r\n // 之前已经存入过两个快捷键 这是第三个\r\n if (!operationControl[operationType]) {\r\n defineHotKeyConfig[Value].operationControl[operationType] = configItem;\r\n } else {\r\n // 表示有冲突快捷键\r\n conflictHotKeyConfigList.push({ ...configItem, keyValue: \"\" });\r\n return null\r\n }\r\n } else {\r\n const { operationType: itemOperationType } = defineHotKeyConfig[Value];\r\n if (operationType == itemOperationType) {\r\n // 存在冲突快捷键 因为 dynamic 并未改变为动态键所致\r\n conflictHotKeyConfigList.push({ ...configItem, keyValue: \"\" });\r\n return null\r\n } else {\r\n // 存储第二个快捷键\r\n const operationControl = { ...defineHotKeyConfig[Value], dynamic: true };\r\n defineHotKeyConfig[Value] = {\r\n operationControl: {}\r\n };\r\n // 搬移一层对象信息到第二次 变为动态键\r\n defineHotKeyConfig[Value].dynamic = true;\r\n defineHotKeyConfig[Value].operationControl[itemOperationType] = operationControl\r\n // 增加第二个动态键\r\n defineHotKeyConfig[Value].operationControl[operationType] = { ...configItem, dynamic: true }\r\n }\r\n }\r\n } else {\r\n // 单个动态键\r\n if (dynamic) {\r\n defineHotKeyConfig[Value] = {\r\n dynamic: true,\r\n operationControl: {}\r\n };\r\n defineHotKeyConfig[Value].operationControl[operationType] = { ...configItem, dynamic: true }\r\n } else {\r\n defineHotKeyConfig[Value] = { ...configItem, dynamic: false };\r\n }\r\n }\r\n } else {\r\n // 快捷键设置为空\r\n }\r\n\r\n defineHotKeyConfigList.push(configItem);\r\n }\r\n })\r\n } else {\r\n defineHotKeyConfig = defaultHotKeyConfig\r\n }\r\n window.defineHotKeyConfigList = [...defineHotKeyConfigList, ...conflictHotKeyConfigList];\r\n return defineHotKeyConfig\r\n },\r\n\r\n\r\n // 获取自定义权限\r\n getDefineOperationControlByStore(defineHotKey){\r\n // 获取自定义快捷键配置JSON KEY值集合\r\n const defineHotKeyList = Object.keys(defineHotKey)\r\n\r\n let defineOperationControl = {};\r\n\r\n // 遍历自定义快捷键的key值 \r\n defineHotKeyList.forEach(defineKey => {\r\n\r\n const { dynamic,operationControl} = defineHotKey[defineKey] || {}\r\n // 是否是动态键 \r\n if(dynamic){\r\n if(operationControl){\r\n // 动态键\r\n const operationKeys = Object.keys(operationControl);\r\n operationKeys.forEach( opKey => {\r\n\r\n const {operation} = operationControl[opKey] || {};\r\n // 构建权限页面结构\r\n if(!defineOperationControl[opKey]){\r\n defineOperationControl[opKey] = {\r\n control:[],\r\n dynamicSelector:{}\r\n }\r\n }\r\n\r\n // 添加键值 \r\n defineOperationControl[opKey].control.push(defineKey);\r\n // 如果是上下键 dynamicSelector值有所不同 \r\n if(defineKey === 'down' || defineKey === 'up'){\r\n defineOperationControl[opKey].dynamicSelector['up&down'] = operation;\r\n return;\r\n }\r\n defineOperationControl[opKey].dynamicSelector[defineKey] = operation\r\n });\r\n }else{\r\n\r\n const { operationType , operation } = defineHotKey[defineKey] || {}\r\n if(!defineOperationControl[operationType]){\r\n defineOperationControl[operationType] = {\r\n control:[],\r\n dynamicSelector:{}\r\n }\r\n }\r\n // 添加键值 \r\n defineOperationControl[operationType].control.push(defineKey);\r\n defineOperationControl[operationType].dynamicSelector[defineKey] = operation\r\n // const {}\r\n }\r\n }\r\n });\r\n return defineOperationControl;\r\n },\r\n\r\n newhotKeyArraySort(array,fn){\r\n\t\tlet t; \r\n fn = fn || function (x, y) { return x - y };\r\n for (var i = 0; i < array.length; i++) {\r\n for (var j = i; j < array.length; j++) {\r\n if (fn(array[i], array[j]) > 0) {\r\n t = array[i];\r\n array[i] = array[j];\r\n array[j] = t;\r\n }\r\n }\r\n }\r\n\t\treturn array; \t\r\n\t},\r\n\r\n dynamicAction(keyName, target) {\r\n const { dynamic } = this.hotKeyConfig[keyName] || {};\r\n if (!dynamic) return;\r\n\r\n const { dynamicSelector = {} } = this.operationControl[this.focusId] || {};\r\n const { directionSelector = {} } = this.operationControl[this.focusId] || {};\r\n let targetKey = 'up&down'\r\n\r\n if(keyName !== 'up' && keyName !== 'down'){\r\n targetKey = Object.keys(dynamicSelector).find(key => key === keyName);\r\n }\r\n \r\n const domSelector = dynamicSelector[targetKey];\r\n let actionNode = hotKeyFactory.queryNode(target).find(domSelector);\r\n\r\n if ('updown'.includes(keyName) && actionNode.currentNode) {\r\n const fnName = { down: 'next', up: 'prev' };\r\n actionNode = actionNode[fnName[keyName]]();\r\n }\r\n\r\n if(this.focusId ==7 && 'leftright'.includes(keyName) && actionNode.currentNode){\r\n const fnName = { right: 'next', left: 'prev' };\r\n actionNode = actionNode[fnName[keyName]]();\r\n }\r\n\r\n actionNode.currentNode && actionNode.click();\r\n\r\n if (!actionNode.currentNode) {\r\n hotKeyFactory.log(true, { waring: `the [${keyName}] hot-key of dynamic trigger Dom not found` });\r\n return true;\r\n }\r\n\r\n return actionNode.currentNode;\r\n },\r\n triggerRegister(keyName) {\r\n if (!hotKeyFactory.registerKey) return;\r\n\r\n const trigger = this.registerKey.find(item => item.key === keyName);\r\n if (!trigger) return;\r\n\r\n const { container, className } = trigger;\r\n const containerDom = this.asyncQueryHotKeyDom(container);\r\n let targetDom;\r\n const classNameList = Array.isArray(className) ? className : [className];\r\n classNameList.some(name => {\r\n const queryDom = hotKeyFactory.queryNode(containerDom).find(name);\r\n targetDom = queryDom;\r\n return !!queryDom.currentNode;\r\n });\r\n\r\n targetDom.currentNode && targetDom.click();\r\n hotKeyFactory.log(!targetDom.currentNode, { waring: 'register hot-key trigger Dom not found' });\r\n\r\n hotKeyFactory.unlock();\r\n },\r\n register(keyName) {\r\n return (containerName) => (className) => {\r\n const registerKey = {\r\n key: keyName,\r\n container: containerName,\r\n className\r\n };\r\n\r\n if (!hotKeyFactory.registerKey) {\r\n hotKeyFactory.registerKey = [registerKey];\r\n } else {\r\n const addKey = [...hotKeyFactory.registerKey.filter(item => item.key !== keyName), registerKey];\r\n hotKeyFactory.registerKey = addKey;\r\n }\r\n };\r\n },\r\n unRegister(keyName) {\r\n if (hotKeyFactory.registerKey) {\r\n const keys = hotKeyFactory.registerKey.filter(item => item.key !== keyName);\r\n hotKeyFactory.registerKey = keys;\r\n }\r\n },\r\n queryNode(target) {\r\n const {\r\n find, next, prev, setFocus, clearFocus\r\n } = this;\r\n\r\n return {\r\n currentNode: target,\r\n find,\r\n next,\r\n prev,\r\n setFocus,\r\n clearFocus,\r\n click() {\r\n hotKeyFactory.clickBefore();\r\n this.currentNode.click();\r\n }\r\n };\r\n },\r\n rejectDoAction(keyName) {\r\n const id = hotKeyFactory.getFocusId();\r\n if (!id) return true;\r\n\r\n const { control, directionSelector } = this.operationControl[id] || {};\r\n\r\n // if (control === 'ALL') return;\r\n if (id == '1') return; //动态生成id=='1' 代替ALL\r\n if (!control || !control.includes(keyName)) return true;\r\n },\r\n action(keyName, className) {\r\n return new Promise((resolve, reject) => {\r\n const target = this.asyncQueryHotKeyDom(className);\r\n\r\n const dynamicActionTarget = hotKeyFactory.dynamicAction(keyName, target);\r\n if (dynamicActionTarget) return resolve(dynamicActionTarget);\r\n\r\n if (target) {\r\n const hotKeyProto = hotKeyFactory.queryNode(target);\r\n\r\n hotKeyProto.click();\r\n hotKeyFactory.unlock();\r\n\r\n resolve(hotKeyProto);\r\n } else {\r\n hotKeyFactory.log(true, { waring: `not found hot ket target of [${className}]` });\r\n hotKeyFactory.unlock();\r\n }\r\n });\r\n },\r\n actionCompose(operation, keyName, callback) {\r\n let actionPromise = null;\r\n let prveValue = null;\r\n const { listener } = hotKeyFactory;\r\n\r\n operation.forEach((value, index) => {\r\n if (!actionPromise) {\r\n prveValue = value;\r\n actionPromise = hotKeyFactory.action(keyName, value);\r\n if (index === (operation.length - 1)) {\r\n actionPromise.then(res => {\r\n listener(callback, res, index);\r\n hotKeyFactory.unlock();\r\n return this;\r\n });\r\n }\r\n } else {\r\n actionPromise.then(res => {\r\n listener(callback, res, index - 1);\r\n prveValue = value;\r\n return hotKeyFactory.action(keyName, value);\r\n });\r\n\r\n if (index === (operation.length - 1)) {\r\n actionPromise.then(res => {\r\n listener(callback, res, index);\r\n hotKeyFactory.unlock();\r\n return this;\r\n });\r\n }\r\n }\r\n });\r\n\r\n return actionPromise;\r\n },\r\n actuator(keyName, callback) {\r\n hotKeyFactory.log(true, { keyName });\r\n \r\n if(hotKeyFactory.isShouldQuickKeyClicked()) return null\r\n // if (hotKeyFactory.lock) return;\r\n hotKeyFactory.lock = true;\r\n\r\n if (hotKeyFactory.triggerRegister(keyName)) return;\r\n if (hotKeyFactory.rejectDoAction(keyName)) return;\r\n\r\n const { operation = ['.hot-key-focus-container'] } = this.hotKeyConfig[keyName] || {};\r\n const operations = Array.isArray(operation[0]) ? operation : [operation]; // 存在一个按键操作多个节点\r\n\r\n operations.forEach(operationItem => hotKeyFactory.actionCompose(operationItem, keyName, callback));\r\n },\r\n find(selector, isNew) {\r\n let currentNode;\r\n if (!this.currentNode || isNew) {\r\n currentNode = hotKeyFactory.asyncQueryHotKeyDom(selector);\r\n } else {\r\n currentNode = hotKeyFactory.asyncQueryHotKeyDom(selector, this.currentNode);\r\n }\r\n\r\n return hotKeyFactory.queryNode(currentNode);\r\n },\r\n next(filterNum = 1) {\r\n for (let i = 0; i < filterNum; i++) {\r\n if (!this.currentNode) {\r\n hotKeyFactory.log(true, { waring: 'There is a warning in the next,trigger Dom is not found ' });\r\n break;\r\n }\r\n this.currentNode = this.currentNode.nextSibling;\r\n }\r\n\r\n return this;\r\n },\r\n prev(filterNum = 1) {\r\n for (let i = 0; i < filterNum; i++) {\r\n if (!this.currentNode) {\r\n hotKeyFactory.log(true, { waring: 'There is a warning in the prev,trigger Dom is not found ' });\r\n break;\r\n }\r\n this.currentNode = this.currentNode.previousSibling;\r\n }\r\n\r\n return this;\r\n },\r\n find_element(selector) {\r\n let returnValue = [];\r\n let arr = selector.split(' ');\r\n if (arr && arr.length > 0) {\r\n arr.map(item => {\r\n let el = document.querySelectorAll(`.hot-key-focus-container ${item}`);\r\n returnValue = [...returnValue, ...el];\r\n })\r\n returnValue = returnValue && [...returnValue].filter(v => v.style.display != 'none')\r\n } \r\n return returnValue;\r\n },\r\n setFocus(target) {\r\n const container = target || this.currentNode;\r\n container && container.classList.add('hot-key-focus-container');\r\n //hotKeyFactory.log(!container, { waring: 'the set focus container Dom is not found' });\r\n },\r\n clearFocus() {\r\n const focusContainer = document.querySelectorAll('.hot-key-focus-container');\r\n\r\n for (const dom of focusContainer) {\r\n dom.classList.remove('hot-key-focus-container');\r\n }\r\n hotKeyFactory.log(true, { log: 'the focus container is clear' });\r\n },\r\n clickBefore() {\r\n const { clickBeforeProp } = hotKeyFactory;\r\n clickBeforeProp && clickBeforeProp();\r\n },\r\n unlock() {\r\n hotKeyFactory.lock = false;\r\n },\r\n getFocusId() {\r\n const focusContainer = document.querySelector('.hot-key-focus-container');\r\n if (!focusContainer) return hotKeyFactory.log(true, { waring: 'the focus container is not found' });\r\n\r\n let classList;\r\n const currentClassList = Array.from(focusContainer.classList) || [];\r\n if (currentClassList.includes('hot-key-id')) {\r\n classList = currentClassList;\r\n } else {\r\n const hotKeyIdNode = focusContainer.querySelector('.hot-key-id');\r\n hotKeyFactory.log(!hotKeyIdNode, { waring: 'not have any bind hot-key id node' });\r\n\r\n if (!hotKeyIdNode) return;\r\n\r\n classList = Array.from(hotKeyIdNode.classList) || [];\r\n }\r\n const [, id] = (classList.find(className => className.includes('hot-key-id=')) || '').split('=');\r\n this.focusId = id;\r\n\r\n return id;\r\n },\r\n bind(keys = [], callBack) {\r\n keyboard(keys.join(), callBack);\r\n },\r\n unbind(keys = []) {\r\n keys.forEach(key => keyboard.unbind(key));\r\n },\r\n handles: [],\r\n on(callback) {\r\n const handles = hotKeyFactory.handles || [];\r\n const isHaveEvent = handles.some(handle => handle === callback);\r\n\r\n if (!isHaveEvent) {\r\n handles.push(callback);\r\n }\r\n },\r\n off(callback) {\r\n const handles = hotKeyFactory.handles || [];\r\n const handleIndex = handles.findIndex(handle => handle === callback);\r\n\r\n if (~handleIndex) {\r\n handles.splice(handleIndex, 1);\r\n }\r\n },\r\n listener(callback, result = {}, index) {\r\n const node = result.nodeType === 1 ? result : result.currentNode;\r\n hotKeyFactory.handles.forEach(handle => handle(node, index));\r\n\r\n callback && callback(node, index);\r\n },\r\n log(isShowLog, { keyName, waring } = {}) {\r\n if (!this.showLog || !isShowLog) return;\r\n\r\n if (keyName) console.log(`[hot-key]: ${keyName}`);\r\n if (waring) console.log(`[hot-key-waring]: ${waring}`);\r\n },\r\n\r\n isShouldQuickKeyClicked() {\r\n const loadingImgs = document.querySelector(\"img.loading-img-symbol\");\r\n if(loadingImgs) return true\r\n }\r\n};\r\n\r\nfunction hotKey(option) {\r\n return hotKeyFactory.constructor.call(hotKeyFactory, option);\r\n}\r\n\r\nhotKey.hotKeyPart = function (partName, otherClassName = '') {\r\n return `${otherClassName} hot-key-part-${partName}`;\r\n};\r\n\r\nhotKey.hotKeyBindClass = function (id, otherClassName = '') {\r\n return `${otherClassName} hot-key-id hot-key-id=${id}`;\r\n};\r\n\r\nhotKey.hotKeyNotFilter = function (otherClassName = '') {\r\n return `${otherClassName} hot-key-not-filter`;\r\n};\r\n\r\nhotKey.hotKeyConfig = defaultHotKeyConfig;\r\nhotKey.operationControl = defaultOperationControl;\r\nhotKey.showHotKeyModal = showHotKeyModal;\r\nhotKey.classificationList = classificationList;\r\nhotKey.keyReplaceStringList = keyReplaceStringList\r\nhotKey.operationTypeName = operationTypeName\r\n\r\nexport default hotKey;\r\n"]}
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/hotKey/index.js"],"names":["keyboard","keymaster","noConflict","hotKeyFactory","constructor","keys","handler","observerCallback","pressed","log","hotKeyConfig","defaultHotKeyConfig","operationControl","defaultOperationControl","filter","clickBefore","observe","MutationObserver","showLog","defineHotKeyConfig","getDefineHotKeyConfigByStore","length","window","deleteScope","getScope","join","defineOperationControl","getDefineOperationControlByStore","control","dynamicSelector","newhotKeyArraySort","a","b","replace","clickBeforeProp","controller","action","actuator","find","next","find_element","getFocusId","bind","register","unRegister","setFocus","clearFocus","observerTrigger","unbind","on","off","observer","dom","config","attributes","childList","subtree","containerDom","document","body","asyncQueryHotKeyDom","operator","currentNode","pollQueryDom","Array","isArray","index","element","target","result","setting_setData","localStore","get","JSON","parse","localStorage","getItem","defineHotKeyConfigList","conflictHotKeyConfigList","forEach","settingItem","enumController","getEnumOj","RE_POSParamType","SHORTCUT_KEY","ParamType","Id","DefaultValue","ExtField","Title","ID","Value","Name","TabIndex","ExtFieldParse","dynamic","classification","enableEdit","operation","operationType","isdisplay","error","configItem","describe","keyValue","id","push","itemOperationType","defineHotKey","defineHotKeyList","defineKey","operationKeys","opKey","array","fn","t","x","y","i","j","dynamicAction","keyName","focusId","directionSelector","targetKey","key","domSelector","actionNode","queryNode","includes","fnName","down","up","right","left","click","waring","triggerRegister","registerKey","trigger","item","container","className","targetDom","classNameList","some","queryDom","name","unlock","containerName","addKey","prev","rejectDoAction","resolve","reject","dynamicActionTarget","hotKeyProto","actionCompose","callback","actionPromise","prveValue","listener","value","then","res","isShouldQuickKeyClicked","lock","operations","operationItem","selector","isNew","filterNum","nextSibling","previousSibling","returnValue","arr","split","map","el","querySelectorAll","v","style","display","classList","add","focusContainer","remove","querySelector","currentClassList","hotKeyIdNode","callBack","handles","isHaveEvent","handle","handleIndex","findIndex","splice","node","nodeType","isShowLog","console","loadingImgs","hotKey","option","call","hotKeyPart","partName","otherClassName","hotKeyBindClass","hotKeyNotFilter","showHotKeyModal","classificationList","keyReplaceStringList","operationTypeName"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Created by hzy on 2019/11/27.\n */\n/**\n * @hotKey(option) 调用hotKey方法初始化状态\n * @option 可传入选项 {handler: 全局的句柄默认为$}\n * @observerCallback dom变化后的回调\n * @log 是否显示log\n * @hotKeyConfig 快捷键配置项\n * @operationControl 快捷键权限控制\n * @clickBefore 点击事件前的回调方法\n *\n * 初始化后的方法\n * action 传入第一个参数 按键字符串,触发config中的动作,返回一个promise,执行then方法可以从参数中拿到当前的上下文对象\n * action 第二个参数为回调函数,回调函数的参数会返回当前的动作触发的元素属性以及当前为第几步\n *\n * observer 监听dom变化,第一个参数为监听的dom目标,第二个参数为配置 具体查看 new MutationObserver observer\n * find 查找dom,可链式调用\n * next 查找下一个兄弟节点,参数中可传入数量跳过几个相邻的\n * prev 查找上一个兄弟节点,参数中可传入数量跳过几个相邻的\n * click 触发点击事件\n * register 注册一个全局的快捷键,第一个方法参数为快捷键名,第二个方法参数为目标容器class名,第三个方法参数为触发事件dom class名\n * unRegister 注销一个全局的快捷键\n *\n * \n * config & control 说明 见 ./config.js 文件\n *\n */\nimport keymaster from 'keymaster';\nimport { queryHotKey, queryCount } from './utils';\nimport { hotKeyConfig as defaultHotKeyConfig, operationControl as defaultOperationControl, classificationList,keyReplaceStringList,operationTypeName} from './config';\nimport { showHotKeyModal } from './hotKeyModal'\nimport {localStore,enumController} from 'mutants-util';\nimport './style.less';\n\nconst keyboard = keymaster.noConflict();\n\nconst hotKeyFactory = {\n constructor({\n keys = [],\n handler = '$',\n observerCallback,\n pressed,\n log = false,\n hotKeyConfig = defaultHotKeyConfig,\n operationControl = defaultOperationControl,\n filter,\n clickBefore\n } = {}) {\n // keys = ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKeyInjectOrEject)];\n const observe = observerCallback && new MutationObserver(observerCallback);\n hotKeyFactory.showLog = log;\n // 如果快捷键配置不存在使用默认\n let defineHotKeyConfig = this.getDefineHotKeyConfigByStore();\n \n // hotKeyFactory.hotKeyConfig = Object.keys(defineHotKeyConfig).length?defineHotKeyConfig:hotKeyConfig;\n hotKeyFactory.hotKeyConfig = Object.keys(defineHotKeyConfig).length?defineHotKeyConfig:hotKeyConfig;\n keys = keys.length == 0 ? ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKeyFactory.hotKeyConfig)] : keys;\n\n // 删除原来挂载的按键监听\n if(window[handler]){\n keyboard.deleteScope(keyboard.getScope())\n }\n keyboard(keys.join(), pressed);\n keyboard.filter = filter;\n \n let defineOperationControl = this.getDefineOperationControlByStore(hotKeyFactory.hotKeyConfig)\n hotKeyFactory.operationControl = defineOperationControl || operationControl;\n \n // 排序复合结算\n if(hotKeyFactory.operationControl[5] && hotKeyFactory.operationControl[5].control && hotKeyFactory.operationControl[5].dynamicSelector){\n const dynamicSelector = hotKeyFactory.operationControl[5].dynamicSelector;\n hotKeyFactory.operationControl[5].control = hotKeyFactory.newhotKeyArraySort(hotKeyFactory.operationControl[5].control,(a,b)=>{\n return dynamicSelector[a] && dynamicSelector[b]?dynamicSelector[a][0].replace('.settlement .paymode:','') - dynamicSelector[b][0].replace('.settlement .paymode:',''):-1\n })\n }\n\n hotKeyFactory.clickBeforeProp = clickBefore;\n const controller = {\n keys,\n hotKeyConfig:hotKeyFactory.hotKeyConfig,\n operationControl:hotKeyFactory.operationControl,\n action: this.actuator,\n find: this.find,\n next: this.next,\n find_element: this.find_element,\n getFocusId: this.getFocusId.bind(this),\n register: this.register,\n unRegister: this.unRegister,\n setFocus: this.setFocus,\n clearFocus: this.clearFocus,\n observerTrigger: observerCallback,\n bind: this.bind,\n unbind: this.unbind,\n on: this.on,\n off: this.off,\n observer(dom, config = { attributes: true, childList: true, subtree: true }) {\n const containerDom = dom || document.body;\n observe.observe(containerDom, config);\n },\n };\n // if (!window[handler]) {\n window[handler] = controller;\n // }\n return controller;\n },\n asyncQueryHotKeyDom(operator, currentNode) {\n const pollQueryDom = () => {\n if(Array.isArray(operator)){\n for (let index = 0; index < operator.length; index++) {\n const element = operator[index];\n const target = queryHotKey(element, currentNode);\n if (target) return target;\n }\n }else{\n const target = queryHotKey(operator, currentNode);\n if (target) return target;\n }\n const result = queryCount();\n if (result === 'done') return;\n\n return pollQueryDom();\n };\n\n return pollQueryDom();\n },\n\n // 获取自定义快捷键\n getDefineHotKeyConfigByStore() {\n // 正式环境使用缓存对象\n let setting_setData = localStore.get(\"setting_setData\");\n setting_setData = (setting_setData == 'undefined') || !setting_setData ? [] : setting_setData;\n if (setting_setData == null) {\n setting_setData = JSON.parse(localStorage.getItem(\"setting_setData\"));\n }\n\n // 本地调试使用\n // const setting_setData = window.web_hotKeyConfig\n let defineHotKeyConfig = {}\n let defineHotKeyConfigList = [];\n let conflictHotKeyConfigList = [];\n if (setting_setData && setting_setData.length != 0) {\n setting_setData.forEach((settingItem) => {\n // 快捷键固定ParamType\n const { RE_POSParamType } = enumController.getEnumOj();\n const { SHORTCUT_KEY } = RE_POSParamType\n if (settingItem.ParamType && (settingItem.ParamType.Id === SHORTCUT_KEY || settingItem.ParamType === SHORTCUT_KEY)) {\n const { DefaultValue, ExtField, Title, ID, Value, Name, TabIndex } = settingItem || {};\n let ExtFieldParse = { dynamic: false, classification: \"\", enableEdit: false, operation: [], operationType: 1, isdisplay: false };\n try {\n ExtFieldParse = JSON.parse(ExtField)\n } catch (error) { }\n const { dynamic, classification, enableEdit, operation, operationType, isdisplay } = ExtFieldParse\n\n const configItem = { Name, describe: Title, dynamic, keyValue: Value, operation, enableEdit, classification, id: ID, DefaultValue, operationType, TabIndex, isdisplay };\n\n if (Value !== '') {\n // 快捷键未被设置为空\n if (defineHotKeyConfig[Value]) {\n // 存在使用相同快捷键\n const { operationControl } = defineHotKeyConfig[Value];\n if (operationControl) {\n // 之前已经存入过两个快捷键 这是第三个\n if (!operationControl[operationType]) {\n defineHotKeyConfig[Value].operationControl[operationType] = configItem;\n } else {\n // 表示有冲突快捷键\n conflictHotKeyConfigList.push({ ...configItem, keyValue: \"\" });\n return null\n }\n } else {\n const { operationType: itemOperationType } = defineHotKeyConfig[Value];\n if (operationType == itemOperationType) {\n // 存在冲突快捷键 因为 dynamic 并未改变为动态键所致\n conflictHotKeyConfigList.push({ ...configItem, keyValue: \"\" });\n return null\n } else {\n // 存储第二个快捷键\n const operationControl = { ...defineHotKeyConfig[Value], dynamic: true };\n defineHotKeyConfig[Value] = {\n operationControl: {}\n };\n // 搬移一层对象信息到第二次 变为动态键\n defineHotKeyConfig[Value].dynamic = true;\n defineHotKeyConfig[Value].operationControl[itemOperationType] = operationControl\n // 增加第二个动态键\n defineHotKeyConfig[Value].operationControl[operationType] = { ...configItem, dynamic: true }\n }\n }\n } else {\n // 单个动态键\n if (dynamic) {\n defineHotKeyConfig[Value] = {\n dynamic: true,\n operationControl: {}\n };\n defineHotKeyConfig[Value].operationControl[operationType] = { ...configItem, dynamic: true }\n } else {\n defineHotKeyConfig[Value] = { ...configItem, dynamic: false };\n }\n }\n } else {\n // 快捷键设置为空\n }\n\n defineHotKeyConfigList.push(configItem);\n }\n })\n } else {\n defineHotKeyConfig = defaultHotKeyConfig\n }\n window.defineHotKeyConfigList = [...defineHotKeyConfigList, ...conflictHotKeyConfigList];\n return defineHotKeyConfig\n },\n\n\n // 获取自定义权限\n getDefineOperationControlByStore(defineHotKey){\n // 获取自定义快捷键配置JSON KEY值集合\n const defineHotKeyList = Object.keys(defineHotKey)\n\n let defineOperationControl = {};\n\n // 遍历自定义快捷键的key值 \n defineHotKeyList.forEach(defineKey => {\n\n const { dynamic,operationControl} = defineHotKey[defineKey] || {}\n // 是否是动态键 \n if(dynamic){\n if(operationControl){\n // 动态键\n const operationKeys = Object.keys(operationControl);\n operationKeys.forEach( opKey => {\n\n const {operation} = operationControl[opKey] || {};\n // 构建权限页面结构\n if(!defineOperationControl[opKey]){\n defineOperationControl[opKey] = {\n control:[],\n dynamicSelector:{}\n }\n }\n\n // 添加键值 \n defineOperationControl[opKey].control.push(defineKey);\n // 如果是上下键 dynamicSelector值有所不同 \n if(defineKey === 'down' || defineKey === 'up'){\n defineOperationControl[opKey].dynamicSelector['up&down'] = operation;\n return;\n }\n defineOperationControl[opKey].dynamicSelector[defineKey] = operation\n });\n }else{\n\n const { operationType , operation } = defineHotKey[defineKey] || {}\n if(!defineOperationControl[operationType]){\n defineOperationControl[operationType] = {\n control:[],\n dynamicSelector:{}\n }\n }\n // 添加键值 \n defineOperationControl[operationType].control.push(defineKey);\n defineOperationControl[operationType].dynamicSelector[defineKey] = operation\n // const {}\n }\n }\n });\n return defineOperationControl;\n },\n\n newhotKeyArraySort(array,fn){\n\t\tlet t; \n fn = fn || function (x, y) { return x - y };\n for (var i = 0; i < array.length; i++) {\n for (var j = i; j < array.length; j++) {\n if (fn(array[i], array[j]) > 0) {\n t = array[i];\n array[i] = array[j];\n array[j] = t;\n }\n }\n }\n\t\treturn array; \t\n\t},\n\n dynamicAction(keyName, target) {\n const { dynamic } = this.hotKeyConfig[keyName] || {};\n if (!dynamic) return;\n\n const { dynamicSelector = {} } = this.operationControl[this.focusId] || {};\n const { directionSelector = {} } = this.operationControl[this.focusId] || {};\n let targetKey = 'up&down'\n\n if(keyName !== 'up' && keyName !== 'down'){\n targetKey = Object.keys(dynamicSelector).find(key => key === keyName);\n }\n \n const domSelector = dynamicSelector[targetKey];\n let actionNode = hotKeyFactory.queryNode(target).find(domSelector);\n\n if ('updown'.includes(keyName) && actionNode.currentNode) {\n const fnName = { down: 'next', up: 'prev' };\n actionNode = actionNode[fnName[keyName]]();\n }\n\n if(this.focusId ==7 && 'leftright'.includes(keyName) && actionNode.currentNode){\n const fnName = { right: 'next', left: 'prev' };\n actionNode = actionNode[fnName[keyName]]();\n }\n\n actionNode.currentNode && actionNode.click();\n\n if (!actionNode.currentNode) {\n hotKeyFactory.log(true, { waring: `the [${keyName}] hot-key of dynamic trigger Dom not found` });\n return true;\n }\n\n return actionNode.currentNode;\n },\n triggerRegister(keyName) {\n if (!hotKeyFactory.registerKey) return;\n\n const trigger = this.registerKey.find(item => item.key === keyName);\n if (!trigger) return;\n\n const { container, className } = trigger;\n const containerDom = this.asyncQueryHotKeyDom(container);\n let targetDom;\n const classNameList = Array.isArray(className) ? className : [className];\n classNameList.some(name => {\n const queryDom = hotKeyFactory.queryNode(containerDom).find(name);\n targetDom = queryDom;\n return !!queryDom.currentNode;\n });\n\n targetDom.currentNode && targetDom.click();\n hotKeyFactory.log(!targetDom.currentNode, { waring: 'register hot-key trigger Dom not found' });\n\n hotKeyFactory.unlock();\n },\n register(keyName) {\n return (containerName) => (className) => {\n const registerKey = {\n key: keyName,\n container: containerName,\n className\n };\n\n if (!hotKeyFactory.registerKey) {\n hotKeyFactory.registerKey = [registerKey];\n } else {\n const addKey = [...hotKeyFactory.registerKey.filter(item => item.key !== keyName), registerKey];\n hotKeyFactory.registerKey = addKey;\n }\n };\n },\n unRegister(keyName) {\n if (hotKeyFactory.registerKey) {\n const keys = hotKeyFactory.registerKey.filter(item => item.key !== keyName);\n hotKeyFactory.registerKey = keys;\n }\n },\n queryNode(target) {\n const {\n find, next, prev, setFocus, clearFocus\n } = this;\n\n return {\n currentNode: target,\n find,\n next,\n prev,\n setFocus,\n clearFocus,\n click() {\n hotKeyFactory.clickBefore();\n this.currentNode.click();\n }\n };\n },\n rejectDoAction(keyName) {\n const id = hotKeyFactory.getFocusId();\n if (!id) return true;\n\n const { control, directionSelector } = this.operationControl[id] || {};\n\n // if (control === 'ALL') return;\n if (id == '1') return; //动态生成id=='1' 代替ALL\n if (!control || !control.includes(keyName)) return true;\n },\n action(keyName, className) {\n return new Promise((resolve, reject) => {\n const target = this.asyncQueryHotKeyDom(className);\n\n const dynamicActionTarget = hotKeyFactory.dynamicAction(keyName, target);\n if (dynamicActionTarget) return resolve(dynamicActionTarget);\n\n if (target) {\n const hotKeyProto = hotKeyFactory.queryNode(target);\n\n hotKeyProto.click();\n hotKeyFactory.unlock();\n\n resolve(hotKeyProto);\n } else {\n hotKeyFactory.log(true, { waring: `not found hot ket target of [${className}]` });\n hotKeyFactory.unlock();\n }\n });\n },\n actionCompose(operation, keyName, callback) {\n let actionPromise = null;\n let prveValue = null;\n const { listener } = hotKeyFactory;\n\n operation.forEach((value, index) => {\n if (!actionPromise) {\n prveValue = value;\n actionPromise = hotKeyFactory.action(keyName, value);\n if (index === (operation.length - 1)) {\n actionPromise.then(res => {\n listener(callback, res, index);\n hotKeyFactory.unlock();\n return this;\n });\n }\n } else {\n actionPromise.then(res => {\n listener(callback, res, index - 1);\n prveValue = value;\n return hotKeyFactory.action(keyName, value);\n });\n\n if (index === (operation.length - 1)) {\n actionPromise.then(res => {\n listener(callback, res, index);\n hotKeyFactory.unlock();\n return this;\n });\n }\n }\n });\n\n return actionPromise;\n },\n actuator(keyName, callback) {\n hotKeyFactory.log(true, { keyName });\n \n if(hotKeyFactory.isShouldQuickKeyClicked()) return null\n // if (hotKeyFactory.lock) return;\n hotKeyFactory.lock = true;\n\n if (hotKeyFactory.triggerRegister(keyName)) return;\n if (hotKeyFactory.rejectDoAction(keyName)) return;\n\n const { operation = ['.hot-key-focus-container'] } = this.hotKeyConfig[keyName] || {};\n const operations = Array.isArray(operation[0]) ? operation : [operation]; // 存在一个按键操作多个节点\n\n operations.forEach(operationItem => hotKeyFactory.actionCompose(operationItem, keyName, callback));\n },\n find(selector, isNew) {\n let currentNode;\n if (!this.currentNode || isNew) {\n currentNode = hotKeyFactory.asyncQueryHotKeyDom(selector);\n } else {\n currentNode = hotKeyFactory.asyncQueryHotKeyDom(selector, this.currentNode);\n }\n\n return hotKeyFactory.queryNode(currentNode);\n },\n next(filterNum = 1) {\n for (let i = 0; i < filterNum; i++) {\n if (!this.currentNode) {\n hotKeyFactory.log(true, { waring: 'There is a warning in the next,trigger Dom is not found ' });\n break;\n }\n this.currentNode = this.currentNode.nextSibling;\n }\n\n return this;\n },\n prev(filterNum = 1) {\n for (let i = 0; i < filterNum; i++) {\n if (!this.currentNode) {\n hotKeyFactory.log(true, { waring: 'There is a warning in the prev,trigger Dom is not found ' });\n break;\n }\n this.currentNode = this.currentNode.previousSibling;\n }\n\n return this;\n },\n find_element(selector) {\n let returnValue = [];\n let arr = selector.split(' ');\n if (arr && arr.length > 0) {\n arr.map(item => {\n let el = document.querySelectorAll(`.hot-key-focus-container ${item}`);\n returnValue = [...returnValue, ...el];\n })\n returnValue = returnValue && [...returnValue].filter(v => v.style.display != 'none')\n } \n return returnValue;\n },\n setFocus(target) {\n const container = target || this.currentNode;\n container && container.classList.add('hot-key-focus-container');\n //hotKeyFactory.log(!container, { waring: 'the set focus container Dom is not found' });\n },\n clearFocus() {\n const focusContainer = document.querySelectorAll('.hot-key-focus-container');\n\n for (const dom of focusContainer) {\n dom.classList.remove('hot-key-focus-container');\n }\n hotKeyFactory.log(true, { log: 'the focus container is clear' });\n },\n clickBefore() {\n const { clickBeforeProp } = hotKeyFactory;\n clickBeforeProp && clickBeforeProp();\n },\n unlock() {\n hotKeyFactory.lock = false;\n },\n getFocusId() {\n const focusContainer = document.querySelector('.hot-key-focus-container');\n if (!focusContainer) return hotKeyFactory.log(true, { waring: 'the focus container is not found' });\n\n let classList;\n const currentClassList = Array.from(focusContainer.classList) || [];\n if (currentClassList.includes('hot-key-id')) {\n classList = currentClassList;\n } else {\n const hotKeyIdNode = focusContainer.querySelector('.hot-key-id');\n hotKeyFactory.log(!hotKeyIdNode, { waring: 'not have any bind hot-key id node' });\n\n if (!hotKeyIdNode) return;\n\n classList = Array.from(hotKeyIdNode.classList) || [];\n }\n const [, id] = (classList.find(className => className.includes('hot-key-id=')) || '').split('=');\n this.focusId = id;\n\n return id;\n },\n bind(keys = [], callBack) {\n keyboard(keys.join(), callBack);\n },\n unbind(keys = []) {\n keys.forEach(key => keyboard.unbind(key));\n },\n handles: [],\n on(callback) {\n const handles = hotKeyFactory.handles || [];\n const isHaveEvent = handles.some(handle => handle === callback);\n\n if (!isHaveEvent) {\n handles.push(callback);\n }\n },\n off(callback) {\n const handles = hotKeyFactory.handles || [];\n const handleIndex = handles.findIndex(handle => handle === callback);\n\n if (~handleIndex) {\n handles.splice(handleIndex, 1);\n }\n },\n listener(callback, result = {}, index) {\n const node = result.nodeType === 1 ? result : result.currentNode;\n hotKeyFactory.handles.forEach(handle => handle(node, index));\n\n callback && callback(node, index);\n },\n log(isShowLog, { keyName, waring } = {}) {\n if (!this.showLog || !isShowLog) return;\n\n if (keyName) console.log(`[hot-key]: ${keyName}`);\n if (waring) console.log(`[hot-key-waring]: ${waring}`);\n },\n\n isShouldQuickKeyClicked() {\n const loadingImgs = document.querySelector(\"img.loading-img-symbol\");\n if(loadingImgs) return true\n }\n};\n\nfunction hotKey(option) {\n return hotKeyFactory.constructor.call(hotKeyFactory, option);\n}\n\nhotKey.hotKeyPart = function (partName, otherClassName = '') {\n return `${otherClassName} hot-key-part-${partName}`;\n};\n\nhotKey.hotKeyBindClass = function (id, otherClassName = '') {\n return `${otherClassName} hot-key-id hot-key-id=${id}`;\n};\n\nhotKey.hotKeyNotFilter = function (otherClassName = '') {\n return `${otherClassName} hot-key-not-filter`;\n};\n\nhotKey.hotKeyConfig = defaultHotKeyConfig;\nhotKey.operationControl = defaultOperationControl;\nhotKey.showHotKeyModal = showHotKeyModal;\nhotKey.classificationList = classificationList;\nhotKey.keyReplaceStringList = keyReplaceStringList\nhotKey.operationTypeName = operationTypeName\n\nexport default hotKey;\n"]}
|