{"version":3,"sources":["angular-scroll-rtl.js"],"names":[],"mappings":";;AAAA,CAAC,YAAM;AACH;;AAEA,QAAM,MAAM,QAAQ,MAAR,CAAe,WAAf,EAA4B,EAA5B,CAAZ;;AAEA,QAAI,GAAJ,CAAQ,CAAC,WAAD,EAAc,UAAC,SAAD,EAAe;;AAEjC,iBAAS,0BAAT,GAAsC;AAClC,gBAAM,OAAO,UAAU,IAAV,CAAe,MAAf,CAAb;AACA,gBAAM,UAAU,QAAQ,OAAR,CAAgB,6HAAhB,CAAhB;AACA,iBAAK,MAAL,CAAY,OAAZ;AACA,gBAAI,OAAO,SAAX;AACA,gBAAI,QAAQ,CAAR,EAAW,UAAX,GAAwB,CAA5B,EAA+B;AAC3B,uBAAO,SAAP;AACH,aAFD,MAEO;AACH,wBAAQ,CAAR,EAAW,UAAX,GAAwB,CAAxB;AACA,oBAAI,QAAQ,CAAR,EAAW,UAAX,KAA0B,CAA9B,EAAiC;AAC7B,2BAAO,UAAP;AACH;AACJ;AACD,oBAAQ,MAAR;AACA,mBAAO,IAAP;AACH;;AAED,iBAAS,YAAT,CAAsB,OAAtB,EAA+B,KAA/B,EAAsC;AAClC,gBAAI,UAAU,SAAd,EAAyB;AACrB,oBAAI,OAAO,gBAAX,EAA6B;AACzB,2BAAO,OAAO,gBAAP,CAAwB,OAAxB,EAAiC,IAAjC,EAAuC,SAA9C;AACH,iBAFD,MAEO,IAAI,QAAQ,YAAZ,EAA0B;AAC7B,2BAAO,QAAQ,YAAR,CAAqB,SAA5B;AACH;AACJ,aAND,MAMO;AACH,wBAAQ,KAAR,CAAc,SAAd,GAA0B,KAA1B;AACH;AACJ;;AAED,iBAAS,aAAT,CAAuB,OAAvB,EAAgC;;AAE5B,gBAAM,cAAc;AAChB,yBAAS;AACL,yBAAK;AAAA,+BAAM,QAAQ,UAAd;AAAA,qBADA;AAEL,yBAAK;AAAA,+BAAK,QAAQ,UAAR,GAAqB,CAA1B;AAAA;AAFA,iBADO;AAKhB,yBAAS;AACL,yBAAK;AAAA,+BAAM,QAAQ,WAAR,GAAsB,QAAQ,WAA9B,GAA4C,QAAQ,UAA1D;AAAA,qBADA;AAEL,yBAAK;AAAA,+BAAK,QAAQ,UAAR,GAAqB,QAAQ,WAAR,GAAsB,QAAQ,WAA9B,GAA4C,CAAtE;AAAA;AAFA,iBALO;AAShB,0BAAU;AACN,yBAAK;AAAA,+BAAM,CAAC,QAAQ,UAAf;AAAA,qBADC;AAEN,yBAAK;AAAA,+BAAK,QAAQ,UAAR,GAAqB,CAAC,CAA3B;AAAA;AAFC;AATM,aAApB;;AAeA,gBAAI,aAAa,OAAb,MAA0B,KAA9B,EAAqC;AACjC,uBAAO,YAAY,uBAAZ,CAAP;AACH,aAFD,MAEO;AACH,uBAAO,YAAY,OAAnB;AACH;AACJ;;AAED,YAAM,0BAA0B,4BAAhC;;AAEA,gBAAQ,OAAR,CAAgB,SAAhB,CAA0B,UAA1B,GAAuC,UAAS,KAAT,EAAgB;AACnD,gBAAM,IAAI,KAAK,CAAL,CAAV;AACA,gBAAI,UAAU,SAAd,EAAyB;;AAErB,qBAAK,IAAI,IAAI,CAAb,EAAgB,IAAI,KAAK,MAAzB,EAAiC,EAAE,CAAnC,EAAsC;AAClC,kCAAc,KAAK,CAAL,CAAd,EAAuB,GAAvB,CAA2B,KAA3B;AACH;AACJ,aALD,MAKO;;AAEH,uBAAO,cAAc,KAAK,CAAL,CAAd,EAAuB,GAAvB,EAAP;AACH;AACJ,SAXD;;AAaA,gBAAQ,OAAR,CAAgB,SAAhB,CAA0B,SAA1B,GAAsC,UAAS,KAAT,EAAgB;AAClD,mBAAO,aAAa,KAAK,CAAL,CAAb,EAAsB,KAAtB,CAAP;AACH,SAFD;AAIH,KA1EO,CAAR;AA4EH,CAjFD","file":"angular-scroll-rtl.js","sourcesContent":["(() => {\n    'use strict';\n\n    const mod = angular.module('td.scroll', []);\n\n    mod.run(['$document', ($document) => {\n\n        function getRTLHorizontalScrollType() {\n            const body = $document.find('body');\n            const tmpElem = angular.element('<div dir=\"rtl\" style=\"font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll\">A</div>');\n            body.append(tmpElem);\n            let type = 'default';\n            if (tmpElem[0].scrollLeft > 0) {\n                type = 'reverse';\n            } else {\n                tmpElem[0].scrollLeft = 1;\n                if (tmpElem[0].scrollLeft === 0) {\n                    type = 'negative';\n                }\n            }\n            tmpElem.remove();\n            return type;\n        }\n\n        function getDirection(element, value) {\n            if (value === undefined) {\n                if (window.getComputedStyle) {\n                    return window.getComputedStyle(element, null).direction;\n                } else if (element.currentStyle) {\n                    return element.currentStyle.direction;\n                }\n            } else {\n                element.style.direction = value;\n            }\n        };\n\n        function getScrollType(element) {\n\n            const scrollTypes = {\n                default: {\n                    get: () => element.scrollLeft,\n                    set: v => element.scrollLeft = v \n                },\n                reverse: {\n                    get: () => element.scrollWidth - element.clientWidth - element.scrollLeft,\n                    set: v => element.scrollLeft = element.scrollWidth - element.clientWidth - v\n                }, \n                negative: {\n                    get: () => -element.scrollLeft,\n                    set: v => element.scrollLeft = -v\n                }\n            };\n\n            if (getDirection(element) === 'rtl') {\n                return scrollTypes[rtlHorizontalScrollType];\n            } else {\n                return scrollTypes.default;\n            }\n        }\n\n        const rtlHorizontalScrollType = getRTLHorizontalScrollType();\n\n        angular.element.prototype.scrollLeft = function(value) {\n            const e = this[0];\n            if (value !== undefined) {\n                // set:\n                for (let i = 0; i < this.length; ++i) {\n                    getScrollType(this[i]).set(value);\n                }\n            } else {\n                // get:\n                return getScrollType(this[0]).get();\n            }\n        };\n        \n        angular.element.prototype.direction = function(value) {\n            return getDirection(this[0], value);\n        };\n\n    }]);\n\n})();"],"sourceRoot":"/source/"}