@masterteam/brand-display 0.0.14 → 0.0.15

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.
@@ -71,46 +71,46 @@ var BrandDisplayActionKey;
71
71
 
72
72
  const defaultBrandDisplayData = {
73
73
  main: {
74
- productName: { en: 'Flow Plus', ar: 'فلو بلس' },
74
+ productName: { en: 'Project Plus', ar: 'نظام ادارة المشاريع' },
75
75
  productTagline: {
76
- en: 'Connected work, clear approvals, faster delivery',
77
- ar: 'عمل مترابط واعتمادات واضحة وإنجاز أسرع',
76
+ en: 'PMO Multi Platform Digital Solution',
77
+ ar: 'نظام رقمي متعدد المنصات',
78
78
  },
79
79
  colorSettings: {
80
- primaryColor: '#35895f',
81
- secondaryColor: '#6b8f7b',
82
- textColor: '#17251f',
80
+ primaryColor: '#2AAEC0',
81
+ secondaryColor: '#6c757d',
82
+ textColor: '#000000',
83
83
  },
84
84
  },
85
85
  sidebar: {
86
- backgroundColor: '#eef7f2',
87
- iconColor: '#2f6f50',
86
+ backgroundColor: '#F5F5F5',
87
+ iconColor: '#535862',
88
88
  repeated: false,
89
89
  },
90
90
  header: {
91
- backgroundColor: '#35895f',
92
- fontColor: '#ffffff',
91
+ backgroundColor: '#2AAEC0',
92
+ fontColor: '#ffffffff',
93
93
  repeated: false,
94
94
  },
95
95
  contentArea: {
96
- backgroundColor: '#f8fbf9',
96
+ backgroundColor: '#F8F9FC',
97
97
  repeated: false,
98
98
  },
99
99
  login: {
100
- backgroundColor: '#143727',
100
+ backgroundColor: '#00313F',
101
101
  textColor: '#ffffff',
102
102
  repeated: false,
103
103
  formWizardPosition: 'start',
104
104
  },
105
105
  pageLayout: {
106
106
  headerBackgroundColor: '#ffffff',
107
- headerTextColor: '#17251f',
108
- sidebarBackgroundColor: '#eef7f2',
109
- sidebarTextColor: '#17251f',
110
- contentBackgroundColor: '#f8fbf9',
107
+ headerTextColor: '#0a0a0a',
108
+ sidebarBackgroundColor: '#EBEBF0',
109
+ sidebarTextColor: '#0a0a0a',
110
+ contentBackgroundColor: '#ffffff',
111
111
  },
112
- loginLogo: 'flowplus2.svg',
113
- brandLogoWhite: 'flowplus2-white.svg',
112
+ loginLogo: 'pplus.svg',
113
+ brandLogoWhite: 'pplus-white.svg',
114
114
  };
115
115
 
116
116
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
@@ -1 +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.config.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/preview-layout-page/preview-layout-page.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/preview-layout-page/preview-layout-page.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/lib/brand-display/pages/page-layout-display/page-layout-display.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/page-layout-display/page-layout-display.html","../../../../packages/masterteam/brand-display/src/masterteam-brand-display.ts"],"sourcesContent":["import {\n BrandDisplay,\n BrandDisplayDefaultOverrides,\n} from './brand-display.model';\n\nexport class GetBrandDisplay {\n static readonly type = '[BrandDisplay] Get Brand Display';\n}\n\nexport class UpdateBrandDisplayData {\n static readonly type = '[BrandDisplay] Update Brand Display Data';\n}\nexport class UpdateBrandDisplayDataLocally {\n static readonly type = '[BrandDisplay] Update Brand Display Data Locally';\n constructor(public changes: BrandDisplay) {}\n}\n\nexport class SetDefaultBrandDisplayData {\n static readonly type = '[BrandDisplay] Set Default Brand Display Data';\n constructor(public defaults: BrandDisplayDefaultOverrides) {}\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n inject,\n makeEnvironmentProviders,\n provideAppInitializer,\n} from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { SetDefaultBrandDisplayData } from './brand-display.actions';\nimport { BrandDisplayOptions } from './brand-display.model';\n\nconst defaultBrandDisplayOptions: BrandDisplayOptions = {};\n\nexport const MT_BRAND_DISPLAY_OPTIONS = new InjectionToken<BrandDisplayOptions>(\n 'MT_BRAND_DISPLAY_OPTIONS',\n {\n providedIn: 'root',\n factory: () => defaultBrandDisplayOptions,\n },\n);\n\nexport function provideMTBrandDisplay(\n options: BrandDisplayOptions = defaultBrandDisplayOptions,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: MT_BRAND_DISPLAY_OPTIONS,\n useValue: options,\n },\n provideAppInitializer(() => {\n const brandDisplayOptions = inject(MT_BRAND_DISPLAY_OPTIONS);\n\n if (!brandDisplayOptions.defaultData) {\n return;\n }\n\n return inject(Store).dispatch(\n new SetDefaultBrandDisplayData(brandDisplayOptions.defaultData),\n );\n }),\n ]);\n}\n","import { LoadingStateShape } from '@masterteam/components';\n\nexport interface LogoSettings {\n loginBrandImage?: any;\n productBrandImage?: any;\n faviconsImage?: any;\n}\n\nexport interface ColorSettings {\n primaryColor?: string;\n secondaryColor?: string;\n textColor?: string;\n}\n\nexport interface MainDisplay {\n productName?: { en: string; ar: string };\n productTagline?: { en: string; ar: string };\n logoSettings?: LogoSettings;\n colorSettings?: ColorSettings;\n}\n\nexport interface SidebarDisplay {\n backgroundColor?: string;\n backgroundImage?: any;\n iconColor?: string;\n repeated?: boolean;\n}\n\nexport interface HeaderDisplay {\n backgroundColor?: string;\n backgroundImage?: any;\n fontColor?: string;\n repeated?: boolean;\n}\n\nexport interface ContentAreaDisplay {\n backgroundColor?: string;\n backgroundImage?: any;\n repeated?: boolean;\n}\n\nexport interface LoginDisplay {\n loginBrandLogo?: string;\n backgroundColor?: string;\n textColor?: string;\n backgroundImage?: any;\n loginBrandImage?: any;\n repeated?: boolean;\n formWizardPosition?: 'start' | 'end' | 'center';\n}\n\nexport interface PageLayoutDisplay {\n headerBackgroundColor?: string;\n headerTextColor?: string;\n sidebarBackgroundColor?: string;\n sidebarTextColor?: string;\n contentBackgroundColor?: string;\n}\n\nexport interface BrandDisplay {\n main?: MainDisplay;\n sidebar?: SidebarDisplay;\n header?: HeaderDisplay;\n contentArea?: ContentAreaDisplay;\n login?: LoginDisplay;\n pageLayout?: PageLayoutDisplay;\n loginLogo?: string;\n brandLogoWhite?: string;\n}\n\nexport type DeepPartial<T> = {\n [K in keyof T]?: T[K] extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T[K] extends object\n ? DeepPartial<T[K]>\n : T[K];\n};\n\nexport type BrandDisplayDefaultOverrides = DeepPartial<BrandDisplay>;\n\nexport interface BrandDisplayOptions {\n defaultData?: BrandDisplayDefaultOverrides;\n}\n\nexport enum BrandDisplayActionKey {\n GetBrandDisplay = 'getBrandDisplay',\n UpdateBrandDisplay = 'updateBrandDisplay',\n}\n\nexport interface BrandDisplayStateModel extends LoadingStateShape<BrandDisplayActionKey> {\n brandDisplayData: BrandDisplay | null;\n draftBrandDisplayData: BrandDisplay | null;\n defaultBrandDisplayData: BrandDisplay | null;\n}\n","import { BrandDisplay } from './brand-display.model';\n\nexport const defaultBrandDisplayData: BrandDisplay = {\n main: {\n productName: { en: 'Flow Plus', ar: 'فلو بلس' },\n productTagline: {\n en: 'Connected work, clear approvals, faster delivery',\n ar: 'عمل مترابط واعتمادات واضحة وإنجاز أسرع',\n },\n colorSettings: {\n primaryColor: '#35895f',\n secondaryColor: '#6b8f7b',\n textColor: '#17251f',\n },\n },\n\n sidebar: {\n backgroundColor: '#eef7f2',\n iconColor: '#2f6f50',\n repeated: false,\n },\n\n header: {\n backgroundColor: '#35895f',\n fontColor: '#ffffff',\n repeated: false,\n },\n\n contentArea: {\n backgroundColor: '#f8fbf9',\n repeated: false,\n },\n\n login: {\n backgroundColor: '#143727',\n textColor: '#ffffff',\n repeated: false,\n formWizardPosition: 'start',\n },\n\n pageLayout: {\n headerBackgroundColor: '#ffffff',\n headerTextColor: '#17251f',\n sidebarBackgroundColor: '#eef7f2',\n sidebarTextColor: '#17251f',\n contentBackgroundColor: '#f8fbf9',\n },\n loginLogo: 'flowplus2.svg',\n brandLogoWhite: 'flowplus2-white.svg',\n};\n","import { State, Action, StateContext, Selector } from '@ngxs/store';\nimport {\n GetBrandDisplay,\n SetDefaultBrandDisplayData,\n UpdateBrandDisplayData,\n UpdateBrandDisplayDataLocally,\n} from './brand-display.actions';\nimport {\n BrandDisplay,\n BrandDisplayActionKey,\n BrandDisplayDefaultOverrides,\n BrandDisplayStateModel,\n} from './brand-display.model';\nimport { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport {\n CrudStateBase,\n handleApiRequest,\n Response,\n} from '@masterteam/components';\nimport { defaultBrandDisplayData } from './brand-display-default-data';\n\ntype UnknownRecord = Record<string, unknown>;\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction mergeRecords(\n base: UnknownRecord,\n overrides?: UnknownRecord | null,\n): UnknownRecord {\n const result: UnknownRecord = { ...base };\n\n if (!overrides) {\n return result;\n }\n\n for (const [key, value] of Object.entries(overrides)) {\n if (value === undefined) {\n continue;\n }\n\n const baseValue = result[key];\n result[key] =\n isRecord(baseValue) && isRecord(value)\n ? mergeRecords(baseValue, value)\n : value;\n }\n\n return result;\n}\n\nfunction mergeBrandDisplayData(\n base: BrandDisplay,\n overrides?: BrandDisplayDefaultOverrides | BrandDisplay | null,\n): BrandDisplay {\n return mergeRecords(\n base as UnknownRecord,\n overrides as UnknownRecord | null | undefined,\n ) as BrandDisplay;\n}\n\nfunction hasBrandDisplayData(value: BrandDisplay | null): boolean {\n return value !== null && Object.keys(value).length > 0;\n}\n\nfunction isSameBrandDisplayData(\n value: BrandDisplay | null,\n defaultData: BrandDisplay | null,\n): boolean {\n if (!value || !defaultData) {\n return false;\n }\n\n return JSON.stringify(value) === JSON.stringify(defaultData);\n}\n\nfunction shouldUseDefaultData(\n value: BrandDisplay | null,\n previousDefaultData: BrandDisplay | null,\n): boolean {\n return (\n !hasBrandDisplayData(value) ||\n isSameBrandDisplayData(value, previousDefaultData)\n );\n}\n\n@State<BrandDisplayStateModel>({\n name: 'brandDisplay',\n defaults: {\n brandDisplayData: {},\n draftBrandDisplayData: {},\n defaultBrandDisplayData: defaultBrandDisplayData,\n loadingActive: [],\n errors: {},\n },\n})\n@Injectable()\nexport class BrandDisplayState extends CrudStateBase<\n BrandDisplay,\n BrandDisplayStateModel,\n BrandDisplayActionKey\n> {\n private http = inject(HttpClient);\n\n // ============================================================================\n // Data Selectors - Fine-grained reactivity\n // ============================================================================\n @Selector()\n static getBrandDisplayData(\n state: BrandDisplayStateModel,\n ): BrandDisplay | null {\n return state.brandDisplayData;\n }\n\n @Selector()\n static getDefaultBrandDisplayData(\n state: BrandDisplayStateModel,\n ): BrandDisplay | null {\n return state.defaultBrandDisplayData;\n }\n\n @Selector()\n static getDraftBrandDisplayData(\n state: BrandDisplayStateModel,\n ): BrandDisplay | null {\n return state.draftBrandDisplayData;\n }\n\n // ============================================================================\n // Loading/Error Slice Selectors - Required for facade\n // ============================================================================\n @Selector()\n static getLoadingActive(state: BrandDisplayStateModel): string[] {\n return state.loadingActive;\n }\n\n @Selector()\n static getErrors(\n state: BrandDisplayStateModel,\n ): Record<string, string | null> {\n return state.errors;\n }\n\n // ============================================================================\n // Actions\n // ============================================================================\n @Action(UpdateBrandDisplayDataLocally)\n updateBrandDisplayDataLocally(\n ctx: StateContext<BrandDisplayStateModel>,\n { changes }: UpdateBrandDisplayDataLocally,\n ) {\n const state = ctx.getState();\n ctx.patchState({\n draftBrandDisplayData: { ...state.draftBrandDisplayData, ...changes },\n });\n }\n\n @Action(SetDefaultBrandDisplayData)\n setDefaultBrandDisplayData(\n ctx: StateContext<BrandDisplayStateModel>,\n { defaults }: SetDefaultBrandDisplayData,\n ) {\n const state = ctx.getState();\n const defaultData = mergeBrandDisplayData(\n defaultBrandDisplayData,\n defaults,\n );\n\n ctx.patchState({\n defaultBrandDisplayData: defaultData,\n brandDisplayData: shouldUseDefaultData(\n state.brandDisplayData,\n state.defaultBrandDisplayData,\n )\n ? defaultData\n : state.brandDisplayData,\n draftBrandDisplayData: shouldUseDefaultData(\n state.draftBrandDisplayData,\n state.defaultBrandDisplayData,\n )\n ? defaultData\n : state.draftBrandDisplayData,\n });\n }\n\n @Action(GetBrandDisplay)\n getBrandDisplay(ctx: StateContext<BrandDisplayStateModel>) {\n const req$ = this.http.get<Response<any>>('Settings/general');\n\n return handleApiRequest({\n ctx,\n key: BrandDisplayActionKey.GetBrandDisplay,\n request$: req$,\n onSuccess: (response, state) => {\n const Identity = response?.data?.find(\n (v: any) => v.key === 'Identity',\n )?.value;\n\n if (Identity) {\n const defaultData =\n state.defaultBrandDisplayData ?? defaultBrandDisplayData;\n // Ensure formWizardPosition always has a valid value\n const brandDisplayData = mergeBrandDisplayData(defaultData, {\n ...(Identity as BrandDisplay),\n login: {\n ...Identity.login,\n formWizardPosition:\n Identity.login?.formWizardPosition ||\n defaultData.login?.formWizardPosition,\n },\n });\n\n return {\n brandDisplayData,\n draftBrandDisplayData: brandDisplayData,\n };\n }\n return {\n brandDisplayData: state.defaultBrandDisplayData,\n draftBrandDisplayData: state.defaultBrandDisplayData,\n };\n },\n onError: (_error, state) => ({\n brandDisplayData: state.defaultBrandDisplayData,\n draftBrandDisplayData: state.defaultBrandDisplayData,\n }),\n errorMessage: 'Failed to load brand display',\n });\n }\n\n @Action(UpdateBrandDisplayData)\n updateBrandDisplayData(ctx: StateContext<BrandDisplayStateModel>) {\n const state = ctx.getState();\n const req$ = this.http.put<Response<BrandDisplay>>(\n 'Settings/UpdateSystemSettings',\n { values: [{ key: 'Identity', value: state.draftBrandDisplayData }] },\n );\n\n return handleApiRequest({\n ctx,\n key: BrandDisplayActionKey.UpdateBrandDisplay,\n request$: req$,\n onSuccess: (_response, state) => ({\n brandDisplayData: JSON.parse(\n JSON.stringify(state.draftBrandDisplayData),\n ),\n }),\n onError: () => {\n // Re-fetch on error\n ctx.dispatch(new GetBrandDisplay());\n return {};\n },\n errorMessage: 'Failed to update brand display',\n });\n }\n}\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\r\n class=\"flex flex-col gap-4 md:flex-row md:items-end md:justify-between\"\r\n >\r\n <div class=\"min-w-0\">\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 <div class=\"w-full md:w-auto\">\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 </div>\r\n @if (!loading()) {\r\n <router-outlet />\r\n } @else {\r\n <div class=\"mt-8 w-full max-w-[30rem]\">\r\n <p-skeleton width=\"100%\" height=\"3rem\" />\r\n </div>\r\n <div\r\n class=\"mt-4 grid gap-5 xl:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)]\"\r\n >\r\n <p-skeleton width=\"100%\" height=\"25rem\" />\r\n <p-skeleton width=\"100%\" 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('Settings/login-image/' + 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';\nimport { BrandDisplayFacade } from '../../store/brand-display';\nimport { changePrimaryColor } from '@masterteam/components';\nimport { changeTextColor } from '@masterteam/components';\nimport { changeBackgroundColor } from '@masterteam/components';\nimport { FaviconService } from './favicon.service';\n\nexport interface BackgroundStyles {\n 'background-color'?: string;\n 'background-image'?: string;\n 'background-repeat'?: string;\n 'background-size'?: string;\n 'background-position'?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ManageBrndingService {\n private readonly brandDisplay = inject(BrandDisplayFacade);\n private readonly faviconService = inject(FaviconService);\n\n readonly DEFAULT_DISPLAY_DATA: any =\n this.brandDisplay.defaultBrandDisplayData;\n readonly brandDisplayData = this.brandDisplay.brandDisplayData;\n readonly draftBrandDisplayData = this.brandDisplay.draftBrandDisplayData;\n\n readonly mainData = computed(() => this.brandDisplayData()?.main);\n readonly headerData = computed(() => this.brandDisplayData()?.header);\n readonly sidebarData = computed(() => this.brandDisplayData()?.sidebar);\n readonly contentAreaData = computed(\n () => this.brandDisplayData()?.contentArea,\n );\n readonly loginData = computed(() => this.brandDisplayData()?.login);\n readonly pageLayoutData = computed(() => this.brandDisplayData()?.pageLayout);\n readonly defaultFaviconPath = computed(() => {\n const defaultLogo = this.DEFAULT_DISPLAY_DATA()?.loginLogo;\n if (!defaultLogo) {\n return undefined;\n }\n\n return defaultLogo.startsWith('/') ? defaultLogo : `/${defaultLogo}`;\n });\n\n // Draft data computed signals for preview components\n readonly draftMainData = computed(() => this.draftBrandDisplayData()?.main);\n readonly draftHeaderData = computed(\n () => this.draftBrandDisplayData()?.header,\n );\n readonly draftSidebarData = computed(\n () => this.draftBrandDisplayData()?.sidebar,\n );\n readonly draftContentAreaData = computed(\n () => this.draftBrandDisplayData()?.contentArea,\n );\n readonly draftLoginData = computed(() => this.draftBrandDisplayData()?.login);\n readonly draftPageLayoutData = computed(\n () => this.draftBrandDisplayData()?.pageLayout,\n );\n\n // Images for main brandDisplayData\n readonly productBrandLogo = computed(() => {\n return this.mainData()?.logoSettings?.productBrandImage?.fileName;\n });\n\n readonly headerBackgroundImage = computed(() => {\n return this.headerData()?.backgroundImage?.fileName;\n });\n\n readonly sidebarBackgroundImage = computed(() => {\n return this.sidebarData()?.backgroundImage?.fileName;\n });\n\n readonly contentAreaBackgroundImage = computed(() => {\n return this.contentAreaData()?.backgroundImage?.fileName;\n });\n\n readonly loginBackgroundImage = computed(() => {\n return this.loginData()?.backgroundImage?.fileName;\n });\n\n // Images for draft data (preview)\n readonly draftProductBrandLogo = computed(() => {\n return this.draftMainData()?.logoSettings?.productBrandImage?.fileName;\n });\n\n readonly draftHeaderBackgroundImage = computed(() => {\n return this.draftHeaderData()?.backgroundImage?.fileName;\n });\n\n readonly draftSidebarBackgroundImage = computed(() => {\n return this.draftSidebarData()?.backgroundImage?.fileName;\n });\n\n readonly draftContentAreaBackgroundImage = computed(() => {\n return this.draftContentAreaData()?.backgroundImage?.fileName;\n });\n\n readonly draftLoginBackgroundImage = computed(() => {\n return this.draftLoginData()?.backgroundImage?.fileName;\n });\n\n readonly primaryColor = computed(\n () =>\n this.mainData()?.colorSettings?.primaryColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.primaryColor,\n );\n readonly textColor = computed(\n () =>\n this.mainData()?.colorSettings?.textColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\n );\n readonly backgroundColor = computed(\n () =>\n this.contentAreaData()?.backgroundColor ||\n this.DEFAULT_DISPLAY_DATA()?.contentArea?.backgroundColor,\n );\n\n readonly headerFontColor = computed(() => {\n return (\n this.headerData()?.fontColor ||\n this.DEFAULT_DISPLAY_DATA()?.header?.fontColor\n );\n });\n\n readonly sidebarIconColor = computed(() => {\n return (\n this.sidebarData()?.iconColor ||\n this.DEFAULT_DISPLAY_DATA()?.sidebar?.iconColor\n );\n });\n\n readonly contentAreaBodyColor = computed(\n () =>\n this.mainData()?.colorSettings?.textColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\n );\n\n // Colors and styles for draft data (preview)\n readonly draftPrimaryColor = computed(\n () =>\n this.draftMainData()?.colorSettings?.primaryColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.primaryColor,\n );\n\n readonly draftHeaderFontColor = computed(() => {\n return (\n this.draftHeaderData()?.fontColor ||\n this.DEFAULT_DISPLAY_DATA()?.header?.fontColor\n );\n });\n\n readonly draftSidebarIconColor = computed(() => {\n return (\n this.draftSidebarData()?.iconColor ||\n this.DEFAULT_DISPLAY_DATA()?.sidebar?.iconColor\n );\n });\n\n readonly draftContentAreaBodyColor = computed(\n () =>\n this.draftMainData()?.colorSettings?.textColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\n );\n\n constructor() {\n effect(() => {\n const favicon = this.mainData()?.logoSettings?.faviconsImage?.fileName;\n if (favicon) {\n this.faviconService.setFavicon(favicon);\n } else {\n this.faviconService.resetFavicon(this.defaultFaviconPath());\n }\n });\n effect(() => {\n const primaryColor = this.primaryColor();\n const textColor = this.textColor();\n const backgroundColor = this.backgroundColor();\n untracked(() => {\n if (primaryColor) {\n changePrimaryColor(primaryColor);\n }\n if (textColor) {\n changeTextColor(textColor);\n }\n if (backgroundColor) {\n changeBackgroundColor(backgroundColor);\n }\n });\n });\n effect(() => {\n const layout = this.pageLayoutData();\n const defaults = this.DEFAULT_DISPLAY_DATA()?.pageLayout;\n untracked(() => {\n const root = document.documentElement;\n root.style.setProperty(\n '--mt-cp-sidebar-bg',\n layout?.sidebarBackgroundColor ||\n defaults?.sidebarBackgroundColor ||\n '#EBEBF0',\n );\n root.style.setProperty(\n '--mt-cp-sidebar-text',\n layout?.sidebarTextColor || defaults?.sidebarTextColor || '#0a0a0a',\n );\n root.style.setProperty(\n '--mt-cp-header-bg',\n layout?.headerBackgroundColor ||\n defaults?.headerBackgroundColor ||\n '#ffffff',\n );\n root.style.setProperty(\n '--mt-cp-header-text',\n layout?.headerTextColor || defaults?.headerTextColor || '#0a0a0a',\n );\n root.style.setProperty(\n '--mt-cp-content-bg',\n layout?.contentBackgroundColor ||\n defaults?.contentBackgroundColor ||\n '#FFFFFF',\n );\n });\n });\n }\n\n buildBackgroundStyles(\n data:\n | {\n backgroundColor?: string;\n backgroundImage?: string;\n repeated?: boolean;\n }\n | undefined,\n defaultBgColor?: string,\n ): BackgroundStyles {\n const styles: BackgroundStyles = {};\n\n if (defaultBgColor && !data?.backgroundColor) {\n styles['background-color'] = defaultBgColor;\n }\n\n if (data?.backgroundColor) {\n styles['background-color'] = data.backgroundColor;\n }\n\n if (data?.backgroundImage) {\n if (data.repeated) {\n styles['background-repeat'] = 'repeat';\n styles['background-size'] = 'auto';\n } else {\n styles['background-repeat'] = 'no-repeat';\n styles['background-size'] = 'cover';\n styles['background-position'] = 'center';\n }\n }\n\n return styles;\n }\n\n getProductName(lang: 'en' | 'ar'): string {\n const name = this.mainData()?.productName;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productName?.[lang]\n );\n }\n\n getProductTagline(lang: 'en' | 'ar'): string {\n const name = this.mainData()?.productTagline;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productTagline?.[lang]\n );\n }\n\n // Draft versions for preview components\n getDraftProductName(lang: 'en' | 'ar'): string {\n const name = this.draftMainData()?.productName;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productName?.[lang]\n );\n }\n\n getDraftProductTagline(lang: 'en' | 'ar'): string {\n const name = this.draftMainData()?.productTagline;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productTagline?.[lang]\n );\n }\n}\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\nimport { Card } from '@masterteam/components/card';\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: [\r\n CommonModule,\r\n Button,\r\n Icon,\r\n TranslocoDirective,\r\n SecureImagePipe,\r\n Card,\r\n ],\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 = computed<SidebarPage[]>(() => [\r\n {\r\n title: this.translocoService.translate('brand-display.workspaces'),\r\n icon: 'custom.layer-6',\r\n path: '/control-panel/workspaces',\r\n },\r\n {\r\n title: this.translocoService.translate(\r\n 'brand-display.product-settings-nav',\r\n ),\r\n icon: 'media.monitor-01',\r\n path: '/control-panel/product-settings',\r\n },\r\n {\r\n title: this.translocoService.translate(\r\n 'brand-display.brand-settings-nav',\r\n ),\r\n icon: 'image.colors',\r\n path: '/control-panel/brand-settings',\r\n },\r\n {\r\n title: this.translocoService.translate('brand-display.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\r\n class=\"flex overflow-hidden rounded-lg border border-surface-300 bg-white\"\r\n >\r\n <div class=\"flex overflow-hidden bg-white rounded-s-md\">\r\n <div\r\n class=\"flex h-full w-14 shrink-0 flex-col items-center gap-3 border-e-1 border-surface-300 bg-cover bg-center px-1.5 py-4 sm:w-16 sm:px-2 sm:py-6\"\r\n [style]=\"sidebarStyles()\"\r\n [style.backgroundImage]=\"\r\n sidebarBackgroundImage()\r\n ? (sidebarBackgroundImage() | secureImage)\r\n : null\r\n \"\r\n >\r\n <div class=\"mb-2\">\r\n <mt-icon icon=\"general.menu-01\"></mt-icon>\r\n </div>\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 size-10 items-center justify-center rounded-xl transition-colors hover:bg-surface-100 sm:size-[47px]\"\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 </div>\r\n <div class=\"min-w-0 flex-1\">\r\n <div\r\n class=\"flex min-h-14 items-center justify-between gap-3 rounded-e-md bg-cover bg-center px-3 py-0\"\r\n [style]=\"headerStyles()\"\r\n [style.backgroundImage]=\"\r\n headerBackgroundImage()\r\n ? (headerBackgroundImage() | secureImage)\r\n : null\r\n \"\r\n >\r\n <div class=\"flex min-w-0 items-center gap-2\">\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-8 shrink-0\"\r\n />\r\n <div\r\n class=\"h-10 w-px shrink-0 sm:h-3/4\"\r\n [style.background-color]=\"headerFontColor()\"\r\n ></div>\r\n <div class=\"flex min-w-0 flex-col\">\r\n <h2\r\n class=\"truncate text-[8px] font-semibold sm:text-sm\"\r\n [style.color]=\"headerFontColor()\"\r\n >\r\n {{ productName() }}\r\n </h2>\r\n <span\r\n class=\"truncate text-[8px] font-semibold\"\r\n [style.color]=\"headerFontColor()\"\r\n >\r\n {{ productTagline() }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex shrink-0 items-center gap-2\">\r\n <mt-button\r\n icon=\"alert.bell-01\"\r\n severity=\"secondary\"\r\n variant=\"text\"\r\n [style.color]=\"headerFontColor()\"\r\n ></mt-button>\r\n </div>\r\n </div>\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=\"h-[16rem] overflow-x-hidden overflow-y-auto overscroll-y-auto bg-cover bg-center ps-3 pb-3 sm:h-[18rem]\"\r\n >\r\n <mt-card class=\"w-full h-full rounded-e-none!\">\r\n <p class=\"text-sm\">{{ t(\"preview-content\") }}</p>\r\n </mt-card>\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 } from '@angular/core';\r\nimport { TranslocoDirective } from '@jsverse/transloco';\r\nimport { Icon, MTIcon } from '@masterteam/icons';\r\nimport { ManageBrndingService } from '../../../services/manage-brnding.service';\r\n\r\n@Component({\r\n selector: 'mt-preview-layout-page',\r\n standalone: true,\r\n imports: [CommonModule, Icon, TranslocoDirective],\r\n templateUrl: './preview-layout-page.html',\r\n styleUrl: './preview-layout-page.scss',\r\n})\r\nexport class PreviewLayoutPage {\r\n private readonly manageBrnding = inject(ManageBrndingService);\r\n private readonly DEFAULT = this.manageBrnding.DEFAULT_DISPLAY_DATA;\r\n private readonly draft = this.manageBrnding.draftPageLayoutData;\r\n\r\n protected readonly headerBg = computed(\r\n () =>\r\n this.draft()?.headerBackgroundColor ||\r\n this.DEFAULT()?.pageLayout?.headerBackgroundColor ||\r\n '#ffffff',\r\n );\r\n protected readonly headerText = computed(\r\n () =>\r\n this.draft()?.headerTextColor ||\r\n this.DEFAULT()?.pageLayout?.headerTextColor ||\r\n '#0a0a0a',\r\n );\r\n protected readonly sidebarBg = computed(\r\n () =>\r\n this.draft()?.sidebarBackgroundColor ||\r\n this.DEFAULT()?.pageLayout?.sidebarBackgroundColor ||\r\n '#EBEBF0',\r\n );\r\n protected readonly sidebarText = computed(\r\n () =>\r\n this.draft()?.sidebarTextColor ||\r\n this.DEFAULT()?.pageLayout?.sidebarTextColor ||\r\n '#0a0a0a',\r\n );\r\n protected readonly contentBg = computed(\r\n () =>\r\n this.draft()?.contentBackgroundColor ||\r\n this.DEFAULT()?.pageLayout?.contentBackgroundColor ||\r\n '#FFFFFF',\r\n );\r\n\r\n protected readonly mockMenuItems: {\r\n icon: MTIcon;\r\n label: string;\r\n count: number;\r\n }[] = [\r\n { icon: 'general.building-02', label: 'preview-organizations', count: 12 },\r\n { icon: 'custom.user-pp', label: 'preview-users', count: 48 },\r\n { icon: 'alert.bell-02', label: 'preview-documents', count: 156 },\r\n { icon: 'general.settings-01', label: 'preview-settings', count: 7 },\r\n ];\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n\r\n <!-- Client Page Mockup -->\r\n <div\r\n class=\"overflow-hidden rounded-xl border border-surface-200 shadow-sm\"\r\n style=\"height: 420px\"\r\n >\r\n <div class=\"flex h-full\">\r\n <!-- Left Sidebar -->\r\n <div\r\n class=\"flex w-49 shrink-0 flex-col overflow-hidden\"\r\n [style.background-color]=\"sidebarBg()\"\r\n >\r\n <!-- Sidebar Header -->\r\n <div class=\"flex items-center gap-2 border-b border-black/10 px-4 py-3\">\r\n <mt-icon [icon]=\"'general.settings-01'\" />\r\n <span class=\"text-xs font-semibold\" [style.color]=\"sidebarText()\">{{\r\n t(\"preview-settings\")\r\n }}</span>\r\n </div>\r\n\r\n <!-- Sidebar Items -->\r\n <div class=\"flex-1 overflow-y-auto p-2\">\r\n @for (item of mockMenuItems; track item.label) {\r\n <div\r\n class=\"mb-1 flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 transition-colors hover:bg-black/5\"\r\n >\r\n <div class=\"p-1.5 bg-surface-100 flex items-center rounded-xs\">\r\n <mt-icon [icon]=\"item.icon\" />\r\n </div>\r\n <span\r\n [style.color]=\"sidebarText()\"\r\n class=\"min-w-0 flex-1 truncate text-xs font-medium\"\r\n >{{ t(item.label) }}</span\r\n >\r\n <span\r\n [style.color]=\"headerText()\"\r\n class=\"shrink-0 rounded-full px-1.5 py-0.5 text-[10px] font-semibold opacity-60\"\r\n [style.background-color]=\"sidebarText() + '22'\"\r\n >{{ item.count }}</span\r\n >\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- Right Panel -->\r\n <div class=\"flex min-w-0 flex-1 flex-col overflow-hidden\">\r\n <!-- Right Header -->\r\n <div\r\n class=\"flex shrink-0 items-center justify-between border-b border-black/10 px-4 py-3\"\r\n [style.background-color]=\"headerBg()\"\r\n >\r\n <div class=\"flex items-center gap-2\">\r\n <div class=\"p-1.5 bg-surface-100 flex items-center rounded-xs\">\r\n <mt-icon [icon]=\"'general.building-02'\" />\r\n </div>\r\n\r\n <span class=\"text-xs font-semibold\" [style.color]=\"headerText()\">{{\r\n t(\"preview-organizations\")\r\n }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Right Content -->\r\n <div\r\n class=\"flex-1 overflow-y-auto p-4\"\r\n [style.background-color]=\"contentBg()\"\r\n >\r\n <div class=\"flex flex-col gap-2\">\r\n @for (i of [1, 2, 3, 4, 5]; track i) {\r\n <div\r\n class=\"rounded-lg bg-surface-100 px-3 py-2.5 text-xs text-surface-600 border border-surface-200\"\r\n >\r\n {{ t(\"preview-content-row\") }} {{ i }}\r\n </div>\r\n }\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 { 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\nimport { PreviewLayoutPage } from '../preview-layout-page/preview-layout-page';\r\n\r\n@Component({\r\n selector: 'mt-white-label',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n Tabs,\r\n RouterOutlet,\r\n PreviewBrand,\r\n PreviewLayoutPage,\r\n TranslocoDirective,\r\n ],\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 readonly isPageLayoutTab = computed(\r\n () => this.selectedTab() === 'page-layout',\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 label: this.translocoService.translate('brand-display.page-layout'),\r\n value: 'page-layout',\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 overflow-x-auto pb-1\">\r\n <mt-tabs\r\n class=\"min-w-max\"\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\r\n class=\"mt-4 grid min-h-0 gap-6 xl:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)] xl:gap-10\"\r\n >\r\n <div class=\"min-w-0\">\r\n <router-outlet />\r\n </div>\r\n <div class=\"min-w-0 xl:sticky xl:top-4 xl:self-start\">\r\n @if (isPageLayoutTab()) {\r\n <mt-preview-layout-page />\r\n } @else {\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n <mt-preview-brand></mt-preview-brand>\r\n }\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 previewTextColor = computed(() => {\r\n const value = this.manageBrnding.draftLoginData();\r\n return value?.textColor || this.DEFAULT_DISPLAY_DATA()?.login?.textColor;\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: 'brand-display'\">\r\n <div class=\"xl:sticky xl:top-4\">\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n <div\r\n class=\"relative overflow-hidden rounded-lg aspect-[4/5] sm:aspect-[16/10]\"\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\r\n class=\"absolute inset-0 flex items-center p-4 max-[640px]:flex-col max-[640px]:justify-center max-[640px]:gap-4 sm:p-8\"\r\n >\r\n @if (previewFormPosition() !== \"center\") {\r\n <div\r\n class=\"logo flex min-w-0 mx-auto flex-col items-start gap-2 max-[640px]:order-1 max-[640px]:w-full max-[640px]:flex-none\"\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-8 sm:h-12 sm:w-12\"\r\n />\r\n <div\r\n class=\"text-center text-base text-white text-xs\"\r\n [style.color]=\"previewTextColor()\"\r\n >\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 max-[640px]:order-2 max-[640px]:w-full\"\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-8 sm:h-12 sm:w-12\"\r\n />\r\n <div\r\n class=\"text-center text-base text-white text-xs\"\r\n [style.color]=\"previewTextColor()\"\r\n >\r\n {{ t(\"portfolio-management-system\") }}\r\n </div>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"glass-card relative z-10 w-full max-w-[15rem] rounded-lg px-4 py-3 sm:w-60 sm:px-6\"\r\n [style.color]=\"previewTextColor()\"\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]\">{{ 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 mb-1\">{{\r\n t(\"username\")\r\n }}</label>\r\n <div\r\n class=\"text-[8px] rounded px-3 py-2 bg-white/90 text-gray-600!\"\r\n >\r\n {{ t(\"username\") }}\r\n </div>\r\n </div>\r\n <div>\r\n <label class=\"text-[8px] block mb-1\">{{ t(\"password\") }}</label>\r\n <div\r\n class=\"text-[8px] rounded px-3 py-2 bg-white/90 text-gray-600!\"\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\">\r\n {{ t(\"language-toggle\") }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center mt-3 text-[8px]\">\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 textColor: this.DEFAULT_DISPLAY_DATA()?.login?.textColor,\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 {\r\n key: 'textColor',\r\n type: 'color-picker',\r\n label: this.translocoService.translate('brand-display.text-color'),\r\n order: 4,\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\r\n class=\"mt-6 grid min-h-0 gap-6 xl:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)] xl:gap-10\"\r\n >\r\n <!-- Left Side - Login Settings -->\r\n <div class=\"min-w-0\">\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=\"min-w-0 xl:sticky xl:top-4 xl:self-start\">\r\n <mt-preview-login></mt-preview-login>\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 ColorPickerFieldConfig,\r\n DynamicFormConfig,\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-page-layout-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: './page-layout-display.html',\r\n styleUrl: './page-layout-display.scss',\r\n})\r\nexport default class PageLayoutDisplay 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\r\n pageLayoutFormControl: any = new FormControl({\r\n headerBackgroundColor:\r\n this.DEFAULT_DISPLAY_DATA()?.pageLayout?.headerBackgroundColor,\r\n headerTextColor: this.DEFAULT_DISPLAY_DATA()?.pageLayout?.headerTextColor,\r\n sidebarBackgroundColor:\r\n this.DEFAULT_DISPLAY_DATA()?.pageLayout?.sidebarBackgroundColor,\r\n sidebarTextColor: this.DEFAULT_DISPLAY_DATA()?.pageLayout?.sidebarTextColor,\r\n contentBackgroundColor:\r\n this.DEFAULT_DISPLAY_DATA()?.pageLayout?.contentBackgroundColor,\r\n });\r\n\r\n ngOnInit(): void {\r\n const localFormData = {\r\n ...this.pageLayoutFormControl.value,\r\n ...this.brandDisplayData()?.pageLayout,\r\n };\r\n this.pageLayoutFormControl.patchValue(localFormData, { emitEvent: false });\r\n this.pageLayoutFormControl.valueChanges.subscribe((value: any) => {\r\n this.facade.updateBrandDisplayDataLocally({\r\n pageLayout: {\r\n headerBackgroundColor: value.headerBackgroundColor,\r\n headerTextColor: value.headerTextColor,\r\n sidebarBackgroundColor: value.sidebarBackgroundColor,\r\n sidebarTextColor: value.sidebarTextColor,\r\n contentBackgroundColor: value.contentBackgroundColor,\r\n },\r\n });\r\n });\r\n }\r\n\r\n pageLayoutConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'pageLayoutSection',\r\n label: '',\r\n type: 'none',\r\n order: 1,\r\n fields: [\r\n new ColorPickerFieldConfig({\r\n key: 'headerBackgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.header-background-color',\r\n ),\r\n order: 3,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'headerTextColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.header-text-color',\r\n ),\r\n order: 4,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'sidebarBackgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.side-bar-background-color',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'sidebarTextColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.side-bar-text-color',\r\n ),\r\n order: 2,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'contentBackgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.content-background-color',\r\n ),\r\n order: 5,\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=\"page-layout\" [title]=\"t('page-layout')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"pageLayoutConfig()\"\r\n [formControl]=\"pageLayoutFormControl\"\r\n />\r\n </form>\r\n </mt-card>\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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"}
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.config.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/preview-layout-page/preview-layout-page.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/preview-layout-page/preview-layout-page.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/lib/brand-display/pages/page-layout-display/page-layout-display.ts","../../../../packages/masterteam/brand-display/src/lib/brand-display/pages/page-layout-display/page-layout-display.html","../../../../packages/masterteam/brand-display/src/masterteam-brand-display.ts"],"sourcesContent":["import {\n BrandDisplay,\n BrandDisplayDefaultOverrides,\n} from './brand-display.model';\n\nexport class GetBrandDisplay {\n static readonly type = '[BrandDisplay] Get Brand Display';\n}\n\nexport class UpdateBrandDisplayData {\n static readonly type = '[BrandDisplay] Update Brand Display Data';\n}\nexport class UpdateBrandDisplayDataLocally {\n static readonly type = '[BrandDisplay] Update Brand Display Data Locally';\n constructor(public changes: BrandDisplay) {}\n}\n\nexport class SetDefaultBrandDisplayData {\n static readonly type = '[BrandDisplay] Set Default Brand Display Data';\n constructor(public defaults: BrandDisplayDefaultOverrides) {}\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n inject,\n makeEnvironmentProviders,\n provideAppInitializer,\n} from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { SetDefaultBrandDisplayData } from './brand-display.actions';\nimport { BrandDisplayOptions } from './brand-display.model';\n\nconst defaultBrandDisplayOptions: BrandDisplayOptions = {};\n\nexport const MT_BRAND_DISPLAY_OPTIONS = new InjectionToken<BrandDisplayOptions>(\n 'MT_BRAND_DISPLAY_OPTIONS',\n {\n providedIn: 'root',\n factory: () => defaultBrandDisplayOptions,\n },\n);\n\nexport function provideMTBrandDisplay(\n options: BrandDisplayOptions = defaultBrandDisplayOptions,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: MT_BRAND_DISPLAY_OPTIONS,\n useValue: options,\n },\n provideAppInitializer(() => {\n const brandDisplayOptions = inject(MT_BRAND_DISPLAY_OPTIONS);\n\n if (!brandDisplayOptions.defaultData) {\n return;\n }\n\n return inject(Store).dispatch(\n new SetDefaultBrandDisplayData(brandDisplayOptions.defaultData),\n );\n }),\n ]);\n}\n","import { LoadingStateShape } from '@masterteam/components';\n\nexport interface LogoSettings {\n loginBrandImage?: any;\n productBrandImage?: any;\n faviconsImage?: any;\n}\n\nexport interface ColorSettings {\n primaryColor?: string;\n secondaryColor?: string;\n textColor?: string;\n}\n\nexport interface MainDisplay {\n productName?: { en: string; ar: string };\n productTagline?: { en: string; ar: string };\n logoSettings?: LogoSettings;\n colorSettings?: ColorSettings;\n}\n\nexport interface SidebarDisplay {\n backgroundColor?: string;\n backgroundImage?: any;\n iconColor?: string;\n repeated?: boolean;\n}\n\nexport interface HeaderDisplay {\n backgroundColor?: string;\n backgroundImage?: any;\n fontColor?: string;\n repeated?: boolean;\n}\n\nexport interface ContentAreaDisplay {\n backgroundColor?: string;\n backgroundImage?: any;\n repeated?: boolean;\n}\n\nexport interface LoginDisplay {\n loginBrandLogo?: string;\n backgroundColor?: string;\n textColor?: string;\n backgroundImage?: any;\n loginBrandImage?: any;\n repeated?: boolean;\n formWizardPosition?: 'start' | 'end' | 'center';\n}\n\nexport interface PageLayoutDisplay {\n headerBackgroundColor?: string;\n headerTextColor?: string;\n sidebarBackgroundColor?: string;\n sidebarTextColor?: string;\n contentBackgroundColor?: string;\n}\n\nexport interface BrandDisplay {\n main?: MainDisplay;\n sidebar?: SidebarDisplay;\n header?: HeaderDisplay;\n contentArea?: ContentAreaDisplay;\n login?: LoginDisplay;\n pageLayout?: PageLayoutDisplay;\n loginLogo?: string;\n brandLogoWhite?: string;\n}\n\nexport type DeepPartial<T> = {\n [K in keyof T]?: T[K] extends Array<infer U>\n ? Array<DeepPartial<U>>\n : T[K] extends object\n ? DeepPartial<T[K]>\n : T[K];\n};\n\nexport type BrandDisplayDefaultOverrides = DeepPartial<BrandDisplay>;\n\nexport interface BrandDisplayOptions {\n defaultData?: BrandDisplayDefaultOverrides;\n}\n\nexport enum BrandDisplayActionKey {\n GetBrandDisplay = 'getBrandDisplay',\n UpdateBrandDisplay = 'updateBrandDisplay',\n}\n\nexport interface BrandDisplayStateModel extends LoadingStateShape<BrandDisplayActionKey> {\n brandDisplayData: BrandDisplay | null;\n draftBrandDisplayData: BrandDisplay | null;\n defaultBrandDisplayData: BrandDisplay | null;\n}\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: '#00313F',\r\n textColor: '#ffffff',\r\n repeated: false,\r\n formWizardPosition: 'start',\r\n },\r\n\r\n pageLayout: {\r\n headerBackgroundColor: '#ffffff',\r\n headerTextColor: '#0a0a0a',\r\n sidebarBackgroundColor: '#EBEBF0',\r\n sidebarTextColor: '#0a0a0a',\r\n contentBackgroundColor: '#ffffff',\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';\nimport {\n GetBrandDisplay,\n SetDefaultBrandDisplayData,\n UpdateBrandDisplayData,\n UpdateBrandDisplayDataLocally,\n} from './brand-display.actions';\nimport {\n BrandDisplay,\n BrandDisplayActionKey,\n BrandDisplayDefaultOverrides,\n BrandDisplayStateModel,\n} from './brand-display.model';\nimport { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport {\n CrudStateBase,\n handleApiRequest,\n Response,\n} from '@masterteam/components';\nimport { defaultBrandDisplayData } from './brand-display-default-data';\n\ntype UnknownRecord = Record<string, unknown>;\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction mergeRecords(\n base: UnknownRecord,\n overrides?: UnknownRecord | null,\n): UnknownRecord {\n const result: UnknownRecord = { ...base };\n\n if (!overrides) {\n return result;\n }\n\n for (const [key, value] of Object.entries(overrides)) {\n if (value === undefined) {\n continue;\n }\n\n const baseValue = result[key];\n result[key] =\n isRecord(baseValue) && isRecord(value)\n ? mergeRecords(baseValue, value)\n : value;\n }\n\n return result;\n}\n\nfunction mergeBrandDisplayData(\n base: BrandDisplay,\n overrides?: BrandDisplayDefaultOverrides | BrandDisplay | null,\n): BrandDisplay {\n return mergeRecords(\n base as UnknownRecord,\n overrides as UnknownRecord | null | undefined,\n ) as BrandDisplay;\n}\n\nfunction hasBrandDisplayData(value: BrandDisplay | null): boolean {\n return value !== null && Object.keys(value).length > 0;\n}\n\nfunction isSameBrandDisplayData(\n value: BrandDisplay | null,\n defaultData: BrandDisplay | null,\n): boolean {\n if (!value || !defaultData) {\n return false;\n }\n\n return JSON.stringify(value) === JSON.stringify(defaultData);\n}\n\nfunction shouldUseDefaultData(\n value: BrandDisplay | null,\n previousDefaultData: BrandDisplay | null,\n): boolean {\n return (\n !hasBrandDisplayData(value) ||\n isSameBrandDisplayData(value, previousDefaultData)\n );\n}\n\n@State<BrandDisplayStateModel>({\n name: 'brandDisplay',\n defaults: {\n brandDisplayData: {},\n draftBrandDisplayData: {},\n defaultBrandDisplayData: defaultBrandDisplayData,\n loadingActive: [],\n errors: {},\n },\n})\n@Injectable()\nexport class BrandDisplayState extends CrudStateBase<\n BrandDisplay,\n BrandDisplayStateModel,\n BrandDisplayActionKey\n> {\n private http = inject(HttpClient);\n\n // ============================================================================\n // Data Selectors - Fine-grained reactivity\n // ============================================================================\n @Selector()\n static getBrandDisplayData(\n state: BrandDisplayStateModel,\n ): BrandDisplay | null {\n return state.brandDisplayData;\n }\n\n @Selector()\n static getDefaultBrandDisplayData(\n state: BrandDisplayStateModel,\n ): BrandDisplay | null {\n return state.defaultBrandDisplayData;\n }\n\n @Selector()\n static getDraftBrandDisplayData(\n state: BrandDisplayStateModel,\n ): BrandDisplay | null {\n return state.draftBrandDisplayData;\n }\n\n // ============================================================================\n // Loading/Error Slice Selectors - Required for facade\n // ============================================================================\n @Selector()\n static getLoadingActive(state: BrandDisplayStateModel): string[] {\n return state.loadingActive;\n }\n\n @Selector()\n static getErrors(\n state: BrandDisplayStateModel,\n ): Record<string, string | null> {\n return state.errors;\n }\n\n // ============================================================================\n // Actions\n // ============================================================================\n @Action(UpdateBrandDisplayDataLocally)\n updateBrandDisplayDataLocally(\n ctx: StateContext<BrandDisplayStateModel>,\n { changes }: UpdateBrandDisplayDataLocally,\n ) {\n const state = ctx.getState();\n ctx.patchState({\n draftBrandDisplayData: { ...state.draftBrandDisplayData, ...changes },\n });\n }\n\n @Action(SetDefaultBrandDisplayData)\n setDefaultBrandDisplayData(\n ctx: StateContext<BrandDisplayStateModel>,\n { defaults }: SetDefaultBrandDisplayData,\n ) {\n const state = ctx.getState();\n const defaultData = mergeBrandDisplayData(\n defaultBrandDisplayData,\n defaults,\n );\n\n ctx.patchState({\n defaultBrandDisplayData: defaultData,\n brandDisplayData: shouldUseDefaultData(\n state.brandDisplayData,\n state.defaultBrandDisplayData,\n )\n ? defaultData\n : state.brandDisplayData,\n draftBrandDisplayData: shouldUseDefaultData(\n state.draftBrandDisplayData,\n state.defaultBrandDisplayData,\n )\n ? defaultData\n : state.draftBrandDisplayData,\n });\n }\n\n @Action(GetBrandDisplay)\n getBrandDisplay(ctx: StateContext<BrandDisplayStateModel>) {\n const req$ = this.http.get<Response<any>>('Settings/general');\n\n return handleApiRequest({\n ctx,\n key: BrandDisplayActionKey.GetBrandDisplay,\n request$: req$,\n onSuccess: (response, state) => {\n const Identity = response?.data?.find(\n (v: any) => v.key === 'Identity',\n )?.value;\n\n if (Identity) {\n const defaultData =\n state.defaultBrandDisplayData ?? defaultBrandDisplayData;\n // Ensure formWizardPosition always has a valid value\n const brandDisplayData = mergeBrandDisplayData(defaultData, {\n ...(Identity as BrandDisplay),\n login: {\n ...Identity.login,\n formWizardPosition:\n Identity.login?.formWizardPosition ||\n defaultData.login?.formWizardPosition,\n },\n });\n\n return {\n brandDisplayData,\n draftBrandDisplayData: brandDisplayData,\n };\n }\n return {\n brandDisplayData: state.defaultBrandDisplayData,\n draftBrandDisplayData: state.defaultBrandDisplayData,\n };\n },\n onError: (_error, state) => ({\n brandDisplayData: state.defaultBrandDisplayData,\n draftBrandDisplayData: state.defaultBrandDisplayData,\n }),\n errorMessage: 'Failed to load brand display',\n });\n }\n\n @Action(UpdateBrandDisplayData)\n updateBrandDisplayData(ctx: StateContext<BrandDisplayStateModel>) {\n const state = ctx.getState();\n const req$ = this.http.put<Response<BrandDisplay>>(\n 'Settings/UpdateSystemSettings',\n { values: [{ key: 'Identity', value: state.draftBrandDisplayData }] },\n );\n\n return handleApiRequest({\n ctx,\n key: BrandDisplayActionKey.UpdateBrandDisplay,\n request$: req$,\n onSuccess: (_response, state) => ({\n brandDisplayData: JSON.parse(\n JSON.stringify(state.draftBrandDisplayData),\n ),\n }),\n onError: () => {\n // Re-fetch on error\n ctx.dispatch(new GetBrandDisplay());\n return {};\n },\n errorMessage: 'Failed to update brand display',\n });\n }\n}\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\r\n class=\"flex flex-col gap-4 md:flex-row md:items-end md:justify-between\"\r\n >\r\n <div class=\"min-w-0\">\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 <div class=\"w-full md:w-auto\">\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 </div>\r\n @if (!loading()) {\r\n <router-outlet />\r\n } @else {\r\n <div class=\"mt-8 w-full max-w-[30rem]\">\r\n <p-skeleton width=\"100%\" height=\"3rem\" />\r\n </div>\r\n <div\r\n class=\"mt-4 grid gap-5 xl:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)]\"\r\n >\r\n <p-skeleton width=\"100%\" height=\"25rem\" />\r\n <p-skeleton width=\"100%\" 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('Settings/login-image/' + 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';\nimport { BrandDisplayFacade } from '../../store/brand-display';\nimport { changePrimaryColor } from '@masterteam/components';\nimport { changeTextColor } from '@masterteam/components';\nimport { changeBackgroundColor } from '@masterteam/components';\nimport { FaviconService } from './favicon.service';\n\nexport interface BackgroundStyles {\n 'background-color'?: string;\n 'background-image'?: string;\n 'background-repeat'?: string;\n 'background-size'?: string;\n 'background-position'?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ManageBrndingService {\n private readonly brandDisplay = inject(BrandDisplayFacade);\n private readonly faviconService = inject(FaviconService);\n\n readonly DEFAULT_DISPLAY_DATA: any =\n this.brandDisplay.defaultBrandDisplayData;\n readonly brandDisplayData = this.brandDisplay.brandDisplayData;\n readonly draftBrandDisplayData = this.brandDisplay.draftBrandDisplayData;\n\n readonly mainData = computed(() => this.brandDisplayData()?.main);\n readonly headerData = computed(() => this.brandDisplayData()?.header);\n readonly sidebarData = computed(() => this.brandDisplayData()?.sidebar);\n readonly contentAreaData = computed(\n () => this.brandDisplayData()?.contentArea,\n );\n readonly loginData = computed(() => this.brandDisplayData()?.login);\n readonly pageLayoutData = computed(() => this.brandDisplayData()?.pageLayout);\n readonly defaultFaviconPath = computed(() => {\n const defaultLogo = this.DEFAULT_DISPLAY_DATA()?.loginLogo;\n if (!defaultLogo) {\n return undefined;\n }\n\n return defaultLogo.startsWith('/') ? defaultLogo : `/${defaultLogo}`;\n });\n\n // Draft data computed signals for preview components\n readonly draftMainData = computed(() => this.draftBrandDisplayData()?.main);\n readonly draftHeaderData = computed(\n () => this.draftBrandDisplayData()?.header,\n );\n readonly draftSidebarData = computed(\n () => this.draftBrandDisplayData()?.sidebar,\n );\n readonly draftContentAreaData = computed(\n () => this.draftBrandDisplayData()?.contentArea,\n );\n readonly draftLoginData = computed(() => this.draftBrandDisplayData()?.login);\n readonly draftPageLayoutData = computed(\n () => this.draftBrandDisplayData()?.pageLayout,\n );\n\n // Images for main brandDisplayData\n readonly productBrandLogo = computed(() => {\n return this.mainData()?.logoSettings?.productBrandImage?.fileName;\n });\n\n readonly headerBackgroundImage = computed(() => {\n return this.headerData()?.backgroundImage?.fileName;\n });\n\n readonly sidebarBackgroundImage = computed(() => {\n return this.sidebarData()?.backgroundImage?.fileName;\n });\n\n readonly contentAreaBackgroundImage = computed(() => {\n return this.contentAreaData()?.backgroundImage?.fileName;\n });\n\n readonly loginBackgroundImage = computed(() => {\n return this.loginData()?.backgroundImage?.fileName;\n });\n\n // Images for draft data (preview)\n readonly draftProductBrandLogo = computed(() => {\n return this.draftMainData()?.logoSettings?.productBrandImage?.fileName;\n });\n\n readonly draftHeaderBackgroundImage = computed(() => {\n return this.draftHeaderData()?.backgroundImage?.fileName;\n });\n\n readonly draftSidebarBackgroundImage = computed(() => {\n return this.draftSidebarData()?.backgroundImage?.fileName;\n });\n\n readonly draftContentAreaBackgroundImage = computed(() => {\n return this.draftContentAreaData()?.backgroundImage?.fileName;\n });\n\n readonly draftLoginBackgroundImage = computed(() => {\n return this.draftLoginData()?.backgroundImage?.fileName;\n });\n\n readonly primaryColor = computed(\n () =>\n this.mainData()?.colorSettings?.primaryColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.primaryColor,\n );\n readonly textColor = computed(\n () =>\n this.mainData()?.colorSettings?.textColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\n );\n readonly backgroundColor = computed(\n () =>\n this.contentAreaData()?.backgroundColor ||\n this.DEFAULT_DISPLAY_DATA()?.contentArea?.backgroundColor,\n );\n\n readonly headerFontColor = computed(() => {\n return (\n this.headerData()?.fontColor ||\n this.DEFAULT_DISPLAY_DATA()?.header?.fontColor\n );\n });\n\n readonly sidebarIconColor = computed(() => {\n return (\n this.sidebarData()?.iconColor ||\n this.DEFAULT_DISPLAY_DATA()?.sidebar?.iconColor\n );\n });\n\n readonly contentAreaBodyColor = computed(\n () =>\n this.mainData()?.colorSettings?.textColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\n );\n\n // Colors and styles for draft data (preview)\n readonly draftPrimaryColor = computed(\n () =>\n this.draftMainData()?.colorSettings?.primaryColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.primaryColor,\n );\n\n readonly draftHeaderFontColor = computed(() => {\n return (\n this.draftHeaderData()?.fontColor ||\n this.DEFAULT_DISPLAY_DATA()?.header?.fontColor\n );\n });\n\n readonly draftSidebarIconColor = computed(() => {\n return (\n this.draftSidebarData()?.iconColor ||\n this.DEFAULT_DISPLAY_DATA()?.sidebar?.iconColor\n );\n });\n\n readonly draftContentAreaBodyColor = computed(\n () =>\n this.draftMainData()?.colorSettings?.textColor ||\n this.DEFAULT_DISPLAY_DATA()?.main?.colorSettings?.textColor,\n );\n\n constructor() {\n effect(() => {\n const favicon = this.mainData()?.logoSettings?.faviconsImage?.fileName;\n if (favicon) {\n this.faviconService.setFavicon(favicon);\n } else {\n this.faviconService.resetFavicon(this.defaultFaviconPath());\n }\n });\n effect(() => {\n const primaryColor = this.primaryColor();\n const textColor = this.textColor();\n const backgroundColor = this.backgroundColor();\n untracked(() => {\n if (primaryColor) {\n changePrimaryColor(primaryColor);\n }\n if (textColor) {\n changeTextColor(textColor);\n }\n if (backgroundColor) {\n changeBackgroundColor(backgroundColor);\n }\n });\n });\n effect(() => {\n const layout = this.pageLayoutData();\n const defaults = this.DEFAULT_DISPLAY_DATA()?.pageLayout;\n untracked(() => {\n const root = document.documentElement;\n root.style.setProperty(\n '--mt-cp-sidebar-bg',\n layout?.sidebarBackgroundColor ||\n defaults?.sidebarBackgroundColor ||\n '#EBEBF0',\n );\n root.style.setProperty(\n '--mt-cp-sidebar-text',\n layout?.sidebarTextColor || defaults?.sidebarTextColor || '#0a0a0a',\n );\n root.style.setProperty(\n '--mt-cp-header-bg',\n layout?.headerBackgroundColor ||\n defaults?.headerBackgroundColor ||\n '#ffffff',\n );\n root.style.setProperty(\n '--mt-cp-header-text',\n layout?.headerTextColor || defaults?.headerTextColor || '#0a0a0a',\n );\n root.style.setProperty(\n '--mt-cp-content-bg',\n layout?.contentBackgroundColor ||\n defaults?.contentBackgroundColor ||\n '#FFFFFF',\n );\n });\n });\n }\n\n buildBackgroundStyles(\n data:\n | {\n backgroundColor?: string;\n backgroundImage?: string;\n repeated?: boolean;\n }\n | undefined,\n defaultBgColor?: string,\n ): BackgroundStyles {\n const styles: BackgroundStyles = {};\n\n if (defaultBgColor && !data?.backgroundColor) {\n styles['background-color'] = defaultBgColor;\n }\n\n if (data?.backgroundColor) {\n styles['background-color'] = data.backgroundColor;\n }\n\n if (data?.backgroundImage) {\n if (data.repeated) {\n styles['background-repeat'] = 'repeat';\n styles['background-size'] = 'auto';\n } else {\n styles['background-repeat'] = 'no-repeat';\n styles['background-size'] = 'cover';\n styles['background-position'] = 'center';\n }\n }\n\n return styles;\n }\n\n getProductName(lang: 'en' | 'ar'): string {\n const name = this.mainData()?.productName;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productName?.[lang]\n );\n }\n\n getProductTagline(lang: 'en' | 'ar'): string {\n const name = this.mainData()?.productTagline;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productTagline?.[lang]\n );\n }\n\n // Draft versions for preview components\n getDraftProductName(lang: 'en' | 'ar'): string {\n const name = this.draftMainData()?.productName;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productName?.[lang]\n );\n }\n\n getDraftProductTagline(lang: 'en' | 'ar'): string {\n const name = this.draftMainData()?.productTagline;\n return (\n name?.[lang] || this.DEFAULT_DISPLAY_DATA()?.main?.productTagline?.[lang]\n );\n }\n}\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\nimport { Card } from '@masterteam/components/card';\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: [\r\n CommonModule,\r\n Button,\r\n Icon,\r\n TranslocoDirective,\r\n SecureImagePipe,\r\n Card,\r\n ],\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 = computed<SidebarPage[]>(() => [\r\n {\r\n title: this.translocoService.translate('brand-display.workspaces'),\r\n icon: 'custom.layer-6',\r\n path: '/control-panel/workspaces',\r\n },\r\n {\r\n title: this.translocoService.translate(\r\n 'brand-display.product-settings-nav',\r\n ),\r\n icon: 'media.monitor-01',\r\n path: '/control-panel/product-settings',\r\n },\r\n {\r\n title: this.translocoService.translate(\r\n 'brand-display.brand-settings-nav',\r\n ),\r\n icon: 'image.colors',\r\n path: '/control-panel/brand-settings',\r\n },\r\n {\r\n title: this.translocoService.translate('brand-display.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\r\n class=\"flex overflow-hidden rounded-lg border border-surface-300 bg-white\"\r\n >\r\n <div class=\"flex overflow-hidden bg-white rounded-s-md\">\r\n <div\r\n class=\"flex h-full w-14 shrink-0 flex-col items-center gap-3 border-e-1 border-surface-300 bg-cover bg-center px-1.5 py-4 sm:w-16 sm:px-2 sm:py-6\"\r\n [style]=\"sidebarStyles()\"\r\n [style.backgroundImage]=\"\r\n sidebarBackgroundImage()\r\n ? (sidebarBackgroundImage() | secureImage)\r\n : null\r\n \"\r\n >\r\n <div class=\"mb-2\">\r\n <mt-icon icon=\"general.menu-01\"></mt-icon>\r\n </div>\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 size-10 items-center justify-center rounded-xl transition-colors hover:bg-surface-100 sm:size-[47px]\"\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 </div>\r\n <div class=\"min-w-0 flex-1\">\r\n <div\r\n class=\"flex min-h-14 items-center justify-between gap-3 rounded-e-md bg-cover bg-center px-3 py-0\"\r\n [style]=\"headerStyles()\"\r\n [style.backgroundImage]=\"\r\n headerBackgroundImage()\r\n ? (headerBackgroundImage() | secureImage)\r\n : null\r\n \"\r\n >\r\n <div class=\"flex min-w-0 items-center gap-2\">\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-8 shrink-0\"\r\n />\r\n <div\r\n class=\"h-10 w-px shrink-0 sm:h-3/4\"\r\n [style.background-color]=\"headerFontColor()\"\r\n ></div>\r\n <div class=\"flex min-w-0 flex-col\">\r\n <h2\r\n class=\"truncate text-[8px] font-semibold sm:text-sm\"\r\n [style.color]=\"headerFontColor()\"\r\n >\r\n {{ productName() }}\r\n </h2>\r\n <span\r\n class=\"truncate text-[8px] font-semibold\"\r\n [style.color]=\"headerFontColor()\"\r\n >\r\n {{ productTagline() }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex shrink-0 items-center gap-2\">\r\n <mt-button\r\n icon=\"alert.bell-01\"\r\n severity=\"secondary\"\r\n variant=\"text\"\r\n [style.color]=\"headerFontColor()\"\r\n ></mt-button>\r\n </div>\r\n </div>\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=\"h-[16rem] overflow-x-hidden overflow-y-auto overscroll-y-auto bg-cover bg-center ps-3 pb-3 sm:h-[18rem]\"\r\n >\r\n <mt-card class=\"w-full h-full rounded-e-none!\">\r\n <p class=\"text-sm\">{{ t(\"preview-content\") }}</p>\r\n </mt-card>\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 } from '@angular/core';\r\nimport { TranslocoDirective } from '@jsverse/transloco';\r\nimport { Icon, MTIcon } from '@masterteam/icons';\r\nimport { ManageBrndingService } from '../../../services/manage-brnding.service';\r\n\r\n@Component({\r\n selector: 'mt-preview-layout-page',\r\n standalone: true,\r\n imports: [CommonModule, Icon, TranslocoDirective],\r\n templateUrl: './preview-layout-page.html',\r\n styleUrl: './preview-layout-page.scss',\r\n})\r\nexport class PreviewLayoutPage {\r\n private readonly manageBrnding = inject(ManageBrndingService);\r\n private readonly DEFAULT = this.manageBrnding.DEFAULT_DISPLAY_DATA;\r\n private readonly draft = this.manageBrnding.draftPageLayoutData;\r\n\r\n protected readonly headerBg = computed(\r\n () =>\r\n this.draft()?.headerBackgroundColor ||\r\n this.DEFAULT()?.pageLayout?.headerBackgroundColor ||\r\n '#ffffff',\r\n );\r\n protected readonly headerText = computed(\r\n () =>\r\n this.draft()?.headerTextColor ||\r\n this.DEFAULT()?.pageLayout?.headerTextColor ||\r\n '#0a0a0a',\r\n );\r\n protected readonly sidebarBg = computed(\r\n () =>\r\n this.draft()?.sidebarBackgroundColor ||\r\n this.DEFAULT()?.pageLayout?.sidebarBackgroundColor ||\r\n '#EBEBF0',\r\n );\r\n protected readonly sidebarText = computed(\r\n () =>\r\n this.draft()?.sidebarTextColor ||\r\n this.DEFAULT()?.pageLayout?.sidebarTextColor ||\r\n '#0a0a0a',\r\n );\r\n protected readonly contentBg = computed(\r\n () =>\r\n this.draft()?.contentBackgroundColor ||\r\n this.DEFAULT()?.pageLayout?.contentBackgroundColor ||\r\n '#FFFFFF',\r\n );\r\n\r\n protected readonly mockMenuItems: {\r\n icon: MTIcon;\r\n label: string;\r\n count: number;\r\n }[] = [\r\n { icon: 'general.building-02', label: 'preview-organizations', count: 12 },\r\n { icon: 'custom.user-pp', label: 'preview-users', count: 48 },\r\n { icon: 'alert.bell-02', label: 'preview-documents', count: 156 },\r\n { icon: 'general.settings-01', label: 'preview-settings', count: 7 },\r\n ];\r\n}\r\n","<ng-container *transloco=\"let t; prefix: 'brand-display'\">\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n\r\n <!-- Client Page Mockup -->\r\n <div\r\n class=\"overflow-hidden rounded-xl border border-surface-200 shadow-sm\"\r\n style=\"height: 420px\"\r\n >\r\n <div class=\"flex h-full\">\r\n <!-- Left Sidebar -->\r\n <div\r\n class=\"flex w-49 shrink-0 flex-col overflow-hidden\"\r\n [style.background-color]=\"sidebarBg()\"\r\n >\r\n <!-- Sidebar Header -->\r\n <div class=\"flex items-center gap-2 border-b border-black/10 px-4 py-3\">\r\n <mt-icon [icon]=\"'general.settings-01'\" />\r\n <span class=\"text-xs font-semibold\" [style.color]=\"sidebarText()\">{{\r\n t(\"preview-settings\")\r\n }}</span>\r\n </div>\r\n\r\n <!-- Sidebar Items -->\r\n <div class=\"flex-1 overflow-y-auto p-2\">\r\n @for (item of mockMenuItems; track item.label) {\r\n <div\r\n class=\"mb-1 flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 transition-colors hover:bg-black/5\"\r\n >\r\n <div class=\"p-1.5 bg-surface-100 flex items-center rounded-xs\">\r\n <mt-icon [icon]=\"item.icon\" />\r\n </div>\r\n <span\r\n [style.color]=\"sidebarText()\"\r\n class=\"min-w-0 flex-1 truncate text-xs font-medium\"\r\n >{{ t(item.label) }}</span\r\n >\r\n <span\r\n [style.color]=\"headerText()\"\r\n class=\"shrink-0 rounded-full px-1.5 py-0.5 text-[10px] font-semibold opacity-60\"\r\n [style.background-color]=\"sidebarText() + '22'\"\r\n >{{ item.count }}</span\r\n >\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- Right Panel -->\r\n <div class=\"flex min-w-0 flex-1 flex-col overflow-hidden\">\r\n <!-- Right Header -->\r\n <div\r\n class=\"flex shrink-0 items-center justify-between border-b border-black/10 px-4 py-3\"\r\n [style.background-color]=\"headerBg()\"\r\n >\r\n <div class=\"flex items-center gap-2\">\r\n <div class=\"p-1.5 bg-surface-100 flex items-center rounded-xs\">\r\n <mt-icon [icon]=\"'general.building-02'\" />\r\n </div>\r\n\r\n <span class=\"text-xs font-semibold\" [style.color]=\"headerText()\">{{\r\n t(\"preview-organizations\")\r\n }}</span>\r\n </div>\r\n </div>\r\n\r\n <!-- Right Content -->\r\n <div\r\n class=\"flex-1 overflow-y-auto p-4\"\r\n [style.background-color]=\"contentBg()\"\r\n >\r\n <div class=\"flex flex-col gap-2\">\r\n @for (i of [1, 2, 3, 4, 5]; track i) {\r\n <div\r\n class=\"rounded-lg bg-surface-100 px-3 py-2.5 text-xs text-surface-600 border border-surface-200\"\r\n >\r\n {{ t(\"preview-content-row\") }} {{ i }}\r\n </div>\r\n }\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 { 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\nimport { PreviewLayoutPage } from '../preview-layout-page/preview-layout-page';\r\n\r\n@Component({\r\n selector: 'mt-white-label',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n Tabs,\r\n RouterOutlet,\r\n PreviewBrand,\r\n PreviewLayoutPage,\r\n TranslocoDirective,\r\n ],\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 readonly isPageLayoutTab = computed(\r\n () => this.selectedTab() === 'page-layout',\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 label: this.translocoService.translate('brand-display.page-layout'),\r\n value: 'page-layout',\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 overflow-x-auto pb-1\">\r\n <mt-tabs\r\n class=\"min-w-max\"\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\r\n class=\"mt-4 grid min-h-0 gap-6 xl:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)] xl:gap-10\"\r\n >\r\n <div class=\"min-w-0\">\r\n <router-outlet />\r\n </div>\r\n <div class=\"min-w-0 xl:sticky xl:top-4 xl:self-start\">\r\n @if (isPageLayoutTab()) {\r\n <mt-preview-layout-page />\r\n } @else {\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n <mt-preview-brand></mt-preview-brand>\r\n }\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 previewTextColor = computed(() => {\r\n const value = this.manageBrnding.draftLoginData();\r\n return value?.textColor || this.DEFAULT_DISPLAY_DATA()?.login?.textColor;\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: 'brand-display'\">\r\n <div class=\"xl:sticky xl:top-4\">\r\n <h3 class=\"text-sm font-medium mb-3\">{{ t(\"preview\") }}</h3>\r\n <div\r\n class=\"relative overflow-hidden rounded-lg aspect-[4/5] sm:aspect-[16/10]\"\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\r\n class=\"absolute inset-0 flex items-center p-4 max-[640px]:flex-col max-[640px]:justify-center max-[640px]:gap-4 sm:p-8\"\r\n >\r\n @if (previewFormPosition() !== \"center\") {\r\n <div\r\n class=\"logo flex min-w-0 mx-auto flex-col items-start gap-2 max-[640px]:order-1 max-[640px]:w-full max-[640px]:flex-none\"\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-8 sm:h-12 sm:w-12\"\r\n />\r\n <div\r\n class=\"text-center text-base text-white text-xs\"\r\n [style.color]=\"previewTextColor()\"\r\n >\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 max-[640px]:order-2 max-[640px]:w-full\"\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-8 sm:h-12 sm:w-12\"\r\n />\r\n <div\r\n class=\"text-center text-base text-white text-xs\"\r\n [style.color]=\"previewTextColor()\"\r\n >\r\n {{ t(\"portfolio-management-system\") }}\r\n </div>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"glass-card relative z-10 w-full max-w-[15rem] rounded-lg px-4 py-3 sm:w-60 sm:px-6\"\r\n [style.color]=\"previewTextColor()\"\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]\">{{ 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 mb-1\">{{\r\n t(\"username\")\r\n }}</label>\r\n <div\r\n class=\"text-[8px] rounded px-3 py-2 bg-white/90 text-gray-600!\"\r\n >\r\n {{ t(\"username\") }}\r\n </div>\r\n </div>\r\n <div>\r\n <label class=\"text-[8px] block mb-1\">{{ t(\"password\") }}</label>\r\n <div\r\n class=\"text-[8px] rounded px-3 py-2 bg-white/90 text-gray-600!\"\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\">\r\n {{ t(\"language-toggle\") }}\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center mt-3 text-[8px]\">\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 textColor: this.DEFAULT_DISPLAY_DATA()?.login?.textColor,\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 {\r\n key: 'textColor',\r\n type: 'color-picker',\r\n label: this.translocoService.translate('brand-display.text-color'),\r\n order: 4,\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\r\n class=\"mt-6 grid min-h-0 gap-6 xl:grid-cols-[minmax(0,3fr)_minmax(20rem,2fr)] xl:gap-10\"\r\n >\r\n <!-- Left Side - Login Settings -->\r\n <div class=\"min-w-0\">\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=\"min-w-0 xl:sticky xl:top-4 xl:self-start\">\r\n <mt-preview-login></mt-preview-login>\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 ColorPickerFieldConfig,\r\n DynamicFormConfig,\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-page-layout-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: './page-layout-display.html',\r\n styleUrl: './page-layout-display.scss',\r\n})\r\nexport default class PageLayoutDisplay 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\r\n pageLayoutFormControl: any = new FormControl({\r\n headerBackgroundColor:\r\n this.DEFAULT_DISPLAY_DATA()?.pageLayout?.headerBackgroundColor,\r\n headerTextColor: this.DEFAULT_DISPLAY_DATA()?.pageLayout?.headerTextColor,\r\n sidebarBackgroundColor:\r\n this.DEFAULT_DISPLAY_DATA()?.pageLayout?.sidebarBackgroundColor,\r\n sidebarTextColor: this.DEFAULT_DISPLAY_DATA()?.pageLayout?.sidebarTextColor,\r\n contentBackgroundColor:\r\n this.DEFAULT_DISPLAY_DATA()?.pageLayout?.contentBackgroundColor,\r\n });\r\n\r\n ngOnInit(): void {\r\n const localFormData = {\r\n ...this.pageLayoutFormControl.value,\r\n ...this.brandDisplayData()?.pageLayout,\r\n };\r\n this.pageLayoutFormControl.patchValue(localFormData, { emitEvent: false });\r\n this.pageLayoutFormControl.valueChanges.subscribe((value: any) => {\r\n this.facade.updateBrandDisplayDataLocally({\r\n pageLayout: {\r\n headerBackgroundColor: value.headerBackgroundColor,\r\n headerTextColor: value.headerTextColor,\r\n sidebarBackgroundColor: value.sidebarBackgroundColor,\r\n sidebarTextColor: value.sidebarTextColor,\r\n contentBackgroundColor: value.contentBackgroundColor,\r\n },\r\n });\r\n });\r\n }\r\n\r\n pageLayoutConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'pageLayoutSection',\r\n label: '',\r\n type: 'none',\r\n order: 1,\r\n fields: [\r\n new ColorPickerFieldConfig({\r\n key: 'headerBackgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.header-background-color',\r\n ),\r\n order: 3,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'headerTextColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.header-text-color',\r\n ),\r\n order: 4,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'sidebarBackgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.side-bar-background-color',\r\n ),\r\n order: 1,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'sidebarTextColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.side-bar-text-color',\r\n ),\r\n order: 2,\r\n colSpan: 6,\r\n }),\r\n new ColorPickerFieldConfig({\r\n key: 'contentBackgroundColor',\r\n label: this.translocoService.translate(\r\n 'brand-display.content-background-color',\r\n ),\r\n order: 5,\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=\"page-layout\" [title]=\"t('page-layout')\">\r\n <form class=\"col-span-1 p-2\">\r\n <mt-dynamic-form\r\n [formConfig]=\"pageLayoutConfig()\"\r\n [formControl]=\"pageLayoutFormControl\"\r\n />\r\n </form>\r\n </mt-card>\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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/brand-display",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "publishConfig": {
5
5
  "directory": "../../../dist/masterteam/brand-display",
6
6
  "linkDirectory": false,
@@ -20,9 +20,9 @@
20
20
  "tailwindcss": "^4.2.2",
21
21
  "tailwindcss-primeui": "^0.6.1",
22
22
  "@ngxs/store": "^20.1.0",
23
- "@masterteam/components": "^0.0.173",
23
+ "@masterteam/components": "^0.0.179",
24
24
  "@masterteam/icons": "^0.0.15",
25
- "@masterteam/forms": "^0.0.79"
25
+ "@masterteam/forms": "^0.0.81"
26
26
  },
27
27
  "sideEffects": false,
28
28
  "exports": {