/ittf/meta/html/main.js.ittf (primary)
1 module 2 kind es6 3 $include js/wz/core 4 $include js/wz/ace 5 $include js/editManager 6 $include js/modalManager 7 $include js/dataManager 8 $include js/clickListener 9 _ wz.contentLoaded 10 function 11 log '*** content loaded' 12 var editorImpl 13 new AceEditor 14 { 15 @ key 'ittf-editor' 16 @ editorElementId 'editorContainer' 17 @ width '1100px' 18 @ height '600px' 19 var ctx 20 { 21 @ editorImpl editorImpl 22 @ editSaveUrl '/api/v1/wizzifs/ittf' 23 @ editSaveHttpMethod 'put' 24 @ modalsContainerId 'modalsContainer' 25 set ctx.editManager 26 new EditManager 27 @ ctx 28 { 29 @ dataHashKey 'ittfhash' 30 @ dataContentKey 'ittfcontent' 31 @ dataPrettyKey 'ittfpretty' 32 @ dataTitleKey 'ittftitle' 33 set ctx.modalManager = new ModalManager(ctx) 34 set ctx.dataManager = new DataManager(ctx) 35 set ctx.clickHandler = ctx.editManager 36 _ setupClickListener 37 @ ctx 38 { 39 @ containerId 'mc-wrapper' 40 @ targetClass 'edit-ittf-content-button' 41 @ dataField 42 [ 43 @ 'ittfhash' 44 @ 'ittfcontent' 45 @ 'ittfpretty' 46 @ 'ittftitle'
/t/js/wz/core.js.ittf
1 $group 2 $include polyfill 3 iife 4 var wz = window.wz = {} 5 var rclass = /[\n\t\r]/g 6 var rnotwhite = (/\S+/g) 7 $include eventTarget 8 $include global 9 $include events 10 $include verify 11 set wz.element 12 function 13 param element 14 if typeof element === 'string' 15 var e = document.querySelector(element) 16 if !e 17 try 18 set e = document.querySelector("#" + element) 19 catch ex 20 return null 21 return e 22 else 23 return element 24 set wz.hide 25 function 26 param element 27 var e = wz.element(element) 28 set e.style.display = 'none' 29 set wz.show 30 function 31 param element 32 var e = wz.element(element) 33 set e.style.display = 'block' 34 set wz.hasClass 35 function 36 param element 37 param selector 38 var e = wz.element(element) 39 if (" " + e.className + " ").replace(rclass, " ").indexOf(" " + selector + " ") > -1 40 return true 41 return false 42 set wz.addClass 43 function 44 param element 45 param value 46 param options 47 var e = wz.element(element) 48 var classes, cur, finalValue 49 if options && options.removeOnClass 50 var elements = document.getElementsByClassName(options.removeOnClass) 51 _ Array.from(elements).forEach 52 function 53 param element 54 _ wz.removeClass(element, value) 55 if value && typeof value === "string" 56 set classes = ( value || "" ).match( rnotwhite ) || [] 57 if !e.className && classes.length === 1 58 set e.className = value 59 else 60 set cur = " " + e.className + " " 61 foreach clazz in classes 62 if cur.indexOf( " " + clazz + " " ) < 0 63 set cur += clazz + " " 64 set finalValue = cur.trim() 65 if e.className !== finalValue 66 set e.className = finalValue 67 set wz.removeClass 68 function 69 param element 70 param value 71 var e = wz.element(element) 72 var classes, cur, finalValue 73 if value && typeof value === "string" 74 set classes = ( value || "" ).match( rnotwhite ) || [] 75 set cur = e.className ? ( " " + e.className + " " ).replace( rclass, " " ) : "" 76 foreach clazz in classes 77 while cur.indexOf( " " + clazz + " " ) >= 0 78 set cur = cur.replace( " " + clazz + " ", " " ) 79 set finalValue = cur.trim() 80 if e.className !== finalValue 81 set e.className = finalValue 82 set wz.toggleClass 83 function 84 param element 85 param value 86 if wz.hasClass(element, value) 87 _ wz.removeClass(element, value) 88 else 89 _ wz.addClass(element, value) 90 set wz.attribute 91 function 92 param element 93 param name 94 param value 95 var e = wz.element(element) 96 if typeof value === 'undefined' 97 return e.getAttribute(name) 98 else 99 _ e.setAttribute(name, value) 100 set wz.style 101 function 102 param element 103 param name 104 param value 105 var e = wz.element(element) 106 if typeof value === 'undefined' 107 return e.style[name] 108 else 109 set e.style[name] = value 110 set wz.text 111 function 112 param element 113 param value 114 var e = wz.element(element) 115 if typeof value === 'undefined' 116 return e.textContent 117 elif e.textContent !== value 118 set e.textContent = value 119 set wz.html 120 function 121 param element 122 param html 123 var saveElementForLog = element 124 if typeof element === "string" 125 set element = wz.element(element) 126 if !element 127 log 'element', saveElementForLog 128 throw new Error('In wz.html the element parameter must be an html element or the id of an html element. Received: ' + saveElementForLog) 129 if typeof html === 'undefined' 130 return element.innerHTML 131 else 132 set element.innerHTML = html 133 set wz.htmlEscaped 134 function 135 param element 136 param html 137 _ wz.html 138 @ element 139 _ wz.escapeHtml(html) 140 set wz.replaceChildren 141 function 142 param element 143 param nodes 144 var saveElementForLog = element 145 if typeof element === "string" 146 set element = wz.element(element) 147 if !element 148 log 'element', saveElementForLog 149 throw new Error('In wz.replaceChildren the element parameter must be an html element or the id of an html element. Received: ' + saveElementForLog) 150 set element.innerHTML = '' 151 if nodes.length 152 foreach node in nodes 153 _ element.appendChild( node ) 154 else 155 _ element.appendChild( nodes ) 156 set wz.value 157 function 158 param element 159 param value 160 var saveElementForLog = element 161 if typeof element === "string" 162 set element = wz.element(element) 163 if !element 164 log 'element', saveElementForLog 165 throw new Error('In wz.value the element parameter must be an html element or the id of an html element. Received: ' + saveElementForLog) 166 if typeof value === 'undefined' 167 return element.value 168 elif element.value !== value 169 set element.value = value 170 set wz.val = wz.value 171 set wz.click 172 function 173 param element 174 param handler 175 param useCapture 176 _ window.addEvent 177 @ wz.element(element) 178 @ 'click' 179 @ handler 180 @ useCapture 181 set wz.clickClass 182 function 183 param classname 184 param handler 185 param useCapture 186 var elements = document.getElementsByClassName(classname) 187 _ Array.from(elements).forEach 188 function 189 param element 190 _ wz.click 191 @ element 192 @ handler 193 @ useCapture 194 set wz.unclick 195 function 196 param element 197 param handler 198 param useCapture 199 _ window.removeEvent 200 @ wz.element(element) 201 @ 'click' 202 @ handler 203 @ useCapture 204 set wz.blur 205 function 206 param element 207 param handler 208 param useCapture 209 _ window.addEvent 210 @ wz.element(element) 211 @ 'blur' 212 @ handler 213 @ useCapture 214 set wz.unblur 215 function 216 param element 217 param handler 218 param useCapture 219 _ window.removeEvent 220 @ wz.element(element) 221 @ 'blur' 222 @ handler 223 @ useCapture 224 set wz.change 225 function 226 param element 227 param handler 228 param useCapture 229 _ window.addEvent 230 @ wz.element(element) 231 @ 'change' 232 @ handler 233 @ useCapture 234 set wz.unchange 235 function 236 param element 237 param handler 238 param useCapture 239 _ window.removeEvent 240 @ wz.element(element) 241 @ 'change' 242 @ handler 243 @ useCapture 244 set wz.contextmenu 245 function 246 param element 247 param handler 248 param useCapture 249 _ window.addEvent 250 @ wz.element(element) 251 @ 'contextmenu' 252 @ handler 253 @ useCapture 254 set wz.uncontextmenu 255 function 256 param element 257 param handler 258 param useCapture 259 _ window.removeEvent 260 @ wz.element(element) 261 @ 'contextmenu' 262 @ handler 263 @ useCapture 264 set wz.keypress 265 function 266 param element 267 param handler 268 param useCapture 269 _ window.addEvent 270 @ wz.element(element) 271 @ 'keypress' 272 @ handler 273 @ useCapture 274 set wz.unkeypress 275 function 276 param element 277 param handler 278 param useCapture 279 _ window.removeEvent 280 @ wz.element(element) 281 @ 'keypress' 282 @ handler 283 @ useCapture 284 set wz.contentLoaded 285 function 286 param fn 287 # from Diego Perini https://raw.githubusercontent.com/dperini/ContentLoaded/master/src/contentloaded.js 288 var 289 decl done = false 290 decl top = true 291 decl doc = window.document 292 decl root = doc.documentElement 293 decl modern = doc.addEventListener 294 decl add = modern ? 'addEventListener' : 'attachEvent' 295 decl rem = modern ? 'removeEventListener' : 'detachEvent' 296 decl pre = modern ? '' : 'on' 297 decl init 298 function 299 param e 300 if (e.type == 'readystatechange') && (doc.readyState != 'complete') 301 return 302 _ (e.type == 'load' ? window : doc)[rem] 303 @ pre + e.type 304 @ init 305 @ false 306 if !(done) && (done = true) 307 _ fn.call(window, (e.type || e)) 308 decl poll 309 function 310 try 311 _ root.doScroll('left') 312 catch e 313 _ setTimeout(poll, 50) 314 return 315 _ init('poll') 316 if doc.readyState == 'complete' 317 _ fn.call(window, 'lazy') 318 else 319 if !(modern) && root.doScroll 320 try 321 set top = !(window.frameElement) 322 catch e 323 if top 324 _ poll() 325 _ doc[add] 326 @ pre + 'DOMContentLoaded' 327 @ init 328 @ false 329 _ doc[add] 330 @ pre + 'readystatechange' 331 @ init 332 @ false 333 _ window[add] 334 @ pre + 'load' 335 @ init 336 @ false 337 set wz.loaded = wz.contentLoaded 338 var entityMap 339 { 340 @ '&' '&' 341 @ '<' '<' 342 @ '>' '>' 343 @ '"' '"' 344 @ "'" ''' 345 @ '/' '/' 346 @ '`' '`' 347 @ '=' '=' 348 set wz.escapeHtml 349 function escapeHtml 350 param string 351 return 352 _ String(string).replace 353 @ /[&<>"'`=\/]/g 354 function fromEntityMap 355 param s 356 return entityMap[s] 357 set wz.unescapeHtml 358 function 359 param string 360 return 361 _ wz.replace 362 _ wz.replace 363 _ wz.replace 364 @ string 365 @ '<' 366 @ '<' 367 @ '>' 368 @ '>' 369 @ '&' 370 @ '&' 371 ()
/t/js/wz/ace.js.ittf
1 $group 2 var AceEditor_mimemap 3 { 4 @ js 'javascript' 5 var AceEditor_defaults 6 { 7 @ key 'ace' 8 @ editorElementId 'aceEditor' 9 @ mode 'text' 10 @ theme 'monokai' 11 @ fontSize '11pt' 12 class AceEditor 13 ctor 14 param options 15 # 16 # params 17 # { options 18 # string editorElementId 19 # string mode 20 # string theme 21 # number width 22 # number height 23 set this.options 24 _ Object.assign 25 @ AceEditor_defaults 26 @ options 27 set this.elementId = this.options.editorElementId 28 set this.key = this.options.key 29 set this.editor = null 30 set this.events = {} 31 m getValue 32 if this.editor 33 return this.editor.getValue() 34 m setValue 35 param value 36 if !this.editor 37 _ this.initialize() 38 _ this.editor.setValue(value, 1) 39 m setMime 40 param value 41 _ this.setMode 42 @ AceEditor_mimemap[value] || value 43 m setMode 44 param value 45 if this.editor 46 _ this.editor.getSession().setMode 47 @ "ace/mode/" + value 48 m setTheme 49 param value 50 if this.editor 51 _ this.editor.setTheme 52 @ "ace/theme/" + value 53 m readOnly 54 param value 55 if typeof value === 'undefined' 56 return 57 _ this.editor.getReadOnly() 58 else 59 _ this.editor.setReadOnly(value) 60 m onChange 61 param handler 62 set this.onChange = handler 63 m initialize 64 if this.editor 65 return 66 log 'AceEditor.initialize start on', this.options.editorElementId 67 if typeof ace === 'undefined' || !ace.edit 68 throw new Error('wz.ace initialize methods requires the `ace` component. Check that the ace script has been included.') 69 set this.element = wz.element('#' + this.options.editorElementId) 70 if !this.element 71 throw new Error('wz.ace initialize methods requires an existing `options.editorElementId` : ' + this.options.editorElementId + ' html element.') 72 _ wz.style(this.element, 'width', this.options.width) 73 _ wz.style(this.element, 'height', this.options.height) 74 set this.editor 75 _ ace.edit 76 @ this.options.editorElementId 77 _ this.editor.setOptions 78 { 79 @ fontSize this.options.fontSize 80 _ this.setMode 81 @ this.options.mode 82 _ this.setTheme 83 @ this.options.theme 84 var that = this 85 _ this.editor.getSession().on 86 @ 'change' 87 function 88 _ that.fire 89 @ 'change' 90 [ 91 _ that.getValue 92 log 'AceEditor.initialize end' 93 m on 94 param name 95 param handler 96 if this.events.hasOwnProperty(name) 97 _ this.events[name].push(handler) 98 else 99 set this.events[name] = [handler] 100 m off 101 param name 102 param handler 103 if !this.events.hasOwnProperty(name) 104 return 105 var index = this.events[name].indexOf(handler) 106 if index != -1 107 _ this.events[name].splice(index, 1) 108 m fire 109 param name 110 param args 111 if !this.events.hasOwnProperty(name) 112 return 113 if !args || !args.length 114 set args = [] 115 foreach ev in this.events[name] 116 _ ev.apply(null, args)
/ittf/meta/html/t/js/editManager.js.ittf
1 $group 2 # 3 # implements clickHandler 4 # params 5 # { ctx 6 # { editorImpl 7 # { modalManager 8 # string editorKey 9 # 10 class EditManager 11 ctor 12 param ctx 13 param options 14 set this.ctx = ctx 15 set this.options = options 16 set this.editorImpl = ctx.editorImpl 17 # do not set this in the constructor, could be yet uncreated 18 # set this.modalManager = ctx.modalManager 19 set this.dataHashKey = options.dataHashKey 20 set this.dataContentKey = options.dataContentKey 21 set this.dataPrettyKey = options.dataPrettyKey 22 set this.dataTitleKey = options.dataTitleKey 23 set this.contentHash = null 24 set this.contentOriginal = null 25 m initEditor 26 if this.editor 27 return 28 _ this.editorImpl.initialize 29 set this.editor = this.editorImpl 30 var that = this 31 var saveEl = wz.element('#' + this.editor.key + '-save') 32 var saveRefreshEl = wz.element('#' + this.editor.key + '-save-refresh') 33 var cancelEl = wz.element('#' + this.editor.key + '-cancel') 34 set this.titleElement = wz.element('#' + this.editor.key + '-title') 35 _ wz.click 36 @ cancelEl 37 function 38 _ that.ctx.modalManager.hide 39 @ that.editor.key 40 _ wz.click 41 @ saveEl 42 function 43 if that.editor.getValue() !== that.contentOriginal 44 _ that.ctx.dataManager.editSave 45 @ that.contentHash 46 _ that.editor.getValue 47 _ that.ctx.modalManager.hide 48 @ that.editor.key 49 _ wz.click 50 @ saveRefreshEl 51 function 52 if that.editor.getValue() !== that.contentOriginal 53 _ that.ctx.dataManager.editSave 54 @ that.contentHash 55 _ that.editor.getValue 56 _ that.ctx.modalManager.hide 57 @ that.editor.key 58 set location.href= location.pathname 59 m onSave 60 param data 61 _ wz.value 62 @ this.contentElementId 63 @ data.content 64 _ wz.html 65 @ this.prettyElementId 66 @ data.pretty && data.pretty.prettyLines ? data.pretty.prettyLines.join('') : data.pretty 67 m setEditor 68 param options 69 if this.editor 70 _ this.editor.setValue 71 @ options.value 72 if this.titleElement 73 _ wz.text(this.titleElement, options.title) 74 m edit 75 param options 76 # log 'wz.editManager.edit.options', options 77 _ this.initEditor 78 _ this.setEditor 79 @ options 80 m handleClick 81 param target 82 param dataValue 83 # log 'wz.editManager.handleClick.dataValue', dataValue 84 set this.contentElementId = dataValue[this.dataContentKey] 85 set this.prettyElementId = dataValue[this.dataPrettyKey] 86 set this.contentHash = dataValue[this.dataHashKey] 87 set this.contentOriginal = wz.value(this.contentElementId) 88 _ this.edit 89 { 90 @ value wz.value(this.contentElementId) 91 @ title dataValue[this.dataTitleKey] 92 _ this.ctx.modalManager.show 93 @ this.editor.key 94 @ this.editor.key + '-form' 95 m checkClick 96 param target 97 if this.editor 98 return 99 _ this.ctx.modalManager.checkClick 100 @ this.editor.key + '-form' 101 @ target 102 return false
/ittf/meta/html/t/js/modalManager.js.ittf
1 $group 2 class ModalManager 3 ctor 4 param ctx 5 set this.ctx = ctx 6 set this.dialogs = {} 7 m checkClick 8 param dialogKey 9 param target 10 # Not implemented yet 11 # log 'wz.ModalManager.checkClick', target 12 return false 13 m show 14 param dialogKey 15 param formId 16 var dialogData 17 _ this.createMarkup 18 @ dialogKey 19 if !dialogData.currentContent 20 var formEl 21 _ wz.element( '#' + formId) 22 if !formEl 23 throw new Error('In wz.modalManager.show() the formId is not an existing html element: ' + formId) 24 _ dialogData.modalContentElement.appendChild 25 @ formEl 26 set formEl.style.display = "block" 27 set dialogData.currentContent = formEl 28 set dialogData.modalElement.style.display = "block" 29 m hide 30 param dialogKey 31 var dialogData 32 _ this.createMarkup 33 @ dialogKey 34 if !dialogData 35 throw new Error('In wz.modalManager.hide() the dialogKey is unknown: ' + dialogKey) 36 set dialogData.modalElement.style.display = "none" 37 m createMarkup 38 param dialogKey 39 if !this.dialogs[dialogKey] 40 set this.dialogs[dialogKey] = {} 41 var dialog = this.dialogs[dialogKey] 42 if dialog.modalElement 43 return dialog 44 var modalsContainer = wz.element('#' + this.ctx.modalsContainerId) 45 if !modalsContainer 46 set modalsContainer = document.createElement('div') 47 _ modalsContainer.setAttribute('id', this.ctx.modalsContainerId) 48 _ document.body.appendChild(modalsContainer) 49 # . modal 50 # id edit-modal 51 # . modal-content 52 # id edit-modal-content 53 # span × 54 # class modal-close 55 var spanClose = document.createElement('span') 56 _ spanClose.setAttribute('class', 'modal-close') 57 _ wz.text(spanClose, 'X') 58 var that = this 59 _ wz.click 60 @ spanClose 61 function 62 _ that.hide 63 @ dialogKey 64 set dialog.modalContentElement = document.createElement('div') 65 _ dialog.modalContentElement.setAttribute('class', 'modal-content') 66 _ dialog.modalContentElement.setAttribute('id', dialogKey + '-modal-content') 67 set dialog.modalElement = document.createElement('div') 68 _ dialog.modalElement.setAttribute('class', 'modal') 69 _ dialog.modalElement.setAttribute('id', dialogKey + '-modal') 70 _ dialog.modalContentElement.appendChild(spanClose) 71 _ dialog.modalElement.appendChild(dialog.modalContentElement) 72 _ modalsContainer.appendChild(dialog.modalElement) 73 return dialog
/ittf/meta/html/t/js/dataManager.js.ittf
1 $group 2 # 3 # implements editSave 4 # params 5 # { ctx 6 # 7 class DataManager 8 ctor 9 param ctx 10 set this.ctx = ctx 11 set this.editSaveUrl = ctx.editSaveUrl 12 set this.editSaveHttpMethod = ctx.editSaveHttpMethod 13 m editSave 14 param hash 15 param content 16 log 'wz.DataManager.editSave', hash, content 17 _ fetch 18 @ this.editSaveUrl 19 { 20 @ method this.editSaveHttpMethod.toUpperCase() 21 { headers 22 @ "Content-Type" "application/json" 23 @ body 24 _ JSON.stringify 25 { 26 @ hash hash 27 @ content content 28 @ prettify true 29 ._ then 30 => 31 param response 32 _ response.json() 33 ._ then 34 => 35 param json 36 $if true 37 _ alert 38 @ 'editSave: ' + JSON.stringify(json, null, 2) 39 if this.ctx.editManager && this.ctx.editManager.onSave 40 set json.data.hash = hash 41 set json.data.content = content 42 # 43 _ alert 44 @ 'editSave: ' + JSON.stringify(json, null, 2) 45 _ this.ctx.editManager.onSave 46 @ json.data 47 ._ catch 48 => 49 param err 50 error err 51 _ alert 52 @ 'editSave error: ' + err
/ittf/meta/html/t/js/clickListener.js.ittf
1 $group 2 # 3 # params 4 # { ctx 5 # { clickHandler 6 # { options 7 # string container 8 # string class 9 # string dataField 10 # optional 11 function setupClickListener 12 param ctx 13 param options 14 var el = wz.element('#' + options.containerId) 15 if !el 16 throw new Error('wz.setupClickHandler requires an existing `options.containerId` html element. Received: ' + options.container) 17 _ wz.click 18 @ el 19 @ create_clickListener(ctx, options) 20 function create_clickListener 21 param ctx 22 param options 23 return 24 function clickListener 25 param event 26 # log 'clickListener.target', event.target 27 var dataValue = null 28 if options.dataField 29 if Array.isArray(options.dataField) 30 set dataValue = {} 31 foreach item in options.dataField 32 set dataValue[item] = event.target.dataset[item] 33 else 34 set dataValue = event.target.dataset[options.dataField] 35 # log 'clickListener.target.dataValue', dataValue 36 # log 'has class ' + options.targetClass, wz.hasClass(event.target, options.targetClass) 37 if wz.hasClass(event.target, options.targetClass) 38 _ ctx.clickHandler.handleClick 39 @ event.target 40 @ dataValue 41 _ event.preventDefault() 42 _ event.stopPropagation() 43 else 44 if ctx.clickHandler.checkClick(event.target) 45 _ event.preventDefault() 46 _ event.stopPropagation()
/t/js/wz/t/polyfill.js.ittf
1 $group 2 if typeof Array.isArray === 'undefined' 3 set Array.isArray 4 function 5 param obj 6 return Object.prototype.toString.call(obj) === '[object Array]'
/t/js/wz/t/eventTarget.js.ittf
1 $group 2 class wz_EventTarget 3 ctor 4 set this.handlers = {} 5 m __is_Event 6 param name 7 return Array.isArray(this.events) == false || this.events.indexOf(name) > -1 8 m emit 9 param name 10 var args = [].slice.call(arguments, 1) 11 # log 'wz_EventTarget.emit.args', arguments, args 12 if this.__is_Event(name) 13 if this.handlers[name] instanceof Array 14 foreach handle in this.handlers[name] 15 # log 'handle.context', handle.context 16 _ handle.callback.apply(handle.context, args) 17 else 18 throw new Error(name + ' event cannot be found on TreeView.') 19 m on 20 param name 21 param callback 22 param scope 23 # log 'EventTarget.on.name,scope', name, scope 24 if this.__is_Event(name) 25 if !this.handlers[name] 26 set this.handlers[name] = [] 27 _ this.handlers[name].push 28 { 29 @ callback callback 30 @ context scope 31 else 32 throw new Error(name + ' is not supported by TreeView.') 33 m off 34 param name 35 param callback 36 var 37 decl index 38 decl found = false 39 if this.handlers[name] instanceof Array 40 _ this.handlers[name].forEach 41 function 42 param handle 43 param i 44 set index = i 45 if handle.callback === callback && !found 46 set found = true 47 if found 48 _ this.handlers[name].splice(index, 1) 49 set wz.EventTarget = wz_EventTarget
/t/js/wz/t/global.js.ittf
1 $group 2 class wz_global : wz.EventTarget 3 set wz.global = new wz_global()
/t/js/wz/t/events.js.ittf
1 $group 2 iife 3 if document.addEventListener 4 set window.addEvent = 5 function 6 param elem 7 param type 8 param handler 9 param useCapture 10 _ elem.addEventListener(type, handler, !(!(useCapture))) 11 return handler 12 set window.removeEvent = 13 function 14 param elem 15 param type 16 param handler 17 param useCapture 18 _ elem.removeEventListener(type, handler, !(!(useCapture))) 19 return true 20 elif document.attachEvent 21 set window.addEvent = 22 function 23 param elem 24 param type 25 param handler 26 set type = ("on" + type) 27 var boundedHandler 28 function 29 return handler.apply(elem, arguments) 30 _ elem.attachEvent(type, boundedHandler) 31 return boundedHandler 32 set window.removeEvent = 33 function 34 param elem 35 param type 36 param handler 37 set type = ("on" + type) 38 _ elem.detachEvent(type, handler) 39 return true 40 ()
/t/js/wz/t/verify.js.ittf
1 $group 2 set wz.isString 3 function 4 param test 5 return test !== null && typeof(test) === 'string' 6 set wz.isEmpty 7 function 8 param test 9 return wz.isString(test) == false || test.length == 0 10 set wz.isObject 11 function 12 param test 13 if test === null || typeof(test) === 'undefined' 14 return false 15 return {}.toString.call(test) === '[object Object]' 16 set wz.isArray 17 function 18 param test 19 if test === null || typeof(test) === 'undefined' 20 return false 21 if Array.isArray 22 return Array.isArray(test); 23 return {}.toString.call(test) === '[object Array]' 24 set wz.clone 25 function 26 param obj 27 if wz.isArray(obj) 28 var ret 29 [ 30 foreach item in obj 31 var value 32 _ clone 33 @ item 34 if value !== null 35 _ ret.push(value) 36 return ret 37 elif wz.isObject(obj) 38 var ret 39 { 40 for var prop in obj 41 if obj.hasOwnProperty(prop) 42 set ret[prop] = clone(obj[prop]) 43 return ret 44 else 45 return obj 46 set wz.replace 47 function 48 param text 49 param find 50 param replace 51 if wz.isEmpty(text) 52 return text 53 return 54 _ text.replace 55 new RegExp 56 _ wz.escapeRegExp(find) 57 @ 'g' 58 @ replace 59 set wz.escapeRegExp 60 function 61 param text 62 if wz.isEmpty(text) 63 return text 64 return text.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1")