From 0b4b8628bf87cabab92d6563bf9878db8b86c885 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Fri, 1 Jan 2016 21:35:21 -0600 Subject: [PATCH] feat(platform): add isRTL() and body css class --- ionic/components/modal/test/basic/index.ts | 21 +++++++++++---------- ionic/config/bootstrap.ts | 6 ++++++ ionic/platform/platform.ts | 18 ++++++++++++++++-- scripts/e2e/e2e.template.html | 2 +- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/ionic/components/modal/test/basic/index.ts b/ionic/components/modal/test/basic/index.ts index 0fdab060a2..c5d420f0f4 100644 --- a/ionic/components/modal/test/basic/index.ts +++ b/ionic/components/modal/test/basic/index.ts @@ -13,16 +13,17 @@ class E2EApp { console.log('platforms', platform.platforms()); console.log('mode', config.get('mode')); - console.log('core', platform.is('core')) - console.log('cordova', platform.is('cordova')) - console.log('mobile', platform.is('mobile')) - console.log('ipad', platform.is('ipad')) - console.log('iphone', platform.is('iphone')) - console.log('phablet', platform.is('phablet')) - console.log('tablet', platform.is('tablet')) - console.log('ios', platform.is('ios')) - console.log('android', platform.is('android')) - console.log('windows phone', platform.is('windowsphone')) + console.log('isRTL', platform.isRTL()); + console.log('core', platform.is('core')); + console.log('cordova', platform.is('cordova')); + console.log('mobile', platform.is('mobile')); + console.log('ipad', platform.is('ipad')); + console.log('iphone', platform.is('iphone')); + console.log('phablet', platform.is('phablet')); + console.log('tablet', platform.is('tablet')); + console.log('ios', platform.is('ios')); + console.log('android', platform.is('android')); + console.log('windows phone', platform.is('windowsphone')); platform.ready().then(() => { console.log('platform.ready'); diff --git a/ionic/config/bootstrap.ts b/ionic/config/bootstrap.ts index 269f97503c..facc2da052 100644 --- a/ionic/config/bootstrap.ts +++ b/ionic/config/bootstrap.ts @@ -90,6 +90,12 @@ function setupDom(window, document, config, platform, clickBlock, featureDetect) // ios/md bodyEle.classList.add(mode); + // right-to-left language direction + platform.setDir(document.dir); + if (platform.isRTL()) { + bodyEle.classList.add('rtl'); + } + let versions = platform.versions(); platform.platforms().forEach(platformName => { // platform-ios diff --git a/ionic/platform/platform.ts b/ionic/platform/platform.ts index d94ea3e6f6..257dab85f7 100644 --- a/ionic/platform/platform.ts +++ b/ionic/platform/platform.ts @@ -26,6 +26,7 @@ export class Platform { constructor(platforms=[]) { this._platforms = platforms; this._versions = {}; + this._dir = 'ltr'; this._onResizes = []; this._readyPromise = new Promise(res => { this._readyResolve = res; } ); @@ -147,8 +148,6 @@ export class Platform { /** * @private - * @param {TODO} config TODO - * @returns {TODO} TODO */ prepareReady(config) { let self = this; @@ -168,6 +167,21 @@ export class Platform { } } + /** + * Returns if this app is using right-to-left language direction or not. + * http://www.w3.org/International/questions/qa-html-dir + * @returns {boolean} + */ + isRTL() { + return (this._dir === 'rtl'); + } + + /** + * @private + */ + setDir(dir) { + this._dir = dir.toLowerCase(); + } // Methods meant to be overridden by the engine // ********************************************** diff --git a/scripts/e2e/e2e.template.html b/scripts/e2e/e2e.template.html index 31c29e25cf..ce5d8e5e38 100644 --- a/scripts/e2e/e2e.template.html +++ b/scripts/e2e/e2e.template.html @@ -1,5 +1,5 @@ - + Ionic E2E