소스 정리
parent
55502feb47
commit
dad5dc07fe
@ -1,75 +0,0 @@
|
|||||||
document.addEventListener('keydown', (event) => {
|
|
||||||
|
|
||||||
var RESERVED_FUNCTION_KEYS = ["F1","F2","F3","F4","F6","F7","F8","F9","F10","F11","PageDown","PageUp"];
|
|
||||||
var KEYS_FOR_GLOBAL = ["F9","F10","F11"];
|
|
||||||
|
|
||||||
if(RESERVED_FUNCTION_KEYS.includes(event.key)){
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
var activeBasckdropYn = isActiveBackdrop();
|
|
||||||
|
|
||||||
var curArea = getCurrentAreaForShortcutKey();
|
|
||||||
|
|
||||||
if(KEYS_FOR_GLOBAL.includes(event.key)){ //전역 기능
|
|
||||||
|
|
||||||
if(event.key == "F9"){
|
|
||||||
if($("#securityMode--top").is(":checked")){
|
|
||||||
$("#securityMode--top").prop("checked", false);
|
|
||||||
fn_securityModeToggle(false);
|
|
||||||
} else {
|
|
||||||
$("#securityMode--top").prop("checked", true);
|
|
||||||
fn_securityModeToggle(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if(event.key == "F10"){
|
|
||||||
if($("#photoMask--top").is(":checked")){
|
|
||||||
$("#photoMask--top").prop("checked", false);
|
|
||||||
fn_photoMask(false);
|
|
||||||
} else {
|
|
||||||
$("#photoMask--top").prop("checked", true);
|
|
||||||
fn_photoMask(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!activeBasckdropYn){
|
|
||||||
//TODO : do something
|
|
||||||
}
|
|
||||||
|
|
||||||
} else { //페이지별,다이얼로그별 버튼
|
|
||||||
|
|
||||||
if(curArea != null){
|
|
||||||
|
|
||||||
var targetButton = $(curArea).find("button.btn-"+event.key);
|
|
||||||
|
|
||||||
if(targetButton.length == 1){
|
|
||||||
targetButton.click();
|
|
||||||
} else {
|
|
||||||
if(targetButton.length > 1){
|
|
||||||
debug('단축키 버튼 중복 : ' + targetButton.length + "개");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//단축키 기능이 사용될 영역을 반환한다.
|
|
||||||
function getCurrentAreaForShortcutKey(){
|
|
||||||
|
|
||||||
if(isActiveBackdrop()){
|
|
||||||
return getLastOpenDialog();
|
|
||||||
} else {
|
|
||||||
return getActiveRootTabArea();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
|||||||
|
class StringSupport {
|
||||||
|
|
||||||
|
static help(){
|
||||||
|
console.log("snakeToCamel(문자열) : 스네이크 표기법을 카멜 표기법으로 변경한다.");
|
||||||
|
console.log("camelToKebab(문자열) : 카멜 표기법을 케밥 표기법으로 변경한다.");
|
||||||
|
console.log("escapeHTMLEntity(문자열) : HTML 엔티티 문자코드를 특수문자로 치환한다.");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 스네이크 표기법을 카멜 표기법으로 변경한다.
|
||||||
|
* @return 치환된 문자열
|
||||||
|
*/
|
||||||
|
static snakeToCamel(text){
|
||||||
|
text = text.toLowerCase();
|
||||||
|
var arrUnderbar = text.match(/\_[a-zA-Z]/g);
|
||||||
|
if(arrUnderbar){
|
||||||
|
for(var j = 0; j < arrUnderbar.length; j++) {
|
||||||
|
text = text.replace(arrUnderbar[j], arrUnderbar[j].toUpperCase().replace("_", ""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 카멜 표기법을 케밥 표기법으로 변경한다.
|
||||||
|
* @return 치환된 문자열
|
||||||
|
*/
|
||||||
|
static camelToKebab(text){
|
||||||
|
return text.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HTML 엔티티 문자코드를 특수문자로 치환한다.
|
||||||
|
* @return 치환된 문자열
|
||||||
|
*/
|
||||||
|
static escapeHTMLEntity(str) {
|
||||||
|
if(str == undefined || str == null){
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
var regex = /&(amp|lt|gt|quot|#39);/g;
|
||||||
|
var chars = {
|
||||||
|
'&': '&',
|
||||||
|
'<': '<',
|
||||||
|
'>': '>',
|
||||||
|
'"': '"',
|
||||||
|
''': "'"
|
||||||
|
};
|
||||||
|
|
||||||
|
if(regex.test(str)) {
|
||||||
|
return str.replace(regex, (matched) => chars[matched] || matched);
|
||||||
|
} else {
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue