@dcloudio/uni-shared
Advanced tools
Comparing version 3.0.0-alpha-3000020210720001 to 3.0.0-alpha-3000020210726002
@@ -866,2 +866,65 @@ 'use strict'; | ||
class EventChannel { | ||
constructor(id, events) { | ||
this.id = id; | ||
this.listener = {}; | ||
this.emitCache = {}; | ||
if (events) { | ||
Object.keys(events).forEach((name) => { | ||
this.on(name, events[name]); | ||
}); | ||
} | ||
} | ||
emit(eventName, ...args) { | ||
const fns = this.listener[eventName]; | ||
if (!fns) { | ||
return (this.emitCache[eventName] || (this.emitCache[eventName] = [])).push(args); | ||
} | ||
fns.forEach((opt) => { | ||
opt.fn.apply(opt.fn, args); | ||
}); | ||
this.listener[eventName] = fns.filter((opt) => opt.type !== 'once'); | ||
} | ||
on(eventName, fn) { | ||
this._addListener(eventName, 'on', fn); | ||
this._clearCache(eventName); | ||
} | ||
once(eventName, fn) { | ||
this._addListener(eventName, 'once', fn); | ||
this._clearCache(eventName); | ||
} | ||
off(eventName, fn) { | ||
const fns = this.listener[eventName]; | ||
if (!fns) { | ||
return; | ||
} | ||
if (fn) { | ||
for (let i = 0; i < fns.length;) { | ||
if (fns[i].fn === fn) { | ||
fns.splice(i, 1); | ||
i--; | ||
} | ||
i++; | ||
} | ||
} | ||
else { | ||
delete this.listener[eventName]; | ||
} | ||
} | ||
_clearCache(eventName) { | ||
const cacheArgs = this.emitCache[eventName]; | ||
if (cacheArgs) { | ||
for (; cacheArgs.length > 0;) { | ||
this.emit.apply(this, [eventName, ...cacheArgs.shift()]); | ||
} | ||
} | ||
} | ||
_addListener(eventName, type, fn) { | ||
(this.listener[eventName] || (this.listener[eventName] = [])).push({ | ||
fn, | ||
type, | ||
}); | ||
} | ||
} | ||
function getEnvLocale() { | ||
@@ -892,2 +955,3 @@ const { env } = process; | ||
exports.DATA_RE = DATA_RE; | ||
exports.EventChannel = EventChannel; | ||
exports.EventModifierFlags = EventModifierFlags; | ||
@@ -894,0 +958,0 @@ exports.NAVBAR_HEIGHT = NAVBAR_HEIGHT; |
@@ -31,6 +31,6 @@ import { FontFaceDescriptors } from 'css-font-loading-module'; | ||
export declare type AddEventAction = [ | ||
typeof ACTION_TYPE_ADD_EVENT, | ||
number, | ||
string | number, | ||
number | ||
typeof ACTION_TYPE_ADD_EVENT, | ||
number, | ||
string | number, | ||
number | ||
]; | ||
@@ -69,10 +69,12 @@ | ||
* parentNodeId | ||
* refNodeId | ||
* nodeJson | ||
*/ | ||
export declare type CreateAction = [ | ||
typeof ACTION_TYPE_CREATE, | ||
number, | ||
string | number, | ||
number, | ||
Partial<UniNodeJSON | UniNodeJSONMinify>? | ||
typeof ACTION_TYPE_CREATE, | ||
number, | ||
string | number, | ||
number, | ||
number, | ||
Partial<UniNodeJSON | UniNodeJSONMinify>? | ||
]; | ||
@@ -108,2 +110,20 @@ | ||
export declare class EventChannel { | ||
id: number; | ||
private listener; | ||
private emitCache; | ||
constructor(id: number, events?: NavigateToOptionEvents); | ||
emit(eventName: string, ...args: any[]): number | undefined; | ||
on(eventName: string, fn: EventChannelListener['fn']): void; | ||
once(eventName: string, fn: EventChannelListener['fn']): void; | ||
off(eventName: string, fn: EventChannelListener['fn']): void; | ||
_clearCache(eventName: string): void; | ||
_addListener(eventName: string, type: EventChannelListener['type'], fn: EventChannelListener['fn']): void; | ||
} | ||
declare interface EventChannelListener { | ||
type: 'on' | 'once'; | ||
fn: (...args: any[]) => void; | ||
} | ||
export declare const EventModifierFlags: { | ||
@@ -172,2 +192,4 @@ stop: number; | ||
declare type NavigateToOptionEvents = Record<string, (...args: any[]) => void>; | ||
export declare const NODE_TYPE_COMMENT = 8; | ||
@@ -320,5 +342,5 @@ | ||
export declare type RemoveAttributeAction = [ | ||
typeof ACTION_TYPE_REMOVE_ATTRIBUTE, | ||
number, | ||
string | number | ||
typeof ACTION_TYPE_REMOVE_ATTRIBUTE, | ||
number, | ||
string | number | ||
]; | ||
@@ -331,5 +353,5 @@ | ||
export declare type RemoveEventAction = [ | ||
typeof ACTION_TYPE_REMOVE_EVENT, | ||
number, | ||
string | number | ||
typeof ACTION_TYPE_REMOVE_EVENT, | ||
number, | ||
string | number | ||
]; | ||
@@ -358,6 +380,6 @@ | ||
export declare type SetAttributeAction = [ | ||
typeof ACTION_TYPE_SET_ATTRIBUTE, | ||
number, | ||
string | number, | ||
unknown | number | ||
typeof ACTION_TYPE_SET_ATTRIBUTE, | ||
number, | ||
string | number, | ||
unknown | number | ||
]; | ||
@@ -370,5 +392,5 @@ | ||
export declare type SetTextAction = [ | ||
typeof ACTION_TYPE_SET_TEXT, | ||
number, | ||
string | number | ||
typeof ACTION_TYPE_SET_TEXT, | ||
number, | ||
string | number | ||
]; | ||
@@ -375,0 +397,0 @@ |
@@ -862,2 +862,65 @@ import { camelize, extend, isString, isPlainObject, isArray, isHTMLTag, isSVGTag, capitalize, hyphenate } from '@vue/shared'; | ||
class EventChannel { | ||
constructor(id, events) { | ||
this.id = id; | ||
this.listener = {}; | ||
this.emitCache = {}; | ||
if (events) { | ||
Object.keys(events).forEach((name) => { | ||
this.on(name, events[name]); | ||
}); | ||
} | ||
} | ||
emit(eventName, ...args) { | ||
const fns = this.listener[eventName]; | ||
if (!fns) { | ||
return (this.emitCache[eventName] || (this.emitCache[eventName] = [])).push(args); | ||
} | ||
fns.forEach((opt) => { | ||
opt.fn.apply(opt.fn, args); | ||
}); | ||
this.listener[eventName] = fns.filter((opt) => opt.type !== 'once'); | ||
} | ||
on(eventName, fn) { | ||
this._addListener(eventName, 'on', fn); | ||
this._clearCache(eventName); | ||
} | ||
once(eventName, fn) { | ||
this._addListener(eventName, 'once', fn); | ||
this._clearCache(eventName); | ||
} | ||
off(eventName, fn) { | ||
const fns = this.listener[eventName]; | ||
if (!fns) { | ||
return; | ||
} | ||
if (fn) { | ||
for (let i = 0; i < fns.length;) { | ||
if (fns[i].fn === fn) { | ||
fns.splice(i, 1); | ||
i--; | ||
} | ||
i++; | ||
} | ||
} | ||
else { | ||
delete this.listener[eventName]; | ||
} | ||
} | ||
_clearCache(eventName) { | ||
const cacheArgs = this.emitCache[eventName]; | ||
if (cacheArgs) { | ||
for (; cacheArgs.length > 0;) { | ||
this.emit.apply(this, [eventName, ...cacheArgs.shift()]); | ||
} | ||
} | ||
} | ||
_addListener(eventName, type, fn) { | ||
(this.listener[eventName] || (this.listener[eventName] = [])).push({ | ||
fn, | ||
type, | ||
}); | ||
} | ||
} | ||
function getEnvLocale() { | ||
@@ -869,2 +932,2 @@ const { env } = process; | ||
export { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CLASS, ATTR_STYLE, BACKGROUND_COLOR, BUILT_IN_TAGS, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, EventModifierFlags, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_HIDE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SHARE_APP_MESSAGE, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, PLUS_RE, PRIMARY_COLOR, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniNode, UniTextAreaElement, UniTextNode, WEB_INVOKE_APPSERVICE, addFont, cache, cacheStringFunction, callOptions, createRpx2Unit, debounce, decode, decodedQuery, defaultRpx2Unit, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getLen, initCustomDataset, invokeArrayFns, isBuiltInComponent, isCustomElement, isNativeTag, isServiceCustomElement, isServiceNativeTag, normalizeDataset, normalizeEventType, normalizeTarget, once, parseEventName, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, sanitise, scrollTo, stringifyQuery, updateElementStyle }; | ||
export { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CLASS, ATTR_STYLE, BACKGROUND_COLOR, BUILT_IN_TAGS, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, EventChannel, EventModifierFlags, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_HIDE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SHARE_APP_MESSAGE, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, PLUS_RE, PRIMARY_COLOR, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniNode, UniTextAreaElement, UniTextNode, WEB_INVOKE_APPSERVICE, addFont, cache, cacheStringFunction, callOptions, createRpx2Unit, debounce, decode, decodedQuery, defaultRpx2Unit, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getLen, initCustomDataset, invokeArrayFns, isBuiltInComponent, isCustomElement, isNativeTag, isServiceCustomElement, isServiceNativeTag, normalizeDataset, normalizeEventType, normalizeTarget, once, parseEventName, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, sanitise, scrollTo, stringifyQuery, updateElementStyle }; |
{ | ||
"name": "@dcloudio/uni-shared", | ||
"version": "3.0.0-alpha-3000020210720001", | ||
"version": "3.0.0-alpha-3000020210726002", | ||
"description": "@dcloudio/uni-shared", | ||
@@ -21,3 +21,3 @@ "main": "./dist/uni-shared.cjs.js", | ||
}, | ||
"gitHead": "1fc7a3cb83aab2d16370e0146871b2f2ec19106b" | ||
"gitHead": "2b089354649135b86dc0a679cdd70d8dd2f34d3b" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
91457
2370