@masterteam/brand-display 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-brand-display.mjs","sources":["../../../../packages/masterteam/brand-display/src/store/brand-display/brand-display.actions.ts","../../../../packages/masterteam/brand-display/src/store/brand-display/brand-display.model.ts","../../../../packages/masterteam/brand-display/src/store/brand-display/brand-display-default-data.ts","../../../../packages/masterteam/brand-display/src/store/brand-display/brand-display.state.ts","../../../../packages/masterteam/brand-display/src/store/brand-display/brand-display.facade.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/brand-display.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/brand-display.html","../../../../packages/masterteam/brand-display/src/lib/services/favicon.service.ts","../../../../packages/masterteam/brand-display/src/lib/services/manage-brnding.service.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/preview-brand/preview-brand.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/preview-brand/preview-brand.html","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/white-label/white-label.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/white-label/white-label.html","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/main-display/main-display.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/main-display/main-display.html","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/header-sidebar-display/header-sidebar-display.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/header-sidebar-display/header-sidebar-display.html","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/content-area/content-area.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/content-area/content-area.html","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/preview-login/preview-login.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/preview-login/preview-login.html","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/login-display/login-display.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/login-display/login-display.html","../../../../packages/masterteam/brand-display/src/masterteam-brand-display.ts"],"sourcesContent":["import { BrandDisplay } from './brand-display.model';\r\n\r\nexport class GetBrandDisplay {\r\n static readonly type = '[BrandDisplay] Get Brand Display';\r\n}\r\n\r\nexport class UpdateBrandDisplayData {\r\n static readonly type = '[BrandDisplay] Update Brand Display Data';\r\n}\r\nexport class UpdateBrandDisplayDataLocally {\r\n static readonly type = '[BrandDisplay] Update Brand Display Data Locally';\r\n constructor(public changes: BrandDisplay) {}\r\n}\r\n","import { LoadingStateShape } from '@masterteam/components';\r\n\r\nexport interface LogoSettings {\r\n loginBrandImage?: any;\r\n productBrandImage?: any;\r\n faviconsImage?: any;\r\n}\r\n\r\nexport interface ColorSettings {\r\n primaryColor?: string;\r\n secondaryColor?: string;\r\n textColor?: string;\r\n}\r\n\r\nexport interface MainDisplay {\r\n productName?: { en: string; ar: string };\r\n productTagline?: { en: string; ar: string };\r\n logoSettings?: LogoSettings;\r\n colorSettings?: ColorSettings;\r\n}\r\n\r\nexport interface SidebarDisplay {\r\n backgroundColor?: string;\r\n backgroundImage?: any;\r\n iconColor?: string;\r\n repeated?: boolean;\r\n}\r\n\r\nexport interface HeaderDisplay {\r\n backgroundColor?: string;\r\n backgroundImage?: any;\r\n fontColor?: string;\r\n repeated?: boolean;\r\n}\r\n\r\nexport interface ContentAreaDisplay {\r\n backgroundColor?: string;\r\n backgroundImage?: any;\r\n repeated?: boolean;\r\n}\r\n\r\nexport interface LoginDisplay {\r\n loginBrandLogo?: string;\r\n backgroundColor?: string;\r\n backgroundImage?: any;\r\n loginBrandImage?: any;\r\n repeated?: boolean;\r\n formWizardPosition?: 'start' | 'end' | 'center';\r\n}\r\n\r\nexport interface BrandDisplay {\r\n main?: MainDisplay;\r\n sidebar?: SidebarDisplay;\r\n header?: HeaderDisplay;\r\n contentArea?: ContentAreaDisplay;\r\n login?: LoginDisplay;\r\n loginLogo?: string;\r\n brandLogoWhite?: string;\r\n}\r\n\r\nexport enum BrandDisplayActionKey {\r\n GetBrandDisplay = 'getBrandDisplay',\r\n UpdateBrandDisplay = 'updateBrandDisplay',\r\n}\r\n\r\nexport interface BrandDisplayStateModel extends LoadingStateShape<BrandDisplayActionKey> {\r\n brandDisplayData: BrandDisplay | null;\r\n draftBrandDisplayData: BrandDisplay | null;\r\n defaultBrandDisplayData: any | null;\r\n}\r\n","import { BrandDisplay } from './brand-display.model';\r\n\r\nexport const defaultBrandDisplayData: BrandDisplay = {\r\n main: {\r\n productName: { en: 'Project Plus', ar: 'نظام ادارة المشاريع' },\r\n productTagline: {\r\n en: 'PMO Multi Platform Digital Solution',\r\n ar: 'نظام رقمي متعدد المنصات',\r\n },\r\n colorSettings: {\r\n primaryColor: '#2AAEC0',\r\n secondaryColor: '#6c757d',\r\n textColor: '#000000',\r\n },\r\n },\r\n\r\n sidebar: {\r\n backgroundColor: '#F5F5F5',\r\n iconColor: '#535862',\r\n repeated: false,\r\n },\r\n\r\n header: {\r\n backgroundColor: '#2AAEC0',\r\n fontColor: '#ffffffff',\r\n repeated: false,\r\n },\r\n\r\n contentArea: {\r\n backgroundColor: '#F8F9FC',\r\n repeated: false,\r\n },\r\n\r\n login: {\r\n backgroundColor: '#125bbb',\r\n repeated: false,\r\n formWizardPosition: 'start',\r\n },\r\n loginLogo: 'pplus.svg',\r\n brandLogoWhite: 'pplus-white.svg',\r\n};\r\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\r\nimport {\r\n GetBrandDisplay,\r\n UpdateBrandDisplayData,\r\n UpdateBrandDisplayDataLocally,\r\n} from './brand-display.actions';\r\nimport {\r\n BrandDisplay,\r\n BrandDisplayActionKey,\r\n BrandDisplayStateModel,\r\n} from './brand-display.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport {\r\n CrudStateBase,\r\n handleApiRequest,\r\n Response,\r\n} from '@masterteam/components';\r\nimport { defaultBrandDisplayData } from './brand-display-default-data';\r\n\r\n@State<BrandDisplayStateModel>({\r\n name: 'brandDisplay',\r\n defaults: {\r\n brandDisplayData: {},\r\n draftBrandDisplayData: {},\r\n defaultBrandDisplayData: defaultBrandDisplayData,\r\n loadingActive: [],\r\n errors: {},\r\n },\r\n})\r\n@Injectable()\r\nexport class BrandDisplayState extends CrudStateBase<\r\n BrandDisplay,\r\n BrandDisplayStateModel,\r\n BrandDisplayActionKey\r\n> {\r\n private http = inject(HttpClient);\r\n\r\n // ============================================================================\r\n // Data Selectors - Fine-grained reactivity\r\n // ============================================================================\r\n @Selector()\r\n static getBrandDisplayData(\r\n state: BrandDisplayStateModel,\r\n ): BrandDisplay | null {\r\n return state.brandDisplayData;\r\n }\r\n\r\n @Selector()\r\n static getDefaultBrandDisplayData(\r\n state: BrandDisplayStateModel,\r\n ): BrandDisplay | null {\r\n return state.defaultBrandDisplayData;\r\n }\r\n\r\n @Selector()\r\n static getDraftBrandDisplayData(\r\n state: BrandDisplayStateModel,\r\n ): BrandDisplay | null {\r\n return state.draftBrandDisplayData;\r\n }\r\n\r\n // ============================================================================\r\n // Loading/Error Slice Selectors - Required for facade\r\n // ============================================================================\r\n @Selector()\r\n static getLoadingActive(state: BrandDisplayStateModel): string[] {\r\n return state.loadingActive;\r\n }\r\n\r\n @Selector()\r\n static getErrors(\r\n state: BrandDisplayStateModel,\r\n ): Record<string, string | null> {\r\n return state.errors;\r\n }\r\n\r\n // ============================================================================\r\n // Actions\r\n // ============================================================================\r\n @Action(UpdateBrandDisplayDataLocally)\r\n updateBrandDisplayDataLocally(\r\n ctx: StateContext<BrandDisplayStateModel>,\r\n { changes }: UpdateBrandDisplayDataLocally,\r\n ) {\r\n const state = ctx.getState();\r\n ctx.patchState({\r\n draftBrandDisplayData: { ...state.draftBrandDisplayData, ...changes },\r\n });\r\n }\r\n\r\n @Action(GetBrandDisplay)\r\n getBrandDisplay(ctx: StateContext<BrandDisplayStateModel>) {\r\n const req$ = this.http.get<Response<any>>('Settings/general');\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: BrandDisplayActionKey.GetBrandDisplay,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n const Identity = response?.data?.find(\r\n (v: any) => v.key === 'Identity',\r\n )?.value;\r\n\r\n if (Identity) {\r\n // Ensure formWizardPosition always has a valid value\r\n const brandDisplayData = {\r\n ...Identity,\r\n login: {\r\n ...Identity.login,\r\n formWizardPosition:\r\n Identity.login?.formWizardPosition ||\r\n state.defaultBrandDisplayData?.login?.formWizardPosition,\r\n },\r\n };\r\n\r\n return {\r\n brandDisplayData,\r\n draftBrandDisplayData: brandDisplayData,\r\n };\r\n }\r\n return {};\r\n },\r\n onError: (_error, state) => ({\r\n brandDisplayData: state.defaultBrandDisplayData,\r\n draftBrandDisplayData: state.defaultBrandDisplayData,\r\n }),\r\n errorMessage: 'Failed to load brand display',\r\n });\r\n }\r\n\r\n @Action(UpdateBrandDisplayData)\r\n updateBrandDisplayData(ctx: StateContext<BrandDisplayStateModel>) {\r\n const state = ctx.getState();\r\n const req$ = this.http.put<Response<BrandDisplay>>(\r\n 'Settings/UpdateSystemSettings',\r\n { values: [{ key: 'identity', value: state.draftBrandDisplayData }] },\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: BrandDisplayActionKey.UpdateBrandDisplay,\r\n request$: req$,\r\n onSuccess: (_response, state) => ({\r\n brandDisplayData: JSON.parse(\r\n JSON.stringify(state.draftBrandDisplayData),\r\n ),\r\n }),\r\n onError: () => {\r\n // Re-fetch on error\r\n ctx.dispatch(new GetBrandDisplay());\r\n return {};\r\n },\r\n errorMessage: 'Failed to update brand display',\r\n });\r\n }\r\n}\r\n","import { BrandDisplayState } from './brand-display.state';\r\nimport { Injectable, computed, inject } from '@angular/core';\r\nimport { select, Store } from '@ngxs/store';\r\nimport {\r\n GetBrandDisplay,\r\n UpdateBrandDisplayData,\r\n UpdateBrandDisplayDataLocally,\r\n} from './brand-display.actions';\r\nimport { BrandDisplay, BrandDisplayActionKey } from './brand-display.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BrandDisplayFacade {\r\n private readonly store = inject(Store);\r\n\r\n // ============================================================================\r\n // Data Selectors - Memoized by NGXS (fine-grained reactivity)\r\n // ============================================================================\r\n readonly brandDisplayData = select(BrandDisplayState.getBrandDisplayData);\r\n readonly draftBrandDisplayData = select(\r\n BrandDisplayState.getDraftBrandDisplayData,\r\n );\r\n readonly defaultBrandDisplayData = select(\r\n BrandDisplayState.getDefaultBrandDisplayData,\r\n );\r\n\r\n // ============================================================================\r\n // Loading/Error Slices - Memoized by NGXS\r\n // ============================================================================\r\n private readonly loadingActive = select(BrandDisplayState.getLoadingActive);\r\n private readonly errors = select(BrandDisplayState.getErrors);\r\n\r\n // ============================================================================\r\n // Loading Signals - Computed from slice (minimal reactivity)\r\n // ============================================================================\r\n readonly isLoadingBrandDisplay = computed(() =>\r\n this.loadingActive().includes(BrandDisplayActionKey.GetBrandDisplay),\r\n );\r\n readonly isUpdatingBrandDisplay = computed(() =>\r\n this.loadingActive().includes(BrandDisplayActionKey.UpdateBrandDisplay),\r\n );\r\n\r\n // ============================================================================\r\n // Error Signals - Computed from slice (minimal reactivity)\r\n // ============================================================================\r\n readonly brandDisplayError = computed(\r\n () => this.errors()[BrandDisplayActionKey.GetBrandDisplay] ?? null,\r\n );\r\n readonly updateBrandDisplayError = computed(\r\n () => this.errors()[BrandDisplayActionKey.UpdateBrandDisplay] ?? null,\r\n );\r\n\r\n // ============================================================================\r\n // Action Dispatchers\r\n // ============================================================================\r\n getBrandDisplay() {\r\n return this.store.dispatch(new GetBrandDisplay());\r\n }\r\n\r\n updateBrandDisplayDataLocally(changes: BrandDisplay) {\r\n return this.store.dispatch(new UpdateBrandDisplayDataLocally(changes));\r\n }\r\n\r\n updateBrandDisplayData() {\r\n return this.store.dispatch(new UpdateBrandDisplayData());\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, OnInit, signal } from '@angular/core';\r\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { Breadcrumb } from '@masterteam/components/breadcrumb';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { BrandDisplayFacade } from '../../store/brand-display';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { Page } from '@masterteam/components/page';\r\nimport { PageHeaderTab } from '@masterteam/components/page-header';\r\n\r\n@Component({\r\n selector: 'mt-brand-display',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n Page,\r\n Breadcrumb,\r\n Button,\r\n RouterOutlet,\r\n TranslocoDirective,\r\n SkeletonModule,\r\n ],\r\n templateUrl: './brand-display.html',\r\n styleUrl: './brand-display.scss',\r\n})\r\nexport default class BrandDisplay implements OnInit {\r\n private readonly facade = inject(BrandDisplayFacade);\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly router = inject(Router);\r\n private readonly translocoService = inject(TranslocoService);\r\n selectedTab = signal<string>('users');\r\n loading = this.facade.isLoadingBrandDisplay;\r\n updateLoading = this.facade.isUpdatingBrandDisplay;\r\n tabsList: PageHeaderTab[] = [\r\n {\r\n label: this.translocoService.translate('brand-display.white-label'),\r\n value: 'white-label',\r\n },\r\n {\r\n label: this.translocoService.translate('brand-display.login-display'),\r\n value: 'login-display',\r\n },\r\n ];\r\n breadcrumbItems: { label?: string; routerLink?: string; icon?: string }[] = [\r\n {\r\n label: '',\r\n icon: 'general.home-line',\r\n routerLink: '/control-panel/workspaces',\r\n },\r\n {\r\n label: this.translocoService.translate('brand-settings.brand-settings'),\r\n routerLink: '/control-panel/brand-settings',\r\n },\r\n { label: this.translocoService.translate('brand-display.brand-display') },\r\n ];\r\n\r\n ngOnInit() {\r\n const selectedTab = this.route.snapshot.firstChild?.data['componentType'];\r\n this.selectedTab.set(selectedTab || 'white-label');\r\n this.facade.getBrandDisplay();\r\n }\r\n\r\n goBack() {\r\n this.router.navigate(['control-panel/brand-settings']);\r\n }\r\n\r\n onTabChange(event: any) {\r\n if (event) {\r\n this.router.navigate([event], { relativeTo: this.route });\r\n }\r\n }\r\n\r\n onSave() {\r\n this.facade.updateBrandDisplayData();\r\n }\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <mt-page\r\n [title]=\"t('brand-display')\"\r\n [avatarIcon]=\"'editor.colors'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-violet-50)',\r\n '--p-avatar-color': 'var(--p-violet-700)',\r\n }\"\r\n [tabs]=\"tabsList\"\r\n [activeTab]=\"selectedTab()\"\r\n (tabChange)=\"onTabChange($event)\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <div class=\"flex justify-between items-end\">\r\n <div>\r\n <h3 class=\"font-bold text-lg\">{{ t(\"brand-display\") }}</h3>\r\n <mt-breadcrumb\r\n [items]=\"breadcrumbItems\"\r\n [styleClass]=\"'flex justify-start mx-1'\"\r\n ></mt-breadcrumb>\r\n </div>\r\n <mt-button\r\n [label]=\"t('save')\"\r\n icon=\"general.check\"\r\n (click)=\"onSave()\"\r\n [loading]=\"updateLoading()\"\r\n [disabled]=\"false\"\r\n />\r\n </div>\r\n @if (!loading()) {\r\n <router-outlet />\r\n } @else {\r\n <p-skeleton class=\"mt-8\" width=\"30rem\" height=\"3rem\" />\r\n <div class=\"flex mt-4 gap-5\">\r\n <p-skeleton height=\"25rem\" />\r\n <p-skeleton width=\"70rem\" height=\"25rem\" />\r\n </div>\r\n }\r\n </mt-page>\r\n</ng-container>\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { map } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FaviconService {\r\n private document = inject(DOCUMENT);\r\n private httpClient = inject(HttpClient);\r\n faviconLink = this.document.querySelector(\r\n \"link[rel*='icon']\",\r\n ) as HTMLLinkElement;\r\n setFavicon(faviconDataUrl: string): void {\r\n this.updateFaviconFromUrl(faviconDataUrl);\r\n }\r\n\r\n resetFavicon(defaultPath: string = '/pplus.svg'): void {\r\n this.faviconLink.href = defaultPath;\r\n }\r\n private updateFaviconFromUrl(imagePath: string) {\r\n this.httpClient\r\n .get('uploader/' + imagePath, {\r\n observe: 'response',\r\n responseType: 'blob',\r\n })\r\n .pipe(\r\n map((response: HttpResponse<Blob>) =>\r\n URL.createObjectURL(response.body!),\r\n ),\r\n )\r\n .subscribe((url: string) => {\r\n this.faviconLink.href = url;\r\n });\r\n }\r\n}\r\n","import { computed, effect, inject, Injectable, untracked } from '@angular/core';\r\nimport { BrandDisplayFacade } from '../../store/brand-display';\r\nimport { changePrimaryColor } from '@masterteam/components';\r\nimport { changeTextColor } from '@masterteam/components';\r\nimport { changeBackgroundColor } from '@masterteam/components';\r\nimport { FaviconService } from './favicon.service';\r\n\r\nexport interface BackgroundStyles {\r\n 'background-color'?: string;\r\n 'background-image'?: string;\r\n 'background-repeat'?: string;\r\n 'background-size'?: string;\r\n 'background-position'?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ManageBrndingService {\r\n private readonly brandDisplay = inject(BrandDisplayFacade);\r\n private readonly faviconService = inject(FaviconService);\r\n\r\n readonly DEFAULT_DISPLAY_DATA: any =\r\n this.brandDisplay.defaultBrandDisplayData;\r\n readonly brandDisplayData = this.brandDisplay.brandDisplayData;\r\n readonly draftBrandDisplayData = this.brandDisplay.draftBrandDisplayData;\r\n\r\n readonly mainData = computed(() => this.brandDisplayData()?.main);\r\n readonly headerData = computed(() => this.brandDisplayData()?.header);\r\n readonly sidebarData = computed(() => this.brandDisplayData()?.sidebar);\r\n readonly contentAreaData = computed(\r\n () => this.brandDisplayData()?.contentArea,\r\n );\r\n readonly loginData = computed(() => this.brandDisplayData()?.login);\r\n\r\n // Draft data computed signals for preview components\r\n readonly draftMainData = computed(() => this.draftBrandDisplayData()?.main);\r\n readonly draftHeaderData = computed(\r\n () => this.draftBrandDisplayData()?.header,\r\n );\r\n readonly draftSidebarData = computed(\r\n () => this.draftBrandDisplayData()?.sidebar,\r\n );\r\n readonly draftContentAreaData = computed(\r\n () => this.draftBrandDisplayData()?.contentArea,\r\n );\r\n readonly draftLoginData = computed(() => this.draftBrandDisplayData()?.login);\r\n\r\n // Images for main brandDisplayData\r\n readonly productBrandLogo = computed(() => {\r\n return this.mainData()?.logoSettings?.productBrandImage?.fileName;\r\n });\r\n\r\n readonly headerBackgroundImage = computed(() => {\r\n return this.headerData()?.backgroundImage?.fileName;\r\n });\r\n\r\n readonly sidebarBackgroundImage = computed(() => {\r\n return this.sidebarData()?.backgroundImage?.fileName;\r\n });\r\n\r\n readonly contentAreaBackgroundImage = computed(() => {\r\n return this.contentAreaData()?.backgroundImage?.fileName;\r\n });\r\n\r\n readonly loginBackgroundImage = computed(() => {\r\n return this.loginData()?.backgroundImage?.fileName;\r\n });\r\n\r\n // Images for draft data (preview)\r\n readonly draftProductBrandLogo = computed(() => {\r\n return this.draftMainData()?.logoSettings?.productBrandImage?.fileName;\r\n });\r\n\r\n readonly draftHeaderBackgroundImage = computed(() => {\r\n return this.draftHeaderData()?.backgroundImage?.fileName;\r\n });\r\n\r\n readonly draftSidebarBackgroundImage = computed(() => {\r\n return this.draftSidebarData()?.backgroundImage?.fileName;\r\n });\r\n\r\n readonly draftContentAreaBackgroundImage = computed(() => {\r\n return this.draftContentAreaData()?.backgroundImage?.fileName;\r\n });\r\n\r\n readonly draftLoginBackgroundImage = computed(() => {\r\n return this.draftLoginData()?.backgroundImage?.fileName;\r\n });\r\n\r\n readonly primaryColor = computed(\r\n () =>\r\n this.mainData()?.colorSettings?.primaryColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.primaryColor,\r\n );\r\n readonly textColor = computed(\r\n () =>\r\n this.mainData()?.colorSettings?.textColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\r\n );\r\n readonly backgroundColor = computed(\r\n () =>\r\n this.contentAreaData()?.backgroundColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.contentArea?.backgroundColor,\r\n );\r\n\r\n readonly headerFontColor = computed(() => {\r\n return (\r\n this.headerData()?.fontColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.header?.fontColor\r\n );\r\n });\r\n\r\n readonly sidebarIconColor = computed(() => {\r\n return (\r\n this.sidebarData()?.iconColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.sidebar?.iconColor\r\n );\r\n });\r\n\r\n readonly contentAreaBodyColor = computed(\r\n () =>\r\n this.mainData()?.colorSettings?.textColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\r\n );\r\n\r\n // Colors and styles for draft data (preview)\r\n readonly draftPrimaryColor = computed(\r\n () =>\r\n this.draftMainData()?.colorSettings?.primaryColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.primaryColor,\r\n );\r\n\r\n readonly draftHeaderFontColor = computed(() => {\r\n return (\r\n this.draftHeaderData()?.fontColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.header?.fontColor\r\n );\r\n });\r\n\r\n readonly draftSidebarIconColor = computed(() => {\r\n return (\r\n this.draftSidebarData()?.iconColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.sidebar?.iconColor\r\n );\r\n });\r\n\r\n readonly draftContentAreaBodyColor = computed(\r\n () =>\r\n this.draftMainData()?.colorSettings?.textColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\r\n );\r\n\r\n constructor() {\r\n effect(() => {\r\n const favicon = this.mainData()?.logoSettings?.faviconsImage?.fileName;\r\n if (favicon) {\r\n this.faviconService.setFavicon(favicon);\r\n } else {\r\n this.faviconService.resetFavicon();\r\n }\r\n });\r\n effect(() => {\r\n const primaryColor = this.primaryColor();\r\n const textColor = this.textColor();\r\n const backgroundColor = this.backgroundColor();\r\n untracked(() => {\r\n if (primaryColor) {\r\n changePrimaryColor(primaryColor);\r\n }\r\n if (textColor) {\r\n changeTextColor(textColor);\r\n }\r\n if (backgroundColor) {\r\n changeBackgroundColor(backgroundColor);\r\n }\r\n });\r\n });\r\n }\r\n\r\n buildBackgroundStyles(\r\n data:\r\n | {\r\n backgroundColor?: string;\r\n backgroundImage?: string;\r\n repeated?: boolean;\r\n }\r\n | undefined,\r\n defaultBgColor?: string,\r\n ): BackgroundStyles {\r\n const styles: BackgroundStyles = {};\r\n\r\n if (defaultBgColor && !data?.backgroundColor) {\r\n styles['background-color'] = defaultBgColor;\r\n }\r\n\r\n if (data?.backgroundColor) {\r\n styles['background-color'] = data.backgroundColor;\r\n }\r\n\r\n if (data?.backgroundImage) {\r\n if (data.repeated) {\r\n styles['background-repeat'] = 'repeat';\r\n styles['background-size'] = 'auto';\r\n } else {\r\n styles['background-repeat'] = 'no-repeat';\r\n styles['background-size'] = 'cover';\r\n styles['background-position'] = 'center';\r\n }\r\n }\r\n\r\n return styles;\r\n }\r\n\r\n getProductName(lang: 'en' | 'ar'): string {\r\n const name = this.mainData()?.productName;\r\n return (\r\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productName?.[lang]\r\n );\r\n }\r\n\r\n getProductTagline(lang: 'en' | 'ar'): string {\r\n const name = this.mainData()?.productTagline;\r\n return (\r\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productTagline?.[lang]\r\n );\r\n }\r\n\r\n // Draft versions for preview components\r\n getDraftProductName(lang: 'en' | 'ar'): string {\r\n const name = this.draftMainData()?.productName;\r\n return (\r\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productName?.[lang]\r\n );\r\n }\r\n\r\n getDraftProductTagline(lang: 'en' | 'ar'): string {\r\n const name = this.draftMainData()?.productTagline;\r\n return (\r\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productTagline?.[lang]\r\n );\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, inject } from '@angular/core';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { Icon, MTIcon } from '@masterteam/icons';\r\nimport { BrandDisplayFacade } from '../../../../store/brand-display';\r\nimport { getLightColor } from '@masterteam/components';\r\nimport { SecureImagePipe } from '@masterteam/components/upload-field';\r\nimport { ManageBrndingService } from '../../../services/manage-brnding.service';\r\n\r\ninterface SidebarPage {\r\n title: string;\r\n icon: MTIcon;\r\n path: string;\r\n}\r\n\r\n@Component({\r\n selector: 'mt-preview-brand',\r\n standalone: true,\r\n imports: [CommonModule, Button, Icon, TranslocoDirective, SecureImagePipe],\r\n templateUrl: './preview-brand.html',\r\n styleUrl: './preview-brand.scss',\r\n})\r\nexport class PreviewBrand {\r\n private readonly facade = inject(BrandDisplayFacade);\r\n private readonly translocoService = inject(TranslocoService);\r\n readonly manageBrnding = inject(ManageBrndingService);\r\n\r\n readonly ActiveLang = this.translocoService.getActiveLang() as 'en' | 'ar';\r\n\r\n readonly DEFAULT_DISPLAY_DATA: any = this.facade.defaultBrandDisplayData;\r\n\r\n productBrandLogo = this.manageBrnding.draftProductBrandLogo;\r\n headerBackgroundImage = this.manageBrnding.draftHeaderBackgroundImage;\r\n sidebarBackgroundImage = this.manageBrnding.draftSidebarBackgroundImage;\r\n contentAreaBackgroundImage =\r\n this.manageBrnding.draftContentAreaBackgroundImage;\r\n\r\n readonly headerStyles = computed(() => {\r\n const defaultBg =\r\n this.manageBrnding.draftHeaderData()?.backgroundColor ||\r\n this.manageBrnding.draftHeaderData()?.backgroundImage\r\n ? undefined\r\n : this.DEFAULT_DISPLAY_DATA()?.header?.backgroundColor;\r\n return this.manageBrnding.buildBackgroundStyles(\r\n this.manageBrnding.draftHeaderData(),\r\n defaultBg,\r\n );\r\n });\r\n\r\n readonly sidebarStyles = computed(() => {\r\n const defaultBg =\r\n this.manageBrnding.draftSidebarData()?.backgroundColor ||\r\n this.manageBrnding.draftSidebarData()?.backgroundImage\r\n ? undefined\r\n : this.DEFAULT_DISPLAY_DATA()?.sidebar?.backgroundColor;\r\n return this.manageBrnding.buildBackgroundStyles(\r\n this.manageBrnding.draftSidebarData(),\r\n defaultBg,\r\n );\r\n });\r\n\r\n contentAreaStyles = computed(() => {\r\n const defaultBg =\r\n this.manageBrnding.draftContentAreaData()?.backgroundColor ||\r\n this.manageBrnding.draftContentAreaData()?.backgroundImage\r\n ? undefined\r\n : this.DEFAULT_DISPLAY_DATA()?.contentArea?.backgroundColor;\r\n return this.manageBrnding.buildBackgroundStyles(\r\n this.manageBrnding.draftContentAreaData(),\r\n defaultBg,\r\n );\r\n });\r\n\r\n readonly contentAreaBodyColor = this.manageBrnding.draftContentAreaBodyColor;\r\n readonly primaryColor = this.manageBrnding.draftPrimaryColor;\r\n\r\n readonly lightPrimaryColor = computed(() =>\r\n getLightColor(this.primaryColor()!),\r\n );\r\n\r\n readonly headerFontColor = this.manageBrnding.draftHeaderFontColor;\r\n\r\n productName = computed(() => {\r\n const lang = this.ActiveLang as 'en' | 'ar';\r\n return this.manageBrnding.getDraftProductName(lang);\r\n });\r\n\r\n productTagline = computed(() => {\r\n const lang = this.ActiveLang as 'en' | 'ar';\r\n return this.manageBrnding.getDraftProductTagline(lang);\r\n });\r\n\r\n protected readonly pages: SidebarPage[] = [\r\n {\r\n title: 'Workspaces',\r\n icon: 'custom.layer-6',\r\n path: '/control-panel/workspaces',\r\n },\r\n {\r\n title: 'Product Settings',\r\n icon: 'media.monitor-01',\r\n path: '/control-panel/product-settings',\r\n },\r\n {\r\n title: 'Brand Settings',\r\n icon: 'image.colors',\r\n path: '/control-panel/brand-settings',\r\n },\r\n {\r\n title: 'Others',\r\n icon: 'general.dots-grid',\r\n path: '/others',\r\n },\r\n ];\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n <div class=\"border rounded-2xl border-surface-300\">\r\n <div\r\n class=\"flex justify-between rounded-t-2xl align-center p-4 h-[calc(var(--header-height))] bg-cover bg-center\"\r\n [style]=\"headerStyles()\"\r\n [style.backgroundImage]=\"\r\n headerBackgroundImage() ? (headerBackgroundImage() | secureImage) : null\r\n \"\r\n >\r\n <div class=\"flex gap-4 items-center\">\r\n <img\r\n [src]=\"\r\n productBrandLogo()\r\n ? (productBrandLogo() | secureImage: true)\r\n : DEFAULT_DISPLAY_DATA()?.brandLogoWhite\r\n \"\r\n alt=\"Logo\"\r\n class=\"h-12 w-12\"\r\n />\r\n <div\r\n class=\"h-3/4 w-[1px]\"\r\n [style.background-color]=\"headerFontColor()\"\r\n ></div>\r\n <div class=\"flex flex-col gap-1\">\r\n <h2 class=\"text-xl font-semibold\" [style.color]=\"headerFontColor()\">\r\n {{ productName() }}\r\n </h2>\r\n <span class=\"text-sm font-semibold\" [style.color]=\"headerFontColor()\">\r\n {{ productTagline() }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex gap-2 items-center\">\r\n <mt-button\r\n icon=\"alert.bell-01\"\r\n size=\"large\"\r\n [style.color]=\"headerFontColor()\"\r\n ></mt-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex bg-white overflow-clip\">\r\n <div\r\n class=\"w-16 h-full flex flex-col gap-3 border-e-1 border-surface-300 px-2 py-8 rounded-ss-2xl bg-cover bg-center\"\r\n [style]=\"sidebarStyles()\"\r\n [style.backgroundImage]=\"\r\n sidebarBackgroundImage()\r\n ? (sidebarBackgroundImage() | secureImage)\r\n : null\r\n \"\r\n >\r\n @for (page of pages; track page.title; let first = $first) {\r\n <a\r\n [style.background-color]=\"first ? lightPrimaryColor() : null\"\r\n class=\"flex items-center justify-center size-[47px] hover:bg-surface-100 transition-colors rounded-xl\"\r\n >\r\n <mt-icon\r\n [icon]=\"page.icon\"\r\n [style.color]=\"\r\n first ? primaryColor() : manageBrnding.draftSidebarIconColor()\r\n \"\r\n />\r\n </a>\r\n }\r\n </div>\r\n\r\n <div\r\n [style]=\"contentAreaStyles()\"\r\n [style.color]=\"contentAreaBodyColor()\"\r\n [style.backgroundImage]=\"\r\n contentAreaBackgroundImage()\r\n ? (contentAreaBackgroundImage() | secureImage)\r\n : null\r\n \"\r\n class=\"size-full h-[288px] overflow-y-auto overscroll-y-auto p-4 bg-cover bg-center\"\r\n >\r\n <p class=\"text-sm\">{{ t(\"preview-content\") }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, OnInit, signal } from '@angular/core';\r\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { Tabs } from '@masterteam/components/tabs';\r\nimport { PreviewBrand } from '../preview-brand/preview-brand';\r\n\r\n@Component({\r\n selector: 'mt-white-label',\r\n standalone: true,\r\n imports: [CommonModule, Tabs, RouterOutlet, PreviewBrand, TranslocoDirective],\r\n templateUrl: './white-label.html',\r\n styleUrl: './white-label.scss',\r\n})\r\nexport default class WhiteLabel implements OnInit {\r\n private readonly translocoService = inject(TranslocoService);\r\n private readonly router = inject(Router);\r\n private readonly route = inject(ActivatedRoute);\r\n selectedTab = signal<any>('');\r\n\r\n ngOnInit() {\r\n const selectedTab = this.route.snapshot.firstChild?.data['componentType'];\r\n this.selectedTab.set(selectedTab || 'main');\r\n }\r\n\r\n tabsList = [\r\n {\r\n label: this.translocoService.translate('brand-display.main'),\r\n value: 'main',\r\n },\r\n {\r\n label: this.translocoService.translate('brand-display.header'),\r\n value: 'header',\r\n },\r\n {\r\n label: this.translocoService.translate('brand-display.side-bar'),\r\n value: 'sidebar',\r\n },\r\n {\r\n label: this.translocoService.translate('brand-display.content-area'),\r\n value: 'content-area',\r\n },\r\n ];\r\n\r\n onTabChange(event: any) {\r\n if (event) {\r\n this.router.navigate([event], { relativeTo: this.route });\r\n }\r\n }\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <div class=\"mt-7\">\r\n <mt-tabs\r\n [(active)]=\"selectedTab\"\r\n [options]=\"tabsList\"\r\n size=\"large\"\r\n (onChange)=\"onTabChange($event)\"\r\n />\r\n </div>\r\n <div class=\"flex gap-10 mt-4\">\r\n <div class=\"w-3/5\">\r\n <router-outlet />\r\n </div>\r\n <div class=\"w-2/5\">\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n <mt-preview-brand></mt-preview-brand>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, OnInit, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport {\r\n DynamicFormConfig,\r\n ColorPickerFieldConfig,\r\n UploadFileFieldConfig,\r\n} from '@masterteam/components';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { BrandDisplayFacade } from '../../../../store/brand-display';\r\nimport { merge } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'mt-main-display',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n Card,\r\n TranslocoDirective,\r\n DynamicForm,\r\n ReactiveFormsModule,\r\n ],\r\n templateUrl: './main-display.html',\r\n styleUrl: './main-display.scss',\r\n})\r\nexport default class MainDisplay implements OnInit {\r\n private readonly translocoService = inject(TranslocoService);\r\n private readonly facade = inject(BrandDisplayFacade);\r\n private readonly DEFAULT_DISPLAY_DATA = this.facade.defaultBrandDisplayData;\r\n brandNameFormControl: any = new FormControl({\r\n productName: this.DEFAULT_DISPLAY_DATA()?.main?.productName,\r\n productTagline: this.DEFAULT_DISPLAY_DATA()?.main?.productTagline,\r\n });\r\n logoFormControl: any = new FormControl({});\r\n colorsFormControl: any = new FormControl({\r\n primaryColor:\r\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.primaryColor,\r\n secondaryColor:\r\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.secondaryColor,\r\n textColor: this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\r\n });\r\n\r\n brandNameConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'brandNameFormConfig',\r\n type: 'header',\r\n order: 1,\r\n fields: [\r\n {\r\n key: 'productName.en',\r\n label: this.translocoService.translate(\r\n 'brand-display.product-name-en',\r\n ),\r\n placeholder: this.translocoService.translate(\r\n 'brand-display.product-name-en',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n },\r\n {\r\n key: 'productName.ar',\r\n label: this.translocoService.translate(\r\n 'brand-display.product-name-ar',\r\n ),\r\n placeholder: this.translocoService.translate(\r\n 'brand-display.product-name-ar',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n },\r\n {\r\n key: 'productTagline.en',\r\n label: this.translocoService.translate(\r\n 'brand-display.product-tagline-en',\r\n ),\r\n placeholder: this.translocoService.translate(\r\n 'brand-display.product-tagline-en',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n },\r\n {\r\n key: 'productTagline.ar',\r\n label: this.translocoService.translate(\r\n 'brand-display.product-tagline-ar',\r\n ),\r\n placeholder: this.translocoService.translate(\r\n 'brand-display.product-tagline-ar',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n logoConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'logoSettingsConfig',\r\n type: 'none',\r\n fields: [\r\n new UploadFileFieldConfig({\r\n key: 'productBrandImage',\r\n label: this.translocoService.translate(\r\n 'brand-display.product-brand',\r\n ),\r\n shape: 'circle',\r\n order: 1,\r\n colSpan: 4,\r\n }),\r\n new UploadFileFieldConfig({\r\n key: 'faviconsImage',\r\n label: this.translocoService.translate('brand-display.favicon'),\r\n shape: 'circle',\r\n order: 1,\r\n colSpan: 4,\r\n }),\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n colorsConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'colorSettingsConfig',\r\n type: 'none',\r\n order: 1,\r\n fields: [\r\n new ColorPickerFieldConfig({\r\n key: 'primaryColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.primary-color',\r\n ),\r\n validators: [],\r\n order: 1,\r\n colSpan: 6,\r\n }),\r\n // new ColorPickerFieldConfig({\r\n // key: 'secondaryColor',\r\n // label: this.translocoService.translate(\r\n // 'brand-display.secondary-color'\r\n // ),\r\n // validators: [],\r\n // order: 2,\r\n // colSpan: 6,\r\n // }),\r\n new ColorPickerFieldConfig({\r\n key: 'textColor',\r\n label: this.translocoService.translate('brand-display.text-color'),\r\n validators: [],\r\n order: 3,\r\n colSpan: 6,\r\n }),\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n brandDisplayData = this.facade.draftBrandDisplayData;\r\n\r\n ngOnInit(): void {\r\n merge(\r\n this.brandNameFormControl.valueChanges,\r\n this.colorsFormControl.valueChanges,\r\n this.logoFormControl.valueChanges,\r\n ).subscribe(() => {\r\n this.updateBrandDisplayLocally();\r\n });\r\n this.brandNameFormControl.patchValue(\r\n { ...this.brandNameFormControl.value, ...this.brandDisplayData()?.main },\r\n {\r\n emitEvent: false,\r\n },\r\n );\r\n this.colorsFormControl.patchValue(\r\n {\r\n ...this.colorsFormControl.value,\r\n ...(this.brandDisplayData()?.main?.colorSettings || {}),\r\n },\r\n {\r\n emitEvent: false,\r\n },\r\n );\r\n this.logoFormControl.patchValue(\r\n {\r\n ...this.logoFormControl.value,\r\n ...(this.brandDisplayData()?.main?.logoSettings || {}),\r\n },\r\n {\r\n emitEvent: false,\r\n },\r\n );\r\n }\r\n\r\n updateBrandDisplayLocally() {\r\n const brandNameFormControlValue = this.brandNameFormControl.value;\r\n const colorsFormControlValue = this.colorsFormControl.value;\r\n const logoFormControlValue = this.logoFormControl.value;\r\n this.facade.updateBrandDisplayDataLocally({\r\n main: {\r\n productName: brandNameFormControlValue.productName,\r\n productTagline: brandNameFormControlValue.productTagline,\r\n colorSettings: {\r\n primaryColor: colorsFormControlValue.primaryColor,\r\n // secondaryColor: formValue.secondaryColor,\r\n textColor: colorsFormControlValue.textColor,\r\n },\r\n logoSettings: {\r\n productBrandImage: logoFormControlValue.productBrandImage,\r\n faviconsImage: logoFormControlValue.faviconsImage,\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <mt-card id=\"brand-name\" [title]=\"t('brand-name')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"brandNameConfig()\"\r\n [formControl]=\"brandNameFormControl\"\r\n />\r\n </form>\r\n </mt-card>\r\n\r\n <mt-card class=\"mt-5\" id=\"logo-settings\" [title]=\"t('logo-settings')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"logoConfig()\"\r\n [formControl]=\"logoFormControl\"\r\n />\r\n </form>\r\n </mt-card>\r\n\r\n <mt-card class=\"mt-5\" id=\"colors\" [title]=\"t('colors')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"colorsConfig()\"\r\n [formControl]=\"colorsFormControl\"\r\n />\r\n </form>\r\n </mt-card>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, OnInit, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport {\r\n ColorPickerFieldConfig,\r\n DynamicFormConfig,\r\n ToggleFieldConfig,\r\n UploadFileFieldConfig,\r\n} from '@masterteam/components';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { BrandDisplayFacade } from '../../../../store/brand-display';\r\n\r\n@Component({\r\n selector: 'mt-header-sidebar-display',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n Card,\r\n TranslocoDirective,\r\n DynamicForm,\r\n ReactiveFormsModule,\r\n ],\r\n templateUrl: './header-sidebar-display.html',\r\n styleUrl: './header-sidebar-display.scss',\r\n})\r\nexport default class HeaderSidebarDisplay implements OnInit {\r\n private readonly translocoService = inject(TranslocoService);\r\n readonly route = inject(ActivatedRoute);\r\n componentType = signal<'header' | 'sidebar'>('header');\r\n isHeader = signal<boolean>(true);\r\n private readonly facade = inject(BrandDisplayFacade);\r\n brandDisplayData = this.facade.draftBrandDisplayData;\r\n headerSidebarFormControl: any;\r\n headerConfig = signal<DynamicFormConfig>({ sections: [] });\r\n DEFAULT_DISPLAY_DATA: any = this.facade.defaultBrandDisplayData;\r\n\r\n ngOnInit(): void {\r\n this.componentType.set(this.route.snapshot.data['componentType']);\r\n this.isHeader.set(this.componentType() === 'header');\r\n\r\n this.headerSidebarFormControl = new FormControl({\r\n fontColor: this.DEFAULT_DISPLAY_DATA()?.[this.componentType()]?.fontColor,\r\n iconColor: this.DEFAULT_DISPLAY_DATA()?.[this.componentType()]?.iconColor,\r\n repeated: this.DEFAULT_DISPLAY_DATA()?.[this.componentType()]?.repeated,\r\n backgroundColor:\r\n this.DEFAULT_DISPLAY_DATA()?.[this.componentType()]?.backgroundColor,\r\n });\r\n this.headerConfig.set({\r\n sections: [\r\n {\r\n key: 'brandNameFormConfig',\r\n type: 'header',\r\n order: 1,\r\n fields: [\r\n new ColorPickerFieldConfig({\r\n key: 'backgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.background-color',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'fontColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.font-color',\r\n ),\r\n order: 3,\r\n hidden: !this.isHeader(),\r\n colSpan: 6,\r\n }),\r\n\r\n new ColorPickerFieldConfig({\r\n key: 'iconColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.icon-color',\r\n ),\r\n order: 4,\r\n hidden: this.isHeader(),\r\n colSpan: 6,\r\n }),\r\n new UploadFileFieldConfig({\r\n key: 'backgroundImage',\r\n label: this.translocoService.translate(\r\n 'brand-display.background-image',\r\n ),\r\n order: 5,\r\n colSpan: 6,\r\n }),\r\n new ToggleFieldConfig({\r\n key: 'repeated',\r\n label: this.translocoService.translate('brand-display.repeated'),\r\n cssClass: 'mt-12',\r\n order: 6,\r\n colSpan: 6,\r\n }),\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n const localFormData = {\r\n ...this.headerSidebarFormControl.value,\r\n ...this.brandDisplayData()?.[this.componentType()],\r\n };\r\n\r\n this.headerSidebarFormControl.patchValue(localFormData, {\r\n emitEvent: false,\r\n });\r\n\r\n this.headerSidebarFormControl.valueChanges.subscribe((value: any) => {\r\n this.facade.updateBrandDisplayDataLocally({\r\n [this.componentType()]: value,\r\n });\r\n });\r\n }\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <mt-card id=\"header\" [title]=\"isHeader() ? t('header') : t('side-bar')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"headerConfig()\"\r\n [formControl]=\"headerSidebarFormControl\"\r\n />\r\n </form>\r\n </mt-card>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, OnInit, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport {\r\n ColorPickerFieldConfig,\r\n DynamicFormConfig,\r\n ToggleFieldConfig,\r\n UploadFileFieldConfig,\r\n} from '@masterteam/components';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { BrandDisplayFacade } from '../../../../store/brand-display';\r\n@Component({\r\n selector: 'mt-content-area',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n Card,\r\n TranslocoDirective,\r\n DynamicForm,\r\n ReactiveFormsModule,\r\n ],\r\n templateUrl: './content-area.html',\r\n styleUrl: './content-area.scss',\r\n})\r\nexport default class ContentArea implements OnInit {\r\n private readonly translocoService = inject(TranslocoService);\r\n private readonly facade = inject(BrandDisplayFacade);\r\n private readonly DEFAULT_DISPLAY_DATA = this.facade.defaultBrandDisplayData;\r\n brandDisplayData = this.facade.draftBrandDisplayData;\r\n contentAreaFormControl: any = new FormControl({\r\n backgroundColor: this.DEFAULT_DISPLAY_DATA()?.contentArea?.backgroundColor,\r\n repeated: this.DEFAULT_DISPLAY_DATA()?.contentArea?.repeated,\r\n });\r\n\r\n ngOnInit(): void {\r\n const localFormData = {\r\n ...this.contentAreaFormControl.value,\r\n ...this.brandDisplayData()?.contentArea,\r\n };\r\n this.contentAreaFormControl.patchValue(localFormData, {\r\n emitEvent: false,\r\n });\r\n this.contentAreaFormControl.valueChanges.subscribe((value: any) => {\r\n this.facade.updateBrandDisplayDataLocally({\r\n contentArea: {\r\n backgroundColor: value.backgroundColor,\r\n repeated: value.repeated,\r\n backgroundImage: value?.backgroundImage,\r\n },\r\n });\r\n });\r\n }\r\n contentAreaConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'contentAreaConfig',\r\n type: 'none',\r\n order: 1,\r\n fields: [\r\n new UploadFileFieldConfig({\r\n key: 'backgroundImage',\r\n label: this.translocoService.translate(\r\n 'brand-display.background-image',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n }),\r\n new ToggleFieldConfig({\r\n key: 'repeated',\r\n label: this.translocoService.translate('brand-display.repeated'),\r\n order: 2,\r\n cssClass: 'mt-12',\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'backgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.background-color',\r\n ),\r\n order: 3,\r\n colSpan: 6,\r\n }),\r\n ],\r\n },\r\n ],\r\n });\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <mt-card id=\"header\" [title]=\"t('content-area')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"contentAreaConfig()\"\r\n [formControl]=\"contentAreaFormControl\"\r\n />\r\n </form>\r\n </mt-card>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, inject } from '@angular/core';\r\nimport { TranslocoDirective } from '@jsverse/transloco';\r\nimport { BrandDisplayFacade } from '../../../../store/brand-display';\r\nimport { SecureImagePipe } from '@masterteam/components/upload-field';\r\nimport { ManageBrndingService } from '../../../services/manage-brnding.service';\r\n\r\n@Component({\r\n selector: 'mt-preview-login',\r\n standalone: true,\r\n imports: [CommonModule, TranslocoDirective, SecureImagePipe],\r\n templateUrl: './preview-login.html',\r\n styleUrl: './preview-login.scss',\r\n})\r\nexport class PreviewLogin {\r\n private readonly facade = inject(BrandDisplayFacade);\r\n private readonly manageBrnding = inject(ManageBrndingService);\r\n\r\n readonly DEFAULT_DISPLAY_DATA: any = this.facade.defaultBrandDisplayData;\r\n\r\n previewBackgroundColor = computed(() => {\r\n const value = this.manageBrnding.draftLoginData();\r\n return (\r\n value?.backgroundColor ||\r\n this.DEFAULT_DISPLAY_DATA()?.login?.backgroundColor\r\n );\r\n });\r\n\r\n repeated = computed(() => {\r\n const v = this.manageBrnding.draftLoginData();\r\n return v?.repeated || this.DEFAULT_DISPLAY_DATA()?.login?.repeated;\r\n });\r\n\r\n previewFormPosition = computed(() => {\r\n const value = this.manageBrnding.draftLoginData();\r\n return (\r\n value?.formWizardPosition ||\r\n this.DEFAULT_DISPLAY_DATA()?.login?.formWizardPosition\r\n );\r\n });\r\n\r\n previewLogoSrc = computed(() => {\r\n const value = this.manageBrnding.draftLoginData();\r\n return value?.loginBrandImage?.fileName || null;\r\n });\r\n\r\n backgroundImage = this.manageBrnding.draftLoginBackgroundImage;\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'login'\">\r\n <div class=\"sticky top-4\">\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n <div\r\n class=\"rounded-lg overflow-hidden aspect-[16/10] relative\"\r\n [style]=\"{\r\n 'background-color': previewBackgroundColor(),\r\n 'background-size': repeated() ? 'auto' : 'cover',\r\n 'background-repeat': repeated() ? 'repeat' : 'no-repeat',\r\n 'background-position': 'center',\r\n }\"\r\n [style.backgroundImage]=\"\r\n backgroundImage() ? (backgroundImage() | secureImage) : null\r\n \"\r\n >\r\n <div class=\"absolute inset-0 flex items-center p-8\">\r\n @if (previewFormPosition() !== \"center\") {\r\n <div\r\n class=\"logo flex flex-col items-center gap-2 flex-1\"\r\n [class]=\"{\r\n 'order-2': previewFormPosition() === 'start',\r\n 'order-1': previewFormPosition() === 'end',\r\n }\"\r\n >\r\n <img\r\n [src]=\"\r\n previewLogoSrc()\r\n ? (previewLogoSrc() | secureImage: true)\r\n : DEFAULT_DISPLAY_DATA()?.loginLogo\r\n \"\r\n alt=\"Logo\"\r\n class=\"h-12 w-12\"\r\n />\r\n <div class=\"text-white text-lg text-center\">\r\n {{ t(\"project-management-system\") }}\r\n </div>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"flex-shrink-0\"\r\n [class]=\"{\r\n 'order-1': previewFormPosition() === 'start',\r\n 'order-2': previewFormPosition() === 'end',\r\n 'mx-auto': previewFormPosition() === 'center',\r\n }\"\r\n >\r\n @if (previewFormPosition() === \"center\") {\r\n <div class=\"logo flex flex-col items-center gap-2 mb-4\">\r\n <img\r\n [src]=\"\r\n previewLogoSrc()\r\n ? (previewLogoSrc() | secureImage: true)\r\n : DEFAULT_DISPLAY_DATA()?.loginLogo\r\n \"\r\n alt=\"Logo\"\r\n class=\"h-12 w-12\"\r\n />\r\n <div class=\"text-white text-lg\">\r\n {{ t(\"portfolio-management-system\") }}\r\n </div>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"bg-white rounded-lg shadow-xl px-6 py-3 w-60 relative z-10\"\r\n >\r\n <div class=\"text-center mb-3 mt-4\">\r\n <h4 class=\"text-[14px] font-bold mb-1\">{{ t(\"signin\") }}</h4>\r\n <p class=\"text-[8px] text-gray-500\">{{ t(\"info-msg\") }}</p>\r\n </div>\r\n\r\n <div class=\"space-y-3\">\r\n <div>\r\n <label class=\"text-[8px] block text-xs text-gray-600 mb-1\">{{\r\n t(\"username\")\r\n }}</label>\r\n <div\r\n class=\"text-[8px] border border-gray-300 rounded px-3 py-2 text-gray-400\"\r\n >\r\n {{ t(\"username\") }}\r\n </div>\r\n </div>\r\n <div>\r\n <label class=\"text-[8px] block text-gray-600 mb-1\">{{\r\n t(\"password\")\r\n }}</label>\r\n <div\r\n class=\"text-[8px] border border-gray-300 rounded px-3 py-2 text-gray-400\"\r\n >\r\n {{ t(\"password\") }}\r\n </div>\r\n </div>\r\n <button\r\n class=\"w-full mb-1 bg-primary text-white rounded py-2 text-[9px] font-medium\"\r\n >\r\n {{ t(\"sign-in\") }}\r\n </button>\r\n <div class=\"text-center\">\r\n <a class=\"text-[11px] text-primary\"> English </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center mt-3 text-[8px] text-gray-400\">\r\n {{ t(\"tagline\") }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, inject, OnInit, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport {\r\n DynamicFormConfig,\r\n ToggleFieldConfig,\r\n UploadFileFieldConfig,\r\n} from '@masterteam/components';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport {\r\n BrandDisplayFacade,\r\n LoginDisplay as LoginDisplayModel,\r\n} from '../../../../store/brand-display';\r\nimport { PreviewLogin } from '../preview-login/preview-login';\r\n\r\n@Component({\r\n selector: 'mt-login-display',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n Card,\r\n TranslocoDirective,\r\n DynamicForm,\r\n ReactiveFormsModule,\r\n FileUploadModule,\r\n PreviewLogin,\r\n ],\r\n templateUrl: './login-display.html',\r\n styleUrl: './login-display.scss',\r\n})\r\nexport default class LoginDisplay implements OnInit {\r\n private readonly translocoService = inject(TranslocoService);\r\n private readonly facade = inject(BrandDisplayFacade);\r\n DEFAULT_DISPLAY_DATA = this.facade.defaultBrandDisplayData;\r\n\r\n loginFormControl = new FormControl<LoginDisplayModel | any>({\r\n backgroundColor: this.DEFAULT_DISPLAY_DATA()?.login?.backgroundColor,\r\n repeated: this.DEFAULT_DISPLAY_DATA()?.login?.repeated,\r\n formWizardPosition: this.DEFAULT_DISPLAY_DATA()?.login?.formWizardPosition,\r\n });\r\n\r\n loginFormConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'loginBrandImageSection',\r\n type: 'none',\r\n order: 1,\r\n fields: [\r\n new UploadFileFieldConfig({\r\n key: 'loginBrandImage',\r\n label: this.translocoService.translate('brand-display.login-brand'),\r\n shape: 'circle',\r\n order: 1,\r\n }),\r\n ],\r\n },\r\n {\r\n key: 'backgroundSection',\r\n type: 'none',\r\n order: 2,\r\n fields: [\r\n {\r\n key: 'backgroundColor',\r\n type: 'color-picker',\r\n label: this.translocoService.translate(\r\n 'brand-display.background-color',\r\n ),\r\n order: 3,\r\n colSpan: 6,\r\n },\r\n new UploadFileFieldConfig({\r\n key: 'backgroundImage',\r\n label: this.translocoService.translate(\r\n 'brand-display.background-image',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n }),\r\n new ToggleFieldConfig({\r\n key: 'repeated',\r\n label: this.translocoService.translate('brand-display.repeated'),\r\n cssClass: 'mt-12',\r\n order: 2,\r\n colSpan: 6,\r\n }),\r\n ],\r\n },\r\n {\r\n key: 'positionSection',\r\n type: 'none',\r\n bodyClass: 'mt-2 p-4 border-t border-dashed border-surface',\r\n order: 3,\r\n fields: [\r\n {\r\n key: 'formWizardPosition',\r\n type: 'radio-button',\r\n label: this.translocoService.translate(\r\n 'brand-display.form-wizard-position',\r\n ),\r\n hint: this.translocoService.translate(\r\n 'brand-display.change-language-direction',\r\n ),\r\n cssClass: 'flex gap-4',\r\n options: [\r\n {\r\n label: this.translocoService.translate('brand-display.start'),\r\n value: 'start',\r\n },\r\n {\r\n label: this.translocoService.translate('brand-display.end'),\r\n value: 'end',\r\n },\r\n {\r\n label: this.translocoService.translate('brand-display.center'),\r\n value: 'center',\r\n },\r\n ],\r\n optionLabel: 'label',\r\n optionValue: 'value',\r\n order: 1,\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n brandDisplayLocalData = this.facade.draftBrandDisplayData;\r\n loginData = computed(() => {\r\n return this.brandDisplayLocalData()?.login as LoginDisplayModel | undefined;\r\n });\r\n\r\n constructor() {\r\n this.loginFormControl.valueChanges.subscribe((partial) => {\r\n this.updateLoginDisplayLocally(partial ?? {});\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n const existingData = {\r\n ...this.loginFormControl.value,\r\n ...this.loginData(),\r\n };\r\n if (existingData) {\r\n this.loginFormControl.patchValue(existingData, { emitEvent: false });\r\n }\r\n }\r\n\r\n updateLoginDisplayLocally(value: any) {\r\n const existingLogin = this.brandDisplayLocalData()?.login ?? {};\r\n const merged = { ...existingLogin, ...value };\r\n this.facade.updateBrandDisplayDataLocally({\r\n login: merged,\r\n });\r\n }\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <div class=\"flex gap-10 mt-6\">\r\n <!-- Left Side - Login Settings -->\r\n <div class=\"w-3/5\">\r\n <mt-card id=\"login-settings\" [title]=\"t('login-settings')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"loginFormConfig()\"\r\n [formControl]=\"loginFormControl\"\r\n />\r\n </form>\r\n </mt-card>\r\n </div>\r\n\r\n <!-- Right Side - Preview -->\r\n <div class=\"w-2/5\">\r\n <mt-preview-login></mt-preview-login>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@masterteam/brand-display",
3
+ "version": "0.0.1",
4
+ "publishConfig": {
5
+ "directory": "../../../dist/masterteam/brand-display",
6
+ "linkDirectory": false,
7
+ "access": "public"
8
+ },
9
+ "peerDependencies": {
10
+ "@angular/common": "^21.0.3",
11
+ "@angular/core": "^21.0.3",
12
+ "@angular/forms": "^21.0.3",
13
+ "@angular/cdk": "^21.0.2",
14
+ "@primeuix/themes": "^2.0.2",
15
+ "@tailwindcss/postcss": "^4.1.17",
16
+ "@jsverse/transloco": "^8.0.2",
17
+ "postcss": "^8.5.6",
18
+ "primeng": "21.0.1",
19
+ "rxjs": "^7.8.2",
20
+ "tailwindcss": "^4.1.17",
21
+ "tailwindcss-primeui": "^0.6.1",
22
+ "@ngxs/store": "^20.1.0",
23
+ "@masterteam/forms": "^0.0.35",
24
+ "@masterteam/components": "^0.0.84",
25
+ "@masterteam/icons": "^0.0.12"
26
+ },
27
+ "sideEffects": false,
28
+ "exports": {
29
+ "./assets/brand-display.css": {
30
+ "style": "./assets/brand-display.css"
31
+ },
32
+ "./assets/i18n/*.json": {
33
+ "default": "./assets/i18n/*.json"
34
+ },
35
+ "./package.json": {
36
+ "default": "./package.json"
37
+ },
38
+ ".": {
39
+ "types": "./types/masterteam-brand-display.d.ts",
40
+ "default": "./fesm2022/masterteam-brand-display.mjs"
41
+ }
42
+ },
43
+ "module": "fesm2022/masterteam-brand-display.mjs",
44
+ "typings": "types/masterteam-brand-display.d.ts",
45
+ "dependencies": {
46
+ "tslib": "^2.8.1"
47
+ }
48
+ }
@@ -0,0 +1,329 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit } from '@angular/core';
3
+ import { PageHeaderTab } from '@masterteam/components/page-header';
4
+ import { LoadingStateShape, CrudStateBase, Response, DynamicFormConfig } from '@masterteam/components';
5
+ import { ActivatedRoute } from '@angular/router';
6
+ import { FormControl } from '@angular/forms';
7
+ import * as _masterteam_brand_display from '@masterteam/brand-display';
8
+ import { MTIcon } from '@masterteam/icons';
9
+ import * as rxjs from 'rxjs';
10
+ import { StateContext } from '@ngxs/store';
11
+
12
+ declare class BrandDisplay$1 implements OnInit {
13
+ private readonly facade;
14
+ private readonly route;
15
+ private readonly router;
16
+ private readonly translocoService;
17
+ selectedTab: _angular_core.WritableSignal<string>;
18
+ loading: _angular_core.Signal<boolean>;
19
+ updateLoading: _angular_core.Signal<boolean>;
20
+ tabsList: PageHeaderTab[];
21
+ breadcrumbItems: {
22
+ label?: string;
23
+ routerLink?: string;
24
+ icon?: string;
25
+ }[];
26
+ ngOnInit(): void;
27
+ goBack(): void;
28
+ onTabChange(event: any): void;
29
+ onSave(): void;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrandDisplay$1, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BrandDisplay$1, "mt-brand-display", never, {}, {}, never, never, true, never>;
32
+ }
33
+
34
+ declare class WhiteLabel implements OnInit {
35
+ private readonly translocoService;
36
+ private readonly router;
37
+ private readonly route;
38
+ selectedTab: _angular_core.WritableSignal<any>;
39
+ ngOnInit(): void;
40
+ tabsList: {
41
+ label: string;
42
+ value: string;
43
+ }[];
44
+ onTabChange(event: any): void;
45
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhiteLabel, never>;
46
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WhiteLabel, "mt-white-label", never, {}, {}, never, never, true, never>;
47
+ }
48
+
49
+ interface LogoSettings {
50
+ loginBrandImage?: any;
51
+ productBrandImage?: any;
52
+ faviconsImage?: any;
53
+ }
54
+ interface ColorSettings {
55
+ primaryColor?: string;
56
+ secondaryColor?: string;
57
+ textColor?: string;
58
+ }
59
+ interface MainDisplay$1 {
60
+ productName?: {
61
+ en: string;
62
+ ar: string;
63
+ };
64
+ productTagline?: {
65
+ en: string;
66
+ ar: string;
67
+ };
68
+ logoSettings?: LogoSettings;
69
+ colorSettings?: ColorSettings;
70
+ }
71
+ interface SidebarDisplay {
72
+ backgroundColor?: string;
73
+ backgroundImage?: any;
74
+ iconColor?: string;
75
+ repeated?: boolean;
76
+ }
77
+ interface HeaderDisplay {
78
+ backgroundColor?: string;
79
+ backgroundImage?: any;
80
+ fontColor?: string;
81
+ repeated?: boolean;
82
+ }
83
+ interface ContentAreaDisplay {
84
+ backgroundColor?: string;
85
+ backgroundImage?: any;
86
+ repeated?: boolean;
87
+ }
88
+ interface LoginDisplay$1 {
89
+ loginBrandLogo?: string;
90
+ backgroundColor?: string;
91
+ backgroundImage?: any;
92
+ loginBrandImage?: any;
93
+ repeated?: boolean;
94
+ formWizardPosition?: 'start' | 'end' | 'center';
95
+ }
96
+ interface BrandDisplay {
97
+ main?: MainDisplay$1;
98
+ sidebar?: SidebarDisplay;
99
+ header?: HeaderDisplay;
100
+ contentArea?: ContentAreaDisplay;
101
+ login?: LoginDisplay$1;
102
+ loginLogo?: string;
103
+ brandLogoWhite?: string;
104
+ }
105
+ declare enum BrandDisplayActionKey {
106
+ GetBrandDisplay = "getBrandDisplay",
107
+ UpdateBrandDisplay = "updateBrandDisplay"
108
+ }
109
+ interface BrandDisplayStateModel extends LoadingStateShape<BrandDisplayActionKey> {
110
+ brandDisplayData: BrandDisplay | null;
111
+ draftBrandDisplayData: BrandDisplay | null;
112
+ defaultBrandDisplayData: any | null;
113
+ }
114
+
115
+ declare class GetBrandDisplay {
116
+ static readonly type = "[BrandDisplay] Get Brand Display";
117
+ }
118
+ declare class UpdateBrandDisplayData {
119
+ static readonly type = "[BrandDisplay] Update Brand Display Data";
120
+ }
121
+ declare class UpdateBrandDisplayDataLocally {
122
+ changes: BrandDisplay;
123
+ static readonly type = "[BrandDisplay] Update Brand Display Data Locally";
124
+ constructor(changes: BrandDisplay);
125
+ }
126
+
127
+ declare class BrandDisplayFacade {
128
+ private readonly store;
129
+ readonly brandDisplayData: _angular_core.Signal<BrandDisplay | null>;
130
+ readonly draftBrandDisplayData: _angular_core.Signal<BrandDisplay | null>;
131
+ readonly defaultBrandDisplayData: _angular_core.Signal<BrandDisplay | null>;
132
+ private readonly loadingActive;
133
+ private readonly errors;
134
+ readonly isLoadingBrandDisplay: _angular_core.Signal<boolean>;
135
+ readonly isUpdatingBrandDisplay: _angular_core.Signal<boolean>;
136
+ readonly brandDisplayError: _angular_core.Signal<string | null>;
137
+ readonly updateBrandDisplayError: _angular_core.Signal<string | null>;
138
+ getBrandDisplay(): rxjs.Observable<void>;
139
+ updateBrandDisplayDataLocally(changes: BrandDisplay): rxjs.Observable<void>;
140
+ updateBrandDisplayData(): rxjs.Observable<void>;
141
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrandDisplayFacade, never>;
142
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BrandDisplayFacade>;
143
+ }
144
+
145
+ declare class BrandDisplayState extends CrudStateBase<BrandDisplay, BrandDisplayStateModel, BrandDisplayActionKey> {
146
+ private http;
147
+ static getBrandDisplayData(state: BrandDisplayStateModel): BrandDisplay | null;
148
+ static getDefaultBrandDisplayData(state: BrandDisplayStateModel): BrandDisplay | null;
149
+ static getDraftBrandDisplayData(state: BrandDisplayStateModel): BrandDisplay | null;
150
+ static getLoadingActive(state: BrandDisplayStateModel): string[];
151
+ static getErrors(state: BrandDisplayStateModel): Record<string, string | null>;
152
+ updateBrandDisplayDataLocally(ctx: StateContext<BrandDisplayStateModel>, { changes }: UpdateBrandDisplayDataLocally): void;
153
+ getBrandDisplay(ctx: StateContext<BrandDisplayStateModel>): rxjs.Observable<Response<any>>;
154
+ updateBrandDisplayData(ctx: StateContext<BrandDisplayStateModel>): rxjs.Observable<Response<BrandDisplay>>;
155
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrandDisplayState, never>;
156
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BrandDisplayState>;
157
+ }
158
+
159
+ declare class MainDisplay implements OnInit {
160
+ private readonly translocoService;
161
+ private readonly facade;
162
+ private readonly DEFAULT_DISPLAY_DATA;
163
+ brandNameFormControl: any;
164
+ logoFormControl: any;
165
+ colorsFormControl: any;
166
+ brandNameConfig: _angular_core.WritableSignal<DynamicFormConfig>;
167
+ logoConfig: _angular_core.WritableSignal<DynamicFormConfig>;
168
+ colorsConfig: _angular_core.WritableSignal<DynamicFormConfig>;
169
+ brandDisplayData: _angular_core.Signal<BrandDisplay | null>;
170
+ ngOnInit(): void;
171
+ updateBrandDisplayLocally(): void;
172
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MainDisplay, never>;
173
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MainDisplay, "mt-main-display", never, {}, {}, never, never, true, never>;
174
+ }
175
+
176
+ declare class HeaderSidebarDisplay implements OnInit {
177
+ private readonly translocoService;
178
+ readonly route: ActivatedRoute;
179
+ componentType: _angular_core.WritableSignal<"header" | "sidebar">;
180
+ isHeader: _angular_core.WritableSignal<boolean>;
181
+ private readonly facade;
182
+ brandDisplayData: _angular_core.Signal<BrandDisplay | null>;
183
+ headerSidebarFormControl: any;
184
+ headerConfig: _angular_core.WritableSignal<DynamicFormConfig>;
185
+ DEFAULT_DISPLAY_DATA: any;
186
+ ngOnInit(): void;
187
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderSidebarDisplay, never>;
188
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderSidebarDisplay, "mt-header-sidebar-display", never, {}, {}, never, never, true, never>;
189
+ }
190
+
191
+ declare class ContentArea implements OnInit {
192
+ private readonly translocoService;
193
+ private readonly facade;
194
+ private readonly DEFAULT_DISPLAY_DATA;
195
+ brandDisplayData: _angular_core.Signal<BrandDisplay | null>;
196
+ contentAreaFormControl: any;
197
+ ngOnInit(): void;
198
+ contentAreaConfig: _angular_core.WritableSignal<DynamicFormConfig>;
199
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContentArea, never>;
200
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContentArea, "mt-content-area", never, {}, {}, never, never, true, never>;
201
+ }
202
+
203
+ declare class LoginDisplay implements OnInit {
204
+ private readonly translocoService;
205
+ private readonly facade;
206
+ DEFAULT_DISPLAY_DATA: _angular_core.Signal<BrandDisplay | null>;
207
+ loginFormControl: FormControl<any>;
208
+ loginFormConfig: _angular_core.WritableSignal<DynamicFormConfig>;
209
+ brandDisplayLocalData: _angular_core.Signal<BrandDisplay | null>;
210
+ loginData: _angular_core.Signal<LoginDisplay$1 | undefined>;
211
+ constructor();
212
+ ngOnInit(): void;
213
+ updateLoginDisplayLocally(value: any): void;
214
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginDisplay, never>;
215
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginDisplay, "mt-login-display", never, {}, {}, never, never, true, never>;
216
+ }
217
+
218
+ interface BackgroundStyles {
219
+ 'background-color'?: string;
220
+ 'background-image'?: string;
221
+ 'background-repeat'?: string;
222
+ 'background-size'?: string;
223
+ 'background-position'?: string;
224
+ }
225
+ declare class ManageBrndingService {
226
+ private readonly brandDisplay;
227
+ private readonly faviconService;
228
+ readonly DEFAULT_DISPLAY_DATA: any;
229
+ readonly brandDisplayData: _angular_core.Signal<BrandDisplay | null>;
230
+ readonly draftBrandDisplayData: _angular_core.Signal<BrandDisplay | null>;
231
+ readonly mainData: _angular_core.Signal<MainDisplay$1 | undefined>;
232
+ readonly headerData: _angular_core.Signal<_masterteam_brand_display.HeaderDisplay | undefined>;
233
+ readonly sidebarData: _angular_core.Signal<_masterteam_brand_display.SidebarDisplay | undefined>;
234
+ readonly contentAreaData: _angular_core.Signal<_masterteam_brand_display.ContentAreaDisplay | undefined>;
235
+ readonly loginData: _angular_core.Signal<LoginDisplay$1 | undefined>;
236
+ readonly draftMainData: _angular_core.Signal<MainDisplay$1 | undefined>;
237
+ readonly draftHeaderData: _angular_core.Signal<_masterteam_brand_display.HeaderDisplay | undefined>;
238
+ readonly draftSidebarData: _angular_core.Signal<_masterteam_brand_display.SidebarDisplay | undefined>;
239
+ readonly draftContentAreaData: _angular_core.Signal<_masterteam_brand_display.ContentAreaDisplay | undefined>;
240
+ readonly draftLoginData: _angular_core.Signal<LoginDisplay$1 | undefined>;
241
+ readonly productBrandLogo: _angular_core.Signal<any>;
242
+ readonly headerBackgroundImage: _angular_core.Signal<any>;
243
+ readonly sidebarBackgroundImage: _angular_core.Signal<any>;
244
+ readonly contentAreaBackgroundImage: _angular_core.Signal<any>;
245
+ readonly loginBackgroundImage: _angular_core.Signal<any>;
246
+ readonly draftProductBrandLogo: _angular_core.Signal<any>;
247
+ readonly draftHeaderBackgroundImage: _angular_core.Signal<any>;
248
+ readonly draftSidebarBackgroundImage: _angular_core.Signal<any>;
249
+ readonly draftContentAreaBackgroundImage: _angular_core.Signal<any>;
250
+ readonly draftLoginBackgroundImage: _angular_core.Signal<any>;
251
+ readonly primaryColor: _angular_core.Signal<any>;
252
+ readonly textColor: _angular_core.Signal<any>;
253
+ readonly backgroundColor: _angular_core.Signal<any>;
254
+ readonly headerFontColor: _angular_core.Signal<any>;
255
+ readonly sidebarIconColor: _angular_core.Signal<any>;
256
+ readonly contentAreaBodyColor: _angular_core.Signal<any>;
257
+ readonly draftPrimaryColor: _angular_core.Signal<any>;
258
+ readonly draftHeaderFontColor: _angular_core.Signal<any>;
259
+ readonly draftSidebarIconColor: _angular_core.Signal<any>;
260
+ readonly draftContentAreaBodyColor: _angular_core.Signal<any>;
261
+ constructor();
262
+ buildBackgroundStyles(data: {
263
+ backgroundColor?: string;
264
+ backgroundImage?: string;
265
+ repeated?: boolean;
266
+ } | undefined, defaultBgColor?: string): BackgroundStyles;
267
+ getProductName(lang: 'en' | 'ar'): string;
268
+ getProductTagline(lang: 'en' | 'ar'): string;
269
+ getDraftProductName(lang: 'en' | 'ar'): string;
270
+ getDraftProductTagline(lang: 'en' | 'ar'): string;
271
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ManageBrndingService, never>;
272
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ManageBrndingService>;
273
+ }
274
+
275
+ interface SidebarPage {
276
+ title: string;
277
+ icon: MTIcon;
278
+ path: string;
279
+ }
280
+ declare class PreviewBrand {
281
+ private readonly facade;
282
+ private readonly translocoService;
283
+ readonly manageBrnding: ManageBrndingService;
284
+ readonly ActiveLang: "en" | "ar";
285
+ readonly DEFAULT_DISPLAY_DATA: any;
286
+ productBrandLogo: _angular_core.Signal<any>;
287
+ headerBackgroundImage: _angular_core.Signal<any>;
288
+ sidebarBackgroundImage: _angular_core.Signal<any>;
289
+ contentAreaBackgroundImage: _angular_core.Signal<any>;
290
+ readonly headerStyles: _angular_core.Signal<_masterteam_brand_display.BackgroundStyles>;
291
+ readonly sidebarStyles: _angular_core.Signal<_masterteam_brand_display.BackgroundStyles>;
292
+ contentAreaStyles: _angular_core.Signal<_masterteam_brand_display.BackgroundStyles>;
293
+ readonly contentAreaBodyColor: _angular_core.Signal<any>;
294
+ readonly primaryColor: _angular_core.Signal<any>;
295
+ readonly lightPrimaryColor: _angular_core.Signal<string>;
296
+ readonly headerFontColor: _angular_core.Signal<any>;
297
+ productName: _angular_core.Signal<string>;
298
+ productTagline: _angular_core.Signal<string>;
299
+ protected readonly pages: SidebarPage[];
300
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PreviewBrand, never>;
301
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PreviewBrand, "mt-preview-brand", never, {}, {}, never, never, true, never>;
302
+ }
303
+
304
+ declare class PreviewLogin {
305
+ private readonly facade;
306
+ private readonly manageBrnding;
307
+ readonly DEFAULT_DISPLAY_DATA: any;
308
+ previewBackgroundColor: _angular_core.Signal<any>;
309
+ repeated: _angular_core.Signal<any>;
310
+ previewFormPosition: _angular_core.Signal<any>;
311
+ previewLogoSrc: _angular_core.Signal<any>;
312
+ backgroundImage: _angular_core.Signal<any>;
313
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PreviewLogin, never>;
314
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PreviewLogin, "mt-preview-login", never, {}, {}, never, never, true, never>;
315
+ }
316
+
317
+ declare class FaviconService {
318
+ private document;
319
+ private httpClient;
320
+ faviconLink: HTMLLinkElement;
321
+ setFavicon(faviconDataUrl: string): void;
322
+ resetFavicon(defaultPath?: string): void;
323
+ private updateFaviconFromUrl;
324
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaviconService, never>;
325
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<FaviconService>;
326
+ }
327
+
328
+ export { BrandDisplay$1 as BrandDisplay, BrandDisplayActionKey, BrandDisplayFacade, BrandDisplayState, ContentArea, FaviconService, GetBrandDisplay, HeaderSidebarDisplay, LoginDisplay, MainDisplay, ManageBrndingService, PreviewBrand, PreviewLogin, UpdateBrandDisplayData, UpdateBrandDisplayDataLocally, WhiteLabel };
329
+ export type { BackgroundStyles, BrandDisplayStateModel, ColorSettings, ContentAreaDisplay, HeaderDisplay, LogoSettings, SidebarDisplay };