@leafer-in/state 1.1.1 → 1.2.0

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
@@ -272,6 +272,7 @@ function checkState(stateName, leaf, button) {
272
272
  return !!find;
273
273
  }
274
274
 
275
+ core.Plugin.add('state');
275
276
  core.State.animateExcludes = {
276
277
  animation: 1,
277
278
  animationOut: 1,
package/dist/state.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { decorateLeafAttr, attr, State } from '@leafer-ui/draw';
2
- import { MathHelper, State as State$1, isNull, PointerEvent, UI, dataType } from '@leafer-ui/core';
2
+ import { MathHelper, State as State$1, isNull, PointerEvent, Plugin, UI, dataType } from '@leafer-ui/core';
3
3
 
4
4
  function stateType(defaultValue, styleName) {
5
5
  return decorateLeafAttr(defaultValue, (key) => attr({
@@ -270,6 +270,7 @@ function checkState(stateName, leaf, button) {
270
270
  return !!find;
271
271
  }
272
272
 
273
+ Plugin.add('state');
273
274
  State$1.animateExcludes = {
274
275
  animation: 1,
275
276
  animationOut: 1,
@@ -1 +1 @@
1
- import{decorateLeafAttr as t,attr as e,State as n}from"@leafer-ui/draw";import{MathHelper as s,State as i,isNull as o,PointerEvent as l,UI as r,dataType as a}from"@leafer-ui/core";function c(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 u(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),h(t,e,"in")}function y(t,e){const{normalStyle:n}=t;"object"!=typeof e&&(e=void 0),n&&(e||(e=n),h(t,e,"out"))}const d={};function h(t,e,n){const{normalStyle:l}=t;e||(e=d),e.scale&&(s.assignScale(e,e.scale),delete e.scale),e!==d&&i.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 a=r?function(t,e){const n=b(e,t),s=t.animate();s&&b(n,t,s.fromStyle);return n}(t,e):void 0;t.killAnimate("transition"),l&&t.set(l,"temp");const c=m(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=p(c,t),t.set(c,"temp")}else t.normalStyle=void 0;if(r){const e=p(a,t);t.set(a,"temp"),t.animate([a,e],r,"transition",!0)}t.__layout.stateStyleChanged=!1}function m(t){let e;const n={},{state:s}=t,o=f(t),l=s&&t.states[s];l&&i.isState(s,t,o)&&(e=v(n,l));const r=n.selectedStyle||t.selectedStyle;if(r&&i.isSelected(t,o)&&(e=v(n,r)),i.isDisabled(t,o)){const s=n.disabledStyle||t.disabledStyle;s&&(e=v(n,s))}else{const s=n.focusStyle||t.focusStyle;s&&i.isFocus(t,o)&&(e=v(n,s));const l=n.hoverStyle||t.hoverStyle;l&&i.isHover(t,o)&&(e=v(n,l));const r=n.pressStyle||t.pressStyle;r&&i.isPress(t,o)&&(e=v(n,r))}return e?n:void 0}function p(t,e,n,s){const o=n?t:{},l=n||t;for(let t in l)s&&i.animateExcludes[t]||(o[t]=e[t]);return o}function b(t,e,n){return p(t,e,n,!0)}function v(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 s,o;for(let l=0,r=t.length;l<r;l++){if(s=t[l],e){switch(o=!0,e){case"hoverStyle":i.isHover(s)&&(o=!1);break;case"pressStyle":i.isPress(s)&&(o=!1);break;case"focusStyle":i.isFocus(s)&&(o=!1)}o&&g(s,e)}else n&&_(s,n);s.isBranch&&k(s.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):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 A(t,e,n){let s=e[t];if(!s&&n){const i=f(e,n);i&&(s=i[t])}return s}i.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},i.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)},i.isSelected=function(t,e){return A("selected",t,e)},i.isDisabled=function(t,e){return A("disabled",t,e)},i.isFocus=function(t,e){return w("isFocus",t,e)},i.isHover=function(t,e){return w("isHover",t,e)},i.isPress=function(t,e){return w("isPress",t,e)},i.isDrag=function(t,e){return w("isDrag",t,e)},i.setStyleName=function(t,e,n){n?_(t,e,t[e]):E(t,e,t[e])},i.set=function(t,e){const n=t.states[e];n?_(t,e,n):E(t,e,n)},i.getStyle=m,i.updateStyle=h,i.updateEventStyle=function(t,e){switch(e){case l.ENTER:g(t,"hoverStyle");break;case l.LEAVE:D(t,"hoverStyle");break;case l.DOWN:g(t,"pressStyle");break;case l.UP:D(t,"pressStyle")}};const P=r.prototype;c(!1,"selectedStyle")(P,"selected"),c(!1,"disabledStyle")(P,"disabled"),u({})(P,"states"),c("")(P,"state"),a()(P,"normalStyle"),u()(P,"hoverStyle"),u()(P,"pressStyle"),u()(P,"focusStyle"),u()(P,"selectedStyle"),u()(P,"disabledStyle"),a(!1)(P,"button"),P.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")}))},P.updateState=function(){i.updateStyle(this,void 0,"in")};export{u as stateStyleType,c as stateType};
1
+ import{decorateLeafAttr as t,attr as e,State as n}from"@leafer-ui/draw";import{MathHelper as s,State as i,isNull as o,PointerEvent as l,Plugin as r,UI as a,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 S(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 d(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&&(s.assignScale(e,e.scale),delete e.scale),e!==h&&i.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 a=r?function(t,e){const n=v(e,t),s=t.animate();s&&v(n,t,s.fromStyle);return n}(t,e):void 0;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():r=!1,delete c.animation}t.normalStyle=b(c,t),t.set(c,"temp")}else t.normalStyle=void 0;if(r){const e=b(a,t);t.set(a,"temp"),t.animate([a,e],r,"transition",!0)}t.__layout.stateStyleChanged=!1}function p(t){let e;const n={},{state:s}=t,o=S(t),l=s&&t.states[s];l&&i.isState(s,t,o)&&(e=g(n,l));const r=n.selectedStyle||t.selectedStyle;if(r&&i.isSelected(t,o)&&(e=g(n,r)),i.isDisabled(t,o)){const s=n.disabledStyle||t.disabledStyle;s&&(e=g(n,s))}else{const s=n.focusStyle||t.focusStyle;s&&i.isFocus(t,o)&&(e=g(n,s));const l=n.hoverStyle||t.hoverStyle;l&&i.isHover(t,o)&&(e=g(n,l));const r=n.pressStyle||t.pressStyle;r&&i.isPress(t,o)&&(e=g(n,r))}return e?n:void 0}function b(t,e,n,s){const o=n?t:{},l=n||t;for(let t in l)s&&i.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&&d(t,n),t.button&&D(t.children,e)}function k(t,e,n){n||(n=t.states[e]),d(t,n),t.button&&D(t.children,null,e)}function D(t,e,n){if(!t)return;let s,o;for(let l=0,r=t.length;l<r;l++){if(s=t[l],e){switch(o=!0,e){case"hoverStyle":i.isHover(s)&&(o=!1);break;case"pressStyle":i.isPress(s)&&(o=!1);break;case"focusStyle":i.isFocus(s)&&(o=!1)}o&&_(s,e)}else n&&k(s,n);s.isBranch&&D(s.children,e,n)}}function E(t,e){const n=t[e];n&&y(t,n),t.button&&w(t.children,e)}function O(t,e,n){y(t,n),t.button&&w(t.children,null,e)}function w(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):n&&O(s,n),s.isBranch&&w(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=S(e,n);o&&(s=i[t](o))}return s}function P(t,e,n){let s=e[t];if(!s&&n){const i=S(e,n);i&&(s=i[t])}return s}r.add("state"),i.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},i.isState=function(t,e,n){return function(t,e,n){let s=e.states[t];if(!s&&n){const i=S(e,n);i&&(s=i.states[t])}return!!s}(t,e,n)},i.isSelected=function(t,e){return P("selected",t,e)},i.isDisabled=function(t,e){return P("disabled",t,e)},i.isFocus=function(t,e){return A("isFocus",t,e)},i.isHover=function(t,e){return A("isHover",t,e)},i.isPress=function(t,e){return A("isPress",t,e)},i.isDrag=function(t,e){return A("isDrag",t,e)},i.setStyleName=function(t,e,n){n?k(t,e,t[e]):O(t,e,t[e])},i.set=function(t,e){const n=t.states[e];n?k(t,e,n):O(t,e,n)},i.getStyle=p,i.updateStyle=m,i.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=a.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(){i.updateStyle(this,void 0,"in")};export{f as stateStyleType,u as stateType};
package/dist/state.js CHANGED
@@ -271,6 +271,7 @@ this.LeaferIN.state = (function (exports, draw, core) {
271
271
  return !!find;
272
272
  }
273
273
 
274
+ core.Plugin.add('state');
274
275
  core.State.animateExcludes = {
275
276
  animation: 1,
276
277
  animationOut: 1,
@@ -1 +1 @@
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;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={},{state:a}=t,o=i(t),r=a&&t.states[a];r&&e.State.isState(a,t,o)&&(n=f(s,r));const l=s.selectedStyle||t.selectedStyle;if(l&&e.State.isSelected(t,o)&&(n=f(s,l)),e.State.isDisabled(t,o)){const e=s.disabledStyle||t.disabledStyle;e&&(n=f(s,e))}else{const i=s.focusStyle||t.focusStyle;i&&e.State.isFocus(t,o)&&(n=f(s,i));const a=s.hoverStyle||t.hoverStyle;a&&e.State.isHover(t,o)&&(n=f(s,a));const r=s.pressStyle||t.pressStyle;r&&e.State.isPress(t,o)&&(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 y(t,e){const n=t[e];n&&a(t,n),t.button&&h(t.children,e)}function d(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&&y(i,n)}else s&&d(i,s);i.isBranch&&h(i.children,n,s)}}function p(t,e){const n=t[e];n&&o(t,n),t.button&&m(t.children,e)}function b(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?p(s,e):n&&b(s,n),s.isBranch&&m(s.children,e,n)}function v(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.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 v("isFocus",t,e)},e.State.isHover=function(t,e){return v("isHover",t,e)},e.State.isPress=function(t,e){return v("isPress",t,e)},e.State.isDrag=function(t,e){return v("isDrag",t,e)},e.State.setStyleName=function(t,e,n){n?d(t,e,t[e]):b(t,e,t[e])},e.State.set=function(t,e){const n=t.states[e];n?d(t,e,n):b(t,e,n)},e.State.getStyle=c,e.State.updateStyle=l,e.State.updateEventStyle=function(t,n){switch(n){case e.PointerEvent.ENTER:y(t,"hoverStyle");break;case e.PointerEvent.LEAVE:p(t,"hoverStyle");break;case e.PointerEvent.DOWN:y(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?y(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=S(e,t),s=t.animate();s&&S(n,t,s.fromStyle);return n}(t,n):void 0;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={},{state:a}=t,o=i(t),r=a&&t.states[a];r&&e.State.isState(a,t,o)&&(n=f(s,r));const l=s.selectedStyle||t.selectedStyle;if(l&&e.State.isSelected(t,o)&&(n=f(s,l)),e.State.isDisabled(t,o)){const e=s.disabledStyle||t.disabledStyle;e&&(n=f(s,e))}else{const i=s.focusStyle||t.focusStyle;i&&e.State.isFocus(t,o)&&(n=f(s,i));const a=s.hoverStyle||t.hoverStyle;a&&e.State.isHover(t,o)&&(n=f(s,a));const r=s.pressStyle||t.pressStyle;r&&e.State.isPress(t,o)&&(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 y(t,e){const n=t[e];n&&a(t,n),t.button&&h(t.children,e)}function d(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&&y(i,n)}else s&&d(i,s);i.isBranch&&h(i.children,n,s)}}function p(t,e){const n=t[e];n&&o(t,n),t.button&&m(t.children,e)}function b(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?p(s,e):n&&b(s,n),s.isBranch&&m(s.children,e,n)}function v(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 v("isFocus",t,e)},e.State.isHover=function(t,e){return v("isHover",t,e)},e.State.isPress=function(t,e){return v("isPress",t,e)},e.State.isDrag=function(t,e){return v("isDrag",t,e)},e.State.setStyleName=function(t,e,n){n?d(t,e,t[e]):b(t,e,t[e])},e.State.set=function(t,e){const n=t.states[e];n?d(t,e,n):b(t,e,n)},e.State.getStyle=c,e.State.updateStyle=l,e.State.updateEventStyle=function(t,n){switch(n){case e.PointerEvent.ENTER:y(t,"hoverStyle");break;case e.PointerEvent.LEAVE:p(t,"hoverStyle");break;case e.PointerEvent.DOWN:y(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?y(this,"focusStyle"):p(this,"focusStyle")}))},E.updateState=function(){e.State.updateStyle(this,void 0,"in")},exports.stateStyleType=s,exports.stateType=n;
package/dist/state.min.js CHANGED
@@ -1 +1 @@
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;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={},{state:i}=t,o=a(t),l=i&&t.states[i];l&&n.State.isState(i,t,o)&&(e=y(s,l));const r=s.selectedStyle||t.selectedStyle;if(r&&n.State.isSelected(t,o)&&(e=y(s,r)),n.State.isDisabled(t,o)){const n=s.disabledStyle||t.disabledStyle;n&&(e=y(s,n))}else{const i=s.focusStyle||t.focusStyle;i&&n.State.isFocus(t,o)&&(e=y(s,i));const a=s.hoverStyle||t.hoverStyle;a&&n.State.isHover(t,o)&&(e=y(s,a));const l=s.pressStyle||t.pressStyle;l&&n.State.isPress(t,o)&&(e=y(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 y(t,e){return Object.assign(t,e),!0}function d(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&&d(i,e)}else s&&h(i,s);i.isBranch&&p(i.children,e,s)}}function b(t,e){const n=t[e];n&&l(t,n),t.button&&v(t.children,e)}function m(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?b(s,e):n&&m(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.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]):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:d(t,"hoverStyle");break;case n.PointerEvent.LEAVE:b(t,"hoverStyle");break;case n.PointerEvent.DOWN:d(t,"pressStyle");break;case n.PointerEvent.UP:b(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?d(this,"focusStyle"):b(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 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;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={},{state:i}=t,o=a(t),l=i&&t.states[i];l&&n.State.isState(i,t,o)&&(e=y(s,l));const r=s.selectedStyle||t.selectedStyle;if(r&&n.State.isSelected(t,o)&&(e=y(s,r)),n.State.isDisabled(t,o)){const n=s.disabledStyle||t.disabledStyle;n&&(e=y(s,n))}else{const i=s.focusStyle||t.focusStyle;i&&n.State.isFocus(t,o)&&(e=y(s,i));const a=s.hoverStyle||t.hoverStyle;a&&n.State.isHover(t,o)&&(e=y(s,a));const l=s.pressStyle||t.pressStyle;l&&n.State.isPress(t,o)&&(e=y(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 y(t,e){return Object.assign(t,e),!0}function d(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&&d(i,e)}else s&&h(i,s);i.isBranch&&p(i.children,e,s)}}function b(t,e){const n=t[e];n&&l(t,n),t.button&&v(t.children,e)}function m(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?b(s,e):n&&m(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]):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:d(t,"hoverStyle");break;case n.PointerEvent.LEAVE:b(t,"hoverStyle");break;case n.PointerEvent.DOWN:d(t,"pressStyle");break;case n.PointerEvent.UP:b(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?d(this,"focusStyle"):b(this,"focusStyle")}))},L.updateState=function(){n.State.updateStyle(this,void 0,"in")},t.stateStyleType=i,t.stateType=s,t}({},LeaferUI,LeaferUI);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-in/state",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
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.1.1",
38
- "@leafer-ui/interface": "^1.1.1",
39
- "@leafer-in/interface": "^1.1.1"
37
+ "@leafer-ui/core": "^1.2.0",
38
+ "@leafer-ui/interface": "^1.2.0",
39
+ "@leafer-in/interface": "^1.2.0"
40
40
  }
41
41
  }
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { stateType, stateStyleType } from './decorator'
2
2
 
3
3
  import { IUI, IStateStyleType, IStateName } from '@leafer-ui/interface'
4
- import { State, UI, dataType } from '@leafer-ui/core'
4
+ import { State, UI, dataType, Plugin } from '@leafer-ui/core'
5
5
 
6
6
  import { setPointerState, setState } from './set'
7
7
  import { unsetPointerState, unsetState } from './unset'
@@ -11,6 +11,9 @@ import { getStyle, updateStyle } from './style'
11
11
  import { stateType, stateStyleType } from './decorator'
12
12
 
13
13
 
14
+ Plugin.add('state')
15
+
16
+
14
17
  State.animateExcludes = {
15
18
  animation: 1,
16
19
  animationOut: 1,