UNPKG

application-prototype

Version:
1,064 lines (933 loc) 30.3 kB
/** * @interface ApplicationPrototype */ /** * @class * @name Instance * @memberof ApplicationPrototype */ /** * @typedef {object} BindListenerConfig - configuration for bind listeners * @memberof ApplicationPrototype.Instance * @property {boolean} [listenedBefore=true] allow listeners before method call * @property {boolean} [listenedOn=true] allow listeners on method call ( is after ) * @property {boolean} [listenedAfter=true] allow listeners after method call ( is after small delay ) * @property {boolean} [allowInterruption=true] */ /** * returns listener Id * @method on * @memberof ApplicationPrototype.Instance# * @param {string|function} event event name of function with name * @param {function} [callback] function that will listen data * @param {string} [specifiedEventId] event name of function with name * @returns {string} */ /** * returns listener Id * @method once * @memberof ApplicationPrototype.Instance# * @param {string|function} event event name of function with name * @param {function} [callback] function that will listen data * @param {string} [specifiedEventId] event name of function with name * @returns {string} */ /** * returns listener Id * @method bind * @memberof ApplicationPrototype.Instance# * @param {string|function} event event name of function with name * @param {function|ApplicationPrototype.Instance.BindListenerConfig} [callback] function that will listen data * @param {ApplicationPrototype.Instance.BindListenerConfig|string} [listenersConfig] of lis event name of function with name * @returns {string} */ /** * emits an application event * @method emit * @memberof ApplicationPrototype.Instance# * @param {string} event event name * @param {any[]} [args] arguments passed with event * @param {boolean} [track=false] indicate if to use tracked handler or internal * @param {boolean} [noSkipStopReturn=false] indicate if event flow can be stopped by a `false` return */ /** * remove all event listeners * @method off * @memberof ApplicationPrototype.Instance# * @param {string} event event or events names separated by comma * @param {string} [specifiedEventId] event name of function with name * @returns {boolean} */ /** * returns listener Id * @method crudEvents * @memberof ApplicationPrototype.Instance# * @param {Object<string,any>} context will be used as a base for ApplicationPrototype instance that will be returned * @param {Object<string,Function>} publicMethods list of public methods available from returned instance * @param {Object<string,Function>} privateMethods list of private methods available only for instance's methods * @returns {ApplicationPrototype.Instance} */ /** * returns listener Id * @callback PropertyHandler * @memberof ApplicationPrototype.Instance * @param {any} value is undefined when `isSetter = true` * @param {any} lastValue * @param {boolean} isSetter */ /** * @method property * @memberof ApplicationPrototype.Instance# * @param {string} propertyName * @param {ApplicationPrototype.Instance.PropertyHandler} getter * @param {ApplicationPrototype.Instance.PropertyHandler} [setter] * @param {object} [config] * @param {boolean} [config.configurable=true] * @param {boolean} [config.enumerable=true] * @fires ApplicationPrototype.Instance.__onSet * @fires ApplicationPrototype.Instance.__onGet * @fires ApplicationPrototype.Instance.__afterGet * @fires ApplicationPrototype.Instance.__afterGet * @fires ApplicationPrototype.Instance.__onSet::propName * @fires ApplicationPrototype.Instance.__onGet::propName * @fires ApplicationPrototype.Instance.__afterGet::propName * @fires ApplicationPrototype.Instance.__afterGet::propName *//** * @method property * @memberof ApplicationPrototype.Instance# * @param {ApplicationPrototype.PropertyHandler} getter function with name * @param {ApplicationPrototype.PropertyHandler} [setter] * @param {object} [config] * @param {boolean} [config.configurable=true] * @param {boolean} [config.enumerable=true] */ /** * @event __onGet * @memberof ApplicationPrototype.Instance * @type {object} * @property {string} propName * @property {any} value * @property {any} lastValue */ /** * @event __onSet * @memberof ApplicationPrototype.Instance * @type {object} * @property {string} propName * @property {any} value * @property {any} lastValue */ /** * @event __afterGet * @memberof ApplicationPrototype.Instance * @type {object} * @property {string} propName * @property {any} value * @property {any} lastValue */ /** * @event __afterSet * @memberof ApplicationPrototype.Instance * @type {object} * @property {string} propName * @property {any} value * @property {any} lastValue */ /** * @event __onGet::propName * @memberof ApplicationPrototype.Instance * @type {object} * @property {any} value * @property {any} lastValue */ /** * @event __onSet::propName * @memberof ApplicationPrototype.Instance * @type {object} * @property {any} value * @property {any} lastValue */ /** * @event __afterGet::propName * @memberof ApplicationPrototype.Instance * @type {object} * @property {any} value * @property {any} lastValue */ /** * @event __afterSet::propName * @memberof ApplicationPrototype.Instance * @type {object} * @property {any} value * @property {any} lastValue */ /** * @class * @name Builder * @memberof ApplicationPrototype * @augments ApplicationPrototype.Instance */ /** * @method require * @memberof ApplicationPrototype.Builder# * @param {string|string[]} events List of Events Names or Array of Events Mapping like [ "uriLoad :: uri-load", "ePrototype :: ExtensionsPrototype" ] * @param {function} [callback] Callback that will receive Module * @returns {PromiseLike<any>} */ /** * @class * @name Promise * @memberof ApplicationPrototype.Builder * @param {function} handler * @returns {PromiseLike<any>} */ /** * @method all * @memberof ApplicationPrototype.Builder.Promise * @param {Promise[]} items * @returns {PromiseLike<any[]>} */ /** * @method race * @memberof ApplicationPrototype.Builder.Promise * @param {Promise[]} items * @returns {PromiseLike<any[]>} */ /** * @method resolve * @memberof ApplicationPrototype.Builder.Promise * @param {any} value * @returns {PromiseLike<any>} */ /** * @method reject * @memberof ApplicationPrototype.Builder.Promise * @param {any} value * @returns {PromiseLike<Error>} */ /** * @method isNode * @memberof ApplicationPrototype.Builder# * @returns {boolean} */ /** * @method isBrowser * @memberof ApplicationPrototype.Builder# * @returns {boolean} */ /** * @method debugEnabled * @memberof ApplicationPrototype.Builder# * @param {boolean} [status] * @returns {boolean} */ /** * @method runModulesInFiles * @memberof ApplicationPrototype.Builder# * @param {boolean} [status] * @returns {boolean} */ /** * @method consoleOptions * @memberof ApplicationPrototype.Builder# * @param {ApplicationPrototype.Builder.ConsoleOptions} [options] * @returns {ApplicationPrototype.Builder.ConsoleOptions} */ /** * @method modulePath * @memberof ApplicationPrototype.Builder# * @param {string} [path] * @returns {string} */ /** * @typedef {object} ConsoleOptions * @memberof ApplicationPrototype.Builder * @property {boolean} [file] enable/disable showing filename in console log. default value is `true` * @property {boolean} [contextName] enable/disable showing context Execution info in console log. default value is `true` * @property {boolean} [timestamp] enable/disable showing current timestamp in console log. default value is `true` * @property {boolean} [logType] enable/disable showing log type in console log. default value is `true */ /** * @typedef {object} ModuleStore * @memberof ApplicationPrototype.Builder * @description modules store where are indexed modules */ /** * @method moduleRegister * @memberof ApplicationPrototype.Builder# * @param {string} path path that will be used as `Application.modulePath()` * @param {string[]} modules list of modules names that should be registered * @returns {ApplicationPrototype.Builder.ModuleStore} */ /** * @typedef {object} ModuleMeta * @memberof ApplicationPrototype.Builder * @property {ApplicationPrototype.Builder.ModuleStore} store same as `module.cache()` * @property {PromiseLike<string>} $requestQuery XMLHttpRequest used for obtaining Module's Content * @property {string} module_path module's path * @property {string} path module's internal path used as identifier of module * @property {string} name module's name * @property {string} __dirname module's dirname */ /** * @callback moduleResolve * @memberof ApplicationPrototype.Builder# * @param {string} module module name * @param {string} [path] module path * @returns {ApplicationPrototype.Builder.ModuleMeta} */ /** * returns interface for accessing Node Env, is defined only in node env * @var NodeInterface * @type {object} * @property {function():NodeJS.Process} process * @property {function():NodeJS.Global} global * @property {function():NodeRequire} require * @property {function(string):any} globalReference returns NodeJS require reference by it's name */ // /** @typedef {{ prop1: string, prop2: string, prop3?: number }} XXXSpecialType */ // /** @typedef {(data: string, index?: number) => boolean} XXXPredicate */ /** * @callback ApplicationPrototypeConstructor * @returns {ApplicationPrototype.Instance} */ /** * @callback ApplicationBuilderConstructor * @returns {ApplicationPrototype.Builder} */ // property {*} _i = function(i,n){return ((n + (i % n))%n); }; /** * @var {ExtensionsPrototype.slDOM} _ * @memberof ExtensionsPrototype */ /** * @var {ExtensionsPrototype.slDOMSet} __ * @memberof ExtensionsPrototype */ /** * @class * @name slDOMSet * @memberof ExtensionsPrototype * @param {string} [cssSelector] */ /** * @method config * @memberof ExtensionsPrototype.slDOMSet# * @param {string} key * @param {any} value * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method config * @memberof ExtensionsPrototype.slDOMSet# * @param {string} key * @returns {any} */ /** * @method unique * @memberof ExtensionsPrototype.slDOMSet# * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method set * @memberof ExtensionsPrototype.slDOMSet# * @param {string} v css selector applied over document * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method set * @memberof ExtensionsPrototype.slDOMSet# * @param {(NodeList|any[])} v array of Nodes or HTMLElements * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method add * @memberof ExtensionsPrototype.slDOMSet# * @param {(NodeList|any)} ...v array of Nodes or HTMLElements * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method env * @memberof ExtensionsPrototype.slDOMSet# * @returns {ExtensionsPrototype.slDOM_env} */ /** * @method get * @memberof ExtensionsPrototype.slDOMSet# * @returns {(Node[])} */ /** * @method get * @memberof ExtensionsPrototype.slDOMSet# * @param {number} index * @returns {(Node)} */ /** * @method eq * @memberof ExtensionsPrototype.slDOMSet# * @param {number} index * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method find * @memberof ExtensionsPrototype.slDOMSet# * @param {string} cssSelector * @returns {ExtensionsPrototype.slDOMSet} */ /** * @callback itemHandler * @memberof ExtensionsPrototype.slDOMSet * @param {Node} node * @param {number} index * @param {ExtensionsPrototype.slDOMSet} context * @param {ExtensionsPrototype.slDOM} p */ /** * @callback itemHandlerFilter * @memberof ExtensionsPrototype.slDOMSet * @param {Node} node * @param {number} index * @param {ExtensionsPrototype.slDOMSet} context * @param {ExtensionsPrototype.slDOM} p * @returns {boolean} */ /** * @callback itemHandlerMap * @memberof ExtensionsPrototype.slDOMSet * @param {Node} node * @param {number} index * @param {ExtensionsPrototype.slDOMSet} context * @param {ExtensionsPrototype.slDOM} p * @returns {Node} */ /** * @method filter * @memberof ExtensionsPrototype.slDOMSet# * @param {ExtensionsPrototype.slDOMSet.itemHandlerFilter} filterCallback * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method each * @memberof ExtensionsPrototype.slDOMSet# * @param {ExtensionsPrototype.slDOMSet.itemHandler} filterCallback * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method map * @memberof ExtensionsPrototype.slDOMSet# * @param {ExtensionsPrototype.slDOMSet.itemHandlerMap} filterCallback * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method attr * @memberof ExtensionsPrototype.slDOMSet# * @returns {NamedNodeMap} */ /** * @method attr * @memberof ExtensionsPrototype.slDOMSet# * @param {string} attribute * @returns {string} */ /** * @method attr * @memberof ExtensionsPrototype.slDOMSet# * @param {string} attribute * @param {any} value * @returns {ExtensionsPrototype.slDOMSet} */ /** * @method attr * @memberof ExtensionsPrototype.slDOMSet# * @param {any} ...attr_value * @returns {ExtensionsPrototype.slDOMSet} */ // ["toFunction", "x" ].forEach(function (method) { // ["sClass", "c" ].forEach(function (method) { // [ "g_wh", "r", "pagePXY", "PXY", "eventsCache", "in_e", "i", "is_free", "is_focused", "is_inview", "is_visible" ].forEach(function (method) { // [ "on", "off", "opacity", "a2D", "triger", "setVar", "T", "setStyle", "setStyleSPEED", "F", "f", "o", "removeFromDOM", "free", "d", "D", "clearE", "delE", "setVar", "setObjVar", "setObjProto", "V", "v", "p", "adEto", "putBfto", "putAfto", "putBf", "putAf", "Et", "Bt", "At", "pB", "pA", "addE", "addB", "addT", "e", "b", "t", "getTagsByQuery", "getTags", "s", "q", "nextTo", "backTo", "nUP", "nChild", "getParentN", "copyE", "getParentTag", "getByTag", "getByQuery", "getById", "N", "B", "U", "C", "P", "X", "p", "S", "Q", "I" ].forEach(function (method) { /** * @typedef slDOM_env * @memberof ExtensionsPrototype * @property {boolean} gecko * @property {boolean} old_ie * @property {boolean} ie_lt8 * @property {boolean} ie_lt9 * @property {boolean} ie_gt10 * @property {boolean} ie * @property {boolean} webkit * @property {boolean} qtwebkit * @property {boolean} chrome * @property {boolean} opera * @property {boolean} firefox * @property {boolean} safari * @property {boolean} khtml * @property {boolean} mac_geLion * @property {boolean} mac_geMountainLion * @property {boolean} phantom * @property {boolean} ios * @property {boolean} mobile * @property {boolean} mac * @property {boolean} windows * @property {Array|null} opera_version * @property {boolean} flipCtrlCmd * @property {boolean} captureMiddleClick * @property {boolean} android * @property {string|false} android_version */ /** * @typedef {Object<string,(string|number)>} slDOM_ObjectCSSProperties a list of proprieties mapped in a object, example: { fontSize: "10px", "white-space": "nowrap" } * @memberof ExtensionsPrototype */ /** * @typedef {Object<string,(string|number)>} slDOM_ObjectAttributes a list of proprieties mapped in a object, example: { fontSize: "10px", "white-space": "nowrap" } * @memberof ExtensionsPrototype */ /** * @typedef {object} slDOM returns a pointer that walks over DOM and applying needed operations * @memberof ExtensionsPrototype * @property {ExtensionsPrototype.slDOM_env} env Environment Flags * @property {function(boolean):HTMLElement} __ if params is `true` then return document otherwise current HTMLElement * @property {function(object):ExtensionsPrototype.slDOM} a2D apply Css Transforms on elements * @property {function(number):ExtensionsPrototype.slDOM} opacity ( short form **o** ) change element opacity * @property {function((HTMLElement|string)):ExtensionsPrototype.slDOM} setE ( short form **e** ) set a HTMLElement or Create Element for slDOM Pointer * @property {function((string|string[]),string?,number?):ExtensionsPrototype.slDOM|boolean} sClass =slDOMlib.sClass; * @property {function(...string):slDOM} setArg ( short form **A** ) set Attributes to HTMLElement, arguments order: `[ attribute, value, attribute, value ... ]` * @property {function(HTMLElement):slDOM} adEto add current HTMLElement to other HTMLElement; * @property {function(HTMLElement):slDOM} putBfto insert current HTMLElement before other HTMLElement * @property {function(HTMLElement):slDOM} putAfto insert current HTMLElement after other HTMLElement * @property {function((HTMLElement|string),string?,function?):slDOM} putBf =slDOMlib.putBf; * @property {function(HTMLElement):slDOM} putAf =slDOMlib.putAf; * @property {function((HTMLElement|string),string?,function?):slDOM} addE =slDOMlib.addE; * @property {function((HTMLElement|string),string?,function?):slDOM} addB =slDOMlib.addB; * @property {function(string):slDOM} addT ( short form **t** ) add text node to HTMLElement; * @property {function(number):slDOM} [nextTo=1] ( short form **N** ) moving pointer forward to N neighbors * @property {function(number):slDOM} [backTo=1] ( short form **B** ) moving pointer backward to N neighbors * @property {function(number?):slDOM} nUP ( short form is U ) goes up on level in doom * @property {function(number?):slDOM} nChild ( short form is **C** ) select the *N th* child element * @property {function(number?):slDOM} getParentN ( short form is **P** ) select the *N th* parent element * @property {function():slDOM} clearE ( short form is **d** ) remove all childObjects from node * @property {function():slDOM} delE remove HTMLElement from its Parent * @property {function(boolean):slDOM} copyE =slDOMlib.copyE; * @property {function(string):slDOM} getParentTag =slDOMlib.getParentTag; * @property {function(string,number,boolean,boolean):slDOM} getByTag =slDOMlib.getByTag; * @property {function(string,number,boolean,boolean):slDOM} getByQuery =slDOMlib.getByQuery; * @property {function(string):slDOM} getById =slDOMlib.getById; * @property {function(string,boolean):Array<HTMLElement>} getTags =slDOMlib.getTags; * @property {function(string,boolean):Array<HTMLElement>} getTagsByQuery =slDOMlib.getTagsByQuery; * @property {function(string):slDOM} triger ( short form **T** ) trigger / emit an event on HTMLElement * @property {function(string?):slDOM|HTMLElement|string} getE ( short form **_** ) return HTMLElement ; * * if argument[0] is ".tag" return HTMLElement's tagname ; * * if argument[0] is ".html" return HTML Content ; * * if argument[0] is ".text" return Text Content ; * * if argument[0] is "-attributeName" return HTMLElement's Attribute ; * * if argument[0] is "!attributeName" remove HTMLElement's Attribute * @property {function(ExtensionsPrototype.slDOM_ObjectCSSProperties): slDOM} setStyle ( short form **f** ) setting css proprieties to HTMLElement * @property {function((ExtensionsPrototype.slDOM_ObjectAttributes | string[])): slDOM} setVar ( short form **V** ) set dot property on HTMLElement * @property {function(...ExtensionsPrototype.slDOM_ObjectAttributes): slDOM} setObjVar ( short form **v** ) setting attributes to HTMLElement * @property {function(ExtensionsPrototype.slDOM_ObjectCSSProperties): slDOM} setStyleSPEED ( short form **F** ) setting css proprieties to HTMLElement with normalizing values by adding units * @property {function(): { x: number, y: number }} pagePXY ( short form **PXY** ) get element position on page * @property {function(): Boolean} in_e check if HTMLElement is still attached to DOM ( Document Object Manager ) * @property {function(): { w: number, h: number }} g_wh returns width and height of HTMLElement * @property {function((object | string), boolean, function, object): slDOM} getLIST =slDOMlib.getLIST; * @property {function(function(HTMLElement, object, slDOM), object): slDOM} toFunction =slDOMlib.toFunction; * @property {function(): slDOM} removeFromDOM ( short form **free** ) remove elements from DOM * @property {function(number): slDOM} o ( short form **opacity** ) change element opacity * @property {function((HTMLElement | string)): slDOM} E ( long form **setE** ) set a HTMLElement or Create Element for slDOM Pointer * @property {*} c =slDOMlib.sClass; * @property {function(string): Object} attrs = slDOMlib.attrs; * @property {*} A =slDOMlib.setArg; * @property {*} Et =slDOMlib.adEto; * @property {*} Bt =slDOMlib.putBfto; * @property {*} At =slDOMlib.putAfto; * @property {*} pB =slDOMlib.putBf; * @property {*} pA =slDOMlib.putAf; * @property {*} e =slDOMlib.addE; * @property {*} b =slDOMlib.addB; * @property {*} t =slDOMlib.addT; * @property {*} N =slDOMlib.nextTo; * @property {*} B =slDOMlib.backTo; * @property {*} U =slDOMlib.nUP; * @property {*} C =slDOMlib.nChild; * @property {*} P =slDOMlib.getParentN; * @property {*} d =slDOMlib.clearE; * @property {*} D =slDOMlib.delE; * @property {*} X =slDOMlib.copyE; * @property {*} p =slDOMlib.getParentTag; * @property {*} S =slDOMlib.getByTag; * @property {*} Q =slDOMlib.getByQuery; * @property {*} I =slDOMlib.getById; * @property {*} s =slDOMlib.getTags; * @property {*} q =slDOMlib.getTagsByQuery; * @property {*} T =slDOMlib.triger; * @property {*} _ =slDOMlib.getE; * @property {*} $ =slDOMlib.getLIST; * @property {*} F =slDOMlib.setStyleSPEED; * @property {*} f =slDOMlib.setStyle; * @property {*} L =slDOMlib.getLIST; * @property {*} V =slDOMlib.setVar; * @property {*} v =slDOMlib.setObjVar; * @property {*} PXY =slDOMlib.pagePosXY; * @property {*} i =slDOMlib.in_e; * @property {*} r =slDOMlib.g_wh; * @property {*} x =slDOMlib.toFunction; * @property {function(): slDOM} free = slDOMlib.removeFromDOM; * @property {function(): Boolean} is_free = slDOMlib.is_free; * @property {function(): Boolean} is_focused = slDOMlib.is_focused; * @property {function(): Boolean} is_inview = slDOMlib.elementInViewport; * @property {function(): Boolean} is_visible = slDOMlib.elementIsVisible; * @property {*} _normalizeCssValues = slDOMlib._normalizeCssValues; * @property {*} on = slDOMlib.on; * @property {*} off = slDOMlib.off; * @property {function(): Object} eventsCache = slDOMlib.eventsCache; */ // /** @class */ // /** @type {ApplicationPrototypeInstance} */ // function ApplicationPrototype() { // /** @type {ApplicationPrototypeBind} */ // this.bind = function (event, callback, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeListener} */ // this.on = function (event, callback, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeListener} */ // this.once = function (event, callback, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeListenerRemove} */ // this.off = function (event, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeCrudEvents} */ // this.crudEvents = function (context, publicMethods, privateMethods) { // return new ApplicationPrototype(); // } // } // /** @class */ // /** @type {ApplicationBuilderInstance} */ // function ApplicationBuilder() { // /** @type {ApplicationPrototypeBind} */ // this.bind = function (event, callback, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeListener} */ // this.on = function (event, callback, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeListener} */ // this.once = function (event, callback, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeListenerRemove} */ // this.off = function (event, specifiedEventId) { return String }; // /** @type {ApplicationPrototypeCrudEvents} */ // this.crudEvents = function (context, publicMethods, privateMethods) { // return new ApplicationPrototype(); // } // /** @type {ApplicationBuilderRequire} */ // this.require = function (events, callback) { // return new Promise(); // } // /** @type {Promise} */ // this.Promise; // } // /** @namespace */ // var Application = new ApplicationBuilder(); /** * @typedef {string} ModuleResourceUrl * @memberof ApplicationPrototype.Builder * @description resources url is composed from `module's plath` + `resource path` */ /** * @typedef {Object} ApplicationModule * @memberof ApplicationPrototype.Builder * @property {PromiseLike<XMLHttpRequest>} $request resolves module exports * @property {function():any} exports module exports handler * @property {number} atime unix time in milliseconds * @property {function():ApplicationPrototype.Builder} Application returns current application * @property {function():ApplicationPrototype.Builder.ModuleStore} cache returns module's reserved cache object * @property {function(any):Promise} require require modules from module's folder * @property {function(ModuleResourceUrl):string} resourceUrl returns module's resource URL * @property {ApplicationPrototype.Builder.ModuleMeta} meta module's meta information */ // /** @namespace */ // /** @type {ApplicationModule} */ // var module = { // exports : {} // }; /** * @typedef ApplicationBuilderExports * @property {ApplicationPrototypeConstructor} application * @property {ApplicationBuilderConstructor} builder */ /// <reference path="constructors/request.js" /> /** * @interface String */ /** * @memberof String# * @method subs * @param {number} index * @param {number} [lastIndex] * @returns {string} */ /** * @memberof String# * @method toHex * @param {boolean} [isUtf8=true] * @returns {string} */ /** * @memberof String# * @method fromHex * @returns {string} */ /** * encode in HTML minimal * @memberof String# * @method toHtmlSimple * @returns {string} */ /** * encode in HTML * @memberof String# * @method toHtml * @returns {string} */ /** * decode from HTML ( works in Browser ) * @memberof String# * @method fromHtml * @returns {string} */ /** * remove risky tags from HTML Code: comments, script, iframe, style, object, noscript, frame, frameset * @memberof String# * @method cleanTags * @returns {string} */ /** * @memberof String# * @method add_Class * @param {string} newClass * @returns {string} */ /** * @memberof String# * @method del_Class * @param {string} newClass * @returns {string} */ /** * @memberof String# * @method fnd_Class * @param {string} newClass * @returns {boolean} */ /** * @memberof String# * @method swp_case * @returns {string} */ /** * @memberof String# * @method ucfirst * @param {number} [length=1] how many first chars to be transformed to uppercase * @returns {string} */ /** * @memberof String# * @method lcfirst * @param {number} [length=1] how many first chars to be transformed to uppercase * @returns {string} */ /** * Detects if a string is unicode, and if it is, then it is transformed to UTF8 * @memberof String# * @method utf8need * @returns {string} */ /** * @memberof String# * @method utf8encode * @returns {string} */ /** * @memberof String# * @method utf8decode * @returns {string} */ /** * @see {String#utf8encode} * @memberof String# * @method utf8 * @returns {string} */ /** * @see {String#utf8decode} * @memberof String# * @method unicode * @returns {string} */ /** * @memberof String# * @method encryptAes * @param {string} password * @param {number} [size=128] * @returns {string} */ /** * @memberof String# * @method decryptAes * @param {string} password * @param {number} [size=128] * @returns {string} */ /** * @memberof String# * @method encryptTea * @param {string} password * @returns {string} */ /** * @memberof String# * @method decryptTea * @param {string} password * @returns {string} */ /** * @memberof String# * @method base64decode * @returns {string} */ /** * @memberof String# * @method base64encode * @returns {string} */ /** * @memberof String# * @method base64decodeBytes * @returns {Uint8Array} */ /** * @memberof String# * @method base64encodeBytes * @returns {Uint8Array} */ /** * @memberof String# * @method base64decodeBytesArray * @returns {Array<number>} */ /** * @memberof String# * @method base64encodeBytesArray * @returns {Array<number>} */ /** * @memberof String# * @method base64encodeClean * @returns {string} */ /** * @memberof String# * @method base64decodeClean * @returns {string} */ /** * @memberof String# * @method encodeURI * @returns {string} */ /** * @memberof String# * @method decodeURI * @returns {string} */ /** * @memberof String# * @method escapeHex * @returns {string} */ /** * @memberof String# * @method escape * @returns {string} */ /** * @memberof String# * @method unescape * @returns {string} */ /** * @memberof String# * @method sha1 * @param {boolean} [isUtf8=true] * @returns {string} */ /** * @memberof String# * @method sha256 * @param {boolean} [isUtf8=true] * @returns {string} */ /** * @memberof String# * @method subs * @param {number} index * @param {number} count * @returns {string} */ /** * @memberof String# * @method md5 * @returns {string} */ /** * @memberof String# * @method markdown * @returns {string} */ /** * @memberof String# * @method toRegexp * @returns {RegExp} */ /** * @memberof String# * @method parseUrl * @param {("get_vars"|boolean)} [mode] * @returns {object} */ /** * @memberof String# * @method match_str * @param {string} rule reg exp rule in string format * @param {string} [flags] reg exp flags * @returns {Array|object} */ /** * Returns a list of parameters included in a string * @example * 'my-demo testIndex: 23 with testValue: "demo content"'.buildQuery() * // returns * { * "_keys": [ * "testindex", * "testvalue" * ], * "_": "my-demo", * "testindex": "23 with", * "testvalue": "\"demo content\"" * } * @memberof String# * @method buildQuery * @returns {Object<string,(string|string[])>} */ /** * Returns a list of parameters included in a string * @example * '"this is" "list of fragments"'.buildSearchArray() * // returns * [ * "this is", * "list of fragments" * ] * @memberof String# * @method buildSearchArray * @returns {Array<string>} */ /** * @memberof String# * @method toArrayBufferFromUtf8 * @returns {ArrayBuffer} */