{"version":3,"sources":["../../../Spinner.ts"],"names":[],"mappings":";AAAA,IAAU,UAAU,CA2EnB;AA3ED,WAAU,UAAU;IAAC,IAAA,MAAM,CA2E1B;IA3EoB,WAAA,MAAM;QAAC,IAAA,OAAO,CA2ElC;QA3E2B,WAAA,OAAO;YAC/B,IAAI,kBAAkB,GAAW,CAAC,CAAC;YACnC,IAAI,aAAa,GAAiB,IAAI,CAAC;YAEvC,IAAI,aAAa,GAAY,KAAK,CAAC;YACnC,IAAI,iCAA+C,CAAC;YAEpD,SAAgB,qBAAqB;gBACjC,OAAO,kBAAkB,CAAC;YAC9B,CAAC;YAFe,6BAAqB,wBAEpC,CAAA;YAED,SAAgB,KAAK;gBACjB,kBAAkB,EAAE,CAAC;gBAErB,IAAI,aAAa,KAAK,IAAI,EAAE;oBACxB,YAAY,CAAC,iCAAiC,CAAC,CAAC;oBAChD,aAAa,GAAG,KAAK,CAAC;iBACzB;gBACD,IAAI,aAAa,KAAK,IAAI,EAAE;oBACxB,aAAa,GAAG,UAAU,CAAC;wBACvB,aAAa,GAAG,IAAI,CAAC;wBACrB,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACX;YACL,CAAC;YAbe,aAAK,QAapB,CAAA;YAED,SAAgB,IAAI;gBAChB,kBAAkB,EAAE,CAAC;gBAErB,IAAI,kBAAkB,KAAK,CAAC,EAAE;oBAC1B,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC5B,aAAa,GAAG,IAAI,CAAC;oBAErB,aAAa,GAAG,IAAI,CAAC;oBACrB,iCAAiC,GAAG,UAAU,CAAC;wBAC3C,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACpC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACX;YACL,CAAC;YAZe,YAAI,OAYnB,CAAA;YAED,SAAS,kBAAkB,CAAC,KAAwB;gBAChD,kEAAkE;gBAClE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAElC,8BAA8B;gBAC9B,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YAED,SAAS,gBAAgB;gBACrB,OAAO;YACX,CAAC;YAED,SAAgB,YAAY;gBACxB,6BAA6B;gBAC7B,IAAM,WAAW,GAAW,2UAS3B,CAAC;gBAEF,IAAM,MAAM,GAAc,IAAI,SAAS,EAAE,CAAC;gBAC1C,IAAM,iBAAiB,GAAgB,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAyB,CAAC;gBACvH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAE7C,2BAA2B;gBAC3B,gBAAgB,EAAE,CAAC;gBAEnB,uCAAuC;gBACvC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAChE,CAAC;YAtBe,oBAAY,eAsB3B,CAAA;QACL,CAAC,EA3E2B,OAAO,GAAP,cAAO,KAAP,cAAO,QA2ElC;IAAD,CAAC,EA3EoB,MAAM,GAAN,iBAAM,KAAN,iBAAM,QA2E1B;AAAD,CAAC,EA3ES,UAAU,KAAV,UAAU,QA2EnB;AAED,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC","file":"Spinner.js","sourcesContent":["namespace MSTrgovina.Common.Spinner {\n let activeSpinnerCount: number = 0;\n let timeoutHandle: NodeJS.Timer = null;\n\n let shutdownDelay: boolean = false;\n let spinnerShutdownDelayTimeoutHandle: NodeJS.Timer;\n\n export function GetActiveSpinnerCount(): number {\n return activeSpinnerCount;\n }\n\n export function Start(): void {\n activeSpinnerCount++;\n\n if (shutdownDelay === true) {\n clearTimeout(spinnerShutdownDelayTimeoutHandle);\n shutdownDelay = false;\n }\n if (timeoutHandle === null) {\n timeoutHandle = setTimeout(function (): any {\n timeoutHandle = null;\n $(\"body\").addClass(\"loader\");\n }, 300);\n }\n }\n\n export function Stop(): void {\n activeSpinnerCount--;\n\n if (activeSpinnerCount === 0) {\n clearTimeout(timeoutHandle);\n timeoutHandle = null;\n\n shutdownDelay = true;\n spinnerShutdownDelayTimeoutHandle = setTimeout(function (): any {\n $(\"body\").removeClass(\"loader\");\n }, 100);\n }\n }\n\n function HandleBeforeUnload(event: BeforeUnloadEvent): void {\n // prevent any incomplete ajax requests from removing loader class\n MSTrgovina.Common.Spinner.Start();\n\n // add loader class explicitly\n $(\"body\").addClass(\"loader\");\n }\n\n function SetupInterceptor(): void {\n // TODO\n }\n\n export function SetupSpinner(): void {\n /* Add spinner to DOM tree */\n const spinnerHtml: string = `\n
\n
\n
\n
\n \n
\n
\n
\n `;\n\n const parser: DOMParser = new DOMParser();\n const customHtmlElement: HTMLElement = parser.parseFromString(spinnerHtml, \"text/html\").body.firstChild as HTMLElement;\n document.body.appendChild(customHtmlElement);\n\n /* intercept ajax callse */\n SetupInterceptor();\n\n /* spin when navigating off the page */\n window.addEventListener(\"beforeunload\", HandleBeforeUnload);\n }\n}\n\nMSTrgovina.Common.Spinner.SetupSpinner();"]}