@leafer-in/state 1.4.2 → 1.5.1

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/state.cjs CHANGED
@@ -303,17 +303,17 @@ core.State.getStyle = getStyle;
303
303
  core.State.updateStyle = updateStyle;
304
304
  core.State.updateEventStyle = updateEventStyle;
305
305
  const ui = core.UI.prototype;
306
- stateType(false, 'selectedStyle')(ui, 'selected');
307
- stateType(false, 'disabledStyle')(ui, 'disabled');
308
- stateStyleType({})(ui, 'states');
309
- stateType('')(ui, 'state');
310
- core.dataType()(ui, 'normalStyle');
311
- stateStyleType()(ui, 'hoverStyle');
312
- stateStyleType()(ui, 'pressStyle');
313
- stateStyleType()(ui, 'focusStyle');
314
- stateStyleType()(ui, 'selectedStyle');
315
- stateStyleType()(ui, 'disabledStyle');
316
- core.dataType(false)(ui, 'button');
306
+ core.UI.addAttr('selected', false, stateType, 'selectedStyle');
307
+ core.UI.addAttr('disabled', false, stateType, 'disabledStyle');
308
+ core.UI.addAttr('states', {}, stateStyleType);
309
+ core.UI.addAttr('state', '', stateType);
310
+ core.UI.addAttr('normalStyle', undefined, core.dataType);
311
+ core.UI.addAttr('hoverStyle', undefined, stateStyleType);
312
+ core.UI.addAttr('pressStyle', undefined, stateStyleType);
313
+ core.UI.addAttr('focusStyle', undefined, stateStyleType);
314
+ core.UI.addAttr('selectedStyle', undefined, stateStyleType);
315
+ core.UI.addAttr('disabledStyle', undefined, stateStyleType);
316
+ core.UI.addAttr('button', false, core.dataType);
317
317
  ui.focus = function (value = true) {
318
318
  this.waitLeafer(() => {
319
319
  let { focusData } = this.app.interaction;
@@ -1 +1 @@
1
- {"version":3,"file":"state.cjs","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/event.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nstateType(false, 'selectedStyle')(ui, 'selected')\nstateType(false, 'disabledStyle')(ui, 'disabled')\n\nstateStyleType({})(ui, 'states')\nstateType('')(ui, 'state')\n\ndataType()(ui, 'normalStyle')\nstateStyleType()(ui, 'hoverStyle')\nstateStyleType()(ui, 'pressStyle')\nstateStyleType()(ui, 'focusStyle')\nstateStyleType()(ui, 'selectedStyle')\nstateStyleType()(ui, 'disabledStyle')\n\ndataType(false)(ui, 'button')\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}"],"names":["decorateLeafAttr","attr","State","MathHelper","isNull","PointerEvent","Plugin","UI","dataType"],"mappings":"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"}
1
+ {"version":3,"file":"state.cjs","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/event.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nUI.addAttr('selected', false, stateType, 'selectedStyle')\nUI.addAttr('disabled', false, stateType, 'disabledStyle')\n\nUI.addAttr('states', {}, stateStyleType)\nUI.addAttr('state', '', stateType)\n\nUI.addAttr('normalStyle', undefined, dataType)\nUI.addAttr('hoverStyle', undefined, stateStyleType)\nUI.addAttr('pressStyle', undefined, stateStyleType)\nUI.addAttr('focusStyle', undefined, stateStyleType)\nUI.addAttr('selectedStyle', undefined, stateStyleType)\nUI.addAttr('disabledStyle', undefined, stateStyleType)\n\nUI.addAttr('button', false, dataType)\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}"],"names":["decorateLeafAttr","attr","State","MathHelper","isNull","PointerEvent","Plugin","UI","dataType"],"mappings":"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"}
package/dist/state.esm.js CHANGED
@@ -301,17 +301,17 @@ State$1.getStyle = getStyle;
301
301
  State$1.updateStyle = updateStyle;
302
302
  State$1.updateEventStyle = updateEventStyle;
303
303
  const ui = UI.prototype;
304
- stateType(false, 'selectedStyle')(ui, 'selected');
305
- stateType(false, 'disabledStyle')(ui, 'disabled');
306
- stateStyleType({})(ui, 'states');
307
- stateType('')(ui, 'state');
308
- dataType()(ui, 'normalStyle');
309
- stateStyleType()(ui, 'hoverStyle');
310
- stateStyleType()(ui, 'pressStyle');
311
- stateStyleType()(ui, 'focusStyle');
312
- stateStyleType()(ui, 'selectedStyle');
313
- stateStyleType()(ui, 'disabledStyle');
314
- dataType(false)(ui, 'button');
304
+ UI.addAttr('selected', false, stateType, 'selectedStyle');
305
+ UI.addAttr('disabled', false, stateType, 'disabledStyle');
306
+ UI.addAttr('states', {}, stateStyleType);
307
+ UI.addAttr('state', '', stateType);
308
+ UI.addAttr('normalStyle', undefined, dataType);
309
+ UI.addAttr('hoverStyle', undefined, stateStyleType);
310
+ UI.addAttr('pressStyle', undefined, stateStyleType);
311
+ UI.addAttr('focusStyle', undefined, stateStyleType);
312
+ UI.addAttr('selectedStyle', undefined, stateStyleType);
313
+ UI.addAttr('disabledStyle', undefined, stateStyleType);
314
+ UI.addAttr('button', false, dataType);
315
315
  ui.focus = function (value = true) {
316
316
  this.waitLeafer(() => {
317
317
  let { focusData } = this.app.interaction;
@@ -1 +1 @@
1
- {"version":3,"file":"state.esm.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/event.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nstateType(false, 'selectedStyle')(ui, 'selected')\nstateType(false, 'disabledStyle')(ui, 'disabled')\n\nstateStyleType({})(ui, 'states')\nstateType('')(ui, 'state')\n\ndataType()(ui, 'normalStyle')\nstateStyleType()(ui, 'hoverStyle')\nstateStyleType()(ui, 'pressStyle')\nstateStyleType()(ui, 'focusStyle')\nstateStyleType()(ui, 'selectedStyle')\nstateStyleType()(ui, 'disabledStyle')\n\ndataType(false)(ui, 'button')\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}"],"names":["State"],"mappings":"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"}
1
+ {"version":3,"file":"state.esm.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/event.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nUI.addAttr('selected', false, stateType, 'selectedStyle')\nUI.addAttr('disabled', false, stateType, 'disabledStyle')\n\nUI.addAttr('states', {}, stateStyleType)\nUI.addAttr('state', '', stateType)\n\nUI.addAttr('normalStyle', undefined, dataType)\nUI.addAttr('hoverStyle', undefined, stateStyleType)\nUI.addAttr('pressStyle', undefined, stateStyleType)\nUI.addAttr('focusStyle', undefined, stateStyleType)\nUI.addAttr('selectedStyle', undefined, stateStyleType)\nUI.addAttr('disabledStyle', undefined, stateStyleType)\n\nUI.addAttr('button', false, dataType)\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}"],"names":["State"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{decorateLeafAttr as t,attr as e,State as n}from"@leafer-ui/draw";import{State as s,MathHelper as i,isNull as o,PointerEvent as l,Plugin as a,UI as r,dataType as c}from"@leafer-ui/core";function u(s,i){return t(s,(t=>e({set(e){this.__setAttr(t,e),this.waitLeafer((()=>i?n.setStyleName(this,i,e):n.set(this,e)))}})))}function f(n){return t(n,(t=>e({set(e){this.__setAttr(t,e),this.__layout.stateStyleChanged=!0}})))}function d(t,e){if(e&&!0!==e)return e;if(!t.button){let{parent:e}=t;for(let t=0;t<2;t++)if(e){if(e.button)return e;e=e.parent}}return null}function S(t,e){"object"!=typeof e&&(e=void 0),m(t,e,"in")}function y(t,e){const{normalStyle:n}=t;"object"!=typeof e&&(e=void 0),n&&(e||(e=n),m(t,e,"out"))}const h={};function m(t,e,n){const{normalStyle:l}=t;e||(e=h),e.scale&&(i.assignScale(e,e.scale),delete e.scale),e!==h&&s.canAnimate||(n=null);let a=!!n&&function(t,e,n){let s="in"===t?"transition":"transitionOut";"out"===t&&o(n[s])&&o(e[s])&&(s="transition");return o(e[s])?n[s]:e[s]}(n,e,t);const r=a?function(t,e){const n=v(e,t),s=t.animate();s&&v(n,t,s.fromStyle);return n}(t,e):void 0;s.canAnimate&&p(t)&&t.killAnimate("transition"),l&&t.set(l,"temp");const c=p(t);if(c){const{animation:s}=c;if(s){const i=t.animate(s,void 0,"animation",!0);Object.assign(c,i.endingStyle),"in"!==n||e.animation!==s?i.kill():a=!1,delete c.animation}t.normalStyle=b(c,t),t.set(c,"temp")}else t.normalStyle=void 0;if(a){const e=b(r,t);t.set(r,"temp"),t.animate([r,e],a,"transition",!0)}t.__layout.stateStyleChanged=!1}function p(t){let e;const n={},i=d(t),o=i?t.state||i.state:t.state,l=o&&t.states[o];l&&s.isState(o,t,i)&&(e=g(n,l));const a=n.selectedStyle||t.selectedStyle;if(a&&s.isSelected(t,i)&&(e=g(n,a)),s.isDisabled(t,i)){const s=n.disabledStyle||t.disabledStyle;s&&(e=g(n,s))}else{const o=n.focusStyle||t.focusStyle;o&&s.isFocus(t,i)&&(e=g(n,o));const l=n.hoverStyle||t.hoverStyle;l&&s.isHover(t,i)&&(e=g(n,l));const a=n.pressStyle||t.pressStyle;a&&s.isPress(t,i)&&(e=g(n,a))}return e?n:void 0}function b(t,e,n,i){const o=n?t:{},l=n||t;for(let t in l)i&&s.animateExcludes[t]||(o[t]=e[t]);return o}function v(t,e,n){return b(t,e,n,!0)}function g(t,e){return Object.assign(t,e),!0}function _(t,e){const n=t[e];n&&S(t,n),t.button&&D(t.children,e)}function k(t,e,n){n||(n=t.states[e]),S(t,n),t.button&&D(t.children,null,e)}function D(t,e,n){if(!t)return;let i,o;for(let l=0,a=t.length;l<a;l++){if(i=t[l],e){switch(o=!0,e){case"hoverStyle":s.isHover(i)&&(o=!1);break;case"pressStyle":s.isPress(i)&&(o=!1);break;case"focusStyle":s.isFocus(i)&&(o=!1)}o&&_(i,e)}else void 0!==n&&k(i,n);i.isBranch&&D(i.children,e,n)}}function E(t,e){const n=t[e];n&&y(t,n),t.button&&O(t.children,e)}function A(t,e,n){y(t,n),t.button&&O(t.children,null,e)}function O(t,e,n){if(!t)return;let s;for(let i=0,o=t.length;i<o;i++)s=t[i],e?E(s,e):void 0!==n&&A(s,n),s.isBranch&&O(s.children,e,n)}function w(t,e,n){let s;const i=e.leafer?e.leafer.interaction:null;if(i&&(s=i[t](e),!s&&n)){const o=d(e,n);o&&(s=i[t](o))}return s}function P(t,e,n){let s=e[t];if(!s&&n){const i=d(e,n);i&&(s=i[t])}return s}a.add("state"),s.animateExcludes={animation:1,animationOut:1,transition:1,transitionOut:1,states:1,state:1,normalStyle:1,hoverStyle:1,pressStyle:1,focusStyle:1,selectedStyle:1,disabledStyle:1},s.isState=function(t,e,n){return function(t,e,n){let s=e.states[t];if(!s&&n){const i=d(e,n);i&&(s=i.states[t])}return!!s}(t,e,n)},s.isSelected=function(t,e){return P("selected",t,e)},s.isDisabled=function(t,e){return P("disabled",t,e)},s.isFocus=function(t,e){return w("isFocus",t,e)},s.isHover=function(t,e){return w("isHover",t,e)},s.isPress=function(t,e){return w("isPress",t,e)},s.isDrag=function(t,e){return w("isDrag",t,e)},s.setStyleName=function(t,e,n){n?k(t,e,t[e]):A(t,e,t[e])},s.set=function(t,e){const n=t.states[e];n?k(t,e,n):A(t,e,n)},s.getStyle=p,s.updateStyle=m,s.updateEventStyle=function(t,e){switch(e){case l.ENTER:_(t,"hoverStyle");break;case l.LEAVE:E(t,"hoverStyle");break;case l.DOWN:_(t,"pressStyle");break;case l.UP:E(t,"pressStyle")}};const j=r.prototype;u(!1,"selectedStyle")(j,"selected"),u(!1,"disabledStyle")(j,"disabled"),f({})(j,"states"),u("")(j,"state"),c()(j,"normalStyle"),f()(j,"hoverStyle"),f()(j,"pressStyle"),f()(j,"focusStyle"),f()(j,"selectedStyle"),f()(j,"disabledStyle"),c(!1)(j,"button"),j.focus=function(t=!0){this.waitLeafer((()=>{let{focusData:e}=this.app.interaction;t?(e&&e.focus(!1),e=this):e=null,this.app.interaction.focusData=e,t?_(this,"focusStyle"):E(this,"focusStyle")}))},j.updateState=function(){s.updateStyle(this,void 0,"in")};export{f as stateStyleType,u as stateType};
1
+ import{decorateLeafAttr as t,attr as e,State as n}from"@leafer-ui/draw";import{State as s,MathHelper as i,isNull as o,PointerEvent as a,Plugin as r,UI as l,dataType as c}from"@leafer-ui/core";function u(s,i){return t(s,(t=>e({set(e){this.__setAttr(t,e),this.waitLeafer((()=>i?n.setStyleName(this,i,e):n.set(this,e)))}})))}function d(n){return t(n,(t=>e({set(e){this.__setAttr(t,e),this.__layout.stateStyleChanged=!0}})))}function f(t,e){if(e&&!0!==e)return e;if(!t.button){let{parent:e}=t;for(let t=0;t<2;t++)if(e){if(e.button)return e;e=e.parent}}return null}function S(t,e){"object"!=typeof e&&(e=void 0),m(t,e,"in")}function y(t,e){const{normalStyle:n}=t;"object"!=typeof e&&(e=void 0),n&&(e||(e=n),m(t,e,"out"))}const h={};function m(t,e,n){const{normalStyle:a}=t;e||(e=h),e.scale&&(i.assignScale(e,e.scale),delete e.scale),e!==h&&s.canAnimate||(n=null);let r=!!n&&function(t,e,n){let s="in"===t?"transition":"transitionOut";"out"===t&&o(n[s])&&o(e[s])&&(s="transition");return o(e[s])?n[s]:e[s]}(n,e,t);const l=r?function(t,e){const n=b(e,t),s=t.animate();s&&b(n,t,s.fromStyle);return n}(t,e):void 0;s.canAnimate&&p(t)&&t.killAnimate("transition"),a&&t.set(a,"temp");const c=p(t);if(c){const{animation:s}=c;if(s){const i=t.animate(s,void 0,"animation",!0);Object.assign(c,i.endingStyle),"in"!==n||e.animation!==s?i.kill():r=!1,delete c.animation}t.normalStyle=v(c,t),t.set(c,"temp")}else t.normalStyle=void 0;if(r){const e=v(l,t);t.set(l,"temp"),t.animate([l,e],r,"transition",!0)}t.__layout.stateStyleChanged=!1}function p(t){let e;const n={},i=f(t),o=i?t.state||i.state:t.state,a=o&&t.states[o];a&&s.isState(o,t,i)&&(e=A(n,a));const r=n.selectedStyle||t.selectedStyle;if(r&&s.isSelected(t,i)&&(e=A(n,r)),s.isDisabled(t,i)){const s=n.disabledStyle||t.disabledStyle;s&&(e=A(n,s))}else{const o=n.focusStyle||t.focusStyle;o&&s.isFocus(t,i)&&(e=A(n,o));const a=n.hoverStyle||t.hoverStyle;a&&s.isHover(t,i)&&(e=A(n,a));const r=n.pressStyle||t.pressStyle;r&&s.isPress(t,i)&&(e=A(n,r))}return e?n:void 0}function v(t,e,n,i){const o=n?t:{},a=n||t;for(let t in a)i&&s.animateExcludes[t]||(o[t]=e[t]);return o}function b(t,e,n){return v(t,e,n,!0)}function A(t,e){return Object.assign(t,e),!0}function g(t,e){const n=t[e];n&&S(t,n),t.button&&k(t.children,e)}function _(t,e,n){n||(n=t.states[e]),S(t,n),t.button&&k(t.children,null,e)}function k(t,e,n){if(!t)return;let i,o;for(let a=0,r=t.length;a<r;a++){if(i=t[a],e){switch(o=!0,e){case"hoverStyle":s.isHover(i)&&(o=!1);break;case"pressStyle":s.isPress(i)&&(o=!1);break;case"focusStyle":s.isFocus(i)&&(o=!1)}o&&g(i,e)}else void 0!==n&&_(i,n);i.isBranch&&k(i.children,e,n)}}function D(t,e){const n=t[e];n&&y(t,n),t.button&&O(t.children,e)}function E(t,e,n){y(t,n),t.button&&O(t.children,null,e)}function O(t,e,n){if(!t)return;let s;for(let i=0,o=t.length;i<o;i++)s=t[i],e?D(s,e):void 0!==n&&E(s,n),s.isBranch&&O(s.children,e,n)}function w(t,e,n){let s;const i=e.leafer?e.leafer.interaction:null;if(i&&(s=i[t](e),!s&&n)){const o=f(e,n);o&&(s=i[t](o))}return s}function P(t,e,n){let s=e[t];if(!s&&n){const i=f(e,n);i&&(s=i[t])}return s}r.add("state"),s.animateExcludes={animation:1,animationOut:1,transition:1,transitionOut:1,states:1,state:1,normalStyle:1,hoverStyle:1,pressStyle:1,focusStyle:1,selectedStyle:1,disabledStyle:1},s.isState=function(t,e,n){return function(t,e,n){let s=e.states[t];if(!s&&n){const i=f(e,n);i&&(s=i.states[t])}return!!s}(t,e,n)},s.isSelected=function(t,e){return P("selected",t,e)},s.isDisabled=function(t,e){return P("disabled",t,e)},s.isFocus=function(t,e){return w("isFocus",t,e)},s.isHover=function(t,e){return w("isHover",t,e)},s.isPress=function(t,e){return w("isPress",t,e)},s.isDrag=function(t,e){return w("isDrag",t,e)},s.setStyleName=function(t,e,n){n?_(t,e,t[e]):E(t,e,t[e])},s.set=function(t,e){const n=t.states[e];n?_(t,e,n):E(t,e,n)},s.getStyle=p,s.updateStyle=m,s.updateEventStyle=function(t,e){switch(e){case a.ENTER:g(t,"hoverStyle");break;case a.LEAVE:D(t,"hoverStyle");break;case a.DOWN:g(t,"pressStyle");break;case a.UP:D(t,"pressStyle")}};const j=l.prototype;l.addAttr("selected",!1,u,"selectedStyle"),l.addAttr("disabled",!1,u,"disabledStyle"),l.addAttr("states",{},d),l.addAttr("state","",u),l.addAttr("normalStyle",void 0,c),l.addAttr("hoverStyle",void 0,d),l.addAttr("pressStyle",void 0,d),l.addAttr("focusStyle",void 0,d),l.addAttr("selectedStyle",void 0,d),l.addAttr("disabledStyle",void 0,d),l.addAttr("button",!1,c),j.focus=function(t=!0){this.waitLeafer((()=>{let{focusData:e}=this.app.interaction;t?(e&&e.focus(!1),e=this):e=null,this.app.interaction.focusData=e,t?g(this,"focusStyle"):D(this,"focusStyle")}))},j.updateState=function(){s.updateStyle(this,void 0,"in")};export{d as stateStyleType,u as stateType};
2
2
  //# sourceMappingURL=state.esm.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.esm.min.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts","../../../../../../src/in/packages/state/src/event.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nstateType(false, 'selectedStyle')(ui, 'selected')\nstateType(false, 'disabledStyle')(ui, 'disabled')\n\nstateStyleType({})(ui, 'states')\nstateType('')(ui, 'state')\n\ndataType()(ui, 'normalStyle')\nstateStyleType()(ui, 'hoverStyle')\nstateStyleType()(ui, 'pressStyle')\nstateStyleType()(ui, 'focusStyle')\nstateStyleType()(ui, 'selectedStyle')\nstateStyleType()(ui, 'disabledStyle')\n\ndataType(false)(ui, 'button')\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}"],"names":["stateType","defaultValue","styleName","decorateLeafAttr","key","attr","set","value","this","__setAttr","waitLeafer","State","setStyleName","stateStyleType","__layout","stateStyleChanged","findParentButton","leaf","button","parent","i","setStyle","style","undefined","updateStyle","unsetStyle","normalStyle","emprtyStyle","type","scale","MathHelper","assignScale","canAnimate","transition","data","name","isNull","getTransition","fromStyle","filterAnimateStyle","animate","getFromStyle","getStyle","killAnimate","statesStyle","animation","Object","assign","endingStyle","kill","filterStyle","toStyle","exist","state","stateStyle","states","isState","selectedStyle","isSelected","isDisabled","disabledStyle","focusStyle","isFocus","hoverStyle","isHover","pressStyle","isPress","addStyle","useAnimateExcludes","to","forStyle","animateExcludes","setPointerState","stateName","setChildrenState","children","setState","update","len","length","isBranch","unsetPointerState","unsetChildrenState","unsetState","checkPointerState","fnName","find","interaction","leafer","parentButton","checkFixedState","attrName","Plugin","add","animationOut","transitionOut","checkState","isDrag","updateEventStyle","eventType","PointerEvent","ENTER","LEAVE","DOWN","UP","ui","UI","prototype","dataType","focus","focusData","app","updateState"],"mappings":"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"}
1
+ {"version":3,"file":"state.esm.min.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts","../../../../../../src/in/packages/state/src/event.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nUI.addAttr('selected', false, stateType, 'selectedStyle')\nUI.addAttr('disabled', false, stateType, 'disabledStyle')\n\nUI.addAttr('states', {}, stateStyleType)\nUI.addAttr('state', '', stateType)\n\nUI.addAttr('normalStyle', undefined, dataType)\nUI.addAttr('hoverStyle', undefined, stateStyleType)\nUI.addAttr('pressStyle', undefined, stateStyleType)\nUI.addAttr('focusStyle', undefined, stateStyleType)\nUI.addAttr('selectedStyle', undefined, stateStyleType)\nUI.addAttr('disabledStyle', undefined, stateStyleType)\n\nUI.addAttr('button', false, dataType)\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}"],"names":["stateType","defaultValue","styleName","decorateLeafAttr","key","attr","set","value","this","__setAttr","waitLeafer","State","setStyleName","stateStyleType","__layout","stateStyleChanged","findParentButton","leaf","button","parent","i","setStyle","style","undefined","updateStyle","unsetStyle","normalStyle","emprtyStyle","type","scale","MathHelper","assignScale","canAnimate","transition","data","name","isNull","getTransition","fromStyle","filterAnimateStyle","animate","getFromStyle","getStyle","killAnimate","statesStyle","animation","Object","assign","endingStyle","kill","filterStyle","toStyle","exist","state","stateStyle","states","isState","selectedStyle","isSelected","isDisabled","disabledStyle","focusStyle","isFocus","hoverStyle","isHover","pressStyle","isPress","addStyle","useAnimateExcludes","to","forStyle","animateExcludes","setPointerState","stateName","setChildrenState","children","setState","update","len","length","isBranch","unsetPointerState","unsetChildrenState","unsetState","checkPointerState","fnName","find","interaction","leafer","parentButton","checkFixedState","attrName","Plugin","add","animationOut","transitionOut","checkState","isDrag","updateEventStyle","eventType","PointerEvent","ENTER","LEAVE","DOWN","UP","ui","UI","prototype","addAttr","dataType","focus","focusData","app","updateState"],"mappings":"gMAGgB,SAAAA,EAAUC,EAAuBC,GAC7C,OAAOC,EAAiBF,GAAeG,GAAgBC,EAAK,CACxD,GAAAC,CAAIC,GACAC,KAAKC,UAAUL,EAAKG,GACpBC,KAAKE,YAAW,IAAMR,EAAYS,EAAMC,aAAaJ,KAAMN,EAAWK,GAASI,EAAML,IAAIE,KAAMD,SAG3G,CAEM,SAAUM,EAAeZ,GAC3B,OAAOE,EAAiBF,GAAeG,GAAgBC,EAAK,CACxD,GAAAC,CAAIC,GACAC,KAAKC,UAAUL,EAAKG,GACpBC,KAAKM,SAASC,mBAAoB,MAG9C,CChBgB,SAAAC,EAAiBC,EAAWC,GACxC,GAAIA,IAAqB,IAAXA,EAAiB,OAAOA,EACtC,IAAKD,EAAKC,OAAQ,CACd,IAAIC,OAAEA,GAAWF,EACjB,IAAK,IAAIG,EAAI,EAAGA,EAAI,EAAGA,IACnB,GAAID,EAAQ,CACR,GAAIA,EAAOD,OAAQ,OAAOC,EAC1BA,EAASA,EAAOA,QAI5B,OAAO,IACX,CCTgB,SAAAE,EAASJ,EAAWK,GACX,iBAAVA,IAAoBA,OAAQC,GACvCC,EAAYP,EAAMK,EAAO,KAC7B,CAEgB,SAAAG,EAAWR,EAAWK,GAClC,MAAMI,YAAEA,GAAgBT,EACH,iBAAVK,IAAoBA,OAAQC,GACnCG,IACKJ,IAAOA,EAAQI,GACpBF,EAAYP,EAAMK,EAAO,OAEjC,CAEA,MAAMK,EAAc,CAAE,WAENH,EAAYP,EAAWK,EAAqBM,GACxD,MAAMF,YAAEA,GAAgBT,EAEnBK,IAAOA,EAAQK,GAEhBL,EAAMO,QACNC,EAAWC,YAAYT,EAAqBA,EAAMO,cAC3CP,EAAMO,OAGbP,IAAUK,GAAgBhB,EAAMqB,aAAYJ,EAAO,MACvD,IAAIK,IAAaL,GA+FrB,SAAuBA,EAAoBN,EAAoBY,GAC3D,IAAIC,EAAgD,OAATP,EAAgB,aAAe,gBAC7D,QAATA,GAAkBQ,EAAOF,EAAKC,KAAUC,EAAOd,EAAMa,MAAQA,EAAO,cACxE,OAAOC,EAAOd,EAAMa,IAASD,EAAKC,GAAQb,EAAMa,EACpD,CAnG4BE,CAAcT,EAAMN,EAAOL,GACnD,MAAMqB,EAAYL,EAwFtB,SAAsBhB,EAAWK,GAC7B,MAAMgB,EAAYC,EAAmBjB,EAAOL,GAAOuB,EAAUvB,EAAKuB,UAC9DA,GAASD,EAAmBD,EAAWrB,EAAMuB,EAAQF,WACzD,OAAOA,CACX,CA5FmCG,CAAaxB,EAAMK,QAASC,EAGzCZ,EAAMqB,YAAcU,EAASzB,IAChCA,EAAK0B,YAAY,cAC5BjB,GAAaT,EAAKX,IAAIoB,EAAa,QAGvC,MAAMkB,EAAcF,EAASzB,GAC7B,GAAI2B,EAAa,CAEb,MAAMC,UAAEA,GAAcD,EACtB,GAAIC,EAAW,CACX,MAAML,EAAUvB,EAAKuB,QAAQK,OAAWtB,EAAW,aAAa,GAChEuB,OAAOC,OAAOH,EAAaJ,EAAQQ,aAEtB,OAATpB,GAAiBN,EAAMuB,YAAcA,EAAWL,EAAQS,OACvDhB,GAAa,SAEXW,EAAYC,UAIvB5B,EAAKS,YAAcwB,EAAYN,EAAa3B,GAC5CA,EAAKX,IAAIsC,EAAa,aAEtB3B,EAAKS,iBAAcH,EAGvB,GAAIU,EAAY,CACZ,MAAMkB,EAAUD,EAAYZ,EAAWrB,GACvCA,EAAKX,IAAIgC,EAAW,QACpBrB,EAAKuB,QAAQ,CAACF,EAAWa,GAAUlB,EAAY,cAAc,GAGjEhB,EAAKH,SAASC,mBAAoB,CACtC,CAEM,SAAU2B,EAASzB,GAIrB,IAAImC,EACJ,MAAM9B,EAAsB,CAAE,EAAEJ,EAASF,EAAiBC,GACpDoC,EAAQnC,EAAUD,EAAKoC,OAASnC,EAAOmC,MAASpC,EAAKoC,MAErDC,EAAaD,GAASpC,EAAKsC,OAAOF,GACpCC,GAAc3C,EAAM6C,QAAQH,EAAOpC,EAAMC,KAASkC,EAAQL,EAAOzB,EAAOgC,IAE5E,MAAMG,EAAgBnC,EAAMmC,eAAiBxC,EAAKwC,cAGlD,GAFIA,GAAiB9C,EAAM+C,WAAWzC,EAAMC,KAASkC,EAAQL,EAAOzB,EAAOmC,IAEvE9C,EAAMgD,WAAW1C,EAAMC,GAAS,CAEhC,MAAM0C,EAAgBtC,EAAMsC,eAAiB3C,EAAK2C,cAC9CA,IAAeR,EAAQL,EAAOzB,EAAOsC,QAEtC,CAEH,MAAMC,EAAavC,EAAMuC,YAAc5C,EAAK4C,WACxCA,GAAclD,EAAMmD,QAAQ7C,EAAMC,KAASkC,EAAQL,EAAOzB,EAAOuC,IAErE,MAAME,EAAazC,EAAMyC,YAAc9C,EAAK8C,WACxCA,GAAcpD,EAAMqD,QAAQ/C,EAAMC,KAASkC,EAAQL,EAAOzB,EAAOyC,IAErE,MAAME,EAAa3C,EAAM2C,YAAchD,EAAKgD,WACxCA,GAActD,EAAMuD,QAAQjD,EAAMC,KAASkC,EAAQL,EAAOzB,EAAO2C,IAIzE,OAAOb,EAAQ9B,OAAQC,CAC3B,CAGA,SAAS2B,EAAY5B,EAAgBY,EAAeiC,EAAoBC,GACpE,MAAMC,EAAcF,EAAW7C,EAAQ,CAAA,EAAIgD,EAAWH,GAAY7C,EAClE,IAAK,IAAIlB,KAAOkE,EACRF,GACKzD,EAAM4D,gBAAgBnE,KACxBiE,EAAGjE,GAAO8B,EAAK9B,IAE1B,OAAOiE,CACX,CAEA,SAAS9B,EAAmBjB,EAAgBY,EAAeiC,GACvD,OAAOjB,EAAY5B,EAAOY,EAAMiC,GAAU,EAC9C,CAcA,SAASpB,EAAOzB,EAAoBgC,GAEhC,OADAR,OAAOC,OAAOzB,EAAOgC,IACd,CACX,CCnIgB,SAAAkB,EAAgBvD,EAAWwD,GACvC,MAAMnD,EAAQL,EAAKwD,GACfnD,GAAOD,EAASJ,EAAMK,GACtBL,EAAKC,QAAQwD,EAAiBzD,EAAK0D,SAAUF,EACrD,UAEgBG,EAAS3D,EAAWwD,EAAmBnB,GAC9CA,IAAYA,EAAarC,EAAKsC,OAAOkB,IAC1CpD,EAASJ,EAAMqC,GACXrC,EAAKC,QAAQwD,EAAiBzD,EAAK0D,SAAU,KAAMF,EAC3D,CAGA,SAASC,EAAiBC,EAAiB3E,EAA4ByE,GACnE,IAAKE,EAAU,OAEf,IAAI1D,EAAW4D,EACf,IAAK,IAAIzD,EAAI,EAAG0D,EAAMH,EAASI,OAAQ3D,EAAI0D,EAAK1D,IAAK,CAEjD,GADAH,EAAO0D,EAASvD,GACZpB,EAAW,CAGX,OADA6E,GAAS,EACD7E,GACJ,IAAK,aACGW,EAAMqD,QAAQ/C,KAAO4D,GAAS,GAClC,MACJ,IAAK,aACGlE,EAAMuD,QAAQjD,KAAO4D,GAAS,GAClC,MACJ,IAAK,aACGlE,EAAMmD,QAAQ7C,KAAO4D,GAAS,GAEtCA,GAAQL,EAAgBvD,EAAMjB,aAEbuB,IAAdkD,GAAyBG,EAAS3D,EAAMwD,GAE/CxD,EAAK+D,UAAUN,EAAiBzD,EAAK0D,SAAU3E,EAAWyE,GAEtE,CCvCgB,SAAAQ,EAAkBhE,EAAWwD,GACzC,MAAMnD,EAAQL,EAAKwD,GACfnD,GAAOG,EAAWR,EAAMK,GACxBL,EAAKC,QAAQgE,EAAmBjE,EAAK0D,SAAUF,EACvD,UAEgBU,EAAWlE,EAAWwD,EAAmBnB,GACrD7B,EAAWR,EAAMqC,GACbrC,EAAKC,QAAQgE,EAAmBjE,EAAK0D,SAAU,KAAMF,EAC7D,CAGA,SAASS,EAAmBP,EAAiB3E,EAA4ByE,GACrE,IAAKE,EAAU,OAEf,IAAI1D,EACJ,IAAK,IAAIG,EAAI,EAAG0D,EAAMH,EAASI,OAAQ3D,EAAI0D,EAAK1D,IAC5CH,EAAO0D,EAASvD,GACZpB,EAAWiF,EAAkBhE,EAAMjB,QAChBuB,IAAdkD,GAAyBU,EAAWlE,EAAMwD,GAE/CxD,EAAK+D,UAAUE,EAAmBjE,EAAK0D,SAAU3E,EAAWyE,EAExE,UCvBgBW,EAAkBC,EAAsDpE,EAAWC,GAC/F,IAAIoE,EACJ,MAAMC,EAActE,EAAKuE,OAASvE,EAAKuE,OAAOD,YAAc,KAC5D,GAAIA,IACAD,EAAOC,EAAYF,GAAQpE,IACtBqE,GAAQpE,GAAQ,CACjB,MAAMuE,EAAezE,EAAiBC,EAAMC,GACxCuE,IAAcH,EAAOC,EAAYF,GAAQI,IAGrD,OAAOH,CACX,UAEgBI,EAAgBC,EAAmC1E,EAAWC,GAC1E,IAAIoE,EAAOrE,EAAK0E,GAChB,IAAKL,GAAQpE,EAAQ,CACjB,MAAMuE,EAAezE,EAAiBC,EAAMC,GACxCuE,IAAcH,EAAOG,EAAaE,IAE1C,OAAOL,CACX,CCZAM,EAAOC,IAAI,SAGXlF,EAAM4D,gBAAkB,CACpB1B,UAAW,EACXiD,aAAc,EAEd7D,WAAY,EACZ8D,cAAe,EAEfxC,OAAQ,EACRF,MAAO,EAEP3B,YAAa,EACbqC,WAAY,EACZE,WAAY,EACZJ,WAAY,EACZJ,cAAe,EACfG,cAAe,GAInBjD,EAAM6C,QAAU,SAAUH,EAAmBpC,EAAWC,GAAmC,gBDRhEuD,EAAuBxD,EAAWC,GACzD,IAAIoE,EAAOrE,EAAKsC,OAAOkB,GACvB,IAAKa,GAAQpE,EAAQ,CACjB,MAAMuE,EAAezE,EAAiBC,EAAMC,GACxCuE,IAAcH,EAAOG,EAAalC,OAAOkB,IAEjD,QAASa,CACb,CCCkGU,CAAW3C,EAAOpC,EAAMC,EAAS,EACnIP,EAAM+C,WAAa,SAAUzC,EAAWC,GAAmC,OAAOwE,EAAgB,WAAYzE,EAAMC,EAAS,EAC7HP,EAAMgD,WAAa,SAAU1C,EAAWC,GAAmC,OAAOwE,EAAgB,WAAYzE,EAAMC,EAAS,EAE7HP,EAAMmD,QAAU,SAAU7C,EAAWC,GAAmC,OAAOkE,EAAkB,UAAWnE,EAAMC,EAAS,EAC3HP,EAAMqD,QAAU,SAAU/C,EAAWC,GAAmC,OAAOkE,EAAkB,UAAWnE,EAAMC,EAAS,EAC3HP,EAAMuD,QAAU,SAAUjD,EAAWC,GAAmC,OAAOkE,EAAkB,UAAWnE,EAAMC,EAAS,EAE3HP,EAAMsF,OAAS,SAAUhF,EAAWC,GAAmC,OAAOkE,EAAkB,SAAUnE,EAAMC,EAAS,EAEzHP,EAAMC,aAAe,SAAUK,EAAWjB,EAA4BO,GAAwBA,EAAQqE,EAAS3D,EAAMjB,EAAWiB,EAAKjB,IAAcmF,EAAWlE,EAAMjB,EAAWiB,EAAKjB,GAAa,EACjMW,EAAML,IAAM,SAAUW,EAAWwD,GAA2B,MAAMnD,EAAQL,EAAKsC,OAAOkB,GAAYnD,EAAQsD,EAAS3D,EAAMwD,EAAWnD,GAAS6D,EAAWlE,EAAMwD,EAAWnD,EAAQ,EAEjLX,EAAM+B,SAAWA,EACjB/B,EAAMa,YAAcA,EACpBb,EAAMuF,iBC3CU,SAAiBjF,EAAWkF,GACxC,OAAQA,GACJ,KAAKC,EAAaC,MACd7B,EAAgBvD,EAAM,cACtB,MACJ,KAAKmF,EAAaE,MACdrB,EAAkBhE,EAAM,cACxB,MACJ,KAAKmF,EAAaG,KACd/B,EAAgBvD,EAAM,cACtB,MACJ,KAAKmF,EAAaI,GACdvB,EAAkBhE,EAAM,cAGpC,ED+BA,MAAMwF,EAAKC,EAAGC,UAGdD,EAAGE,QAAQ,YAAY,EAAO5G,EAAW,iBACzC0G,EAAGE,QAAQ,YAAY,EAAO5G,EAAW,iBAEzC0G,EAAGE,QAAQ,SAAU,CAAE,EAAE/F,GACzB6F,EAAGE,QAAQ,QAAS,GAAI5G,GAExB0G,EAAGE,QAAQ,mBAAerF,EAAWsF,GACrCH,EAAGE,QAAQ,kBAAcrF,EAAWV,GACpC6F,EAAGE,QAAQ,kBAAcrF,EAAWV,GACpC6F,EAAGE,QAAQ,kBAAcrF,EAAWV,GACpC6F,EAAGE,QAAQ,qBAAiBrF,EAAWV,GACvC6F,EAAGE,QAAQ,qBAAiBrF,EAAWV,GAEvC6F,EAAGE,QAAQ,UAAU,EAAOC,GAE5BJ,EAAGK,MAAQ,SAAUvG,GAAiB,GAClCC,KAAKE,YAAW,KACZ,IAAIqG,UAAEA,GAAcvG,KAAKwG,IAAIzB,YACzBhF,GACIwG,GAAWA,EAAUD,OAAM,GAC/BC,EAAYvG,MACTuG,EAAY,KACnBvG,KAAKwG,IAAIzB,YAAYwB,UAAYA,EACjCxG,EAAQiE,EAAgBhE,KAAM,cAAgByE,EAAkBzE,KAAM,aAAa,GAE3F,EAEAiG,EAAGQ,YAAc,WACbtG,EAAMa,YAAYhB,UAAMe,EAAW,KACvC"}
package/dist/state.js CHANGED
@@ -302,17 +302,17 @@ this.LeaferIN.state = (function (exports, draw, core) {
302
302
  core.State.updateStyle = updateStyle;
303
303
  core.State.updateEventStyle = updateEventStyle;
304
304
  const ui = core.UI.prototype;
305
- stateType(false, 'selectedStyle')(ui, 'selected');
306
- stateType(false, 'disabledStyle')(ui, 'disabled');
307
- stateStyleType({})(ui, 'states');
308
- stateType('')(ui, 'state');
309
- core.dataType()(ui, 'normalStyle');
310
- stateStyleType()(ui, 'hoverStyle');
311
- stateStyleType()(ui, 'pressStyle');
312
- stateStyleType()(ui, 'focusStyle');
313
- stateStyleType()(ui, 'selectedStyle');
314
- stateStyleType()(ui, 'disabledStyle');
315
- core.dataType(false)(ui, 'button');
305
+ core.UI.addAttr('selected', false, stateType, 'selectedStyle');
306
+ core.UI.addAttr('disabled', false, stateType, 'disabledStyle');
307
+ core.UI.addAttr('states', {}, stateStyleType);
308
+ core.UI.addAttr('state', '', stateType);
309
+ core.UI.addAttr('normalStyle', undefined, core.dataType);
310
+ core.UI.addAttr('hoverStyle', undefined, stateStyleType);
311
+ core.UI.addAttr('pressStyle', undefined, stateStyleType);
312
+ core.UI.addAttr('focusStyle', undefined, stateStyleType);
313
+ core.UI.addAttr('selectedStyle', undefined, stateStyleType);
314
+ core.UI.addAttr('disabledStyle', undefined, stateStyleType);
315
+ core.UI.addAttr('button', false, core.dataType);
316
316
  ui.focus = function (value = true) {
317
317
  this.waitLeafer(() => {
318
318
  let { focusData } = this.app.interaction;
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/event.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nstateType(false, 'selectedStyle')(ui, 'selected')\nstateType(false, 'disabledStyle')(ui, 'disabled')\n\nstateStyleType({})(ui, 'states')\nstateType('')(ui, 'state')\n\ndataType()(ui, 'normalStyle')\nstateStyleType()(ui, 'hoverStyle')\nstateStyleType()(ui, 'pressStyle')\nstateStyleType()(ui, 'focusStyle')\nstateStyleType()(ui, 'selectedStyle')\nstateStyleType()(ui, 'disabledStyle')\n\ndataType(false)(ui, 'button')\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}"],"names":["decorateLeafAttr","attr","State","MathHelper","isNull","PointerEvent","Plugin","UI","dataType"],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/event.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nUI.addAttr('selected', false, stateType, 'selectedStyle')\nUI.addAttr('disabled', false, stateType, 'disabledStyle')\n\nUI.addAttr('states', {}, stateStyleType)\nUI.addAttr('state', '', stateType)\n\nUI.addAttr('normalStyle', undefined, dataType)\nUI.addAttr('hoverStyle', undefined, stateStyleType)\nUI.addAttr('pressStyle', undefined, stateStyleType)\nUI.addAttr('focusStyle', undefined, stateStyleType)\nUI.addAttr('selectedStyle', undefined, stateStyleType)\nUI.addAttr('disabledStyle', undefined, stateStyleType)\n\nUI.addAttr('button', false, dataType)\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}"],"names":["decorateLeafAttr","attr","State","MathHelper","isNull","PointerEvent","Plugin","UI","dataType"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("@leafer-ui/draw"),e=require("@leafer-ui/core");function n(e,n){return t.decorateLeafAttr(e,(e=>t.attr({set(s){this.__setAttr(e,s),this.waitLeafer((()=>n?t.State.setStyleName(this,n,s):t.State.set(this,s)))}})))}function s(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),this.__layout.stateStyleChanged=!0}})))}function i(t,e){if(e&&!0!==e)return e;if(!t.button){let{parent:e}=t;for(let t=0;t<2;t++)if(e){if(e.button)return e;e=e.parent}}return null}function a(t,e){"object"!=typeof e&&(e=void 0),l(t,e,"in")}function o(t,e){const{normalStyle:n}=t;"object"!=typeof e&&(e=void 0),n&&(e||(e=n),l(t,e,"out"))}const r={};function l(t,n,s){const{normalStyle:i}=t;n||(n=r),n.scale&&(e.MathHelper.assignScale(n,n.scale),delete n.scale),n!==r&&e.State.canAnimate||(s=null);let a=!!s&&function(t,n,s){let i="in"===t?"transition":"transitionOut";"out"===t&&e.isNull(s[i])&&e.isNull(n[i])&&(i="transition");return e.isNull(n[i])?s[i]:n[i]}(s,n,t);const o=a?function(t,e){const n=S(e,t),s=t.animate();s&&S(n,t,s.fromStyle);return n}(t,n):void 0;e.State.canAnimate&&c(t)&&t.killAnimate("transition"),i&&t.set(i,"temp");const l=c(t);if(l){const{animation:e}=l;if(e){const i=t.animate(e,void 0,"animation",!0);Object.assign(l,i.endingStyle),"in"!==s||n.animation!==e?i.kill():a=!1,delete l.animation}t.normalStyle=u(l,t),t.set(l,"temp")}else t.normalStyle=void 0;if(a){const e=u(o,t);t.set(o,"temp"),t.animate([o,e],a,"transition",!0)}t.__layout.stateStyleChanged=!1}function c(t){let n;const s={},a=i(t),o=a?t.state||a.state:t.state,r=o&&t.states[o];r&&e.State.isState(o,t,a)&&(n=f(s,r));const l=s.selectedStyle||t.selectedStyle;if(l&&e.State.isSelected(t,a)&&(n=f(s,l)),e.State.isDisabled(t,a)){const e=s.disabledStyle||t.disabledStyle;e&&(n=f(s,e))}else{const i=s.focusStyle||t.focusStyle;i&&e.State.isFocus(t,a)&&(n=f(s,i));const o=s.hoverStyle||t.hoverStyle;o&&e.State.isHover(t,a)&&(n=f(s,o));const r=s.pressStyle||t.pressStyle;r&&e.State.isPress(t,a)&&(n=f(s,r))}return n?s:void 0}function u(t,n,s,i){const a=s?t:{},o=s||t;for(let t in o)i&&e.State.animateExcludes[t]||(a[t]=n[t]);return a}function S(t,e,n){return u(t,e,n,!0)}function f(t,e){return Object.assign(t,e),!0}function d(t,e){const n=t[e];n&&a(t,n),t.button&&h(t.children,e)}function y(t,e,n){n||(n=t.states[e]),a(t,n),t.button&&h(t.children,null,e)}function h(t,n,s){if(!t)return;let i,a;for(let o=0,r=t.length;o<r;o++){if(i=t[o],n){switch(a=!0,n){case"hoverStyle":e.State.isHover(i)&&(a=!1);break;case"pressStyle":e.State.isPress(i)&&(a=!1);break;case"focusStyle":e.State.isFocus(i)&&(a=!1)}a&&d(i,n)}else void 0!==s&&y(i,s);i.isBranch&&h(i.children,n,s)}}function p(t,e){const n=t[e];n&&o(t,n),t.button&&v(t.children,e)}function m(t,e,n){o(t,n),t.button&&v(t.children,null,e)}function v(t,e,n){if(!t)return;let s;for(let i=0,a=t.length;i<a;i++)s=t[i],e?p(s,e):void 0!==n&&m(s,n),s.isBranch&&v(s.children,e,n)}function b(t,e,n){let s;const a=e.leafer?e.leafer.interaction:null;if(a&&(s=a[t](e),!s&&n)){const o=i(e,n);o&&(s=a[t](o))}return s}function g(t,e,n){let s=e[t];if(!s&&n){const a=i(e,n);a&&(s=a[t])}return s}e.Plugin.add("state"),e.State.animateExcludes={animation:1,animationOut:1,transition:1,transitionOut:1,states:1,state:1,normalStyle:1,hoverStyle:1,pressStyle:1,focusStyle:1,selectedStyle:1,disabledStyle:1},e.State.isState=function(t,e,n){return function(t,e,n){let s=e.states[t];if(!s&&n){const a=i(e,n);a&&(s=a.states[t])}return!!s}(t,e,n)},e.State.isSelected=function(t,e){return g("selected",t,e)},e.State.isDisabled=function(t,e){return g("disabled",t,e)},e.State.isFocus=function(t,e){return b("isFocus",t,e)},e.State.isHover=function(t,e){return b("isHover",t,e)},e.State.isPress=function(t,e){return b("isPress",t,e)},e.State.isDrag=function(t,e){return b("isDrag",t,e)},e.State.setStyleName=function(t,e,n){n?y(t,e,t[e]):m(t,e,t[e])},e.State.set=function(t,e){const n=t.states[e];n?y(t,e,n):m(t,e,n)},e.State.getStyle=c,e.State.updateStyle=l,e.State.updateEventStyle=function(t,n){switch(n){case e.PointerEvent.ENTER:d(t,"hoverStyle");break;case e.PointerEvent.LEAVE:p(t,"hoverStyle");break;case e.PointerEvent.DOWN:d(t,"pressStyle");break;case e.PointerEvent.UP:p(t,"pressStyle")}};const E=e.UI.prototype;n(!1,"selectedStyle")(E,"selected"),n(!1,"disabledStyle")(E,"disabled"),s({})(E,"states"),n("")(E,"state"),e.dataType()(E,"normalStyle"),s()(E,"hoverStyle"),s()(E,"pressStyle"),s()(E,"focusStyle"),s()(E,"selectedStyle"),s()(E,"disabledStyle"),e.dataType(!1)(E,"button"),E.focus=function(t=!0){this.waitLeafer((()=>{let{focusData:e}=this.app.interaction;t?(e&&e.focus(!1),e=this):e=null,this.app.interaction.focusData=e,t?d(this,"focusStyle"):p(this,"focusStyle")}))},E.updateState=function(){e.State.updateStyle(this,void 0,"in")},exports.stateStyleType=s,exports.stateType=n;
1
+ "use strict";var t=require("@leafer-ui/draw"),e=require("@leafer-ui/core");function n(e,n){return t.decorateLeafAttr(e,(e=>t.attr({set(s){this.__setAttr(e,s),this.waitLeafer((()=>n?t.State.setStyleName(this,n,s):t.State.set(this,s)))}})))}function s(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),this.__layout.stateStyleChanged=!0}})))}function i(t,e){if(e&&!0!==e)return e;if(!t.button){let{parent:e}=t;for(let t=0;t<2;t++)if(e){if(e.button)return e;e=e.parent}}return null}function a(t,e){"object"!=typeof e&&(e=void 0),l(t,e,"in")}function o(t,e){const{normalStyle:n}=t;"object"!=typeof e&&(e=void 0),n&&(e||(e=n),l(t,e,"out"))}const r={};function l(t,n,s){const{normalStyle:i}=t;n||(n=r),n.scale&&(e.MathHelper.assignScale(n,n.scale),delete n.scale),n!==r&&e.State.canAnimate||(s=null);let a=!!s&&function(t,n,s){let i="in"===t?"transition":"transitionOut";"out"===t&&e.isNull(s[i])&&e.isNull(n[i])&&(i="transition");return e.isNull(n[i])?s[i]:n[i]}(s,n,t);const o=a?function(t,e){const n=d(e,t),s=t.animate();s&&d(n,t,s.fromStyle);return n}(t,n):void 0;e.State.canAnimate&&c(t)&&t.killAnimate("transition"),i&&t.set(i,"temp");const l=c(t);if(l){const{animation:e}=l;if(e){const i=t.animate(e,void 0,"animation",!0);Object.assign(l,i.endingStyle),"in"!==s||n.animation!==e?i.kill():a=!1,delete l.animation}t.normalStyle=u(l,t),t.set(l,"temp")}else t.normalStyle=void 0;if(a){const e=u(o,t);t.set(o,"temp"),t.animate([o,e],a,"transition",!0)}t.__layout.stateStyleChanged=!1}function c(t){let n;const s={},a=i(t),o=a?t.state||a.state:t.state,r=o&&t.states[o];r&&e.State.isState(o,t,a)&&(n=S(s,r));const l=s.selectedStyle||t.selectedStyle;if(l&&e.State.isSelected(t,a)&&(n=S(s,l)),e.State.isDisabled(t,a)){const e=s.disabledStyle||t.disabledStyle;e&&(n=S(s,e))}else{const i=s.focusStyle||t.focusStyle;i&&e.State.isFocus(t,a)&&(n=S(s,i));const o=s.hoverStyle||t.hoverStyle;o&&e.State.isHover(t,a)&&(n=S(s,o));const r=s.pressStyle||t.pressStyle;r&&e.State.isPress(t,a)&&(n=S(s,r))}return n?s:void 0}function u(t,n,s,i){const a=s?t:{},o=s||t;for(let t in o)i&&e.State.animateExcludes[t]||(a[t]=n[t]);return a}function d(t,e,n){return u(t,e,n,!0)}function S(t,e){return Object.assign(t,e),!0}function f(t,e){const n=t[e];n&&a(t,n),t.button&&h(t.children,e)}function y(t,e,n){n||(n=t.states[e]),a(t,n),t.button&&h(t.children,null,e)}function h(t,n,s){if(!t)return;let i,a;for(let o=0,r=t.length;o<r;o++){if(i=t[o],n){switch(a=!0,n){case"hoverStyle":e.State.isHover(i)&&(a=!1);break;case"pressStyle":e.State.isPress(i)&&(a=!1);break;case"focusStyle":e.State.isFocus(i)&&(a=!1)}a&&f(i,n)}else void 0!==s&&y(i,s);i.isBranch&&h(i.children,n,s)}}function v(t,e){const n=t[e];n&&o(t,n),t.button&&m(t.children,e)}function p(t,e,n){o(t,n),t.button&&m(t.children,null,e)}function m(t,e,n){if(!t)return;let s;for(let i=0,a=t.length;i<a;i++)s=t[i],e?v(s,e):void 0!==n&&p(s,n),s.isBranch&&m(s.children,e,n)}function b(t,e,n){let s;const a=e.leafer?e.leafer.interaction:null;if(a&&(s=a[t](e),!s&&n)){const o=i(e,n);o&&(s=a[t](o))}return s}function A(t,e,n){let s=e[t];if(!s&&n){const a=i(e,n);a&&(s=a[t])}return s}e.Plugin.add("state"),e.State.animateExcludes={animation:1,animationOut:1,transition:1,transitionOut:1,states:1,state:1,normalStyle:1,hoverStyle:1,pressStyle:1,focusStyle:1,selectedStyle:1,disabledStyle:1},e.State.isState=function(t,e,n){return function(t,e,n){let s=e.states[t];if(!s&&n){const a=i(e,n);a&&(s=a.states[t])}return!!s}(t,e,n)},e.State.isSelected=function(t,e){return A("selected",t,e)},e.State.isDisabled=function(t,e){return A("disabled",t,e)},e.State.isFocus=function(t,e){return b("isFocus",t,e)},e.State.isHover=function(t,e){return b("isHover",t,e)},e.State.isPress=function(t,e){return b("isPress",t,e)},e.State.isDrag=function(t,e){return b("isDrag",t,e)},e.State.setStyleName=function(t,e,n){n?y(t,e,t[e]):p(t,e,t[e])},e.State.set=function(t,e){const n=t.states[e];n?y(t,e,n):p(t,e,n)},e.State.getStyle=c,e.State.updateStyle=l,e.State.updateEventStyle=function(t,n){switch(n){case e.PointerEvent.ENTER:f(t,"hoverStyle");break;case e.PointerEvent.LEAVE:v(t,"hoverStyle");break;case e.PointerEvent.DOWN:f(t,"pressStyle");break;case e.PointerEvent.UP:v(t,"pressStyle")}};const U=e.UI.prototype;e.UI.addAttr("selected",!1,n,"selectedStyle"),e.UI.addAttr("disabled",!1,n,"disabledStyle"),e.UI.addAttr("states",{},s),e.UI.addAttr("state","",n),e.UI.addAttr("normalStyle",void 0,e.dataType),e.UI.addAttr("hoverStyle",void 0,s),e.UI.addAttr("pressStyle",void 0,s),e.UI.addAttr("focusStyle",void 0,s),e.UI.addAttr("selectedStyle",void 0,s),e.UI.addAttr("disabledStyle",void 0,s),e.UI.addAttr("button",!1,e.dataType),U.focus=function(t=!0){this.waitLeafer((()=>{let{focusData:e}=this.app.interaction;t?(e&&e.focus(!1),e=this):e=null,this.app.interaction.focusData=e,t?f(this,"focusStyle"):v(this,"focusStyle")}))},U.updateState=function(){e.State.updateStyle(this,void 0,"in")},exports.stateStyleType=s,exports.stateType=n;
2
2
  //# sourceMappingURL=state.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.min.cjs","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts","../../../../../../src/in/packages/state/src/event.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nstateType(false, 'selectedStyle')(ui, 'selected')\nstateType(false, 'disabledStyle')(ui, 'disabled')\n\nstateStyleType({})(ui, 'states')\nstateType('')(ui, 'state')\n\ndataType()(ui, 'normalStyle')\nstateStyleType()(ui, 'hoverStyle')\nstateStyleType()(ui, 'pressStyle')\nstateStyleType()(ui, 'focusStyle')\nstateStyleType()(ui, 'selectedStyle')\nstateStyleType()(ui, 'disabledStyle')\n\ndataType(false)(ui, 'button')\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}"],"names":["stateType","defaultValue","styleName","decorateLeafAttr","key","attr","set","value","this","__setAttr","waitLeafer","State","setStyleName","stateStyleType","__layout","stateStyleChanged","findParentButton","leaf","button","parent","i","setStyle","style","undefined","updateStyle","unsetStyle","normalStyle","emprtyStyle","type","scale","MathHelper","assignScale","canAnimate","transition","data","name","isNull","getTransition","fromStyle","filterAnimateStyle","animate","getFromStyle","getStyle","killAnimate","statesStyle","animation","Object","assign","endingStyle","kill","filterStyle","toStyle","exist","state","stateStyle","states","isState","selectedStyle","isSelected","isDisabled","disabledStyle","focusStyle","isFocus","hoverStyle","isHover","pressStyle","isPress","addStyle","useAnimateExcludes","to","forStyle","animateExcludes","setPointerState","stateName","setChildrenState","children","setState","update","len","length","isBranch","unsetPointerState","unsetChildrenState","unsetState","checkPointerState","fnName","find","interaction","leafer","parentButton","checkFixedState","attrName","Plugin","add","animationOut","transitionOut","checkState","isDrag","updateEventStyle","eventType","PointerEvent","ENTER","LEAVE","DOWN","UP","ui","UI","prototype","dataType","focus","focusData","app","updateState"],"mappings":"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"}
1
+ {"version":3,"file":"state.min.cjs","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts","../../../../../../src/in/packages/state/src/event.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nUI.addAttr('selected', false, stateType, 'selectedStyle')\nUI.addAttr('disabled', false, stateType, 'disabledStyle')\n\nUI.addAttr('states', {}, stateStyleType)\nUI.addAttr('state', '', stateType)\n\nUI.addAttr('normalStyle', undefined, dataType)\nUI.addAttr('hoverStyle', undefined, stateStyleType)\nUI.addAttr('pressStyle', undefined, stateStyleType)\nUI.addAttr('focusStyle', undefined, stateStyleType)\nUI.addAttr('selectedStyle', undefined, stateStyleType)\nUI.addAttr('disabledStyle', undefined, stateStyleType)\n\nUI.addAttr('button', false, dataType)\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}"],"names":["stateType","defaultValue","styleName","decorateLeafAttr","key","attr","set","value","this","__setAttr","waitLeafer","State","setStyleName","stateStyleType","__layout","stateStyleChanged","findParentButton","leaf","button","parent","i","setStyle","style","undefined","updateStyle","unsetStyle","normalStyle","emprtyStyle","type","scale","MathHelper","assignScale","canAnimate","transition","data","name","isNull","getTransition","fromStyle","filterAnimateStyle","animate","getFromStyle","getStyle","killAnimate","statesStyle","animation","Object","assign","endingStyle","kill","filterStyle","toStyle","exist","state","stateStyle","states","isState","selectedStyle","isSelected","isDisabled","disabledStyle","focusStyle","isFocus","hoverStyle","isHover","pressStyle","isPress","addStyle","useAnimateExcludes","to","forStyle","animateExcludes","setPointerState","stateName","setChildrenState","children","setState","update","len","length","isBranch","unsetPointerState","unsetChildrenState","unsetState","checkPointerState","fnName","find","interaction","leafer","parentButton","checkFixedState","attrName","Plugin","add","animationOut","transitionOut","checkState","isDrag","updateEventStyle","eventType","PointerEvent","ENTER","LEAVE","DOWN","UP","ui","UI","prototype","addAttr","dataType","focus","focusData","app","updateState"],"mappings":"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"}
package/dist/state.min.js CHANGED
@@ -1,2 +1,2 @@
1
- this.LeaferIN=this.LeaferIN||{},this.LeaferIN.state=function(t,e,n){"use strict";function s(t,n){return e.decorateLeafAttr(t,(t=>e.attr({set(s){this.__setAttr(t,s),this.waitLeafer((()=>n?e.State.setStyleName(this,n,s):e.State.set(this,s)))}})))}function i(t){return e.decorateLeafAttr(t,(t=>e.attr({set(e){this.__setAttr(t,e),this.__layout.stateStyleChanged=!0}})))}function a(t,e){if(e&&!0!==e)return e;if(!t.button){let{parent:e}=t;for(let t=0;t<2;t++)if(e){if(e.button)return e;e=e.parent}}return null}function o(t,e){"object"!=typeof e&&(e=void 0),c(t,e,"in")}function l(t,e){const{normalStyle:n}=t;"object"!=typeof e&&(e=void 0),n&&(e||(e=n),c(t,e,"out"))}const r={};function c(t,e,s){const{normalStyle:i}=t;e||(e=r),e.scale&&(n.MathHelper.assignScale(e,e.scale),delete e.scale),e!==r&&n.State.canAnimate||(s=null);let a=!!s&&function(t,e,s){let i="in"===t?"transition":"transitionOut";"out"===t&&n.isNull(s[i])&&n.isNull(e[i])&&(i="transition");return n.isNull(e[i])?s[i]:e[i]}(s,e,t);const o=a?function(t,e){const n=f(e,t),s=t.animate();s&&f(n,t,s.fromStyle);return n}(t,e):void 0;n.State.canAnimate&&u(t)&&t.killAnimate("transition"),i&&t.set(i,"temp");const l=u(t);if(l){const{animation:n}=l;if(n){const i=t.animate(n,void 0,"animation",!0);Object.assign(l,i.endingStyle),"in"!==s||e.animation!==n?i.kill():a=!1,delete l.animation}t.normalStyle=S(l,t),t.set(l,"temp")}else t.normalStyle=void 0;if(a){const e=S(o,t);t.set(o,"temp"),t.animate([o,e],a,"transition",!0)}t.__layout.stateStyleChanged=!1}function u(t){let e;const s={},i=a(t),o=i?t.state||i.state:t.state,l=o&&t.states[o];l&&n.State.isState(o,t,i)&&(e=d(s,l));const r=s.selectedStyle||t.selectedStyle;if(r&&n.State.isSelected(t,i)&&(e=d(s,r)),n.State.isDisabled(t,i)){const n=s.disabledStyle||t.disabledStyle;n&&(e=d(s,n))}else{const a=s.focusStyle||t.focusStyle;a&&n.State.isFocus(t,i)&&(e=d(s,a));const o=s.hoverStyle||t.hoverStyle;o&&n.State.isHover(t,i)&&(e=d(s,o));const l=s.pressStyle||t.pressStyle;l&&n.State.isPress(t,i)&&(e=d(s,l))}return e?s:void 0}function S(t,e,s,i){const a=s?t:{},o=s||t;for(let t in o)i&&n.State.animateExcludes[t]||(a[t]=e[t]);return a}function f(t,e,n){return S(t,e,n,!0)}function d(t,e){return Object.assign(t,e),!0}function y(t,e){const n=t[e];n&&o(t,n),t.button&&p(t.children,e)}function h(t,e,n){n||(n=t.states[e]),o(t,n),t.button&&p(t.children,null,e)}function p(t,e,s){if(!t)return;let i,a;for(let o=0,l=t.length;o<l;o++){if(i=t[o],e){switch(a=!0,e){case"hoverStyle":n.State.isHover(i)&&(a=!1);break;case"pressStyle":n.State.isPress(i)&&(a=!1);break;case"focusStyle":n.State.isFocus(i)&&(a=!1)}a&&y(i,e)}else void 0!==s&&h(i,s);i.isBranch&&p(i.children,e,s)}}function m(t,e){const n=t[e];n&&l(t,n),t.button&&v(t.children,e)}function b(t,e,n){l(t,n),t.button&&v(t.children,null,e)}function v(t,e,n){if(!t)return;let s;for(let i=0,a=t.length;i<a;i++)s=t[i],e?m(s,e):void 0!==n&&b(s,n),s.isBranch&&v(s.children,e,n)}function g(t,e,n){let s;const i=e.leafer?e.leafer.interaction:null;if(i&&(s=i[t](e),!s&&n)){const o=a(e,n);o&&(s=i[t](o))}return s}function E(t,e,n){let s=e[t];if(!s&&n){const i=a(e,n);i&&(s=i[t])}return s}n.Plugin.add("state"),n.State.animateExcludes={animation:1,animationOut:1,transition:1,transitionOut:1,states:1,state:1,normalStyle:1,hoverStyle:1,pressStyle:1,focusStyle:1,selectedStyle:1,disabledStyle:1},n.State.isState=function(t,e,n){return function(t,e,n){let s=e.states[t];if(!s&&n){const i=a(e,n);i&&(s=i.states[t])}return!!s}(t,e,n)},n.State.isSelected=function(t,e){return E("selected",t,e)},n.State.isDisabled=function(t,e){return E("disabled",t,e)},n.State.isFocus=function(t,e){return g("isFocus",t,e)},n.State.isHover=function(t,e){return g("isHover",t,e)},n.State.isPress=function(t,e){return g("isPress",t,e)},n.State.isDrag=function(t,e){return g("isDrag",t,e)},n.State.setStyleName=function(t,e,n){n?h(t,e,t[e]):b(t,e,t[e])},n.State.set=function(t,e){const n=t.states[e];n?h(t,e,n):b(t,e,n)},n.State.getStyle=u,n.State.updateStyle=c,n.State.updateEventStyle=function(t,e){switch(e){case n.PointerEvent.ENTER:y(t,"hoverStyle");break;case n.PointerEvent.LEAVE:m(t,"hoverStyle");break;case n.PointerEvent.DOWN:y(t,"pressStyle");break;case n.PointerEvent.UP:m(t,"pressStyle")}};const L=n.UI.prototype;return s(!1,"selectedStyle")(L,"selected"),s(!1,"disabledStyle")(L,"disabled"),i({})(L,"states"),s("")(L,"state"),n.dataType()(L,"normalStyle"),i()(L,"hoverStyle"),i()(L,"pressStyle"),i()(L,"focusStyle"),i()(L,"selectedStyle"),i()(L,"disabledStyle"),n.dataType(!1)(L,"button"),L.focus=function(t=!0){this.waitLeafer((()=>{let{focusData:e}=this.app.interaction;t?(e&&e.focus(!1),e=this):e=null,this.app.interaction.focusData=e,t?y(this,"focusStyle"):m(this,"focusStyle")}))},L.updateState=function(){n.State.updateStyle(this,void 0,"in")},t.stateStyleType=i,t.stateType=s,t}({},LeaferUI,LeaferUI);
1
+ this.LeaferIN=this.LeaferIN||{},this.LeaferIN.state=function(t,e,n){"use strict";function s(t,n){return e.decorateLeafAttr(t,(t=>e.attr({set(s){this.__setAttr(t,s),this.waitLeafer((()=>n?e.State.setStyleName(this,n,s):e.State.set(this,s)))}})))}function i(t){return e.decorateLeafAttr(t,(t=>e.attr({set(e){this.__setAttr(t,e),this.__layout.stateStyleChanged=!0}})))}function a(t,e){if(e&&!0!==e)return e;if(!t.button){let{parent:e}=t;for(let t=0;t<2;t++)if(e){if(e.button)return e;e=e.parent}}return null}function o(t,e){"object"!=typeof e&&(e=void 0),c(t,e,"in")}function r(t,e){const{normalStyle:n}=t;"object"!=typeof e&&(e=void 0),n&&(e||(e=n),c(t,e,"out"))}const l={};function c(t,e,s){const{normalStyle:i}=t;e||(e=l),e.scale&&(n.MathHelper.assignScale(e,e.scale),delete e.scale),e!==l&&n.State.canAnimate||(s=null);let a=!!s&&function(t,e,s){let i="in"===t?"transition":"transitionOut";"out"===t&&n.isNull(s[i])&&n.isNull(e[i])&&(i="transition");return n.isNull(e[i])?s[i]:e[i]}(s,e,t);const o=a?function(t,e){const n=S(e,t),s=t.animate();s&&S(n,t,s.fromStyle);return n}(t,e):void 0;n.State.canAnimate&&u(t)&&t.killAnimate("transition"),i&&t.set(i,"temp");const r=u(t);if(r){const{animation:n}=r;if(n){const i=t.animate(n,void 0,"animation",!0);Object.assign(r,i.endingStyle),"in"!==s||e.animation!==n?i.kill():a=!1,delete r.animation}t.normalStyle=d(r,t),t.set(r,"temp")}else t.normalStyle=void 0;if(a){const e=d(o,t);t.set(o,"temp"),t.animate([o,e],a,"transition",!0)}t.__layout.stateStyleChanged=!1}function u(t){let e;const s={},i=a(t),o=i?t.state||i.state:t.state,r=o&&t.states[o];r&&n.State.isState(o,t,i)&&(e=f(s,r));const l=s.selectedStyle||t.selectedStyle;if(l&&n.State.isSelected(t,i)&&(e=f(s,l)),n.State.isDisabled(t,i)){const n=s.disabledStyle||t.disabledStyle;n&&(e=f(s,n))}else{const a=s.focusStyle||t.focusStyle;a&&n.State.isFocus(t,i)&&(e=f(s,a));const o=s.hoverStyle||t.hoverStyle;o&&n.State.isHover(t,i)&&(e=f(s,o));const r=s.pressStyle||t.pressStyle;r&&n.State.isPress(t,i)&&(e=f(s,r))}return e?s:void 0}function d(t,e,s,i){const a=s?t:{},o=s||t;for(let t in o)i&&n.State.animateExcludes[t]||(a[t]=e[t]);return a}function S(t,e,n){return d(t,e,n,!0)}function f(t,e){return Object.assign(t,e),!0}function y(t,e){const n=t[e];n&&o(t,n),t.button&&v(t.children,e)}function h(t,e,n){n||(n=t.states[e]),o(t,n),t.button&&v(t.children,null,e)}function v(t,e,s){if(!t)return;let i,a;for(let o=0,r=t.length;o<r;o++){if(i=t[o],e){switch(a=!0,e){case"hoverStyle":n.State.isHover(i)&&(a=!1);break;case"pressStyle":n.State.isPress(i)&&(a=!1);break;case"focusStyle":n.State.isFocus(i)&&(a=!1)}a&&y(i,e)}else void 0!==s&&h(i,s);i.isBranch&&v(i.children,e,s)}}function p(t,e){const n=t[e];n&&r(t,n),t.button&&b(t.children,e)}function m(t,e,n){r(t,n),t.button&&b(t.children,null,e)}function b(t,e,n){if(!t)return;let s;for(let i=0,a=t.length;i<a;i++)s=t[i],e?p(s,e):void 0!==n&&m(s,n),s.isBranch&&b(s.children,e,n)}function A(t,e,n){let s;const i=e.leafer?e.leafer.interaction:null;if(i&&(s=i[t](e),!s&&n)){const o=a(e,n);o&&(s=i[t](o))}return s}function I(t,e,n){let s=e[t];if(!s&&n){const i=a(e,n);i&&(s=i[t])}return s}n.Plugin.add("state"),n.State.animateExcludes={animation:1,animationOut:1,transition:1,transitionOut:1,states:1,state:1,normalStyle:1,hoverStyle:1,pressStyle:1,focusStyle:1,selectedStyle:1,disabledStyle:1},n.State.isState=function(t,e,n){return function(t,e,n){let s=e.states[t];if(!s&&n){const i=a(e,n);i&&(s=i.states[t])}return!!s}(t,e,n)},n.State.isSelected=function(t,e){return I("selected",t,e)},n.State.isDisabled=function(t,e){return I("disabled",t,e)},n.State.isFocus=function(t,e){return A("isFocus",t,e)},n.State.isHover=function(t,e){return A("isHover",t,e)},n.State.isPress=function(t,e){return A("isPress",t,e)},n.State.isDrag=function(t,e){return A("isDrag",t,e)},n.State.setStyleName=function(t,e,n){n?h(t,e,t[e]):m(t,e,t[e])},n.State.set=function(t,e){const n=t.states[e];n?h(t,e,n):m(t,e,n)},n.State.getStyle=u,n.State.updateStyle=c,n.State.updateEventStyle=function(t,e){switch(e){case n.PointerEvent.ENTER:y(t,"hoverStyle");break;case n.PointerEvent.LEAVE:p(t,"hoverStyle");break;case n.PointerEvent.DOWN:y(t,"pressStyle");break;case n.PointerEvent.UP:p(t,"pressStyle")}};const U=n.UI.prototype;return n.UI.addAttr("selected",!1,s,"selectedStyle"),n.UI.addAttr("disabled",!1,s,"disabledStyle"),n.UI.addAttr("states",{},i),n.UI.addAttr("state","",s),n.UI.addAttr("normalStyle",void 0,n.dataType),n.UI.addAttr("hoverStyle",void 0,i),n.UI.addAttr("pressStyle",void 0,i),n.UI.addAttr("focusStyle",void 0,i),n.UI.addAttr("selectedStyle",void 0,i),n.UI.addAttr("disabledStyle",void 0,i),n.UI.addAttr("button",!1,n.dataType),U.focus=function(t=!0){this.waitLeafer((()=>{let{focusData:e}=this.app.interaction;t?(e&&e.focus(!1),e=this):e=null,this.app.interaction.focusData=e,t?y(this,"focusStyle"):p(this,"focusStyle")}))},U.updateState=function(){n.State.updateStyle(this,void 0,"in")},t.stateStyleType=i,t.stateType=s,t}({},LeaferUI,LeaferUI);
2
2
  //# sourceMappingURL=state.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.min.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts","../../../../../../src/in/packages/state/src/event.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nstateType(false, 'selectedStyle')(ui, 'selected')\nstateType(false, 'disabledStyle')(ui, 'disabled')\n\nstateStyleType({})(ui, 'states')\nstateType('')(ui, 'state')\n\ndataType()(ui, 'normalStyle')\nstateStyleType()(ui, 'hoverStyle')\nstateStyleType()(ui, 'pressStyle')\nstateStyleType()(ui, 'focusStyle')\nstateStyleType()(ui, 'selectedStyle')\nstateStyleType()(ui, 'disabledStyle')\n\ndataType(false)(ui, 'button')\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}"],"names":["stateType","defaultValue","styleName","decorateLeafAttr","key","attr","set","value","this","__setAttr","waitLeafer","State","setStyleName","stateStyleType","__layout","stateStyleChanged","findParentButton","leaf","button","parent","i","setStyle","style","undefined","updateStyle","unsetStyle","normalStyle","emprtyStyle","type","scale","MathHelper","assignScale","canAnimate","transition","data","name","isNull","getTransition","fromStyle","filterAnimateStyle","animate","getFromStyle","getStyle","killAnimate","statesStyle","animation","Object","assign","endingStyle","kill","filterStyle","toStyle","exist","state","stateStyle","states","isState","selectedStyle","isSelected","isDisabled","disabledStyle","focusStyle","isFocus","hoverStyle","isHover","pressStyle","isPress","addStyle","useAnimateExcludes","to","forStyle","animateExcludes","setPointerState","stateName","setChildrenState","children","setState","update","len","length","isBranch","unsetPointerState","unsetChildrenState","unsetState","checkPointerState","fnName","find","interaction","leafer","parentButton","checkFixedState","attrName","Plugin","add","core","animationOut","transitionOut","checkState","isDrag","updateEventStyle","eventType","PointerEvent","ENTER","LEAVE","DOWN","UP","ui","UI","prototype","dataType","focus","focusData","app","updateState"],"mappings":"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"}
1
+ {"version":3,"file":"state.min.js","sources":["../../../../../../src/in/packages/state/src/decorator.ts","../../../../../../src/in/packages/state/src/helper.ts","../../../../../../src/in/packages/state/src/style.ts","../../../../../../src/in/packages/state/src/set.ts","../../../../../../src/in/packages/state/src/unset.ts","../../../../../../src/in/packages/state/src/check.ts","../../../../../../src/in/packages/state/src/index.ts","../../../../../../src/in/packages/state/src/event.ts"],"sourcesContent":["import { IValue } from '@leafer-ui/interface'\nimport { decorateLeafAttr, attr, State } from '@leafer-ui/draw'\n\nexport function stateType(defaultValue?: IValue, styleName?: string) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.waitLeafer(() => styleName ? State.setStyleName(this, styleName, value) : State.set(this, value))\n }\n }))\n}\n\nexport function stateStyleType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: any) {\n this.__setAttr(key, value)\n this.__layout.stateStyleChanged = true\n }\n }))\n}","import { IUI } from '@leafer-ui/interface'\n\n\nexport function findParentButton(leaf: IUI, button?: IUI | boolean): IUI {\n if (button && button !== true) return button\n if (!leaf.button) {\n let { parent } = leaf\n for (let i = 0; i < 2; i++) {\n if (parent) {\n if (parent.button) return parent\n parent = parent.parent\n }\n }\n }\n return null\n}","import { IUI, IObject, IUIInputData, IStateStyle, IScaleData, ITransition } from '@leafer-ui/interface'\nimport { State, MathHelper, isNull } from '@leafer-ui/core'\n\nimport { findParentButton } from './helper'\n\n\nexport function setStyle(leaf: IUI, style: IStateStyle): void {\n if (typeof style !== 'object') style = undefined\n updateStyle(leaf, style, 'in')\n}\n\nexport function unsetStyle(leaf: IUI, style?: IStateStyle): void {\n const { normalStyle } = leaf\n if (typeof style !== 'object') style = undefined\n if (normalStyle) {\n if (!style) style = normalStyle\n updateStyle(leaf, style, 'out')\n }\n}\n\nconst emprtyStyle = {}\n\nexport function updateStyle(leaf: IUI, style?: IStateStyle, type?: 'in' | 'out'): void {\n const { normalStyle } = leaf\n\n if (!style) style = emprtyStyle\n\n if (style.scale) {\n MathHelper.assignScale(style as IScaleData, style.scale)\n delete style.scale\n }\n\n if (style === emprtyStyle || !State.canAnimate) type = null\n let transition = type ? getTransition(type, style, leaf) : false\n const fromStyle = transition ? getFromStyle(leaf, style) : undefined\n\n // 回到正常状态\n const nextStyle = State.canAnimate && getStyle(leaf)\n if (nextStyle) leaf.killAnimate('transition')\n if (normalStyle) leaf.set(normalStyle, 'temp')\n\n\n const statesStyle = getStyle(leaf) // 必须在回到正常状态之后获取\n if (statesStyle) {\n\n const { animation } = statesStyle\n if (animation) {\n const animate = leaf.animate(animation, undefined, 'animation', true)\n Object.assign(statesStyle, animate.endingStyle) // 加上最终的动画样式\n\n if (type !== 'in' || style.animation !== animation) animate.kill()\n else transition = false\n\n delete statesStyle.animation\n }\n\n\n leaf.normalStyle = filterStyle(statesStyle, leaf)\n leaf.set(statesStyle, 'temp')\n } else {\n leaf.normalStyle = undefined\n }\n\n if (transition) {\n const toStyle = filterStyle(fromStyle, leaf)\n leaf.set(fromStyle, 'temp')\n leaf.animate([fromStyle, toStyle], transition, 'transition', true)\n }\n\n leaf.__layout.stateStyleChanged = false\n}\n\nexport function getStyle(leaf: IUI): IStateStyle {\n\n // 从低到高依次覆盖: states < selected < focus < hover < press < disabled\n\n let exist: boolean\n const style: IUIInputData = {}, button = findParentButton(leaf)\n const state = button ? (leaf.state || button.state) : leaf.state\n\n const stateStyle = state && leaf.states[state]\n if (stateStyle && State.isState(state, leaf, button)) exist = assign(style, stateStyle)\n\n const selectedStyle = style.selectedStyle || leaf.selectedStyle\n if (selectedStyle && State.isSelected(leaf, button)) exist = assign(style, selectedStyle)\n\n if (State.isDisabled(leaf, button)) {\n\n const disabledStyle = style.disabledStyle || leaf.disabledStyle\n if (disabledStyle) exist = assign(style, disabledStyle)\n\n } else {\n\n const focusStyle = style.focusStyle || leaf.focusStyle\n if (focusStyle && State.isFocus(leaf, button)) exist = assign(style, focusStyle)\n\n const hoverStyle = style.hoverStyle || leaf.hoverStyle\n if (hoverStyle && State.isHover(leaf, button)) exist = assign(style, hoverStyle)\n\n const pressStyle = style.pressStyle || leaf.pressStyle\n if (pressStyle && State.isPress(leaf, button)) exist = assign(style, pressStyle)\n\n }\n\n return exist ? style : undefined\n}\n\n\nfunction filterStyle(style: IObject, data: IObject, addStyle?: IObject, useAnimateExcludes?: boolean): IObject {\n const to: IObject = addStyle ? style : {}, forStyle = addStyle || style\n for (let key in forStyle) {\n if (useAnimateExcludes) {\n if (!State.animateExcludes[key]) to[key] = data[key]\n } else to[key] = data[key]\n }\n return to\n}\n\nfunction filterAnimateStyle(style: IObject, data: IObject, addStyle?: IObject): IObject {\n return filterStyle(style, data, addStyle, true)\n}\n\nfunction getFromStyle(leaf: IUI, style: IObject): IObject {\n const fromStyle = filterAnimateStyle(style, leaf), animate = leaf.animate()\n if (animate) filterAnimateStyle(fromStyle, leaf, animate.fromStyle)\n return fromStyle\n}\n\nfunction getTransition(type: 'in' | 'out', style: IStateStyle, data: IUI): ITransition {\n let name: 'transition' | 'transitionOut' = type === 'in' ? 'transition' : 'transitionOut'\n if (type === 'out' && isNull(data[name]) && isNull(style[name])) name = 'transition'\n return isNull(style[name]) ? data[name] : style[name]\n}\n\nfunction assign(style: IStateStyle, stateStyle: IStateStyle): boolean {\n Object.assign(style, stateStyle)\n return true\n}","import { IUI, IStateStyle, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State } from '@leafer-ui/core'\n\nimport { setStyle } from './style'\n\n\nexport function setPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) setStyle(leaf, style)\n if (leaf.button) setChildrenState(leaf.children, stateName)\n}\n\nexport function setState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n if (!stateStyle) stateStyle = leaf.states[stateName]\n setStyle(leaf, stateStyle)\n if (leaf.button) setChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction setChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI, update: boolean\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) {\n\n update = true\n switch (stateType) {\n case 'hoverStyle':\n if (State.isHover(leaf)) update = false\n break\n case 'pressStyle':\n if (State.isPress(leaf)) update = false\n break\n case 'focusStyle':\n if (State.isFocus(leaf)) update = false\n }\n if (update) setPointerState(leaf, stateType)\n\n } else if (stateName !== undefined) setState(leaf, stateName)\n\n if (leaf.isBranch) setChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateStyleType, IStateStyle, IStateName } from '@leafer-ui/interface'\n\nimport { unsetStyle } from './style'\n\n\nexport function unsetPointerState(leaf: IUI, stateName: IStateStyleType): void {\n const style = leaf[stateName]\n if (style) unsetStyle(leaf, style)\n if (leaf.button) unsetChildrenState(leaf.children, stateName)\n}\n\nexport function unsetState(leaf: IUI, stateName: string, stateStyle?: IStateStyle): void {\n unsetStyle(leaf, stateStyle)\n if (leaf.button) unsetChildrenState(leaf.children, null, stateName)\n}\n\n\nfunction unsetChildrenState(children: IUI[], stateType: IStateStyleType, stateName?: IStateName): void {\n if (!children) return\n\n let leaf: IUI\n for (let i = 0, len = children.length; i < len; i++) {\n leaf = children[i]\n if (stateType) unsetPointerState(leaf, stateType)\n else if (stateName !== undefined) unsetState(leaf, stateName)\n\n if (leaf.isBranch) unsetChildrenState(leaf.children, stateType, stateName)\n }\n}","import { IUI, IStateName, } from '@leafer-ui/interface'\n\nimport { findParentButton } from './helper'\n\n\nexport function checkPointerState(fnName: 'isHover' | 'isPress' | 'isFocus' | 'isDrag', leaf: IUI, button?: IUI | boolean): boolean {\n let find: boolean\n const interaction = leaf.leafer ? leaf.leafer.interaction : null\n if (interaction) {\n find = interaction[fnName](leaf)\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = interaction[fnName](parentButton)\n }\n }\n return find\n}\n\nexport function checkFixedState(attrName: 'selected' | 'disabled', leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf[attrName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton[attrName]\n }\n return find\n}\n\nexport function checkState(stateName: IStateName, leaf: IUI, button?: IUI | boolean): boolean {\n let find = leaf.states[stateName]\n if (!find && button) {\n const parentButton = findParentButton(leaf, button)\n if (parentButton) find = parentButton.states[stateName]\n }\n return !!find\n}\n","export { stateType, stateStyleType } from './decorator'\n\nimport { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'\nimport { State, UI, dataType, Plugin } from '@leafer-ui/core'\n\nimport { setPointerState, setState } from './set'\nimport { unsetPointerState, unsetState } from './unset'\nimport { updateEventStyle } from './event'\nimport { checkPointerState, checkFixedState, checkState } from './check'\nimport { getStyle, updateStyle } from './style'\nimport { stateType, stateStyleType } from './decorator'\n\n\nPlugin.add('state')\n\n\nState.animateExcludes = {\n animation: 1,\n animationOut: 1,\n\n transition: 1,\n transitionOut: 1,\n\n states: 1,\n state: 1,\n\n normalStyle: 1,\n hoverStyle: 1,\n pressStyle: 1,\n focusStyle: 1,\n selectedStyle: 1,\n disabledStyle: 1\n}\n\n\nState.isState = function (state: IStateName, leaf: IUI, button?: IUI | boolean): boolean { return checkState(state, leaf, button) }\nState.isSelected = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('selected', leaf, button) }\nState.isDisabled = function (leaf: IUI, button?: IUI | boolean): boolean { return checkFixedState('disabled', leaf, button) }\n\nState.isFocus = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isFocus', leaf, button) }\nState.isHover = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isHover', leaf, button) }\nState.isPress = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isPress', leaf, button) }\n\nState.isDrag = function (leaf: IUI, button?: IUI | boolean): boolean { return checkPointerState('isDrag', leaf, button) }\n\nState.setStyleName = function (leaf: IUI, stateType: IStateStyleType, value: boolean): void { value ? setState(leaf, stateType, leaf[stateType]) : unsetState(leaf, stateType, leaf[stateType]) }\nState.set = function (leaf: IUI, stateName: string): void { const style = leaf.states[stateName]; style ? setState(leaf, stateName, style) : unsetState(leaf, stateName, style) }\n\nState.getStyle = getStyle\nState.updateStyle = updateStyle\nState.updateEventStyle = updateEventStyle\n\n\nconst ui = UI.prototype\n\n// addAttr\nUI.addAttr('selected', false, stateType, 'selectedStyle')\nUI.addAttr('disabled', false, stateType, 'disabledStyle')\n\nUI.addAttr('states', {}, stateStyleType)\nUI.addAttr('state', '', stateType)\n\nUI.addAttr('normalStyle', undefined, dataType)\nUI.addAttr('hoverStyle', undefined, stateStyleType)\nUI.addAttr('pressStyle', undefined, stateStyleType)\nUI.addAttr('focusStyle', undefined, stateStyleType)\nUI.addAttr('selectedStyle', undefined, stateStyleType)\nUI.addAttr('disabledStyle', undefined, stateStyleType)\n\nUI.addAttr('button', false, dataType)\n\nui.focus = function (value: boolean = true): void {\n this.waitLeafer(() => {\n let { focusData } = this.app.interaction\n if (value) {\n if (focusData) focusData.focus(false)\n focusData = this\n } else focusData = null\n this.app.interaction.focusData = focusData\n value ? setPointerState(this, 'focusStyle') : unsetPointerState(this, 'focusStyle')\n })\n}\n\nui.updateState = function (): void {\n State.updateStyle(this, undefined, 'in')\n}","import { IUI } from '@leafer-ui/interface'\nimport { PointerEvent } from '@leafer-ui/core'\n\nimport { setPointerState } from './set'\nimport { unsetPointerState } from './unset'\n\n\nexport function updateEventStyle(leaf: IUI, eventType: string): void {\n switch (eventType) {\n case PointerEvent.ENTER:\n setPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.LEAVE:\n unsetPointerState(leaf, 'hoverStyle')\n break\n case PointerEvent.DOWN:\n setPointerState(leaf, 'pressStyle')\n break\n case PointerEvent.UP:\n unsetPointerState(leaf, 'pressStyle')\n break\n }\n}"],"names":["stateType","defaultValue","styleName","decorateLeafAttr","key","attr","set","value","this","__setAttr","waitLeafer","State","setStyleName","stateStyleType","__layout","stateStyleChanged","findParentButton","leaf","button","parent","i","setStyle","style","undefined","updateStyle","unsetStyle","normalStyle","emprtyStyle","type","scale","MathHelper","assignScale","canAnimate","transition","data","name","isNull","getTransition","fromStyle","filterAnimateStyle","animate","getFromStyle","getStyle","killAnimate","statesStyle","animation","Object","assign","endingStyle","kill","filterStyle","toStyle","exist","state","stateStyle","states","isState","selectedStyle","isSelected","isDisabled","disabledStyle","focusStyle","isFocus","hoverStyle","isHover","pressStyle","isPress","addStyle","useAnimateExcludes","to","forStyle","animateExcludes","setPointerState","stateName","setChildrenState","children","setState","update","len","length","isBranch","unsetPointerState","unsetChildrenState","unsetState","checkPointerState","fnName","find","interaction","leafer","parentButton","checkFixedState","attrName","Plugin","add","core","animationOut","transitionOut","checkState","isDrag","updateEventStyle","eventType","PointerEvent","ENTER","LEAVE","DOWN","UP","ui","UI","prototype","addAttr","dataType","focus","focusData","app","updateState"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-in/state",
3
- "version": "1.4.2",
3
+ "version": "1.5.1",
4
4
  "description": "@leafer-in/state",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -34,8 +34,8 @@
34
34
  "leaferjs"
35
35
  ],
36
36
  "peerDependencies": {
37
- "@leafer-ui/core": "^1.4.2",
38
- "@leafer-ui/interface": "^1.4.2",
39
- "@leafer-in/interface": "^1.4.2"
37
+ "@leafer-ui/core": "^1.5.1",
38
+ "@leafer-ui/interface": "^1.5.1",
39
+ "@leafer-in/interface": "^1.5.1"
40
40
  }
41
41
  }
package/src/index.ts CHANGED
@@ -54,20 +54,20 @@ State.updateEventStyle = updateEventStyle
54
54
  const ui = UI.prototype
55
55
 
56
56
  // addAttr
57
- stateType(false, 'selectedStyle')(ui, 'selected')
58
- stateType(false, 'disabledStyle')(ui, 'disabled')
57
+ UI.addAttr('selected', false, stateType, 'selectedStyle')
58
+ UI.addAttr('disabled', false, stateType, 'disabledStyle')
59
59
 
60
- stateStyleType({})(ui, 'states')
61
- stateType('')(ui, 'state')
60
+ UI.addAttr('states', {}, stateStyleType)
61
+ UI.addAttr('state', '', stateType)
62
62
 
63
- dataType()(ui, 'normalStyle')
64
- stateStyleType()(ui, 'hoverStyle')
65
- stateStyleType()(ui, 'pressStyle')
66
- stateStyleType()(ui, 'focusStyle')
67
- stateStyleType()(ui, 'selectedStyle')
68
- stateStyleType()(ui, 'disabledStyle')
63
+ UI.addAttr('normalStyle', undefined, dataType)
64
+ UI.addAttr('hoverStyle', undefined, stateStyleType)
65
+ UI.addAttr('pressStyle', undefined, stateStyleType)
66
+ UI.addAttr('focusStyle', undefined, stateStyleType)
67
+ UI.addAttr('selectedStyle', undefined, stateStyleType)
68
+ UI.addAttr('disabledStyle', undefined, stateStyleType)
69
69
 
70
- dataType(false)(ui, 'button')
70
+ UI.addAttr('button', false, dataType)
71
71
 
72
72
  ui.focus = function (value: boolean = true): void {
73
73
  this.waitLeafer(() => {