{"version":3,"file":"/Users/anthonygubler/development/dojo-org/widgets/src/middleware/bodyScroll.tsx","sourceRoot":"","sources":["bodyScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAEjD,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACpC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAE7C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE;IAChF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,gBAAgB,GAAuB,SAAS,CAAC;IAErD,MAAM,YAAY,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,QAAQ,EAAE;YACd,OAAO;SACP;QAED,IAAI,gBAAgB,EAAE;YACrB,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;SACpD;aAAM;YACN,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;SACrC;QACD,QAAQ,GAAG,KAAK,CAAC;QACjB,gBAAgB,GAAG,SAAS,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,IAAI,QAAQ,EAAE;YACb,OAAO;SACP;QAED,QAAQ,GAAG,IAAI,CAAC;QAChB,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE;QACZ,QAAQ,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAe,EAAE,EAAE;QAC1B,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC","sourcesContent":["import { create, destroy } from '@dojo/framework/core/vdom';\nimport global from '@dojo/framework/shim/global';\n\nconst factory = create({ destroy });\nconst bodyStyle = global.document.body.style;\n\nexport const bodyScroll = factory(function bodyScroll({ middleware: { destroy } }) {\n\tlet disabled = false;\n\tlet previousOverflow: string | undefined = undefined;\n\n\tconst enableScroll = () => {\n\t\tif (!disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousOverflow) {\n\t\t\tbodyStyle.setProperty('overflow', previousOverflow);\n\t\t} else {\n\t\t\tbodyStyle.removeProperty('overflow');\n\t\t}\n\t\tdisabled = false;\n\t\tpreviousOverflow = undefined;\n\t};\n\n\tconst disableScroll = () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tdisabled = true;\n\t\tpreviousOverflow = bodyStyle.getPropertyValue('overflow');\n\t\tbodyStyle.setProperty('overflow', 'hidden');\n\t};\n\n\tdestroy(() => {\n\t\tdisabled && enableScroll();\n\t});\n\n\treturn (enable: boolean) => {\n\t\tenable ? enableScroll() : disableScroll();\n\t};\n});\n\nexport default bodyScroll;\n"]}