| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -22,6 +22,7 @@ import { | |||
| 22 | 22 | } from "tns-core-modules/ui/core/view/view-common"; | |
| 23 | 23 | import { DeviceType } from "tns-core-modules/ui/enums/enums"; | |
| 24 | 24 | ||
| 25 | + const CLASS_NAME = "class-name"; | ||
| 25 | 26 | const ROOT_CSS_CLASS = "ns-root"; | |
| 26 | 27 | const MODAL_CSS_CLASS = "ns-modal"; | |
| 27 | 28 | const ANDROID_PLATFORM_CSS_CLASS = "ns-android"; | |
@@ -32,18 +33,41 @@ const PORTRAIT_ORIENTATION_CSS_CLASS = "ns-portrait"; | |||
| 32 | 33 | const LANDSCAPE_ORIENTATION_CSS_CLASS = "ns-landscape"; | |
| 33 | 34 | const UNKNOWN_ORIENTATION_CSS_CLASS = "ns-unknown"; | |
| 34 | 35 | ||
| 35 | - export function test_root_view_root_css_class() { | ||
| 36 | - const rootViewCssClasses = getRootView().cssClasses; | ||
| 36 | + function _test_root_view_root_css_class(shouldSetClassName: boolean) { | ||
| 37 | + const rootView = getRootView(); | ||
| 38 | + if (shouldSetClassName) { | ||
| 39 | + rootView.className = CLASS_NAME; | ||
| 40 | + } | ||
| 37 | 41 | ||
| 42 | + const rootViewCssClasses = rootView.cssClasses; | ||
| 38 | 43 | TKUnit.assertTrue(rootViewCssClasses.has( | |
| 39 | 44 | ROOT_CSS_CLASS), | |
| 40 | 45 | `${ROOT_CSS_CLASS} CSS class is missing` | |
| 41 | 46 | ); | |
| 47 | + | ||
| 48 | + if (shouldSetClassName) { | ||
| 49 | + TKUnit.assertTrue(rootViewCssClasses.has( | ||
| 50 | + CLASS_NAME), | ||
| 51 | + `${CLASS_NAME} CSS class is missing` | ||
| 52 | + ); | ||
| 53 | + } | ||
| 42 | 54 | } | |
| 43 | 55 | ||
| 44 | - export function test_root_view_platform_css_class() { | ||
| 45 | - const rootViewCssClasses = getRootView().cssClasses; | ||
| 56 | + export function test_root_view_root_css_class() { | ||
| 57 | + _test_root_view_root_css_class(false); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + export function test_root_view_class_name_preserve_root_css_class() { | ||
| 61 | + _test_root_view_root_css_class(true); | ||
| 62 | + } | ||
| 46 | 63 | ||
| 64 | + function _test_root_view_platform_css_class(shouldSetClassName: boolean) { | ||
| 65 | + const rootView = getRootView(); | ||
| 66 | + if (shouldSetClassName) { | ||
| 67 | + rootView.className = CLASS_NAME; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + const rootViewCssClasses = rootView.cssClasses; | ||
| 47 | 71 | if (isAndroid) { | |
| 48 | 72 | TKUnit.assertTrue(rootViewCssClasses.has( | |
| 49 | 73 | ANDROID_PLATFORM_CSS_CLASS), | |
@@ -63,10 +87,30 @@ export function test_root_view_platform_css_class() { | |||
| 63 | 87 | `${ANDROID_PLATFORM_CSS_CLASS} CSS class is present` | |
| 64 | 88 | ); | |
| 65 | 89 | } | |
| 90 | + | ||
| 91 | + if (shouldSetClassName) { | ||
| 92 | + TKUnit.assertTrue(rootViewCssClasses.has( | ||
| 93 | + CLASS_NAME), | ||
| 94 | + `${CLASS_NAME} CSS class is missing` | ||
| 95 | + ); | ||
| 96 | + } | ||
| 66 | 97 | } | |
| 67 | 98 | ||
| 68 | - export function test_root_view_device_type_css_class() { | ||
| 69 | - const rootViewCssClasses = getRootView().cssClasses; | ||
| 99 | + export function test_root_view_platform_css_class() { | ||
| 100 | + _test_root_view_platform_css_class(false); | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + export function test_root_view_class_name_preserve_platform_css_class() { | ||
| 104 | + _test_root_view_platform_css_class(true); | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + function _test_root_view_device_type_css_class(shouldSetClassName: boolean) { | ||
| 108 | + const rootView = getRootView(); | ||
| 109 | + if (shouldSetClassName) { | ||
| 110 | + rootView.className = CLASS_NAME; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + const rootViewCssClasses = rootView.cssClasses; | ||
| 70 | 114 | const deviceType = device.deviceType; | |
| 71 | 115 | ||
| 72 | 116 | if (deviceType === DeviceType.Phone) { | |
@@ -88,10 +132,30 @@ export function test_root_view_device_type_css_class() { | |||
| 88 | 132 | `${PHONE_DEVICE_TYPE_CSS_CLASS} CSS class is present` | |
| 89 | 133 | ); | |
| 90 | 134 | } | |
| 135 | + | ||
| 136 | + if (shouldSetClassName) { | ||
| 137 | + TKUnit.assertTrue(rootViewCssClasses.has( | ||
| 138 | + CLASS_NAME), | ||
| 139 | + `${CLASS_NAME} CSS class is missing` | ||
| 140 | + ); | ||
| 141 | + } | ||
| 91 | 142 | } | |
| 92 | 143 | ||
| 93 | - export function test_root_view_orientation_css_class() { | ||
| 94 | - const rootViewCssClasses = getRootView().cssClasses; | ||
| 144 | + export function test_root_view_device_type_css_class() { | ||
| 145 | + _test_root_view_device_type_css_class(false); | ||
| 146 | + } | ||
| 147 | + | ||
| 148 | + export function test_root_view_class_name_preserve_device_type_css_class() { | ||
| 149 | + _test_root_view_device_type_css_class(true); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + function _test_root_view_orientation_css_class(shouldSetClassName: boolean) { | ||
| 153 | + const rootView = getRootView(); | ||
| 154 | + if (shouldSetClassName) { | ||
| 155 | + rootView.className = CLASS_NAME; | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + const rootViewCssClasses = rootView.cssClasses; | ||
| 95 | 159 | let appOrientation; | |
| 96 | 160 | ||
| 97 | 161 | if (isAndroid) { | |
@@ -140,9 +204,24 @@ export function test_root_view_orientation_css_class() { | |||
| 140 | 204 | `${PORTRAIT_ORIENTATION_CSS_CLASS} CSS class is present` | |
| 141 | 205 | ); | |
| 142 | 206 | } | |
| 207 | + | ||
| 208 | + if (shouldSetClassName) { | ||
| 209 | + TKUnit.assertTrue(rootViewCssClasses.has( | ||
| 210 | + CLASS_NAME), | ||
| 211 | + `${CLASS_NAME} CSS class is missing` | ||
| 212 | + ); | ||
| 213 | + } | ||
| 143 | 214 | } | |
| 144 | 215 | ||
| 145 | - export function test_modal_root_view_modal_css_class() { | ||
| 216 | + export function test_root_view_orientation_css_class() { | ||
| 217 | + _test_root_view_orientation_css_class(false); | ||
| 218 | + } | ||
| 219 | + | ||
| 220 | + export function test_root_view_class_name_preserve_orientation_css_class() { | ||
| 221 | + _test_root_view_orientation_css_class(true); | ||
| 222 | + } | ||
| 223 | + | ||
| 224 | + function _test_modal_root_view_modal_css_class(shouldSetClassName: boolean) { | ||
| 146 | 225 | let modalClosed = false; | |
| 147 | 226 | ||
| 148 | 227 | const modalCloseCallback = function () { | |
@@ -153,7 +232,20 @@ export function test_modal_root_view_modal_css_class() { | |||
| 153 | 232 | const page = <Page>args.object; | |
| 154 | 233 | page.off(View.shownModallyEvent, modalPageShownModallyEventHandler); | |
| 155 | 234 | ||
| 156 | - TKUnit.assertTrue(_rootModalViews[0].cssClasses.has(MODAL_CSS_CLASS)); | ||
| 235 | + const rootModalView = _rootModalViews[0]; | ||
| 236 | + if (shouldSetClassName) { | ||
| 237 | + rootModalView.className = CLASS_NAME; | ||
| 238 | + } | ||
| 239 | + | ||
| 240 | + const rootModalViewCssClasses = rootModalView.cssClasses; | ||
| 241 | + TKUnit.assertTrue(rootModalViewCssClasses.has(MODAL_CSS_CLASS), | ||
| 242 | + `${MODAL_CSS_CLASS} CSS class is missing`); | ||
| 243 | + | ||
| 244 | + if (shouldSetClassName) { | ||
| 245 | + TKUnit.assertTrue(rootModalViewCssClasses.has(CLASS_NAME), | ||
| 246 | + `${CLASS_NAME} CSS class is missing`); | ||
| 247 | + } | ||
| 248 | + | ||
| 157 | 249 | args.closeCallback(); | |
| 158 | 250 | }; | |
| 159 | 251 | ||
@@ -186,3 +278,11 @@ export function test_modal_root_view_modal_css_class() { | |||
| 186 | 278 | helper.navigate(hostPageFactory); | |
| 187 | 279 | TKUnit.waitUntilReady(() => modalClosed); | |
| 188 | 280 | } | |
| 281 | + | ||
| 282 | + export function test_modal_root_view_modal_css_class() { | ||
| 283 | + _test_modal_root_view_modal_css_class(false); | ||
| 284 | + } | ||
| 285 | + | ||
| 286 | + export function test_modal_root_view_class_name_preserve_modal_css_class() { | ||
| 287 | + _test_modal_root_view_modal_css_class(true); | ||
| 288 | + } | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -225,7 +225,7 @@ export function test_multiple_class_selector() { | |||
| 225 | 225 | let page = helper.getClearCurrentPage(); | |
| 226 | 226 | let btnWithClasses: buttonModule.Button; | |
| 227 | 227 | ||
| 228 | - page.css = ".style1 { color: red; } .style2 { background-color: blue } "; | ||
| 228 | + page.css = ".style1 { color: red; } .style2 { background-color: blue; } "; | ||
| 229 | 229 | ||
| 230 | 230 | //// Will be styled | |
| 231 | 231 | btnWithClasses = new buttonModule.Button(); | |
@@ -239,6 +239,24 @@ export function test_multiple_class_selector() { | |||
| 239 | 239 | helper.assertViewBackgroundColor(btnWithClasses, "#0000FF"); | |
| 240 | 240 | } | |
| 241 | 241 | ||
| 242 | + export function test_class_selector_overwriting() { | ||
| 243 | + const page = helper.getClearCurrentPage(); | ||
| 244 | + page.css = ".first { color: red; } .second { background-color: blue; }"; | ||
| 245 | + | ||
| 246 | + const btnWithClass = new buttonModule.Button(); | ||
| 247 | + const stack = new stackModule.StackLayout(); | ||
| 248 | + page.content = stack; | ||
| 249 | + stack.addChild(btnWithClass); | ||
| 250 | + | ||
| 251 | + btnWithClass.className = "first"; | ||
| 252 | + helper.assertViewColor(btnWithClass, "#FF0000"); | ||
| 253 | + TKUnit.assert(btnWithClass.style.backgroundColor === undefined, " Background color should not have a value"); | ||
| 254 | + | ||
| 255 | + btnWithClass.className = "second"; | ||
| 256 | + TKUnit.assert(btnWithClass.style.color === undefined, "Color should not have a value"); | ||
| 257 | + helper.assertViewBackgroundColor(btnWithClass, "#0000FF"); | ||
| 258 | + } | ||
| 259 | + | ||
| 242 | 260 | export function test_id_selector() { | |
| 243 | 261 | let page = helper.getClearCurrentPage(); | |
| 244 | 262 | page.style.color = unsetValue; | |
@@ -1497,7 +1515,7 @@ export function test_css_calc() { | |||
| 1497 | 1515 | TKUnit.assertEqual(stack.width as any, 125, "Stack - width === 125"); | |
| 1498 | 1516 | ||
| 1499 | 1517 | (stack as any).style = `width: calc(100% / 2)`; | |
| 1500 | - TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1518 | + TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1501 | 1519 | ||
| 1502 | 1520 | // This should log an error for the invalid css-calc expression, but not cause a crash | |
| 1503 | 1521 | stack.className = "invalid-css-calc"; | |
@@ -1568,7 +1586,7 @@ export function test_nested_css_calc() { | |||
| 1568 | 1586 | ||
| 1569 | 1587 | (stack as any).style = `width: calc(100% * calc(1 / 2)`; | |
| 1570 | 1588 | ||
| 1571 | - TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1589 | + TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1572 | 1590 | } | |
| 1573 | 1591 | ||
| 1574 | 1592 | export function test_css_variables() { | |
@@ -1678,7 +1696,7 @@ export function test_css_calc_and_variables() { | |||
| 1678 | 1696 | ||
| 1679 | 1697 | // Test setting the CSS variable via the style-attribute, this should override any value set via css-class | |
| 1680 | 1698 | (stack as any).style = `${cssVarName}: 0.5`; | |
| 1681 | - TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1699 | + TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1682 | 1700 | } | |
| 1683 | 1701 | ||
| 1684 | 1702 | export function test_css_variable_fallback() { | |
@@ -1819,10 +1837,10 @@ export function test_nested_css_calc_and_variables() { | |||
| 1819 | 1837 | // Test setting the CSS variable via the style-attribute, this should override any value set via css-class | |
| 1820 | 1838 | stack.className = "wide"; | |
| 1821 | 1839 | (stack as any).style = `${cssVarName}: 0.25`; | |
| 1822 | - TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1840 | + TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 0.5 }, "Stack - width === 50%"); | ||
| 1823 | 1841 | ||
| 1824 | 1842 | stack.className = "nested"; | |
| 1825 | - TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 1 }, "Stack - width === 100%"); | ||
| 1843 | + TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 1 }, "Stack - width === 100%"); | ||
| 1826 | 1844 | } | |
| 1827 | 1845 | ||
| 1828 | 1846 | export function test_css_variable_is_applied_to_normal_properties() { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -40,6 +40,8 @@ import { | |||
| 40 | 40 | LoadAppCSSEventData, | |
| 41 | 41 | UnhandledErrorEventData | |
| 42 | 42 | } from "./application"; | |
| 43 | + | ||
| 44 | + import { CLASS_PREFIX, pushToRootViewCssClasses, removeFromRootViewCssClasses } from "../css/system-classes"; | ||
| 43 | 45 | import { DeviceOrientation } from "../ui/enums/enums"; | |
| 44 | 46 | ||
| 45 | 47 | export { UnhandledErrorEventData, DiscardedErrorEventData, CssChangedEventData, LoadAppCSSEventData }; | |
@@ -54,11 +56,10 @@ export const uncaughtErrorEvent = "uncaughtError"; | |||
| 54 | 56 | export const discardedErrorEvent = "discardedError"; | |
| 55 | 57 | export const orientationChangedEvent = "orientationChanged"; | |
| 56 | 58 | ||
| 57 | - export const CSS_CLASS_PREFIX = "ns-"; | ||
| 58 | 59 | const ORIENTATION_CSS_CLASSES = [ | |
| 59 | - `${CSS_CLASS_PREFIX}${DeviceOrientation.portrait}`, | ||
| 60 | - `${CSS_CLASS_PREFIX}${DeviceOrientation.landscape}`, | ||
| 61 | - `${CSS_CLASS_PREFIX}${DeviceOrientation.unknown}` | ||
| 60 | + `${CLASS_PREFIX}${DeviceOrientation.portrait}`, | ||
| 61 | + `${CLASS_PREFIX}${DeviceOrientation.landscape}`, | ||
| 62 | + `${CLASS_PREFIX}${DeviceOrientation.unknown}` | ||
| 62 | 63 | ]; | |
| 63 | 64 | ||
| 64 | 65 | let cssFile: string = "./app.css"; | |
@@ -126,9 +127,15 @@ export function loadAppCss(): void { | |||
| 126 | 127 | } | |
| 127 | 128 | ||
| 128 | 129 | export function orientationChanged(rootView: View, newOrientation: "portrait" | "landscape" | "unknown"): void { | |
| 129 | - const newOrientationCssClass = `${CSS_CLASS_PREFIX}${newOrientation}`; | ||
| 130 | + const newOrientationCssClass = `${CLASS_PREFIX}${newOrientation}`; | ||
| 130 | 131 | if (!rootView.cssClasses.has(newOrientationCssClass)) { | |
| 131 | - ORIENTATION_CSS_CLASSES.forEach(c => rootView.cssClasses.delete(c)); | ||
| 132 | + const removeCssClass = (c: string) => { | ||
| 133 | + removeFromRootViewCssClasses(c); | ||
| 134 | + rootView.cssClasses.delete(c); | ||
| 135 | + }; | ||
| 136 | + | ||
| 137 | + ORIENTATION_CSS_CLASSES.forEach(c => removeCssClass(c)); | ||
| 138 | + pushToRootViewCssClasses(newOrientationCssClass); | ||
| 132 | 139 | rootView.cssClasses.add(newOrientationCssClass); | |
| 133 | 140 | rootView._onCssStateChange(); | |
| 134 | 141 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -53,11 +53,6 @@ export const lowMemoryEvent: string; | |||
| 53 | 53 | */ | |
| 54 | 54 | export const orientationChangedEvent: string; | |
| 55 | 55 | ||
| 56 | - /** | ||
| 57 | - * String value "ns-" used for CSS class prefix. | ||
| 58 | - */ | ||
| 59 | - export const CSS_CLASS_PREFIX: string; | ||
| 60 | - | ||
| 61 | 56 | /** | |
| 62 | 57 | * Event data containing information for the application events. | |
| 63 | 58 | */ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,3 @@ | |||
| 1 | - | ||
| 2 | 1 | import { | |
| 3 | 2 | ApplicationEventData, | |
| 4 | 3 | CssChangedEventData, | |
@@ -9,28 +8,24 @@ import { | |||
| 9 | 8 | } from "."; | |
| 10 | 9 | ||
| 11 | 10 | import { | |
| 12 | - CSS_CLASS_PREFIX, displayedEvent, exitEvent, getCssFileName, launchEvent, livesync, | ||
| 13 | - lowMemoryEvent, notify, on, orientationChanged, orientationChangedEvent, resumeEvent, | ||
| 14 | - setApplication, suspendEvent | ||
| 11 | + displayedEvent, exitEvent, getCssFileName, launchEvent, livesync, lowMemoryEvent, notify, on, | ||
| 12 | + orientationChanged, orientationChangedEvent, resumeEvent, setApplication, suspendEvent | ||
| 15 | 13 | } from "./application-common"; | |
| 16 | 14 | ||
| 17 | 15 | // First reexport so that app module is initialized. | |
| 18 | 16 | export * from "./application-common"; | |
| 19 | 17 | ||
| 20 | 18 | // TODO: Remove this and get it from global to decouple builder for angular | |
| 21 | 19 | import { createViewFromEntry } from "../ui/builder"; | |
| 20 | + import { CLASS_PREFIX, getRootViewCssClasses, pushToRootViewCssClasses } from "../css/system-classes"; | ||
| 22 | 21 | import { ios as iosView, View } from "../ui/core/view"; | |
| 23 | 22 | import { Frame, NavigationEntry } from "../ui/frame"; | |
| 24 | 23 | import { device } from "../platform/platform"; | |
| 25 | 24 | import { profile } from "../profiling"; | |
| 26 | 25 | import { ios } from "../utils/utils"; | |
| 27 | 26 | ||
| 28 | - const ROOT = "root"; | ||
| 29 | 27 | const IOS_PLATFORM = "ios"; | |
| 30 | - const ROOT_VIEW_CSS_CLASSES = [ | ||
| 31 | - `${CSS_CLASS_PREFIX}${ROOT}`, | ||
| 32 | - `${CSS_CLASS_PREFIX}${IOS_PLATFORM}` | ||
| 33 | - ]; | ||
| 28 | + | ||
| 34 | 29 | const getVisibleViewController = ios.getVisibleViewController; | |
| 35 | 30 | ||
| 36 | 31 | // NOTE: UIResponder with implementation of window - related to https://github.com/NativeScript/ios-runtime/issues/430 | |
@@ -317,9 +312,12 @@ function createRootView(v?: View) { | |||
| 317 | 312 | } | |
| 318 | 313 | ||
| 319 | 314 | const deviceType = device.deviceType.toLowerCase(); | |
| 320 | - ROOT_VIEW_CSS_CLASSES.push(`${CSS_CLASS_PREFIX}${deviceType}`); | ||
| 321 | - ROOT_VIEW_CSS_CLASSES.push(`${CSS_CLASS_PREFIX}${iosApp.orientation}`); | ||
| 322 | - ROOT_VIEW_CSS_CLASSES.forEach(c => rootView.cssClasses.add(c)); | ||
| 315 | + pushToRootViewCssClasses(`${CLASS_PREFIX}${IOS_PLATFORM}`); | ||
| 316 | + pushToRootViewCssClasses(`${CLASS_PREFIX}${deviceType}`); | ||
| 317 | + pushToRootViewCssClasses(`${CLASS_PREFIX}${iosApp.orientation}`); | ||
| 318 | + | ||
| 319 | + const rootViewCssClasses = getRootViewCssClasses(); | ||
| 320 | + rootViewCssClasses.forEach(c => rootView.cssClasses.add(c)); | ||
| 323 | 321 | ||
| 324 | 322 | return rootView; | |
| 325 | 323 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,30 @@ | |||
| 1 | + /** | ||
| 2 | + * @module "system-classes" | ||
| 3 | + */ /** */ | ||
| 4 | + | ||
| 5 | + /** | ||
| 6 | + * String value "ns-" used for CSS system class prefix. | ||
| 7 | + */ | ||
| 8 | + export const CLASS_PREFIX: string; | ||
| 9 | + | ||
| 10 | + /** | ||
| 11 | + * Gets CSS system class for modal root view. | ||
| 12 | + */ | ||
| 13 | + export function getModalRootViewCssClass(): string; | ||
| 14 | + | ||
| 15 | + /** | ||
| 16 | + * Gets CSS system classes for root view. | ||
| 17 | + */ | ||
| 18 | + export function getRootViewCssClasses(): string[]; | ||
| 19 | + | ||
| 20 | + /** | ||
| 21 | + * * Appends new CSS class to the system classes and returns the new length of the array. | ||
| 22 | + * @param value New CSS system class. | ||
| 23 | + */ | ||
| 24 | + export function pushToRootViewCssClasses(value: string): number; | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * Removes CSS class from the system classes and returns it. | ||
| 28 | + * @param value | ||
| 29 | + */ | ||
| 30 | + export function removeFromRootViewCssClasses(value: string): string; | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments