UNPKG

4.54 kBSource Map (JSON)View Raw
1{"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../../../src/utils/theme-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAc1C,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,0BAAa,CAAA;AACf,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,IAAI,cAAmC,CAAC;AAExC,SAAS,eAAe;IACtB,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE;QAC1C,OAAO,KAAK,CAAC;KACd;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC;IACxC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IAC/D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IACD,IAAI,aAAa,IAAI,aAAa,KAAK,QAAQ,EAAE;QAC/C,OAAO,KAAK,CAAC;KACd;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAA0B;IACjD,cAAc,GAAG,KAAK,CAAC;AACzB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,KAAK;IACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE;QACzC,IAAI,cAAc,EAAE;YAClB,OAAO,cAAc,KAAK,KAAK,CAAC;SACjC;QACD,cAAc,GAAG,eAAe,EAAE,CAAC;QAEnC,OAAO,cAAc,KAAK,KAAK,CAAC;KACjC;IAED,OAAO,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,cAAc;QAAE,OAAO,cAAc,KAAK,KAAK,CAAC;IAEpD,cAAc,GAAG,eAAe,EAAE,CAAC;IACnC,OAAO,cAAc,KAAK,KAAK,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAErC,IAAI,cAAc;QAAE,OAAO,cAAc,KAAK,KAAK,CAAC;IAEpD,cAAc,GAAG,eAAe,EAAE,CAAC;IACnC,OAAO,cAAc,KAAK,KAAK,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO;QACL,KAAK,EAAE,KAAK,EAAE;QACd,KAAK,EAAE,KAAK,EAAE;QACd,KAAK,EAAE,KAAK,EAAE;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC,UAAoC,CAAC,CAAC;AACzD,CAAC","sourcesContent":["import { window } from './facade/browser';\n\nexport type AvailableBsVersions = 'bs3' | 'bs4' | 'bs5';\n\ninterface IObjectKeys {\n [key: string]: boolean;\n}\n\nexport interface IBsVersion extends IObjectKeys{\n isBs3: boolean;\n isBs4: boolean;\n isBs5: boolean;\n}\n\nexport enum BsVerions {\n isBs3 = 'bs3',\n isBs4 = 'bs4',\n isBs5 = 'bs5'\n}\n\nlet guessedVersion: AvailableBsVersions;\n\nfunction _guessBsVersion(): AvailableBsVersions {\n if (typeof window.document === 'undefined') {\n return 'bs4';\n }\n const spanEl = window.document.createElement('span');\n spanEl.innerText = 'testing bs version';\n spanEl.classList.add('d-none');\n spanEl.classList.add('visually-hidden');\n window.document.head.appendChild(spanEl);\n const rect = spanEl.getBoundingClientRect();\n const overflowStyle = window.getComputedStyle(spanEl).overflow;\n window.document.head.removeChild(spanEl);\n if (!rect || (rect && rect.top !== 0)) {\n return 'bs3';\n }\n if (overflowStyle && overflowStyle === 'hidden') {\n return 'bs5';\n }\n return 'bs4';\n}\n\nexport function setTheme(theme: AvailableBsVersions): void {\n guessedVersion = theme;\n}\n\n// todo: in ngx-bootstrap, bs4 will became a default one\nexport function isBs3(): boolean {\n if (typeof window === 'undefined') {\n return true;\n }\n\n if (typeof window.__theme === 'undefined') {\n if (guessedVersion) {\n return guessedVersion === 'bs3';\n }\n guessedVersion = _guessBsVersion();\n\n return guessedVersion === 'bs3';\n }\n\n return window.__theme === 'bs3';\n}\n\nexport function isBs4(): boolean {\n if (isBs3()) return false;\n\n if (guessedVersion) return guessedVersion === 'bs4';\n\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs4';\n}\n\nexport function isBs5(): boolean {\n if (isBs3() || isBs4()) return false;\n\n if (guessedVersion) return guessedVersion === 'bs5';\n\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs5';\n}\n\nexport function getBsVer(): IBsVersion {\n return {\n isBs3: isBs3(),\n isBs4: isBs4(),\n isBs5: isBs5()\n };\n}\n\nexport function currentBsVersion(): AvailableBsVersions {\n const bsVer = getBsVer();\n const resVersion = Object.keys(bsVer).find(key => bsVer[key]);\n return BsVerions[resVersion as keyof typeof BsVerions];\n}\n\n\n"]}
\No newline at end of file