diff --git a/src/components/components.module.ts b/src/components/components.module.ts index 0e631c2b9..e72475548 100644 --- a/src/components/components.module.ts +++ b/src/components/components.module.ts @@ -51,6 +51,7 @@ import { CoreIonTabsComponent } from './ion-tabs/ion-tabs'; import { CoreIonTabComponent } from './ion-tabs/ion-tab'; import { CoreInfiniteLoadingComponent } from './infinite-loading/infinite-loading'; import { CoreUserAvatarComponent } from './user-avatar/user-avatar'; +import { CoreStyleComponent } from './style/style'; @NgModule({ declarations: [ @@ -87,7 +88,8 @@ import { CoreUserAvatarComponent } from './user-avatar/user-avatar'; CoreIonTabsComponent, CoreIonTabComponent, CoreInfiniteLoadingComponent, - CoreUserAvatarComponent + CoreUserAvatarComponent, + CoreStyleComponent ], entryComponents: [ CoreContextMenuPopoverComponent, @@ -131,7 +133,8 @@ import { CoreUserAvatarComponent } from './user-avatar/user-avatar'; CoreIonTabsComponent, CoreIonTabComponent, CoreInfiniteLoadingComponent, - CoreUserAvatarComponent + CoreUserAvatarComponent, + CoreStyleComponent ] }) export class CoreComponentsModule {} diff --git a/src/components/style/style.ts b/src/components/style/style.ts new file mode 100644 index 000000000..a4420f6b9 --- /dev/null +++ b/src/components/style/style.ts @@ -0,0 +1,73 @@ +// (C) Copyright 2015 Martin Dougiamas +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { Component, ElementRef, Input, OnChanges, SimpleChange } from '@angular/core'; + +/** + * Component to add a '; + } + } + + /** + * Add a prefix to all rules in a CSS string. + * + * @param {string} css CSS code to be prefixed. + * @param {string} prefix Prefix css selector. + * @return {string} Prefixed CSS. + */ + protected prefixCSS(css: string, prefix: string): string { + if (!css) { + return ''; + } + + if (!prefix) { + return css; + } + + // Remove comments first. + let regExp = /\/\*[\s\S]*?\*\/|([^:]|^)\/\/.*$/gm; + css = css.replace(regExp, ''); + + // Add prefix. + regExp = /([^]*?)({[^]*?}|,)/g; + + return css.replace(regExp, prefix + ' $1 $2'); + } +}