@eui/core 22.0.0-alpha.37 → 22.0.0-alpha.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/docs/changelog.html +28 -0
- package/docs/interfaces/Schema-10.html +1 -1
- package/docs/interfaces/Schema-11.html +1 -1
- package/docs/interfaces/Schema-7.html +1 -1
- package/docs/interfaces/Schema-8.html +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/documentation.json +8 -8
- package/docs/llms.txt +23 -23
- package/docs/miscellaneous/functions.html +16 -16
- package/docs/miscellaneous/variables.html +21 -21
- package/docs/properties.html +1 -1
- package/fesm2022/eui-core.mjs +4 -1
- package/fesm2022/eui-core.mjs.map +1 -1
- package/package.json +2 -2
- package/types/eui-core.d.ts.map +1 -1
|
@@ -3574,12 +3574,12 @@
|
|
|
3574
3574
|
},
|
|
3575
3575
|
{
|
|
3576
3576
|
"name": "UIState",
|
|
3577
|
-
"id": "interface-UIState-
|
|
3577
|
+
"id": "interface-UIState-f1976eab5525bcef6ad2f5270074f44d49266217cac22255920e3a5be7eee4095f689d809e4fe56262d28a85ea12a19c67cf46a343134587fb48f0ce841014cf",
|
|
3578
3578
|
"file": "packages/core/src/lib/services/eui-app-shell.service.ts",
|
|
3579
3579
|
"deprecated": false,
|
|
3580
3580
|
"deprecationMessage": "",
|
|
3581
3581
|
"type": "interface",
|
|
3582
|
-
"sourceCode": "import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, defer, firstValueFrom, Observable } from 'rxjs';\nimport { EuiEuLanguages, GlobalConfig, getActiveLang, EuiLanguage, EuiMenuItem } from '@eui/base';\nimport { GLOBAL_CONFIG_TOKEN } from './config/tokens';\nimport { I18nService } from './i18n';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { StoreService } from './store/store.service';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { isEqual, get } from 'lodash-es';\nimport { CssUtils } from '../helpers/css-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UIState<BP = any, DI = any, AMD =any, BPV = any> {\n // app state\n appName?: string;\n appShortName?: string;\n appSubTitle?: string;\n appBaseFontSize?: string;\n\n // Sidebar state\n isSidebarOpen?: boolean;\n isSidebarActive?: boolean;\n hasSidebar?: boolean;\n hasSideContainer?: boolean;\n hasBreadcrumb?: boolean;\n hasHeader?: boolean;\n isShrinkHeaderActive?: boolean;\n hasHeaderLogo?: boolean;\n hasHeaderEnvironment?: boolean;\n hasToolbar?: boolean;\n hasToolbarMegaMenu?: boolean;\n hasToolbarMenu?: boolean;\n environmentValue?: string;\n isSidebarHidden?: boolean;\n isSidebarFocused?: boolean;\n hasSidebarCollapsedVariant?: boolean;\n hasTopMessage?: boolean;\n\n // window state\n hasFixedPosition?: boolean;\n windowWidth?: number;\n windowHeight?: number;\n mainContentHeight?: number;\n pageHeaderHeight?: number;\n breakpoint?: string;\n wrapperClasses?: string;\n breakpoints?: BP;\n breakpointValues?: BPV;\n\n // navigation state\n menuLinks?: EuiMenuItem[];\n sidebarLinks?: EuiMenuItem[];\n combinedLinks?: EuiMenuItem[];\n\n // other states\n isBlockDocumentActive?: boolean;\n\n // device info\n deviceInfo: DI;\n\n // language infos\n activeLanguage: string;\n languages: (string | EuiLanguage)[];\n\n // app metadata\n appMetadata: AMD;\n\n // various dynamic state\n hasModalActive?: boolean;\n isDimmerActive?: boolean; // Usage: map to eui base directive input coerce euiHighlighted\n}\n\nconst initialState: UIState = {\n appName: '',\n appShortName: '',\n appSubTitle: '',\n appBaseFontSize: '',\n\n isSidebarOpen: true,\n isSidebarActive: false,\n hasSidebar: false,\n hasSideContainer: false,\n hasHeader: false,\n isShrinkHeaderActive: false,\n hasBreadcrumb: false,\n hasHeaderLogo: false,\n hasHeaderEnvironment: false,\n hasToolbar: false,\n hasToolbarMegaMenu: false,\n hasToolbarMenu: false,\n environmentValue: '',\n isSidebarHidden: false,\n isSidebarFocused: false,\n hasSidebarCollapsedVariant: false,\n hasTopMessage: false,\n windowWidth: 0,\n windowHeight: 0,\n mainContentHeight: 0,\n pageHeaderHeight: 0,\n wrapperClasses: '',\n breakpoint: '',\n breakpoints: {\n isMobile: false,\n isTablet: false,\n isLtLargeTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n isFHD: false,\n is2K: false,\n is4K: false,\n },\n breakpointValues: [],\n menuLinks: [],\n sidebarLinks: [],\n combinedLinks: [],\n isBlockDocumentActive: false,\n deviceInfo: null,\n activeLanguage: 'en',\n languages: EuiEuLanguages.getLanguages(),\n appMetadata: null,\n hasModalActive: false,\n isDimmerActive: false,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiAppShellService {\n navigationStartCustomHandler: () => void;\n navigationEndCustomHandler: () => void;\n protected config = inject<GlobalConfig>(GLOBAL_CONFIG_TOKEN, { optional: true });\n private http = inject(HttpClient);\n private platformId = inject(PLATFORM_ID);\n private document = inject<Document>(DOCUMENT);\n private router = inject(Router);\n private storeService = inject(StoreService);\n private i18nService = inject(I18nService, { optional: true });\n\n // -------------------\n get state$(): Observable<UIState> {\n return this._state$.asObservable();\n }\n\n // -------------------\n // exposed observables\n\n get breakpoint$(): Observable<string> {\n return this._breakpoint$.asObservable();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get breakpoints$(): Observable<any> {\n return this._breakpoints$.asObservable();\n }\n\n // ----------------\n // state operations\n // ----------------\n get state(): UIState {\n return this._state$.getValue();\n }\n\n // ----------------------------\n // public setters and functions\n // ----------------------------\n set isSidebarOpen(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarOpen: isOpen,\n });\n }\n\n get isSidebarOpen(): boolean {\n return this.state.isSidebarOpen;\n }\n\n set isSidebarActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isSidebarActive: isActive,\n });\n }\n\n set sidebarLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n sidebarLinks: links,\n });\n }\n\n set hasSidebarCollapsedVariant(isActive: boolean) {\n this.setState({\n ...this.state,\n hasSidebarCollapsedVariant: isActive,\n });\n CssUtils.activateSidebarCssVars(this.document, this.platformId, isActive);\n }\n\n set menuLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n menuLinks: links,\n });\n }\n\n set isBlockDocumentActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isBlockDocumentActive: isActive,\n });\n }\n\n get hasHeader(): boolean {\n return this.state.hasHeader;\n }\n\n // Edit mode\n get isDimmerActive(): boolean {\n return this.state.isDimmerActive;\n }\n\n set isDimmerActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isDimmerActive: isActive,\n });\n }\n\n private _state$: BehaviorSubject<UIState>;\n private _breakpoint$: BehaviorSubject<string>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _breakpoints$: BehaviorSubject<any>;\n\n constructor() {\n const config = this.config;\n\n let stateWithConfig = initialState;\n const languages = config?.i18n?.i18nService?.languages || initialState.languages;\n const defaultLanguage = config?.i18n?.i18nService?.defaultLanguage || initialState.activeLanguage;\n stateWithConfig = {\n ...stateWithConfig,\n ...{\n languages,\n activeLanguage: defaultLanguage,\n },\n };\n this._state$ = new BehaviorSubject(stateWithConfig);\n this._breakpoint$ = new BehaviorSubject('');\n this._breakpoints$ = new BehaviorSubject({});\n this.bindActiveLanguageToAppShellState();\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n setState(nextState: UIState<any, any, any, any>, updateI18 = true): void {\n let breakpoint, breakpoints;\n let combinedLinks;\n\n const state = this.state;\n\n // check if window width has been updated from previous state\n if (this.state.windowWidth !== nextState.windowWidth) {\n breakpoint = this.getBreakpoint(nextState.windowWidth);\n breakpoints = this.getBreakpoints(breakpoint);\n\n this._breakpoint$.next(breakpoint);\n this._breakpoints$.next(breakpoints);\n\n // if not propagate the old ones without doing any calculations\n } else {\n breakpoint = state.breakpoint;\n breakpoints = state.breakpoints;\n }\n\n // finally get the wrapper classes when both the state and breakpoint are known\n const wrapperClasses = this.getWrapperClasses(nextState, breakpoint);\n\n // check if the menuLinks or sidebarLinks have changed from previous state\n if (this.state.menuLinks !== nextState.menuLinks || this.state.sidebarLinks !== nextState.sidebarLinks) {\n combinedLinks = [...nextState.menuLinks, ...nextState.sidebarLinks];\n } else {\n combinedLinks = this.state.combinedLinks;\n }\n\n const stateBeforeUpdate = { ...this.state };\n\n // we put it all together with the calculated properties\n this._state$.next({\n ...nextState,\n wrapperClasses,\n breakpoint,\n breakpoints,\n combinedLinks,\n });\n\n // update the Store Language\n if (updateI18 && nextState.activeLanguage !== stateBeforeUpdate.activeLanguage) {\n this.i18nService.updateState({ activeLang: nextState.activeLanguage });\n }\n }\n\n /**\n * Emits a slice from the state whether that changes\n *\n * @param key can be 'key' or 'key.sub.sub'\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getState<T = any>(key?: string): Observable<T> {\n return defer(() =>\n // check if key exists\n key\n ? this.state$.pipe(\n map((state) => get(state, key)),\n // filter((state) => state),\n distinctUntilChanged((x, y) => isEqual(x, y)),\n )\n : this.state$,\n );\n }\n\n public sidebarToggle(): void {\n this.isSidebarOpen = !this.state.isSidebarOpen;\n }\n\n // Edit mode\n public dimmerActiveToggle(): void {\n const isActive = this.isDimmerActive;\n this.setState({\n ...this.state,\n isDimmerActive: !isActive,\n });\n CssUtils.activateEditModeCssVars(!isActive, this.document);\n }\n\n public setDimmerActiveState(activeState: boolean): void {\n this.setState({\n ...this.state,\n isDimmerActive: activeState,\n });\n CssUtils.activateEditModeCssVars(activeState, this.document);\n }\n\n // --------------\n // public methods\n // --------------\n public fetchAppMetadata(metadataFilePath = 'assets/app-metadata.json'): void {\n this.getJson(metadataFilePath).then((data) => {\n this.setState({\n ...this.state,\n appMetadata: data,\n });\n });\n }\n\n public activateSidebar(): void {\n this.setState({\n ...this.state,\n hasSidebar: true,\n });\n\n if (!this.state.isSidebarHidden) {\n CssUtils.activateSidebarCssVars(this.document, this.platformId, this.state.hasSidebarCollapsedVariant);\n }\n }\n\n public activateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: true,\n });\n\n CssUtils.activateSideContainerCssVars(this.document, this.platformId);\n }\n\n public deactivateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: false,\n });\n\n CssUtils.deactivateSideContainerCssVars(this.document, this.platformId);\n }\n\n public activateSidebarHeader(): void {\n CssUtils.activateSidebarHeaderCssVars(this.document, this.platformId);\n }\n\n public activateSidebarFooter(): void {\n CssUtils.activateSidebarFooterCssVars(this.document, this.platformId);\n }\n\n public activateHeader(): void {\n this.setState({\n ...this.state,\n hasHeader: true,\n });\n CssUtils.activateHeaderCssVars(this.document, this.platformId);\n }\n\n public activateBreadcrumb(): void {\n this.setState({\n ...this.state,\n hasBreadcrumb: true,\n });\n CssUtils.activateBreadcrumbCssVars(this.document, this.platformId);\n }\n\n public activateTopMessage(height: number): void {\n this.setState({\n ...this.state,\n hasTopMessage: true,\n });\n CssUtils.activateTopMessageCssVars(height, this.document);\n }\n\n public activateToolbar(): void {\n this.setState({\n ...this.state,\n hasToolbar: true,\n });\n CssUtils.activateToolbarCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMegaMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMegaMenu: true,\n });\n CssUtils.activateToolbarMegaMenuCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMenu: true,\n });\n }\n\n /**\n * Returns the current value of --eui-f-size-base CSS variable\n */\n public getBaseFontSize(): string {\n return this.state.appBaseFontSize || CssUtils.getCssVarValue('--eui-f-size-base', this.document, this.platformId);\n }\n\n /**\n * Updates the current value of --eui-f-size-base CSS variable and the UIState appBaseFontSize\n */\n public setBaseFontSize(newsize: string): void {\n this.setState(\n {\n ...this.state,\n appBaseFontSize: newsize,\n },\n false,\n );\n CssUtils.setCssVarValue('--eui-f-size-base', newsize, this.document);\n }\n\n // ---------------\n // private getters\n // ---------------\n private getWrapperClasses(state: UIState, breakpoint: string): string {\n const classes: string[] = [];\n\n classes.push(breakpoint);\n\n if (state.hasSidebar) {\n if (state.isSidebarHidden) {\n classes.push('sidebar--hidden');\n }\n if (state.isSidebarOpen) {\n classes.push('sidebar--open');\n } else {\n classes.push('sidebar--close');\n }\n }\n if (state.deviceInfo?.isFF) {\n classes.push('ff');\n }\n if (state.deviceInfo?.isIE) {\n classes.push('ie');\n }\n if (state.deviceInfo?.isChrome) {\n classes.push('chrome');\n }\n return classes.join(' ');\n }\n\n private getBreakpoint(windowWidth: number): string {\n let bkp = '';\n\n if (this.state.breakpointValues.length === 0) {\n this.setState({\n ...this.state,\n breakpointValues: CssUtils.getBreakpointValues(this.document, this.platformId),\n });\n }\n\n this.state.breakpointValues.forEach((b, i) => {\n if (i < this.state.breakpointValues.length) {\n if (windowWidth >= b.value && windowWidth < this.state.breakpointValues[i+1]?.value) {\n bkp = b.bkp;\n }\n } else if(windowWidth >= b.value) {\n bkp = b.bkp;\n }\n });\n\n return bkp;\n }\n\n private getBreakpoints(bkp: string): object {\n return {\n isMobile: bkp === 'xs' || bkp === 'sm',\n isTablet: bkp === 'md',\n isLtLargeTablet: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg',\n isLtDesktop: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg' || bkp === 'xl',\n isDesktop: bkp === 'xxl',\n isXL: bkp === 'xl',\n isXXL: bkp === 'xxl',\n isFHD: bkp === 'fhd',\n is2K: bkp === '2k',\n is4K: bkp === '4k',\n };\n }\n\n private getJson(url: string): Promise<object> {\n return firstValueFrom(this.http.get(url)).then(this.extractData).catch(this.handleError);\n }\n\n private extractData(res: Response): object {\n const body = res;\n return body || {};\n }\n\n private handleError<T extends Error>(error: T): Promise<T> {\n console.error('An error occurred', error);\n return Promise.reject(error.message || error);\n }\n\n private bindActiveLanguageToAppShellState(): void {\n this.i18nService.getState((s) => s.activeLang).subscribe((activeLang) => {\n if (activeLang !== this.state.activeLanguage) {\n this.setState(\n {\n ...this.state,\n activeLanguage: activeLang,\n },\n false,\n );\n }\n });\n }\n}\n",
|
|
3582
|
+
"sourceCode": "import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, defer, firstValueFrom, Observable } from 'rxjs';\nimport { EuiEuLanguages, GlobalConfig, getActiveLang, EuiLanguage, EuiMenuItem } from '@eui/base';\nimport { GLOBAL_CONFIG_TOKEN } from './config/tokens';\nimport { I18nService } from './i18n';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { StoreService } from './store/store.service';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { isEqual, get } from 'lodash-es';\nimport { CssUtils } from '../helpers/css-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UIState<BP = any, DI = any, AMD =any, BPV = any> {\n // app state\n appName?: string;\n appShortName?: string;\n appSubTitle?: string;\n appBaseFontSize?: string;\n\n // Sidebar state\n isSidebarOpen?: boolean;\n isSidebarActive?: boolean;\n hasSidebar?: boolean;\n hasSideContainer?: boolean;\n hasBreadcrumb?: boolean;\n hasHeader?: boolean;\n isShrinkHeaderActive?: boolean;\n hasHeaderLogo?: boolean;\n hasHeaderEnvironment?: boolean;\n hasToolbar?: boolean;\n hasToolbarMegaMenu?: boolean;\n hasToolbarMenu?: boolean;\n environmentValue?: string;\n isSidebarHidden?: boolean;\n isSidebarFocused?: boolean;\n hasSidebarCollapsedVariant?: boolean;\n hasTopMessage?: boolean;\n\n // window state\n hasFixedPosition?: boolean;\n windowWidth?: number;\n windowHeight?: number;\n mainContentHeight?: number;\n pageHeaderHeight?: number;\n breakpoint?: string;\n wrapperClasses?: string;\n breakpoints?: BP;\n breakpointValues?: BPV;\n\n // navigation state\n menuLinks?: EuiMenuItem[];\n sidebarLinks?: EuiMenuItem[];\n combinedLinks?: EuiMenuItem[];\n\n // other states\n isBlockDocumentActive?: boolean;\n\n // device info\n deviceInfo: DI;\n\n // language infos\n activeLanguage: string;\n languages: (string | EuiLanguage)[];\n\n // app metadata\n appMetadata: AMD;\n\n // various dynamic state\n hasModalActive?: boolean;\n isDimmerActive?: boolean; // Usage: map to eui base directive input coerce euiHighlighted\n}\n\nconst initialState: UIState = {\n appName: '',\n appShortName: '',\n appSubTitle: '',\n appBaseFontSize: '',\n\n isSidebarOpen: true,\n isSidebarActive: false,\n hasSidebar: false,\n hasSideContainer: false,\n hasHeader: false,\n isShrinkHeaderActive: false,\n hasBreadcrumb: false,\n hasHeaderLogo: false,\n hasHeaderEnvironment: false,\n hasToolbar: false,\n hasToolbarMegaMenu: false,\n hasToolbarMenu: false,\n environmentValue: '',\n isSidebarHidden: false,\n isSidebarFocused: false,\n hasSidebarCollapsedVariant: false,\n hasTopMessage: false,\n windowWidth: 0,\n windowHeight: 0,\n mainContentHeight: 0,\n pageHeaderHeight: 0,\n wrapperClasses: '',\n breakpoint: '',\n breakpoints: {\n isMobile: false,\n isTablet: false,\n isLtLargeTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n isFHD: false,\n is2K: false,\n is4K: false,\n },\n breakpointValues: [],\n menuLinks: [],\n sidebarLinks: [],\n combinedLinks: [],\n isBlockDocumentActive: false,\n deviceInfo: null,\n activeLanguage: 'en',\n languages: EuiEuLanguages.getLanguages(),\n appMetadata: null,\n hasModalActive: false,\n isDimmerActive: false,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiAppShellService {\n navigationStartCustomHandler: () => void;\n navigationEndCustomHandler: () => void;\n protected config = inject<GlobalConfig>(GLOBAL_CONFIG_TOKEN, { optional: true });\n private http = inject(HttpClient);\n private platformId = inject(PLATFORM_ID);\n private document = inject<Document>(DOCUMENT);\n private router = inject(Router);\n private storeService = inject(StoreService);\n private i18nService = inject(I18nService, { optional: true });\n\n // -------------------\n get state$(): Observable<UIState> {\n return this._state$.asObservable();\n }\n\n // -------------------\n // exposed observables\n\n get breakpoint$(): Observable<string> {\n return this._breakpoint$.asObservable();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get breakpoints$(): Observable<any> {\n return this._breakpoints$.asObservable();\n }\n\n // ----------------\n // state operations\n // ----------------\n get state(): UIState {\n return this._state$.getValue();\n }\n\n // ----------------------------\n // public setters and functions\n // ----------------------------\n set isSidebarOpen(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarOpen: isOpen,\n });\n }\n\n get isSidebarOpen(): boolean {\n return this.state.isSidebarOpen;\n }\n\n set isSidebarActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isSidebarActive: isActive,\n });\n }\n\n set sidebarLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n sidebarLinks: links,\n });\n }\n\n set hasSidebarCollapsedVariant(isActive: boolean) {\n this.setState({\n ...this.state,\n hasSidebarCollapsedVariant: isActive,\n });\n CssUtils.activateSidebarCssVars(this.document, this.platformId, isActive);\n }\n\n set menuLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n menuLinks: links,\n });\n }\n\n set isBlockDocumentActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isBlockDocumentActive: isActive,\n });\n }\n\n get hasHeader(): boolean {\n return this.state.hasHeader;\n }\n\n // Edit mode\n get isDimmerActive(): boolean {\n return this.state.isDimmerActive;\n }\n\n set isDimmerActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isDimmerActive: isActive,\n });\n }\n\n private _state$: BehaviorSubject<UIState>;\n private _breakpoint$: BehaviorSubject<string>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _breakpoints$: BehaviorSubject<any>;\n\n constructor() {\n const config = this.config;\n\n let stateWithConfig = initialState;\n const languages = config?.i18n?.i18nService?.languages || initialState.languages;\n const defaultLanguage = config?.i18n?.i18nService?.defaultLanguage || initialState.activeLanguage;\n stateWithConfig = {\n ...stateWithConfig,\n ...{\n languages,\n activeLanguage: defaultLanguage,\n },\n };\n this._state$ = new BehaviorSubject(stateWithConfig);\n this._breakpoint$ = new BehaviorSubject('');\n this._breakpoints$ = new BehaviorSubject({});\n this.bindActiveLanguageToAppShellState();\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n setState(nextState: UIState<any, any, any, any>, updateI18 = true): void {\n let breakpoint, breakpoints;\n let combinedLinks;\n\n const state = this.state;\n\n // check if window width has been updated from previous state\n if (this.state.windowWidth !== nextState.windowWidth) {\n breakpoint = this.getBreakpoint(nextState.windowWidth);\n breakpoints = this.getBreakpoints(breakpoint);\n\n this._breakpoint$.next(breakpoint);\n this._breakpoints$.next(breakpoints);\n\n // if not propagate the old ones without doing any calculations\n } else {\n breakpoint = state.breakpoint;\n breakpoints = state.breakpoints;\n }\n\n // finally get the wrapper classes when both the state and breakpoint are known\n const wrapperClasses = this.getWrapperClasses(nextState, breakpoint);\n\n // check if the menuLinks or sidebarLinks have changed from previous state\n if (this.state.menuLinks !== nextState.menuLinks || this.state.sidebarLinks !== nextState.sidebarLinks) {\n combinedLinks = [...nextState.menuLinks, ...nextState.sidebarLinks];\n } else {\n combinedLinks = this.state.combinedLinks;\n }\n\n const stateBeforeUpdate = { ...this.state };\n\n // we put it all together with the calculated properties\n this._state$.next({\n ...nextState,\n wrapperClasses,\n breakpoint,\n breakpoints,\n combinedLinks,\n });\n\n // update the Store Language\n if (updateI18 && nextState.activeLanguage !== stateBeforeUpdate.activeLanguage) {\n this.i18nService?.updateState({ activeLang: nextState.activeLanguage });\n }\n }\n\n /**\n * Emits a slice from the state whether that changes\n *\n * @param key can be 'key' or 'key.sub.sub'\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getState<T = any>(key?: string): Observable<T> {\n return defer(() =>\n // check if key exists\n key\n ? this.state$.pipe(\n map((state) => get(state, key)),\n // filter((state) => state),\n distinctUntilChanged((x, y) => isEqual(x, y)),\n )\n : this.state$,\n );\n }\n\n public sidebarToggle(): void {\n this.isSidebarOpen = !this.state.isSidebarOpen;\n }\n\n // Edit mode\n public dimmerActiveToggle(): void {\n const isActive = this.isDimmerActive;\n this.setState({\n ...this.state,\n isDimmerActive: !isActive,\n });\n CssUtils.activateEditModeCssVars(!isActive, this.document);\n }\n\n public setDimmerActiveState(activeState: boolean): void {\n this.setState({\n ...this.state,\n isDimmerActive: activeState,\n });\n CssUtils.activateEditModeCssVars(activeState, this.document);\n }\n\n // --------------\n // public methods\n // --------------\n public fetchAppMetadata(metadataFilePath = 'assets/app-metadata.json'): void {\n this.getJson(metadataFilePath).then((data) => {\n this.setState({\n ...this.state,\n appMetadata: data,\n });\n });\n }\n\n public activateSidebar(): void {\n this.setState({\n ...this.state,\n hasSidebar: true,\n });\n\n if (!this.state.isSidebarHidden) {\n CssUtils.activateSidebarCssVars(this.document, this.platformId, this.state.hasSidebarCollapsedVariant);\n }\n }\n\n public activateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: true,\n });\n\n CssUtils.activateSideContainerCssVars(this.document, this.platformId);\n }\n\n public deactivateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: false,\n });\n\n CssUtils.deactivateSideContainerCssVars(this.document, this.platformId);\n }\n\n public activateSidebarHeader(): void {\n CssUtils.activateSidebarHeaderCssVars(this.document, this.platformId);\n }\n\n public activateSidebarFooter(): void {\n CssUtils.activateSidebarFooterCssVars(this.document, this.platformId);\n }\n\n public activateHeader(): void {\n this.setState({\n ...this.state,\n hasHeader: true,\n });\n CssUtils.activateHeaderCssVars(this.document, this.platformId);\n }\n\n public activateBreadcrumb(): void {\n this.setState({\n ...this.state,\n hasBreadcrumb: true,\n });\n CssUtils.activateBreadcrumbCssVars(this.document, this.platformId);\n }\n\n public activateTopMessage(height: number): void {\n this.setState({\n ...this.state,\n hasTopMessage: true,\n });\n CssUtils.activateTopMessageCssVars(height, this.document);\n }\n\n public activateToolbar(): void {\n this.setState({\n ...this.state,\n hasToolbar: true,\n });\n CssUtils.activateToolbarCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMegaMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMegaMenu: true,\n });\n CssUtils.activateToolbarMegaMenuCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMenu: true,\n });\n }\n\n /**\n * Returns the current value of --eui-f-size-base CSS variable\n */\n public getBaseFontSize(): string {\n return this.state.appBaseFontSize || CssUtils.getCssVarValue('--eui-f-size-base', this.document, this.platformId);\n }\n\n /**\n * Updates the current value of --eui-f-size-base CSS variable and the UIState appBaseFontSize\n */\n public setBaseFontSize(newsize: string): void {\n this.setState(\n {\n ...this.state,\n appBaseFontSize: newsize,\n },\n false,\n );\n CssUtils.setCssVarValue('--eui-f-size-base', newsize, this.document);\n }\n\n // ---------------\n // private getters\n // ---------------\n private getWrapperClasses(state: UIState, breakpoint: string): string {\n const classes: string[] = [];\n\n classes.push(breakpoint);\n\n if (state.hasSidebar) {\n if (state.isSidebarHidden) {\n classes.push('sidebar--hidden');\n }\n if (state.isSidebarOpen) {\n classes.push('sidebar--open');\n } else {\n classes.push('sidebar--close');\n }\n }\n if (state.deviceInfo?.isFF) {\n classes.push('ff');\n }\n if (state.deviceInfo?.isIE) {\n classes.push('ie');\n }\n if (state.deviceInfo?.isChrome) {\n classes.push('chrome');\n }\n return classes.join(' ');\n }\n\n private getBreakpoint(windowWidth: number): string {\n let bkp = '';\n\n if (this.state.breakpointValues.length === 0) {\n this.setState({\n ...this.state,\n breakpointValues: CssUtils.getBreakpointValues(this.document, this.platformId),\n });\n }\n\n this.state.breakpointValues.forEach((b, i) => {\n if (i < this.state.breakpointValues.length) {\n if (windowWidth >= b.value && windowWidth < this.state.breakpointValues[i+1]?.value) {\n bkp = b.bkp;\n }\n } else if(windowWidth >= b.value) {\n bkp = b.bkp;\n }\n });\n\n return bkp;\n }\n\n private getBreakpoints(bkp: string): object {\n return {\n isMobile: bkp === 'xs' || bkp === 'sm',\n isTablet: bkp === 'md',\n isLtLargeTablet: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg',\n isLtDesktop: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg' || bkp === 'xl',\n isDesktop: bkp === 'xxl',\n isXL: bkp === 'xl',\n isXXL: bkp === 'xxl',\n isFHD: bkp === 'fhd',\n is2K: bkp === '2k',\n is4K: bkp === '4k',\n };\n }\n\n private getJson(url: string): Promise<object> {\n return firstValueFrom(this.http.get(url)).then(this.extractData).catch(this.handleError);\n }\n\n private extractData(res: Response): object {\n const body = res;\n return body || {};\n }\n\n private handleError<T extends Error>(error: T): Promise<T> {\n console.error('An error occurred', error);\n return Promise.reject(error.message || error);\n }\n\n private bindActiveLanguageToAppShellState(): void {\n if (!this.i18nService) {\n return;\n }\n this.i18nService.getState((s) => s.activeLang).subscribe((activeLang) => {\n if (activeLang !== this.state.activeLanguage) {\n this.setState(\n {\n ...this.state,\n activeLanguage: activeLang,\n },\n false,\n );\n }\n });\n }\n}\n",
|
|
3583
3583
|
"displayName": "UIState<BP = any, DI = any, AMD =any, BPV = any>",
|
|
3584
3584
|
"typeParameters": [
|
|
3585
3585
|
"BP = any",
|
|
@@ -5047,7 +5047,7 @@
|
|
|
5047
5047
|
},
|
|
5048
5048
|
{
|
|
5049
5049
|
"name": "EuiAppShellService",
|
|
5050
|
-
"id": "injectable-EuiAppShellService-
|
|
5050
|
+
"id": "injectable-EuiAppShellService-f1976eab5525bcef6ad2f5270074f44d49266217cac22255920e3a5be7eee4095f689d809e4fe56262d28a85ea12a19c67cf46a343134587fb48f0ce841014cf",
|
|
5051
5051
|
"file": "packages/core/src/lib/services/eui-app-shell.service.ts",
|
|
5052
5052
|
"coverageIgnore": false,
|
|
5053
5053
|
"properties": [
|
|
@@ -5389,8 +5389,8 @@
|
|
|
5389
5389
|
"jsdoctags": [
|
|
5390
5390
|
{
|
|
5391
5391
|
"name": {
|
|
5392
|
-
"pos":
|
|
5393
|
-
"end":
|
|
5392
|
+
"pos": 9112,
|
|
5393
|
+
"end": 9115,
|
|
5394
5394
|
"kind": 80,
|
|
5395
5395
|
"id": 0,
|
|
5396
5396
|
"flags": 16842752,
|
|
@@ -5403,8 +5403,8 @@
|
|
|
5403
5403
|
"deprecated": false,
|
|
5404
5404
|
"deprecationMessage": "",
|
|
5405
5405
|
"tagName": {
|
|
5406
|
-
"pos":
|
|
5407
|
-
"end":
|
|
5406
|
+
"pos": 9106,
|
|
5407
|
+
"end": 9111,
|
|
5408
5408
|
"kind": 80,
|
|
5409
5409
|
"id": 0,
|
|
5410
5410
|
"flags": 16842752,
|
|
@@ -5568,7 +5568,7 @@
|
|
|
5568
5568
|
"deprecationMessage": "",
|
|
5569
5569
|
"description": "",
|
|
5570
5570
|
"rawdescription": "\n",
|
|
5571
|
-
"sourceCode": "import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, defer, firstValueFrom, Observable } from 'rxjs';\nimport { EuiEuLanguages, GlobalConfig, getActiveLang, EuiLanguage, EuiMenuItem } from '@eui/base';\nimport { GLOBAL_CONFIG_TOKEN } from './config/tokens';\nimport { I18nService } from './i18n';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { StoreService } from './store/store.service';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { isEqual, get } from 'lodash-es';\nimport { CssUtils } from '../helpers/css-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UIState<BP = any, DI = any, AMD =any, BPV = any> {\n // app state\n appName?: string;\n appShortName?: string;\n appSubTitle?: string;\n appBaseFontSize?: string;\n\n // Sidebar state\n isSidebarOpen?: boolean;\n isSidebarActive?: boolean;\n hasSidebar?: boolean;\n hasSideContainer?: boolean;\n hasBreadcrumb?: boolean;\n hasHeader?: boolean;\n isShrinkHeaderActive?: boolean;\n hasHeaderLogo?: boolean;\n hasHeaderEnvironment?: boolean;\n hasToolbar?: boolean;\n hasToolbarMegaMenu?: boolean;\n hasToolbarMenu?: boolean;\n environmentValue?: string;\n isSidebarHidden?: boolean;\n isSidebarFocused?: boolean;\n hasSidebarCollapsedVariant?: boolean;\n hasTopMessage?: boolean;\n\n // window state\n hasFixedPosition?: boolean;\n windowWidth?: number;\n windowHeight?: number;\n mainContentHeight?: number;\n pageHeaderHeight?: number;\n breakpoint?: string;\n wrapperClasses?: string;\n breakpoints?: BP;\n breakpointValues?: BPV;\n\n // navigation state\n menuLinks?: EuiMenuItem[];\n sidebarLinks?: EuiMenuItem[];\n combinedLinks?: EuiMenuItem[];\n\n // other states\n isBlockDocumentActive?: boolean;\n\n // device info\n deviceInfo: DI;\n\n // language infos\n activeLanguage: string;\n languages: (string | EuiLanguage)[];\n\n // app metadata\n appMetadata: AMD;\n\n // various dynamic state\n hasModalActive?: boolean;\n isDimmerActive?: boolean; // Usage: map to eui base directive input coerce euiHighlighted\n}\n\nconst initialState: UIState = {\n appName: '',\n appShortName: '',\n appSubTitle: '',\n appBaseFontSize: '',\n\n isSidebarOpen: true,\n isSidebarActive: false,\n hasSidebar: false,\n hasSideContainer: false,\n hasHeader: false,\n isShrinkHeaderActive: false,\n hasBreadcrumb: false,\n hasHeaderLogo: false,\n hasHeaderEnvironment: false,\n hasToolbar: false,\n hasToolbarMegaMenu: false,\n hasToolbarMenu: false,\n environmentValue: '',\n isSidebarHidden: false,\n isSidebarFocused: false,\n hasSidebarCollapsedVariant: false,\n hasTopMessage: false,\n windowWidth: 0,\n windowHeight: 0,\n mainContentHeight: 0,\n pageHeaderHeight: 0,\n wrapperClasses: '',\n breakpoint: '',\n breakpoints: {\n isMobile: false,\n isTablet: false,\n isLtLargeTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n isFHD: false,\n is2K: false,\n is4K: false,\n },\n breakpointValues: [],\n menuLinks: [],\n sidebarLinks: [],\n combinedLinks: [],\n isBlockDocumentActive: false,\n deviceInfo: null,\n activeLanguage: 'en',\n languages: EuiEuLanguages.getLanguages(),\n appMetadata: null,\n hasModalActive: false,\n isDimmerActive: false,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiAppShellService {\n navigationStartCustomHandler: () => void;\n navigationEndCustomHandler: () => void;\n protected config = inject<GlobalConfig>(GLOBAL_CONFIG_TOKEN, { optional: true });\n private http = inject(HttpClient);\n private platformId = inject(PLATFORM_ID);\n private document = inject<Document>(DOCUMENT);\n private router = inject(Router);\n private storeService = inject(StoreService);\n private i18nService = inject(I18nService, { optional: true });\n\n // -------------------\n get state$(): Observable<UIState> {\n return this._state$.asObservable();\n }\n\n // -------------------\n // exposed observables\n\n get breakpoint$(): Observable<string> {\n return this._breakpoint$.asObservable();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get breakpoints$(): Observable<any> {\n return this._breakpoints$.asObservable();\n }\n\n // ----------------\n // state operations\n // ----------------\n get state(): UIState {\n return this._state$.getValue();\n }\n\n // ----------------------------\n // public setters and functions\n // ----------------------------\n set isSidebarOpen(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarOpen: isOpen,\n });\n }\n\n get isSidebarOpen(): boolean {\n return this.state.isSidebarOpen;\n }\n\n set isSidebarActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isSidebarActive: isActive,\n });\n }\n\n set sidebarLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n sidebarLinks: links,\n });\n }\n\n set hasSidebarCollapsedVariant(isActive: boolean) {\n this.setState({\n ...this.state,\n hasSidebarCollapsedVariant: isActive,\n });\n CssUtils.activateSidebarCssVars(this.document, this.platformId, isActive);\n }\n\n set menuLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n menuLinks: links,\n });\n }\n\n set isBlockDocumentActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isBlockDocumentActive: isActive,\n });\n }\n\n get hasHeader(): boolean {\n return this.state.hasHeader;\n }\n\n // Edit mode\n get isDimmerActive(): boolean {\n return this.state.isDimmerActive;\n }\n\n set isDimmerActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isDimmerActive: isActive,\n });\n }\n\n private _state$: BehaviorSubject<UIState>;\n private _breakpoint$: BehaviorSubject<string>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _breakpoints$: BehaviorSubject<any>;\n\n constructor() {\n const config = this.config;\n\n let stateWithConfig = initialState;\n const languages = config?.i18n?.i18nService?.languages || initialState.languages;\n const defaultLanguage = config?.i18n?.i18nService?.defaultLanguage || initialState.activeLanguage;\n stateWithConfig = {\n ...stateWithConfig,\n ...{\n languages,\n activeLanguage: defaultLanguage,\n },\n };\n this._state$ = new BehaviorSubject(stateWithConfig);\n this._breakpoint$ = new BehaviorSubject('');\n this._breakpoints$ = new BehaviorSubject({});\n this.bindActiveLanguageToAppShellState();\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n setState(nextState: UIState<any, any, any, any>, updateI18 = true): void {\n let breakpoint, breakpoints;\n let combinedLinks;\n\n const state = this.state;\n\n // check if window width has been updated from previous state\n if (this.state.windowWidth !== nextState.windowWidth) {\n breakpoint = this.getBreakpoint(nextState.windowWidth);\n breakpoints = this.getBreakpoints(breakpoint);\n\n this._breakpoint$.next(breakpoint);\n this._breakpoints$.next(breakpoints);\n\n // if not propagate the old ones without doing any calculations\n } else {\n breakpoint = state.breakpoint;\n breakpoints = state.breakpoints;\n }\n\n // finally get the wrapper classes when both the state and breakpoint are known\n const wrapperClasses = this.getWrapperClasses(nextState, breakpoint);\n\n // check if the menuLinks or sidebarLinks have changed from previous state\n if (this.state.menuLinks !== nextState.menuLinks || this.state.sidebarLinks !== nextState.sidebarLinks) {\n combinedLinks = [...nextState.menuLinks, ...nextState.sidebarLinks];\n } else {\n combinedLinks = this.state.combinedLinks;\n }\n\n const stateBeforeUpdate = { ...this.state };\n\n // we put it all together with the calculated properties\n this._state$.next({\n ...nextState,\n wrapperClasses,\n breakpoint,\n breakpoints,\n combinedLinks,\n });\n\n // update the Store Language\n if (updateI18 && nextState.activeLanguage !== stateBeforeUpdate.activeLanguage) {\n this.i18nService.updateState({ activeLang: nextState.activeLanguage });\n }\n }\n\n /**\n * Emits a slice from the state whether that changes\n *\n * @param key can be 'key' or 'key.sub.sub'\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getState<T = any>(key?: string): Observable<T> {\n return defer(() =>\n // check if key exists\n key\n ? this.state$.pipe(\n map((state) => get(state, key)),\n // filter((state) => state),\n distinctUntilChanged((x, y) => isEqual(x, y)),\n )\n : this.state$,\n );\n }\n\n public sidebarToggle(): void {\n this.isSidebarOpen = !this.state.isSidebarOpen;\n }\n\n // Edit mode\n public dimmerActiveToggle(): void {\n const isActive = this.isDimmerActive;\n this.setState({\n ...this.state,\n isDimmerActive: !isActive,\n });\n CssUtils.activateEditModeCssVars(!isActive, this.document);\n }\n\n public setDimmerActiveState(activeState: boolean): void {\n this.setState({\n ...this.state,\n isDimmerActive: activeState,\n });\n CssUtils.activateEditModeCssVars(activeState, this.document);\n }\n\n // --------------\n // public methods\n // --------------\n public fetchAppMetadata(metadataFilePath = 'assets/app-metadata.json'): void {\n this.getJson(metadataFilePath).then((data) => {\n this.setState({\n ...this.state,\n appMetadata: data,\n });\n });\n }\n\n public activateSidebar(): void {\n this.setState({\n ...this.state,\n hasSidebar: true,\n });\n\n if (!this.state.isSidebarHidden) {\n CssUtils.activateSidebarCssVars(this.document, this.platformId, this.state.hasSidebarCollapsedVariant);\n }\n }\n\n public activateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: true,\n });\n\n CssUtils.activateSideContainerCssVars(this.document, this.platformId);\n }\n\n public deactivateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: false,\n });\n\n CssUtils.deactivateSideContainerCssVars(this.document, this.platformId);\n }\n\n public activateSidebarHeader(): void {\n CssUtils.activateSidebarHeaderCssVars(this.document, this.platformId);\n }\n\n public activateSidebarFooter(): void {\n CssUtils.activateSidebarFooterCssVars(this.document, this.platformId);\n }\n\n public activateHeader(): void {\n this.setState({\n ...this.state,\n hasHeader: true,\n });\n CssUtils.activateHeaderCssVars(this.document, this.platformId);\n }\n\n public activateBreadcrumb(): void {\n this.setState({\n ...this.state,\n hasBreadcrumb: true,\n });\n CssUtils.activateBreadcrumbCssVars(this.document, this.platformId);\n }\n\n public activateTopMessage(height: number): void {\n this.setState({\n ...this.state,\n hasTopMessage: true,\n });\n CssUtils.activateTopMessageCssVars(height, this.document);\n }\n\n public activateToolbar(): void {\n this.setState({\n ...this.state,\n hasToolbar: true,\n });\n CssUtils.activateToolbarCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMegaMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMegaMenu: true,\n });\n CssUtils.activateToolbarMegaMenuCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMenu: true,\n });\n }\n\n /**\n * Returns the current value of --eui-f-size-base CSS variable\n */\n public getBaseFontSize(): string {\n return this.state.appBaseFontSize || CssUtils.getCssVarValue('--eui-f-size-base', this.document, this.platformId);\n }\n\n /**\n * Updates the current value of --eui-f-size-base CSS variable and the UIState appBaseFontSize\n */\n public setBaseFontSize(newsize: string): void {\n this.setState(\n {\n ...this.state,\n appBaseFontSize: newsize,\n },\n false,\n );\n CssUtils.setCssVarValue('--eui-f-size-base', newsize, this.document);\n }\n\n // ---------------\n // private getters\n // ---------------\n private getWrapperClasses(state: UIState, breakpoint: string): string {\n const classes: string[] = [];\n\n classes.push(breakpoint);\n\n if (state.hasSidebar) {\n if (state.isSidebarHidden) {\n classes.push('sidebar--hidden');\n }\n if (state.isSidebarOpen) {\n classes.push('sidebar--open');\n } else {\n classes.push('sidebar--close');\n }\n }\n if (state.deviceInfo?.isFF) {\n classes.push('ff');\n }\n if (state.deviceInfo?.isIE) {\n classes.push('ie');\n }\n if (state.deviceInfo?.isChrome) {\n classes.push('chrome');\n }\n return classes.join(' ');\n }\n\n private getBreakpoint(windowWidth: number): string {\n let bkp = '';\n\n if (this.state.breakpointValues.length === 0) {\n this.setState({\n ...this.state,\n breakpointValues: CssUtils.getBreakpointValues(this.document, this.platformId),\n });\n }\n\n this.state.breakpointValues.forEach((b, i) => {\n if (i < this.state.breakpointValues.length) {\n if (windowWidth >= b.value && windowWidth < this.state.breakpointValues[i+1]?.value) {\n bkp = b.bkp;\n }\n } else if(windowWidth >= b.value) {\n bkp = b.bkp;\n }\n });\n\n return bkp;\n }\n\n private getBreakpoints(bkp: string): object {\n return {\n isMobile: bkp === 'xs' || bkp === 'sm',\n isTablet: bkp === 'md',\n isLtLargeTablet: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg',\n isLtDesktop: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg' || bkp === 'xl',\n isDesktop: bkp === 'xxl',\n isXL: bkp === 'xl',\n isXXL: bkp === 'xxl',\n isFHD: bkp === 'fhd',\n is2K: bkp === '2k',\n is4K: bkp === '4k',\n };\n }\n\n private getJson(url: string): Promise<object> {\n return firstValueFrom(this.http.get(url)).then(this.extractData).catch(this.handleError);\n }\n\n private extractData(res: Response): object {\n const body = res;\n return body || {};\n }\n\n private handleError<T extends Error>(error: T): Promise<T> {\n console.error('An error occurred', error);\n return Promise.reject(error.message || error);\n }\n\n private bindActiveLanguageToAppShellState(): void {\n this.i18nService.getState((s) => s.activeLang).subscribe((activeLang) => {\n if (activeLang !== this.state.activeLanguage) {\n this.setState(\n {\n ...this.state,\n activeLanguage: activeLang,\n },\n false,\n );\n }\n });\n }\n}\n",
|
|
5571
|
+
"sourceCode": "import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, defer, firstValueFrom, Observable } from 'rxjs';\nimport { EuiEuLanguages, GlobalConfig, getActiveLang, EuiLanguage, EuiMenuItem } from '@eui/base';\nimport { GLOBAL_CONFIG_TOKEN } from './config/tokens';\nimport { I18nService } from './i18n';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { StoreService } from './store/store.service';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { isEqual, get } from 'lodash-es';\nimport { CssUtils } from '../helpers/css-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UIState<BP = any, DI = any, AMD =any, BPV = any> {\n // app state\n appName?: string;\n appShortName?: string;\n appSubTitle?: string;\n appBaseFontSize?: string;\n\n // Sidebar state\n isSidebarOpen?: boolean;\n isSidebarActive?: boolean;\n hasSidebar?: boolean;\n hasSideContainer?: boolean;\n hasBreadcrumb?: boolean;\n hasHeader?: boolean;\n isShrinkHeaderActive?: boolean;\n hasHeaderLogo?: boolean;\n hasHeaderEnvironment?: boolean;\n hasToolbar?: boolean;\n hasToolbarMegaMenu?: boolean;\n hasToolbarMenu?: boolean;\n environmentValue?: string;\n isSidebarHidden?: boolean;\n isSidebarFocused?: boolean;\n hasSidebarCollapsedVariant?: boolean;\n hasTopMessage?: boolean;\n\n // window state\n hasFixedPosition?: boolean;\n windowWidth?: number;\n windowHeight?: number;\n mainContentHeight?: number;\n pageHeaderHeight?: number;\n breakpoint?: string;\n wrapperClasses?: string;\n breakpoints?: BP;\n breakpointValues?: BPV;\n\n // navigation state\n menuLinks?: EuiMenuItem[];\n sidebarLinks?: EuiMenuItem[];\n combinedLinks?: EuiMenuItem[];\n\n // other states\n isBlockDocumentActive?: boolean;\n\n // device info\n deviceInfo: DI;\n\n // language infos\n activeLanguage: string;\n languages: (string | EuiLanguage)[];\n\n // app metadata\n appMetadata: AMD;\n\n // various dynamic state\n hasModalActive?: boolean;\n isDimmerActive?: boolean; // Usage: map to eui base directive input coerce euiHighlighted\n}\n\nconst initialState: UIState = {\n appName: '',\n appShortName: '',\n appSubTitle: '',\n appBaseFontSize: '',\n\n isSidebarOpen: true,\n isSidebarActive: false,\n hasSidebar: false,\n hasSideContainer: false,\n hasHeader: false,\n isShrinkHeaderActive: false,\n hasBreadcrumb: false,\n hasHeaderLogo: false,\n hasHeaderEnvironment: false,\n hasToolbar: false,\n hasToolbarMegaMenu: false,\n hasToolbarMenu: false,\n environmentValue: '',\n isSidebarHidden: false,\n isSidebarFocused: false,\n hasSidebarCollapsedVariant: false,\n hasTopMessage: false,\n windowWidth: 0,\n windowHeight: 0,\n mainContentHeight: 0,\n pageHeaderHeight: 0,\n wrapperClasses: '',\n breakpoint: '',\n breakpoints: {\n isMobile: false,\n isTablet: false,\n isLtLargeTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n isFHD: false,\n is2K: false,\n is4K: false,\n },\n breakpointValues: [],\n menuLinks: [],\n sidebarLinks: [],\n combinedLinks: [],\n isBlockDocumentActive: false,\n deviceInfo: null,\n activeLanguage: 'en',\n languages: EuiEuLanguages.getLanguages(),\n appMetadata: null,\n hasModalActive: false,\n isDimmerActive: false,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiAppShellService {\n navigationStartCustomHandler: () => void;\n navigationEndCustomHandler: () => void;\n protected config = inject<GlobalConfig>(GLOBAL_CONFIG_TOKEN, { optional: true });\n private http = inject(HttpClient);\n private platformId = inject(PLATFORM_ID);\n private document = inject<Document>(DOCUMENT);\n private router = inject(Router);\n private storeService = inject(StoreService);\n private i18nService = inject(I18nService, { optional: true });\n\n // -------------------\n get state$(): Observable<UIState> {\n return this._state$.asObservable();\n }\n\n // -------------------\n // exposed observables\n\n get breakpoint$(): Observable<string> {\n return this._breakpoint$.asObservable();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get breakpoints$(): Observable<any> {\n return this._breakpoints$.asObservable();\n }\n\n // ----------------\n // state operations\n // ----------------\n get state(): UIState {\n return this._state$.getValue();\n }\n\n // ----------------------------\n // public setters and functions\n // ----------------------------\n set isSidebarOpen(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarOpen: isOpen,\n });\n }\n\n get isSidebarOpen(): boolean {\n return this.state.isSidebarOpen;\n }\n\n set isSidebarActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isSidebarActive: isActive,\n });\n }\n\n set sidebarLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n sidebarLinks: links,\n });\n }\n\n set hasSidebarCollapsedVariant(isActive: boolean) {\n this.setState({\n ...this.state,\n hasSidebarCollapsedVariant: isActive,\n });\n CssUtils.activateSidebarCssVars(this.document, this.platformId, isActive);\n }\n\n set menuLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n menuLinks: links,\n });\n }\n\n set isBlockDocumentActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isBlockDocumentActive: isActive,\n });\n }\n\n get hasHeader(): boolean {\n return this.state.hasHeader;\n }\n\n // Edit mode\n get isDimmerActive(): boolean {\n return this.state.isDimmerActive;\n }\n\n set isDimmerActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isDimmerActive: isActive,\n });\n }\n\n private _state$: BehaviorSubject<UIState>;\n private _breakpoint$: BehaviorSubject<string>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _breakpoints$: BehaviorSubject<any>;\n\n constructor() {\n const config = this.config;\n\n let stateWithConfig = initialState;\n const languages = config?.i18n?.i18nService?.languages || initialState.languages;\n const defaultLanguage = config?.i18n?.i18nService?.defaultLanguage || initialState.activeLanguage;\n stateWithConfig = {\n ...stateWithConfig,\n ...{\n languages,\n activeLanguage: defaultLanguage,\n },\n };\n this._state$ = new BehaviorSubject(stateWithConfig);\n this._breakpoint$ = new BehaviorSubject('');\n this._breakpoints$ = new BehaviorSubject({});\n this.bindActiveLanguageToAppShellState();\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n setState(nextState: UIState<any, any, any, any>, updateI18 = true): void {\n let breakpoint, breakpoints;\n let combinedLinks;\n\n const state = this.state;\n\n // check if window width has been updated from previous state\n if (this.state.windowWidth !== nextState.windowWidth) {\n breakpoint = this.getBreakpoint(nextState.windowWidth);\n breakpoints = this.getBreakpoints(breakpoint);\n\n this._breakpoint$.next(breakpoint);\n this._breakpoints$.next(breakpoints);\n\n // if not propagate the old ones without doing any calculations\n } else {\n breakpoint = state.breakpoint;\n breakpoints = state.breakpoints;\n }\n\n // finally get the wrapper classes when both the state and breakpoint are known\n const wrapperClasses = this.getWrapperClasses(nextState, breakpoint);\n\n // check if the menuLinks or sidebarLinks have changed from previous state\n if (this.state.menuLinks !== nextState.menuLinks || this.state.sidebarLinks !== nextState.sidebarLinks) {\n combinedLinks = [...nextState.menuLinks, ...nextState.sidebarLinks];\n } else {\n combinedLinks = this.state.combinedLinks;\n }\n\n const stateBeforeUpdate = { ...this.state };\n\n // we put it all together with the calculated properties\n this._state$.next({\n ...nextState,\n wrapperClasses,\n breakpoint,\n breakpoints,\n combinedLinks,\n });\n\n // update the Store Language\n if (updateI18 && nextState.activeLanguage !== stateBeforeUpdate.activeLanguage) {\n this.i18nService?.updateState({ activeLang: nextState.activeLanguage });\n }\n }\n\n /**\n * Emits a slice from the state whether that changes\n *\n * @param key can be 'key' or 'key.sub.sub'\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getState<T = any>(key?: string): Observable<T> {\n return defer(() =>\n // check if key exists\n key\n ? this.state$.pipe(\n map((state) => get(state, key)),\n // filter((state) => state),\n distinctUntilChanged((x, y) => isEqual(x, y)),\n )\n : this.state$,\n );\n }\n\n public sidebarToggle(): void {\n this.isSidebarOpen = !this.state.isSidebarOpen;\n }\n\n // Edit mode\n public dimmerActiveToggle(): void {\n const isActive = this.isDimmerActive;\n this.setState({\n ...this.state,\n isDimmerActive: !isActive,\n });\n CssUtils.activateEditModeCssVars(!isActive, this.document);\n }\n\n public setDimmerActiveState(activeState: boolean): void {\n this.setState({\n ...this.state,\n isDimmerActive: activeState,\n });\n CssUtils.activateEditModeCssVars(activeState, this.document);\n }\n\n // --------------\n // public methods\n // --------------\n public fetchAppMetadata(metadataFilePath = 'assets/app-metadata.json'): void {\n this.getJson(metadataFilePath).then((data) => {\n this.setState({\n ...this.state,\n appMetadata: data,\n });\n });\n }\n\n public activateSidebar(): void {\n this.setState({\n ...this.state,\n hasSidebar: true,\n });\n\n if (!this.state.isSidebarHidden) {\n CssUtils.activateSidebarCssVars(this.document, this.platformId, this.state.hasSidebarCollapsedVariant);\n }\n }\n\n public activateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: true,\n });\n\n CssUtils.activateSideContainerCssVars(this.document, this.platformId);\n }\n\n public deactivateSideContainer(): void {\n this.setState({\n ...this.state,\n hasSideContainer: false,\n });\n\n CssUtils.deactivateSideContainerCssVars(this.document, this.platformId);\n }\n\n public activateSidebarHeader(): void {\n CssUtils.activateSidebarHeaderCssVars(this.document, this.platformId);\n }\n\n public activateSidebarFooter(): void {\n CssUtils.activateSidebarFooterCssVars(this.document, this.platformId);\n }\n\n public activateHeader(): void {\n this.setState({\n ...this.state,\n hasHeader: true,\n });\n CssUtils.activateHeaderCssVars(this.document, this.platformId);\n }\n\n public activateBreadcrumb(): void {\n this.setState({\n ...this.state,\n hasBreadcrumb: true,\n });\n CssUtils.activateBreadcrumbCssVars(this.document, this.platformId);\n }\n\n public activateTopMessage(height: number): void {\n this.setState({\n ...this.state,\n hasTopMessage: true,\n });\n CssUtils.activateTopMessageCssVars(height, this.document);\n }\n\n public activateToolbar(): void {\n this.setState({\n ...this.state,\n hasToolbar: true,\n });\n CssUtils.activateToolbarCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMegaMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMegaMenu: true,\n });\n CssUtils.activateToolbarMegaMenuCssVars(this.document, this.platformId);\n }\n\n public activateToolbarMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMenu: true,\n });\n }\n\n /**\n * Returns the current value of --eui-f-size-base CSS variable\n */\n public getBaseFontSize(): string {\n return this.state.appBaseFontSize || CssUtils.getCssVarValue('--eui-f-size-base', this.document, this.platformId);\n }\n\n /**\n * Updates the current value of --eui-f-size-base CSS variable and the UIState appBaseFontSize\n */\n public setBaseFontSize(newsize: string): void {\n this.setState(\n {\n ...this.state,\n appBaseFontSize: newsize,\n },\n false,\n );\n CssUtils.setCssVarValue('--eui-f-size-base', newsize, this.document);\n }\n\n // ---------------\n // private getters\n // ---------------\n private getWrapperClasses(state: UIState, breakpoint: string): string {\n const classes: string[] = [];\n\n classes.push(breakpoint);\n\n if (state.hasSidebar) {\n if (state.isSidebarHidden) {\n classes.push('sidebar--hidden');\n }\n if (state.isSidebarOpen) {\n classes.push('sidebar--open');\n } else {\n classes.push('sidebar--close');\n }\n }\n if (state.deviceInfo?.isFF) {\n classes.push('ff');\n }\n if (state.deviceInfo?.isIE) {\n classes.push('ie');\n }\n if (state.deviceInfo?.isChrome) {\n classes.push('chrome');\n }\n return classes.join(' ');\n }\n\n private getBreakpoint(windowWidth: number): string {\n let bkp = '';\n\n if (this.state.breakpointValues.length === 0) {\n this.setState({\n ...this.state,\n breakpointValues: CssUtils.getBreakpointValues(this.document, this.platformId),\n });\n }\n\n this.state.breakpointValues.forEach((b, i) => {\n if (i < this.state.breakpointValues.length) {\n if (windowWidth >= b.value && windowWidth < this.state.breakpointValues[i+1]?.value) {\n bkp = b.bkp;\n }\n } else if(windowWidth >= b.value) {\n bkp = b.bkp;\n }\n });\n\n return bkp;\n }\n\n private getBreakpoints(bkp: string): object {\n return {\n isMobile: bkp === 'xs' || bkp === 'sm',\n isTablet: bkp === 'md',\n isLtLargeTablet: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg',\n isLtDesktop: bkp === 'xs' || bkp === 'sm' || bkp === 'md' || bkp === 'lg' || bkp === 'xl',\n isDesktop: bkp === 'xxl',\n isXL: bkp === 'xl',\n isXXL: bkp === 'xxl',\n isFHD: bkp === 'fhd',\n is2K: bkp === '2k',\n is4K: bkp === '4k',\n };\n }\n\n private getJson(url: string): Promise<object> {\n return firstValueFrom(this.http.get(url)).then(this.extractData).catch(this.handleError);\n }\n\n private extractData(res: Response): object {\n const body = res;\n return body || {};\n }\n\n private handleError<T extends Error>(error: T): Promise<T> {\n console.error('An error occurred', error);\n return Promise.reject(error.message || error);\n }\n\n private bindActiveLanguageToAppShellState(): void {\n if (!this.i18nService) {\n return;\n }\n this.i18nService.getState((s) => s.activeLang).subscribe((activeLang) => {\n if (activeLang !== this.state.activeLanguage) {\n this.setState(\n {\n ...this.state,\n activeLanguage: activeLang,\n },\n false,\n );\n }\n });\n }\n}\n",
|
|
5572
5572
|
"constructorObj": {
|
|
5573
5573
|
"name": "constructor",
|
|
5574
5574
|
"description": "",
|
package/docs/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# eui documentation
|
|
2
2
|
|
|
3
|
-
> Generated by compodoc 2.0.0 at 2026-10-
|
|
3
|
+
> Generated by compodoc 2.0.0 at 2026-10-02T08:04:06.131Z, llm-md export.
|
|
4
4
|
|
|
5
5
|
## Modules
|
|
6
6
|
|
|
@@ -1138,7 +1138,7 @@ Properties:
|
|
|
1138
1138
|
|
|
1139
1139
|
### Schema
|
|
1140
1140
|
|
|
1141
|
-
File: `packages/core/schematics/migrate-eui-
|
|
1141
|
+
File: `packages/core/schematics/migrate-eui-button/index.ts`
|
|
1142
1142
|
|
|
1143
1143
|
Properties:
|
|
1144
1144
|
- `dryRun?: boolean`
|
|
@@ -1146,7 +1146,7 @@ Properties:
|
|
|
1146
1146
|
|
|
1147
1147
|
### Schema
|
|
1148
1148
|
|
|
1149
|
-
File: `packages/core/schematics/migrate-eui-
|
|
1149
|
+
File: `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1150
1150
|
|
|
1151
1151
|
Properties:
|
|
1152
1152
|
- `dryRun?: boolean`
|
|
@@ -1162,7 +1162,7 @@ Properties:
|
|
|
1162
1162
|
|
|
1163
1163
|
### Schema
|
|
1164
1164
|
|
|
1165
|
-
File: `packages/core/schematics/migrate-eui-
|
|
1165
|
+
File: `packages/core/schematics/migrate-eui-discussion-thread/index.ts`
|
|
1166
1166
|
|
|
1167
1167
|
Properties:
|
|
1168
1168
|
- `dryRun?: boolean`
|
|
@@ -1170,7 +1170,7 @@ Properties:
|
|
|
1170
1170
|
|
|
1171
1171
|
### Schema
|
|
1172
1172
|
|
|
1173
|
-
File: `packages/core/schematics/migrate-eui-
|
|
1173
|
+
File: `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
1174
1174
|
|
|
1175
1175
|
Properties:
|
|
1176
1176
|
- `dryRun?: boolean`
|
|
@@ -1734,16 +1734,16 @@ Properties:
|
|
|
1734
1734
|
Defined in `packages/core/schematics/migrate-eui-alert/index.ts`
|
|
1735
1735
|
- `migrateInlineTemplates(source: string): string`
|
|
1736
1736
|
Defined in `packages/core/schematics/migrate-eui-avatar/index.ts`
|
|
1737
|
-
- `migrateInlineTemplates(source: string): string`
|
|
1738
|
-
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1739
1737
|
- `migrateInlineTemplates(source: string): string`
|
|
1740
1738
|
Defined in `packages/core/schematics/migrate-eui-button/index.ts`
|
|
1741
1739
|
- `migrateInlineTemplates(source: string): string`
|
|
1742
|
-
Defined in `packages/core/schematics/migrate-eui-chip
|
|
1740
|
+
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1743
1741
|
- `migrateInlineTemplates(source: string): string`
|
|
1744
|
-
Defined in `packages/core/schematics/migrate-eui-
|
|
1742
|
+
Defined in `packages/core/schematics/migrate-eui-chip-list/index.ts`
|
|
1745
1743
|
- `migrateInlineTemplates(source: string): string`
|
|
1746
1744
|
Defined in `packages/core/schematics/migrate-eui-discussion-thread/index.ts`
|
|
1745
|
+
- `migrateInlineTemplates(source: string): string`
|
|
1746
|
+
Defined in `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
1747
1747
|
- `migrateInlineTemplates(source: string): string`
|
|
1748
1748
|
Defined in `packages/core/schematics/migrate-eui-fieldset/index.ts`
|
|
1749
1749
|
- `migrateInlineTemplates(source: string): string`
|
|
@@ -1764,16 +1764,16 @@ Properties:
|
|
|
1764
1764
|
Defined in `packages/core/schematics/migrate-eui-alert/index.ts`
|
|
1765
1765
|
- `migrateTemplate(source: string): string`
|
|
1766
1766
|
Defined in `packages/core/schematics/migrate-eui-avatar/index.ts`
|
|
1767
|
-
- `migrateTemplate(source: string): string`
|
|
1768
|
-
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1769
1767
|
- `migrateTemplate(source: string): string`
|
|
1770
1768
|
Defined in `packages/core/schematics/migrate-eui-button/index.ts`
|
|
1771
1769
|
- `migrateTemplate(source: string): string`
|
|
1772
|
-
Defined in `packages/core/schematics/migrate-eui-chip
|
|
1770
|
+
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1773
1771
|
- `migrateTemplate(source: string): string`
|
|
1774
|
-
Defined in `packages/core/schematics/migrate-eui-
|
|
1772
|
+
Defined in `packages/core/schematics/migrate-eui-chip-list/index.ts`
|
|
1775
1773
|
- `migrateTemplate(source: string): string`
|
|
1776
1774
|
Defined in `packages/core/schematics/migrate-eui-discussion-thread/index.ts`
|
|
1775
|
+
- `migrateTemplate(source: string): string`
|
|
1776
|
+
Defined in `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
1777
1777
|
- `migrateTemplate(source: string): string`
|
|
1778
1778
|
Defined in `packages/core/schematics/migrate-eui-fieldset/index.ts`
|
|
1779
1779
|
- `migrateTemplate(source: string): string`
|
|
@@ -1910,16 +1910,16 @@ Properties:
|
|
|
1910
1910
|
Defined in `packages/core/schematics/migrate-eui-alert/index.ts`
|
|
1911
1911
|
- `visitDir(dir: DirEntry, callback): void`
|
|
1912
1912
|
Defined in `packages/core/schematics/migrate-eui-avatar/index.ts`
|
|
1913
|
-
- `visitDir(dir: DirEntry, callback): void`
|
|
1914
|
-
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1915
1913
|
- `visitDir(dir: DirEntry, callback): void`
|
|
1916
1914
|
Defined in `packages/core/schematics/migrate-eui-button/index.ts`
|
|
1917
1915
|
- `visitDir(dir: DirEntry, callback): void`
|
|
1918
|
-
Defined in `packages/core/schematics/migrate-eui-chip
|
|
1916
|
+
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1919
1917
|
- `visitDir(dir: DirEntry, callback): void`
|
|
1920
|
-
Defined in `packages/core/schematics/migrate-eui-
|
|
1918
|
+
Defined in `packages/core/schematics/migrate-eui-chip-list/index.ts`
|
|
1921
1919
|
- `visitDir(dir: DirEntry, callback): void`
|
|
1922
1920
|
Defined in `packages/core/schematics/migrate-eui-discussion-thread/index.ts`
|
|
1921
|
+
- `visitDir(dir: DirEntry, callback): void`
|
|
1922
|
+
Defined in `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
1923
1923
|
- `visitDir(dir: DirEntry, callback): void`
|
|
1924
1924
|
Defined in `packages/core/schematics/migrate-eui-fieldset/index.ts`
|
|
1925
1925
|
- `visitDir(dir: DirEntry, callback): void`
|
|
@@ -1950,16 +1950,16 @@ Properties:
|
|
|
1950
1950
|
Defined in `packages/core/schematics/migrate-eui-alert/index.ts`
|
|
1951
1951
|
- `visitNodes(nodes, removals): void`
|
|
1952
1952
|
Defined in `packages/core/schematics/migrate-eui-avatar/index.ts`
|
|
1953
|
-
- `visitNodes(nodes, removals): void`
|
|
1954
|
-
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1955
1953
|
- `visitNodes(nodes, edits): void`
|
|
1956
1954
|
Defined in `packages/core/schematics/migrate-eui-button/index.ts`
|
|
1955
|
+
- `visitNodes(nodes, removals): void`
|
|
1956
|
+
Defined in `packages/core/schematics/migrate-eui-chip/index.ts`
|
|
1957
1957
|
- `visitNodes(nodes, source: string, edits): void`
|
|
1958
1958
|
Defined in `packages/core/schematics/migrate-eui-chip-list/index.ts`
|
|
1959
|
-
- `visitNodes(nodes, edits): void`
|
|
1960
|
-
Defined in `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
1961
1959
|
- `visitNodes(nodes, source: string, removals): void`
|
|
1962
1960
|
Defined in `packages/core/schematics/migrate-eui-discussion-thread/index.ts`
|
|
1961
|
+
- `visitNodes(nodes, edits): void`
|
|
1962
|
+
Defined in `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
1963
1963
|
- `visitNodes(nodes, edits): void`
|
|
1964
1964
|
Defined in `packages/core/schematics/migrate-eui-fieldset/index.ts`
|
|
1965
1965
|
- `visitNodes(nodes, edits): void`
|
|
@@ -2085,10 +2085,10 @@ Properties:
|
|
|
2085
2085
|
Defined in `packages/core/schematics/migrate-eui-chip-list/index.ts`
|
|
2086
2086
|
- `closestMatchingParent: unknown = (target: HTMLElement, className: string): HTMLElement | null => { let element = target; while (element && element.nodeType === Node.ELEMENT_NODE) { if (element.…`
|
|
2087
2087
|
Defined in `packages/core/src/lib/helpers/dom-helpers.ts`
|
|
2088
|
-
- `COMPONENT_TAG: string = 'eui-editor'`
|
|
2089
|
-
Defined in `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
2090
2088
|
- `COMPONENT_TAG: string = 'eui-discussion-thread'`
|
|
2091
2089
|
Defined in `packages/core/schematics/migrate-eui-discussion-thread/index.ts`
|
|
2090
|
+
- `COMPONENT_TAG: string = 'eui-editor'`
|
|
2091
|
+
Defined in `packages/core/schematics/migrate-eui-editor/index.ts`
|
|
2092
2092
|
- `COMPONENT_TAG: string = 'eui-fieldset'`
|
|
2093
2093
|
Defined in `packages/core/schematics/migrate-eui-fieldset/index.ts`
|
|
2094
2094
|
- `COMPONENT_TAG: string = 'eui-icon-svg'`
|
|
@@ -720,19 +720,19 @@
|
|
|
720
720
|
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-avatar/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateInlineTemplates</b> (packages/.../index.ts)</span></a>
|
|
721
721
|
</li>
|
|
722
722
|
<li>
|
|
723
|
-
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-
|
|
723
|
+
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-button/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateInlineTemplates</b> (packages/.../index.ts)</span></a>
|
|
724
724
|
</li>
|
|
725
725
|
<li>
|
|
726
|
-
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-
|
|
726
|
+
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-chip/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateInlineTemplates</b> (packages/.../index.ts)</span></a>
|
|
727
727
|
</li>
|
|
728
728
|
<li>
|
|
729
729
|
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-chip-list/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateInlineTemplates</b> (packages/.../index.ts)</span></a>
|
|
730
730
|
</li>
|
|
731
731
|
<li>
|
|
732
|
-
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-
|
|
732
|
+
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-discussion-thread/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateInlineTemplates</b> (packages/.../index.ts)</span></a>
|
|
733
733
|
</li>
|
|
734
734
|
<li>
|
|
735
|
-
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-
|
|
735
|
+
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-editor/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateInlineTemplates</b> (packages/.../index.ts)</span></a>
|
|
736
736
|
</li>
|
|
737
737
|
<li>
|
|
738
738
|
<a href="#migrateInlineTemplates" title="packages/core/schematics/migrate-eui-fieldset/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateInlineTemplates</b> (packages/.../index.ts)</span></a>
|
|
@@ -765,19 +765,19 @@
|
|
|
765
765
|
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-avatar/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateTemplate</b> (packages/.../index.ts)</span></a>
|
|
766
766
|
</li>
|
|
767
767
|
<li>
|
|
768
|
-
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-
|
|
768
|
+
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-button/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateTemplate</b> (packages/.../index.ts)</span></a>
|
|
769
769
|
</li>
|
|
770
770
|
<li>
|
|
771
|
-
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-
|
|
771
|
+
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-chip/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateTemplate</b> (packages/.../index.ts)</span></a>
|
|
772
772
|
</li>
|
|
773
773
|
<li>
|
|
774
774
|
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-chip-list/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateTemplate</b> (packages/.../index.ts)</span></a>
|
|
775
775
|
</li>
|
|
776
776
|
<li>
|
|
777
|
-
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-
|
|
777
|
+
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-discussion-thread/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateTemplate</b> (packages/.../index.ts)</span></a>
|
|
778
778
|
</li>
|
|
779
779
|
<li>
|
|
780
|
-
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-
|
|
780
|
+
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-editor/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateTemplate</b> (packages/.../index.ts)</span></a>
|
|
781
781
|
</li>
|
|
782
782
|
<li>
|
|
783
783
|
<a href="#migrateTemplate" title="packages/core/schematics/migrate-eui-fieldset/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>migrateTemplate</b> (packages/.../index.ts)</span></a>
|
|
@@ -984,19 +984,19 @@
|
|
|
984
984
|
<a href="#visitDir" title="packages/core/schematics/migrate-eui-avatar/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitDir</b> (packages/.../index.ts)</span></a>
|
|
985
985
|
</li>
|
|
986
986
|
<li>
|
|
987
|
-
<a href="#visitDir" title="packages/core/schematics/migrate-eui-
|
|
987
|
+
<a href="#visitDir" title="packages/core/schematics/migrate-eui-button/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitDir</b> (packages/.../index.ts)</span></a>
|
|
988
988
|
</li>
|
|
989
989
|
<li>
|
|
990
|
-
<a href="#visitDir" title="packages/core/schematics/migrate-eui-
|
|
990
|
+
<a href="#visitDir" title="packages/core/schematics/migrate-eui-chip/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitDir</b> (packages/.../index.ts)</span></a>
|
|
991
991
|
</li>
|
|
992
992
|
<li>
|
|
993
993
|
<a href="#visitDir" title="packages/core/schematics/migrate-eui-chip-list/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitDir</b> (packages/.../index.ts)</span></a>
|
|
994
994
|
</li>
|
|
995
995
|
<li>
|
|
996
|
-
<a href="#visitDir" title="packages/core/schematics/migrate-eui-
|
|
996
|
+
<a href="#visitDir" title="packages/core/schematics/migrate-eui-discussion-thread/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitDir</b> (packages/.../index.ts)</span></a>
|
|
997
997
|
</li>
|
|
998
998
|
<li>
|
|
999
|
-
<a href="#visitDir" title="packages/core/schematics/migrate-eui-
|
|
999
|
+
<a href="#visitDir" title="packages/core/schematics/migrate-eui-editor/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitDir</b> (packages/.../index.ts)</span></a>
|
|
1000
1000
|
</li>
|
|
1001
1001
|
<li>
|
|
1002
1002
|
<a href="#visitDir" title="packages/core/schematics/migrate-eui-fieldset/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitDir</b> (packages/.../index.ts)</span></a>
|
|
@@ -1044,19 +1044,19 @@
|
|
|
1044
1044
|
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-avatar/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitNodes</b> (packages/.../index.ts)</span></a>
|
|
1045
1045
|
</li>
|
|
1046
1046
|
<li>
|
|
1047
|
-
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-
|
|
1047
|
+
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-button/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitNodes</b> (packages/.../index.ts)</span></a>
|
|
1048
1048
|
</li>
|
|
1049
1049
|
<li>
|
|
1050
|
-
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-
|
|
1050
|
+
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-chip/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitNodes</b> (packages/.../index.ts)</span></a>
|
|
1051
1051
|
</li>
|
|
1052
1052
|
<li>
|
|
1053
1053
|
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-chip-list/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitNodes</b> (packages/.../index.ts)</span></a>
|
|
1054
1054
|
</li>
|
|
1055
1055
|
<li>
|
|
1056
|
-
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-
|
|
1056
|
+
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-discussion-thread/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitNodes</b> (packages/.../index.ts)</span></a>
|
|
1057
1057
|
</li>
|
|
1058
1058
|
<li>
|
|
1059
|
-
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-
|
|
1059
|
+
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-editor/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitNodes</b> (packages/.../index.ts)</span></a>
|
|
1060
1060
|
</li>
|
|
1061
1061
|
<li>
|
|
1062
1062
|
<a href="#visitNodes" title="packages/core/schematics/migrate-eui-fieldset/index.ts" class="reference-link "><span class="reference-badge reference-badge--function" aria-hidden="true">F</span><span class="reference-link-label"><b>visitNodes</b> (packages/.../index.ts)</span></a>
|
|
@@ -183,10 +183,10 @@
|
|
|
183
183
|
<a href="#closestMatchingParent" title="packages/core/src/lib/helpers/dom-helpers.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>closestMatchingParent</b> (packages/.../dom-helpers.ts)</span></a>
|
|
184
184
|
</li>
|
|
185
185
|
<li>
|
|
186
|
-
<a href="#COMPONENT_TAG" title="packages/core/schematics/migrate-eui-
|
|
186
|
+
<a href="#COMPONENT_TAG" title="packages/core/schematics/migrate-eui-discussion-thread/index.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>COMPONENT_TAG</b> (packages/.../index.ts)</span></a>
|
|
187
187
|
</li>
|
|
188
188
|
<li>
|
|
189
|
-
<a href="#COMPONENT_TAG" title="packages/core/schematics/migrate-eui-
|
|
189
|
+
<a href="#COMPONENT_TAG" title="packages/core/schematics/migrate-eui-editor/index.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>COMPONENT_TAG</b> (packages/.../index.ts)</span></a>
|
|
190
190
|
</li>
|
|
191
191
|
<li>
|
|
192
192
|
<a href="#COMPONENT_TAG" title="packages/core/schematics/migrate-eui-fieldset/index.ts" class="reference-link "><span class="reference-badge reference-badge--variable" aria-hidden="true">V</span><span class="reference-link-label"><b>COMPONENT_TAG</b> (packages/.../index.ts)</span></a>
|
|
@@ -2626,7 +2626,7 @@
|
|
|
2626
2626
|
</tbody>
|
|
2627
2627
|
</table>
|
|
2628
2628
|
</section>
|
|
2629
|
-
<h3>packages/core/schematics/migrate-eui-
|
|
2629
|
+
<h3>packages/core/schematics/migrate-eui-discussion-thread/index.ts</h3>
|
|
2630
2630
|
<section data-compodoc="block-properties">
|
|
2631
2631
|
<h3></h3> <table class="table table-sm table-bordered">
|
|
2632
2632
|
<tbody>
|
|
@@ -2647,21 +2647,24 @@
|
|
|
2647
2647
|
</tr>
|
|
2648
2648
|
<tr>
|
|
2649
2649
|
<td class="col-md-4">
|
|
2650
|
-
<i>Default value : </i><code>'eui-
|
|
2650
|
+
<i>Default value : </i><code>'eui-discussion-thread'</code>
|
|
2651
2651
|
</td>
|
|
2652
2652
|
</tr>
|
|
2653
2653
|
|
|
2654
2654
|
|
|
2655
2655
|
</tbody>
|
|
2656
2656
|
</table>
|
|
2657
|
-
|
|
2657
|
+
</section>
|
|
2658
|
+
<h3>packages/core/schematics/migrate-eui-editor/index.ts</h3>
|
|
2659
|
+
<section data-compodoc="block-properties">
|
|
2660
|
+
<h3></h3> <table class="table table-sm table-bordered">
|
|
2658
2661
|
<tbody>
|
|
2659
2662
|
<tr>
|
|
2660
2663
|
<td class="col-md-4">
|
|
2661
|
-
<a name="
|
|
2664
|
+
<a name="COMPONENT_TAG"></a>
|
|
2662
2665
|
<span class="name">
|
|
2663
|
-
<span ><b>
|
|
2664
|
-
<a href="#
|
|
2666
|
+
<span ><b>COMPONENT_TAG</b></span>
|
|
2667
|
+
<a href="#COMPONENT_TAG"><span class="icon ion-ios-link"></span></a>
|
|
2665
2668
|
</span>
|
|
2666
2669
|
</td>
|
|
2667
2670
|
</tr>
|
|
@@ -2673,7 +2676,7 @@
|
|
|
2673
2676
|
</tr>
|
|
2674
2677
|
<tr>
|
|
2675
2678
|
<td class="col-md-4">
|
|
2676
|
-
<i>Default value : </i><code>'
|
|
2679
|
+
<i>Default value : </i><code>'eui-editor'</code>
|
|
2677
2680
|
</td>
|
|
2678
2681
|
</tr>
|
|
2679
2682
|
|
|
@@ -2684,10 +2687,10 @@
|
|
|
2684
2687
|
<tbody>
|
|
2685
2688
|
<tr>
|
|
2686
2689
|
<td class="col-md-4">
|
|
2687
|
-
<a name="
|
|
2690
|
+
<a name="NEW_NAME"></a>
|
|
2688
2691
|
<span class="name">
|
|
2689
|
-
<span ><b>
|
|
2690
|
-
<a href="#
|
|
2692
|
+
<span ><b>NEW_NAME</b></span>
|
|
2693
|
+
<a href="#NEW_NAME"><span class="icon ion-ios-link"></span></a>
|
|
2691
2694
|
</span>
|
|
2692
2695
|
</td>
|
|
2693
2696
|
</tr>
|
|
@@ -2699,24 +2702,21 @@
|
|
|
2699
2702
|
</tr>
|
|
2700
2703
|
<tr>
|
|
2701
2704
|
<td class="col-md-4">
|
|
2702
|
-
<i>Default value : </i><code>'
|
|
2705
|
+
<i>Default value : </i><code>'contentChange'</code>
|
|
2703
2706
|
</td>
|
|
2704
2707
|
</tr>
|
|
2705
2708
|
|
|
2706
2709
|
|
|
2707
2710
|
</tbody>
|
|
2708
2711
|
</table>
|
|
2709
|
-
|
|
2710
|
-
<h3>packages/core/schematics/migrate-eui-discussion-thread/index.ts</h3>
|
|
2711
|
-
<section data-compodoc="block-properties">
|
|
2712
|
-
<h3></h3> <table class="table table-sm table-bordered">
|
|
2712
|
+
<table class="table table-sm table-bordered">
|
|
2713
2713
|
<tbody>
|
|
2714
2714
|
<tr>
|
|
2715
2715
|
<td class="col-md-4">
|
|
2716
|
-
<a name="
|
|
2716
|
+
<a name="OLD_NAME"></a>
|
|
2717
2717
|
<span class="name">
|
|
2718
|
-
<span ><b>
|
|
2719
|
-
<a href="#
|
|
2718
|
+
<span ><b>OLD_NAME</b></span>
|
|
2719
|
+
<a href="#OLD_NAME"><span class="icon ion-ios-link"></span></a>
|
|
2720
2720
|
</span>
|
|
2721
2721
|
</td>
|
|
2722
2722
|
</tr>
|
|
@@ -2728,7 +2728,7 @@
|
|
|
2728
2728
|
</tr>
|
|
2729
2729
|
<tr>
|
|
2730
2730
|
<td class="col-md-4">
|
|
2731
|
-
<i>Default value : </i><code>'
|
|
2731
|
+
<i>Default value : </i><code>'onEditorChanged'</code>
|
|
2732
2732
|
</td>
|
|
2733
2733
|
</tr>
|
|
2734
2734
|
|