@tsed/react-formio 3.0.0-alpha.12 → 3.0.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.d.ts +0 -0
- package/dist/all.js +38 -0
- package/dist/all.js.map +1 -0
- package/dist/chunks/_commonjsHelpers.js +30 -3
- package/dist/chunks/_commonjsHelpers.js.map +1 -1
- package/dist/chunks/index2.js +56953 -0
- package/dist/chunks/index2.js.map +1 -0
- package/dist/contexts/FormioContext.d.ts +20 -0
- package/dist/contexts/FormioContext.js +40 -0
- package/dist/contexts/FormioContext.js.map +1 -0
- package/dist/hooks/useFormioContext.d.ts +10 -0
- package/dist/hooks/useFormioContext.js +12 -0
- package/dist/hooks/useFormioContext.js.map +1 -0
- package/dist/hooks/useI18n.d.ts +4 -0
- package/dist/hooks/useI18n.js +9 -0
- package/dist/hooks/useI18n.js.map +1 -0
- package/dist/index.d.ts +1 -6
- package/dist/index.js +18 -13
- package/dist/index.js.map +1 -1
- package/dist/interfaces/ComponentType.d.ts +6 -2
- package/dist/interfaces/FormBuilderOptions.d.ts +7 -0
- package/dist/interfaces/FormBuilderOptions.js +2 -0
- package/dist/interfaces/FormBuilderOptions.js.map +1 -0
- package/dist/interfaces/FormOptions.d.ts +6 -13
- package/dist/interfaces/FormType.d.ts +4 -11
- package/dist/interfaces/SubmissionType.d.ts +5 -10
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/molecules/forms/input-tags/components/ChoicesTags.d.ts +19 -19
- package/dist/molecules/forms/input-tags/components/ChoicesTags.js +16 -16
- package/dist/molecules/forms/input-tags/components/ChoicesTags.js.map +1 -1
- package/dist/molecules/forms/select/components/ChoicesSelect.js.map +1 -1
- package/dist/molecules/modal/Modal.js +6 -6
- package/dist/molecules/modal/Modal.js.map +1 -1
- package/dist/molecules/pagination/Pagination.d.ts +2 -1
- package/dist/molecules/pagination/Pagination.js +24 -24
- package/dist/molecules/pagination/Pagination.js.map +1 -1
- package/dist/molecules/table/Table.js +27 -27
- package/dist/molecules/table/Table.js.map +1 -1
- package/dist/molecules/table/hooks/useTable.d.ts +3 -3
- package/dist/molecules/table/hooks/useTable.js +13 -12
- package/dist/molecules/table/hooks/useTable.js.map +1 -1
- package/dist/molecules/table/utils/mapFormToColumns.js +22 -22
- package/dist/molecules/table/utils/mapFormToColumns.js.map +1 -1
- package/dist/molecules/tabs/TabsLegacy.d.ts +3 -2
- package/dist/molecules/tabs/TabsLegacy.js +30 -30
- package/dist/molecules/tabs/TabsLegacy.js.map +1 -1
- package/dist/organisms/form/access/FormAccess.schema.js +1 -0
- package/dist/organisms/form/access/FormAccess.schema.js.map +1 -1
- package/dist/organisms/form/actions/FormAction.js +14 -11
- package/dist/organisms/form/actions/FormAction.js.map +1 -1
- package/dist/organisms/form/builder/FormEdit.d.ts +4 -3
- package/dist/organisms/form/builder/FormEdit.js +36 -36
- package/dist/organisms/form/builder/FormEdit.js.map +1 -1
- package/dist/organisms/form/builder/FormEditCtas.d.ts +2 -2
- package/dist/organisms/form/builder/FormEditCtas.js +14 -13
- package/dist/organisms/form/builder/FormEditCtas.js.map +1 -1
- package/dist/organisms/form/builder/useFormBuilder.d.ts +4 -4
- package/dist/organisms/form/builder/useFormBuilder.js +12 -12
- package/dist/organisms/form/builder/useFormBuilder.js.map +1 -1
- package/dist/organisms/form/builder/useFormEdit.d.ts +1 -1
- package/dist/organisms/form/exports/FormExport.d.ts +3 -2
- package/dist/organisms/form/exports/FormExport.js +21 -20
- package/dist/organisms/form/exports/FormExport.js.map +1 -1
- package/dist/organisms/form/preview/FormPreview.d.ts +3 -3
- package/dist/organisms/form/preview/FormPreview.js +5 -4
- package/dist/organisms/form/preview/FormPreview.js.map +1 -1
- package/dist/organisms/form/settings/FormSettings.js +21 -21
- package/dist/organisms/form/settings/FormSettings.js.map +1 -1
- package/dist/organisms/form/useForm.d.ts +2 -1
- package/dist/organisms/form/useForm.js +2 -2
- package/dist/organisms/form/useForm.js.map +1 -1
- package/dist/organisms/table/actions/ActionsTable.d.ts +2 -1
- package/dist/organisms/table/actions/ActionsTable.js +10 -9
- package/dist/organisms/table/actions/ActionsTable.js.map +1 -1
- package/dist/organisms/table/forms/FormsTable.d.ts +1 -1
- package/dist/organisms/table/forms/FormsTable.js +9 -8
- package/dist/organisms/table/forms/FormsTable.js.map +1 -1
- package/dist/organisms/table/forms/components/FormsCell.js +10 -10
- package/dist/organisms/views/FormViews.d.ts +3 -3
- package/dist/organisms/views/FormViews.js +47 -46
- package/dist/organisms/views/FormViews.js.map +1 -1
- package/dist/utils/iconClass.js +4 -5
- package/dist/utils/iconClass.js.map +1 -1
- package/package.json +3 -3
- package/src/all.ts +34 -0
- package/src/contexts/FormioContext.tsx +96 -0
- package/src/hooks/useFormioContext.ts +13 -0
- package/src/hooks/useI18n.ts +9 -0
- package/src/index.ts +17 -13
- package/src/interfaces/ComponentType.ts +2 -2
- package/src/interfaces/FormBuilderOptions.ts +9 -0
- package/src/interfaces/FormOptions.ts +7 -13
- package/src/interfaces/FormType.ts +5 -11
- package/src/interfaces/SubmissionType.ts +9 -8
- package/src/interfaces/index.ts +1 -0
- package/src/molecules/forms/form-control/FormControl.spec.tsx +5 -2
- package/src/molecules/forms/input-tags/components/ChoicesTags.tsx +4 -4
- package/src/molecules/forms/select/components/ChoicesSelect.tsx +2 -2
- package/src/molecules/pagination/Pagination.tsx +10 -9
- package/src/molecules/table/Table.stories.tsx +6 -6
- package/src/molecules/table/Table.tsx +1 -1
- package/src/molecules/table/hooks/useTable.tsx +7 -6
- package/src/molecules/table/utils/mapFormToColumns.tsx +6 -5
- package/src/molecules/tabs/TabsLegacy.stories.tsx +1 -1
- package/src/molecules/tabs/TabsLegacy.tsx +5 -3
- package/src/organisms/form/Form.stories.tsx +4 -0
- package/src/organisms/form/access/FormAccess.schema.ts +1 -0
- package/src/organisms/form/access/FormAccess.stories.tsx +3 -1
- package/src/organisms/form/actions/FormAction.stories.tsx +5 -1
- package/src/organisms/form/actions/FormAction.tsx +2 -2
- package/src/organisms/form/builder/FormEdit.stories.tsx +10 -6
- package/src/organisms/form/builder/FormEdit.tsx +6 -6
- package/src/organisms/form/builder/FormEditCtas.tsx +10 -10
- package/src/organisms/form/builder/useFormBuilder.ts +7 -6
- package/src/organisms/form/exports/FormExport.stories.tsx +8 -11
- package/src/organisms/form/exports/FormExport.tsx +12 -9
- package/src/organisms/form/preview/FormPreview.stories.tsx +6 -9
- package/src/organisms/form/preview/FormPreview.tsx +7 -5
- package/src/organisms/form/settings/FormSettings.component.spec.tsx +3 -1
- package/src/organisms/form/settings/FormSettings.stories.tsx +1 -1
- package/src/organisms/form/settings/FormSettings.tsx +6 -6
- package/src/organisms/form/useForm.ts +2 -3
- package/src/organisms/table/actions/ActionsTable.tsx +7 -5
- package/src/organisms/table/forms/FormsTable.tsx +6 -5
- package/src/organisms/table/submissions/SubmissionsTable.stories.tsx +10 -13
- package/src/organisms/views/FormViews.stories.tsx +13 -16
- package/src/organisms/views/FormViews.tsx +18 -16
- package/src/utils/iconClass.ts +1 -3
- package/dist/typings.d.js +0 -2
- package/dist/typings.d.js.map +0 -1
- package/src/typings.d.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.js","sources":["../../../../../node_modules/eventemitter2/lib/eventemitter2.js","../../../src/organisms/form/useForm.ts"],"sourcesContent":["/*!\n * EventEmitter2\n * https://github.com/hij1nx/EventEmitter2\n *\n * Copyright (c) 2013 hij1nx\n * Licensed under the MIT license.\n */\n;!function(undefined) {\n var hasOwnProperty= Object.hasOwnProperty;\n var isArray = Array.isArray ? Array.isArray : function _isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n };\n var defaultMaxListeners = 10;\n var nextTickSupported= typeof process=='object' && typeof process.nextTick=='function';\n var symbolsSupported= typeof Symbol==='function';\n var reflectSupported= typeof Reflect === 'object';\n var setImmediateSupported= typeof setImmediate === 'function';\n var _setImmediate= setImmediateSupported ? setImmediate : setTimeout;\n var ownKeys= symbolsSupported? (reflectSupported && typeof Reflect.ownKeys==='function'? Reflect.ownKeys : function(obj){\n var arr= Object.getOwnPropertyNames(obj);\n arr.push.apply(arr, Object.getOwnPropertySymbols(obj));\n return arr;\n }) : Object.keys;\n\n function init() {\n this._events = {};\n if (this._conf) {\n configure.call(this, this._conf);\n }\n }\n\n function configure(conf) {\n if (conf) {\n this._conf = conf;\n\n conf.delimiter && (this.delimiter = conf.delimiter);\n\n if(conf.maxListeners!==undefined){\n this._maxListeners= conf.maxListeners;\n }\n\n conf.wildcard && (this.wildcard = conf.wildcard);\n conf.newListener && (this._newListener = conf.newListener);\n conf.removeListener && (this._removeListener = conf.removeListener);\n conf.verboseMemoryLeak && (this.verboseMemoryLeak = conf.verboseMemoryLeak);\n conf.ignoreErrors && (this.ignoreErrors = conf.ignoreErrors);\n\n if (this.wildcard) {\n this.listenerTree = {};\n }\n }\n }\n\n function logPossibleMemoryLeak(count, eventName) {\n var errorMsg = '(node) warning: possible EventEmitter memory ' +\n 'leak detected. ' + count + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.';\n\n if(this.verboseMemoryLeak){\n errorMsg += ' Event name: ' + eventName + '.';\n }\n\n if(typeof process !== 'undefined' && process.emitWarning){\n var e = new Error(errorMsg);\n e.name = 'MaxListenersExceededWarning';\n e.emitter = this;\n e.count = count;\n process.emitWarning(e);\n } else {\n console.error(errorMsg);\n\n if (console.trace){\n console.trace();\n }\n }\n }\n\n var toArray = function (a, b, c) {\n var n = arguments.length;\n switch (n) {\n case 0:\n return [];\n case 1:\n return [a];\n case 2:\n return [a, b];\n case 3:\n return [a, b, c];\n default:\n var arr = new Array(n);\n while (n--) {\n arr[n] = arguments[n];\n }\n return arr;\n }\n };\n\n function toObject(keys, values) {\n var obj = {};\n var key;\n var len = keys.length;\n var valuesCount = values ? values.length : 0;\n for (var i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = i < valuesCount ? values[i] : undefined;\n }\n return obj;\n }\n\n function TargetObserver(emitter, target, options) {\n this._emitter = emitter;\n this._target = target;\n this._listeners = {};\n this._listenersCount = 0;\n\n var on, off;\n\n if (options.on || options.off) {\n on = options.on;\n off = options.off;\n }\n\n if (target.addEventListener) {\n on = target.addEventListener;\n off = target.removeEventListener;\n } else if (target.addListener) {\n on = target.addListener;\n off = target.removeListener;\n } else if (target.on) {\n on = target.on;\n off = target.off;\n }\n\n if (!on && !off) {\n throw Error('target does not implement any known event API');\n }\n\n if (typeof on !== 'function') {\n throw TypeError('on method must be a function');\n }\n\n if (typeof off !== 'function') {\n throw TypeError('off method must be a function');\n }\n\n this._on = on;\n this._off = off;\n\n var _observers= emitter._observers;\n if(_observers){\n _observers.push(this);\n }else{\n emitter._observers= [this];\n }\n }\n\n Object.assign(TargetObserver.prototype, {\n subscribe: function(event, localEvent, reducer){\n var observer= this;\n var target= this._target;\n var emitter= this._emitter;\n var listeners= this._listeners;\n var handler= function(){\n var args= toArray.apply(null, arguments);\n var eventObj= {\n data: args,\n name: localEvent,\n original: event\n };\n if(reducer){\n var result= reducer.call(target, eventObj);\n if(result!==false){\n emitter.emit.apply(emitter, [eventObj.name].concat(args))\n }\n return;\n }\n emitter.emit.apply(emitter, [localEvent].concat(args));\n };\n\n\n if(listeners[event]){\n throw Error('Event \\'' + event + '\\' is already listening');\n }\n\n this._listenersCount++;\n\n if(emitter._newListener && emitter._removeListener && !observer._onNewListener){\n\n this._onNewListener = function (_event) {\n if (_event === localEvent && listeners[event] === null) {\n listeners[event] = handler;\n observer._on.call(target, event, handler);\n }\n };\n\n emitter.on('newListener', this._onNewListener);\n\n this._onRemoveListener= function(_event){\n if(_event === localEvent && !emitter.hasListeners(_event) && listeners[event]){\n listeners[event]= null;\n observer._off.call(target, event, handler);\n }\n };\n\n listeners[event]= null;\n\n emitter.on('removeListener', this._onRemoveListener);\n }else{\n listeners[event]= handler;\n observer._on.call(target, event, handler);\n }\n },\n\n unsubscribe: function(event){\n var observer= this;\n var listeners= this._listeners;\n var emitter= this._emitter;\n var handler;\n var events;\n var off= this._off;\n var target= this._target;\n var i;\n\n if(event && typeof event!=='string'){\n throw TypeError('event must be a string');\n }\n\n function clearRefs(){\n if(observer._onNewListener){\n emitter.off('newListener', observer._onNewListener);\n emitter.off('removeListener', observer._onRemoveListener);\n observer._onNewListener= null;\n observer._onRemoveListener= null;\n }\n var index= findTargetIndex.call(emitter, observer);\n emitter._observers.splice(index, 1);\n }\n\n if(event){\n handler= listeners[event];\n if(!handler) return;\n off.call(target, event, handler);\n delete listeners[event];\n if(!--this._listenersCount){\n clearRefs();\n }\n }else{\n events= ownKeys(listeners);\n i= events.length;\n while(i-->0){\n event= events[i];\n off.call(target, event, listeners[event]);\n }\n this._listeners= {};\n this._listenersCount= 0;\n clearRefs();\n }\n }\n });\n\n function resolveOptions(options, schema, reducers, allowUnknown) {\n var computedOptions = Object.assign({}, schema);\n\n if (!options) return computedOptions;\n\n if (typeof options !== 'object') {\n throw TypeError('options must be an object')\n }\n\n var keys = Object.keys(options);\n var length = keys.length;\n var option, value;\n var reducer;\n\n function reject(reason) {\n throw Error('Invalid \"' + option + '\" option value' + (reason ? '. Reason: ' + reason : ''))\n }\n\n for (var i = 0; i < length; i++) {\n option = keys[i];\n if (!allowUnknown && !hasOwnProperty.call(schema, option)) {\n throw Error('Unknown \"' + option + '\" option');\n }\n value = options[option];\n if (value !== undefined) {\n reducer = reducers[option];\n computedOptions[option] = reducer ? reducer(value, reject) : value;\n }\n }\n return computedOptions;\n }\n\n function constructorReducer(value, reject) {\n if (typeof value !== 'function' || !value.hasOwnProperty('prototype')) {\n reject('value must be a constructor');\n }\n return value;\n }\n\n function makeTypeReducer(types) {\n var message= 'value must be type of ' + types.join('|');\n var len= types.length;\n var firstType= types[0];\n var secondType= types[1];\n\n if (len === 1) {\n return function (v, reject) {\n if (typeof v === firstType) {\n return v;\n }\n reject(message);\n }\n }\n\n if (len === 2) {\n return function (v, reject) {\n var kind= typeof v;\n if (kind === firstType || kind === secondType) return v;\n reject(message);\n }\n }\n\n return function (v, reject) {\n var kind = typeof v;\n var i = len;\n while (i-- > 0) {\n if (kind === types[i]) return v;\n }\n reject(message);\n }\n }\n\n var functionReducer= makeTypeReducer(['function']);\n\n var objectFunctionReducer= makeTypeReducer(['object', 'function']);\n\n function makeCancelablePromise(Promise, executor, options) {\n var isCancelable;\n var callbacks;\n var timer= 0;\n var subscriptionClosed;\n\n var promise = new Promise(function (resolve, reject, onCancel) {\n options= resolveOptions(options, {\n timeout: 0,\n overload: false\n }, {\n timeout: function(value, reject){\n value*= 1;\n if (typeof value !== 'number' || value < 0 || !Number.isFinite(value)) {\n reject('timeout must be a positive number');\n }\n return value;\n }\n });\n\n isCancelable = !options.overload && typeof Promise.prototype.cancel === 'function' && typeof onCancel === 'function';\n\n function cleanup() {\n if (callbacks) {\n callbacks = null;\n }\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n }\n }\n\n var _resolve= function(value){\n cleanup();\n resolve(value);\n };\n\n var _reject= function(err){\n cleanup();\n reject(err);\n };\n\n if (isCancelable) {\n executor(_resolve, _reject, onCancel);\n } else {\n callbacks = [function(reason){\n _reject(reason || Error('canceled'));\n }];\n executor(_resolve, _reject, function (cb) {\n if (subscriptionClosed) {\n throw Error('Unable to subscribe on cancel event asynchronously')\n }\n if (typeof cb !== 'function') {\n throw TypeError('onCancel callback must be a function');\n }\n callbacks.push(cb);\n });\n subscriptionClosed= true;\n }\n\n if (options.timeout > 0) {\n timer= setTimeout(function(){\n var reason= Error('timeout');\n reason.code = 'ETIMEDOUT'\n timer= 0;\n promise.cancel(reason);\n reject(reason);\n }, options.timeout);\n }\n });\n\n if (!isCancelable) {\n promise.cancel = function (reason) {\n if (!callbacks) {\n return;\n }\n var length = callbacks.length;\n for (var i = 1; i < length; i++) {\n callbacks[i](reason);\n }\n // internal callback to reject the promise\n callbacks[0](reason);\n callbacks = null;\n };\n }\n\n return promise;\n }\n\n function findTargetIndex(observer) {\n var observers = this._observers;\n if(!observers){\n return -1;\n }\n var len = observers.length;\n for (var i = 0; i < len; i++) {\n if (observers[i]._target === observer) return i;\n }\n return -1;\n }\n\n // Attention, function return type now is array, always !\n // It has zero elements if no any matches found and one or more\n // elements (leafs) if there are matches\n //\n function searchListenerTree(handlers, type, tree, i, typeLength) {\n if (!tree) {\n return null;\n }\n\n if (i === 0) {\n var kind = typeof type;\n if (kind === 'string') {\n var ns, n, l = 0, j = 0, delimiter = this.delimiter, dl = delimiter.length;\n if ((n = type.indexOf(delimiter)) !== -1) {\n ns = new Array(5);\n do {\n ns[l++] = type.slice(j, n);\n j = n + dl;\n } while ((n = type.indexOf(delimiter, j)) !== -1);\n\n ns[l++] = type.slice(j);\n type = ns;\n typeLength = l;\n } else {\n type = [type];\n typeLength = 1;\n }\n } else if (kind === 'object') {\n typeLength = type.length;\n } else {\n type = [type];\n typeLength = 1;\n }\n }\n\n var listeners= null, branch, xTree, xxTree, isolatedBranch, endReached, currentType = type[i],\n nextType = type[i + 1], branches, _listeners;\n\n if (i === typeLength) {\n //\n // If at the end of the event(s) list and the tree has listeners\n // invoke those listeners.\n //\n\n if(tree._listeners) {\n if (typeof tree._listeners === 'function') {\n handlers && handlers.push(tree._listeners);\n listeners = [tree];\n } else {\n handlers && handlers.push.apply(handlers, tree._listeners);\n listeners = [tree];\n }\n }\n } else {\n\n if (currentType === '*') {\n //\n // If the event emitted is '*' at this part\n // or there is a concrete match at this patch\n //\n branches = ownKeys(tree);\n n = branches.length;\n while (n-- > 0) {\n branch = branches[n];\n if (branch !== '_listeners') {\n _listeners = searchListenerTree(handlers, type, tree[branch], i + 1, typeLength);\n if (_listeners) {\n if (listeners) {\n listeners.push.apply(listeners, _listeners);\n } else {\n listeners = _listeners;\n }\n }\n }\n }\n return listeners;\n } else if (currentType === '**') {\n endReached = (i + 1 === typeLength || (i + 2 === typeLength && nextType === '*'));\n if (endReached && tree._listeners) {\n // The next element has a _listeners, add it to the handlers.\n listeners = searchListenerTree(handlers, type, tree, typeLength, typeLength);\n }\n\n branches = ownKeys(tree);\n n = branches.length;\n while (n-- > 0) {\n branch = branches[n];\n if (branch !== '_listeners') {\n if (branch === '*' || branch === '**') {\n if (tree[branch]._listeners && !endReached) {\n _listeners = searchListenerTree(handlers, type, tree[branch], typeLength, typeLength);\n if (_listeners) {\n if (listeners) {\n listeners.push.apply(listeners, _listeners);\n } else {\n listeners = _listeners;\n }\n }\n }\n _listeners = searchListenerTree(handlers, type, tree[branch], i, typeLength);\n } else if (branch === nextType) {\n _listeners = searchListenerTree(handlers, type, tree[branch], i + 2, typeLength);\n } else {\n // No match on this one, shift into the tree but not in the type array.\n _listeners = searchListenerTree(handlers, type, tree[branch], i, typeLength);\n }\n if (_listeners) {\n if (listeners) {\n listeners.push.apply(listeners, _listeners);\n } else {\n listeners = _listeners;\n }\n }\n }\n }\n return listeners;\n } else if (tree[currentType]) {\n listeners = searchListenerTree(handlers, type, tree[currentType], i + 1, typeLength);\n }\n }\n\n xTree = tree['*'];\n if (xTree) {\n //\n // If the listener tree will allow any match for this part,\n // then recursively explore all branches of the tree\n //\n searchListenerTree(handlers, type, xTree, i + 1, typeLength);\n }\n\n xxTree = tree['**'];\n if (xxTree) {\n if (i < typeLength) {\n if (xxTree._listeners) {\n // If we have a listener on a '**', it will catch all, so add its handler.\n searchListenerTree(handlers, type, xxTree, typeLength, typeLength);\n }\n\n // Build arrays of matching next branches and others.\n branches= ownKeys(xxTree);\n n= branches.length;\n while(n-->0){\n branch= branches[n];\n if (branch !== '_listeners') {\n if (branch === nextType) {\n // We know the next element will match, so jump twice.\n searchListenerTree(handlers, type, xxTree[branch], i + 2, typeLength);\n } else if (branch === currentType) {\n // Current node matches, move into the tree.\n searchListenerTree(handlers, type, xxTree[branch], i + 1, typeLength);\n } else {\n isolatedBranch = {};\n isolatedBranch[branch] = xxTree[branch];\n searchListenerTree(handlers, type, {'**': isolatedBranch}, i + 1, typeLength);\n }\n }\n }\n } else if (xxTree._listeners) {\n // We have reached the end and still on a '**'\n searchListenerTree(handlers, type, xxTree, typeLength, typeLength);\n } else if (xxTree['*'] && xxTree['*']._listeners) {\n searchListenerTree(handlers, type, xxTree['*'], typeLength, typeLength);\n }\n }\n\n return listeners;\n }\n\n function growListenerTree(type, listener, prepend) {\n var len = 0, j = 0, i, delimiter = this.delimiter, dl= delimiter.length, ns;\n\n if(typeof type==='string') {\n if ((i = type.indexOf(delimiter)) !== -1) {\n ns = new Array(5);\n do {\n ns[len++] = type.slice(j, i);\n j = i + dl;\n } while ((i = type.indexOf(delimiter, j)) !== -1);\n\n ns[len++] = type.slice(j);\n }else{\n ns= [type];\n len= 1;\n }\n }else{\n ns= type;\n len= type.length;\n }\n\n //\n // Looks for two consecutive '**', if so, don't add the event at all.\n //\n if (len > 1) {\n for (i = 0; i + 1 < len; i++) {\n if (ns[i] === '**' && ns[i + 1] === '**') {\n return;\n }\n }\n }\n\n\n\n var tree = this.listenerTree, name;\n\n for (i = 0; i < len; i++) {\n name = ns[i];\n\n tree = tree[name] || (tree[name] = {});\n\n if (i === len - 1) {\n if (!tree._listeners) {\n tree._listeners = listener;\n } else {\n if (typeof tree._listeners === 'function') {\n tree._listeners = [tree._listeners];\n }\n\n if (prepend) {\n tree._listeners.unshift(listener);\n } else {\n tree._listeners.push(listener);\n }\n\n if (\n !tree._listeners.warned &&\n this._maxListeners > 0 &&\n tree._listeners.length > this._maxListeners\n ) {\n tree._listeners.warned = true;\n logPossibleMemoryLeak.call(this, tree._listeners.length, name);\n }\n }\n return true;\n }\n }\n\n return true;\n }\n\n function collectTreeEvents(tree, events, root, asArray){\n var branches= ownKeys(tree);\n var i= branches.length;\n var branch, branchName, path;\n var hasListeners= tree['_listeners'];\n var isArrayPath;\n\n while(i-->0){\n branchName= branches[i];\n\n branch= tree[branchName];\n\n if(branchName==='_listeners'){\n path= root;\n }else {\n path = root ? root.concat(branchName) : [branchName];\n }\n\n isArrayPath= asArray || typeof branchName==='symbol';\n\n hasListeners && events.push(isArrayPath? path : path.join(this.delimiter));\n\n if(typeof branch==='object'){\n collectTreeEvents.call(this, branch, events, path, isArrayPath);\n }\n }\n\n return events;\n }\n\n function recursivelyGarbageCollect(root) {\n var keys = ownKeys(root);\n var i= keys.length;\n var obj, key, flag;\n while(i-->0){\n key = keys[i];\n obj = root[key];\n\n if(obj){\n flag= true;\n if(key !== '_listeners' && !recursivelyGarbageCollect(obj)){\n delete root[key];\n }\n }\n }\n\n return flag;\n }\n\n function Listener(emitter, event, listener){\n this.emitter= emitter;\n this.event= event;\n this.listener= listener;\n }\n\n Listener.prototype.off= function(){\n this.emitter.off(this.event, this.listener);\n return this;\n };\n\n function setupListener(event, listener, options){\n if (options === true) {\n promisify = true;\n } else if (options === false) {\n async = true;\n } else {\n if (!options || typeof options !== 'object') {\n throw TypeError('options should be an object or true');\n }\n var async = options.async;\n var promisify = options.promisify;\n var nextTick = options.nextTick;\n var objectify = options.objectify;\n }\n\n if (async || nextTick || promisify) {\n var _listener = listener;\n var _origin = listener._origin || listener;\n\n if (nextTick && !nextTickSupported) {\n throw Error('process.nextTick is not supported');\n }\n\n if (promisify === undefined) {\n promisify = listener.constructor.name === 'AsyncFunction';\n }\n\n listener = function () {\n var args = arguments;\n var context = this;\n var event = this.event;\n\n return promisify ? (nextTick ? Promise.resolve() : new Promise(function (resolve) {\n _setImmediate(resolve);\n }).then(function () {\n context.event = event;\n return _listener.apply(context, args)\n })) : (nextTick ? process.nextTick : _setImmediate)(function () {\n context.event = event;\n _listener.apply(context, args)\n });\n };\n\n listener._async = true;\n listener._origin = _origin;\n }\n\n return [listener, objectify? new Listener(this, event, listener): this];\n }\n\n function EventEmitter(conf) {\n this._events = {};\n this._newListener = false;\n this._removeListener = false;\n this.verboseMemoryLeak = false;\n configure.call(this, conf);\n }\n\n EventEmitter.EventEmitter2 = EventEmitter; // backwards compatibility for exporting EventEmitter property\n\n EventEmitter.prototype.listenTo= function(target, events, options){\n if(typeof target!=='object'){\n throw TypeError('target musts be an object');\n }\n\n var emitter= this;\n\n options = resolveOptions(options, {\n on: undefined,\n off: undefined,\n reducers: undefined\n }, {\n on: functionReducer,\n off: functionReducer,\n reducers: objectFunctionReducer\n });\n\n function listen(events){\n if(typeof events!=='object'){\n throw TypeError('events must be an object');\n }\n\n var reducers= options.reducers;\n var index= findTargetIndex.call(emitter, target);\n var observer;\n\n if(index===-1){\n observer= new TargetObserver(emitter, target, options);\n }else{\n observer= emitter._observers[index];\n }\n\n var keys= ownKeys(events);\n var len= keys.length;\n var event;\n var isSingleReducer= typeof reducers==='function';\n\n for(var i=0; i<len; i++){\n event= keys[i];\n observer.subscribe(\n event,\n events[event] || event,\n isSingleReducer ? reducers : reducers && reducers[event]\n );\n }\n }\n\n isArray(events)?\n listen(toObject(events)) :\n (typeof events==='string'? listen(toObject(events.split(/\\s+/))): listen(events));\n\n return this;\n };\n\n EventEmitter.prototype.stopListeningTo = function (target, event) {\n var observers = this._observers;\n\n if(!observers){\n return false;\n }\n\n var i = observers.length;\n var observer;\n var matched= false;\n\n if(target && typeof target!=='object'){\n throw TypeError('target should be an object');\n }\n\n while (i-- > 0) {\n observer = observers[i];\n if (!target || observer._target === target) {\n observer.unsubscribe(event);\n matched= true;\n }\n }\n\n return matched;\n };\n\n // By default EventEmitters will print a warning if more than\n // 10 listeners are added to it. This is a useful default which\n // helps finding memory leaks.\n //\n // Obviously not all Emitters should be limited to 10. This function allows\n // that to be increased. Set to zero for unlimited.\n\n EventEmitter.prototype.delimiter = '.';\n\n EventEmitter.prototype.setMaxListeners = function(n) {\n if (n !== undefined) {\n this._maxListeners = n;\n if (!this._conf) this._conf = {};\n this._conf.maxListeners = n;\n }\n };\n\n EventEmitter.prototype.getMaxListeners = function() {\n return this._maxListeners;\n };\n\n EventEmitter.prototype.event = '';\n\n EventEmitter.prototype.once = function(event, fn, options) {\n return this._once(event, fn, false, options);\n };\n\n EventEmitter.prototype.prependOnceListener = function(event, fn, options) {\n return this._once(event, fn, true, options);\n };\n\n EventEmitter.prototype._once = function(event, fn, prepend, options) {\n return this._many(event, 1, fn, prepend, options);\n };\n\n EventEmitter.prototype.many = function(event, ttl, fn, options) {\n return this._many(event, ttl, fn, false, options);\n };\n\n EventEmitter.prototype.prependMany = function(event, ttl, fn, options) {\n return this._many(event, ttl, fn, true, options);\n };\n\n EventEmitter.prototype._many = function(event, ttl, fn, prepend, options) {\n var self = this;\n\n if (typeof fn !== 'function') {\n throw new Error('many only accepts instances of Function');\n }\n\n function listener() {\n if (--ttl === 0) {\n self.off(event, listener);\n }\n return fn.apply(this, arguments);\n }\n\n listener._origin = fn;\n\n return this._on(event, listener, prepend, options);\n };\n\n EventEmitter.prototype.emit = function() {\n if (!this._events && !this._all) {\n return false;\n }\n\n this._events || init.call(this);\n\n var type = arguments[0], ns, wildcard= this.wildcard;\n var args,l,i,j, containsSymbol;\n\n if (type === 'newListener' && !this._newListener) {\n if (!this._events.newListener) {\n return false;\n }\n }\n\n if (wildcard) {\n ns= type;\n if(type!=='newListener' && type!=='removeListener'){\n if (typeof type === 'object') {\n l = type.length;\n if (symbolsSupported) {\n for (i = 0; i < l; i++) {\n if (typeof type[i] === 'symbol') {\n containsSymbol = true;\n break;\n }\n }\n }\n if (!containsSymbol) {\n type = type.join(this.delimiter);\n }\n }\n }\n }\n\n var al = arguments.length;\n var handler;\n\n if (this._all && this._all.length) {\n handler = this._all.slice();\n\n for (i = 0, l = handler.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n handler[i].call(this, type);\n break;\n case 2:\n handler[i].call(this, type, arguments[1]);\n break;\n case 3:\n handler[i].call(this, type, arguments[1], arguments[2]);\n break;\n default:\n handler[i].apply(this, arguments);\n }\n }\n }\n\n if (wildcard) {\n handler = [];\n searchListenerTree.call(this, handler, ns, this.listenerTree, 0, l);\n } else {\n handler = this._events[type];\n if (typeof handler === 'function') {\n this.event = type;\n switch (al) {\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n default:\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n handler.apply(this, args);\n }\n return true;\n } else if (handler) {\n // need to make copy of handlers because list can change in the middle\n // of emit call\n handler = handler.slice();\n }\n }\n\n if (handler && handler.length) {\n if (al > 3) {\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n }\n for (i = 0, l = handler.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n handler[i].call(this);\n break;\n case 2:\n handler[i].call(this, arguments[1]);\n break;\n case 3:\n handler[i].call(this, arguments[1], arguments[2]);\n break;\n default:\n handler[i].apply(this, args);\n }\n }\n return true;\n } else if (!this.ignoreErrors && !this._all && type === 'error') {\n if (arguments[1] instanceof Error) {\n throw arguments[1]; // Unhandled 'error' event\n } else {\n throw new Error(\"Uncaught, unspecified 'error' event.\");\n }\n }\n\n return !!this._all;\n };\n\n EventEmitter.prototype.emitAsync = function() {\n if (!this._events && !this._all) {\n return false;\n }\n\n this._events || init.call(this);\n\n var type = arguments[0], wildcard= this.wildcard, ns, containsSymbol;\n var args,l,i,j;\n\n if (type === 'newListener' && !this._newListener) {\n if (!this._events.newListener) { return Promise.resolve([false]); }\n }\n\n if (wildcard) {\n ns= type;\n if(type!=='newListener' && type!=='removeListener'){\n if (typeof type === 'object') {\n l = type.length;\n if (symbolsSupported) {\n for (i = 0; i < l; i++) {\n if (typeof type[i] === 'symbol') {\n containsSymbol = true;\n break;\n }\n }\n }\n if (!containsSymbol) {\n type = type.join(this.delimiter);\n }\n }\n }\n }\n\n var promises= [];\n\n var al = arguments.length;\n var handler;\n\n if (this._all) {\n for (i = 0, l = this._all.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n promises.push(this._all[i].call(this, type));\n break;\n case 2:\n promises.push(this._all[i].call(this, type, arguments[1]));\n break;\n case 3:\n promises.push(this._all[i].call(this, type, arguments[1], arguments[2]));\n break;\n default:\n promises.push(this._all[i].apply(this, arguments));\n }\n }\n }\n\n if (wildcard) {\n handler = [];\n searchListenerTree.call(this, handler, ns, this.listenerTree, 0);\n } else {\n handler = this._events[type];\n }\n\n if (typeof handler === 'function') {\n this.event = type;\n switch (al) {\n case 1:\n promises.push(handler.call(this));\n break;\n case 2:\n promises.push(handler.call(this, arguments[1]));\n break;\n case 3:\n promises.push(handler.call(this, arguments[1], arguments[2]));\n break;\n default:\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n promises.push(handler.apply(this, args));\n }\n } else if (handler && handler.length) {\n handler = handler.slice();\n if (al > 3) {\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n }\n for (i = 0, l = handler.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n promises.push(handler[i].call(this));\n break;\n case 2:\n promises.push(handler[i].call(this, arguments[1]));\n break;\n case 3:\n promises.push(handler[i].call(this, arguments[1], arguments[2]));\n break;\n default:\n promises.push(handler[i].apply(this, args));\n }\n }\n } else if (!this.ignoreErrors && !this._all && type === 'error') {\n if (arguments[1] instanceof Error) {\n return Promise.reject(arguments[1]); // Unhandled 'error' event\n } else {\n return Promise.reject(\"Uncaught, unspecified 'error' event.\");\n }\n }\n\n return Promise.all(promises);\n };\n\n EventEmitter.prototype.on = function(type, listener, options) {\n return this._on(type, listener, false, options);\n };\n\n EventEmitter.prototype.prependListener = function(type, listener, options) {\n return this._on(type, listener, true, options);\n };\n\n EventEmitter.prototype.onAny = function(fn) {\n return this._onAny(fn, false);\n };\n\n EventEmitter.prototype.prependAny = function(fn) {\n return this._onAny(fn, true);\n };\n\n EventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n EventEmitter.prototype._onAny = function(fn, prepend){\n if (typeof fn !== 'function') {\n throw new Error('onAny only accepts instances of Function');\n }\n\n if (!this._all) {\n this._all = [];\n }\n\n // Add the function to the event listener collection.\n if(prepend){\n this._all.unshift(fn);\n }else{\n this._all.push(fn);\n }\n\n return this;\n };\n\n EventEmitter.prototype._on = function(type, listener, prepend, options) {\n if (typeof type === 'function') {\n this._onAny(type, listener);\n return this;\n }\n\n if (typeof listener !== 'function') {\n throw new Error('on only accepts instances of Function');\n }\n this._events || init.call(this);\n\n var returnValue= this, temp;\n\n if (options !== undefined) {\n temp = setupListener.call(this, type, listener, options);\n listener = temp[0];\n returnValue = temp[1];\n }\n\n // To avoid recursion in the case that type == \"newListeners\"! Before\n // adding it to the listeners, first emit \"newListeners\".\n if (this._newListener) {\n this.emit('newListener', type, listener);\n }\n\n if (this.wildcard) {\n growListenerTree.call(this, type, listener, prepend);\n return returnValue;\n }\n\n if (!this._events[type]) {\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n } else {\n if (typeof this._events[type] === 'function') {\n // Change to array.\n this._events[type] = [this._events[type]];\n }\n\n // If we've already got an array, just add\n if(prepend){\n this._events[type].unshift(listener);\n }else{\n this._events[type].push(listener);\n }\n\n // Check for listener leak\n if (\n !this._events[type].warned &&\n this._maxListeners > 0 &&\n this._events[type].length > this._maxListeners\n ) {\n this._events[type].warned = true;\n logPossibleMemoryLeak.call(this, this._events[type].length, type);\n }\n }\n\n return returnValue;\n };\n\n EventEmitter.prototype.off = function(type, listener) {\n if (typeof listener !== 'function') {\n throw new Error('removeListener only takes instances of Function');\n }\n\n var handlers,leafs=[];\n\n if(this.wildcard) {\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\n leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0);\n if(!leafs) return this;\n } else {\n // does not use listeners(), so no side effect of creating _events[type]\n if (!this._events[type]) return this;\n handlers = this._events[type];\n leafs.push({_listeners:handlers});\n }\n\n for (var iLeaf=0; iLeaf<leafs.length; iLeaf++) {\n var leaf = leafs[iLeaf];\n handlers = leaf._listeners;\n if (isArray(handlers)) {\n\n var position = -1;\n\n for (var i = 0, length = handlers.length; i < length; i++) {\n if (handlers[i] === listener ||\n (handlers[i].listener && handlers[i].listener === listener) ||\n (handlers[i]._origin && handlers[i]._origin === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0) {\n continue;\n }\n\n if(this.wildcard) {\n leaf._listeners.splice(position, 1);\n }\n else {\n this._events[type].splice(position, 1);\n }\n\n if (handlers.length === 0) {\n if(this.wildcard) {\n delete leaf._listeners;\n }\n else {\n delete this._events[type];\n }\n }\n if (this._removeListener)\n this.emit(\"removeListener\", type, listener);\n\n return this;\n }\n else if (handlers === listener ||\n (handlers.listener && handlers.listener === listener) ||\n (handlers._origin && handlers._origin === listener)) {\n if(this.wildcard) {\n delete leaf._listeners;\n }\n else {\n delete this._events[type];\n }\n if (this._removeListener)\n this.emit(\"removeListener\", type, listener);\n }\n }\n\n this.listenerTree && recursivelyGarbageCollect(this.listenerTree);\n\n return this;\n };\n\n EventEmitter.prototype.offAny = function(fn) {\n var i = 0, l = 0, fns;\n if (fn && this._all && this._all.length > 0) {\n fns = this._all;\n for(i = 0, l = fns.length; i < l; i++) {\n if(fn === fns[i]) {\n fns.splice(i, 1);\n if (this._removeListener)\n this.emit(\"removeListenerAny\", fn);\n return this;\n }\n }\n } else {\n fns = this._all;\n if (this._removeListener) {\n for(i = 0, l = fns.length; i < l; i++)\n this.emit(\"removeListenerAny\", fns[i]);\n }\n this._all = [];\n }\n return this;\n };\n\n EventEmitter.prototype.removeListener = EventEmitter.prototype.off;\n\n EventEmitter.prototype.removeAllListeners = function (type) {\n if (type === undefined) {\n !this._events || init.call(this);\n return this;\n }\n\n if (this.wildcard) {\n var leafs = searchListenerTree.call(this, null, type, this.listenerTree, 0), leaf, i;\n if (!leafs) return this;\n for (i = 0; i < leafs.length; i++) {\n leaf = leafs[i];\n leaf._listeners = null;\n }\n this.listenerTree && recursivelyGarbageCollect(this.listenerTree);\n } else if (this._events) {\n this._events[type] = null;\n }\n return this;\n };\n\n EventEmitter.prototype.listeners = function (type) {\n var _events = this._events;\n var keys, listeners, allListeners;\n var i;\n var listenerTree;\n\n if (type === undefined) {\n if (this.wildcard) {\n throw Error('event name required for wildcard emitter');\n }\n\n if (!_events) {\n return [];\n }\n\n keys = ownKeys(_events);\n i = keys.length;\n allListeners = [];\n while (i-- > 0) {\n listeners = _events[keys[i]];\n if (typeof listeners === 'function') {\n allListeners.push(listeners);\n } else {\n allListeners.push.apply(allListeners, listeners);\n }\n }\n return allListeners;\n } else {\n if (this.wildcard) {\n listenerTree= this.listenerTree;\n if(!listenerTree) return [];\n var handlers = [];\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\n searchListenerTree.call(this, handlers, ns, listenerTree, 0);\n return handlers;\n }\n\n if (!_events) {\n return [];\n }\n\n listeners = _events[type];\n\n if (!listeners) {\n return [];\n }\n return typeof listeners === 'function' ? [listeners] : listeners;\n }\n };\n\n EventEmitter.prototype.eventNames = function(nsAsArray){\n var _events= this._events;\n return this.wildcard? collectTreeEvents.call(this, this.listenerTree, [], null, nsAsArray) : (_events? ownKeys(_events) : []);\n };\n\n EventEmitter.prototype.listenerCount = function(type) {\n return this.listeners(type).length;\n };\n\n EventEmitter.prototype.hasListeners = function (type) {\n if (this.wildcard) {\n var handlers = [];\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\n searchListenerTree.call(this, handlers, ns, this.listenerTree, 0);\n return handlers.length > 0;\n }\n\n var _events = this._events;\n var _all = this._all;\n\n return !!(_all && _all.length || _events && (type === undefined ? ownKeys(_events).length : _events[type]));\n };\n\n EventEmitter.prototype.listenersAny = function() {\n\n if(this._all) {\n return this._all;\n }\n else {\n return [];\n }\n\n };\n\n EventEmitter.prototype.waitFor = function (event, options) {\n var self = this;\n var type = typeof options;\n if (type === 'number') {\n options = {timeout: options};\n } else if (type === 'function') {\n options = {filter: options};\n }\n\n options= resolveOptions(options, {\n timeout: 0,\n filter: undefined,\n handleError: false,\n Promise: Promise,\n overload: false\n }, {\n filter: functionReducer,\n Promise: constructorReducer\n });\n\n return makeCancelablePromise(options.Promise, function (resolve, reject, onCancel) {\n function listener() {\n var filter= options.filter;\n if (filter && !filter.apply(self, arguments)) {\n return;\n }\n self.off(event, listener);\n if (options.handleError) {\n var err = arguments[0];\n err ? reject(err) : resolve(toArray.apply(null, arguments).slice(1));\n } else {\n resolve(toArray.apply(null, arguments));\n }\n }\n\n onCancel(function(){\n self.off(event, listener);\n });\n\n self._on(event, listener, false);\n }, {\n timeout: options.timeout,\n overload: options.overload\n })\n };\n\n function once(emitter, name, options) {\n options= resolveOptions(options, {\n Promise: Promise,\n timeout: 0,\n overload: false\n }, {\n Promise: constructorReducer\n });\n\n var _Promise= options.Promise;\n\n return makeCancelablePromise(_Promise, function(resolve, reject, onCancel){\n var handler;\n if (typeof emitter.addEventListener === 'function') {\n handler= function () {\n resolve(toArray.apply(null, arguments));\n };\n\n onCancel(function(){\n emitter.removeEventListener(name, handler);\n });\n\n emitter.addEventListener(\n name,\n handler,\n {once: true}\n );\n return;\n }\n\n var eventListener = function(){\n errorListener && emitter.removeListener('error', errorListener);\n resolve(toArray.apply(null, arguments));\n };\n\n var errorListener;\n\n if (name !== 'error') {\n errorListener = function (err){\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n onCancel(function(){\n errorListener && emitter.removeListener('error', errorListener);\n emitter.removeListener(name, eventListener);\n });\n\n emitter.once(name, eventListener);\n }, {\n timeout: options.timeout,\n overload: options.overload\n });\n }\n\n var prototype= EventEmitter.prototype;\n\n Object.defineProperties(EventEmitter, {\n defaultMaxListeners: {\n get: function () {\n return prototype._maxListeners;\n },\n set: function (n) {\n if (typeof n !== 'number' || n < 0 || Number.isNaN(n)) {\n throw TypeError('n must be a non-negative number')\n }\n prototype._maxListeners = n;\n },\n enumerable: true\n },\n once: {\n value: once,\n writable: true,\n configurable: true\n }\n });\n\n Object.defineProperties(prototype, {\n _maxListeners: {\n value: defaultMaxListeners,\n writable: true,\n configurable: true\n },\n _observers: {value: null, writable: true, configurable: true}\n });\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function() {\n return EventEmitter;\n });\n } else if (typeof exports === 'object') {\n // CommonJS\n module.exports = EventEmitter;\n }\n else {\n // global for any kind of environment.\n var _global= new Function('','return this')();\n _global.EventEmitter2 = EventEmitter;\n }\n}();\n","import { EventEmitter2 } from \"eventemitter2\";\nimport { Form } from \"formiojs\";\nimport { type MutableRefObject, useEffect, useRef, useState } from \"react\";\n\nimport type { ChangedSubmission, ComponentType, FormOptions, FormType, JSON, SubmissionType } from \"../../interfaces\";\nimport { FormCustomEvent } from \"./types\";\n\ntype Webform = any;\ntype EventError = string | Error | Error[] | { message: string } | { message: string }[];\n\nexport interface UseFormProps<Data extends { [key: string]: JSON } = { [key: string]: JSON }> {\n src?: string;\n url?: string;\n form?: FormType;\n submission?: SubmissionType<Data>;\n // TODO: once events is typed correctly in @formio/js options, we can remove this override\n options?: FormOptions;\n FormClass?: any;\n onFormReady?: (instance: Webform) => void;\n onPrevPage?: (page: number, submission: SubmissionType<Data>) => void;\n onNextPage?: (page: number, submission: SubmissionType<Data>) => void;\n onCancelSubmit?: () => void;\n onCancelComponent?: (component: ComponentType) => void;\n onChange?: (value: ChangedSubmission<Data>, flags: any, modified: boolean) => void;\n onCustomEvent?: (event: FormCustomEvent) => void;\n onComponentChange?: (changed: { instance: Webform; component: Webform; value: any; flags: any }) => void;\n onSubmit?: (submission: SubmissionType<Data>, saved?: boolean) => void;\n onAsyncSubmit?: (submission: SubmissionType<Data>) => void;\n onSubmitDone?: (submission: SubmissionType<Data>) => void;\n onSubmitError?: (error: EventError) => void;\n onFormLoad?: (form: JSON) => void;\n onError?: (error: EventError | false) => void;\n onRender?: (param: any) => void;\n onAttach?: (param: any) => void;\n onBuild?: (param: any) => void;\n onFocus?: (instance: Webform) => void;\n onBlur?: (instance: Webform) => void;\n onInitialized?: () => void;\n onLanguageChanged?: () => void;\n onBeforeSetSubmission?: (submission: SubmissionType<Data>) => void;\n onSaveDraftBegin?: () => void;\n onSaveDraft?: (submission: SubmissionType<Data>) => void;\n onRestoreDraft?: (submission: SubmissionType<Data> | null) => void;\n onSubmissionDeleted?: (submission: SubmissionType<Data>) => void;\n onRequestDone?: () => void;\n otherEvents?: {\n [event: string]: (...args: any[]) => void;\n };\n}\n\nconst getDefaultEmitter = () => {\n return new EventEmitter2({\n wildcard: false,\n maxListeners: 0\n });\n};\n\nfunction onAnyEvent<Data extends { [key: string]: JSON } = { [key: string]: JSON }>(\n handlers: Omit<UseFormProps<Data>, \"src\" | \"url\" | \"form\" | \"submission\" | \"options\" | \"formReady\" | \"formioform\" | \"Formio\">,\n ...args: [string, ...any[]]\n) {\n const [event, ...outputArgs] = args;\n\n if (event.startsWith(\"formio.\")) {\n const funcName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (funcName in handlers) {\n (handlers as any)[funcName](...outputArgs);\n }\n }\n if (handlers.otherEvents && handlers.otherEvents[event]) {\n handlers.otherEvents[event](...outputArgs);\n }\n}\n\nconst createWebformInstance = async (\n FormConstructor: any | undefined,\n formSource: any,\n element: HTMLDivElement,\n options: FormOptions = {}\n) => {\n if (!options?.events) {\n options.events = getDefaultEmitter();\n }\n\n if (typeof formSource !== \"string\") {\n formSource = structuredClone(formSource);\n }\n\n const promise = new FormConstructor(element, formSource, options);\n const webform = await promise.ready;\n\n webform.toJSON = () => ({ __WEBFORM__: true });\n\n return webform;\n};\n\n// Define effective props (aka I want to rename these props but also maintain backwards compatibility)\nfunction getEffectiveProps<Data extends { [key: string]: JSON } = { [key: string]: JSON }>(props: UseFormProps<Data>) {\n const { FormClass = Form, form, src, url, options, submission, onFormReady, onAsyncSubmit, ...handlers } = props;\n\n return {\n FormClass,\n formSource: form !== undefined ? form : src,\n handlers,\n options,\n url,\n submission,\n onFormReady,\n onAsyncSubmit\n };\n}\n\nfunction createCustomValidation(customAction: any, ref: MutableRefObject<Webform | null>) {\n return async (submission: SubmissionType, next: (error: null | Error) => void) => {\n try {\n const updatedSubmission = await customAction(submission);\n\n next(null);\n\n ref.current.onSubmit(updatedSubmission, true);\n } catch (er: any) {\n next(er.errors || er);\n } finally {\n ref.current.submissionInProcess = false;\n }\n };\n}\n\nexport function useForm<Data extends { [key: string]: JSON } = { [key: string]: JSON }>(props: UseFormProps<Data>) {\n const webformRef = useRef<Webform | null>(null);\n const renderElement = useRef<HTMLDivElement | null>(null);\n const { formSource, FormClass, options, url, submission, handlers, onFormReady, onAsyncSubmit } = getEffectiveProps(props);\n\n const [instanceIsReady, setInstanceIsReady] = useState(false);\n\n useEffect(() => {\n let ignore = false;\n const createInstance = async () => {\n if (renderElement.current === null) {\n console.warn(\"Form element not found\");\n return;\n }\n\n if (typeof formSource === \"undefined\") {\n console.warn(\"Form source not found\");\n return;\n }\n\n let opts = options || {};\n\n if (onAsyncSubmit) {\n opts.hooks = opts.hooks || {};\n opts.hooks.customValidation = createCustomValidation(props.onAsyncSubmit, webformRef);\n }\n\n const webform = await createWebformInstance(FormClass, formSource, renderElement.current, options);\n\n if (webform) {\n if (ignore) {\n webform.destroy(true);\n return;\n }\n\n if (typeof formSource === \"string\") {\n webform.src = formSource;\n } else if (typeof formSource === \"object\") {\n if (submission) {\n webform.setSubmission(submission);\n }\n\n if (url) {\n webform.url = url;\n }\n }\n\n if (onFormReady) {\n onFormReady(webform);\n }\n\n renderElement.current.className = \"formio-form-ready\";\n webformRef.current = webform;\n setInstanceIsReady(true);\n } else {\n console.warn(\"Failed to create form instance\");\n }\n };\n\n createInstance();\n\n return () => {\n ignore = true;\n if (webformRef.current) {\n webformRef.current.destroy(true);\n }\n };\n }, [formSource, url]);\n\n useEffect(() => {\n if (instanceIsReady && webformRef.current && Object.keys(handlers).length > 0) {\n webformRef.current.onAny((...args: [string, ...any[]]) => {\n instanceIsReady && onAnyEvent(handlers, ...args);\n });\n }\n\n return () => {\n if (instanceIsReady && webformRef.current && Object.keys(handlers).length > 0) {\n webformRef.current.offAny((...args: [string, ...any[]]) => onAnyEvent(handlers, ...args));\n }\n };\n }, [instanceIsReady, handlers]);\n\n useEffect(() => {\n if (instanceIsReady && webformRef.current && submission) {\n webformRef.current.setSubmission(submission);\n }\n }, [instanceIsReady, submission]);\n\n return {\n element: renderElement,\n instance: webformRef.current\n };\n}\n"],"names":["undefined","hasOwnProperty","isArray","obj","defaultMaxListeners","nextTickSupported","symbolsSupported","reflectSupported","setImmediateSupported","_setImmediate","ownKeys","arr","init","configure","conf","logPossibleMemoryLeak","count","eventName","errorMsg","e","toArray","a","b","c","n","toObject","keys","values","key","len","valuesCount","i","TargetObserver","emitter","target","options","on","off","_observers","event","localEvent","reducer","observer","listeners","handler","args","eventObj","result","_event","events","clearRefs","index","findTargetIndex","resolveOptions","schema","reducers","allowUnknown","computedOptions","length","option","value","reject","reason","constructorReducer","makeTypeReducer","types","message","firstType","secondType","v","kind","functionReducer","objectFunctionReducer","makeCancelablePromise","Promise","executor","isCancelable","callbacks","timer","subscriptionClosed","promise","resolve","onCancel","cleanup","_resolve","_reject","err","cb","observers","searchListenerTree","handlers","type","tree","typeLength","ns","l","j","delimiter","dl","branch","xTree","xxTree","isolatedBranch","endReached","currentType","nextType","branches","_listeners","growListenerTree","listener","prepend","name","collectTreeEvents","root","asArray","branchName","path","hasListeners","isArrayPath","recursivelyGarbageCollect","flag","Listener","setupListener","promisify","async","nextTick","objectify","_listener","_origin","context","EventEmitter","listen","isSingleReducer","matched","fn","ttl","self","wildcard","containsSymbol","al","promises","returnValue","temp","leafs","iLeaf","leaf","position","fns","_events","allListeners","listenerTree","nsAsArray","_all","filter","once","_Promise","eventListener","errorListener","prototype","module","getDefaultEmitter","EventEmitter2","onAnyEvent","outputArgs","funcName","createWebformInstance","FormConstructor","formSource","element","webform","getEffectiveProps","props","FormClass","Form","form","src","url","submission","onFormReady","onAsyncSubmit","createCustomValidation","customAction","ref","next","updatedSubmission","er","useForm","webformRef","useRef","renderElement","instanceIsReady","setInstanceIsReady","useState","useEffect","ignore","opts"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"useForm.js","sources":["../../../../../node_modules/eventemitter2/lib/eventemitter2.js","../../../src/organisms/form/useForm.ts"],"sourcesContent":["/*!\n * EventEmitter2\n * https://github.com/hij1nx/EventEmitter2\n *\n * Copyright (c) 2013 hij1nx\n * Licensed under the MIT license.\n */\n;!function(undefined) {\n var hasOwnProperty= Object.hasOwnProperty;\n var isArray = Array.isArray ? Array.isArray : function _isArray(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n };\n var defaultMaxListeners = 10;\n var nextTickSupported= typeof process=='object' && typeof process.nextTick=='function';\n var symbolsSupported= typeof Symbol==='function';\n var reflectSupported= typeof Reflect === 'object';\n var setImmediateSupported= typeof setImmediate === 'function';\n var _setImmediate= setImmediateSupported ? setImmediate : setTimeout;\n var ownKeys= symbolsSupported? (reflectSupported && typeof Reflect.ownKeys==='function'? Reflect.ownKeys : function(obj){\n var arr= Object.getOwnPropertyNames(obj);\n arr.push.apply(arr, Object.getOwnPropertySymbols(obj));\n return arr;\n }) : Object.keys;\n\n function init() {\n this._events = {};\n if (this._conf) {\n configure.call(this, this._conf);\n }\n }\n\n function configure(conf) {\n if (conf) {\n this._conf = conf;\n\n conf.delimiter && (this.delimiter = conf.delimiter);\n\n if(conf.maxListeners!==undefined){\n this._maxListeners= conf.maxListeners;\n }\n\n conf.wildcard && (this.wildcard = conf.wildcard);\n conf.newListener && (this._newListener = conf.newListener);\n conf.removeListener && (this._removeListener = conf.removeListener);\n conf.verboseMemoryLeak && (this.verboseMemoryLeak = conf.verboseMemoryLeak);\n conf.ignoreErrors && (this.ignoreErrors = conf.ignoreErrors);\n\n if (this.wildcard) {\n this.listenerTree = {};\n }\n }\n }\n\n function logPossibleMemoryLeak(count, eventName) {\n var errorMsg = '(node) warning: possible EventEmitter memory ' +\n 'leak detected. ' + count + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.';\n\n if(this.verboseMemoryLeak){\n errorMsg += ' Event name: ' + eventName + '.';\n }\n\n if(typeof process !== 'undefined' && process.emitWarning){\n var e = new Error(errorMsg);\n e.name = 'MaxListenersExceededWarning';\n e.emitter = this;\n e.count = count;\n process.emitWarning(e);\n } else {\n console.error(errorMsg);\n\n if (console.trace){\n console.trace();\n }\n }\n }\n\n var toArray = function (a, b, c) {\n var n = arguments.length;\n switch (n) {\n case 0:\n return [];\n case 1:\n return [a];\n case 2:\n return [a, b];\n case 3:\n return [a, b, c];\n default:\n var arr = new Array(n);\n while (n--) {\n arr[n] = arguments[n];\n }\n return arr;\n }\n };\n\n function toObject(keys, values) {\n var obj = {};\n var key;\n var len = keys.length;\n var valuesCount = values ? values.length : 0;\n for (var i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = i < valuesCount ? values[i] : undefined;\n }\n return obj;\n }\n\n function TargetObserver(emitter, target, options) {\n this._emitter = emitter;\n this._target = target;\n this._listeners = {};\n this._listenersCount = 0;\n\n var on, off;\n\n if (options.on || options.off) {\n on = options.on;\n off = options.off;\n }\n\n if (target.addEventListener) {\n on = target.addEventListener;\n off = target.removeEventListener;\n } else if (target.addListener) {\n on = target.addListener;\n off = target.removeListener;\n } else if (target.on) {\n on = target.on;\n off = target.off;\n }\n\n if (!on && !off) {\n throw Error('target does not implement any known event API');\n }\n\n if (typeof on !== 'function') {\n throw TypeError('on method must be a function');\n }\n\n if (typeof off !== 'function') {\n throw TypeError('off method must be a function');\n }\n\n this._on = on;\n this._off = off;\n\n var _observers= emitter._observers;\n if(_observers){\n _observers.push(this);\n }else{\n emitter._observers= [this];\n }\n }\n\n Object.assign(TargetObserver.prototype, {\n subscribe: function(event, localEvent, reducer){\n var observer= this;\n var target= this._target;\n var emitter= this._emitter;\n var listeners= this._listeners;\n var handler= function(){\n var args= toArray.apply(null, arguments);\n var eventObj= {\n data: args,\n name: localEvent,\n original: event\n };\n if(reducer){\n var result= reducer.call(target, eventObj);\n if(result!==false){\n emitter.emit.apply(emitter, [eventObj.name].concat(args))\n }\n return;\n }\n emitter.emit.apply(emitter, [localEvent].concat(args));\n };\n\n\n if(listeners[event]){\n throw Error('Event \\'' + event + '\\' is already listening');\n }\n\n this._listenersCount++;\n\n if(emitter._newListener && emitter._removeListener && !observer._onNewListener){\n\n this._onNewListener = function (_event) {\n if (_event === localEvent && listeners[event] === null) {\n listeners[event] = handler;\n observer._on.call(target, event, handler);\n }\n };\n\n emitter.on('newListener', this._onNewListener);\n\n this._onRemoveListener= function(_event){\n if(_event === localEvent && !emitter.hasListeners(_event) && listeners[event]){\n listeners[event]= null;\n observer._off.call(target, event, handler);\n }\n };\n\n listeners[event]= null;\n\n emitter.on('removeListener', this._onRemoveListener);\n }else{\n listeners[event]= handler;\n observer._on.call(target, event, handler);\n }\n },\n\n unsubscribe: function(event){\n var observer= this;\n var listeners= this._listeners;\n var emitter= this._emitter;\n var handler;\n var events;\n var off= this._off;\n var target= this._target;\n var i;\n\n if(event && typeof event!=='string'){\n throw TypeError('event must be a string');\n }\n\n function clearRefs(){\n if(observer._onNewListener){\n emitter.off('newListener', observer._onNewListener);\n emitter.off('removeListener', observer._onRemoveListener);\n observer._onNewListener= null;\n observer._onRemoveListener= null;\n }\n var index= findTargetIndex.call(emitter, observer);\n emitter._observers.splice(index, 1);\n }\n\n if(event){\n handler= listeners[event];\n if(!handler) return;\n off.call(target, event, handler);\n delete listeners[event];\n if(!--this._listenersCount){\n clearRefs();\n }\n }else{\n events= ownKeys(listeners);\n i= events.length;\n while(i-->0){\n event= events[i];\n off.call(target, event, listeners[event]);\n }\n this._listeners= {};\n this._listenersCount= 0;\n clearRefs();\n }\n }\n });\n\n function resolveOptions(options, schema, reducers, allowUnknown) {\n var computedOptions = Object.assign({}, schema);\n\n if (!options) return computedOptions;\n\n if (typeof options !== 'object') {\n throw TypeError('options must be an object')\n }\n\n var keys = Object.keys(options);\n var length = keys.length;\n var option, value;\n var reducer;\n\n function reject(reason) {\n throw Error('Invalid \"' + option + '\" option value' + (reason ? '. Reason: ' + reason : ''))\n }\n\n for (var i = 0; i < length; i++) {\n option = keys[i];\n if (!allowUnknown && !hasOwnProperty.call(schema, option)) {\n throw Error('Unknown \"' + option + '\" option');\n }\n value = options[option];\n if (value !== undefined) {\n reducer = reducers[option];\n computedOptions[option] = reducer ? reducer(value, reject) : value;\n }\n }\n return computedOptions;\n }\n\n function constructorReducer(value, reject) {\n if (typeof value !== 'function' || !value.hasOwnProperty('prototype')) {\n reject('value must be a constructor');\n }\n return value;\n }\n\n function makeTypeReducer(types) {\n var message= 'value must be type of ' + types.join('|');\n var len= types.length;\n var firstType= types[0];\n var secondType= types[1];\n\n if (len === 1) {\n return function (v, reject) {\n if (typeof v === firstType) {\n return v;\n }\n reject(message);\n }\n }\n\n if (len === 2) {\n return function (v, reject) {\n var kind= typeof v;\n if (kind === firstType || kind === secondType) return v;\n reject(message);\n }\n }\n\n return function (v, reject) {\n var kind = typeof v;\n var i = len;\n while (i-- > 0) {\n if (kind === types[i]) return v;\n }\n reject(message);\n }\n }\n\n var functionReducer= makeTypeReducer(['function']);\n\n var objectFunctionReducer= makeTypeReducer(['object', 'function']);\n\n function makeCancelablePromise(Promise, executor, options) {\n var isCancelable;\n var callbacks;\n var timer= 0;\n var subscriptionClosed;\n\n var promise = new Promise(function (resolve, reject, onCancel) {\n options= resolveOptions(options, {\n timeout: 0,\n overload: false\n }, {\n timeout: function(value, reject){\n value*= 1;\n if (typeof value !== 'number' || value < 0 || !Number.isFinite(value)) {\n reject('timeout must be a positive number');\n }\n return value;\n }\n });\n\n isCancelable = !options.overload && typeof Promise.prototype.cancel === 'function' && typeof onCancel === 'function';\n\n function cleanup() {\n if (callbacks) {\n callbacks = null;\n }\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n }\n }\n\n var _resolve= function(value){\n cleanup();\n resolve(value);\n };\n\n var _reject= function(err){\n cleanup();\n reject(err);\n };\n\n if (isCancelable) {\n executor(_resolve, _reject, onCancel);\n } else {\n callbacks = [function(reason){\n _reject(reason || Error('canceled'));\n }];\n executor(_resolve, _reject, function (cb) {\n if (subscriptionClosed) {\n throw Error('Unable to subscribe on cancel event asynchronously')\n }\n if (typeof cb !== 'function') {\n throw TypeError('onCancel callback must be a function');\n }\n callbacks.push(cb);\n });\n subscriptionClosed= true;\n }\n\n if (options.timeout > 0) {\n timer= setTimeout(function(){\n var reason= Error('timeout');\n reason.code = 'ETIMEDOUT'\n timer= 0;\n promise.cancel(reason);\n reject(reason);\n }, options.timeout);\n }\n });\n\n if (!isCancelable) {\n promise.cancel = function (reason) {\n if (!callbacks) {\n return;\n }\n var length = callbacks.length;\n for (var i = 1; i < length; i++) {\n callbacks[i](reason);\n }\n // internal callback to reject the promise\n callbacks[0](reason);\n callbacks = null;\n };\n }\n\n return promise;\n }\n\n function findTargetIndex(observer) {\n var observers = this._observers;\n if(!observers){\n return -1;\n }\n var len = observers.length;\n for (var i = 0; i < len; i++) {\n if (observers[i]._target === observer) return i;\n }\n return -1;\n }\n\n // Attention, function return type now is array, always !\n // It has zero elements if no any matches found and one or more\n // elements (leafs) if there are matches\n //\n function searchListenerTree(handlers, type, tree, i, typeLength) {\n if (!tree) {\n return null;\n }\n\n if (i === 0) {\n var kind = typeof type;\n if (kind === 'string') {\n var ns, n, l = 0, j = 0, delimiter = this.delimiter, dl = delimiter.length;\n if ((n = type.indexOf(delimiter)) !== -1) {\n ns = new Array(5);\n do {\n ns[l++] = type.slice(j, n);\n j = n + dl;\n } while ((n = type.indexOf(delimiter, j)) !== -1);\n\n ns[l++] = type.slice(j);\n type = ns;\n typeLength = l;\n } else {\n type = [type];\n typeLength = 1;\n }\n } else if (kind === 'object') {\n typeLength = type.length;\n } else {\n type = [type];\n typeLength = 1;\n }\n }\n\n var listeners= null, branch, xTree, xxTree, isolatedBranch, endReached, currentType = type[i],\n nextType = type[i + 1], branches, _listeners;\n\n if (i === typeLength) {\n //\n // If at the end of the event(s) list and the tree has listeners\n // invoke those listeners.\n //\n\n if(tree._listeners) {\n if (typeof tree._listeners === 'function') {\n handlers && handlers.push(tree._listeners);\n listeners = [tree];\n } else {\n handlers && handlers.push.apply(handlers, tree._listeners);\n listeners = [tree];\n }\n }\n } else {\n\n if (currentType === '*') {\n //\n // If the event emitted is '*' at this part\n // or there is a concrete match at this patch\n //\n branches = ownKeys(tree);\n n = branches.length;\n while (n-- > 0) {\n branch = branches[n];\n if (branch !== '_listeners') {\n _listeners = searchListenerTree(handlers, type, tree[branch], i + 1, typeLength);\n if (_listeners) {\n if (listeners) {\n listeners.push.apply(listeners, _listeners);\n } else {\n listeners = _listeners;\n }\n }\n }\n }\n return listeners;\n } else if (currentType === '**') {\n endReached = (i + 1 === typeLength || (i + 2 === typeLength && nextType === '*'));\n if (endReached && tree._listeners) {\n // The next element has a _listeners, add it to the handlers.\n listeners = searchListenerTree(handlers, type, tree, typeLength, typeLength);\n }\n\n branches = ownKeys(tree);\n n = branches.length;\n while (n-- > 0) {\n branch = branches[n];\n if (branch !== '_listeners') {\n if (branch === '*' || branch === '**') {\n if (tree[branch]._listeners && !endReached) {\n _listeners = searchListenerTree(handlers, type, tree[branch], typeLength, typeLength);\n if (_listeners) {\n if (listeners) {\n listeners.push.apply(listeners, _listeners);\n } else {\n listeners = _listeners;\n }\n }\n }\n _listeners = searchListenerTree(handlers, type, tree[branch], i, typeLength);\n } else if (branch === nextType) {\n _listeners = searchListenerTree(handlers, type, tree[branch], i + 2, typeLength);\n } else {\n // No match on this one, shift into the tree but not in the type array.\n _listeners = searchListenerTree(handlers, type, tree[branch], i, typeLength);\n }\n if (_listeners) {\n if (listeners) {\n listeners.push.apply(listeners, _listeners);\n } else {\n listeners = _listeners;\n }\n }\n }\n }\n return listeners;\n } else if (tree[currentType]) {\n listeners = searchListenerTree(handlers, type, tree[currentType], i + 1, typeLength);\n }\n }\n\n xTree = tree['*'];\n if (xTree) {\n //\n // If the listener tree will allow any match for this part,\n // then recursively explore all branches of the tree\n //\n searchListenerTree(handlers, type, xTree, i + 1, typeLength);\n }\n\n xxTree = tree['**'];\n if (xxTree) {\n if (i < typeLength) {\n if (xxTree._listeners) {\n // If we have a listener on a '**', it will catch all, so add its handler.\n searchListenerTree(handlers, type, xxTree, typeLength, typeLength);\n }\n\n // Build arrays of matching next branches and others.\n branches= ownKeys(xxTree);\n n= branches.length;\n while(n-->0){\n branch= branches[n];\n if (branch !== '_listeners') {\n if (branch === nextType) {\n // We know the next element will match, so jump twice.\n searchListenerTree(handlers, type, xxTree[branch], i + 2, typeLength);\n } else if (branch === currentType) {\n // Current node matches, move into the tree.\n searchListenerTree(handlers, type, xxTree[branch], i + 1, typeLength);\n } else {\n isolatedBranch = {};\n isolatedBranch[branch] = xxTree[branch];\n searchListenerTree(handlers, type, {'**': isolatedBranch}, i + 1, typeLength);\n }\n }\n }\n } else if (xxTree._listeners) {\n // We have reached the end and still on a '**'\n searchListenerTree(handlers, type, xxTree, typeLength, typeLength);\n } else if (xxTree['*'] && xxTree['*']._listeners) {\n searchListenerTree(handlers, type, xxTree['*'], typeLength, typeLength);\n }\n }\n\n return listeners;\n }\n\n function growListenerTree(type, listener, prepend) {\n var len = 0, j = 0, i, delimiter = this.delimiter, dl= delimiter.length, ns;\n\n if(typeof type==='string') {\n if ((i = type.indexOf(delimiter)) !== -1) {\n ns = new Array(5);\n do {\n ns[len++] = type.slice(j, i);\n j = i + dl;\n } while ((i = type.indexOf(delimiter, j)) !== -1);\n\n ns[len++] = type.slice(j);\n }else{\n ns= [type];\n len= 1;\n }\n }else{\n ns= type;\n len= type.length;\n }\n\n //\n // Looks for two consecutive '**', if so, don't add the event at all.\n //\n if (len > 1) {\n for (i = 0; i + 1 < len; i++) {\n if (ns[i] === '**' && ns[i + 1] === '**') {\n return;\n }\n }\n }\n\n\n\n var tree = this.listenerTree, name;\n\n for (i = 0; i < len; i++) {\n name = ns[i];\n\n tree = tree[name] || (tree[name] = {});\n\n if (i === len - 1) {\n if (!tree._listeners) {\n tree._listeners = listener;\n } else {\n if (typeof tree._listeners === 'function') {\n tree._listeners = [tree._listeners];\n }\n\n if (prepend) {\n tree._listeners.unshift(listener);\n } else {\n tree._listeners.push(listener);\n }\n\n if (\n !tree._listeners.warned &&\n this._maxListeners > 0 &&\n tree._listeners.length > this._maxListeners\n ) {\n tree._listeners.warned = true;\n logPossibleMemoryLeak.call(this, tree._listeners.length, name);\n }\n }\n return true;\n }\n }\n\n return true;\n }\n\n function collectTreeEvents(tree, events, root, asArray){\n var branches= ownKeys(tree);\n var i= branches.length;\n var branch, branchName, path;\n var hasListeners= tree['_listeners'];\n var isArrayPath;\n\n while(i-->0){\n branchName= branches[i];\n\n branch= tree[branchName];\n\n if(branchName==='_listeners'){\n path= root;\n }else {\n path = root ? root.concat(branchName) : [branchName];\n }\n\n isArrayPath= asArray || typeof branchName==='symbol';\n\n hasListeners && events.push(isArrayPath? path : path.join(this.delimiter));\n\n if(typeof branch==='object'){\n collectTreeEvents.call(this, branch, events, path, isArrayPath);\n }\n }\n\n return events;\n }\n\n function recursivelyGarbageCollect(root) {\n var keys = ownKeys(root);\n var i= keys.length;\n var obj, key, flag;\n while(i-->0){\n key = keys[i];\n obj = root[key];\n\n if(obj){\n flag= true;\n if(key !== '_listeners' && !recursivelyGarbageCollect(obj)){\n delete root[key];\n }\n }\n }\n\n return flag;\n }\n\n function Listener(emitter, event, listener){\n this.emitter= emitter;\n this.event= event;\n this.listener= listener;\n }\n\n Listener.prototype.off= function(){\n this.emitter.off(this.event, this.listener);\n return this;\n };\n\n function setupListener(event, listener, options){\n if (options === true) {\n promisify = true;\n } else if (options === false) {\n async = true;\n } else {\n if (!options || typeof options !== 'object') {\n throw TypeError('options should be an object or true');\n }\n var async = options.async;\n var promisify = options.promisify;\n var nextTick = options.nextTick;\n var objectify = options.objectify;\n }\n\n if (async || nextTick || promisify) {\n var _listener = listener;\n var _origin = listener._origin || listener;\n\n if (nextTick && !nextTickSupported) {\n throw Error('process.nextTick is not supported');\n }\n\n if (promisify === undefined) {\n promisify = listener.constructor.name === 'AsyncFunction';\n }\n\n listener = function () {\n var args = arguments;\n var context = this;\n var event = this.event;\n\n return promisify ? (nextTick ? Promise.resolve() : new Promise(function (resolve) {\n _setImmediate(resolve);\n }).then(function () {\n context.event = event;\n return _listener.apply(context, args)\n })) : (nextTick ? process.nextTick : _setImmediate)(function () {\n context.event = event;\n _listener.apply(context, args)\n });\n };\n\n listener._async = true;\n listener._origin = _origin;\n }\n\n return [listener, objectify? new Listener(this, event, listener): this];\n }\n\n function EventEmitter(conf) {\n this._events = {};\n this._newListener = false;\n this._removeListener = false;\n this.verboseMemoryLeak = false;\n configure.call(this, conf);\n }\n\n EventEmitter.EventEmitter2 = EventEmitter; // backwards compatibility for exporting EventEmitter property\n\n EventEmitter.prototype.listenTo= function(target, events, options){\n if(typeof target!=='object'){\n throw TypeError('target musts be an object');\n }\n\n var emitter= this;\n\n options = resolveOptions(options, {\n on: undefined,\n off: undefined,\n reducers: undefined\n }, {\n on: functionReducer,\n off: functionReducer,\n reducers: objectFunctionReducer\n });\n\n function listen(events){\n if(typeof events!=='object'){\n throw TypeError('events must be an object');\n }\n\n var reducers= options.reducers;\n var index= findTargetIndex.call(emitter, target);\n var observer;\n\n if(index===-1){\n observer= new TargetObserver(emitter, target, options);\n }else{\n observer= emitter._observers[index];\n }\n\n var keys= ownKeys(events);\n var len= keys.length;\n var event;\n var isSingleReducer= typeof reducers==='function';\n\n for(var i=0; i<len; i++){\n event= keys[i];\n observer.subscribe(\n event,\n events[event] || event,\n isSingleReducer ? reducers : reducers && reducers[event]\n );\n }\n }\n\n isArray(events)?\n listen(toObject(events)) :\n (typeof events==='string'? listen(toObject(events.split(/\\s+/))): listen(events));\n\n return this;\n };\n\n EventEmitter.prototype.stopListeningTo = function (target, event) {\n var observers = this._observers;\n\n if(!observers){\n return false;\n }\n\n var i = observers.length;\n var observer;\n var matched= false;\n\n if(target && typeof target!=='object'){\n throw TypeError('target should be an object');\n }\n\n while (i-- > 0) {\n observer = observers[i];\n if (!target || observer._target === target) {\n observer.unsubscribe(event);\n matched= true;\n }\n }\n\n return matched;\n };\n\n // By default EventEmitters will print a warning if more than\n // 10 listeners are added to it. This is a useful default which\n // helps finding memory leaks.\n //\n // Obviously not all Emitters should be limited to 10. This function allows\n // that to be increased. Set to zero for unlimited.\n\n EventEmitter.prototype.delimiter = '.';\n\n EventEmitter.prototype.setMaxListeners = function(n) {\n if (n !== undefined) {\n this._maxListeners = n;\n if (!this._conf) this._conf = {};\n this._conf.maxListeners = n;\n }\n };\n\n EventEmitter.prototype.getMaxListeners = function() {\n return this._maxListeners;\n };\n\n EventEmitter.prototype.event = '';\n\n EventEmitter.prototype.once = function(event, fn, options) {\n return this._once(event, fn, false, options);\n };\n\n EventEmitter.prototype.prependOnceListener = function(event, fn, options) {\n return this._once(event, fn, true, options);\n };\n\n EventEmitter.prototype._once = function(event, fn, prepend, options) {\n return this._many(event, 1, fn, prepend, options);\n };\n\n EventEmitter.prototype.many = function(event, ttl, fn, options) {\n return this._many(event, ttl, fn, false, options);\n };\n\n EventEmitter.prototype.prependMany = function(event, ttl, fn, options) {\n return this._many(event, ttl, fn, true, options);\n };\n\n EventEmitter.prototype._many = function(event, ttl, fn, prepend, options) {\n var self = this;\n\n if (typeof fn !== 'function') {\n throw new Error('many only accepts instances of Function');\n }\n\n function listener() {\n if (--ttl === 0) {\n self.off(event, listener);\n }\n return fn.apply(this, arguments);\n }\n\n listener._origin = fn;\n\n return this._on(event, listener, prepend, options);\n };\n\n EventEmitter.prototype.emit = function() {\n if (!this._events && !this._all) {\n return false;\n }\n\n this._events || init.call(this);\n\n var type = arguments[0], ns, wildcard= this.wildcard;\n var args,l,i,j, containsSymbol;\n\n if (type === 'newListener' && !this._newListener) {\n if (!this._events.newListener) {\n return false;\n }\n }\n\n if (wildcard) {\n ns= type;\n if(type!=='newListener' && type!=='removeListener'){\n if (typeof type === 'object') {\n l = type.length;\n if (symbolsSupported) {\n for (i = 0; i < l; i++) {\n if (typeof type[i] === 'symbol') {\n containsSymbol = true;\n break;\n }\n }\n }\n if (!containsSymbol) {\n type = type.join(this.delimiter);\n }\n }\n }\n }\n\n var al = arguments.length;\n var handler;\n\n if (this._all && this._all.length) {\n handler = this._all.slice();\n\n for (i = 0, l = handler.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n handler[i].call(this, type);\n break;\n case 2:\n handler[i].call(this, type, arguments[1]);\n break;\n case 3:\n handler[i].call(this, type, arguments[1], arguments[2]);\n break;\n default:\n handler[i].apply(this, arguments);\n }\n }\n }\n\n if (wildcard) {\n handler = [];\n searchListenerTree.call(this, handler, ns, this.listenerTree, 0, l);\n } else {\n handler = this._events[type];\n if (typeof handler === 'function') {\n this.event = type;\n switch (al) {\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n default:\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n handler.apply(this, args);\n }\n return true;\n } else if (handler) {\n // need to make copy of handlers because list can change in the middle\n // of emit call\n handler = handler.slice();\n }\n }\n\n if (handler && handler.length) {\n if (al > 3) {\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n }\n for (i = 0, l = handler.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n handler[i].call(this);\n break;\n case 2:\n handler[i].call(this, arguments[1]);\n break;\n case 3:\n handler[i].call(this, arguments[1], arguments[2]);\n break;\n default:\n handler[i].apply(this, args);\n }\n }\n return true;\n } else if (!this.ignoreErrors && !this._all && type === 'error') {\n if (arguments[1] instanceof Error) {\n throw arguments[1]; // Unhandled 'error' event\n } else {\n throw new Error(\"Uncaught, unspecified 'error' event.\");\n }\n }\n\n return !!this._all;\n };\n\n EventEmitter.prototype.emitAsync = function() {\n if (!this._events && !this._all) {\n return false;\n }\n\n this._events || init.call(this);\n\n var type = arguments[0], wildcard= this.wildcard, ns, containsSymbol;\n var args,l,i,j;\n\n if (type === 'newListener' && !this._newListener) {\n if (!this._events.newListener) { return Promise.resolve([false]); }\n }\n\n if (wildcard) {\n ns= type;\n if(type!=='newListener' && type!=='removeListener'){\n if (typeof type === 'object') {\n l = type.length;\n if (symbolsSupported) {\n for (i = 0; i < l; i++) {\n if (typeof type[i] === 'symbol') {\n containsSymbol = true;\n break;\n }\n }\n }\n if (!containsSymbol) {\n type = type.join(this.delimiter);\n }\n }\n }\n }\n\n var promises= [];\n\n var al = arguments.length;\n var handler;\n\n if (this._all) {\n for (i = 0, l = this._all.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n promises.push(this._all[i].call(this, type));\n break;\n case 2:\n promises.push(this._all[i].call(this, type, arguments[1]));\n break;\n case 3:\n promises.push(this._all[i].call(this, type, arguments[1], arguments[2]));\n break;\n default:\n promises.push(this._all[i].apply(this, arguments));\n }\n }\n }\n\n if (wildcard) {\n handler = [];\n searchListenerTree.call(this, handler, ns, this.listenerTree, 0);\n } else {\n handler = this._events[type];\n }\n\n if (typeof handler === 'function') {\n this.event = type;\n switch (al) {\n case 1:\n promises.push(handler.call(this));\n break;\n case 2:\n promises.push(handler.call(this, arguments[1]));\n break;\n case 3:\n promises.push(handler.call(this, arguments[1], arguments[2]));\n break;\n default:\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n promises.push(handler.apply(this, args));\n }\n } else if (handler && handler.length) {\n handler = handler.slice();\n if (al > 3) {\n args = new Array(al - 1);\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\n }\n for (i = 0, l = handler.length; i < l; i++) {\n this.event = type;\n switch (al) {\n case 1:\n promises.push(handler[i].call(this));\n break;\n case 2:\n promises.push(handler[i].call(this, arguments[1]));\n break;\n case 3:\n promises.push(handler[i].call(this, arguments[1], arguments[2]));\n break;\n default:\n promises.push(handler[i].apply(this, args));\n }\n }\n } else if (!this.ignoreErrors && !this._all && type === 'error') {\n if (arguments[1] instanceof Error) {\n return Promise.reject(arguments[1]); // Unhandled 'error' event\n } else {\n return Promise.reject(\"Uncaught, unspecified 'error' event.\");\n }\n }\n\n return Promise.all(promises);\n };\n\n EventEmitter.prototype.on = function(type, listener, options) {\n return this._on(type, listener, false, options);\n };\n\n EventEmitter.prototype.prependListener = function(type, listener, options) {\n return this._on(type, listener, true, options);\n };\n\n EventEmitter.prototype.onAny = function(fn) {\n return this._onAny(fn, false);\n };\n\n EventEmitter.prototype.prependAny = function(fn) {\n return this._onAny(fn, true);\n };\n\n EventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n EventEmitter.prototype._onAny = function(fn, prepend){\n if (typeof fn !== 'function') {\n throw new Error('onAny only accepts instances of Function');\n }\n\n if (!this._all) {\n this._all = [];\n }\n\n // Add the function to the event listener collection.\n if(prepend){\n this._all.unshift(fn);\n }else{\n this._all.push(fn);\n }\n\n return this;\n };\n\n EventEmitter.prototype._on = function(type, listener, prepend, options) {\n if (typeof type === 'function') {\n this._onAny(type, listener);\n return this;\n }\n\n if (typeof listener !== 'function') {\n throw new Error('on only accepts instances of Function');\n }\n this._events || init.call(this);\n\n var returnValue= this, temp;\n\n if (options !== undefined) {\n temp = setupListener.call(this, type, listener, options);\n listener = temp[0];\n returnValue = temp[1];\n }\n\n // To avoid recursion in the case that type == \"newListeners\"! Before\n // adding it to the listeners, first emit \"newListeners\".\n if (this._newListener) {\n this.emit('newListener', type, listener);\n }\n\n if (this.wildcard) {\n growListenerTree.call(this, type, listener, prepend);\n return returnValue;\n }\n\n if (!this._events[type]) {\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n } else {\n if (typeof this._events[type] === 'function') {\n // Change to array.\n this._events[type] = [this._events[type]];\n }\n\n // If we've already got an array, just add\n if(prepend){\n this._events[type].unshift(listener);\n }else{\n this._events[type].push(listener);\n }\n\n // Check for listener leak\n if (\n !this._events[type].warned &&\n this._maxListeners > 0 &&\n this._events[type].length > this._maxListeners\n ) {\n this._events[type].warned = true;\n logPossibleMemoryLeak.call(this, this._events[type].length, type);\n }\n }\n\n return returnValue;\n };\n\n EventEmitter.prototype.off = function(type, listener) {\n if (typeof listener !== 'function') {\n throw new Error('removeListener only takes instances of Function');\n }\n\n var handlers,leafs=[];\n\n if(this.wildcard) {\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\n leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0);\n if(!leafs) return this;\n } else {\n // does not use listeners(), so no side effect of creating _events[type]\n if (!this._events[type]) return this;\n handlers = this._events[type];\n leafs.push({_listeners:handlers});\n }\n\n for (var iLeaf=0; iLeaf<leafs.length; iLeaf++) {\n var leaf = leafs[iLeaf];\n handlers = leaf._listeners;\n if (isArray(handlers)) {\n\n var position = -1;\n\n for (var i = 0, length = handlers.length; i < length; i++) {\n if (handlers[i] === listener ||\n (handlers[i].listener && handlers[i].listener === listener) ||\n (handlers[i]._origin && handlers[i]._origin === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0) {\n continue;\n }\n\n if(this.wildcard) {\n leaf._listeners.splice(position, 1);\n }\n else {\n this._events[type].splice(position, 1);\n }\n\n if (handlers.length === 0) {\n if(this.wildcard) {\n delete leaf._listeners;\n }\n else {\n delete this._events[type];\n }\n }\n if (this._removeListener)\n this.emit(\"removeListener\", type, listener);\n\n return this;\n }\n else if (handlers === listener ||\n (handlers.listener && handlers.listener === listener) ||\n (handlers._origin && handlers._origin === listener)) {\n if(this.wildcard) {\n delete leaf._listeners;\n }\n else {\n delete this._events[type];\n }\n if (this._removeListener)\n this.emit(\"removeListener\", type, listener);\n }\n }\n\n this.listenerTree && recursivelyGarbageCollect(this.listenerTree);\n\n return this;\n };\n\n EventEmitter.prototype.offAny = function(fn) {\n var i = 0, l = 0, fns;\n if (fn && this._all && this._all.length > 0) {\n fns = this._all;\n for(i = 0, l = fns.length; i < l; i++) {\n if(fn === fns[i]) {\n fns.splice(i, 1);\n if (this._removeListener)\n this.emit(\"removeListenerAny\", fn);\n return this;\n }\n }\n } else {\n fns = this._all;\n if (this._removeListener) {\n for(i = 0, l = fns.length; i < l; i++)\n this.emit(\"removeListenerAny\", fns[i]);\n }\n this._all = [];\n }\n return this;\n };\n\n EventEmitter.prototype.removeListener = EventEmitter.prototype.off;\n\n EventEmitter.prototype.removeAllListeners = function (type) {\n if (type === undefined) {\n !this._events || init.call(this);\n return this;\n }\n\n if (this.wildcard) {\n var leafs = searchListenerTree.call(this, null, type, this.listenerTree, 0), leaf, i;\n if (!leafs) return this;\n for (i = 0; i < leafs.length; i++) {\n leaf = leafs[i];\n leaf._listeners = null;\n }\n this.listenerTree && recursivelyGarbageCollect(this.listenerTree);\n } else if (this._events) {\n this._events[type] = null;\n }\n return this;\n };\n\n EventEmitter.prototype.listeners = function (type) {\n var _events = this._events;\n var keys, listeners, allListeners;\n var i;\n var listenerTree;\n\n if (type === undefined) {\n if (this.wildcard) {\n throw Error('event name required for wildcard emitter');\n }\n\n if (!_events) {\n return [];\n }\n\n keys = ownKeys(_events);\n i = keys.length;\n allListeners = [];\n while (i-- > 0) {\n listeners = _events[keys[i]];\n if (typeof listeners === 'function') {\n allListeners.push(listeners);\n } else {\n allListeners.push.apply(allListeners, listeners);\n }\n }\n return allListeners;\n } else {\n if (this.wildcard) {\n listenerTree= this.listenerTree;\n if(!listenerTree) return [];\n var handlers = [];\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\n searchListenerTree.call(this, handlers, ns, listenerTree, 0);\n return handlers;\n }\n\n if (!_events) {\n return [];\n }\n\n listeners = _events[type];\n\n if (!listeners) {\n return [];\n }\n return typeof listeners === 'function' ? [listeners] : listeners;\n }\n };\n\n EventEmitter.prototype.eventNames = function(nsAsArray){\n var _events= this._events;\n return this.wildcard? collectTreeEvents.call(this, this.listenerTree, [], null, nsAsArray) : (_events? ownKeys(_events) : []);\n };\n\n EventEmitter.prototype.listenerCount = function(type) {\n return this.listeners(type).length;\n };\n\n EventEmitter.prototype.hasListeners = function (type) {\n if (this.wildcard) {\n var handlers = [];\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\n searchListenerTree.call(this, handlers, ns, this.listenerTree, 0);\n return handlers.length > 0;\n }\n\n var _events = this._events;\n var _all = this._all;\n\n return !!(_all && _all.length || _events && (type === undefined ? ownKeys(_events).length : _events[type]));\n };\n\n EventEmitter.prototype.listenersAny = function() {\n\n if(this._all) {\n return this._all;\n }\n else {\n return [];\n }\n\n };\n\n EventEmitter.prototype.waitFor = function (event, options) {\n var self = this;\n var type = typeof options;\n if (type === 'number') {\n options = {timeout: options};\n } else if (type === 'function') {\n options = {filter: options};\n }\n\n options= resolveOptions(options, {\n timeout: 0,\n filter: undefined,\n handleError: false,\n Promise: Promise,\n overload: false\n }, {\n filter: functionReducer,\n Promise: constructorReducer\n });\n\n return makeCancelablePromise(options.Promise, function (resolve, reject, onCancel) {\n function listener() {\n var filter= options.filter;\n if (filter && !filter.apply(self, arguments)) {\n return;\n }\n self.off(event, listener);\n if (options.handleError) {\n var err = arguments[0];\n err ? reject(err) : resolve(toArray.apply(null, arguments).slice(1));\n } else {\n resolve(toArray.apply(null, arguments));\n }\n }\n\n onCancel(function(){\n self.off(event, listener);\n });\n\n self._on(event, listener, false);\n }, {\n timeout: options.timeout,\n overload: options.overload\n })\n };\n\n function once(emitter, name, options) {\n options= resolveOptions(options, {\n Promise: Promise,\n timeout: 0,\n overload: false\n }, {\n Promise: constructorReducer\n });\n\n var _Promise= options.Promise;\n\n return makeCancelablePromise(_Promise, function(resolve, reject, onCancel){\n var handler;\n if (typeof emitter.addEventListener === 'function') {\n handler= function () {\n resolve(toArray.apply(null, arguments));\n };\n\n onCancel(function(){\n emitter.removeEventListener(name, handler);\n });\n\n emitter.addEventListener(\n name,\n handler,\n {once: true}\n );\n return;\n }\n\n var eventListener = function(){\n errorListener && emitter.removeListener('error', errorListener);\n resolve(toArray.apply(null, arguments));\n };\n\n var errorListener;\n\n if (name !== 'error') {\n errorListener = function (err){\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n onCancel(function(){\n errorListener && emitter.removeListener('error', errorListener);\n emitter.removeListener(name, eventListener);\n });\n\n emitter.once(name, eventListener);\n }, {\n timeout: options.timeout,\n overload: options.overload\n });\n }\n\n var prototype= EventEmitter.prototype;\n\n Object.defineProperties(EventEmitter, {\n defaultMaxListeners: {\n get: function () {\n return prototype._maxListeners;\n },\n set: function (n) {\n if (typeof n !== 'number' || n < 0 || Number.isNaN(n)) {\n throw TypeError('n must be a non-negative number')\n }\n prototype._maxListeners = n;\n },\n enumerable: true\n },\n once: {\n value: once,\n writable: true,\n configurable: true\n }\n });\n\n Object.defineProperties(prototype, {\n _maxListeners: {\n value: defaultMaxListeners,\n writable: true,\n configurable: true\n },\n _observers: {value: null, writable: true, configurable: true}\n });\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function() {\n return EventEmitter;\n });\n } else if (typeof exports === 'object') {\n // CommonJS\n module.exports = EventEmitter;\n }\n else {\n // global for any kind of environment.\n var _global= new Function('','return this')();\n _global.EventEmitter2 = EventEmitter;\n }\n}();\n","import { Form } from \"@formio/js\";\nimport { EventEmitter2 } from \"eventemitter2\";\nimport { type MutableRefObject, useEffect, useRef, useState } from \"react\";\n\nimport type { ChangedSubmission, ComponentType, FormOptions, FormType, JSON, SubmissionType } from \"../../interfaces\";\nimport { FormCustomEvent } from \"./types\";\n\ntype Webform = any;\ntype EventError = string | Error | Error[] | { message: string } | { message: string }[];\n\nexport interface UseFormProps<Data extends { [key: string]: JSON } = { [key: string]: JSON }> {\n src?: string;\n url?: string;\n form?: FormType;\n submission?: SubmissionType<Data>;\n options?: FormOptions;\n FormClass?: typeof Form;\n onFormReady?: (instance: Webform) => void;\n onPrevPage?: (page: number, submission: SubmissionType<Data>) => void;\n onNextPage?: (page: number, submission: SubmissionType<Data>) => void;\n onCancelSubmit?: () => void;\n onCancelComponent?: (component: ComponentType) => void;\n onChange?: (value: ChangedSubmission<Data>, flags: any, modified: boolean) => void;\n onCustomEvent?: (event: FormCustomEvent) => void;\n onComponentChange?: (changed: { instance: Webform; component: Webform; value: any; flags: any }) => void;\n onSubmit?: (submission: SubmissionType<Data>, saved?: boolean) => void;\n onAsyncSubmit?: (submission: SubmissionType<Data>) => void;\n onSubmitDone?: (submission: SubmissionType<Data>) => void;\n onSubmitError?: (error: EventError) => void;\n onFormLoad?: (form: JSON) => void;\n onError?: (error: EventError | false) => void;\n onRender?: (param: any) => void;\n onAttach?: (param: any) => void;\n onBuild?: (param: any) => void;\n onFocus?: (instance: Webform) => void;\n onBlur?: (instance: Webform) => void;\n onInitialized?: () => void;\n onLanguageChanged?: () => void;\n onBeforeSetSubmission?: (submission: SubmissionType<Data>) => void;\n onSaveDraftBegin?: () => void;\n onSaveDraft?: (submission: SubmissionType<Data>) => void;\n onRestoreDraft?: (submission: SubmissionType<Data> | null) => void;\n onSubmissionDeleted?: (submission: SubmissionType<Data>) => void;\n onRequestDone?: () => void;\n otherEvents?: {\n [event: string]: (...args: any[]) => void;\n };\n}\n\nconst getDefaultEmitter = () => {\n return new EventEmitter2({\n wildcard: false,\n maxListeners: 0\n });\n};\n\nfunction onAnyEvent<Data extends { [key: string]: JSON } = { [key: string]: JSON }>(\n handlers: Omit<UseFormProps<Data>, \"src\" | \"url\" | \"form\" | \"submission\" | \"options\" | \"formReady\" | \"formioform\" | \"Formio\">,\n ...args: [string, ...any[]]\n) {\n const [event, ...outputArgs] = args;\n\n if (event.startsWith(\"formio.\")) {\n const funcName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (funcName in handlers) {\n (handlers as any)[funcName](...outputArgs);\n }\n }\n if (handlers.otherEvents && handlers.otherEvents[event]) {\n handlers.otherEvents[event](...outputArgs);\n }\n}\n\nconst createWebformInstance = async (\n FormConstructor: any | undefined,\n formSource: any,\n element: HTMLDivElement,\n options: FormOptions = {}\n) => {\n if (!options?.events) {\n options.events = getDefaultEmitter();\n }\n\n if (typeof formSource !== \"string\") {\n formSource = structuredClone(formSource);\n }\n\n const promise = new FormConstructor(element, formSource, options);\n const webform = await promise.ready;\n\n webform.toJSON = () => ({ __WEBFORM__: true });\n\n return webform;\n};\n\n// Define effective props (aka I want to rename these props but also maintain backwards compatibility)\nfunction getEffectiveProps<Data extends { [key: string]: JSON } = { [key: string]: JSON }>(props: UseFormProps<Data>) {\n const { FormClass = Form, form, src, url, options, submission, onFormReady, onAsyncSubmit, ...handlers } = props;\n\n return {\n FormClass,\n formSource: form !== undefined ? form : src,\n handlers,\n options,\n url,\n submission,\n onFormReady,\n onAsyncSubmit\n };\n}\n\nfunction createCustomValidation(customAction: any, ref: MutableRefObject<Webform | null>) {\n return async (submission: SubmissionType, next: (error: null | Error) => void) => {\n try {\n const updatedSubmission = await customAction(submission);\n\n next(null);\n\n ref.current.onSubmit(updatedSubmission, true);\n } catch (er: any) {\n next(er.errors || er);\n } finally {\n ref.current.submissionInProcess = false;\n }\n };\n}\n\nexport function useForm<Data extends { [key: string]: JSON } = { [key: string]: JSON }>(props: UseFormProps<Data>) {\n const webformRef = useRef<Webform | null>(null);\n const renderElement = useRef<HTMLDivElement | null>(null);\n const { formSource, FormClass, options, url, submission, handlers, onFormReady, onAsyncSubmit } = getEffectiveProps(props);\n\n const [instanceIsReady, setInstanceIsReady] = useState(false);\n\n useEffect(() => {\n let ignore = false;\n const createInstance = async () => {\n if (renderElement.current === null) {\n console.warn(\"Form element not found\");\n return;\n }\n\n if (typeof formSource === \"undefined\") {\n console.warn(\"Form source not found\");\n return;\n }\n\n let opts = options || {};\n\n if (onAsyncSubmit) {\n opts.hooks = opts.hooks || {};\n opts.hooks.customValidation = createCustomValidation(props.onAsyncSubmit, webformRef);\n }\n\n const webform = await createWebformInstance(FormClass, formSource, renderElement.current, options);\n\n if (webform) {\n if (ignore) {\n webform.destroy(true);\n return;\n }\n\n if (typeof formSource === \"string\") {\n webform.src = formSource;\n } else if (typeof formSource === \"object\") {\n if (submission) {\n webform.setSubmission(submission);\n }\n\n if (url) {\n webform.url = url;\n }\n }\n\n if (onFormReady) {\n onFormReady(webform);\n }\n\n renderElement.current.className = \"formio-form-ready\";\n webformRef.current = webform;\n setInstanceIsReady(true);\n } else {\n console.warn(\"Failed to create form instance\");\n }\n };\n\n createInstance();\n\n return () => {\n ignore = true;\n if (webformRef.current) {\n webformRef.current.destroy(true);\n }\n };\n }, [formSource, url]);\n\n useEffect(() => {\n if (instanceIsReady && webformRef.current && Object.keys(handlers).length > 0) {\n webformRef.current.onAny((...args: [string, ...any[]]) => {\n instanceIsReady && onAnyEvent(handlers, ...args);\n });\n }\n\n return () => {\n if (instanceIsReady && webformRef.current && Object.keys(handlers).length > 0) {\n webformRef.current.offAny((...args: [string, ...any[]]) => onAnyEvent(handlers, ...args));\n }\n };\n }, [instanceIsReady, handlers]);\n\n useEffect(() => {\n if (instanceIsReady && webformRef.current && submission) {\n webformRef.current.setSubmission(submission);\n }\n }, [instanceIsReady, submission]);\n\n return {\n element: renderElement,\n instance: webformRef.current\n };\n}\n"],"names":["undefined","hasOwnProperty","isArray","obj","defaultMaxListeners","nextTickSupported","symbolsSupported","reflectSupported","setImmediateSupported","_setImmediate","ownKeys","arr","init","configure","conf","logPossibleMemoryLeak","count","eventName","errorMsg","e","toArray","a","b","c","n","toObject","keys","values","key","len","valuesCount","i","TargetObserver","emitter","target","options","on","off","_observers","event","localEvent","reducer","observer","listeners","handler","args","eventObj","result","_event","events","clearRefs","index","findTargetIndex","resolveOptions","schema","reducers","allowUnknown","computedOptions","length","option","value","reject","reason","constructorReducer","makeTypeReducer","types","message","firstType","secondType","v","kind","functionReducer","objectFunctionReducer","makeCancelablePromise","Promise","executor","isCancelable","callbacks","timer","subscriptionClosed","promise","resolve","onCancel","cleanup","_resolve","_reject","err","cb","observers","searchListenerTree","handlers","type","tree","typeLength","ns","l","j","delimiter","dl","branch","xTree","xxTree","isolatedBranch","endReached","currentType","nextType","branches","_listeners","growListenerTree","listener","prepend","name","collectTreeEvents","root","asArray","branchName","path","hasListeners","isArrayPath","recursivelyGarbageCollect","flag","Listener","setupListener","promisify","async","nextTick","objectify","_listener","_origin","context","EventEmitter","listen","isSingleReducer","matched","fn","ttl","self","wildcard","containsSymbol","al","promises","returnValue","temp","leafs","iLeaf","leaf","position","fns","_events","allListeners","listenerTree","nsAsArray","_all","filter","once","_Promise","eventListener","errorListener","prototype","module","getDefaultEmitter","EventEmitter2","onAnyEvent","outputArgs","funcName","createWebformInstance","FormConstructor","formSource","element","webform","getEffectiveProps","props","FormClass","Form","form","src","url","submission","onFormReady","onAsyncSubmit","createCustomValidation","customAction","ref","next","updatedSubmission","er","useForm","webformRef","useRef","renderElement","instanceIsReady","setInstanceIsReady","useState","useEffect","ignore","opts"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionType } from '../../../interfaces';
|
|
1
|
+
import { ActionType, FormOptions } from '../../../interfaces';
|
|
2
2
|
import { TableProps } from '../../../molecules/table/Table';
|
|
3
3
|
export type ActionsTableProps = Omit<TableProps<ActionType>, "columns"> & {
|
|
4
4
|
onAddAction?: (actionName: string) => void;
|
|
@@ -6,5 +6,6 @@ export type ActionsTableProps = Omit<TableProps<ActionType>, "columns"> & {
|
|
|
6
6
|
label: string;
|
|
7
7
|
value: string;
|
|
8
8
|
}[];
|
|
9
|
+
i18n?: FormOptions["i18n"];
|
|
9
10
|
};
|
|
10
11
|
export declare function ActionsTable({ availableActions, onAddAction, ...props }: ActionsTableProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { jsx as o, jsxs as i } from "react/jsx-runtime";
|
|
2
|
-
import { c as
|
|
3
|
-
import
|
|
4
|
-
import { useState as
|
|
2
|
+
import { c as m } from "../../../chunks/index.js";
|
|
3
|
+
import d from "lodash/noop";
|
|
4
|
+
import { useState as p } from "react";
|
|
5
|
+
import { useI18n as u } from "../../../hooks/useI18n.js";
|
|
5
6
|
import { Select as b } from "../../../molecules/forms/select/Select.js";
|
|
6
7
|
import { Table as f } from "../../../molecules/table/Table.js";
|
|
7
8
|
import { iconClass as h } from "../../../utils/iconClass.js";
|
|
8
|
-
function
|
|
9
|
-
const {
|
|
9
|
+
function T({ availableActions: n = [], onAddAction: c = d, ...a }) {
|
|
10
|
+
const { t: e } = u(a.i18n), [t, s] = p(""), r = [
|
|
10
11
|
{
|
|
11
12
|
header: e("Action"),
|
|
12
13
|
accessorKey: "title"
|
|
@@ -20,7 +21,7 @@ function j({ availableActions: n = [], onAddAction: s = p, ...a }) {
|
|
|
20
21
|
name: "actions",
|
|
21
22
|
value: t,
|
|
22
23
|
options: [{ label: e("Select an action"), value: "" }].concat(n),
|
|
23
|
-
onChange: (
|
|
24
|
+
onChange: (v, l) => s(l)
|
|
24
25
|
}
|
|
25
26
|
),
|
|
26
27
|
/* @__PURE__ */ o("div", { className: "pl-3", children: /* @__PURE__ */ i(
|
|
@@ -29,10 +30,10 @@ function j({ availableActions: n = [], onAddAction: s = p, ...a }) {
|
|
|
29
30
|
"data-testid": "action-table-add",
|
|
30
31
|
disabled: t === "",
|
|
31
32
|
className: "btn btn-success",
|
|
32
|
-
onClick: () => t &&
|
|
33
|
+
onClick: () => t && c(t),
|
|
33
34
|
type: "submit",
|
|
34
35
|
children: [
|
|
35
|
-
/* @__PURE__ */ o("i", { className:
|
|
36
|
+
/* @__PURE__ */ o("i", { className: m(h(void 0, "plus"), "mr-1") }),
|
|
36
37
|
" ",
|
|
37
38
|
e("Add action")
|
|
38
39
|
]
|
|
@@ -41,6 +42,6 @@ function j({ availableActions: n = [], onAddAction: s = p, ...a }) {
|
|
|
41
42
|
] }) });
|
|
42
43
|
}
|
|
43
44
|
export {
|
|
44
|
-
|
|
45
|
+
T as ActionsTable
|
|
45
46
|
};
|
|
46
47
|
//# sourceMappingURL=ActionsTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionsTable.js","sources":["../../../../src/organisms/table/actions/ActionsTable.tsx"],"sourcesContent":["import { ColumnDef } from \"@tanstack/react-table\";\nimport classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport { useState } from \"react\";\n\nimport { ActionType } from \"../../../interfaces\";\nimport { Select } from \"../../../molecules/forms/select/Select\";\nimport { Table, type TableProps } from \"../../../molecules/table/Table\";\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionType>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n};\n\nexport function ActionsTable({ availableActions = [], onAddAction = noop, ...props }: ActionsTableProps) {\n const {
|
|
1
|
+
{"version":3,"file":"ActionsTable.js","sources":["../../../../src/organisms/table/actions/ActionsTable.tsx"],"sourcesContent":["import { ColumnDef } from \"@tanstack/react-table\";\nimport classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport { useState } from \"react\";\n\nimport { useI18n } from \"../../../hooks/useI18n.js\";\nimport { ActionType, type FormOptions } from \"../../../interfaces\";\nimport { Select } from \"../../../molecules/forms/select/Select\";\nimport { Table, type TableProps } from \"../../../molecules/table/Table\";\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionType>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n i18n?: FormOptions[\"i18n\"];\n};\n\nexport function ActionsTable({ availableActions = [], onAddAction = noop, ...props }: ActionsTableProps) {\n const { t } = useI18n(props.i18n);\n const [currentAction, setAction] = useState(\"\");\n\n const columns: ColumnDef<ActionType>[] = [\n {\n header: t(\"Action\"),\n accessorKey: \"title\"\n }\n ];\n\n return (\n <Table {...props} columns={columns}>\n <div className={\"pagination-group\"}>\n <Select\n data-testid={\"action-table-select\"}\n name={\"actions\"}\n value={currentAction}\n options={[{ label: t(\"Select an action\"), value: \"\" }].concat(availableActions)}\n onChange={(_, action) => setAction(action)}\n />\n <div className={\"pl-3\"}>\n <button\n data-testid={\"action-table-add\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {t(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n"],"names":["ActionsTable","availableActions","onAddAction","noop","props","t","useI18n","currentAction","setAction","useState","columns","jsx","Table","jsxs","Select","_","action","classnames","iconClass"],"mappings":";;;;;;;;AAiBO,SAASA,EAAa,EAAE,kBAAAC,IAAmB,CAAA,GAAI,aAAAC,IAAcC,GAAM,GAAGC,KAA4B;AACvG,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAQF,EAAM,IAAI,GAC1B,CAACG,GAAeC,CAAS,IAAIC,EAAS,EAAE,GAExCC,IAAmC;AAAA,IACvC;AAAA,MACE,QAAQL,EAAE,QAAQ;AAAA,MAClB,aAAa;AAAA,IAAA;AAAA,EACf;AAGF,SACE,gBAAAM,EAACC,KAAO,GAAGR,GAAO,SAAAM,GAChB,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAW,oBACd,UAAA;AAAA,IAAA,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,eAAa;AAAA,QACb,MAAM;AAAA,QACN,OAAOP;AAAA,QACP,SAAS,CAAC,EAAE,OAAOF,EAAE,kBAAkB,GAAG,OAAO,GAAA,CAAI,EAAE,OAAOJ,CAAgB;AAAA,QAC9E,UAAU,CAACc,GAAGC,MAAWR,EAAUQ,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAE3C,gBAAAL,EAAC,OAAA,EAAI,WAAW,QACd,UAAA,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAa;AAAA,QACb,UAAUN,MAAkB;AAAA,QAC5B,WAAW;AAAA,QACX,SAAS,MAAMA,KAAiBL,EAAYK,CAAa;AAAA,QACzD,MAAM;AAAA,QAEN,UAAA;AAAA,UAAA,gBAAAI,EAAC,KAAA,EAAE,WAAWM,EAAWC,EAAU,QAAW,MAAM,GAAG,MAAM,GAAG;AAAA,UAAE;AAAA,UAAEb,EAAE,YAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EACpF,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
|
|
@@ -6,4 +6,4 @@ export type FormsTableProps = Omit<TableProps<FormType>, "columns"> & {
|
|
|
6
6
|
value: string;
|
|
7
7
|
}[];
|
|
8
8
|
};
|
|
9
|
-
export declare function FormsTable({ ...props }: FormsTableProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function FormsTable({ tags, ...props }: FormsTableProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import "./components/FormsCell.js";
|
|
3
|
+
import { useI18n as a } from "../../../hooks/useI18n.js";
|
|
3
4
|
import { Table as c } from "../../../molecules/table/Table.js";
|
|
4
|
-
import { getComponent as
|
|
5
|
-
function
|
|
6
|
-
const {
|
|
5
|
+
import { getComponent as m } from "../../../registries/components.js";
|
|
6
|
+
function T({ tags: r, ...t }) {
|
|
7
|
+
const { t: e } = a(t.i18n), l = m("FormsCell"), s = [
|
|
7
8
|
{
|
|
8
9
|
header: e("Title"),
|
|
9
10
|
accessorKey: "title",
|
|
10
|
-
cell: (
|
|
11
|
+
cell: (n) => /* @__PURE__ */ o(l, { ...n, i18n: e }),
|
|
11
12
|
meta: {
|
|
12
13
|
cellProps: {
|
|
13
14
|
colSpan: 2
|
|
@@ -24,7 +25,7 @@ function u({ ...o }) {
|
|
|
24
25
|
filter: {
|
|
25
26
|
variant: "select",
|
|
26
27
|
layout: "react",
|
|
27
|
-
options:
|
|
28
|
+
options: r
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
}
|
|
@@ -49,9 +50,9 @@ function u({ ...o }) {
|
|
|
49
50
|
// )
|
|
50
51
|
// }
|
|
51
52
|
];
|
|
52
|
-
return /* @__PURE__ */
|
|
53
|
+
return /* @__PURE__ */ o(c, { ...t, columns: s });
|
|
53
54
|
}
|
|
54
55
|
export {
|
|
55
|
-
|
|
56
|
+
T as FormsTable
|
|
56
57
|
};
|
|
57
58
|
//# sourceMappingURL=FormsTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormsTable.js","sources":["../../../../src/organisms/table/forms/FormsTable.tsx"],"sourcesContent":["import \"./components/FormsCell.js\";\n\nimport { ColumnDef } from \"@tanstack/react-table\";\n\nimport type { FormType } from \"../../../interfaces\";\nimport { Table, TableProps } from \"../../../molecules/table/Table\";\nimport { getComponent } from \"../../../registries/components.js\";\nimport { FormsCell } from \"./components/FormsCell.js\";\n\nexport type FormsTableProps = Omit<TableProps<FormType>, \"columns\"> & {\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ ...props }: FormsTableProps) {\n const {
|
|
1
|
+
{"version":3,"file":"FormsTable.js","sources":["../../../../src/organisms/table/forms/FormsTable.tsx"],"sourcesContent":["import \"./components/FormsCell.js\";\n\nimport { ColumnDef } from \"@tanstack/react-table\";\n\nimport { useI18n } from \"../../../hooks/useI18n.js\";\nimport type { FormType } from \"../../../interfaces\";\nimport { Table, TableProps } from \"../../../molecules/table/Table\";\nimport { getComponent } from \"../../../registries/components.js\";\nimport { FormsCell } from \"./components/FormsCell.js\";\n\nexport type FormsTableProps = Omit<TableProps<FormType>, \"columns\"> & {\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ tags, ...props }: FormsTableProps) {\n const { t } = useI18n(props.i18n);\n const Cell = getComponent<typeof FormsCell>(\"FormsCell\");\n\n const columns: ColumnDef<any>[] = [\n {\n header: t(\"Title\"),\n accessorKey: \"title\",\n cell: (context) => <Cell {...context} i18n={t} />,\n meta: {\n cellProps: {\n colSpan: 2\n }\n }\n },\n {\n header: t(\"Tags\"),\n accessorKey: \"tags\",\n meta: {\n cellProps: {\n hidden: true\n },\n filter: {\n variant: \"select\",\n layout: \"react\",\n options: tags\n }\n }\n }\n // {\n // Header: i18n(\"Title\"),\n // accessor: \"title\",\n // id: \"title\",\n // Cell: (props: any) => <FormCell {...props} icon={props.icon} i18n={i18n} />,\n // Filter: DefaultColumnFilter,\n // colspan: 2\n // },\n // {\n // Header: i18n(\"Tags\"),\n // accessor: \"tags\",\n // id: \"tags\",\n // hidden: true,\n // Filter: (props: any) =>\n // tags && tags.length ? (\n // <SelectColumnFilter {...props} column={{ ...props.columns, choices: tags }} />\n // ) : (\n // <DefaultColumnFilter {...props} />\n // )\n // }\n ];\n\n return <Table {...(props as any)} columns={columns} />;\n}\n"],"names":["FormsTable","tags","props","t","useI18n","Cell","getComponent","columns","context","jsx","Table"],"mappings":";;;;;AAcO,SAASA,EAAW,EAAE,MAAAC,GAAM,GAAGC,KAA0B;AAC9D,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAQF,EAAM,IAAI,GAC1BG,IAAOC,EAA+B,WAAW,GAEjDC,IAA4B;AAAA,IAChC;AAAA,MACE,QAAQJ,EAAE,OAAO;AAAA,MACjB,aAAa;AAAA,MACb,MAAM,CAACK,MAAY,gBAAAC,EAACJ,KAAM,GAAGG,GAAS,MAAML,GAAG;AAAA,MAC/C,MAAM;AAAA,QACJ,WAAW;AAAA,UACT,SAAS;AAAA,QAAA;AAAA,MACX;AAAA,IACF;AAAA,IAEF;AAAA,MACE,QAAQA,EAAE,MAAM;AAAA,MAChB,aAAa;AAAA,MACb,MAAM;AAAA,QACJ,WAAW;AAAA,UACT,QAAQ;AAAA,QAAA;AAAA,QAEV,QAAQ;AAAA,UACN,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,SAASF;AAAA,QAAA;AAAA,MACX;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACF;AAuBF,SAAO,gBAAAQ,EAACC,GAAA,EAAO,GAAIR,GAAe,SAAAK,EAAA,CAAkB;AACtD;"}
|