Starter Lab Productions Play
Project Docs Github
Log in
ittf meta html main.js.ittf Edit
  • /ittf/meta/html/main.js.ittf
  • /t/js/wz/core.js.ittf
  • /t/js/wz/ace.js.ittf
  • /ittf/meta/html/t/js/editManager.js.ittf
  • /ittf/meta/html/t/js/modalManager.js.ittf
  • /ittf/meta/html/t/js/dataManager.js.ittf
  • /ittf/meta/html/t/js/clickListener.js.ittf
  • /t/js/wz/t/polyfill.js.ittf
  • /t/js/wz/t/eventTarget.js.ittf
  • /t/js/wz/t/global.js.ittf
  • /t/js/wz/t/events.js.ittf
  • /t/js/wz/t/verify.js.ittf

/ittf/meta/html/main.js.ittf (primary)

edit
                                            
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

edit
                                            
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

edit
                                            
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

edit
                                            
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

edit
                                            
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

edit
                                            
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

edit
                                            
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

edit
                                            
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

edit
                                            
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

edit
                                            
1 $group
2 class wz_global : wz.EventTarget
3 set wz.global = new wz_global()

/t/js/wz/t/events.js.ittf

edit
                                            
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

edit
                                            
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")
Save
Save & Refresh
Cancel