HandStack 화면 JavaScript 작성 지침
이 문서는 HandStack 화면 개발 시 준수해야 할 한국어 응답 규칙 및 syn.js, syn.uicontrols.js 기반의 JavaScript 작성 지침을 명시합니다.
한국어 응답 규칙
모든 응답은 한국어로 작성하며, 다음 원칙을 따릅니다.
- 언어 통일: 모든 응답 콘텐츠는 한국어로 작성합니다.
- 코드 주석: 주석을 만들지 않아야 합니다. No Comment.
- 기술 용어: 필요시 영어 원문과 한국어를 병행 표기합니다 (예: "컨테이너(container)").
- 원문 유지: 에러 메시지나 로그는 원본 언어를 유지하되, 이에 대한 설명은 한국어로 제공합니다.
- 예외 상황:
- 코드 자체(변수명, 함수명 등)는 영어로 작성합니다.
- 공식 문서나 명령어는 원본 언어를 유지합니다.
- 사용자가 명시적으로 다른 언어를 요청하는 경우에만 해당 언어를 사용합니다.
syn.js 라이브러리의 주요 기능
syn.js 라이브러리는 HandStack 화면의 동작과 업무 구현을 위해 반복적인 코드를 좀 더 쉽고 일관성 있도록 하는 공통 기능 모음입니다. 최소한의 학습으로 실무에 적용 가능하도록 설계 되었으며 다음과 같은 특징이 있습니다.
- ECMAScript 2017 스펙 이상을 사용하는 표준 Javascript입니다. (Internet Explorer 미지원)
- 단독 사용 가능한 종속성이 없는 독립적인 라이브러리 입니다.
- 화면과 기능에 대한 업무 로직을 Javascript 객체 기반으로 만듭니다.
- 어떠한 외부 프레임워크와 라이브러리(jQuery, prototype, Vue, React 등등)의 통합이 가능합니다.
- 화면 개발 이후 유지보수 및 운영에 필요한 일관적인 소스 코드 품질을 만듭니다.
| 약어 | 파일명 | 설명 |
|---|---|---|
| syn.$b | syn.browser.js | 브라우저 정보 확인 기능 제공 |
| syn.$m | syn.manipulation.js | DOM (Document Object Model) 조작 기능 제공 |
| syn.$d | syn.dimension.js | HTML Element 크기, 위치 제어 기능 제공 |
| syn.$c | syn.cryptography.js | base64, sha256 및 암호화 기능 제공 |
| syn.$k | syn.keyboard.js | 키보드 단축키 기능 제공 |
| syn.$v | syn.validation.js | 유효성 검사 기능 제공 |
| syn.$l | syn.library.js | 공통 라이브러리 기능 제공 |
| syn.$w | syn.webform.js | 화면 개발 및 거래 업무 기능 제공 |
| syn.$r | syn.request.js | http 요청 및 URL, Cookie 조작 기능 제공 |
| syn.$n | syn.network.js | iframe 화면 간에 양방향 통신 기능을 제공 |
| syn.$p | syn.print.js | PDF 문서를 이용한 인쇄 기능을 제공 |
| $date, $array, $string, $number, $object | syn.extension.js | 기본 데이터 타입 확장 기능 제공 |
syn.$b|syn.browser.js 예제 코드
'use strict';
let $browser = {
extends: [
'parsehtml'
],
hook: {
pageLoad() {
syn.$l.get('txt_appName').value = syn.$b.appName;
syn.$l.get('txt_appCodeName').value = syn.$b.appCodeName;
syn.$l.get('txt_appVersion').value = syn.$b.appVersion;
syn.$l.get('txt_cookieEnabled').value = syn.$b.cookieEnabled;
syn.$l.get('txt_pdfViewerEnabled').value = syn.$b.pdfViewerEnabled;
syn.$l.get('txt_platform').value = syn.$b.platform;
syn.$l.get('txt_devicePlatform').value = syn.$b.devicePlatform;
syn.$l.get('txt_userAgent').value = syn.$b.userAgent;
syn.$l.get('txt_devicePixelRatio').value = syn.$b.devicePixelRatio;
syn.$l.get('txt_isExtended').value = syn.$b.isExtended;
syn.$l.get('txt_screenWidth').value = syn.$b.screenWidth;
syn.$l.get('txt_screenHeight').value = syn.$b.screenHeight;
syn.$l.get('txt_language').value = syn.$b.language;
syn.$l.get('txt_isWebkit').value = syn.$b.isWebkit;
syn.$l.get('txt_isMac').value = syn.$b.isMac;
syn.$l.get('txt_isLinux').value = syn.$b.isLinux;
syn.$l.get('txt_isWindow').value = syn.$b.isWindow;
syn.$l.get('txt_isOpera').value = syn.$b.isOpera;
syn.$l.get('txt_isIE').value = syn.$b.isIE;
syn.$l.get('txt_isChrome').value = syn.$b.isChrome;
syn.$l.get('txt_isEdge').value = syn.$b.isEdge;
syn.$l.get('txt_isFF').value = syn.$b.isFF;
syn.$l.get('txt_isSafari').value = syn.$b.isSafari;
syn.$l.get('txt_isMobile').value = syn.$b.isMobile;
}
},
event: {
btn_getSystemFonts_click() {
syn.$l.get('txt_getSystemFonts').value = syn.$b.getSystemFonts().map((item) => {
return item.trim();
}).join('\n');
},
btn_getPlugins_click() {
syn.$l.get('txt_getPlugins').value = syn.$b.getPlugins().map((item) => {
return item.trim();
}).join('\n');
},
async btn_fingerPrint_click() {
syn.$l.get('txt_fingerPrint').value = await syn.$b.fingerPrint();
},
btn_windowWidth_click() {
syn.$l.get('txt_windowWidth').value = syn.$b.windowWidth();
},
btn_windowHeight_click() {
syn.$l.get('txt_windowHeight').value = syn.$b.windowHeight();
},
async btn_getIpAddress_click() {
syn.$l.get('txt_getIpAddress').value = await syn.$b.getIpAddress();
}
},
};
syn.$m|syn.manipulation.js 예제 코드
'use strict';
let $manipulation = {
extends: [
'parsehtml'
],
event: {
btn_childNodes_click() {
var childNodes = syn.$m.childNodes(document.body);
var nodes = [];
for (var i = 0, length = childNodes.length; i < length; i++) {
nodes.push(childNodes[i].nodeName + '\n');
}
syn.$l.get('txt_childNodes').value = nodes.join('');
},
btn_children_click() {
var children = syn.$m.children(document.body);
var nodes = [];
for (var i = 0, length = children.length; i < length; i++) {
nodes.push(children[i].nodeName + '\n');
}
syn.$l.get('txt_children').value = nodes.join('');
},
btn_firstChild_click() {
syn.$l.get('txt_firstChild').value = syn.$m.firstChild(document.body);
},
btn_firstElementChild_click() {
syn.$l.get('txt_firstElementChild').value = syn.$m.firstElementChild(document.body);
},
btn_lastChild_click() {
syn.$l.get('txt_lastChild').value = syn.$m.lastChild(document.body);
},
btn_lastElementChild_click() {
syn.$l.get('txt_lastElementChild').value = syn.$m.lastElementChild(document.body);
},
btn_nextSibling1_click() {
syn.$l.get('txt_nextSibling').value = '';
syn.$l.get('txt_nextSibling').value = syn.$m.nextSibling('nextSibling_item1')?.nodeName;
},
btn_nextSibling2_click() {
syn.$l.get('txt_nextSibling').value = '';
syn.$l.get('txt_nextSibling').value = syn.$m.nextSibling('nextSibling_item2')?.nodeName;
},
btn_nextElementSibling1_click() {
syn.$l.get('txt_nextElementSibling').value = '';
syn.$l.get('txt_nextElementSibling').value = syn.$m.nextElementSibling('nextElementSibling_item1')?.nodeName;
},
btn_nextElementSibling2_click() {
syn.$l.get('txt_nextElementSibling').value = '';
syn.$l.get('txt_nextElementSibling').value = syn.$m.nextElementSibling('nextElementSibling_item2')?.nodeName;
},
btn_previousSibling1_click() {
syn.$l.get('txt_previousSibling').value = '';
syn.$l.get('txt_previousSibling').value = syn.$m.previousSibling('previousSibling_item1')?.nodeName;
},
btn_previousSibling2_click() {
syn.$l.get('txt_previousSibling').value = '';
syn.$l.get('txt_previousSibling').value = syn.$m.previousSibling('previousSibling_item2')?.nodeName;
},
btn_previousElementSibling1_click() {
syn.$l.get('txt_previousElementSibling').value = '';
syn.$l.get('txt_previousElementSibling').value = syn.$m.previousElementSibling('previousElementSibling_item1')?.nodeName;
},
btn_previousElementSibling2_click() {
syn.$l.get('txt_previousElementSibling').value = '';
syn.$l.get('txt_previousElementSibling').value = syn.$m.previousElementSibling('previousElementSibling_item2')?.nodeName;
},
btn_siblings_click() {
var siblingELs = syn.$m.siblings('btn_parentNode');
var nodes = [];
for (var i = 0, length = siblingELs.length; i < length; i++) {
nodes.push(siblingELs[i].nodeName + '\n');
}
syn.$l.get('txt_siblings').value = nodes.join('');
},
btn_parentNode_click() {
syn.$l.get('txt_parentNode').value = syn.$m.parentNode(document.body)?.nodeName;
},
btn_parentElement_click() {
syn.$l.get('txt_parentElement').value = syn.$m.parentElement(document.body)?.nodeName;
},
btn_value_click() {
syn.$m.value('txt_value', 'hello world');
},
btn_textContent_click() {
syn.$m.textContent('div_textContent', 'hello world');
},
btn_innerText_click() {
syn.$m.innerText('div_innerText', 'hello world');
},
btn_innerHTML_click() {
syn.$m.innerHTML('div_innerHTML', '<b style="color: red;">hello world</b>');
},
btn_outerHTML_click() {
syn.$l.get('txt_outerHTML').value =syn.$m.outerHTML('div_outerHTML');
},
btn_className_click() {
syn.$l.get('txt_className').value = syn.$m.className('btn_className');
},
btn_removeAttribute_click() {
syn.$l.get('txt_attribute').value = '';
syn.$m.removeAttribute('txt_attribute', 'custom1');
},
btn_getAttribute_click() {
syn.$l.get('txt_attribute').value = syn.$m.getAttribute('txt_attribute', 'custom1');
},
btn_setAttribute_click() {
syn.$m.setAttribute('txt_attribute', 'custom1', 'hello world');
},
btn_appendChild_click() {
var el = document.createElement('LI');
el.textContent = 'Grape';
syn.$m.appendChild('myList', el);
},
btn_setStyle_click() {
syn.$m.setStyle('div_setStyle', 'color', 'red');
},
btn_addStyle_click() {
syn.$m.addStyle('div_addStyle', { backgroundColor: 'blue', color: 'white', border: '2px solid red' });
},
btn_addCssText_click() {
syn.$m.addCssText('div_addCssText', 'background-color: lightblue;');
},
btn_getStyle_click() {
syn.$l.get('txt_getStyle').value = syn.$m.getStyle('div_getStyle', 'border');
},
btn_getComputedStyle_click() {
syn.$l.get('txt_getComputedStyle').value = syn.$m.getComputedStyle('txt_getComputedStyle', 'border');
},
btn_hasHidden_click() {
syn.$l.get('txt_hasHidden').value = syn.$m.hasHidden('txt_hasHidden');
},
btn_addClass_click() {
syn.$m.addClass('div_className', syn.$l.get('txt_className1').value);
},
btn_hasClass_click() {
syn.$l.get('txt_className1').value = syn.$m.hasClass('div_className', syn.$l.get('txt_className1').value);
},
btn_toggleClass_click() {
syn.$m.toggleClass('div_className', syn.$l.get('txt_className1').value);
},
btn_removeClass_click() {
syn.$m.removeClass('div_className', syn.$l.get('txt_className1').value);
},
btn_append_click() {
syn.$m.append('div_append', 'input', 'txt' + syn.$l.random(), {
styles: {
display: 'block',
color: 'red'
},
classNames: 'f:32 mb-2',
value: 'hello world',
text: 'hello world',
content: 'hello world',
html: 'hello world'
});
},
btn_prepend_click() {
var value = $date.toString(new Date(), 'a');
var divEL = syn.$m.create({
tag: 'div',
styles: {
display: 'block',
color: 'red'
},
attributes: {
custom1: 'custom1',
readonly: 'readonly'
},
data: {
data1: 'data1',
data2: 'data2',
data3: 'data3'
},
className: 'form-control',
classNames: 'f:32 mb-2',
value: value,
text: value,
content: value,
html: value
});
syn.$m.prepend(divEL, 'div_prepend');
},
btn_copy_click() {
var copyEL = syn.$m.copy('div_copy');
syn.$l.get('txt_copy').value = copyEL.outerHTML;
copyEL.innerHTML = '';
},
btn_remove_click() {
syn.$m.remove('div_remove');
},
btn_hasChild_click() {
syn.$l.get('txt_hasChild').value = syn.$m.hasChild('txt_hasChild');
},
btn_insertAfter_click() {
var divEL = syn.$m.create({
text: $date.toString(new Date(), 'a'),
});
syn.$m.insertAfter(divEL, 'div_insertAfter');
},
btn_display_click() {
syn.$m.display('div_display', syn.$l.get('chk_display').checked);
},
btn_toggleDisplay_click() {
syn.$m.toggleDisplay('div_display');
},
btn_parent_click() {
syn.$l.get('txt_parent').value = syn.$m.parent('btn_parent').outerHTML;
},
btn_parentID_click() {
syn.$l.get('txt_parent').value = syn.$m.parent('btn_parent', 'div_parent').outerHTML;
},
btn_create_click() {
var el = syn.$m.create(JSON.parse(syn.$l.get('txt_createJson').value));
syn.$l.get('txt_create').value = el.outerHTML;
},
btn_each_click() {
var nodes = [];
var siblingELs = syn.$m.siblings('btn_parentNode');
syn.$m.each(siblingELs, (item, index) => {
nodes.push(`name: ${item.nodeName}, index: ${index}` + '\n');
});
syn.$l.get('txt_each').value = nodes.join('');
},
btn_setActive_click() {
syn.$m.setActive('div_setActive', syn.$l.get('chk_setActive').checked);
},
btn_setSelected_click(evt) {
syn.$m.setSelected('opt_setSelected_Item1', true, true);
syn.$m.setSelected('opt_setSelected_Item2', true, true);
syn.$m.setSelected('opt_setSelected_Item3', true, true);
},
btn_setChecked_click(evt) {
syn.$m.setChecked('opt_setChecked_Item1', true);
syn.$m.setChecked('opt_setChecked_Item2', true);
syn.$m.setChecked('opt_setChecked_Item3', true);
}
}
};
syn.$d|syn.dimension.js 예제 코드
'use strict';
let $dimension = {
extends: [
'parsehtml'
],
event: {
btn_getDocumentSize_click() {
syn.$l.get('txt_getDocumentSize').value = JSON.stringify(syn.$d.getDocumentSize());
},
btn_getWindowSize_click() {
syn.$l.get('txt_getWindowSize').value = JSON.stringify(syn.$d.getWindowSize());
},
btn_getScrollPosition_click() {
syn.$l.get('txt_getScrollPosition').value = JSON.stringify(syn.$d.getScrollPosition('btn_getScrollPosition'));
},
btn_getMousePosition_click(evt) {
syn.$l.get('txt_getMousePosition').value = JSON.stringify(syn.$d.getMousePosition(evt));
},
btn_offset_click(evt) {
syn.$l.get('txt_offset').value = JSON.stringify(syn.$d.offset('btn_offset'));
},
btn_offsetLeft_click(evt) {
syn.$l.get('txt_offsetLeft').value = JSON.stringify(syn.$d.offsetLeft('btn_offsetLeft'));
},
btn_parentOffsetLeft_click(evt) {
syn.$l.get('txt_parentOffsetLeft').value = JSON.stringify(syn.$d.parentOffsetLeft('btn_parentOffsetLeft'));
},
btn_offsetTop_click(evt) {
syn.$l.get('txt_offsetTop').value = JSON.stringify(syn.$d.offsetTop('btn_offsetTop'));
},
btn_parentOffsetTop_click(evt) {
syn.$l.get('txt_parentOffsetTop').value = JSON.stringify(syn.$d.parentOffsetTop('btn_parentOffsetTop'));
},
btn_getSize_click(evt) {
syn.$l.get('txt_getSize').value = JSON.stringify(syn.$d.getSize('btn_getSize'));
},
btn_measureWidth_click(evt) {
syn.$l.get('txt_measureWidth').value = JSON.stringify(syn.$d.measureWidth('hello world', '14px'));
},
btn_measureHeight_click(evt) {
syn.$l.get('txt_measureHeight').value = JSON.stringify(syn.$d.measureHeight('hello world', '14px'));
},
btn_measureSize_click(evt) {
syn.$l.get('txt_measureSize').value = JSON.stringify(syn.$d.measureSize('hello world', '14px'));
}
}
};
syn.$c|syn.cryptography.js 예제 코드
'use strict';
let $cryptography = {
extends: [
'parsehtml'
],
event: {
btn_base64Encode_click() {
syn.$l.get('txt_base64EncodeResult').value = syn.$c.base64Encode(syn.$l.get('txt_base64Encode').value);
},
btn_base64Decode_click() {
syn.$l.get('txt_base64DecodeResult').value = syn.$c.base64Decode(syn.$l.get('txt_base64Decode').value);
},
btn_utf8Encode_click() {
syn.$l.get('txt_utf8EncodeResult').value = syn.$c.utf8Encode(syn.$l.get('txt_utf8Encode').value);
},
btn_utf8Decode_click() {
syn.$l.get('txt_utf8DecodeResult').value = syn.$c.utf8Decode(syn.$l.get('txt_utf8Decode').value);
},
btn_isWebCryptoSupported_click() {
syn.$l.get('txt_isWebCryptoSupportedResult').value = syn.$c.isWebCryptoSupported();
},
btn_padKey_click() {
syn.$l.get('txt_padKeyResult').value = syn.$c.padKey(syn.$l.get('txt_padKey').value, syn.$l.get('txt_padLength').value);
},
async btn_generateHMAC_click() {
syn.$l.get('txt_generateHMACResult').value = await syn.$c.generateHMAC(syn.$l.get('txt_generateHMACKey').value, syn.$l.get('txt_generateHMACMessage').value);
},
async btn_verifyHMAC_click() {
syn.$l.get('txt_verifyHMACResult').value = await syn.$c.verifyHMAC(syn.$l.get('txt_verifyHMACKey').value, syn.$l.get('txt_verifyHMACMessage').value, syn.$l.get('txt_verifyHMACSignature').value);
},
async btn_generateRSAKey_click() {
var cryptoKey = await syn.$c.generateRSAKey();
syn.$l.get('txt_generateRSAKeyResult').value = JSON.stringify(cryptoKey);
},
async btn_exportCryptoKey_click() {
var cryptoKey = await syn.$c.generateRSAKey();
syn.$l.get('txt_exportCryptoKeyPublicResult').value = await syn.$c.exportCryptoKey(cryptoKey.publicKey, true);
syn.$l.get('txt_exportCryptoKeyPrivateResult').value = await syn.$c.exportCryptoKey(cryptoKey.privateKey, false);
},
async btn_importCryptoKey_click() {
syn.$l.get('txt_importCryptoKeyResult').value = '';
var isPublic = $string.toBoolean(syn.$l.get('txt_importCryptoKey').value);
var cryptoKey = await syn.$c.generateRSAKey();
var pem = await syn.$c.exportCryptoKey((isPublic == true ? cryptoKey.publicKey : cryptoKey.privateKey), isPublic);
syn.$l.get('txt_importCryptoKeyResult').value = await syn.$c.importCryptoKey(syn.$l.get('txt_importCryptoKeyPEM').value, isPublic);
},
async btn_rsaEncode_click() {
var cryptoKey = await syn.$c.importCryptoKey(syn.$l.get('txt_rsaEncodePEM').value, true);
syn.$l.get('txt_rsaEncodeResult').value = await syn.$c.rsaEncode(syn.$l.get('txt_rsaEncode').value, cryptoKey);
},
async btn_rsaDecode_click() {
var cryptoKey = await syn.$c.importCryptoKey(syn.$l.get('txt_rsaDecodePEM').value, false);
syn.$l.get('txt_rsaDecodeResult').value = await syn.$c.rsaDecode(syn.$l.get('txt_rsaDecode').value, cryptoKey);
},
btn_generateIV_click() {
syn.$l.get('txt_generateIVResult').value = syn.$c.generateIV(syn.$l.get('txt_generateIV').value, syn.$l.get('txt_generateIVLength').value);
},
async btn_aesEncode_click() {
var encodeKey = syn.$l.get('txt_aesEncodeKey').value;
var encodeAlgorithm = syn.$l.get('txt_aesEncodeAlgorithm').value;
var encodeAESLength = syn.$l.get('txt_aesEncodeAESLength').value;
var encodeResult = await syn.$c.aesEncode(syn.$l.get('txt_aesEncode').value, encodeKey, encodeAlgorithm, encodeAESLength);
syn.$l.get('txt_aesEncodeResult').value = JSON.stringify(encodeResult);
syn.$l.get('txt_aesDecode').value = encodeResult.encrypted;
},
async btn_aesDecode_click() {
var decodeKey = syn.$l.get('txt_aesDecodeKey').value;
var decodeAlgorithm = syn.$l.get('txt_aesDecodeAlgorithm').value;
var decodeAESLength = syn.$l.get('txt_aesDecodeAESLength').value;
var ivLength = decodeAlgorithm === 'AES-GCM' ? 12 : 16;
var encodeResult = {
iv: syn.$c.base64Encode(syn.$c.generateIV(decodeKey, ivLength)),
encrypted: syn.$l.get('txt_aesDecode').value
};
syn.$l.get('txt_aesDecodeResult').value = await syn.$c.aesDecode(encodeResult, decodeKey, decodeAlgorithm, decodeAESLength);
},
async btn_sha_click() {
syn.$l.get('txt_shaResult').value = await syn.$c.sha(syn.$l.get('txt_sha').value, syn.$l.get('txt_shaAlgorithm').value);
},
btn_sha256_click() {
syn.$l.get('txt_sha256Result').value = syn.$c.sha256(syn.$l.get('txt_sha256').value);
},
btn_encrypt_click() {
syn.$l.get('txt_encryptResult').value = syn.$c.encrypt(syn.$l.get('txt_encrypt').value);
},
btn_decrypt_click() {
syn.$l.get('txt_decryptResult').value = syn.$c.decrypt(syn.$l.get('txt_decrypt').value);
},
btn_LZStringEncode_click() {
syn.$l.get('txt_LZStringResult').value = syn.$c.LZString.compressToBase64(syn.$l.get('txt_LZString').value);
},
btn_LZStringDecode_click() {
syn.$l.get('txt_LZStringResult').value = syn.$c.LZString.decompressFromBase64(syn.$l.get('txt_LZString').value);
}
}
};
syn.$k|syn.keyboard.js 예제 코드
'use strict';
let $keyboard = {
extends: [
'parsehtml'
],
event: {
btn_setElement_click() {
syn.$k.setElement('txt_setElement');
syn.$l.get('txt_setElement').value = '설정 되었습니다';
},
btn_addKeyCode_click() {
syn.$k.setElement('txt_setElement');
syn.$k.addKeyCode('keydown', syn.$k.keyCodes.a, function (evt) {
alert(`${evt.target.id}: ${evt.key}, ${evt.code}, ${evt.keyCode}`);
});
syn.$k.addKeyCode('keyup', syn.$k.keyCodes.c, function (evt) {
alert(`${evt.target.id}: ${evt.key}, ${evt.code}, ${evt.keyCode}`);
});
},
btn_removeKeyCode_click() {
syn.$k.setElement('txt_setElement');
syn.$k.removeKeyCode('keydown', syn.$k.keyCodes.a);
}
}
};
syn.$v|syn.validation.js 예제 코드
'use strict';
let $validate = {
extends: [
'parsehtml'
],
method: {
customValidation(options) {
console.log(options);
return syn.$l.get('txt_custom').value.trim() != '';
}
},
event: {
btn_setElement_click() {
syn.$v.setElement('txt_setElement');
syn.$l.get('txt_setElement').value = '설정되었습니다';
},
btn_required_click() {
syn.$v.required('txt_required', true, 'Required 검사가 실패했습니다.');
},
btn_required_validateControl_click() {
var isValid = syn.$v.validateControl('txt_required');
if (isValid == false) {
var messages = syn.$v.toMessages();
if ($string.isNullOrEmpty(messages) == false) {
alert(messages);
}
}
},
btn_pattern_numeric_click() {
syn.$v.pattern('txt_pattern', 'numeric', { 'expr': syn.$v.regexs.numeric, 'message': '숫자를 입력 해야합니다.' });
},
btn_pattern_email_click() {
syn.$v.pattern('txt_pattern', 'email', { 'expr': syn.$v.regexs.email, 'message': '이메일을 입력 해야합니다.' });
},
btn_pattern_juminNo_click() {
syn.$v.pattern('txt_pattern', 'juminNo', { 'expr': syn.$v.regexs.juminNo, 'message': '주민등록번호를 입력 해야합니다.' });
},
btn_pattern_validateControl_click() {
var isValid = syn.$v.validateControl('txt_pattern');
if (isValid == false) {
var messages = syn.$v.toMessages();
if ($string.isNullOrEmpty(messages) == false) {
alert(messages);
}
}
},
btn_range_click() {
syn.$v.pattern('txt_range', 'numeric', { 'expr': syn.$v.regexs.numeric, 'message': '숫자를 입력 해야합니다.' });
syn.$v.range('txt_range', 'overflow', { 'min': 0, 'max': 100, 'minOperator': '<', 'maxOperator': '>', 'message': '1 ~ 100 이내 값을 입력 해야합니다.' });
},
btn_range_validateControl_click() {
debugger;
var isValid = syn.$v.validateControl('txt_range');
if (isValid == false) {
var messages = syn.$v.toMessages();
if ($string.isNullOrEmpty(messages) == false) {
alert(messages);
}
}
},
btn_custom_click() {
syn.$v.custom('txt_custom', 'customVaild', { 'functionName': 'customValidation', 'functionParam1': 'ok', 'message': '사용자 지정 검사가 실패했습니다.' });
},
btn_custom_validateControl_click() {
var isValid = syn.$v.validateControl('txt_custom');
if (isValid == false) {
var messages = syn.$v.toMessages();
if ($string.isNullOrEmpty(messages) == false) {
alert(messages);
}
}
},
btn_validateControls_click() {
var isValid = syn.$v.validateControls(syn.$l.get('txt_required', 'txt_pattern', 'txt_range', 'txt_custom'));
if (isValid == false) {
var messages = syn.$v.toMessages();
if ($string.isNullOrEmpty(messages) == false) {
alert(messages);
}
}
},
btn_validateForm_click() {
var isValid = syn.$v.validateForm();
if (isValid == false) {
var messages = syn.$v.toMessages();
if ($string.isNullOrEmpty(messages) == false) {
alert(messages);
}
}
}
}
};
syn.$l|syn.library.js 예제 코드
'use strict';
let $library = {
extends: [
'parsehtml'
],
method: {
updateText(evt) {
var el = null;
if ($object.isNullOrUndefined(evt) == true) {
el = syn.$w.activeControl(this);
}
else {
el = syn.$w.activeControl(evt);
}
el.value = el.value + ' changed !';
}
},
event: {
btn_guid_click() {
syn.$l.get('txt_guid').value = syn.$l.guid();
},
btn_stringToArrayBuffer_click() {
syn.$l.get('txt_stringToArrayBuffer').value = syn.$l.stringToArrayBuffer('hello world');
},
btn_arrayBufferToString_click() {
syn.$l.get('txt_arrayBufferToString').value = syn.$l.arrayBufferToString(syn.$l.stringToArrayBuffer('hello world'));
},
btn_random_click() {
syn.$l.get('txt_random').value = syn.$l.random();
},
btn_random1_click() {
syn.$l.get('txt_random').value = syn.$l.random(32);
},
btn_random2_click() {
syn.$l.get('txt_random').value = syn.$l.random(32, true);
},
btn_dispatchClick_click() {
syn.$l.dispatchClick('btn_random2');
},
btn_addEvent_click() {
syn.$l.addEvent('txt_addEvent', 'click', (evt) => {
var el = syn.$w.activeControl(evt);
el.value = el.value + ' click !';
})
.addEvent('txt_addEvent', 'change', $this.method.updateText)
.addEvent('txt_addEvent', 'blur', (evt) => {
var el = syn.$w.activeControl(evt);
el.value = el.value + ' blur !';
});
},
btn_addEvents_click() {
syn.$l.addEvents('input[type="text"]', 'click', (evt) => {
var el = syn.$l.get('txt_addEvents');
el.value = el.value + ' input[type="text"] click !';
});
syn.$l.addEvents(['div.form-text', 'button#btn_triggerEvent'], 'click', (evt) => {
var el = syn.$l.get('txt_addEvents');
el.value = el.value + ' div.form-text, button#btn_triggerEvent click !';
});
},
btn_addLive_click() {
syn.$l.addLive('txt_addLive', 'click', (evt) => {
var el = syn.$w.activeControl(evt);
el.value = el.value + ' click !';
});
},
btn_addLiveElement_click() {
syn.$m.append('div_addLive', 'input', 'txt_addLive', {
classNames: 'form-control',
value: 'hello world'
});
},
btn_removeEvent_click() {
syn.$l.removeEvent('txt_addEvent', 'change', $this.method.updateText);
},
btn_hasEvent_click() {
syn.$l.get('txt_hasEvent').value = syn.$l.hasEvent('txt_addEvent', 'change');
},
btn_trigger_click() {
syn.$l.get('txt_trigger').value = syn.$l.trigger('txt_addEvent', 'change');
},
btn_triggerEvent_click() {
syn.$l.get('txt_triggerEvent').value = syn.$l.triggerEvent('txt_addEvent', 'change');
},
btn_get_click() {
var els = syn.$l.get('btn_trigger', 'btn_triggerEvent', 'btn_get');
syn.$l.get('txt_get').value = `${syn.$l.get('btn_get').textContent}, ${els.length}`;
},
btn_querySelector_click() {
var els = syn.$l.querySelector('#btn_trigger', '#btn_triggerEvent', '#btn_get');
syn.$l.get('txt_querySelector').value = `${syn.$l.querySelector('#btn_get').textContent}, ${els.length}`;
},
btn_getTagName_click() {
var els = syn.$l.getTagName('button', 'input');
syn.$l.get('txt_getTagName').value = els.length;
},
btn_toEnumValue_click() {
syn.$l.get('txt_toEnumValue').value = syn.$l.toEnumValue(syn.$v.valueType, 'valueMissing');
},
btn_toEnumText_click() {
syn.$l.get('txt_toEnumText').value = syn.$l.toEnumText(syn.$v.valueType, 0);
},
btn_text2Json_click() {
var json = syn.$l.text2Json(syn.$l.get('txt_text2Json').value);
syn.$l.get('txt_text2Json').value = JSON.stringify(json, null, 4);
},
btn_json2Text_click() {
var json = JSON.parse(syn.$l.get('txt_json2Text').value);
var text = syn.$l.json2Text(json, ['AAA', 'BBB', 'CCC']);
syn.$l.get('txt_json2Text').value = text;
},
btn_nested2Flat_click() {
var dataSource = JSON.parse(syn.$l.get('txt_jsontext').value);
var jsonRoot = syn.$l.flat2Nested(dataSource, 'id', 'parentId');
var flatItems = syn.$l.nested2Flat(jsonRoot, 'id', 'parentId', 'items');
syn.$l.get('txt_nestedresult').value = JSON.stringify(flatItems, null, 4);
},
btn_flat2Nested_click() {
var dataSource = JSON.parse(syn.$l.get('txt_jsontext').value);
var jsonRoot = syn.$l.flat2Nested(dataSource, 'id', 'parentId');
syn.$l.get('txt_nestedresult').value = JSON.stringify(jsonRoot, null, 4);
},
btn_findNestedByID_click() {
var dataSource = JSON.parse(syn.$l.get('txt_jsontext').value);
var jsonRoot = syn.$l.flat2Nested(dataSource, 'id', 'parentId');
var findItem = syn.$l.findNestedByID(jsonRoot, 10, 'id', 'items');
syn.$l.get('txt_nestedresult').value = JSON.stringify(findItem, null, 4);
},
btn_deepFreeze_click() {
var json = {
value: ''
};
json.value = 'hello world';
var freezeJson = syn.$l.deepFreeze(json);
try {
freezeJson.value = 'change !';
} catch {
}
syn.$l.get('txt_deepFreeze').value = `json: ${JSON.stringify(json)}, freezeJson: ${JSON.stringify(freezeJson)}`;
},
btn_createBlob_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
syn.$l.get('txt_createBlob').value = blob;
},
btn_dataUriToBlob_click() {
var dataUri = 'data:text/plain;base64,aGVsbG93b3JsZA==';
var blob = syn.$l.dataUriToBlob(dataUri);
syn.$l.get('txt_dataUriToBlob').value = blob;
},
btn_dataUriToText_click() {
var dataUri = 'data:text/plain;base64,aGVsbG93b3JsZA==';
var json = syn.$l.dataUriToText(dataUri);
syn.$l.get('txt_dataUriToText').value = `value: ${json.value}, mime: ${json.mime}`;
},
btn_blobToDataUri_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
syn.$l.blobToDataUri(blob, (dataUri) => {
syn.$l.get('txt_blobToDataUri').value = dataUri;
});
},
btn_blobToDownload_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
syn.$l.blobToDownload(blob, 'helloworld.txt');
},
btn_blobUrlToBlob_click() {
var createBlob = syn.$l.createBlob('helloworld', 'text/plain');
var blobUrl = syn.$r.createBlobUrl(createBlob);
syn.$l.blobUrlToBlob(blobUrl, (blob) => {
syn.$l.get('txt_blobUrlToBlob').value = blob;
});
},
btn_blobUrlToDataUri_click() {
var blob = syn.$l.createBlob('helloworld', 'text/plain');
var blobUrl = syn.$r.createBlobUrl(blob);
syn.$l.blobUrlToDataUri(blobUrl, (dataUri) => {
syn.$l.get('txt_blobUrlToDataUri').value = dataUri;
});
},
async btn_blobToBase64_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
syn.$l.get('txt_blobToBase64').value = await syn.$l.blobToBase64(blob);
},
async btn_base64ToBlob_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
var base64 = await syn.$l.blobToBase64(blob);
var mimeType = base64?.match(/[^:]\w+\/[\w-+\d.]+(?=;|,)/)[0];
var realData = base64.split(',')[1];
syn.$l.get('txt_base64ToBlob').value = syn.$l.base64ToBlob(realData, mimeType).size;
},
async btn_blobToFile_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
var file = await syn.$l.blobToFile(blob);
syn.$l.get('txt_blobToFile').value = file.size;
},
async btn_fileToBase64_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
var file = await syn.$l.blobToFile(blob);
syn.$l.get('txt_fileToBase64').value = await syn.$l.fileToBase64(file);
},
async btn_fileToBlob_click() {
var blob = syn.$l.createBlob('hello world', 'text/plain');
var file = await syn.$l.blobToFile(blob);
syn.$l.get('txt_fileToBlob').value = await syn.$l.fileToBlob(file);
}
}
};
syn.$w|syn.webform.js 예제 코드
'use strict';
let $webforms = {
extends: [
'parsehtml'
],
transaction: {
GD01: {
inputs: [{ type: 'Row', dataFieldID: 'MainForm' }],
outputs: [{ type: 'Form', dataFieldID: 'MainForm' }]
},
},
event: {
btn_setStorage_sessionStorage_click() {
syn.$w.setStorage('storageKey1', 'hello world');
syn.$w.setStorage('storageKey2', 12345);
syn.$w.setStorage('storageKey3', new Date());
syn.$w.setStorage('storageKey4', true);
syn.$w.setStorage('storageKey5', { key: 'hello world' });
syn.$l.get('txt_setStorage').value = 'sessionStorage 저장';
},
btn_setStorage_localStorage_click() {
syn.$w.setStorage('storageKey1', 'hello world', true);
syn.$w.setStorage('storageKey2', 12345, true);
syn.$w.setStorage('storageKey3', new Date(), true);
syn.$w.setStorage('storageKey4', true, true);
syn.$w.setStorage('storageKey5', { key: 'hello world' }, true);
syn.$l.get('txt_setStorage').value = 'localStorage 저장';
},
btn_getStorage_sessionStorage_click() {
var storageKey1 = syn.$w.getStorage('storageKey1');
var storageKey2 = syn.$w.getStorage('storageKey2');
var storageKey3 = syn.$w.getStorage('storageKey3');
var storageKey4 = syn.$w.getStorage('storageKey4');
var storageKey5 = syn.$w.getStorage('storageKey5');
syn.$l.get('txt_getStorage').value = `sessionStorage storageKey1: ${storageKey1}, storageKey2: ${storageKey2}, storageKey3: ${storageKey3}, storageKey4: ${storageKey4}, storageKey5: ${storageKey5}`;
},
btn_getStorage_localStorage_click() {
var storageKey1 = syn.$w.getStorage('storageKey1', true);
var storageKey2 = syn.$w.getStorage('storageKey2', true);
var storageKey3 = syn.$w.getStorage('storageKey3', true);
var storageKey4 = syn.$w.getStorage('storageKey4', true);
var storageKey5 = syn.$w.getStorage('storageKey5', true);
syn.$l.get('txt_getStorage').value = `localStorage storageKey1: ${storageKey1}, storageKey2: ${storageKey2}, storageKey3: ${storageKey3}, storageKey4: ${storageKey4}, storageKey5: ${storageKey5}`;
},
btn_removeStorage_sessionStorage_click() {
syn.$w.removeStorage('storageKey1');
syn.$w.removeStorage('storageKey2');
syn.$w.removeStorage('storageKey3');
syn.$w.removeStorage('storageKey4');
syn.$w.removeStorage('storageKey5');
syn.$l.get('txt_removeStorage').value = `sessionStorage 삭제`;
},
btn_removeStorage_localStorage_click() {
syn.$w.removeStorage('storageKey1', true);
syn.$w.removeStorage('storageKey2', true);
syn.$w.removeStorage('storageKey3', true);
syn.$w.removeStorage('storageKey4', true);
syn.$w.removeStorage('storageKey5', true);
syn.$l.get('txt_removeStorage').value = `localStorage 삭제`;
},
btn_activeControl_click() {
var el = syn.$w.activeControl();
syn.$l.get('txt_activeControl').value = el.outerHTML;
},
btn_argumentsExtend_click() {
var parameter = {
aaaa: 1234,
bbbb: '2222'
};
var extend = syn.$w.argumentsExtend({
aaaa: 0,
bbbb: '',
cccc: false
}, parameter);
extend.bbbb = 'hello world';
syn.$l.get('txt_argumentsExtend').value = JSON.stringify(extend);
},
btn_getterValue_click() {
var result = syn.$w.getterValue('GD01');
syn.$l.get('txt_getterValue').value = JSON.stringify(result);
},
btn_setterValue_click() {
var dataSet = [{
setStorage: 'setStorage',
getStorage: 'getStorage',
removeStorage: 'removeStorage',
activeControl: 'activeControl',
argumentsExtend: 'argumentsExtend',
getterValue: 'getterValue'
}];
var result = syn.$w.setterValue('GD01', dataSet);
syn.$l.get('txt_setterValue').value = JSON.stringify(result);
},
btn_scrollToTop_click() {
syn.$w.scrollToTop();
},
btn_setFavicon_click() {
syn.$w.setFavicon('/img/logo.ico');
},
btn_fileDownload_click() {
var url = syn.$l.get('txt_fileDownload').value;
syn.$w.fileDownload(url, 'download.txt');
},
async btn_apiHttp_get_click() {
var result = await syn.$w.apiHttp('sample.json').send();
syn.$l.get('txt_apiHttp').value = JSON.stringify(result);
},
async btn_apiHttp_post_click() {
var result = await syn.$w.apiHttp('sample.json').send({
applicationID: 'programID',
projectID: 'businessID',
transactionID: 'transactionID',
serviceID: 'functionID'
});
syn.$l.get('txt_apiHttp').value = JSON.stringify(result);
},
async btn_apiHttp_form_click() {
var formData = new FormData();
formData.append('field', 'data');
var result = await syn.$w.apiHttp('sample.json').send(formData);
syn.$l.get('txt_apiHttp').value = JSON.stringify(result);
},
btn_loadScript_click() {
var url = syn.$l.get('txt_loadScript').value;
syn.$w.loadScript(url);
alert(`url: ${url} 요청 완료`);
},
btn_loadStyle_click() {
var url = syn.$l.get('txt_loadStyle').value;
syn.$w.loadStyle(url);
alert(`url: ${url} 요청 완료`);
},
async btn_fetchText_click() {
var url = syn.$l.get('txt_loadStyle').value;
syn.$l.get('txt_fetchText').value = await syn.$w.fetchText(url);
},
async btn_fetchJson_click() {
var result = await syn.$w.fetchJson('sample.json');
syn.$l.get('txt_fetchJson').value = JSON.stringify(result);
},
btn_pseudoStyle_click() {
var pseudoID = syn.$l.get('txt_pseudoID').value;
var selector = syn.$l.get('txt_selector').value;
var pseudoStyle = syn.$l.get('txt_pseudoStyle').value;
syn.$w.pseudoStyle(pseudoID, selector, pseudoStyle);
},
btn_pseudoStyles_click() {
var pseudoID = syn.$l.get('txt_pseudoIDs').value;
var pseudoStyle = syn.$l.get('txt_pseudoStyles').value;
syn.$w.pseudoStyles(pseudoID, eval(pseudoStyle));
}
}
};
syn.$r|syn.request.js 예제 코드
'use strict';
let $requests = {
extends: [
'parsehtml'
],
method: {
},
event: {
btn_query_click() {
syn.$r.params['p1'] = 'aaa';
syn.$r.params['p2'] = 'bbb';
syn.$r.params['p3'] = 'ccc';
syn.$l.get('txt_query').value = syn.$r.query('p2');
},
btn_url_click() {
syn.$r.params['p1'] = 'aaa';
syn.$r.params['p2'] = 'bbb';
syn.$r.params['p3'] = 'ccc';
syn.$l.get('txt_url').value = syn.$r.url();
},
btn_setCookie_click() {
syn.$r.setCookie('txtSetCookie', 'hello');
syn.$l.get('txt_setCookie').value = '설정 완료';
},
btn_getCookie_click() {
syn.$l.get('txt_getCookie').value = syn.$r.getCookie('txtSetCookie');
},
btn_deleteCookie_click() {
syn.$r.deleteCookie('txtSetCookie');
syn.$l.get('txt_deleteCookie').value = '삭제 완료';
}
}
};
syn.$n|syn.network.js 예제 코드
'use strict';
let $iframe_main = {
event: {
btnChildrenConnect_click() {
var channelID = 'channelID';
var iframeChannel = syn.$w.channels.find(function (item) { return item.id == channelID });
if (iframeChannel == undefined) {
var iframe = syn.$l.get('ifmChildren');
var contentWindow = iframe.contentWindow;
var frameMessage = {
id: channelID,
channel: syn.$n.rooms.connect({
debugOutput: true,
window: contentWindow,
origin: '*',
scope: channelID
})
};
frameMessage.channel.bind('response', function (evt, val) {
alert('iframe_main ' + val);
});
syn.$w.channels.push(frameMessage);
}
},
btnChildrenLoad_click() {
var iframe = syn.$l.get('ifmChildren');
iframe.src = 'iframe_child.html';
},
btnParent2Children_click() {
var channelID = 'channelID';
var length = syn.$w.channels.length;
for (var i = 0; i < length; i++) {
var frameMessage = syn.$w.channels[i];
if (channelID == frameMessage.id) {
frameMessage.channel.call({
method: 'request',
params: ['request data'],
error(error, message) {
alert('iframe_main request ERROR: ' + error + ' (' + message + ')');
},
success(val) {
alert('iframe_main request function returns: ' + val);
}
});
}
}
}
}
}
let $iframe_child = {
prop: {
childrenChannel: null
},
hook: {
pageLoad() {
var channelID = 'channelID';
if (window != window.parent && channelID) {
$this.prop.childrenChannel = syn.$n.rooms.connect({ window: window.parent, origin: '*', scope: channelID });
$this.prop.childrenChannel.bind('request', function (evt, params) {
alert('iframe_child ' + params);
});
}
}
},
event: {
btnChildren2Parent_click() {
if ($this.prop.childrenChannel != null) {
$this.prop.childrenChannel.emit({
method: 'response',
params: ['response data'],
error(error, message) {
alert('iframe_child response ERROR: ' + error + ' (' + message + ')');
},
success(val) {
alert('iframe_child response function returns: ' + val);
}
});
}
}
}
}
$date, $array, $string, $number, $object|syn.extension.js 예제 코드
'use strict';
let $extension_array = {
extends: [
'parsehtml'
],
event: {
btn_distinct_click() {
var arr = ['Apple', 'Banana', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_distinct').value = JSON.stringify($array.distinct(arr));
},
btn_sort_click() {
var arr = ['Apple', 'Banana', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_sort').value = JSON.stringify($array.sort(arr, true));
},
btn_objectSort_click() {
var arr = [{ name: 'Apple', price: 10 }, { name: 'Banana', price: 5 }, , { name: 'Cherry', price: 5 }];
syn.$l.get('txt_objectSort').value = JSON.stringify($array.objectSort(arr, 'price', true));
},
btn_groupBy_click() {
var arr = [{ name: 'Apple', price: 10 }, { name: 'Banana', price: 5 }, , { name: 'Cherry', price: 5 }];
syn.$l.get('txt_groupBy').value = JSON.stringify($array.groupBy(arr, 'price'));
},
btn_groupBy_click() {
var arr = [{ name: 'Apple', price: 10 }, { name: 'Banana', price: 5 }, , { name: 'Cherry', price: 5 }];
syn.$l.get('txt_groupBy').value = JSON.stringify($array.groupBy(arr, 'price'));
},
btn_groupBy_length_click() {
syn.$l.get('txt_groupBy').value = JSON.stringify($array.groupBy(["하나", "둘", "셋"], "length"));
},
btn_groupBy_floor_click() {
syn.$l.get('txt_groupBy').value = JSON.stringify($array.groupBy([9.8, 7.1, 9.2], Math.floor));
},
btn_groupBy_predicate_click() {
var arr = [{ name: 'Apple', price: 10 }, { name: 'Banana', price: 5 }, , { name: 'Cherry', price: 5 }];
syn.$l.get('txt_groupBy').value = JSON.stringify($array.groupBy(arr, ({ price }) => {
return price <= 5 ? 'buy' : 'not buy'
}));
},
btn_shuffle_click() {
syn.$l.get('txt_shuffle').value = JSON.stringify($array.shuffle([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
},
btn_addAt_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_addAt').value = JSON.stringify($array.addAt(arr, 2, 'hello world'));
},
btn_removeAt_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_removeAt').value = JSON.stringify($array.removeAt(arr, 3));
},
btn_contains_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_contains').value = $array.contains(arr, 'Banana');
},
btn_merge_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_merge').value = $array.merge(arr, ['Grape', 'Banana', 'BlueBarry']);
},
btn_union_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_union').value = $array.union(arr, ['Grape', 'Banana', 'BlueBarry']);
},
btn_difference_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_difference').value = $array.difference(arr, ['Grape', 'Banana', 'BlueBarry']);
},
btn_intersect_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_intersect').value = $array.intersect(arr, ['Grape', 'Banana', 'BlueBarry']);
},
btn_symmetryDifference_click() {
var arr = ['Apple', 'Banana', 'Mango', 'Cherry'];
syn.$l.get('txt_symmetryDifference').value = $array.symmetryDifference(arr, ['Grape', 'Banana', 'BlueBarry']);
},
btn_ranks_click() {
var arr = [79, 5, 18, 5, 32, 1, 16, 1, 82, 13];
syn.$l.get('txt_ranks').value = $array.ranks(arr);
},
},
};
'use strict';
let $extension_date = {
extends: [
'parsehtml'
],
event: {
btn_now_click() {
syn.$l.get('txt_now').value = $date.now().toString();
},
btn_clone_click() {
var date = $date.now();
var cloneDate = $date.clone(date);
syn.$l.get('txt_clone').value = cloneDate.toString();
},
btn_isBetween_click() {
var date = $date.now();
syn.$l.get('txt_isBetween').value = $date.isBetween(date, new Date('2023-10-22T03:24:00'), new Date('2023-12-31T03:24:00'))
},
btn_equals_click() {
var date = $date.now();
var cloneDate = $date.clone(date);
syn.$l.get('txt_equals').value = $date.equals(date, cloneDate);
},
btn_equalDay_click() {
var date = $date.now();
var cloneDate = $date.clone(date);
syn.$l.get('txt_equalDay').value = $date.equalDay(date, cloneDate);
},
btn_isToday_click() {
var date = $date.now();
syn.$l.get('txt_isToday').value = $date.isToday(date);
},
btn_toString_d_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'd');
},
btn_toString_t_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 't');
},
btn_toString_a_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'a');
},
btn_toString_f_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'f');
},
btn_toString_s_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 's');
},
btn_toString_n_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'n');
},
btn_toString_mdn_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'mdn');
},
btn_toString_w_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'w');
},
btn_toString_wn_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'wn');
},
btn_toString_m_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'm');
},
btn_toString_ym_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date, 'ym');
},
btn_toString_day_click() {
var date = $date.now();
syn.$l.get('txt_toString').value = $date.toString(date);
},
btn_addSecond_click() {
var date = $date.now();
syn.$l.get('txt_toTimeCount').value = $date.addSecond(date, 1).toString();
},
btn_addMinute_click() {
var date = $date.now();
syn.$l.get('txt_toTimeCount').value = $date.addMinute(date, 1).toString();
},
btn_addHour_click() {
var date = $date.now();
syn.$l.get('txt_toTimeCount').value = $date.addHour(date, 1).toString();
},
btn_addDay_click() {
var date = $date.now();
syn.$l.get('txt_toTimeCount').value = $date.addDay(date, 1).toString();
},
btn_addWeek_click() {
var date = $date.now();
syn.$l.get('txt_toTimeCount').value = $date.addWeek(date, 1).toString();
},
btn_addMonth_click() {
var date = $date.now();
syn.$l.get('txt_toTimeCount').value = $date.addMonth(date, 1).toString();
},
btn_addYear_click() {
var date = $date.now();
syn.$l.get('txt_toTimeCount').value = $date.addYear(date, 1).toString();
},
btn_getFirstDate_click() {
var date = $date.now();
syn.$l.get('txt_getFirstLastDate').value = $date.getFirstDate(date).toString();
},
btn_getLastDate_click() {
var date = $date.now();
syn.$l.get('txt_getFirstLastDate').value = $date.getLastDate(date).toString();
},
btn_diff_second_click() {
var date = $date.now();
var diffDate = $date.addSecond(date, 10);
syn.$l.get('txt_toDiffCount').value = $date.diff(date, diffDate, 'second').toString();
},
btn_diff_minute_click() {
var date = $date.now();
var diffDate = $date.addMinute(date, 1);
syn.$l.get('txt_toDiffCount').value = $date.diff(date, diffDate, 'minute').toString();
},
btn_diff_hour_click() {
var date = $date.now();
var diffDate = $date.addHour(date, 1);
syn.$l.get('txt_toDiffCount').value = $date.diff(date, diffDate, 'hour').toString();
},
btn_diff_day_click() {
var date = $date.now();
var diffDate = $date.addDay(date, 1);
syn.$l.get('txt_toDiffCount').value = $date.diff(date, diffDate, 'day').toString();
},
btn_diff_week_click() {
var date = $date.now();
var diffDate = $date.addWeek(date, 1);
syn.$l.get('txt_toDiffCount').value = $date.diff(date, diffDate, 'week').toString();
},
btn_diff_month_click() {
var date = $date.now();
var diffDate = $date.addMonth(date, 1);
syn.$l.get('txt_toDiffCount').value = $date.diff(date, diffDate, 'month').toString();
},
btn_diff_year_click() {
var date = $date.now();
var diffDate = $date.addYear(date, 1);
syn.$l.get('txt_toDiffCount').value = $date.diff(date, diffDate, 'year').toString();
},
btn_toTicks_click() {
var date = $date.now();
syn.$l.get('txt_toTicks').value = $date.toTicks(date);
},
btn_isDate_click() {
syn.$l.get('txt_isDate').value = $date.isDate('2023-12-31T00:00:00');
},
btn_isISOString_click() {
syn.$l.get('txt_isISOString').value = $date.isISOString('2023-12-11T01:51:53.115Z');
},
btn_weekOfMonth_click() {
var weekOfMonths = $date.weekOfMonth(2023, 12);
syn.$l.get('txt_weekOfMonth').value = JSON.stringify(weekOfMonths);
},
},
};
'use strict';
let $extension_number = {
extends: [
'parsehtml'
],
event: {
btn_duration_click() {
syn.$l.get('txt_duration').value = $number.duration(100000000);
},
btn_toByteString_click() {
syn.$l.get('txt_toByteString').value = $number.toByteString(100000000);
},
btn_random_click() {
syn.$l.get('txt_random').value = $number.random(1, 10000);
},
btn_isRange_click() {
syn.$l.get('txt_isRange').value = $number.isRange($number.random(1, 100), 30, 80);
},
btn_limit_click() {
syn.$l.get('txt_limit').value = $number.limit($number.random(1, 100), 30, 80);
},
btn_percent_click() {
syn.$l.get('txt_percent').value = $number.percent($number.random(1, 10000), 10000);
}
}
};
'use strict';
let $extension_object = {
extends: [
'parsehtml'
],
event: {
btn_isNullOrUndefined_click() {
syn.$l.get('txt_isNullOrUndefined').value = `${$object.isNullOrUndefined('')}, ${$object.isNullOrUndefined(undefined)}, ${$object.isNullOrUndefined(null)}, ${$object.isNullOrUndefined({})}`;
},
btn_toCSV_click() {
syn.$l.get('txt_toCSV').value = $object.toCSV([{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }], ['a', 'b'], ';');
},
btn_toParameterString_click() {
var json = {
symbol: 'hello world1',
price: 12345,
date: new Date(),
boolean: true
};
syn.$l.get('txt_toParameterString').value = $object.toParameterString(json);
},
btn_getType_click() {
syn.$l.get('txt_getType').value = `${$object.getType('')}, ${$object.getType(12345)}, ${$object.getType(true)}, ${$object.getType({})}, ${$object.getType(new Date())}, ${$object.getType(null)}, ${$object.getType(syn.$l.get('txt_getType'))}`;
},
btn_defaultValue_click() {
syn.$l.get('txt_defaultValue').value = `${$object.defaultValue('string')}, ${$object.defaultValue('bool')}, ${$object.defaultValue('date')}, ${$object.defaultValue('number')}`;
},
btn_isDefined_click() {
syn.$l.get('txt_valueType').value = $object.isDefined(undefined);
},
btn_isNull_click() {
syn.$l.get('txt_valueType').value = $object.isNull(null);
},
btn_isArray_click() {
syn.$l.get('txt_valueType').value = $object.isArray([]);
},
btn_isDate_click() {
syn.$l.get('txt_valueType').value = $object.isDate(new Date());
},
btn_isString_click() {
syn.$l.get('txt_valueType').value = $object.isString('');
},
btn_isNumber_click() {
syn.$l.get('txt_valueType').value = $object.isNumber(12345);
},
btn_isFunction_click() {
syn.$l.get('txt_valueType').value = $object.isFunction(() => { });
},
btn_isObject_click() {
syn.$l.get('txt_valueType').value = $object.isObject({});
},
btn_isObjectEmpty_click() {
syn.$l.get('txt_valueType').value = $object.isObjectEmpty({});
},
btn_isBoolean_click() {
syn.$l.get('txt_valueType').value = $object.isBoolean(false);
},
btn_isEmpty_click() {
syn.$l.get('txt_isEmpty').value = $object.isEmpty([]);
},
},
};
'use strict';
let $extension_string = {
extends: [
'parsehtml'
],
event: {
btn_toValue_click() {
syn.$l.get('txt_toValue').value = `${$string.toValue('hello world')}, ${$string.toValue(new Date())}, ${$string.toValue({})}, ${$string.toValue(true)}, ${$string.toValue(null, 'default')}`;
},
btn_br_click() {
syn.$l.get('txt_br').value = $string.br('hello\nworld');
},
btn_interpolate_click() {
var json = {
symbol: 'hello world',
price: 12345,
date: new Date(),
boolean: true
};
syn.$l.get('txt_interpolate').value = $string.interpolate(`<span>#{symbol}</span> <span>#{price}</span> <span>#{date}</span> <span>#{boolean}</span>`, json);
},
btn_interpolates_click() {
var json = [
{
symbol: 'hello world1',
price: 12345,
date: new Date(),
boolean: true
},
{
symbol: 'hello world2',
price: 12345,
date: new Date(),
boolean: true
},
{
symbol: 'hello world3',
price: 12345,
date: new Date(),
boolean: true
}
];
syn.$l.get('txt_interpolate').value = $string.interpolate(`<span>#{symbol}</span> <span>#{price}</span> <span>#{date}</span> <span>#{boolean}</span>`, json);
},
btn_isNullOrEmpty_click() {
syn.$l.get('txt_isNullOrEmpty').value = `${$string.isNullOrEmpty('')}, ${$string.isNullOrEmpty(undefined)}, ${$string.isNullOrEmpty(null)}, ${$string.isNullOrEmpty({})}`;
},
btn_sanitizeHTML_click() {
syn.$l.get('txt_sanitizeHTML').value = $string.sanitizeHTML('<label class="form-label">$string.isNullOrEmpty()</label>');
},
btn_cleanHTML_click() {
syn.$l.get('txt_cleanHTML').value = $string.cleanHTML('<label class="form-label">$string.isNullOrEmpty()</label>');
},
btn_toHtmlChar_click() {
syn.$l.get('txt_toHtmlChar').value = $string.toHtmlChar('<label class="form-label">$string.isNullOrEmpty()</label>');
},
btn_toCharHtml_click() {
syn.$l.get('txt_toCharHtml').value = $string.toCharHtml('<label class="form-label">$string.isNullOrEmpty()</label>');
},
btn_length_click() {
syn.$l.get('txt_length').value = $string.length('안녕하세요 hello world');
},
btn_split_click() {
syn.$l.get('txt_split').value = JSON.stringify($string.split('1,2,3,4,5', ','));
},
btn_isNumber_click() {
syn.$l.get('txt_isNumber').value = $string.isNumber('-12,345.123');
},
btn_toNumber_click() {
syn.$l.get('txt_toNumber').value = $string.toNumber('-12,345.123');
},
btn_capitalize_click() {
syn.$l.get('txt_capitalize').value = $string.capitalize('aaa bbb ccc');
},
btn_toJson_click() {
var json = $string.toJson('col1;col2\na;b\nc;d', {
delimeter: ';'
});
syn.$l.get('txt_toJson').value = JSON.stringify(json);
},
btn_toParameterObject_click() {
var json = $string.toParameterObject('@Name1:Value1;@Name2:Value2;@Name3:Value3');
syn.$l.get('txt_toParameterObject').value = JSON.stringify(json);
},
btn_toBoolean_click() {
syn.$l.get('txt_toBoolean').value = `${$string.toBoolean('true')}, ${$string.toBoolean('True')}, ${$string.toBoolean('TRUE')}, ${$string.toBoolean('Y')}, ${$string.toBoolean('1')}, ${$string.toBoolean(true)}`;
},
btn_toDynamic_click() {
syn.$l.get('txt_toDynamic').value = `${$string.toDynamic('true')}, ${$string.toDynamic('')}, ${$string.toDynamic('', true)}, ${$string.toDynamic('12345')}, ${$string.toDynamic('2023-12-11T04:45:56.558Z')}`;
},
btn_toParseType_click() {
syn.$l.get('txt_toParseType').value = `${$string.toParseType('true', 'bool')}, ${$string.toParseType('')}, ${$string.toParseType('12345', 'number')}, ${$string.toParseType('2023-12-11T04:45:56.558Z', 'date')}`;
},
btn_toNumberString_click() {
syn.$l.get('txt_toNumberString').value = $string.toNumberString('f-1,234.12');
},
}
};