@fundamental-ngx/core 0.35.2-rc.5 → 0.35.2-rc.8
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/action-bar/package.json +1 -1
- package/action-sheet/package.json +1 -1
- package/alert/package.json +1 -1
- package/avatar/package.json +1 -1
- package/avatar-group/package.json +1 -1
- package/bar/package.json +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/package.json +1 -1
- package/date-picker/package.json +1 -1
- package/datetime/package.json +1 -1
- package/datetime-picker/package.json +1 -1
- package/dialog/package.json +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/info-label/info-label.component.mjs +12 -4
- package/esm2020/info-label/info-label.module.mjs +5 -4
- package/esm2020/theming/theming.service.mjs +1 -1
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-info-label.mjs +15 -6
- package/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-theming.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-info-label.mjs +15 -6
- package/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-theming.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/esm2020/info-label.component.mjs +12 -4
- package/info-label/esm2020/info-label.module.mjs +5 -4
- package/info-label/fesm2015/fundamental-ngx-core-info-label.mjs +15 -6
- package/info-label/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/info-label/fesm2020/fundamental-ngx-core-info-label.mjs +15 -6
- package/info-label/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/info-label/info-label.component.d.ts +11 -3
- package/info-label/info-label.module.d.ts +2 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/package.json +1 -1
- package/list/package.json +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/package.json +1 -1
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/overflow-layout/package.json +12 -12
- package/package.json +1 -1
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/package.json +1 -1
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/scroll-spy/package.json +1 -1
- package/scrollbar/package.json +1 -1
- package/segmented-button/package.json +1 -1
- package/select/package.json +1 -1
- package/shared/package.json +1 -1
- package/shellbar/package.json +1 -1
- package/side-navigation/package.json +1 -1
- package/slider/package.json +1 -1
- package/split-button/package.json +1 -1
- package/splitter/package.json +1 -1
- package/status-indicator/package.json +1 -1
- package/step-input/package.json +1 -1
- package/switch/package.json +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/package.json +1 -1
- package/theming/esm2020/theming.service.mjs +1 -1
- package/theming/fesm2015/fundamental-ngx-core-theming.mjs.map +1 -1
- package/theming/fesm2020/fundamental-ngx-core-theming.mjs.map +1 -1
- package/theming/package.json +1 -1
- package/tile/package.json +1 -1
- package/time/package.json +1 -1
- package/time-picker/package.json +1 -1
- package/timeline/package.json +1 -1
- package/title/package.json +1 -1
- package/token/package.json +1 -1
- package/toolbar/package.json +1 -1
- package/tree/package.json +1 -1
- package/upload-collection/package.json +1 -1
- package/utils/package.json +1 -1
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-theming.mjs","sources":["../../../../libs/core/src/lib/theming/config.ts","../../../../libs/core/src/lib/theming/standard-themes.ts","../../../../libs/core/src/lib/theming/tokens.ts","../../../../libs/core/src/lib/theming/theming.service.ts","../../../../libs/core/src/lib/theming/theming.module.ts","../../../../libs/core/src/lib/theming/fundamental-ngx-core-theming.ts"],"sourcesContent":["import { ThemeDefinition, ThemeStyleLink } from './interfaces/theme.interface';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\n/**\n * Theming Configuration.\n */\nexport class BaseThemingConfig implements ThemingConfig {\n /**\n * Array of user-defined themes.\n */\n customThemes: ThemeDefinition[] = [];\n /**\n * Default theme.\n */\n defaultTheme = 'sap_fiori_3';\n /**\n * Default theme font file. Used as a fallback for themes which do not have own font file.\n */\n defaultFontFile = 'sap_fiori_3';\n /**\n * Whether to exclude default themes from the list of available options. By default, false.\n */\n excludeDefaultThemes = false;\n /**\n * Whether to exclude theme font file from inserting it onto the page. By default, false.\n */\n excludeThemingFonts = false;\n /**\n * URL Query parameter flag to change theme based on the provided parameter.\n */\n themeQueryParam = 'theme';\n /**\n * Whether to change theme if URL Query parameter flag has been found or changed. Default is true.\n */\n changeThemeOnQueryParamChange = true;\n /**\n * Identifiers of theme style links.\n */\n themeStyleLinkIdentifiers: Record<ThemeStyleLink, string> = {\n 'base-theme': 'base-theme-styles',\n 'custom-theme': 'custom-theme-styles',\n fonts: 'theme-font-styles'\n };\n}\n","import { ThemeDefinition } from './interfaces/theme.interface';\n\nexport const STANDARD_THEMES: ThemeDefinition[] = [\n {\n id: 'sap_fiori_3',\n name: 'Fiori 3',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Fiori 3 Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Light Dark'\n },\n {\n id: 'sap_horizon',\n name: 'Morning Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcb',\n name: 'High Contrast Black Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcw',\n name: 'High Contrast White Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n }\n];\n","import { InjectionToken } from '@angular/core';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\nexport const THEMING_CONFIG_TOKEN = new InjectionToken<Partial<ThemingConfig>>('FdThemingConfig');\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, isDevMode, OnDestroy, Optional, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '@fundamental-ngx/core/utils';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { STANDARD_THEMES } from './standard-themes';\nimport {\n CompleteThemeDefinition,\n CompleteThemingResource,\n ThemeDefinition,\n ThemeStyleLink\n} from './interfaces/theme.interface';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@Injectable()\nexport class ThemingService implements OnDestroy {\n /** @hidden */\n private readonly config = new BaseThemingConfig();\n\n /**\n * Current theme applied to the application.\n */\n get currentTheme(): Observable<CompleteThemeDefinition | null> {\n return this._currentThemeSubject.asObservable();\n }\n\n /** @hidden */\n private readonly _renderer: Renderer2;\n\n /** @hidden */\n private readonly _availableThemes: Map<string, CompleteThemeDefinition>;\n\n /** @hidden */\n private readonly _standardThemes: ThemeDefinition[] = [];\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _currentTheme: CompleteThemeDefinition;\n\n /** @hidden */\n private readonly _currentThemeSubject: BehaviorSubject<CompleteThemeDefinition | null> =\n new BehaviorSubject<CompleteThemeDefinition | null>(null);\n\n /**\n * @hidden\n */\n constructor(\n private _rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private _document: Document,\n @Optional() private _activatedRoute: ActivatedRoute,\n @Optional()\n @Inject(THEMING_CONFIG_TOKEN)\n private readonly _providedConfig: Partial<ThemingConfig>\n ) {\n this.config = merge(cloneDeep(this.config), cloneDeep(this._providedConfig));\n\n this._renderer = this._rendererFactory.createRenderer(this._document, null);\n\n if (!this.config.excludeDefaultThemes) {\n this._standardThemes = STANDARD_THEMES;\n }\n\n const mergedThemes = this._formatProvidedThemes(this.config.customThemes);\n this._availableThemes = new Map<string, CompleteThemeDefinition>(\n mergedThemes.map((theme) => [theme.id, theme])\n );\n }\n\n /**\n * Initiates theme change based on query parameter or provided default theme in config.\n */\n init(): void {\n if (this.config.changeThemeOnQueryParamChange) {\n this._setThemeByRoute();\n } else {\n this.setTheme(this.config.defaultTheme);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Sets defined theme.\n * @param themeId ID of theme that needs to be used by the application.\n */\n setTheme(themeId: string): boolean {\n const theme = this._availableThemes.get(themeId);\n\n if (!theme) {\n console.warn(\n `Theme with ID '${themeId}' is not found. Please check if ID is correct or provide custom theme for ThemingModule.`\n );\n return false;\n }\n\n this._setThemeResource('base-theme', theme.theming.themingBasePath);\n this._setThemeResource('custom-theme', theme.theming.themePath);\n\n if (!this.config.excludeThemingFonts) {\n this._setThemeResource('fonts', theme.theming.themeFontPath);\n }\n this._currentTheme = theme;\n this._currentThemeSubject.next(theme);\n\n return true;\n }\n\n /**\n * Returns array of available themes.\n */\n getThemes(): CompleteThemeDefinition[] {\n return [...this._availableThemes].map((entry) => entry[1]);\n }\n\n /**\n * @hidden\n * @param type\n * @param resourceUrl\n * @private\n */\n private _setThemeResource(type: ThemeStyleLink, resourceUrl: string): void {\n const linkElm = this._getStyleLinkElement(type);\n\n if (linkElm.getAttribute('href') === resourceUrl) {\n return;\n }\n\n this._renderer.setAttribute(linkElm, 'href', resourceUrl);\n }\n\n /**\n * @hidden\n * @param type\n * @private\n */\n private _getStyleLinkElement(type: ThemeStyleLink): HTMLLinkElement {\n const existingLinkElement = this._document.getElementById(this.config.themeStyleLinkIdentifiers[type]);\n\n if (existingLinkElement) {\n return existingLinkElement as HTMLLinkElement;\n }\n\n const newLinkElement = this._renderer.createElement('link');\n this._renderer.setAttribute(newLinkElement, 'rel', 'stylesheet');\n this._renderer.setAttribute(newLinkElement, 'id', this.config.themeStyleLinkIdentifiers[type]);\n this._renderer.appendChild(this._document.head, newLinkElement);\n\n return newLinkElement;\n }\n\n /**\n * @hidden\n * @param themes\n * @private\n */\n private _formatProvidedThemes(themes?: ThemeDefinition[]): CompleteThemeDefinition[] {\n themes = themes || [];\n const mergedThemes = [...this._standardThemes, ...themes];\n\n if (mergedThemes.length === 0 && isDevMode()) {\n console.error('Error. No themes were provided. Please check your configuration.');\n }\n\n return mergedThemes.map((theme) => {\n theme.theming = this._getThemingResourceConfig(theme);\n return theme;\n }) as CompleteThemeDefinition[];\n }\n\n /** @hidden */\n private _getThemingResourceConfig(theme: ThemeDefinition): CompleteThemingResource {\n const existingConfig = theme.theming || {};\n const defaultConfig: CompleteThemingResource = {\n themingBasePath: `assets/theming-base/${theme.id}/css_variables.css`,\n themePath: `assets/fundamental-styles-theming/${theme.id}.css`,\n themeFontPath: `${this.config.defaultFontFile}_fonts.css`\n };\n\n return Object.assign(defaultConfig, existingConfig);\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\\\\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /**\n * @hidden\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n **/\n private _setThemeByRoute(): void {\n const paramName = this.config.themeQueryParam;\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this.setTheme(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName) || this.config.defaultTheme;\n this.setTheme(nativeTheme);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { ThemingService } from './theming.service';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: new BaseThemingConfig()\n },\n ThemingService\n ]\n})\nexport class ThemingModule {\n static withConfig(config: Partial<ThemingConfig>): ModuleWithProviders<ThemingModule> {\n return {\n ngModule: ThemingModule,\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-theming.mjs","sources":["../../../../libs/core/src/lib/theming/config.ts","../../../../libs/core/src/lib/theming/standard-themes.ts","../../../../libs/core/src/lib/theming/tokens.ts","../../../../libs/core/src/lib/theming/theming.service.ts","../../../../libs/core/src/lib/theming/theming.module.ts","../../../../libs/core/src/lib/theming/fundamental-ngx-core-theming.ts"],"sourcesContent":["import { ThemeDefinition, ThemeStyleLink } from './interfaces/theme.interface';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\n/**\n * Theming Configuration.\n */\nexport class BaseThemingConfig implements ThemingConfig {\n /**\n * Array of user-defined themes.\n */\n customThemes: ThemeDefinition[] = [];\n /**\n * Default theme.\n */\n defaultTheme = 'sap_fiori_3';\n /**\n * Default theme font file. Used as a fallback for themes which do not have own font file.\n */\n defaultFontFile = 'sap_fiori_3';\n /**\n * Whether to exclude default themes from the list of available options. By default, false.\n */\n excludeDefaultThemes = false;\n /**\n * Whether to exclude theme font file from inserting it onto the page. By default, false.\n */\n excludeThemingFonts = false;\n /**\n * URL Query parameter flag to change theme based on the provided parameter.\n */\n themeQueryParam = 'theme';\n /**\n * Whether to change theme if URL Query parameter flag has been found or changed. Default is true.\n */\n changeThemeOnQueryParamChange = true;\n /**\n * Identifiers of theme style links.\n */\n themeStyleLinkIdentifiers: Record<ThemeStyleLink, string> = {\n 'base-theme': 'base-theme-styles',\n 'custom-theme': 'custom-theme-styles',\n fonts: 'theme-font-styles'\n };\n}\n","import { ThemeDefinition } from './interfaces/theme.interface';\n\nexport const STANDARD_THEMES: ThemeDefinition[] = [\n {\n id: 'sap_fiori_3',\n name: 'Fiori 3',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Fiori 3 Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Light Dark'\n },\n {\n id: 'sap_horizon',\n name: 'Morning Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcb',\n name: 'High Contrast Black Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcw',\n name: 'High Contrast White Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n }\n];\n","import { InjectionToken } from '@angular/core';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\nexport const THEMING_CONFIG_TOKEN = new InjectionToken<Partial<ThemingConfig>>('FdThemingConfig');\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, isDevMode, OnDestroy, Optional, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '@fundamental-ngx/core/utils';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { STANDARD_THEMES } from './standard-themes';\nimport {\n CompleteThemeDefinition,\n CompleteThemingResource,\n ThemeDefinition,\n ThemeStyleLink\n} from './interfaces/theme.interface';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@Injectable()\nexport class ThemingService implements OnDestroy {\n /** @hidden */\n private readonly config = new BaseThemingConfig();\n\n /**\n * Current theme applied to the application.\n */\n get currentTheme(): Observable<CompleteThemeDefinition | null> {\n return this._currentThemeSubject.asObservable();\n }\n\n /** @hidden */\n private readonly _renderer: Renderer2;\n\n /** @hidden */\n private readonly _availableThemes: Map<string, CompleteThemeDefinition>;\n\n /** @hidden */\n private readonly _standardThemes: ThemeDefinition[] = [];\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _currentTheme: CompleteThemeDefinition;\n\n /** @hidden */\n private readonly _currentThemeSubject: BehaviorSubject<CompleteThemeDefinition | null> =\n new BehaviorSubject<CompleteThemeDefinition | null>(null);\n\n /**\n * @hidden\n */\n constructor(\n private _rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private _document: Document,\n @Optional() private _activatedRoute: ActivatedRoute,\n @Optional()\n @Inject(THEMING_CONFIG_TOKEN)\n private readonly _providedConfig: Partial<ThemingConfig>\n ) {\n this.config = merge(cloneDeep(this.config), cloneDeep(this._providedConfig));\n\n this._renderer = this._rendererFactory.createRenderer(this._document, null);\n\n if (!this.config.excludeDefaultThemes) {\n this._standardThemes = STANDARD_THEMES;\n }\n\n const mergedThemes = this._formatProvidedThemes(this.config.customThemes);\n this._availableThemes = new Map<string, CompleteThemeDefinition>(\n mergedThemes.map((theme) => [theme.id, theme])\n );\n }\n\n /**\n * Initiates theme change based on query parameter or provided default theme in config.\n */\n init(): void {\n if (this.config.changeThemeOnQueryParamChange) {\n this._setThemeByRoute();\n } else {\n this.setTheme(this.config.defaultTheme);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Sets defined theme.\n * @param themeId ID of theme that needs to be used by the application.\n */\n setTheme(themeId: string): boolean {\n const theme = this._availableThemes.get(themeId);\n\n if (!theme) {\n console.warn(\n `Theme with ID '${themeId}' is not found. Please check if ID is correct or provide custom theme for ThemingModule.`\n );\n return false;\n }\n\n this._setThemeResource('base-theme', theme.theming.themingBasePath);\n this._setThemeResource('custom-theme', theme.theming.themePath);\n\n if (!this.config.excludeThemingFonts) {\n this._setThemeResource('fonts', theme.theming.themeFontPath);\n }\n\n this._currentTheme = theme;\n this._currentThemeSubject.next(theme);\n\n return true;\n }\n\n /**\n * Returns array of available themes.\n */\n getThemes(): CompleteThemeDefinition[] {\n return [...this._availableThemes].map((entry) => entry[1]);\n }\n\n /**\n * @hidden\n * @param type\n * @param resourceUrl\n * @private\n */\n private _setThemeResource(type: ThemeStyleLink, resourceUrl: string): void {\n const linkElm = this._getStyleLinkElement(type);\n\n if (linkElm.getAttribute('href') === resourceUrl) {\n return;\n }\n\n this._renderer.setAttribute(linkElm, 'href', resourceUrl);\n }\n\n /**\n * @hidden\n * @param type\n * @private\n */\n private _getStyleLinkElement(type: ThemeStyleLink): HTMLLinkElement {\n const existingLinkElement = this._document.getElementById(this.config.themeStyleLinkIdentifiers[type]);\n\n if (existingLinkElement) {\n return existingLinkElement as HTMLLinkElement;\n }\n\n const newLinkElement = this._renderer.createElement('link');\n this._renderer.setAttribute(newLinkElement, 'rel', 'stylesheet');\n this._renderer.setAttribute(newLinkElement, 'id', this.config.themeStyleLinkIdentifiers[type]);\n this._renderer.appendChild(this._document.head, newLinkElement);\n\n return newLinkElement;\n }\n\n /**\n * @hidden\n * @param themes\n * @private\n */\n private _formatProvidedThemes(themes?: ThemeDefinition[]): CompleteThemeDefinition[] {\n themes = themes || [];\n const mergedThemes = [...this._standardThemes, ...themes];\n\n if (mergedThemes.length === 0 && isDevMode()) {\n console.error('Error. No themes were provided. Please check your configuration.');\n }\n\n return mergedThemes.map((theme) => {\n theme.theming = this._getThemingResourceConfig(theme);\n return theme;\n }) as CompleteThemeDefinition[];\n }\n\n /** @hidden */\n private _getThemingResourceConfig(theme: ThemeDefinition): CompleteThemingResource {\n const existingConfig = theme.theming || {};\n const defaultConfig: CompleteThemingResource = {\n themingBasePath: `assets/theming-base/${theme.id}/css_variables.css`,\n themePath: `assets/fundamental-styles-theming/${theme.id}.css`,\n themeFontPath: `${this.config.defaultFontFile}_fonts.css`\n };\n\n return Object.assign(defaultConfig, existingConfig);\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\\\\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /**\n * @hidden\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n **/\n private _setThemeByRoute(): void {\n const paramName = this.config.themeQueryParam;\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this.setTheme(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName) || this.config.defaultTheme;\n this.setTheme(nativeTheme);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { ThemingService } from './theming.service';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: new BaseThemingConfig()\n },\n ThemingService\n ]\n})\nexport class ThemingModule {\n static withConfig(config: Partial<ThemingConfig>): ModuleWithProviders<ThemingModule> {\n return {\n ngModule: ThemingModule,\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@ import { __decorate, __metadata } from 'tslib';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
|
|
4
4
|
import { applyCssClass } from '@fundamental-ngx/core/utils';
|
|
5
|
-
import * as i1 from '@
|
|
5
|
+
import * as i1 from '@fundamental-ngx/core/icon';
|
|
6
|
+
import { IconModule } from '@fundamental-ngx/core/icon';
|
|
7
|
+
import * as i2 from '@angular/common';
|
|
6
8
|
import { CommonModule } from '@angular/common';
|
|
7
9
|
|
|
8
10
|
class InfoLabelComponent {
|
|
@@ -11,6 +13,11 @@ class InfoLabelComponent {
|
|
|
11
13
|
this._elementRef = _elementRef;
|
|
12
14
|
/** User's custom classes */
|
|
13
15
|
this.class = '';
|
|
16
|
+
/**
|
|
17
|
+
* The icon font
|
|
18
|
+
* Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'
|
|
19
|
+
*/
|
|
20
|
+
this.font = 'SAP-icons';
|
|
14
21
|
}
|
|
15
22
|
/** @hidden */
|
|
16
23
|
ngOnInit() {
|
|
@@ -35,7 +42,7 @@ class InfoLabelComponent {
|
|
|
35
42
|
}
|
|
36
43
|
}
|
|
37
44
|
InfoLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
-
InfoLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: InfoLabelComponent, selector: "fd-info-label
|
|
45
|
+
InfoLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: InfoLabelComponent, selector: "fd-info-label", inputs: { class: "class", type: "type", glyph: "glyph", font: "font", color: "color", label: "label", title: "title", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, usesOnChanges: true, ngImport: i0, template: "<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"], components: [{ type: i1.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
39
46
|
__decorate([
|
|
40
47
|
applyCssClass,
|
|
41
48
|
__metadata("design:type", Function),
|
|
@@ -44,13 +51,15 @@ __decorate([
|
|
|
44
51
|
], InfoLabelComponent.prototype, "buildComponentCssClass", null);
|
|
45
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelComponent, decorators: [{
|
|
46
53
|
type: Component,
|
|
47
|
-
args: [{ selector: 'fd-info-label
|
|
54
|
+
args: [{ selector: 'fd-info-label', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"] }]
|
|
48
55
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
|
|
49
56
|
type: Input
|
|
50
57
|
}], type: [{
|
|
51
58
|
type: Input
|
|
52
59
|
}], glyph: [{
|
|
53
60
|
type: Input
|
|
61
|
+
}], font: [{
|
|
62
|
+
type: Input
|
|
54
63
|
}], color: [{
|
|
55
64
|
type: Input
|
|
56
65
|
}], label: [{
|
|
@@ -66,13 +75,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
66
75
|
class InfoLabelModule {
|
|
67
76
|
}
|
|
68
77
|
InfoLabelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
69
|
-
InfoLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, declarations: [InfoLabelComponent], imports: [CommonModule], exports: [InfoLabelComponent] });
|
|
70
|
-
InfoLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, imports: [[CommonModule]] });
|
|
78
|
+
InfoLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, declarations: [InfoLabelComponent], imports: [CommonModule, IconModule], exports: [InfoLabelComponent] });
|
|
79
|
+
InfoLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, imports: [[CommonModule, IconModule]] });
|
|
71
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, decorators: [{
|
|
72
81
|
type: NgModule,
|
|
73
82
|
args: [{
|
|
74
83
|
declarations: [InfoLabelComponent],
|
|
75
|
-
imports: [CommonModule],
|
|
84
|
+
imports: [CommonModule, IconModule],
|
|
76
85
|
exports: [InfoLabelComponent]
|
|
77
86
|
}]
|
|
78
87
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-info-label.mjs","sources":["../../../../libs/core/src/lib/info-label/info-label.component.ts","../../../../libs/core/src/lib/info-label/info-label.component.html","../../../../libs/core/src/lib/info-label/info-label.module.ts","../../../../libs/core/src/lib/info-label/fundamental-ngx-core-info-label.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nexport type LabelType = 'numeric' | 'icon';\n\n@Component({\n
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-info-label.mjs","sources":["../../../../libs/core/src/lib/info-label/info-label.component.ts","../../../../libs/core/src/lib/info-label/info-label.component.html","../../../../libs/core/src/lib/info-label/info-label.module.ts","../../../../libs/core/src/lib/info-label/fundamental-ngx-core-info-label.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { IconFont } from '@fundamental-ngx/core/icon';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nexport type LabelType = 'numeric' | 'icon';\n\n@Component({\n selector: 'fd-info-label',\n templateUrl: './info-label.component.html',\n styleUrls: ['./info-label.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InfoLabelComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class = '';\n\n /**\n * The LabelType represented by the info label .\n * For default info label omit this property\n */\n @Input()\n type: LabelType;\n\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: Nullable<string>;\n\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n @Input()\n font: IconFont = 'SAP-icons';\n\n /** Define the colour of the info label starting form 1 to 10 */\n @Input()\n color: string;\n\n /** Define the text content of the info label */\n @Input()\n label: string;\n\n /** Define the tooltip content of the info label */\n @Input()\n title: string;\n\n /** Define the ariaLabel content of the info label */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Define the labelled by content of the info label */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-info-label',\n this.type ? `fd-info-label--${this.type}` : '',\n this.color ? `fd-info-label--accent-color-${this.color}` : '',\n this.class\n ];\n }\n}\n","<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { InfoLabelComponent } from './info-label.component';\n\n@NgModule({\n declarations: [InfoLabelComponent],\n imports: [CommonModule, IconModule],\n exports: [InfoLabelComponent]\n})\nexport class InfoLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAsBa,kBAAkB;;IA8C3B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;QA3C3C,UAAK,GAAG,EAAE,CAAC;;;;;QAoBX,SAAI,GAAa,WAAW,CAAC;KAuBkB;;IAG/C,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAID,sBAAsB;QAClB,OAAO;YACH,eAAe;YACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,KAAK,GAAG,+BAA+B,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YAC7D,IAAI,CAAC,KAAK;SACb,CAAC;KACL;;+GAxEQ,kBAAkB;mGAAlB,kBAAkB,4PCtB/B,mTAUA;AD6EI;IADC,aAAa;;;;gEAQb;2FAxEQ,kBAAkB;kBAP9B,SAAS;+BACI,eAAe,iBAGV,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;iGAK/C,KAAK;sBADJ,KAAK;gBAQN,IAAI;sBADH,KAAK;gBAON,KAAK;sBADJ,KAAK;gBAQN,IAAI;sBADH,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,cAAc;sBADb,KAAK;gBAuBN,sBAAsB;;ME7Eb,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAJT,kBAAkB,aACvB,YAAY,EAAE,UAAU,aACxB,kBAAkB;6GAEnB,eAAe,YAHf,CAAC,YAAY,EAAE,UAAU,CAAC;2FAG1B,eAAe;kBAL3B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAChC;;;ACTD;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-theming.mjs","sources":["../../../../libs/core/src/lib/theming/config.ts","../../../../libs/core/src/lib/theming/standard-themes.ts","../../../../libs/core/src/lib/theming/tokens.ts","../../../../libs/core/src/lib/theming/theming.service.ts","../../../../libs/core/src/lib/theming/theming.module.ts","../../../../libs/core/src/lib/theming/fundamental-ngx-core-theming.ts"],"sourcesContent":["import { ThemeDefinition, ThemeStyleLink } from './interfaces/theme.interface';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\n/**\n * Theming Configuration.\n */\nexport class BaseThemingConfig implements ThemingConfig {\n /**\n * Array of user-defined themes.\n */\n customThemes: ThemeDefinition[] = [];\n /**\n * Default theme.\n */\n defaultTheme = 'sap_fiori_3';\n /**\n * Default theme font file. Used as a fallback for themes which do not have own font file.\n */\n defaultFontFile = 'sap_fiori_3';\n /**\n * Whether to exclude default themes from the list of available options. By default, false.\n */\n excludeDefaultThemes = false;\n /**\n * Whether to exclude theme font file from inserting it onto the page. By default, false.\n */\n excludeThemingFonts = false;\n /**\n * URL Query parameter flag to change theme based on the provided parameter.\n */\n themeQueryParam = 'theme';\n /**\n * Whether to change theme if URL Query parameter flag has been found or changed. Default is true.\n */\n changeThemeOnQueryParamChange = true;\n /**\n * Identifiers of theme style links.\n */\n themeStyleLinkIdentifiers: Record<ThemeStyleLink, string> = {\n 'base-theme': 'base-theme-styles',\n 'custom-theme': 'custom-theme-styles',\n fonts: 'theme-font-styles'\n };\n}\n","import { ThemeDefinition } from './interfaces/theme.interface';\n\nexport const STANDARD_THEMES: ThemeDefinition[] = [\n {\n id: 'sap_fiori_3',\n name: 'Fiori 3',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Fiori 3 Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Light Dark'\n },\n {\n id: 'sap_horizon',\n name: 'Morning Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcb',\n name: 'High Contrast Black Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcw',\n name: 'High Contrast White Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n }\n];\n","import { InjectionToken } from '@angular/core';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\nexport const THEMING_CONFIG_TOKEN = new InjectionToken<Partial<ThemingConfig>>('FdThemingConfig');\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, isDevMode, OnDestroy, Optional, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '@fundamental-ngx/core/utils';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { STANDARD_THEMES } from './standard-themes';\nimport {\n CompleteThemeDefinition,\n CompleteThemingResource,\n ThemeDefinition,\n ThemeStyleLink\n} from './interfaces/theme.interface';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@Injectable()\nexport class ThemingService implements OnDestroy {\n /** @hidden */\n private readonly config = new BaseThemingConfig();\n\n /**\n * Current theme applied to the application.\n */\n get currentTheme(): Observable<CompleteThemeDefinition | null> {\n return this._currentThemeSubject.asObservable();\n }\n\n /** @hidden */\n private readonly _renderer: Renderer2;\n\n /** @hidden */\n private readonly _availableThemes: Map<string, CompleteThemeDefinition>;\n\n /** @hidden */\n private readonly _standardThemes: ThemeDefinition[] = [];\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _currentTheme: CompleteThemeDefinition;\n\n /** @hidden */\n private readonly _currentThemeSubject: BehaviorSubject<CompleteThemeDefinition | null> =\n new BehaviorSubject<CompleteThemeDefinition | null>(null);\n\n /**\n * @hidden\n */\n constructor(\n private _rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private _document: Document,\n @Optional() private _activatedRoute: ActivatedRoute,\n @Optional()\n @Inject(THEMING_CONFIG_TOKEN)\n private readonly _providedConfig: Partial<ThemingConfig>\n ) {\n this.config = merge(cloneDeep(this.config), cloneDeep(this._providedConfig));\n\n this._renderer = this._rendererFactory.createRenderer(this._document, null);\n\n if (!this.config.excludeDefaultThemes) {\n this._standardThemes = STANDARD_THEMES;\n }\n\n const mergedThemes = this._formatProvidedThemes(this.config.customThemes);\n this._availableThemes = new Map<string, CompleteThemeDefinition>(\n mergedThemes.map((theme) => [theme.id, theme])\n );\n }\n\n /**\n * Initiates theme change based on query parameter or provided default theme in config.\n */\n init(): void {\n if (this.config.changeThemeOnQueryParamChange) {\n this._setThemeByRoute();\n } else {\n this.setTheme(this.config.defaultTheme);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Sets defined theme.\n * @param themeId ID of theme that needs to be used by the application.\n */\n setTheme(themeId: string): boolean {\n const theme = this._availableThemes.get(themeId);\n\n if (!theme) {\n console.warn(\n `Theme with ID '${themeId}' is not found. Please check if ID is correct or provide custom theme for ThemingModule.`\n );\n return false;\n }\n\n this._setThemeResource('base-theme', theme.theming.themingBasePath);\n this._setThemeResource('custom-theme', theme.theming.themePath);\n\n if (!this.config.excludeThemingFonts) {\n this._setThemeResource('fonts', theme.theming.themeFontPath);\n }\n this._currentTheme = theme;\n this._currentThemeSubject.next(theme);\n\n return true;\n }\n\n /**\n * Returns array of available themes.\n */\n getThemes(): CompleteThemeDefinition[] {\n return [...this._availableThemes].map((entry) => entry[1]);\n }\n\n /**\n * @hidden\n * @param type\n * @param resourceUrl\n * @private\n */\n private _setThemeResource(type: ThemeStyleLink, resourceUrl: string): void {\n const linkElm = this._getStyleLinkElement(type);\n\n if (linkElm.getAttribute('href') === resourceUrl) {\n return;\n }\n\n this._renderer.setAttribute(linkElm, 'href', resourceUrl);\n }\n\n /**\n * @hidden\n * @param type\n * @private\n */\n private _getStyleLinkElement(type: ThemeStyleLink): HTMLLinkElement {\n const existingLinkElement = this._document.getElementById(this.config.themeStyleLinkIdentifiers[type]);\n\n if (existingLinkElement) {\n return existingLinkElement as HTMLLinkElement;\n }\n\n const newLinkElement = this._renderer.createElement('link');\n this._renderer.setAttribute(newLinkElement, 'rel', 'stylesheet');\n this._renderer.setAttribute(newLinkElement, 'id', this.config.themeStyleLinkIdentifiers[type]);\n this._renderer.appendChild(this._document.head, newLinkElement);\n\n return newLinkElement;\n }\n\n /**\n * @hidden\n * @param themes\n * @private\n */\n private _formatProvidedThemes(themes?: ThemeDefinition[]): CompleteThemeDefinition[] {\n themes = themes || [];\n const mergedThemes = [...this._standardThemes, ...themes];\n\n if (mergedThemes.length === 0 && isDevMode()) {\n console.error('Error. No themes were provided. Please check your configuration.');\n }\n\n return mergedThemes.map((theme) => {\n theme.theming = this._getThemingResourceConfig(theme);\n return theme;\n }) as CompleteThemeDefinition[];\n }\n\n /** @hidden */\n private _getThemingResourceConfig(theme: ThemeDefinition): CompleteThemingResource {\n const existingConfig = theme.theming || {};\n const defaultConfig: CompleteThemingResource = {\n themingBasePath: `assets/theming-base/${theme.id}/css_variables.css`,\n themePath: `assets/fundamental-styles-theming/${theme.id}.css`,\n themeFontPath: `${this.config.defaultFontFile}_fonts.css`\n };\n\n return Object.assign(defaultConfig, existingConfig);\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\\\\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /**\n * @hidden\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n **/\n private _setThemeByRoute(): void {\n const paramName = this.config.themeQueryParam;\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this.setTheme(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName) || this.config.defaultTheme;\n this.setTheme(nativeTheme);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { ThemingService } from './theming.service';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: new BaseThemingConfig()\n },\n ThemingService\n ]\n})\nexport class ThemingModule {\n static withConfig(config: Partial<ThemingConfig>): ModuleWithProviders<ThemingModule> {\n return {\n ngModule: ThemingModule,\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-theming.mjs","sources":["../../../../libs/core/src/lib/theming/config.ts","../../../../libs/core/src/lib/theming/standard-themes.ts","../../../../libs/core/src/lib/theming/tokens.ts","../../../../libs/core/src/lib/theming/theming.service.ts","../../../../libs/core/src/lib/theming/theming.module.ts","../../../../libs/core/src/lib/theming/fundamental-ngx-core-theming.ts"],"sourcesContent":["import { ThemeDefinition, ThemeStyleLink } from './interfaces/theme.interface';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\n/**\n * Theming Configuration.\n */\nexport class BaseThemingConfig implements ThemingConfig {\n /**\n * Array of user-defined themes.\n */\n customThemes: ThemeDefinition[] = [];\n /**\n * Default theme.\n */\n defaultTheme = 'sap_fiori_3';\n /**\n * Default theme font file. Used as a fallback for themes which do not have own font file.\n */\n defaultFontFile = 'sap_fiori_3';\n /**\n * Whether to exclude default themes from the list of available options. By default, false.\n */\n excludeDefaultThemes = false;\n /**\n * Whether to exclude theme font file from inserting it onto the page. By default, false.\n */\n excludeThemingFonts = false;\n /**\n * URL Query parameter flag to change theme based on the provided parameter.\n */\n themeQueryParam = 'theme';\n /**\n * Whether to change theme if URL Query parameter flag has been found or changed. Default is true.\n */\n changeThemeOnQueryParamChange = true;\n /**\n * Identifiers of theme style links.\n */\n themeStyleLinkIdentifiers: Record<ThemeStyleLink, string> = {\n 'base-theme': 'base-theme-styles',\n 'custom-theme': 'custom-theme-styles',\n fonts: 'theme-font-styles'\n };\n}\n","import { ThemeDefinition } from './interfaces/theme.interface';\n\nexport const STANDARD_THEMES: ThemeDefinition[] = [\n {\n id: 'sap_fiori_3',\n name: 'Fiori 3',\n description: 'Use in regular office environment'\n },\n {\n id: 'sap_fiori_3_dark',\n name: 'Fiori 3 Dark',\n description: 'Use in dimmed environments'\n },\n {\n id: 'sap_fiori_3_hcb',\n name: 'High Contrast Black',\n description: 'Optimized contrast and accessibility for extremely bright environments'\n },\n {\n id: 'sap_fiori_3_hcw',\n name: 'High Contrast White',\n description: 'Optimized contrast and accessibility for extremely dark environments'\n },\n {\n id: 'sap_fiori_3_light_dark',\n name: 'Light Dark'\n },\n {\n id: 'sap_horizon',\n name: 'Morning Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_dark',\n name: 'Evening Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcb',\n name: 'High Contrast Black Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n },\n {\n id: 'sap_horizon_hcw',\n name: 'High Contrast White Horizon',\n theming: {\n themeFontPath: 'sap_horizon_fonts.css'\n }\n }\n];\n","import { InjectionToken } from '@angular/core';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\n\nexport const THEMING_CONFIG_TOKEN = new InjectionToken<Partial<ThemingConfig>>('FdThemingConfig');\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, isDevMode, OnDestroy, Optional, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { THEME_SWITCHER_ROUTER_MISSING_ERROR } from '@fundamental-ngx/core/utils';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { STANDARD_THEMES } from './standard-themes';\nimport {\n CompleteThemeDefinition,\n CompleteThemingResource,\n ThemeDefinition,\n ThemeStyleLink\n} from './interfaces/theme.interface';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@Injectable()\nexport class ThemingService implements OnDestroy {\n /** @hidden */\n private readonly config = new BaseThemingConfig();\n\n /**\n * Current theme applied to the application.\n */\n get currentTheme(): Observable<CompleteThemeDefinition | null> {\n return this._currentThemeSubject.asObservable();\n }\n\n /** @hidden */\n private readonly _renderer: Renderer2;\n\n /** @hidden */\n private readonly _availableThemes: Map<string, CompleteThemeDefinition>;\n\n /** @hidden */\n private readonly _standardThemes: ThemeDefinition[] = [];\n\n /** @hidden **/\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _currentTheme: CompleteThemeDefinition;\n\n /** @hidden */\n private readonly _currentThemeSubject: BehaviorSubject<CompleteThemeDefinition | null> =\n new BehaviorSubject<CompleteThemeDefinition | null>(null);\n\n /**\n * @hidden\n */\n constructor(\n private _rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private _document: Document,\n @Optional() private _activatedRoute: ActivatedRoute,\n @Optional()\n @Inject(THEMING_CONFIG_TOKEN)\n private readonly _providedConfig: Partial<ThemingConfig>\n ) {\n this.config = merge(cloneDeep(this.config), cloneDeep(this._providedConfig));\n\n this._renderer = this._rendererFactory.createRenderer(this._document, null);\n\n if (!this.config.excludeDefaultThemes) {\n this._standardThemes = STANDARD_THEMES;\n }\n\n const mergedThemes = this._formatProvidedThemes(this.config.customThemes);\n this._availableThemes = new Map<string, CompleteThemeDefinition>(\n mergedThemes.map((theme) => [theme.id, theme])\n );\n }\n\n /**\n * Initiates theme change based on query parameter or provided default theme in config.\n */\n init(): void {\n if (this.config.changeThemeOnQueryParamChange) {\n this._setThemeByRoute();\n } else {\n this.setTheme(this.config.defaultTheme);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Sets defined theme.\n * @param themeId ID of theme that needs to be used by the application.\n */\n setTheme(themeId: string): boolean {\n const theme = this._availableThemes.get(themeId);\n\n if (!theme) {\n console.warn(\n `Theme with ID '${themeId}' is not found. Please check if ID is correct or provide custom theme for ThemingModule.`\n );\n return false;\n }\n\n this._setThemeResource('base-theme', theme.theming.themingBasePath);\n this._setThemeResource('custom-theme', theme.theming.themePath);\n\n if (!this.config.excludeThemingFonts) {\n this._setThemeResource('fonts', theme.theming.themeFontPath);\n }\n\n this._currentTheme = theme;\n this._currentThemeSubject.next(theme);\n\n return true;\n }\n\n /**\n * Returns array of available themes.\n */\n getThemes(): CompleteThemeDefinition[] {\n return [...this._availableThemes].map((entry) => entry[1]);\n }\n\n /**\n * @hidden\n * @param type\n * @param resourceUrl\n * @private\n */\n private _setThemeResource(type: ThemeStyleLink, resourceUrl: string): void {\n const linkElm = this._getStyleLinkElement(type);\n\n if (linkElm.getAttribute('href') === resourceUrl) {\n return;\n }\n\n this._renderer.setAttribute(linkElm, 'href', resourceUrl);\n }\n\n /**\n * @hidden\n * @param type\n * @private\n */\n private _getStyleLinkElement(type: ThemeStyleLink): HTMLLinkElement {\n const existingLinkElement = this._document.getElementById(this.config.themeStyleLinkIdentifiers[type]);\n\n if (existingLinkElement) {\n return existingLinkElement as HTMLLinkElement;\n }\n\n const newLinkElement = this._renderer.createElement('link');\n this._renderer.setAttribute(newLinkElement, 'rel', 'stylesheet');\n this._renderer.setAttribute(newLinkElement, 'id', this.config.themeStyleLinkIdentifiers[type]);\n this._renderer.appendChild(this._document.head, newLinkElement);\n\n return newLinkElement;\n }\n\n /**\n * @hidden\n * @param themes\n * @private\n */\n private _formatProvidedThemes(themes?: ThemeDefinition[]): CompleteThemeDefinition[] {\n themes = themes || [];\n const mergedThemes = [...this._standardThemes, ...themes];\n\n if (mergedThemes.length === 0 && isDevMode()) {\n console.error('Error. No themes were provided. Please check your configuration.');\n }\n\n return mergedThemes.map((theme) => {\n theme.theming = this._getThemingResourceConfig(theme);\n return theme;\n }) as CompleteThemeDefinition[];\n }\n\n /** @hidden */\n private _getThemingResourceConfig(theme: ThemeDefinition): CompleteThemingResource {\n const existingConfig = theme.theming || {};\n const defaultConfig: CompleteThemingResource = {\n themingBasePath: `assets/theming-base/${theme.id}/css_variables.css`,\n themePath: `assets/fundamental-styles-theming/${theme.id}.css`,\n themeFontPath: `${this.config.defaultFontFile}_fonts.css`\n };\n\n return Object.assign(defaultConfig, existingConfig);\n }\n\n /** @hidden */\n private _getNativeParameterByName(paramName: string): string {\n paramName = paramName.replace(/[[\\\\\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + paramName + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(window.location.href);\n if (!results || !results[2]) {\n return '';\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n /**\n * @hidden\n * Set theme according to additional URL parameter.\n * This parameter can be changed in function argument.\n **/\n private _setThemeByRoute(): void {\n const paramName = this.config.themeQueryParam;\n\n if (!this._activatedRoute) {\n throw new Error(THEME_SWITCHER_ROUTER_MISSING_ERROR);\n }\n\n this._activatedRoute.queryParams\n .pipe(\n takeUntil(this._onDestroy$),\n filter((param) => param && param[paramName])\n )\n .subscribe((param) => this.setTheme(param[paramName]));\n\n const nativeTheme = this._getNativeParameterByName(paramName) || this.config.defaultTheme;\n this.setTheme(nativeTheme);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseThemingConfig } from './config';\nimport { ThemingConfig } from './interfaces/theming-config.interface';\nimport { ThemingService } from './theming.service';\nimport { THEMING_CONFIG_TOKEN } from './tokens';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: new BaseThemingConfig()\n },\n ThemingService\n ]\n})\nexport class ThemingModule {\n static withConfig(config: Partial<ThemingConfig>): ModuleWithProviders<ThemingModule> {\n return {\n ngModule: ThemingModule,\n providers: [\n {\n provide: THEMING_CONFIG_TOKEN,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAGA;;;MAGa,iBAAiB;IAA9B;;;;QAII,iBAAY,GAAsB,EAAE,CAAC;;;;QAIrC,iBAAY,GAAG,aAAa,CAAC;;;;QAI7B,oBAAe,GAAG,aAAa,CAAC;;;;QAIhC,yBAAoB,GAAG,KAAK,CAAC;;;;QAI7B,wBAAmB,GAAG,KAAK,CAAC;;;;QAI5B,oBAAe,GAAG,OAAO,CAAC;;;;QAI1B,kCAA6B,GAAG,IAAI,CAAC;;;;QAIrC,8BAAyB,GAAmC;YACxD,YAAY,EAAE,mBAAmB;YACjC,cAAc,EAAE,qBAAqB;YACrC,KAAK,EAAE,mBAAmB;SAC7B,CAAC;KACL;;;MCzCY,eAAe,GAAsB;IAC9C;QACI,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mCAAmC;KACnD;IACD;QACI,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,4BAA4B;KAC5C;IACD;QACI,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,wEAAwE;KACxF;IACD;QACI,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,sEAAsE;KACtF;IACD;QACI,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,YAAY;KACrB;IACD;QACI,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACL,aAAa,EAAE,uBAAuB;SACzC;KACJ;IACD;QACI,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACL,aAAa,EAAE,uBAAuB;SACzC;KACJ;IACD;QACI,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE;YACL,aAAa,EAAE,uBAAuB;SACzC;KACJ;IACD;QACI,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE;YACL,aAAa,EAAE,uBAAuB;SACzC;KACJ;;;MCnDQ,oBAAoB,GAAG,IAAI,cAAc,CAAyB,iBAAiB;;MCgBnF,cAAc;;;;IAiCvB,YACY,gBAAkC,EAChB,SAAmB,EACzB,eAA+B,EAGlC,eAAuC;QALhD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAChB,cAAS,GAAT,SAAS,CAAU;QACzB,oBAAe,GAAf,eAAe,CAAgB;QAGlC,oBAAe,GAAf,eAAe,CAAwB;;QArC3C,WAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;;QAgBjC,oBAAe,GAAsB,EAAE,CAAC;;QAGxC,gBAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;;QAMjD,yBAAoB,GACjC,IAAI,eAAe,CAAiC,IAAI,CAAC,CAAC;QAa1D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAE7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;YACnC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAC1C;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAC3B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CACjD,CAAC;KACL;;;;IA9CD,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;KACnD;;;;IAiDD,IAAI;QACA,IAAI,IAAI,CAAC,MAAM,CAAC,6BAA6B,EAAE;YAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3C;KACJ;;IAGD,WAAW;QACP,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;;;;;IAMD,QAAQ,CAAC,OAAe;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,CAAC,IAAI,CACR,kBAAkB,OAAO,0FAA0F,CACtH,CAAC;YACF,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;YAClC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAChE;QAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC;KACf;;;;IAKD,SAAS;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9D;;;;;;;IAQO,iBAAiB,CAAC,IAAoB,EAAE,WAAmB;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;YAC9C,OAAO;SACV;QAED,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;KAC7D;;;;;;IAOO,oBAAoB,CAAC,IAAoB;QAC7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvG,IAAI,mBAAmB,EAAE;YACrB,OAAO,mBAAsC,CAAC;SACjD;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAEhE,OAAO,cAAc,CAAC;KACzB;;;;;;IAOO,qBAAqB,CAAC,MAA0B;QACpD,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,MAAM,CAAC,CAAC;QAE1D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,EAAE,EAAE;YAC1C,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;SACrF;QAED,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK;YAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;SAChB,CAA8B,CAAC;KACnC;;IAGO,yBAAyB,CAAC,KAAsB;QACpD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QAC3C,MAAM,aAAa,GAA4B;YAC3C,eAAe,EAAE,uBAAuB,KAAK,CAAC,EAAE,oBAAoB;YACpE,SAAS,EAAE,qCAAqC,KAAK,CAAC,EAAE,MAAM;YAC9D,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,YAAY;SAC5D,CAAC;QAEF,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;KACvD;;IAGO,yBAAyB,CAAC,SAAiB;QAC/C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAAC,EAC9D,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzB,OAAO,EAAE,CAAC;SACb;QACD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;KAC7D;;;;;;IAOO,gBAAgB;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACxD;QAED,IAAI,CAAC,eAAe,CAAC,WAAW;aAC3B,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAC/C;aACA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1F,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KAC9B;;2GA7MQ,cAAc,kDAmCX,QAAQ,2DAGR,oBAAoB;+GAtCvB,cAAc;2FAAd,cAAc;kBAD1B,UAAU;yFAoCkC,QAAQ;0BAA5C,MAAM;2BAAC,QAAQ;;0BACf,QAAQ;;0BACR,QAAQ;;0BACR,MAAM;2BAAC,oBAAoB;;;MCxCvB,aAAa;IACtB,OAAO,UAAU,CAAC,MAA8B;QAC5C,OAAO;YACH,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,oBAAoB;oBAC7B,QAAQ,EAAE,MAAM;iBACnB;aACJ;SACJ,CAAC;KACL;;0GAXQ,aAAa;2GAAb,aAAa,YATZ,YAAY;2GASb,aAAa,aARX;QACP;YACI,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,IAAI,iBAAiB,EAAE;SACpC;QACD,cAAc;KACjB,YAPQ,CAAC,YAAY,CAAC;2FASd,aAAa;kBAVzB,QAAQ;mBAAC;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,SAAS,EAAE;wBACP;4BACI,OAAO,EAAE,oBAAoB;4BAC7B,QAAQ,EAAE,IAAI,iBAAiB,EAAE;yBACpC;wBACD,cAAc;qBACjB;iBACJ;;;AChBD;;;;;;"}
|
package/form/package.json
CHANGED
package/grid-list/package.json
CHANGED
package/icon/package.json
CHANGED
|
@@ -2,13 +2,19 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { applyCssClass } from '@fundamental-ngx/core/utils';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@
|
|
5
|
+
import * as i1 from "@fundamental-ngx/core/icon";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
6
7
|
export class InfoLabelComponent {
|
|
7
8
|
/** @hidden */
|
|
8
9
|
constructor(_elementRef) {
|
|
9
10
|
this._elementRef = _elementRef;
|
|
10
11
|
/** User's custom classes */
|
|
11
12
|
this.class = '';
|
|
13
|
+
/**
|
|
14
|
+
* The icon font
|
|
15
|
+
* Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'
|
|
16
|
+
*/
|
|
17
|
+
this.font = 'SAP-icons';
|
|
12
18
|
}
|
|
13
19
|
/** @hidden */
|
|
14
20
|
ngOnInit() {
|
|
@@ -33,7 +39,7 @@ export class InfoLabelComponent {
|
|
|
33
39
|
}
|
|
34
40
|
}
|
|
35
41
|
InfoLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
InfoLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: InfoLabelComponent, selector: "fd-info-label
|
|
42
|
+
InfoLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: InfoLabelComponent, selector: "fd-info-label", inputs: { class: "class", type: "type", glyph: "glyph", font: "font", color: "color", label: "label", title: "title", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, usesOnChanges: true, ngImport: i0, template: "<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"], components: [{ type: i1.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
37
43
|
__decorate([
|
|
38
44
|
applyCssClass,
|
|
39
45
|
__metadata("design:type", Function),
|
|
@@ -42,13 +48,15 @@ __decorate([
|
|
|
42
48
|
], InfoLabelComponent.prototype, "buildComponentCssClass", null);
|
|
43
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelComponent, decorators: [{
|
|
44
50
|
type: Component,
|
|
45
|
-
args: [{ selector: 'fd-info-label
|
|
51
|
+
args: [{ selector: 'fd-info-label', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"] }]
|
|
46
52
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
|
|
47
53
|
type: Input
|
|
48
54
|
}], type: [{
|
|
49
55
|
type: Input
|
|
50
56
|
}], glyph: [{
|
|
51
57
|
type: Input
|
|
58
|
+
}], font: [{
|
|
59
|
+
type: Input
|
|
52
60
|
}], color: [{
|
|
53
61
|
type: Input
|
|
54
62
|
}], label: [{
|
|
@@ -60,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
60
68
|
}], ariaLabelledBy: [{
|
|
61
69
|
type: Input
|
|
62
70
|
}], buildComponentCssClass: [] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pbmZvLWxhYmVsL2luZm8tbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvaW5mby1sYWJlbC9pbmZvLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFtQixNQUFNLDZCQUE2QixDQUFDOzs7O0FBWTdFLE1BQU0sT0FBTyxrQkFBa0I7SUE2QzNCLGNBQWM7SUFDZCxZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTdDM0MsNEJBQTRCO1FBRTVCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFlWDs7O1dBR0c7UUFFSCxTQUFJLEdBQWEsV0FBVyxDQUFDO0lBdUJpQixDQUFDO0lBRS9DLGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO0lBRWQsc0JBQXNCO1FBQ2xCLE9BQU87WUFDSCxlQUFlO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdELElBQUksQ0FBQyxLQUFLO1NBQ2IsQ0FBQztJQUNOLENBQUM7OytHQXhFUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0UEN0Qi9CLG1UQVVBO0FENkVJO0lBREMsYUFBYTs7OztnRUFRYjsyRkF4RVEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtpR0FLL0MsS0FBSztzQkFESixLQUFLO2dCQVFOLElBQUk7c0JBREgsS0FBSztnQkFPTixLQUFLO3NCQURKLEtBQUs7Z0JBUU4sSUFBSTtzQkFESCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBdUJOLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25Gb250IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgYXBwbHlDc3NDbGFzcywgQ3NzQ2xhc3NCdWlsZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmV4cG9ydCB0eXBlIExhYmVsVHlwZSA9ICdudW1lcmljJyB8ICdpY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1pbmZvLWxhYmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5mby1sYWJlbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5mby1sYWJlbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSW5mb0xhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciB7XG4gICAgLyoqIFVzZXIncyBjdXN0b20gY2xhc3NlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3MgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFRoZSBMYWJlbFR5cGUgcmVwcmVzZW50ZWQgYnkgdGhlIGluZm8gbGFiZWwgLlxuICAgICAqIEZvciBkZWZhdWx0IGluZm8gbGFiZWwgb21pdCB0aGlzIHByb3BlcnR5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0eXBlOiBMYWJlbFR5cGU7XG5cbiAgICAvKiogVGhlIGljb24gbmFtZSB0byBkaXNwbGF5LiBTZWUgdGhlIGljb24gcGFnZSBmb3IgdGhlIGxpc3Qgb2YgaWNvbnNcbiAgICAgKiBoZXJlOiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtbmd4L2ljb25cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWNvbiBmb250XG4gICAgICogT3B0aW9ucyBpbmNsdWRlOiAnU0FQLWljb25zJywgJ0J1c2luZXNzU3VpdGVJbkFwcFN5bWJvbHMnIGFuZCAnU0FQLWljb25zLVROVCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvbnQ6IEljb25Gb250ID0gJ1NBUC1pY29ucyc7XG5cbiAgICAvKiogRGVmaW5lIHRoZSBjb2xvdXIgb2YgdGhlIGluZm8gbGFiZWwgc3RhcnRpbmcgZm9ybSAxIHRvIDEwICovXG4gICAgQElucHV0KClcbiAgICBjb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqIERlZmluZSB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBpbmZvIGxhYmVsICovXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIERlZmluZSB0aGUgdG9vbHRpcCBjb250ZW50IG9mIHRoZSBpbmZvIGxhYmVsICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIERlZmluZSB0aGUgYXJpYUxhYmVsIGNvbnRlbnQgb2YgdGhlIGluZm8gbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBEZWZpbmUgdGhlIGxhYmVsbGVkIGJ5IGNvbnRlbnQgb2YgdGhlIGluZm8gbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZmQtaW5mby1sYWJlbCcsXG4gICAgICAgICAgICB0aGlzLnR5cGUgPyBgZmQtaW5mby1sYWJlbC0tJHt0aGlzLnR5cGV9YCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5jb2xvciA/IGBmZC1pbmZvLWxhYmVsLS1hY2NlbnQtY29sb3ItJHt0aGlzLmNvbG9yfWAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuY2xhc3NcbiAgICAgICAgXTtcbiAgICB9XG59XG4iLCI8ZmQtaWNvbiAqbmdJZj1cImdseXBoXCIgY2xhc3M9XCJmZC1pbmZvLWxhYmVsX19pY29uXCIgW2dseXBoXT1cImdseXBoXCIgW2ZvbnRdPVwiZm9udFwiPjwvZmQtaWNvbj5cblxuPHNwYW5cbiAgICAqbmdJZj1cImxhYmVsXCJcbiAgICBjbGFzcz1cImZkLWluZm8tbGFiZWxfX3RleHRcIlxuICAgIFthdHRyLnRpdGxlXT1cInRpdGxlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICA+e3sgbGFiZWwgfX08L3NwYW5cbj5cbiJdfQ==
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IconModule } from '@fundamental-ngx/core/icon';
|
|
3
4
|
import { InfoLabelComponent } from './info-label.component';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class InfoLabelModule {
|
|
6
7
|
}
|
|
7
8
|
InfoLabelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
InfoLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, declarations: [InfoLabelComponent], imports: [CommonModule], exports: [InfoLabelComponent] });
|
|
9
|
-
InfoLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, imports: [[CommonModule]] });
|
|
9
|
+
InfoLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, declarations: [InfoLabelComponent], imports: [CommonModule, IconModule], exports: [InfoLabelComponent] });
|
|
10
|
+
InfoLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, imports: [[CommonModule, IconModule]] });
|
|
10
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, decorators: [{
|
|
11
12
|
type: NgModule,
|
|
12
13
|
args: [{
|
|
13
14
|
declarations: [InfoLabelComponent],
|
|
14
|
-
imports: [CommonModule],
|
|
15
|
+
imports: [CommonModule, IconModule],
|
|
15
16
|
exports: [InfoLabelComponent]
|
|
16
17
|
}]
|
|
17
18
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1sYWJlbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pbmZvLWxhYmVsL2luZm8tbGFiZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPNUQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFKVCxrQkFBa0IsYUFDdkIsWUFBWSxFQUFFLFVBQVUsYUFDeEIsa0JBQWtCOzZHQUVuQixlQUFlLFlBSGYsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDOzJGQUcxQixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBJbmZvTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2luZm8tbGFiZWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtJbmZvTGFiZWxDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtJbmZvTGFiZWxDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEluZm9MYWJlbE1vZHVsZSB7fVxuIl19
|