feat: System css classes for modals (#8155)

* feat: update modal views CSS classes

* chore: fix failing test
This commit is contained in:
Alexander Vakrilov
2019-12-03 11:08:33 +02:00
committed by GitHub
parent 2bb7ad9d01
commit 7b78f3b0c6
9 changed files with 482 additions and 286 deletions

View File

@ -1,32 +1,44 @@
const MODAL = "modal";
const ROOT = "root";
const cssClasses = [];
export const CLASS_PREFIX = "ns-";
export const MODAL_ROOT_VIEW_CSS_CLASS = `${CLASS_PREFIX}${MODAL}`;
export const ROOT_VIEW_CSS_CLASS = `${CLASS_PREFIX}${ROOT}`;
const modalRootViewCssClass = `${CLASS_PREFIX}${MODAL}`;
const rootViewCssClasses = [`${CLASS_PREFIX}${ROOT}`];
export function getModalRootViewCssClass(): string {
return modalRootViewCssClass;
export function getSystemCssClasses(): string[] {
return cssClasses;
}
export function getRootViewCssClasses(): string[] {
return rootViewCssClasses;
export function pushToSystemCssClasses(value: string): number {
cssClasses.push(value);
return cssClasses.length;
}
export function pushToRootViewCssClasses(value: string): number {
rootViewCssClasses.push(value);
return rootViewCssClasses.length;
}
export function removeFromRootViewCssClasses(value: string): string {
const index = rootViewCssClasses.indexOf(value);
export function removeSystemCssClass(value: string): string {
const index = cssClasses.indexOf(value);
let removedElement;
if (index > -1) {
removedElement = rootViewCssClasses.splice(index, 1);
removedElement = cssClasses.splice(index, 1);
}
return removedElement;
}
export function getModalRootViewCssClass(): string {
return MODAL_ROOT_VIEW_CSS_CLASS;
}
export function getRootViewCssClasses(): string[] {
return [ROOT_VIEW_CSS_CLASS, ...cssClasses];
}
export function pushToRootViewCssClasses(value: string): number {
return pushToSystemCssClasses(value) + 1; // because of ROOT_VIEW_CSS_CLASS
}
export function removeFromRootViewCssClasses(value: string): string {
return removeSystemCssClass(value);
}