{"version":3,"file":"transform.cjs","sources":["../../src/transform.ts"],"sourcesContent":["import {SetterTransformMethod} from \"./types\";\n\nexport const toggleTransform: () => SetterTransformMethod<boolean, { toggle: () => void }> = () => {\n    return ({setter}) => {\n        return {\n            toggle: () => {\n                setter((prev) => !prev)\n            },\n            set: setter,\n        }\n    }\n\n}\n\ntype OpenLike = {\n    isOpen: boolean\n}\n\nexport type DialogValue<T> = {\n    state?: T,\n} & OpenLike\n\ntype DialogMethods<R> = {\n    close: () => void;\n    open: (state: R | undefined) => void;\n    setState: (state: R) => void;\n}\n\nexport const dialogTransform = <R, >(): SetterTransformMethod<DialogValue<R>, DialogMethods<R>> => {\n    return ({setter}) => {\n        return {\n            close: () => {\n                const newValue = {\n                    isOpen: false,\n                }\n                setter(newValue)\n            },\n            open: (state: R | undefined) => {\n                const newValue = {\n                    isOpen: true,\n                    state,\n                }\n                setter(newValue)\n            },\n            setState: (newState) => {\n                setter((prev: DialogValue<R>) => {\n                    return {\n                        state: newState,\n                        isOpen: prev.isOpen,\n                    }\n                })\n            }\n        }\n    }\n\n}\n\ntype PageLike = {\n    page: number,\n    size: number,\n}\n\nexport type PageMethods = {\n    next: () => void;\n    prev: () => void;\n    setPage: (page: number) => void;\n    setSize: (size: number) => void;\n}\n\nexport const pageTransform = (): SetterTransformMethod<PageLike, PageMethods> => {\n    return ({setter}) => {\n        return {\n            next: () => {\n                setter((prev) => {\n                    return {\n                        page: prev.page + 1,\n                        size: prev.size,\n                    }\n                })\n            },\n            prev: () => {\n                setter((prev) => {\n                    return {\n                        page: prev.page - 1,\n                        size: prev.size,\n                    }\n                })\n            },\n            setPage: (page: number) => {\n                setter((prev) => {\n                    return {\n                        page,\n                        size: prev.size,\n                    }\n                })\n            },\n            setSize: (size: number) => {\n                setter((prev) => {\n                    return {\n                        page: prev.page,\n                        size,\n                    }\n                })\n            }\n        }\n    }\n\n}\n\n\n"],"names":[],"mappings":";;AAEO,MAAM,kBAAgF,MAAM;AACxF,SAAA,CAAC,EAAC,aAAY;AACV,WAAA;AAAA,MACH,QAAQ,MAAM;AACH,eAAA,CAAC,SAAS,CAAC,IAAI;AAAA,MAC1B;AAAA,MACA,KAAK;AAAA,IACT;AAAA,EACJ;AAEJ;AAgBO,MAAM,kBAAkB,MAAoE;AACxF,SAAA,CAAC,EAAC,aAAY;AACV,WAAA;AAAA,MACH,OAAO,MAAM;AACT,cAAM,WAAW;AAAA,UACb,QAAQ;AAAA,QACZ;AACA,eAAO,QAAQ;AAAA,MACnB;AAAA,MACA,MAAM,CAAC,UAAyB;AAC5B,cAAM,WAAW;AAAA,UACb,QAAQ;AAAA,UACR;AAAA,QACJ;AACA,eAAO,QAAQ;AAAA,MACnB;AAAA,MACA,UAAU,CAAC,aAAa;AACpB,eAAO,CAAC,SAAyB;AACtB,iBAAA;AAAA,YACH,OAAO;AAAA,YACP,QAAQ,KAAK;AAAA,UACjB;AAAA,QAAA,CACH;AAAA,MAAA;AAAA,IAET;AAAA,EACJ;AAEJ;AAcO,MAAM,gBAAgB,MAAoD;AACtE,SAAA,CAAC,EAAC,aAAY;AACV,WAAA;AAAA,MACH,MAAM,MAAM;AACR,eAAO,CAAC,SAAS;AACN,iBAAA;AAAA,YACH,MAAM,KAAK,OAAO;AAAA,YAClB,MAAM,KAAK;AAAA,UACf;AAAA,QAAA,CACH;AAAA,MACL;AAAA,MACA,MAAM,MAAM;AACR,eAAO,CAAC,SAAS;AACN,iBAAA;AAAA,YACH,MAAM,KAAK,OAAO;AAAA,YAClB,MAAM,KAAK;AAAA,UACf;AAAA,QAAA,CACH;AAAA,MACL;AAAA,MACA,SAAS,CAAC,SAAiB;AACvB,eAAO,CAAC,SAAS;AACN,iBAAA;AAAA,YACH;AAAA,YACA,MAAM,KAAK;AAAA,UACf;AAAA,QAAA,CACH;AAAA,MACL;AAAA,MACA,SAAS,CAAC,SAAiB;AACvB,eAAO,CAAC,SAAS;AACN,iBAAA;AAAA,YACH,MAAM,KAAK;AAAA,YACX;AAAA,UACJ;AAAA,QAAA,CACH;AAAA,MAAA;AAAA,IAET;AAAA,EACJ;AAEJ;;;;"}