/* * Copyright (c) 2024-2025 Huawei Device Co., Ltd. * 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. */ /* THIS IS AUTOGENERATED FILE, PLEASE DON`T CHANGE IT MANUALLY */ class ArkResourcesHelper { static $r(name, id) { let splitted = name.split('.', 2); let strType = splitted[1]; let type = undefined; switch (strType) { case 'float': type = ArkResourcesHelper.FLOAT; break; case 'color': default: type = ArkResourcesHelper.COLOR; break; } return { 'id': id !== null && id !== void 0 ? id : -1, 'type': type, 'params': [name], 'bundleName': '', 'moduleName': '' }; } } ArkResourcesHelper.COLOR = 10001; ArkResourcesHelper.FLOAT = 10002; class ArkThemeNativeHelper { static sendThemeToNative(theme, elmtId, darkSetStatus) { const lightColorArray = ArkThemeNativeHelper.convertColorsToArray(theme.colors); const darkColorArray = ArkThemeNativeHelper.convertColorsToArray(theme.darkColors); WithTheme.sendThemeToNative(lightColorArray, darkColorArray, elmtId, darkSetStatus); } static createInternal(themeScopeId, themeId, theme, colorMode, onThemeScopeDestroy, darkSetStatus) { if (colorMode && colorMode !== ThemeColorMode.SYSTEM) { ArkThemeScopeManager.getInstance().onEnterLocalColorMode(colorMode); } const lightColorArray = ArkThemeNativeHelper.convertColorsToArray(theme === null || theme === void 0 ? void 0 : theme.colors); const darkColorArray = ArkThemeNativeHelper.convertColorsToArray(theme === null || theme === void 0 ? void 0 : theme.darkColors); getUINativeModule().theme.createAndBindTheme(themeScopeId, themeId, lightColorArray, darkColorArray, colorMode, onThemeScopeDestroy, darkSetStatus ); if (colorMode && colorMode !== ThemeColorMode.SYSTEM) { ArkThemeScopeManager.getInstance().onExitLocalColorMode(); } } static setDefaultTheme(theme) { const colorArray = ArkThemeNativeHelper.convertColorsToArray(theme === null || theme === void 0 ? void 0 : theme.colors); let darkColorArray = []; if(!!theme?.darkColors) { darkColorArray = ArkThemeNativeHelper.convertColorsToArray(theme === null || theme === void 0 ? void 0 : theme.darkColors); }else { darkColorArray = colorArray; } ArkThemeScopeManager.getInstance().onEnterLocalColorMode(ThemeColorMode.LIGHT); getUINativeModule().theme.setDefaultTheme(colorArray, false); ArkThemeScopeManager.getInstance().onEnterLocalColorMode(ThemeColorMode.DARK); getUINativeModule().theme.setDefaultTheme(darkColorArray, true); ArkThemeScopeManager.getInstance().onExitLocalColorMode(); } static convertThemeToColorArray(theme) { return [ theme.colors.brand, theme.colors.warning, theme.colors.alert, theme.colors.confirm, theme.colors.fontPrimary, theme.colors.fontSecondary, theme.colors.fontTertiary, theme.colors.fontFourth, theme.colors.fontEmphasize, theme.colors.fontOnPrimary, theme.colors.fontOnSecondary, theme.colors.fontOnTertiary, theme.colors.fontOnFourth, theme.colors.iconPrimary, theme.colors.iconSecondary, theme.colors.iconTertiary, theme.colors.iconFourth, theme.colors.iconEmphasize, theme.colors.iconSubEmphasize, theme.colors.iconOnPrimary, theme.colors.iconOnSecondary, theme.colors.iconOnTertiary, theme.colors.iconOnFourth, theme.colors.backgroundPrimary, theme.colors.backgroundSecondary, theme.colors.backgroundTertiary, theme.colors.backgroundFourth, theme.colors.backgroundEmphasize, theme.colors.compForegroundPrimary, theme.colors.compBackgroundPrimary, theme.colors.compBackgroundPrimaryTran, theme.colors.compBackgroundPrimaryContrary, theme.colors.compBackgroundGray, theme.colors.compBackgroundSecondary, theme.colors.compBackgroundTertiary, theme.colors.compBackgroundEmphasize, theme.colors.compBackgroundNeutral, theme.colors.compEmphasizeSecondary, theme.colors.compEmphasizeTertiary, theme.colors.compDivider, theme.colors.compCommonContrary, theme.colors.compBackgroundFocus, theme.colors.compFocusedPrimary, theme.colors.compFocusedSecondary, theme.colors.compFocusedTertiary, theme.colors.interactiveHover, theme.colors.interactivePressed, theme.colors.interactiveFocus, theme.colors.interactiveActive, theme.colors.interactiveSelect, theme.colors.interactiveClick, ]; } static convertColorsToArray(colors) { const basisColors = ArkThemeScopeManager.getSystemColors(); if (!colors) { return new Array(Object.keys(basisColors).length).fill(undefined); } const colorArray = []; for (let attr in basisColors) { colorArray.push(colors[attr]); } return colorArray; } } globalThis.LazyForEach.getItemGeneratorForThemeSupport = function (paramItemGenerator) { const themeScope = ArkThemeScopeManager.getInstance().lastLocalThemeScope(); if (themeScope === undefined) { return paramItemGenerator; } const itemGeneratorWrapper = (...params) => { const result = ArkThemeScopeManager.getInstance().onDeepRenderScopeEnter(themeScope); paramItemGenerator(...params); if (result === true) { ArkThemeScopeManager.getInstance().onDeepRenderScopeExit(); } }; return itemGeneratorWrapper; }; if (globalThis.WithTheme !== undefined) { globalThis.ListItem.getDeepRenderFuncForThemeSupport = function (deepRenderFunction) { const themeScope = ArkThemeScopeManager.getInstance().lastLocalThemeScope(); if (themeScope === undefined) { return deepRenderFunction; } const deepRenderFunctionWrapper = (elmtId, isInitialRender) => { const result = ArkThemeScopeManager.getInstance().onDeepRenderScopeEnter(themeScope); deepRenderFunction(elmtId, isInitialRender); if (result === true) { ArkThemeScopeManager.getInstance().onDeepRenderScopeExit(); } }; return deepRenderFunctionWrapper; }; } class ArkThemeCache { constructor() { this.cache = []; } static getInstance() { if (!ArkThemeCache.instance) { ArkThemeCache.instance = new ArkThemeCache(); } return ArkThemeCache.instance; } add(theme) { if (this.contains(theme)) { return; } this.cache.push(theme); } remove(theme) { const index = this.cache.indexOf(theme); if (index === -1) { return; } this.cache.splice(index, 1); getUINativeModule().theme.removeFromCache(theme.id); } get(baselineThemeId, customTheme, colorMode) { return this.cache.find((item) => { return item.getParentThemeId() === baselineThemeId && item.getColorMode() === colorMode && this.isEqualsCustomThemes(item.getCustomTheme(), customTheme); }); } contains(theme) { return this.containsByAttributes(theme.getParentThemeId(), theme.getCustomTheme(), theme.getColorMode()); } containsByAttributes(baselineThemeId, customTheme, colorMode) { return this.get(baselineThemeId, customTheme, colorMode) !== undefined; } isEqualsCustomThemes(theme1, theme2) { if (theme1 === theme2) { return true; } if (!theme1 || !theme2) { return false; } if (theme1.colors === theme2.colors && theme1.darkColors === theme2.darkColors) { return true; } if (!theme1.colors || !theme2.colors || !theme1.darkColors || !theme2.darkColors) { return false; } let keys1 = Object.keys(theme1.colors); let keys2 = Object.keys(theme2.colors); let darkKeys1 = Object.keys(theme1.darkColors); let darkKeys2 = Object.keys(theme2.darkColors); if (keys1.length !== keys2.length || darkKeys1.length !== darkKeys2.length) { return false; } for (let key of keys1) { if (!keys2.includes(key)) { return false; } let value1 = theme1.colors[key]; let value2 = theme2.colors[key]; if (value1 !== value2) { return false; } } for (let key of darkKeys1) { if (!darkKeys2.includes(key)) { return false; } let value1 = theme1.darkColors[key]; let value2 = theme2.darkColors[key]; if (value1 !== value2) { return false; } } return true; } } let themeCounter = 0; class ArkThemeBase { constructor(parentId, customTheme, colorMode, colors, darkColors, shapes, typography) { this.scopesCounter = 0; this.bindedThemeScopesIds = []; this.isJustCreated = true; this.parentThemeId = -1; this.id = themeCounter++; this.parentThemeId = parentId; this.customTheme = ArkThemeBase.copyCustomTheme(customTheme); this.colorMode = colorMode; this.colors = colors; this.darkColors = darkColors; this.shapes = shapes; this.typography = typography; } bindToScope(themeScopeId) { if (this.bindedThemeScopesIds.includes(themeScopeId)) { return; } this.scopesCounter++; this.bindedThemeScopesIds.push(themeScopeId); if (this.isJustCreated) { ArkThemeCache.getInstance().add(this); this.isJustCreated = false; } } unbindFromScope(themeScopeId) { const index = this.bindedThemeScopesIds.indexOf(themeScopeId); if (index === -1) { return; } this.scopesCounter--; this.bindedThemeScopesIds.splice(index, 1); if (this.canBeDestroyed()) { ArkThemeCache.getInstance().remove(this); } } canBeDestroyed() { return !this.isJustCreated && this.scopesCounter === 0; } getParentThemeId() { return this.parentThemeId; } getCustomTheme() { return this.customTheme; } getColorMode() { return this.colorMode; } static copyCustomTheme(customTheme) { if (!customTheme) { return undefined; } const copyTheme = {}; if (customTheme.colors) { copyTheme.colors = {}; Object.assign(copyTheme.colors, customTheme.colors); } if (customTheme.darkColors) { copyTheme.darkColors = {}; // For properties missing in darkColors, use the values from colors Object.assign(copyTheme.darkColors, customTheme?.colors, customTheme.darkColors); } if (customTheme.shapes) { copyTheme.shapes = {}; Object.assign(copyTheme.shapes, customTheme.shapes); } if (customTheme.typography) { copyTheme.typography = {}; Object.assign(copyTheme.typography, customTheme.typography); } return copyTheme; } } class ArkSystemColors { constructor() { this.brand = ArkResourcesHelper.$r('sys.color.brand', 125830976); this.warning = ArkResourcesHelper.$r('sys.color.warning', 125830979); this.alert = ArkResourcesHelper.$r('sys.color.alert', 125830980); this.confirm = ArkResourcesHelper.$r('sys.color.confirm', 125830981); this.fontPrimary = ArkResourcesHelper.$r('sys.color.font_primary', 125830982); this.fontSecondary = ArkResourcesHelper.$r('sys.color.font_secondary', 125830983); this.fontTertiary = ArkResourcesHelper.$r('sys.color.font_tertiary', 125830984); this.fontFourth = ArkResourcesHelper.$r('sys.color.font_fourth', 125830985); this.fontEmphasize = ArkResourcesHelper.$r('sys.color.font_emphasize', 125830986); this.fontOnPrimary = ArkResourcesHelper.$r('sys.color.font_on_primary', 125830987); this.fontOnSecondary = ArkResourcesHelper.$r('sys.color.font_on_secondary', 125830988); this.fontOnTertiary = ArkResourcesHelper.$r('sys.color.font_on_tertiary', 125830989); this.fontOnFourth = ArkResourcesHelper.$r('sys.color.font_on_fourth', 125830990); this.iconPrimary = ArkResourcesHelper.$r('sys.color.icon_primary', 125830991); this.iconSecondary = ArkResourcesHelper.$r('sys.color.icon_secondary', 125830992); this.iconTertiary = ArkResourcesHelper.$r('sys.color.icon_tertiary', 125830993); this.iconFourth = ArkResourcesHelper.$r('sys.color.icon_fourth', 125830994); this.iconEmphasize = ArkResourcesHelper.$r('sys.color.icon_emphasize', 125830995); this.iconSubEmphasize = ArkResourcesHelper.$r('sys.color.icon_sub_emphasize', 125830996); this.iconOnPrimary = ArkResourcesHelper.$r('sys.color.icon_on_primary', 125831057); this.iconOnSecondary = ArkResourcesHelper.$r('sys.color.icon_on_secondary', 125831058); this.iconOnTertiary = ArkResourcesHelper.$r('sys.color.icon_on_tertiary', 125831059); this.iconOnFourth = ArkResourcesHelper.$r('sys.color.icon_on_fourth', 125831060); this.backgroundPrimary = ArkResourcesHelper.$r('sys.color.background_primary', 125831061); this.backgroundSecondary = ArkResourcesHelper.$r('sys.color.background_secondary', 125831062); this.backgroundTertiary = ArkResourcesHelper.$r('sys.color.background_tertiary', 125831063); this.backgroundFourth = ArkResourcesHelper.$r('sys.color.background_fourth', 125831064); this.backgroundEmphasize = ArkResourcesHelper.$r('sys.color.background_emphasize', 125831065); this.compForegroundPrimary = ArkResourcesHelper.$r('sys.color.comp_foreground_primary', 125831003); this.compBackgroundPrimary = ArkResourcesHelper.$r('sys.color.comp_background_primary', 125831004); this.compBackgroundPrimaryTran = ArkResourcesHelper.$r('sys.color.comp_background_primary_tran'); this.compBackgroundPrimaryContrary = ArkResourcesHelper.$r('sys.color.comp_background_primary_contrary', 125831005); this.compBackgroundGray = ArkResourcesHelper.$r('sys.color.comp_background_gray', 125831006); this.compBackgroundSecondary = ArkResourcesHelper.$r('sys.color.comp_background_secondary', 125831007); this.compBackgroundTertiary = ArkResourcesHelper.$r('sys.color.comp_background_tertiary', 125831008); this.compBackgroundEmphasize = ArkResourcesHelper.$r('sys.color.comp_background_emphasize', 125831009); this.compBackgroundNeutral = ArkResourcesHelper.$r('sys.color.neutral', 125831066); this.compEmphasizeSecondary = ArkResourcesHelper.$r('sys.color.comp_emphasize_secondary', 125831011); this.compEmphasizeTertiary = ArkResourcesHelper.$r('sys.color.comp_emphasize_tertiary', 125831012); this.compDivider = ArkResourcesHelper.$r('sys.color.comp_divider', 125831013); this.compCommonContrary = ArkResourcesHelper.$r('sys.color.comp_common_contrary', 125831014); this.compBackgroundFocus = ArkResourcesHelper.$r('sys.color.comp_background_focus', 125831015); this.compFocusedPrimary = ArkResourcesHelper.$r('sys.color.comp_focused_primary', 125831016); this.compFocusedSecondary = ArkResourcesHelper.$r('sys.color.comp_focused_secondary', 125831017); this.compFocusedTertiary = ArkResourcesHelper.$r('sys.color.comp_focused_tertiary', 125831018); this.interactiveHover = ArkResourcesHelper.$r('sys.color.interactive_hover', 125831019); this.interactivePressed = ArkResourcesHelper.$r('sys.color.interactive_pressed', 125831020); this.interactiveFocus = ArkResourcesHelper.$r('sys.color.interactive_focus', 125831021); this.interactiveActive = ArkResourcesHelper.$r('sys.color.interactive_active', 125831022); this.interactiveSelect = ArkResourcesHelper.$r('sys.color.interactive_select', 125831023); this.interactiveClick = ArkResourcesHelper.$r('sys.color.interactive_click', 125831024); } } class ArkSystemCornerRadius { constructor() { this.none = ArkResourcesHelper.$r('sys.float.corner_radius_none'); this.level1 = ArkResourcesHelper.$r('sys.float.corner_radius_level1'); this.level2 = ArkResourcesHelper.$r('sys.float.corner_radius_level2'); this.level3 = ArkResourcesHelper.$r('sys.float.corner_radius_level3'); this.level4 = ArkResourcesHelper.$r('sys.float.corner_radius_level4'); this.level5 = ArkResourcesHelper.$r('sys.float.corner_radius_level5'); this.level6 = ArkResourcesHelper.$r('sys.float.corner_radius_level6'); this.level7 = ArkResourcesHelper.$r('sys.float.corner_radius_level7'); this.level8 = ArkResourcesHelper.$r('sys.float.corner_radius_level8'); this.level9 = ArkResourcesHelper.$r('sys.float.corner_radius_level9'); this.level10 = ArkResourcesHelper.$r('sys.float.corner_radius_level10'); this.level11 = ArkResourcesHelper.$r('sys.float.corner_radius_level11'); this.level12 = ArkResourcesHelper.$r('sys.float.corner_radius_level12'); this.level16 = ArkResourcesHelper.$r('sys.float.corner_radius_level16'); } } class ArkSystemPaddings { constructor() { this.level0 = ArkResourcesHelper.$r('sys.float.padding_level0'); this.level1 = ArkResourcesHelper.$r('sys.float.padding_level1'); this.level2 = ArkResourcesHelper.$r('sys.float.padding_level2'); this.level3 = ArkResourcesHelper.$r('sys.float.padding_level3'); this.level4 = ArkResourcesHelper.$r('sys.float.padding_level4'); this.level5 = ArkResourcesHelper.$r('sys.float.padding_level5'); this.level6 = ArkResourcesHelper.$r('sys.float.padding_level6'); this.level7 = ArkResourcesHelper.$r('sys.float.padding_level7'); this.level8 = ArkResourcesHelper.$r('sys.float.padding_level8'); this.level9 = ArkResourcesHelper.$r('sys.float.padding_level9'); this.level10 = ArkResourcesHelper.$r('sys.float.padding_level10'); this.level11 = ArkResourcesHelper.$r('sys.float.padding_level11'); this.level12 = ArkResourcesHelper.$r('sys.float.padding_level12'); this.level16 = ArkResourcesHelper.$r('sys.float.padding_level16'); this.level24 = ArkResourcesHelper.$r('sys.float.padding_level24'); this.level32 = ArkResourcesHelper.$r('sys.float.padding_level32'); this.level36 = ArkResourcesHelper.$r('sys.float.padding_level36'); } } class ArkSystemOutlines { constructor() { this.none = ArkResourcesHelper.$r('sys.float.outline_none'); this.xs = ArkResourcesHelper.$r('sys.float.outline_extra_small'); this.s = ArkResourcesHelper.$r('sys.float.outline_small'); this.m = ArkResourcesHelper.$r('sys.float.outline_medium'); this.l = ArkResourcesHelper.$r('sys.float.outline_larger'); this.xl = ArkResourcesHelper.$r('sys.float.outline_extra_larger'); } } class ArkSystemBorders { constructor() { this.none = ArkResourcesHelper.$r('sys.float.border_none'); this.xs = ArkResourcesHelper.$r('sys.float.border_extra_small'); this.s = ArkResourcesHelper.$r('sys.float.border_small'); this.m = ArkResourcesHelper.$r('sys.float.border_medium'); this.l = ArkResourcesHelper.$r('sys.float.border_larger'); this.xl = ArkResourcesHelper.$r('sys.float.border_extra_larger'); } } class ArkSystemShapes { constructor() { this.cornerRadius = new ArkSystemCornerRadius(); this.paddings = new ArkSystemPaddings(); this.borders = new ArkSystemBorders(); this.outlines = new ArkSystemOutlines(); } } class ArkTypographyWeights { } ArkTypographyWeights.thin = 100; ArkTypographyWeights.ultralight = 200; ArkTypographyWeights.light = 300; ArkTypographyWeights.regular = 400; ArkTypographyWeights.medium = 500; ArkTypographyWeights.semibold = 600; ArkTypographyWeights.bold = 700; ArkTypographyWeights.heavy = 800; ArkTypographyWeights.black = 900; class ArkSystemTypography { constructor() { this.displayLarge = { weight: ArkTypographyWeights.light, size: ArkResourcesHelper.$r('sys.float.Display_L') }; this.displayMiddle = { weight: ArkTypographyWeights.light, size: ArkResourcesHelper.$r('sys.float.Display_M') }; this.displaySmall = { weight: ArkTypographyWeights.light, size: ArkResourcesHelper.$r('sys.float.Display_S') }; this.titleLarge = { weight: ArkTypographyWeights.bold, size: ArkResourcesHelper.$r('sys.float.Title_L') }; this.titleMiddle = { weight: ArkTypographyWeights.bold, size: ArkResourcesHelper.$r('sys.float.Title_M') }; this.titleSmall = { weight: ArkTypographyWeights.bold, size: ArkResourcesHelper.$r('sys.float.Title_S') }; this.subtitleLarge = { weight: ArkTypographyWeights.medium, size: ArkResourcesHelper.$r('sys.float.Subtitle_L') }; this.subtitleMiddle = { weight: ArkTypographyWeights.medium, size: ArkResourcesHelper.$r('sys.float.Subtitle_M') }; this.subtitleSmall = { weight: ArkTypographyWeights.medium, size: ArkResourcesHelper.$r('sys.float.Subtitle_S') }; this.bodyLarge = { weight: ArkTypographyWeights.medium, size: ArkResourcesHelper.$r('sys.float.Body_L') }; this.bodyMiddle = { weight: ArkTypographyWeights.regular, size: ArkResourcesHelper.$r('sys.float.Body_M') }; this.bodySmall = { weight: ArkTypographyWeights.regular, size: ArkResourcesHelper.$r('sys.float.Body_S') }; this.captionLarge = { weight: ArkTypographyWeights.medium, size: ArkResourcesHelper.$r('sys.float.Caption_L') }; this.captionMiddle = { weight: ArkTypographyWeights.medium, size: ArkResourcesHelper.$r('sys.float.Caption_M') }; this.captionSmall = { weight: ArkTypographyWeights.medium, size: ArkResourcesHelper.$r('sys.float.Caption_S') }; } } class ArkSystemTheme extends ArkThemeBase { constructor() { super(-1, undefined, ThemeColorMode.SYSTEM, new ArkSystemColors(), new ArkSystemColors(), new ArkSystemShapes(), new ArkSystemTypography()); } } if (globalThis.WithTheme !== undefined) { globalThis.WithTheme.create = function (themeOptions) { var _a; const elmtId = ViewStackProcessor.GetElmtIdToAccountFor(); const colorMode = (_a = themeOptions === null || themeOptions === void 0 ? void 0 : themeOptions.colorMode) !== null && _a !== void 0 ? _a : ThemeColorMode.SYSTEM; const cloneTheme = ArkThemeScopeManager.cloneCustomThemeWithExpand(themeOptions === null || themeOptions === void 0 ? void 0 : themeOptions.theme); const theme = ArkThemeScopeManager.getInstance().makeTheme(cloneTheme, colorMode); theme.bindToScope(elmtId); const onThemeScopeDestroy = () => { ArkThemeScopeManager.getInstance().onScopeDestroy(elmtId); }; ArkThemeNativeHelper.sendThemeToNative(theme, elmtId, !!cloneTheme?.darkColors); ArkThemeNativeHelper.createInternal(elmtId, theme.id, cloneTheme, colorMode, onThemeScopeDestroy, !!cloneTheme?.darkColors); ArkThemeScopeManager.getInstance().onScopeEnter(elmtId, themeOptions !== null && themeOptions !== void 0 ? themeOptions : {}, theme); }; globalThis.WithTheme.pop = function () { var _a; if (PUV2ViewBase.isNeedBuildPrebuildCmd() && PUV2ViewBase.prebuildFuncQueues.has(PUV2ViewBase.prebuildingElmtId_)) { const prebuildFunc = () => { ArkThemeScopeManager.getInstance().setIsFirstRender(true); globalThis.WithTheme.pop(); }; (_a = PUV2ViewBase.prebuildFuncQueues.get(PUV2ViewBase.prebuildingElmtId_)) === null || _a === void 0 ? void 0 : _a.push(prebuildFunc); ViewStackProcessor.PushPrebuildCompCmd(); return; } ArkThemeScopeManager.getInstance().onScopeExit(); getUINativeModule().theme.pop(); }; } class ArkColorsImpl { constructor(colors, baselineColors) { Object.assign(this, baselineColors, colors); } static expandByBrandColor(colors) { var _a, _b, _c, _d, _e, _f, _g, _h, _j; if (colors.brand) { const brandColors = ArkColorsImpl.makeBrandColors(colors.brand); colors.fontEmphasize = (_a = colors.fontEmphasize) !== null && _a !== void 0 ? _a : brandColors.primary; colors.iconEmphasize = (_b = colors.iconEmphasize) !== null && _b !== void 0 ? _b : brandColors.primary; colors.iconSubEmphasize = (_c = colors.iconSubEmphasize) !== null && _c !== void 0 ? _c : brandColors.tertiary; colors.backgroundEmphasize = (_d = colors.backgroundEmphasize) !== null && _d !== void 0 ? _d : brandColors.primary; colors.compBackgroundEmphasize = (_e = colors.compBackgroundEmphasize) !== null && _e !== void 0 ? _e : brandColors.primary; colors.compEmphasizeSecondary = (_f = colors.compEmphasizeSecondary) !== null && _f !== void 0 ? _f : brandColors.fourth; colors.compEmphasizeTertiary = (_g = colors.compEmphasizeTertiary) !== null && _g !== void 0 ? _g : brandColors.fifth; colors.interactiveFocus = (_h = colors.interactiveFocus) !== null && _h !== void 0 ? _h : brandColors.primary; colors.interactiveActive = (_j = colors.interactiveActive) !== null && _j !== void 0 ? _j : brandColors.primary; } } static makeBrandColors(brandColor) { const result = { primary: undefined, secondary: undefined, tertiary: undefined, fourth: undefined, fifth: undefined, sixth: undefined }; if (brandColor) { if (brandColor instanceof Object) { result.primary = brandColor; result.secondary = ArkColorsImpl.makeResourceWithOpacity(brandColor, 0.6); result.tertiary = ArkColorsImpl.makeResourceWithOpacity(brandColor, 0.4); result.fourth = ArkColorsImpl.makeResourceWithOpacity(brandColor, 0.2); result.fifth = ArkColorsImpl.makeResourceWithOpacity(brandColor, 0.1); result.sixth = ArkColorsImpl.makeResourceWithOpacity(brandColor, 0.05); } else { const argbColor = getUINativeModule().resource.getColorValue(brandColor); result.primary = argbColor; result.secondary = ArkColorsImpl.blendOpacity(argbColor, 0.6); result.tertiary = ArkColorsImpl.blendOpacity(argbColor, 0.4); result.fourth = ArkColorsImpl.blendOpacity(argbColor, 0.2); result.fifth = ArkColorsImpl.blendOpacity(argbColor, 0.1); result.sixth = ArkColorsImpl.blendOpacity(argbColor, 0.05); } } return result; } static makeResourceWithOpacity(resourceColor, opacityRatio) { return { 'id': resourceColor.id, 'type': resourceColor.type, 'params': [...resourceColor.params], 'bundleName': resourceColor.bundleName, 'moduleName': resourceColor.moduleName, 'opacityRatio': opacityRatio }; } static blendOpacity(argbColor, opacityRatio) { if (opacityRatio < 0 || opacityRatio > 1.0) { return argbColor; } const alpha = (argbColor >> 24) & 0xFF; const outAlpha = (alpha * opacityRatio) & 0xFF; return ((argbColor & 0x00FFFFFF) | (outAlpha & 0xFF) << 24) >>> 0; } } class ArkCornerRadiusImpl { constructor(corners, baselineCorners) { Object.assign(this, baselineCorners, corners); } } class ArkPaddingsImpl { constructor(paddings, baselinePaddings) { Object.assign(this, baselinePaddings, paddings); } } class ArkOutlinesImpl { constructor(outlines = {}, baselineOutlines) { Object.assign(this, baselineOutlines, outlines); } } class ArkBordersImpl { constructor(borders = {}, baselineBorders) { Object.assign(this, baselineBorders, borders); } } class ArkShapesImpl { constructor(shapes, baselineShapes) { this.cornerRadius = new ArkCornerRadiusImpl(shapes === null || shapes === void 0 ? void 0 : shapes.cornerRadius, baselineShapes.cornerRadius); this.paddings = new ArkPaddingsImpl(shapes === null || shapes === void 0 ? void 0 : shapes.paddings, baselineShapes.paddings); this.borders = new ArkBordersImpl(shapes === null || shapes === void 0 ? void 0 : shapes.borders, baselineShapes.borders); this.outlines = new ArkOutlinesImpl(shapes === null || shapes === void 0 ? void 0 : shapes.outlines, baselineShapes.outlines); } } class ArkTypographyImpl { constructor(typography, baselineTypography) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35; this.displayLarge = { weight: (_b = (_a = typography === null || typography === void 0 ? void 0 : typography.displayLarge) === null || _a === void 0 ? void 0 : _a.weight) !== null && _b !== void 0 ? _b : ArkTypographyWeights.light, size: (_d = (_c = typography === null || typography === void 0 ? void 0 : typography.displayLarge) === null || _c === void 0 ? void 0 : _c.size) !== null && _d !== void 0 ? _d : baselineTypography.displayLarge.size }; this.displayMiddle = { weight: (_f = (_e = typography === null || typography === void 0 ? void 0 : typography.displayMiddle) === null || _e === void 0 ? void 0 : _e.weight) !== null && _f !== void 0 ? _f : ArkTypographyWeights.light, size: (_h = (_g = typography === null || typography === void 0 ? void 0 : typography.displayMiddle) === null || _g === void 0 ? void 0 : _g.size) !== null && _h !== void 0 ? _h : baselineTypography.displayMiddle.size }; this.displaySmall = { weight: (_k = (_j = typography === null || typography === void 0 ? void 0 : typography.displaySmall) === null || _j === void 0 ? void 0 : _j.weight) !== null && _k !== void 0 ? _k : ArkTypographyWeights.light, size: (_m = (_l = typography === null || typography === void 0 ? void 0 : typography.displaySmall) === null || _l === void 0 ? void 0 : _l.size) !== null && _m !== void 0 ? _m : baselineTypography.displaySmall.size }; this.titleLarge = { weight: (_p = (_o = typography === null || typography === void 0 ? void 0 : typography.titleLarge) === null || _o === void 0 ? void 0 : _o.weight) !== null && _p !== void 0 ? _p : ArkTypographyWeights.bold, size: (_r = (_q = typography === null || typography === void 0 ? void 0 : typography.titleLarge) === null || _q === void 0 ? void 0 : _q.size) !== null && _r !== void 0 ? _r : baselineTypography.titleLarge.size }; this.titleMiddle = { weight: (_t = (_s = typography === null || typography === void 0 ? void 0 : typography.titleMiddle) === null || _s === void 0 ? void 0 : _s.weight) !== null && _t !== void 0 ? _t : ArkTypographyWeights.bold, size: (_v = (_u = typography === null || typography === void 0 ? void 0 : typography.titleMiddle) === null || _u === void 0 ? void 0 : _u.size) !== null && _v !== void 0 ? _v : baselineTypography.titleMiddle.size }; this.titleSmall = { weight: (_x = (_w = typography === null || typography === void 0 ? void 0 : typography.titleSmall) === null || _w === void 0 ? void 0 : _w.weight) !== null && _x !== void 0 ? _x : ArkTypographyWeights.bold, size: (_z = (_y = typography === null || typography === void 0 ? void 0 : typography.titleSmall) === null || _y === void 0 ? void 0 : _y.size) !== null && _z !== void 0 ? _z : baselineTypography.titleSmall.size }; this.subtitleLarge = { weight: (_1 = (_0 = typography === null || typography === void 0 ? void 0 : typography.subtitleLarge) === null || _0 === void 0 ? void 0 : _0.weight) !== null && _1 !== void 0 ? _1 : ArkTypographyWeights.medium, size: (_3 = (_2 = typography === null || typography === void 0 ? void 0 : typography.subtitleLarge) === null || _2 === void 0 ? void 0 : _2.size) !== null && _3 !== void 0 ? _3 : baselineTypography.subtitleLarge.size }; this.subtitleMiddle = { weight: (_5 = (_4 = typography === null || typography === void 0 ? void 0 : typography.subtitleMiddle) === null || _4 === void 0 ? void 0 : _4.weight) !== null && _5 !== void 0 ? _5 : ArkTypographyWeights.medium, size: (_7 = (_6 = typography === null || typography === void 0 ? void 0 : typography.subtitleMiddle) === null || _6 === void 0 ? void 0 : _6.size) !== null && _7 !== void 0 ? _7 : baselineTypography.subtitleMiddle.size }; this.subtitleSmall = { weight: (_9 = (_8 = typography === null || typography === void 0 ? void 0 : typography.subtitleSmall) === null || _8 === void 0 ? void 0 : _8.weight) !== null && _9 !== void 0 ? _9 : ArkTypographyWeights.medium, size: (_11 = (_10 = typography === null || typography === void 0 ? void 0 : typography.subtitleSmall) === null || _10 === void 0 ? void 0 : _10.size) !== null && _11 !== void 0 ? _11 : baselineTypography.subtitleSmall.size }; this.bodyLarge = { weight: (_13 = (_12 = typography === null || typography === void 0 ? void 0 : typography.bodyLarge) === null || _12 === void 0 ? void 0 : _12.weight) !== null && _13 !== void 0 ? _13 : ArkTypographyWeights.medium, size: (_15 = (_14 = typography === null || typography === void 0 ? void 0 : typography.bodyLarge) === null || _14 === void 0 ? void 0 : _14.size) !== null && _15 !== void 0 ? _15 : baselineTypography.bodyLarge.size }; this.bodyMiddle = { weight: (_17 = (_16 = typography === null || typography === void 0 ? void 0 : typography.bodyMiddle) === null || _16 === void 0 ? void 0 : _16.weight) !== null && _17 !== void 0 ? _17 : ArkTypographyWeights.regular, size: (_19 = (_18 = typography === null || typography === void 0 ? void 0 : typography.bodyMiddle) === null || _18 === void 0 ? void 0 : _18.size) !== null && _19 !== void 0 ? _19 : baselineTypography.bodyMiddle.size }; this.bodySmall = { weight: (_21 = (_20 = typography === null || typography === void 0 ? void 0 : typography.bodySmall) === null || _20 === void 0 ? void 0 : _20.weight) !== null && _21 !== void 0 ? _21 : ArkTypographyWeights.regular, size: (_23 = (_22 = typography === null || typography === void 0 ? void 0 : typography.bodySmall) === null || _22 === void 0 ? void 0 : _22.size) !== null && _23 !== void 0 ? _23 : baselineTypography.bodySmall.size }; this.captionLarge = { weight: (_25 = (_24 = typography === null || typography === void 0 ? void 0 : typography.captionLarge) === null || _24 === void 0 ? void 0 : _24.weight) !== null && _25 !== void 0 ? _25 : ArkTypographyWeights.medium, size: (_27 = (_26 = typography === null || typography === void 0 ? void 0 : typography.captionLarge) === null || _26 === void 0 ? void 0 : _26.size) !== null && _27 !== void 0 ? _27 : baselineTypography.captionLarge.size }; this.captionMiddle = { weight: (_29 = (_28 = typography === null || typography === void 0 ? void 0 : typography.captionMiddle) === null || _28 === void 0 ? void 0 : _28.weight) !== null && _29 !== void 0 ? _29 : ArkTypographyWeights.medium, size: (_31 = (_30 = typography === null || typography === void 0 ? void 0 : typography.captionMiddle) === null || _30 === void 0 ? void 0 : _30.size) !== null && _31 !== void 0 ? _31 : baselineTypography.captionMiddle.size }; this.captionSmall = { weight: (_33 = (_32 = typography === null || typography === void 0 ? void 0 : typography.captionSmall) === null || _32 === void 0 ? void 0 : _32.weight) !== null && _33 !== void 0 ? _33 : ArkTypographyWeights.medium, size: (_35 = (_34 = typography === null || typography === void 0 ? void 0 : typography.captionSmall) === null || _34 === void 0 ? void 0 : _34.size) !== null && _35 !== void 0 ? _35 : baselineTypography.captionSmall.size }; } } class ArkThemeImpl extends ArkThemeBase { constructor(customTheme, colorMode, baselineTheme) { if (!customTheme) { super(baselineTheme.id, undefined, colorMode, new ArkColorsImpl(undefined, baselineTheme.colors), new ArkColorsImpl(undefined, baselineTheme.darkColors), new ArkShapesImpl(undefined, baselineTheme.shapes), new ArkTypographyImpl(undefined, baselineTheme.typography)); return; } super(baselineTheme.id, customTheme, colorMode, new ArkColorsImpl(customTheme.colors, baselineTheme.colors), new ArkColorsImpl(customTheme.darkColors, baselineTheme.darkColors), new ArkShapesImpl(customTheme.shapes, baselineTheme.shapes), new ArkTypographyImpl(customTheme.typography, baselineTheme.typography)); } } class ArkThemeScopeItem { constructor() { this.isInWhiteList = undefined; this.listener = undefined; } } class ArkThemeScopeArray extends Array { binarySearch(elmtId) { let start = 0; let end = this.length - 1; while (start <= end) { let mid = (start + end) >> 1; if (this[mid].elmtId === elmtId) { return mid; } if (elmtId < this[mid].elmtId) { end = mid - 1; } else { start = mid + 1; } } return -1; } } class ArkThemeScope { constructor(ownerComponentId, withThemeId, withThemeOptions, theme) { this.ownerComponentId = ownerComponentId; this.withThemeId = withThemeId; this.withThemeOptions = withThemeOptions; this.theme = theme; this.prevColorMode = this.colorMode(); } getOwnerComponentId() { return this.ownerComponentId; } getWithThemeId() { return this.withThemeId; } addComponentToScope(elmtId, owner, componentName) { if (this.isComponentInScope(elmtId)) { return; } if (!this.components) { this.components = new ArkThemeScopeArray(); } this.components.push({ elmtId: elmtId, ownerId: owner.id__(), owner: owner, name: componentName }); } addCustomListenerInScope(listener) { const len = this.components ? this.components.length : -1; if (len <= 0) { return; } const listenerId = listener.id__(); let themeScopeItem = this.components[len - 1]; if (themeScopeItem.elmtId === listenerId) { themeScopeItem.listener = listener; return; } themeScopeItem = this.components.find((item) => item.elmtId === listenerId); if (themeScopeItem) { themeScopeItem.listener = listener; } } removeComponentFromScope(elmtId) { if (this.components) { const index = this.components.binarySearch(elmtId); if (index > -1) { this.components.splice(index, 1); } } } isComponentInScope(elmtId) { return this.components && (this.components.binarySearch(elmtId) > -1); } componentsInScope() { return this.components; } colorMode() { var _a; return (_a = this.withThemeOptions.colorMode) !== null && _a !== void 0 ? _a : ThemeColorMode.SYSTEM; } customTheme() { var _a; return (_a = this.withThemeOptions.theme) !== null && _a !== void 0 ? _a : {}; } getTheme() { return this.theme; } options() { return this.withThemeOptions; } updateWithThemeOptions(options, theme) { var _a; this.prevColorMode = this.colorMode(); this.withThemeOptions = options; if (this.theme !== theme) { (_a = this.theme) === null || _a === void 0 ? void 0 : _a.unbindFromScope(this.getWithThemeId()); this.theme = theme; } } isColorModeChanged() { return this.prevColorMode !== this.colorMode(); } } class ArkThemeScopeManager { constructor() { this.localThemeScopes = []; this.themeScopes = undefined; this.ifElseLastScope = undefined; this.ifElseScopes = []; this.lastThemeScopeId = 0; this.listeners = []; this.defaultTheme = undefined; this.themeIdStack = []; } onComponentCreateEnter(componentName, elmtId, isFirstRender, ownerComponent) { this.handledIsFirstRender = isFirstRender; this.handledOwnerComponentId = ownerComponent.id__(); this.handledComponentElmtId = elmtId; if (!this.themeScopes || componentName === 'WithTheme') { return; } if (this.themeScopes.length === 0) { this.handleThemeScopeChange(undefined); return; } let scope = undefined; if (isFirstRender) { const currentLocalScope = this.localThemeScopes[this.localThemeScopes.length - 1]; const currentIfElseScope = this.ifElseScopes[this.ifElseScopes.length - 1]; if (currentLocalScope) { scope = currentLocalScope; scope.addComponentToScope(elmtId, ownerComponent, componentName); } else if (currentIfElseScope) { scope = currentIfElseScope; scope.addComponentToScope(elmtId, ownerComponent, componentName); } else { const parentScope = ownerComponent.themeScope_; if (parentScope) { scope = parentScope; scope.addComponentToScope(elmtId, ownerComponent, componentName); } } } if (scope === undefined) { scope = this.scopeForElmtId(elmtId); } if (scope === undefined && (this.themeIdStack.length > 0)) { scope = this.themeScopes.find(item => item.getWithThemeId() === this.themeIdStack[this.themeIdStack.length - 1]); } this.handledColorMode = scope === null || scope === void 0 ? void 0 : scope.colorMode(); if (this.handledColorMode === ThemeColorMode.LIGHT || this.handledColorMode === ThemeColorMode.DARK) { this.onEnterLocalColorMode(this.handledColorMode); } if (componentName === 'If') { this.ifElseLastScope = scope; } this.handledThemeScope = scope; this.handleThemeScopeChange(this.handledThemeScope); if (scope) { this.themeIdStack.push(scope.getWithThemeId()); } } onComponentCreateExit(elmtId) { if (this.handledColorMode === ThemeColorMode.LIGHT || this.handledColorMode === ThemeColorMode.DARK) { this.onExitLocalColorMode(); } this.handledThemeScope = undefined; this.handledComponentElmtId = undefined; if (this.themeIdStack.length > 0) { this.themeIdStack.pop(); } } onScopeEnter(withThemeId, withThemeOptions, theme) { this.lastThemeScopeId = withThemeId; if (this.handledIsFirstRender === true) { let themeScope = new ArkThemeScope(this.handledOwnerComponentId, withThemeId, withThemeOptions, theme); this.localThemeScopes.push(themeScope); if (!this.themeScopes) { this.themeScopes = new Array(); } this.themeScopes.push(themeScope); } else { const scope = this.themeScopes.find(item => item.getWithThemeId() === withThemeId); scope === null || scope === void 0 ? void 0 : scope.updateWithThemeOptions(withThemeOptions, theme); this.forceRerenderScope(scope); } } onScopeExit() { if (this.handledIsFirstRender === true) { this.localThemeScopes.pop(); } } onScopeDestroy(themeScopeId) { var _a; this.themeScopes = (_a = this.themeScopes) === null || _a === void 0 ? void 0 : _a.filter((scope) => { if (scope.getWithThemeId() === themeScopeId) { this.onScopeDestroyInternal(scope); return false; } return true; }); } onScopeDestroyInternal(scope) { const theme = scope.getTheme(); if (theme) { theme.unbindFromScope(scope.getWithThemeId()); } const index = this.localThemeScopes.indexOf(scope); if (index !== -1) { this.localThemeScopes.splice(index, 1); } WithTheme.removeThemeInNative(scope.getWithThemeId()); } onViewPUCreate(ownerComponent) { var _a; if (ownerComponent.parent_ === undefined) { this.subscribeListener(ownerComponent); } ownerComponent.themeScope_ = this.scopeForElmtId(ownerComponent.id__()); (_a = ownerComponent.themeScope_) === null || _a === void 0 ? void 0 : _a.addCustomListenerInScope(ownerComponent); } onViewPUDelete(ownerComponent) { var _a; this.unsubscribeListener(ownerComponent); const ownerComponentId = ownerComponent.id__(); this.themeScopes = (_a = this.themeScopes) === null || _a === void 0 ? void 0 : _a.filter((scope) => { if (scope.getOwnerComponentId() === ownerComponentId) { this.onScopeDestroyInternal(scope); return false; } return true; }); } onIfElseBranchUpdateEnter() { this.ifElseScopes.push(this.ifElseLastScope); } onIfElseBranchUpdateExit(removedElmtIds) { const scope = this.ifElseScopes.pop(); if (removedElmtIds && scope) { removedElmtIds.forEach(elmtId => scope.removeComponentFromScope(elmtId)); } } onDeepRenderScopeEnter(themeScope) { if (themeScope) { this.localThemeScopes.push(themeScope); return true; } return false; } onDeepRenderScopeExit() { this.localThemeScopes.pop(); } subscribeListener(listener) { if (this.listeners.includes(listener)) { return; } this.listeners.push(listener); } unsubscribeListener(listener) { const index = this.listeners.indexOf(listener, 0); if (index > -1) { this.listeners.splice(index, 1); } const scope = listener.themeScope_; if (scope) { scope.removeComponentFromScope(listener.id__()); listener.themeScope_ = undefined; } } getFinalTheme(ownerComponent) { var _a, _b, _c; return (_c = (_b = (_a = ownerComponent.themeScope_) === null || _a === void 0 ? void 0 : _a.getTheme()) !== null && _b !== void 0 ? _b : this.defaultTheme) !== null && _c !== void 0 ? _c : ArkThemeScopeManager.SystemTheme; } scopeForElmtId(elmtId) { var _a; if (this.handledThemeScope && this.handledComponentElmtId === elmtId) { return this.handledThemeScope; } if (this.handledIsFirstRender) { if (this.localThemeScopes.length > 0) { return this.localThemeScopes[this.localThemeScopes.length - 1]; } } return (_a = this.themeScopes) === null || _a === void 0 ? void 0 : _a.find(item => item.isComponentInScope(elmtId)); } lastLocalThemeScope() { if (this.localThemeScopes.length > 0) { return this.localThemeScopes[this.localThemeScopes.length - 1]; } return undefined; } onEnterLocalColorMode(colorMode) { getUINativeModule().resource.updateColorMode(colorMode); } onExitLocalColorMode() { getUINativeModule().resource.restore(); } forceRerenderScope(scope) { var _a, _b, _c; if (scope === undefined) { return; } const theme = (_b = (_a = scope === null || scope === void 0 ? void 0 : scope.getTheme()) !== null && _a !== void 0 ? _a : this.defaultTheme) !== null && _b !== void 0 ? _b : ArkThemeScopeManager.SystemTheme; (_c = scope.componentsInScope()) === null || _c === void 0 ? void 0 : _c.forEach((item) => this.notifyScopeThemeChanged(item, theme, scope.isColorModeChanged())); } notifyScopeThemeChanged(item, themeWillApply, isColorModeChanged) { if (item.owner) { const listener = item.owner; if (isColorModeChanged) { listener.forceRerenderNode(item.elmtId); } else { let isInWhiteList = item.isInWhiteList; if (isInWhiteList === undefined) { isInWhiteList = ArkThemeWhiteList.isInWhiteList(item.name); item.isInWhiteList = isInWhiteList; } if (isInWhiteList === true) { listener.forceRerenderNode(item.elmtId); } } } if (item.listener) { const listener = item.listener; listener.onWillApplyTheme(themeWillApply); } } makeTheme(customTheme, colorMode) { var _a; const baselineTheme = (_a = this.defaultTheme) !== null && _a !== void 0 ? _a : ArkThemeScopeManager.SystemTheme; const theme = ArkThemeCache.getInstance().get(baselineTheme.id, customTheme, colorMode); return theme ? theme : new ArkThemeImpl(customTheme, colorMode, baselineTheme); } static cloneCustomThemeWithExpand(customTheme) { const theme = ArkThemeBase.copyCustomTheme(customTheme); if (theme === null || theme === void 0 ? void 0 : theme.colors) { ArkColorsImpl.expandByBrandColor(theme.colors); } if (theme === null || theme === void 0 ? void 0 : theme.darkColors) { ArkColorsImpl.expandByBrandColor(theme.darkColors); } return theme; } setDefaultTheme(customTheme) { var _a; (_a = this.defaultTheme) === null || _a === void 0 ? void 0 : _a.unbindFromScope(0); this.defaultTheme = ArkThemeScopeManager.SystemTheme; const cloneTheme = ArkThemeScopeManager.cloneCustomThemeWithExpand(customTheme); this.defaultTheme = this.makeTheme(cloneTheme, ThemeColorMode.SYSTEM); this.defaultTheme.bindToScope(0); ArkThemeNativeHelper.sendThemeToNative(this.defaultTheme, 0, !!cloneTheme?.darkColors); ArkThemeNativeHelper.setDefaultTheme(cloneTheme); this.notifyGlobalThemeChanged(); } static getSystemColors() { return ArkThemeScopeManager.SystemTheme.colors; } notifyGlobalThemeChanged() { this.listeners.forEach(listener => { if (listener.parent_ === undefined) { listener.onGlobalThemeChanged(); } }); } handleThemeScopeChange(scope) { var _a; const currentThemeScopeId = (_a = scope === null || scope === void 0 ? void 0 : scope.getWithThemeId()) !== null && _a !== void 0 ? _a : 0; if (currentThemeScopeId !== this.lastThemeScopeId) { this.lastThemeScopeId = currentThemeScopeId; WithTheme.setThemeScopeId(currentThemeScopeId); } } setIsFirstRender(isFirstRender) { this.handledIsFirstRender = isFirstRender; } static getInstance() { if (!ArkThemeScopeManager.instance) { ArkThemeScopeManager.instance = new ArkThemeScopeManager(); ViewBuildNodeBase.setArkThemeScopeManager(ArkThemeScopeManager.instance); } return ArkThemeScopeManager.instance; } } ArkThemeScopeManager.SystemTheme = new ArkSystemTheme(); ArkThemeScopeManager.instance = undefined; globalThis.themeScopeMgr = ArkThemeScopeManager.getInstance(); class ArkThemeWhiteList { static isInWhiteList(componentName) { let start = 0; let end = ArkThemeWhiteList.whiteList.length - 1; while (start <= end) { let mid = (start + end) >> 1; if (ArkThemeWhiteList.whiteList[mid].localeCompare(componentName) === 0) { return true; } if (ArkThemeWhiteList.whiteList[mid].localeCompare(componentName) === 1) { end = mid - 1; } else { start = mid + 1; } } return false; } } ArkThemeWhiteList.whiteList = [ 'AlphabetIndexer', 'Badge', 'Button', 'DataPanel', 'Menu', 'MenuItem', 'PatternLock', 'QRCode', 'Radio', 'Scroll', 'Swiper', 'Text', ];