@pushwoosh/kit-helpers 2.2.2 → 3.0.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/lib/expand.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React, { FC } from 'react';
1
+ import React, { type FC } from 'react';
2
2
  type ExpandTransitionProps = {
3
3
  className?: string;
4
4
  timeout?: number;
package/lib/grid.d.ts CHANGED
@@ -12,7 +12,7 @@ export declare const Columns: import("styled-components").StyledComponent<"div",
12
12
  justify?: "center" | "start" | "end" | "space-between" | undefined;
13
13
  alignItems?: "center" | "start" | "end" | "baseline" | "stretch" | undefined;
14
14
  } & {
15
- columns: number | string;
15
+ sizes: number | string;
16
16
  }, never>;
17
17
  export declare const Rows: import("styled-components").StyledComponent<"div", any, {
18
18
  gap?: string | number | undefined;
@@ -21,7 +21,7 @@ export declare const Rows: import("styled-components").StyledComponent<"div", an
21
21
  justify?: "center" | "start" | "end" | "space-between" | undefined;
22
22
  alignItems?: "center" | "start" | "end" | "baseline" | "stretch" | undefined;
23
23
  } & {
24
- rows: number | string;
24
+ sizes: number | string;
25
25
  }, never>;
26
26
  export declare const Horizontal: import("styled-components").StyledComponent<"div", any, {
27
27
  gap?: string | number | undefined;
@@ -1,5 +1,5 @@
1
- import { DependencyList } from 'react';
2
- import { FunctionReturningPromise } from './types';
1
+ import { type DependencyList } from 'react';
2
+ import { type FunctionReturningPromise } from './types';
3
3
  export type { AsyncState, AsyncFnReturn } from './useAsyncFn';
4
4
  export default function useAsync<T extends FunctionReturningPromise>(fn: T, deps?: DependencyList): {
5
5
  loading: boolean;
@@ -1,4 +1,4 @@
1
- import { DependencyList } from 'react';
1
+ import { type DependencyList } from 'react';
2
2
  import type { FunctionReturningPromise, PromiseType } from './types';
3
3
  export type AsyncState<T> = {
4
4
  loading: boolean;
@@ -1,3 +1,3 @@
1
- import { EffectCallback } from 'react';
1
+ import { type EffectCallback } from 'react';
2
2
  declare const useEffectOnce: (effect: EffectCallback) => void;
3
3
  export default useEffectOnce;
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var t={n:e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Collapse:()=>S,Columns:()=>l,ExpandTransition:()=>A,GridContainer:()=>c,Horizontal:()=>f,Rows:()=>s,Vertical:()=>d,elementAddListener:()=>E,subscribeClickAway:()=>x,useAsync:()=>G,useAsyncFn:()=>k,useClickAway:()=>N,useEffectOnce:()=>I,useMount:()=>M,useMountedState:()=>_,usePersistentFunction:()=>O,useUnmount:()=>R});const n=require("styled-components");var r=t.n(n),o=function(t){return"number"==typeof t},i=function(t){return o(t)?"".concat(t,"px"):t},a=function(t){return o(t)?"repeat(".concat(t,", 1fr)"):t},u=function(t,e,n){if(void 0!==e)return"".concat(t,": ").concat(n?n(e):e,";")},c=r().div.withConfig({displayName:"GridContainer",componentId:"sc-td6pqh-0"})(["display:grid;"," "," "," "," ",""],(function(t){var e=t.gap;return u("gap",e,i)}),(function(t){var e=t.padding;return u("padding",e,i)}),(function(t){var e=t.margin;return u("margin",e,i)}),(function(t){var e=t.justify;return u("justify-content",e)}),(function(t){var e=t.alignItems;return u("align-items",e)})),l=r()(c).withConfig({displayName:"Columns",componentId:"sc-td6pqh-1"})(["grid-template-columns:",";"],(function(t){var e=t.columns;return a(e)})),s=r()(c).withConfig({displayName:"Rows",componentId:"sc-td6pqh-2"})(["grid-template-rows:",";"],(function(t){var e=t.rows;return a(e)})),f=r()(c).withConfig({displayName:"Horizontal",componentId:"sc-td6pqh-3"})(["grid-auto-flow:column;"]),d=r()(c).withConfig({displayName:"Vertical",componentId:"sc-td6pqh-4"})(["grid-auto-flow:row;"]);const p=require("tslib"),m=require("react");var y=t.n(m);const h=require("react-transition-group");function v(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,u=[],c=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return g(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var b=function(t){var e=t.className,n=t.externalClassName,r=t.internalClassName,o=t.timeout,i=void 0===o?100:o,a=t.children,u=(0,p.__rest)(t,["className","externalClassName","internalClassName","timeout","children"]),c=(0,m.useRef)(null),l=(0,m.useRef)(null),s=v((0,m.useState)(),2),f=s[0],d=s[1];function g(){var t=l.current.getBoundingClientRect();d({"--timeout":"".concat(i,"ms"),"--width":"".concat(t.width,"px"),"--height":"".concat(t.height,"px")})}return(0,m.useEffect)(g,[i]),y().createElement(h.CSSTransition,Object.assign({},u,{timeout:i,classNames:e,onEnter:g,onExit:g,nodeRef:c}),y().createElement("div",{ref:c,className:n?"".concat(e," ").concat(n):e,style:f},y().createElement("div",{ref:l,className:r},a)))},w=r()(b).withConfig({displayName:"CollapseTransition",componentId:"sc-7jjhp8-0"})(["transition:height var(--timeout) linear,opacity var(--timeout) linear;&-enter{overflow:hidden;opacity:0;height:0;}&-enter-active,&-exit{overflow:hidden;opacity:1;height:var(--height);}&-exit-active{overflow:hidden;opacity:0;height:0;}"]),j=(0,n.css)(["overflow:hidden;position:relative;width:1px;height:1px;& > *{position:absolute;top:calc(var(--height) / -2);left:calc(var(--width) / -2);}"]),C=(0,n.css)(["overflow:hidden;position:relative;width:var(--width);height:var(--height);& > *{position:absolute;top:0;left:0;}"]),A=r()(b).withConfig({displayName:"ExpandTransition",componentId:"sc-7jjhp8-1"})(["transition:all var(--timeout) ease-out;& > *{transition:all var(--timeout) ease-out;}&-enter{","}&-enter-active,&-exit{","}&-exit-active{","}"],j,C,j),S=function(t){var e=t.expanded,n=t.children,r=t.className,o=(0,p.__rest)(t,["expanded","children","className"]);return y().createElement(h.TransitionGroup,{component:null},e&&y().createElement(w,Object.assign({},o,{externalClassName:r,key:0}),"function"==typeof n?n():n))};function O(t){var e=(0,m.useRef)(t);return e.current=t,(0,m.useCallback)((function(){return e.current.apply(e,arguments)}),[])}function E(t,e,n){var r=Array.isArray(e)?e:[e];return r.forEach((function(e){t.addEventListener(e,n)})),function(){r.forEach((function(e){t.removeEventListener(e,n)}))}}function x(t,e){return E(document,["mousedown","touchstart"],(function(n){t&&!t.contains(n.target)&&e(n)}))}function N(t,e,n){var r=O(n);(0,m.useEffect)((function(){if(t)return x(e.current,r)}),[t,e,r])}const I=function(t){(0,m.useEffect)(t,[])};function _(){var t=(0,m.useRef)(!1),e=(0,m.useCallback)((function(){return t.current}),[]);return(0,m.useEffect)((function(){return t.current=!0,function(){t.current=!1}}),[]),e}const M=function(t){I((function(){t()}))};const R=function(t){var e=(0,m.useRef)(t);e.current=t,I((function(){return function(){return e.current()}}))};function T(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,u=[],c=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return q(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function k(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{loading:!1},r=(0,m.useRef)(0),o=_(),i=T((0,m.useState)(n),2),a=i[0],u=i[1],c=(0,m.useCallback)((function(){var e=++r.current,n=function(){return o()&&e===r.current};return!a.loading&&n()&&u((function(t){return Object.assign(Object.assign({},t),{loading:!0})})),t.apply(void 0,arguments).then((function(t){return n()&&u({value:t,loading:!1}),t}),(function(t){throw n()&&u({error:t,loading:!1}),t}))}),e);return[a,c]}function P(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,u=[],c=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return U(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return U(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function U(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function G(t){var e=P(k(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],{loading:!0}),2),n=e[0],r=e[1];return(0,m.useEffect)((function(){r()}),[r]),n}var L=exports;for(var $ in e)L[$]=e[$];e.__esModule&&Object.defineProperty(L,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var t={n:e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Collapse:()=>I,Columns:()=>l,ExpandTransition:()=>N,GridContainer:()=>c,Horizontal:()=>s,Rows:()=>f,Vertical:()=>p,elementAddListener:()=>M,subscribeClickAway:()=>R,useAsync:()=>K,useAsyncFn:()=>V,useClickAway:()=>k,useEffectOnce:()=>q,useMount:()=>_,useMountedState:()=>D,usePersistentFunction:()=>T,useUnmount:()=>z});const r=require("styled-components");var n=t.n(r),o=function(t){return"number"==typeof t},i=function(t){return o(t)?"".concat(t,"px"):t},u=function(t){return o(t)?"repeat(".concat(t,", 1fr)"):t},a=function(t,e,r){if(void 0!==e)return"".concat(t,": ").concat(r?r(e):e,";")},c=n().div.withConfig({displayName:"GridContainer",componentId:"sc-td6pqh-0"})(["display:grid;"," "," "," "," ",""],(function(t){return a("gap",t.gap,i)}),(function(t){return a("padding",t.padding,i)}),(function(t){return a("margin",t.margin,i)}),(function(t){return a("justify-content",t.justify)}),(function(t){return a("align-items",t.alignItems)})),l=n()(c).withConfig({displayName:"Columns",componentId:"sc-td6pqh-1"})(["grid-template-columns:",";"],(function(t){return u(t.sizes)})),f=n()(c).withConfig({displayName:"Rows",componentId:"sc-td6pqh-2"})(["grid-template-rows:",";"],(function(t){return u(t.sizes)})),s=n()(c).withConfig({displayName:"Horizontal",componentId:"sc-td6pqh-3"})(["grid-auto-flow:column;"]),p=n()(c).withConfig({displayName:"Vertical",componentId:"sc-td6pqh-4"})(["grid-auto-flow:row;"]);const y=require("react");var d=t.n(y);const m=require("react-transition-group");function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}var v=["className","externalClassName","internalClassName","timeout","children"],h=["expanded","children","className"];function g(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function O(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?g(Object(r),!0).forEach((function(e){w(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function w(t,e,r){return(e=function(t){var e=function(t,e){if("object"!==b(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!==b(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===b(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function j(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,u,a=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return S(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return S(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function P(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var E=function(t){var e=t.className,r=t.externalClassName,n=t.internalClassName,o=t.timeout,i=void 0===o?100:o,u=t.children,a=P(t,v),c=(0,y.useRef)(null),l=(0,y.useRef)(null),f=j((0,y.useState)(),2),s=f[0],p=f[1];function b(){var t=l.current.getBoundingClientRect();p({"--timeout":"".concat(i,"ms"),"--width":"".concat(t.width,"px"),"--height":"".concat(t.height,"px")})}return(0,y.useEffect)(b,[i]),d().createElement(m.CSSTransition,O(O({},a),{},{timeout:i,classNames:e,onEnter:b,onExit:b,nodeRef:c}),d().createElement("div",{ref:c,className:r?"".concat(e," ").concat(r):e,style:s},d().createElement("div",{ref:l,className:n},u)))},C=n()(E).withConfig({displayName:"CollapseTransition",componentId:"sc-7jjhp8-0"})(["transition:height var(--timeout) linear,opacity var(--timeout) linear;&-enter{overflow:hidden;opacity:0;height:0;}&-enter-active,&-exit{overflow:hidden;opacity:1;height:var(--height);}&-exit-active{overflow:hidden;opacity:0;height:0;}"]),A=(0,r.css)(["overflow:hidden;position:relative;width:1px;height:1px;& > *{position:absolute;top:calc(var(--height) / -2);left:calc(var(--width) / -2);}"]),x=(0,r.css)(["overflow:hidden;position:relative;width:var(--width);height:var(--height);& > *{position:absolute;top:0;left:0;}"]),N=n()(E).withConfig({displayName:"ExpandTransition",componentId:"sc-7jjhp8-1"})(["transition:all var(--timeout) ease-out;& > *{transition:all var(--timeout) ease-out;}&-enter{","}&-enter-active,&-exit{","}&-exit-active{","}"],A,x,A),I=function(t){var e=t.expanded,r=t.children,n=t.className,o=P(t,h);return d().createElement(m.TransitionGroup,{component:null},e&&d().createElement(C,O(O({},o),{},{externalClassName:n,key:0}),"function"==typeof r?r():r))};function T(t){var e=(0,y.useRef)(t);return e.current=t,(0,y.useCallback)((function(){return e.current.apply(e,arguments)}),[])}function M(t,e,r){var n=Array.isArray(e)?e:[e];return n.forEach((function(e){t.addEventListener(e,r)})),function(){n.forEach((function(e){t.removeEventListener(e,r)}))}}function R(t,e){return M(document,["mousedown","touchstart"],(function(r){t&&!t.contains(r.target)&&e(r)}))}function k(t,e,r){var n=T(r);(0,y.useEffect)((function(){if(t)return R(e.current,n)}),[t,e,n])}const q=function(t){(0,y.useEffect)(t,[])};function D(){var t=(0,y.useRef)(!1),e=(0,y.useCallback)((function(){return t.current}),[]);return(0,y.useEffect)((function(){return t.current=!0,function(){t.current=!1}}),[]),e}const _=function(t){q((function(){t()}))};const z=function(t){var e=(0,y.useRef)(t);e.current=t,q((function(){return function(){return e.current()}}))};function U(t){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function G(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function L(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?G(Object(r),!0).forEach((function(e){$(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function $(t,e,r){return(e=function(t){var e=function(t,e){if("object"!==U(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!==U(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===U(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function F(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,u,a=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return H(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return H(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function V(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{loading:!1},n=(0,y.useRef)(0),o=D(),i=F((0,y.useState)(r),2),u=i[0],a=i[1],c=(0,y.useCallback)((function(){var e=++n.current,r=function(){return o()&&e===n.current};return!u.loading&&r()&&a((function(t){return L(L({},t),{},{loading:!0})})),t.apply(void 0,arguments).then((function(t){return r()&&a({value:t,loading:!1}),t}),(function(t){throw r()&&a({error:t,loading:!1}),t}))}),e);return[u,c]}function B(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,u,a=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return J(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return J(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function K(t){var e=B(V(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],{loading:!0}),2),r=e[0],n=e[1];return(0,y.useEffect)((function(){n()}),[n]),r}var Q=exports;for(var W in e)Q[W]=e[W];e.__esModule&&Object.defineProperty(Q,"__esModule",{value:!0})})();
2
2
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@pushwoosh/kit-helpers/webpack/bootstrap","webpack://@pushwoosh/kit-helpers/webpack/runtime/compat get default export","webpack://@pushwoosh/kit-helpers/webpack/runtime/define property getters","webpack://@pushwoosh/kit-helpers/webpack/runtime/hasOwnProperty shorthand","webpack://@pushwoosh/kit-helpers/webpack/runtime/make namespace object","webpack://@pushwoosh/kit-helpers/external commonjs \"styled-components\"","webpack://@pushwoosh/kit-helpers/./src/grid.tsx","webpack://@pushwoosh/kit-helpers/external commonjs \"tslib\"","webpack://@pushwoosh/kit-helpers/external commonjs \"react\"","webpack://@pushwoosh/kit-helpers/external commonjs \"react-transition-group\"","webpack://@pushwoosh/kit-helpers/./src/expand.tsx","webpack://@pushwoosh/kit-helpers/./src/hooks/usePersistentFunction.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useClickAway.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useEffectOnce.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useMountedState.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useMount.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useUnmount.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useAsyncFn.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useAsync.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"styled-components\");","import styled from 'styled-components';\n\nconst isNumber = (value: unknown): value is number => typeof value === 'number';\nconst toCssValue = (value: number | string): string => (isNumber(value) ? `${value}px` : value);\nconst gridTemplate = (value: number | string): string => (isNumber(value) ? `repeat(${value}, 1fr)` : value);\nconst createCssDeclaration = (property: string, value: any, valueConvert?: (v: any) => any) => {\n if (value !== undefined) {\n return `${property}: ${valueConvert ? valueConvert(value) : value};`;\n }\n return undefined;\n};\n\nexport const GridContainer = styled.div<{\n gap?: number | string;\n padding?: number | string;\n margin?: number | string;\n justify?: 'center' | 'start' | 'end' | 'space-between';\n alignItems?: 'center' | 'start' | 'end' | 'baseline' | 'stretch';\n}>`\n display: grid;\n ${({ gap }) => createCssDeclaration('gap', gap, toCssValue)}\n ${({ padding }) => createCssDeclaration('padding', padding, toCssValue)}\n ${({ margin }) => createCssDeclaration('margin', margin, toCssValue)}\n ${({ justify }) => createCssDeclaration('justify-content', justify)}\n ${({ alignItems }) => createCssDeclaration('align-items', alignItems)}\n`;\n\nexport const Columns = styled(GridContainer)<{\n columns: number | string;\n}>`grid-template-columns: ${({ columns }) => gridTemplate(columns)};`;\n\nexport const Rows = styled(GridContainer)<{\n rows: number | string;\n}>`grid-template-rows: ${({ rows }) => gridTemplate(rows)};`;\n\nexport const Horizontal = styled(GridContainer)`\n grid-auto-flow: column;\n`;\n\nexport const Vertical = styled(GridContainer)`\n grid-auto-flow: row;\n`;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"tslib\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","/* eslint-disable react/require-default-props, react/jsx-no-bind */\n\nimport React, {\n FC, useEffect, useRef, useState,\n} from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport styled, { css } from 'styled-components';\n\ntype ExpandTransitionProps = {\n className?: string;\n timeout?: number;\n externalClassName?: string;\n internalClassName?: string;\n};\nconst ExpandTransitionComp: FC<ExpandTransitionProps> = ({\n className,\n externalClassName,\n internalClassName,\n timeout = 100,\n children,\n ...rest\n}) => {\n const refExternal = useRef<HTMLDivElement>(null);\n const refInternal = useRef<HTMLDivElement>(null);\n const [externalStyle, setExternalStyle] = useState<Record<string, string>>();\n\n function updateStyle(): void {\n const rect = refInternal.current!.getBoundingClientRect();\n setExternalStyle({\n '--timeout': `${timeout}ms`,\n '--width': `${rect.width}px`,\n '--height': `${rect.height}px`,\n });\n }\n useEffect(updateStyle, [timeout]);\n\n return (\n <CSSTransition\n {...rest}\n timeout={timeout}\n classNames={className}\n onEnter={updateStyle}\n onExit={updateStyle}\n nodeRef={refExternal}\n >\n <div\n ref={refExternal}\n className={externalClassName ? `${className} ${externalClassName}` : className}\n style={externalStyle}\n >\n <div\n ref={refInternal}\n className={internalClassName}\n >\n {children}\n </div>\n </div>\n </CSSTransition>\n );\n};\n\nconst CollapseTransition = styled(ExpandTransitionComp)`\n transition: height var(--timeout) linear, opacity var(--timeout) linear;\n\n &-enter {\n overflow: hidden;\n opacity: 0;\n height: 0;\n }\n\n &-enter-active, &-exit {\n overflow: hidden;\n opacity: 1;\n height: var(--height);\n }\n\n &-exit-active {\n overflow: hidden;\n opacity: 0;\n height: 0;\n }\n`;\n\nconst enterExpandCss = css`\n overflow: hidden;\n position: relative;\n width: 1px;\n height: 1px;\n\n & > * {\n position: absolute;\n top: calc(var(--height) / -2);\n left: calc(var(--width) / -2);\n }\n`;\n\nconst exitExpandCss = css`\n overflow: hidden;\n position: relative;\n width: var(--width);\n height: var(--height);\n\n & > * {\n position: absolute;\n top: 0;\n left: 0;\n }\n`;\n\nexport const ExpandTransition = styled(ExpandTransitionComp)`\n transition: all var(--timeout) ease-out;\n\n & > * {\n transition: all var(--timeout) ease-out;\n }\n\n &-enter { ${enterExpandCss} }\n\n &-enter-active, &-exit { ${exitExpandCss} }\n\n &-exit-active { ${enterExpandCss} }\n`;\n\ntype CollapseProps = {\n expanded: boolean;\n timeout?: number;\n className?: string;\n internalClassName?: string;\n};\nexport const Collapse: FC<CollapseProps> = ({\n expanded,\n children,\n className,\n ...rest\n}) => (\n <TransitionGroup component={null}>\n {expanded && (\n <CollapseTransition\n {...rest}\n externalClassName={className}\n key={0}\n >\n {typeof children === 'function' ? children() : children}\n </CollapseTransition>\n )}\n </TransitionGroup>\n);\n","import { useCallback, useRef } from 'react';\n\nexport default function usePersistentFunction<T extends (...args: any[]) => any>(callback: T): T {\n const ref = useRef(callback);\n ref.current = callback;\n return useCallback((...args: any) => ref.current(...args), []) as T;\n}\n","import { useEffect } from 'react';\nimport usePersistentFunction from './usePersistentFunction';\n\nexport function elementAddListener<K extends keyof HTMLElementEventMap, E extends HTMLElement>(\n element: E,\n eventNames: K | K[],\n listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void,\n): () => void {\n const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames];\n eventNamesArray.forEach((eventName) => {\n element.addEventListener(eventName, listener);\n });\n return (): void => {\n eventNamesArray.forEach((eventName) => {\n element.removeEventListener(eventName, listener);\n });\n };\n}\n\nexport function subscribeClickAway<T extends HTMLElement>(element: T, callback: EventListener): () => void {\n return elementAddListener(document as any, ['mousedown', 'touchstart'], (event) => {\n if (element && !element.contains(event.target as any)) {\n callback(event);\n }\n });\n}\n\nexport function useClickAway(use: boolean, ref: any, cb: EventListener): void {\n const mcb = usePersistentFunction(cb);\n\n useEffect(() => { // eslint-disable-line consistent-return\n if (use) {\n return subscribeClickAway(ref.current, mcb) as any;\n }\n }, [use, ref, mcb]);\n}\n","import { EffectCallback, useEffect } from 'react';\n\nconst useEffectOnce = (effect: EffectCallback) => {\n // eslint-disable-next-line\n useEffect(effect, []);\n};\n\nexport default useEffectOnce;\n","import { useCallback, useEffect, useRef } from 'react';\n\nexport default function useMountedState(): () => boolean {\n const mountedRef = useRef<boolean>(false);\n const get = useCallback(() => mountedRef.current, []);\n\n useEffect(() => {\n mountedRef.current = true;\n\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n return get;\n}\n","import useEffectOnce from './useEffectOnce';\n\nconst useMount = (fn: () => void) => {\n useEffectOnce(() => {\n fn();\n });\n};\n\nexport default useMount;\n","import { useRef } from 'react';\nimport useEffectOnce from './useEffectOnce';\n\nconst useUnmount = (fn: () => any): void => {\n const fnRef = useRef(fn);\n\n // update the ref each render so if it change the newest callback will be invoked\n fnRef.current = fn;\n\n useEffectOnce(() => () => fnRef.current());\n};\n\nexport default useUnmount;\n","import {\n DependencyList,\n useCallback,\n useRef,\n useState,\n} from 'react';\nimport useMountedState from './useMountedState';\nimport type { FunctionReturningPromise, PromiseType } from './types';\n\nexport type AsyncState<T> =\n | { loading: boolean; error?: undefined; value?: undefined; }\n | { loading: true; error?: Error | undefined; value?: T; }\n | { loading: false; error: Error; value?: undefined; }\n | { loading: false; error?: undefined; value: T; };\n\ntype StateFromFunctionReturningPromise<T extends FunctionReturningPromise> = AsyncState<PromiseType<ReturnType<T>>>;\n\nexport type AsyncFnReturn<T extends FunctionReturningPromise = FunctionReturningPromise> = [\n StateFromFunctionReturningPromise<T>,\n T,\n];\n\nexport default function useAsyncFn<T extends FunctionReturningPromise>(\n fn: T,\n deps: DependencyList = [],\n initialState: StateFromFunctionReturningPromise<T> = { loading: false },\n): AsyncFnReturn<T> {\n const lastCallId = useRef(0);\n const isMounted = useMountedState();\n const [state, set] = useState<StateFromFunctionReturningPromise<T>>(initialState);\n\n const callback = useCallback((...args: Parameters<T>): ReturnType<T> => {\n // eslint-disable-next-line no-plusplus\n const callId = ++lastCallId.current;\n const canSet = () => isMounted() && callId === lastCallId.current;\n\n if (!state.loading && canSet()) {\n set((prevState) => ({ ...prevState, loading: true }));\n }\n\n return fn(...args).then(\n (value) => {\n if (canSet()) {\n set({ value, loading: false });\n }\n\n return value;\n },\n (error) => {\n if (canSet()) {\n set({ error, loading: false });\n }\n\n throw error;\n },\n ) as ReturnType<T>;\n }, deps); // eslint-disable-line\n\n return [state, callback as unknown as T];\n}\n","import { DependencyList, useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nimport { FunctionReturningPromise } from './types';\n\nexport type { AsyncState, AsyncFnReturn } from './useAsyncFn';\n\nexport default function useAsync<T extends FunctionReturningPromise>(\n fn: T,\n deps: DependencyList = [],\n) {\n const [state, callback] = useAsyncFn(fn, deps, {\n loading: true,\n });\n\n useEffect(() => {\n callback();\n }, [callback]);\n\n return state;\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","require","isNumber","toCssValue","concat","gridTemplate","createCssDeclaration","property","valueConvert","undefined","GridContainer","styled","displayName","componentId","_ref","gap","_ref2","padding","_ref3","margin","_ref4","justify","_ref5","alignItems","Columns","withConfig","_ref6","columns","Rows","_ref7","rows","Horizontal","Vertical","ExpandTransitionComp","_a","className","externalClassName","internalClassName","_a$timeout","timeout","children","rest","__rest","refExternal","useRef","refInternal","_useState2","_slicedToArray","useState","externalStyle","setExternalStyle","updateStyle","rect","current","getBoundingClientRect","width","height","useEffect","React","CSSTransition","assign","classNames","onEnter","onExit","nodeRef","ref","style","CollapseTransition","enterExpandCss","css","exitExpandCss","ExpandTransition","Collapse","expanded","TransitionGroup","component","usePersistentFunction","callback","useCallback","apply","arguments","elementAddListener","element","eventNames","listener","eventNamesArray","Array","isArray","forEach","eventName","addEventListener","removeEventListener","subscribeClickAway","document","event","contains","target","useClickAway","use","cb","mcb","effect","useMountedState","mountedRef","fn","useEffectOnce","fnRef","useAsyncFn","deps","length","initialState","loading","lastCallId","isMounted","state","set","callId","canSet","prevState","then","error","useAsync","_useAsyncFn2"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@pushwoosh/kit-helpers/webpack/bootstrap","webpack://@pushwoosh/kit-helpers/webpack/runtime/compat get default export","webpack://@pushwoosh/kit-helpers/webpack/runtime/define property getters","webpack://@pushwoosh/kit-helpers/webpack/runtime/hasOwnProperty shorthand","webpack://@pushwoosh/kit-helpers/webpack/runtime/make namespace object","webpack://@pushwoosh/kit-helpers/external commonjs \"styled-components\"","webpack://@pushwoosh/kit-helpers/./src/grid.tsx","webpack://@pushwoosh/kit-helpers/external commonjs \"react\"","webpack://@pushwoosh/kit-helpers/external commonjs \"react-transition-group\"","webpack://@pushwoosh/kit-helpers/./src/expand.tsx","webpack://@pushwoosh/kit-helpers/./src/hooks/usePersistentFunction.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useClickAway.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useEffectOnce.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useMountedState.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useMount.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useUnmount.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useAsyncFn.ts","webpack://@pushwoosh/kit-helpers/./src/hooks/useAsync.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"styled-components\");","import styled from 'styled-components';\n\nconst isNumber = (value: unknown): value is number => typeof value === 'number';\nconst toCssValue = (value: number | string): string => (isNumber(value) ? `${value}px` : value);\nconst gridTemplate = (value: number | string): string => (isNumber(value) ? `repeat(${value}, 1fr)` : value);\nconst createCssDeclaration = (property: string, value: any, valueConvert?: (v: any) => any) => {\n if (value !== undefined) {\n return `${property}: ${valueConvert ? valueConvert(value) : value};`;\n }\n return undefined;\n};\n\nexport const GridContainer = styled.div<{\n gap?: number | string;\n padding?: number | string;\n margin?: number | string;\n justify?: 'center' | 'start' | 'end' | 'space-between';\n alignItems?: 'center' | 'start' | 'end' | 'baseline' | 'stretch';\n}>`\n display: grid;\n ${(props) => createCssDeclaration('gap', props.gap, toCssValue)}\n ${(props) => createCssDeclaration('padding', props.padding, toCssValue)}\n ${(props) => createCssDeclaration('margin', props.margin, toCssValue)}\n ${(props) => createCssDeclaration('justify-content', props.justify)}\n ${(props) => createCssDeclaration('align-items', props.alignItems)}\n`;\n\nexport const Columns = styled(GridContainer)<{\n sizes: number | string;\n}>`\n grid-template-columns: ${(props) => gridTemplate(props.sizes)};\n`;\n\nexport const Rows = styled(GridContainer)<{\n sizes: number | string;\n}>`\n grid-template-rows: ${(props) => gridTemplate(props.sizes)};\n`;\n\nexport const Horizontal = styled(GridContainer)`\n grid-auto-flow: column;\n`;\n\nexport const Vertical = styled(GridContainer)`\n grid-auto-flow: row;\n`;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-transition-group\");","/* eslint-disable react/require-default-props, react/jsx-no-bind */\n\nimport React, {\n type FC,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport styled, { css } from 'styled-components';\n\ntype ExpandTransitionProps = {\n className?: string;\n timeout?: number;\n externalClassName?: string;\n internalClassName?: string;\n};\nconst ExpandTransitionComp: FC<ExpandTransitionProps> = ({\n className,\n externalClassName,\n internalClassName,\n timeout = 100,\n children,\n ...rest\n}) => {\n const refExternal = useRef<HTMLDivElement>(null);\n const refInternal = useRef<HTMLDivElement>(null);\n const [externalStyle, setExternalStyle] = useState<Record<string, string>>();\n\n function updateStyle(): void {\n const rect = refInternal.current!.getBoundingClientRect();\n setExternalStyle({\n '--timeout': `${timeout}ms`,\n '--width': `${rect.width}px`,\n '--height': `${rect.height}px`,\n });\n }\n useEffect(updateStyle, [timeout]);\n\n return (\n <CSSTransition\n {...rest}\n timeout={timeout}\n classNames={className}\n onEnter={updateStyle}\n onExit={updateStyle}\n nodeRef={refExternal}\n >\n <div\n ref={refExternal}\n className={externalClassName ? `${className} ${externalClassName}` : className}\n style={externalStyle}\n >\n <div\n ref={refInternal}\n className={internalClassName}\n >\n {children}\n </div>\n </div>\n </CSSTransition>\n );\n};\n\nconst CollapseTransition = styled(ExpandTransitionComp)`\n transition: height var(--timeout) linear, opacity var(--timeout) linear;\n\n &-enter {\n overflow: hidden;\n opacity: 0;\n height: 0;\n }\n\n &-enter-active, &-exit {\n overflow: hidden;\n opacity: 1;\n height: var(--height);\n }\n\n &-exit-active {\n overflow: hidden;\n opacity: 0;\n height: 0;\n }\n`;\n\nconst enterExpandCss = css`\n overflow: hidden;\n position: relative;\n width: 1px;\n height: 1px;\n\n & > * {\n position: absolute;\n top: calc(var(--height) / -2);\n left: calc(var(--width) / -2);\n }\n`;\n\nconst exitExpandCss = css`\n overflow: hidden;\n position: relative;\n width: var(--width);\n height: var(--height);\n\n & > * {\n position: absolute;\n top: 0;\n left: 0;\n }\n`;\n\nexport const ExpandTransition = styled(ExpandTransitionComp)`\n transition: all var(--timeout) ease-out;\n\n & > * {\n transition: all var(--timeout) ease-out;\n }\n\n &-enter { ${enterExpandCss} }\n\n &-enter-active, &-exit { ${exitExpandCss} }\n\n &-exit-active { ${enterExpandCss} }\n`;\n\ntype CollapseProps = {\n expanded: boolean;\n timeout?: number;\n className?: string;\n internalClassName?: string;\n};\nexport const Collapse: FC<CollapseProps> = ({\n expanded,\n children,\n className,\n ...rest\n}) => (\n <TransitionGroup component={null}>\n {expanded && (\n <CollapseTransition\n {...rest}\n externalClassName={className}\n key={0}\n >\n {typeof children === 'function' ? children() : children}\n </CollapseTransition>\n )}\n </TransitionGroup>\n);\n","import { useCallback, useRef } from 'react';\n\nexport default function usePersistentFunction<T extends (...args: any[]) => any>(callback: T): T {\n const ref = useRef(callback);\n ref.current = callback;\n return useCallback((...args: any) => ref.current(...args), []) as T;\n}\n","import { useEffect } from 'react';\nimport usePersistentFunction from './usePersistentFunction';\n\nexport function elementAddListener<K extends keyof HTMLElementEventMap, E extends HTMLElement>(\n element: E,\n eventNames: K | K[],\n listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void,\n): () => void {\n const eventNamesArray = Array.isArray(eventNames) ? eventNames : [eventNames];\n eventNamesArray.forEach((eventName) => {\n element.addEventListener(eventName, listener);\n });\n return (): void => {\n eventNamesArray.forEach((eventName) => {\n element.removeEventListener(eventName, listener);\n });\n };\n}\n\nexport function subscribeClickAway<T extends HTMLElement>(element: T, callback: EventListener): () => void {\n return elementAddListener(document as any, ['mousedown', 'touchstart'], (event) => {\n if (element && !element.contains(event.target as any)) {\n callback(event);\n }\n });\n}\n\nexport function useClickAway(use: boolean, ref: any, cb: EventListener): void {\n const mcb = usePersistentFunction(cb);\n\n useEffect(() => { // eslint-disable-line consistent-return\n if (use) {\n return subscribeClickAway(ref.current, mcb) as any;\n }\n }, [use, ref, mcb]);\n}\n","import { type EffectCallback, useEffect } from 'react';\n\nconst useEffectOnce = (effect: EffectCallback) => {\n // eslint-disable-next-line\n useEffect(effect, []);\n};\n\nexport default useEffectOnce;\n","import { useCallback, useEffect, useRef } from 'react';\n\nexport default function useMountedState(): () => boolean {\n const mountedRef = useRef<boolean>(false);\n const get = useCallback(() => mountedRef.current, []);\n\n useEffect(() => {\n mountedRef.current = true;\n\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n return get;\n}\n","import useEffectOnce from './useEffectOnce';\n\nconst useMount = (fn: () => void) => {\n useEffectOnce(() => {\n fn();\n });\n};\n\nexport default useMount;\n","import { useRef } from 'react';\nimport useEffectOnce from './useEffectOnce';\n\nconst useUnmount = (fn: () => any): void => {\n const fnRef = useRef(fn);\n\n // update the ref each render so if it change the newest callback will be invoked\n fnRef.current = fn;\n\n useEffectOnce(() => () => fnRef.current());\n};\n\nexport default useUnmount;\n","import {\n type DependencyList,\n useCallback,\n useRef,\n useState,\n} from 'react';\nimport useMountedState from './useMountedState';\nimport type { FunctionReturningPromise, PromiseType } from './types';\n\nexport type AsyncState<T> =\n | { loading: boolean; error?: undefined; value?: undefined; }\n | { loading: true; error?: Error | undefined; value?: T; }\n | { loading: false; error: Error; value?: undefined; }\n | { loading: false; error?: undefined; value: T; };\n\ntype StateFromFunctionReturningPromise<T extends FunctionReturningPromise> = AsyncState<PromiseType<ReturnType<T>>>;\n\nexport type AsyncFnReturn<T extends FunctionReturningPromise = FunctionReturningPromise> = [\n StateFromFunctionReturningPromise<T>,\n T,\n];\n\nexport default function useAsyncFn<T extends FunctionReturningPromise>(\n fn: T,\n deps: DependencyList = [],\n initialState: StateFromFunctionReturningPromise<T> = { loading: false },\n): AsyncFnReturn<T> {\n const lastCallId = useRef(0);\n const isMounted = useMountedState();\n const [state, set] = useState<StateFromFunctionReturningPromise<T>>(initialState);\n\n const callback = useCallback((...args: Parameters<T>): ReturnType<T> => {\n // eslint-disable-next-line no-plusplus\n const callId = ++lastCallId.current;\n const canSet = () => isMounted() && callId === lastCallId.current;\n\n if (!state.loading && canSet()) {\n set((prevState) => ({ ...prevState, loading: true }));\n }\n\n return fn(...args).then(\n (value) => {\n if (canSet()) {\n set({ value, loading: false });\n }\n\n return value;\n },\n (error) => {\n if (canSet()) {\n set({ error, loading: false });\n }\n\n throw error;\n },\n ) as ReturnType<T>;\n }, deps); // eslint-disable-line\n\n return [state, callback as unknown as T];\n}\n","import { type DependencyList, useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nimport { type FunctionReturningPromise } from './types';\n\nexport type { AsyncState, AsyncFnReturn } from './useAsyncFn';\n\nexport default function useAsync<T extends FunctionReturningPromise>(\n fn: T,\n deps: DependencyList = [],\n) {\n const [state, callback] = useAsyncFn(fn, deps, {\n loading: true,\n });\n\n useEffect(() => {\n callback();\n }, [callback]);\n\n return state;\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","require","isNumber","toCssValue","concat","gridTemplate","createCssDeclaration","property","valueConvert","undefined","GridContainer","styled","displayName","componentId","props","gap","padding","margin","justify","alignItems","Columns","withConfig","sizes","Rows","Horizontal","Vertical","ExpandTransitionComp","_ref","className","externalClassName","internalClassName","_ref$timeout","timeout","children","rest","_objectWithoutProperties","_excluded","refExternal","useRef","refInternal","_useState2","_slicedToArray","useState","externalStyle","setExternalStyle","updateStyle","rect","current","getBoundingClientRect","width","height","useEffect","React","CSSTransition","_objectSpread","classNames","onEnter","onExit","nodeRef","ref","style","CollapseTransition","enterExpandCss","css","exitExpandCss","ExpandTransition","Collapse","_ref2","expanded","_excluded2","TransitionGroup","component","usePersistentFunction","callback","useCallback","apply","arguments","elementAddListener","element","eventNames","listener","eventNamesArray","Array","isArray","forEach","eventName","addEventListener","removeEventListener","subscribeClickAway","document","event","contains","target","useClickAway","use","cb","mcb","effect","useMountedState","mountedRef","fn","useEffectOnce","fnRef","useAsyncFn","deps","length","initialState","loading","lastCallId","isMounted","state","set","callId","canSet","prevState","then","error","useAsync","_useAsyncFn2"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushwoosh/kit-helpers",
3
- "version": "2.2.2",
3
+ "version": "3.0.0",
4
4
  "description": "React component for build Pushwoosh products",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",