@masterteam/properties 0.0.17 → 0.0.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-properties.mjs","sources":["../../../../packages/masterteam/properties/src/store/utils/state-helpers.ts","../../../../packages/masterteam/properties/src/store/properties/properties.actions.ts","../../../../packages/masterteam/properties/src/store/properties/properties.state.ts","../../../../packages/masterteam/properties/src/store/properties/properties.facade.ts","../../../../packages/masterteam/properties/src/store/app.state.ts","../../../../packages/masterteam/properties/src/store/index.ts","../../../../packages/masterteam/properties/src/lib/properties-list/properties-list.ts","../../../../packages/masterteam/properties/src/lib/properties-list/properties-list.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/api-configuration/api-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/api-configuration/api-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/check-list-form-configuration/check-list-form-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/check-list-form-configuration/check-list-form-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/dynamic-list-configuration/dynamic-list-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/dynamic-list-configuration/dynamic-list-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/editable-list-view-configuration/editable-list-view-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/editable-list-view-configuration/editable-list-view-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/internal-module-configuration/internal-module-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/internal-module-configuration/internal-module-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/location-configuration/location-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/location-configuration/location-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/lookup-configuration/lookup-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/lookup-configuration/lookup-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/percentage-configuration/percentage-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/percentage-configuration/percentage-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/user-configuration/user-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/user-configuration/user-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/attachment-configuration/attachment-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/attachment-configuration/attachment-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/property-form.ts","../../../../packages/masterteam/properties/src/lib/property-form/property-form.html","../../../../packages/masterteam/properties/src/public-api.ts","../../../../packages/masterteam/properties/src/masterteam-properties.ts"],"sourcesContent":["import type { StateContext } from '@ngxs/store';\n\nexport interface LoadingStateShape<L extends string = string> {\n loadingActive: L[];\n errors: Partial<Record<L, string>>;\n}\n\ntype LoadingName<T extends LoadingStateShape<string>> =\n T['loadingActive'][number];\n\nexport function startLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive, errors } = ctx.getState();\n\n if (!loadingActive.includes(loadingName)) {\n ctx.patchState({\n loadingActive: [...loadingActive, loadingName],\n } as Partial<T>);\n }\n\n if (errors && errors[loadingName]) {\n const { [loadingName]: _removed, ...rest } = errors;\n ctx.patchState({ errors: rest } as Partial<T>);\n }\n}\n\nexport function endLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive } = ctx.getState();\n\n ctx.patchState({\n loadingActive: loadingActive.filter((name) => name !== loadingName),\n } as Partial<T>);\n}\n\nexport function setLoadingError<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n message: string,\n): void {\n const { errors } = ctx.getState();\n ctx.patchState({\n errors: { ...errors, [loadingName]: message },\n } as Partial<T>);\n}\n","import type {\n PropertiesQueryParams,\n PropertyPayload,\n ApiTestPayload,\n} from './properties.model';\nimport type { BreadcrumbItem } from '@masterteam/components/breadcrumb';\n\nexport class GetProperties {\n static readonly type = '[Properties] Get All';\n\n constructor(public readonly params?: PropertiesQueryParams) {}\n}\n\nexport class GetProperty {\n static readonly type = '[Properties] Get One';\n\n constructor(\n public readonly id: string | number,\n public readonly mode: 'edit' = 'edit',\n ) {}\n}\n\nexport class GetLookups {\n static readonly type = '[Properties] Get Lookups';\n}\n\nexport class GetGroups {\n static readonly type = '[Properties] Get Groups';\n}\n\nexport class GetConfigAsType {\n static readonly type = '[Properties] Get Config As Type';\n\n constructor(public readonly viewType: string) {}\n}\n\nexport class GetCountries {\n static readonly type = '[Properties] Get Countries';\n}\n\nexport class TestApiConfiguration {\n static readonly type = '[Properties] Test API Configuration';\n\n constructor(public readonly payload: ApiTestPayload) {}\n}\n\nexport class ResetApiConfiguration {\n static readonly type = '[Properties] Reset API Configuration';\n}\n\nexport class GetPropertiesForConfigType {\n static readonly type = '[Properties] Get By Config Type';\n\n constructor(\n public readonly moduleType: string,\n public readonly moduleId: string | number,\n ) {}\n}\n\nexport class ResetConfigProperties {\n static readonly type = '[Properties] Reset Config Properties';\n}\n\nexport class ResetConfigScopes {\n static readonly type = '[Properties] Reset Config Scopes';\n}\n\nexport class ResetSelectedProperty {\n static readonly type = '[Properties] Reset Selected Property';\n}\n\nexport class DeleteProperty {\n static readonly type = '[Properties] Delete';\n\n constructor(public readonly id: string | number) {}\n}\n\nexport class CreateProperty {\n static readonly type = '[Properties] Create';\n\n constructor(public readonly payload: PropertyPayload) {}\n}\n\nexport class UpdateProperty {\n static readonly type = '[Properties] Update';\n\n constructor(\n public readonly id: string | number,\n public readonly payload: PropertyPayload,\n ) {}\n}\n\nexport class SetPropertiesModuleInfo {\n static readonly type = '[Properties] Set Module Info';\n\n constructor(\n public readonly moduleType: string,\n public readonly moduleId: string | number,\n public readonly parentModuleType?: string,\n public readonly parentModuleId?: string | number,\n public readonly parentPath?: string,\n ) {}\n}\nexport class SetPropertyTypes {\n static readonly type = '[Properties] Set Property Types';\n\n constructor(public readonly payload: any) {}\n}\n\nexport class SetBreadcrumb {\n static readonly type = '[Properties] Set Breadcrumb';\n\n constructor(public readonly items: BreadcrumbItem[]) {}\n}\n\nexport class SetDefaultViewType {\n static readonly type = '[Properties] Set Default ViewType';\n\n constructor(public readonly viewType: string) {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\n\nimport {\n endLoading,\n setLoadingError,\n startLoading,\n} from '../utils/state-helpers';\n\nimport {\n ApiPropertyOption,\n ApiSchema,\n ConfigScope,\n CountryDefinition,\n GroupDefinition,\n LookupDefinition,\n PropertiesLoadingName,\n PropertiesStateModel,\n PropertyItem,\n} from './properties.model';\nimport type { BreadcrumbItem } from '@masterteam/components/breadcrumb';\nimport {\n CreateProperty,\n DeleteProperty,\n GetGroups,\n GetConfigAsType,\n GetLookups,\n GetPropertiesForConfigType,\n GetProperties,\n GetProperty,\n GetCountries,\n TestApiConfiguration,\n ResetApiConfiguration,\n ResetConfigProperties,\n ResetConfigScopes,\n ResetSelectedProperty,\n SetPropertiesModuleInfo,\n UpdateProperty,\n SetPropertyTypes,\n SetBreadcrumb,\n SetDefaultViewType,\n} from './properties.actions';\nimport { Response } from './api.model';\n\nconst DEFAULT_STATE: PropertiesStateModel = {\n properties: [],\n selectedProperty: null,\n loadingActive: [],\n errors: {},\n moduleType: null,\n moduleId: null,\n parentModuleType: null,\n parentModuleId: null,\n lastQueryParams: null,\n lookups: [],\n configTypeProperties: [],\n groups: [],\n configScopes: [],\n countries: [],\n apiSchema: null,\n apiProperties: [],\n breadcrumbItems: [],\n defaultViewType: null,\n};\n\n@State<PropertiesStateModel>({\n name: 'properties',\n defaults: DEFAULT_STATE,\n})\n@Injectable()\nexport class PropertiesState {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = 'Properties';\n private readonly lookupsUrl = 'Lookups';\n private readonly configPropertiesUrl = 'Properties';\n private readonly groupsUrl = 'identity/Groups';\n private readonly countriesUrl = '/assets/countries/countries.json';\n private readonly apiTestUrl = 'app/testAPI';\n private readonly apiDetectUrl = 'app/detect';\n\n @Selector()\n static properties(state: PropertiesStateModel): PropertyItem[] {\n return state.properties;\n }\n\n @Selector()\n static selectedProperty(state: PropertiesStateModel): PropertyItem | null {\n return state.selectedProperty;\n }\n\n @Selector()\n static lookups(state: PropertiesStateModel): LookupDefinition[] {\n return state.lookups;\n }\n\n @Selector()\n static configTypeProperties(state: PropertiesStateModel): PropertyItem[] {\n return state.configTypeProperties;\n }\n\n @Selector()\n static groups(state: PropertiesStateModel): GroupDefinition[] {\n return state.groups;\n }\n\n @Selector()\n static configScopes(state: PropertiesStateModel): ConfigScope[] {\n return state.configScopes;\n }\n\n @Selector()\n static countries(state: PropertiesStateModel): CountryDefinition[] {\n return state.countries;\n }\n\n @Selector()\n static apiSchema(state: PropertiesStateModel): ApiSchema | null {\n return state.apiSchema;\n }\n\n @Selector()\n static apiProperties(state: PropertiesStateModel): ApiPropertyOption[] {\n return state.apiProperties;\n }\n @Selector()\n static propertyTypes(state: PropertiesStateModel): any[] {\n return state.propertyTypes ?? [];\n }\n\n @Selector()\n static breadcrumbItems(state: PropertiesStateModel): BreadcrumbItem[] {\n return state.breadcrumbItems;\n }\n\n @Selector()\n static defaultViewType(state: PropertiesStateModel): string | null {\n return state.defaultViewType;\n }\n\n @Selector()\n static isLoadingFactory(state: PropertiesStateModel) {\n return (loadingName: PropertiesLoadingName) =>\n state.loadingActive.includes(loadingName);\n }\n\n @Selector()\n static errorFactory(state: PropertiesStateModel) {\n return (loadingName: PropertiesLoadingName) =>\n state.errors?.[loadingName] ?? null;\n }\n\n @Selector()\n static propertyById(state: PropertiesStateModel) {\n return (id: number | string) =>\n state.properties.find((property) => property.id === Number(id)) ?? null;\n }\n\n @Action(GetProperties)\n getAll(ctx: StateContext<PropertiesStateModel>, action: GetProperties) {\n startLoading(ctx, 'getAll');\n const state = ctx.getState();\n const moduleType = state.moduleType ?? undefined;\n const moduleId = state.moduleId ?? undefined;\n const parentPath = state.parentPath ?? '';\n const params = { ...action.params };\n\n ctx.patchState({\n lastQueryParams: params ?? null,\n });\n return this.http\n .get<Response<PropertyItem[]>>(\n `${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`,\n {\n params: params,\n },\n )\n .pipe(\n tap((response) => {\n const properties = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ properties });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load properties';\n setLoadingError(ctx, 'getAll', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getAll')),\n );\n }\n\n @Action(GetProperty)\n getOne(ctx: StateContext<PropertiesStateModel>, action: GetProperty) {\n startLoading(ctx, 'getOne');\n\n const params = { mode: action.mode ?? 'edit' };\n\n return this.http\n .get<Response<PropertyItem>>(`${this.baseUrl}/${action.id}`, { params })\n .pipe(\n tap((response) => {\n ctx.patchState({\n selectedProperty: response?.data ?? null,\n });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load property';\n setLoadingError(ctx, 'getOne', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getOne')),\n );\n }\n\n @Action(GetLookups)\n getLookups(ctx: StateContext<PropertiesStateModel>, _action: GetLookups) {\n const state = ctx.getState();\n if (state.lookups.length) {\n return of(state.lookups);\n }\n\n startLoading(ctx, 'getLookups');\n\n return this.http.get<Response<LookupDefinition[]>>(this.lookupsUrl).pipe(\n tap((response) => {\n const lookups = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ lookups });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load lookups';\n setLoadingError(ctx, 'getLookups', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getLookups')),\n );\n }\n\n @Action(GetGroups)\n getGroups(ctx: StateContext<PropertiesStateModel>, _action: GetGroups) {\n const state = ctx.getState();\n if (state.groups.length) {\n return of(state.groups);\n }\n\n startLoading(ctx, 'getGroups');\n\n return this.http.get<Response<GroupDefinition[]>>(this.groupsUrl).pipe(\n tap((response) => {\n const groups = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ groups });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load groups';\n setLoadingError(ctx, 'getGroups', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getGroups')),\n );\n }\n\n @Action(GetConfigAsType)\n getConfigAsType(\n ctx: StateContext<PropertiesStateModel>,\n action: GetConfigAsType,\n ) {\n const state = ctx.getState();\n\n // Don't reload if we already have data for this viewType\n if (state.configScopes.length) {\n return of(state.configScopes);\n }\n\n startLoading(ctx, 'getConfigAsType');\n\n const url = `${this.baseUrl}/${action.viewType}/GetViewTypeProperties`;\n\n return this.http.get<Response<ConfigScope[]>>(url).pipe(\n tap((response) => {\n const configScopes = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ configScopes });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load configuration scopes';\n setLoadingError(ctx, 'getConfigAsType', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getConfigAsType')),\n );\n }\n\n @Action(GetCountries)\n getCountries(ctx: StateContext<PropertiesStateModel>, _action: GetCountries) {\n const state = ctx.getState();\n if (state.countries.length) {\n return of(state.countries);\n }\n\n startLoading(ctx, 'getCountries');\n\n return this.http.get<CountryDefinition[]>(this.countriesUrl).pipe(\n tap((response) => {\n const countries = Array.isArray(response) ? response : [];\n ctx.patchState({ countries });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load countries';\n setLoadingError(ctx, 'getCountries', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getCountries')),\n );\n }\n\n @Action(TestApiConfiguration)\n testApiConfiguration(\n ctx: StateContext<PropertiesStateModel>,\n action: TestApiConfiguration,\n ) {\n startLoading(ctx, 'testApiConfiguration');\n ctx.patchState({\n apiSchema: null,\n apiProperties: [],\n });\n\n return this.http.post<Response<any>>(this.apiTestUrl, action.payload).pipe(\n switchMap((testResponse) => {\n const rawData = testResponse?.data;\n if (!rawData) {\n return of(null);\n }\n\n const formData = new FormData();\n formData.append('jsonData', JSON.stringify(rawData));\n\n return this.http\n .post<Response<ApiSchema>>(this.apiDetectUrl, formData)\n .pipe(\n tap((detectResponse) => {\n const schema = detectResponse?.data ?? null;\n const apiProperties = this.mapSchemaToOptions(schema);\n ctx.patchState({\n apiSchema: schema,\n apiProperties,\n });\n }),\n );\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to test API';\n setLoadingError(ctx, 'testApiConfiguration', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'testApiConfiguration')),\n );\n }\n\n @Action(ResetApiConfiguration)\n resetApiConfiguration(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({\n apiSchema: null,\n apiProperties: [],\n });\n }\n\n private mapSchemaToOptions(schema: ApiSchema | null): ApiPropertyOption[] {\n if (!schema?.properties) {\n return [];\n }\n\n return Object.entries(schema.properties).map(([key, definition]) => {\n const typeLabel = definition?.type ? ` | ${definition.type}` : '';\n return {\n key,\n name: `${key}${typeLabel}`,\n type: definition?.type,\n } as ApiPropertyOption;\n });\n }\n\n @Action(GetPropertiesForConfigType)\n getPropertiesForConfigType(\n ctx: StateContext<PropertiesStateModel>,\n action: GetPropertiesForConfigType,\n ) {\n startLoading(ctx, 'getConfigProperties');\n\n const { moduleType, moduleId } = action;\n\n return this.http\n .get<\n Response<PropertyItem[]>\n >(`${this.configPropertiesUrl}/${moduleType}/${moduleId}`)\n .pipe(\n tap((response) => {\n const configTypeProperties = Array.isArray(response?.data)\n ? response.data\n : [];\n ctx.patchState({ configTypeProperties });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load properties';\n setLoadingError(ctx, 'getConfigProperties', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getConfigProperties')),\n );\n }\n\n @Action(ResetConfigProperties)\n resetConfigProperties(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({ configTypeProperties: [] });\n }\n\n @Action(ResetConfigScopes)\n resetConfigScopes(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({ configScopes: [] });\n }\n\n @Action(ResetSelectedProperty)\n resetSelectedProperty(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({ selectedProperty: null });\n }\n\n @Action(SetPropertiesModuleInfo)\n setModuleInfo(\n ctx: StateContext<PropertiesStateModel>,\n action: SetPropertiesModuleInfo,\n ) {\n let parentPath = '';\n if (action.parentModuleType && action.parentModuleId) {\n parentPath = `/${action.parentModuleType}/${action.parentModuleId}`;\n } else if (action.parentPath) {\n parentPath = action.parentPath;\n }\n ctx.patchState({\n moduleType: action.moduleType,\n moduleId: action.moduleId,\n parentModuleType: action.parentModuleType ?? null,\n parentModuleId: action.parentModuleId ?? null,\n parentPath: parentPath ?? '',\n });\n }\n\n @Action(CreateProperty)\n create(ctx: StateContext<PropertiesStateModel>, action: CreateProperty) {\n startLoading(ctx, 'create');\n\n const state = ctx.getState();\n const moduleType = state.moduleType ?? undefined;\n const moduleId = state.moduleId ?? undefined;\n const parentPath = state.parentPath ?? '';\n\n if (!moduleType || moduleId === undefined || moduleId === null) {\n const message = 'Missing module context for creating property';\n setLoadingError(ctx, 'create', message);\n endLoading(ctx, 'create');\n return of(null);\n }\n\n return this.http\n .post<\n Response<PropertyItem>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`, action.payload)\n .pipe(\n tap((response) => {\n const created = response?.data;\n if (!created) {\n return;\n }\n\n const state = ctx.getState();\n ctx.patchState({\n properties: [...state.properties, created],\n selectedProperty: created,\n });\n }),\n finalize(() => endLoading(ctx, 'create')),\n );\n }\n\n @Action(UpdateProperty)\n update(ctx: StateContext<PropertiesStateModel>, action: UpdateProperty) {\n startLoading(ctx, 'update');\n\n const state = ctx.getState();\n const moduleType = state.moduleType ?? undefined;\n const moduleId = state.moduleId ?? undefined;\n const parentPath = state.parentPath ?? '';\n\n if (!moduleType || moduleId === undefined || moduleId === null) {\n const message = 'Missing module context for updating property';\n setLoadingError(ctx, 'update', message);\n endLoading(ctx, 'update');\n return of(null);\n }\n return this.http\n .put<\n Response<PropertyItem>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/${action.id}`, action.payload)\n .pipe(\n tap((response) => {\n const updated = response?.data;\n if (!updated) {\n return;\n }\n\n const updatedId = updated.id ?? Number(action.id);\n const state = ctx.getState();\n const properties = state.properties.some(\n (item) => item.id === updatedId,\n )\n ? state.properties.map((item) =>\n item.id === updatedId ? { ...item, ...updated } : item,\n )\n : [...state.properties, updated];\n\n ctx.patchState({\n properties,\n selectedProperty: updated,\n });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to update property';\n setLoadingError(ctx, 'update', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'update')),\n );\n }\n\n @Action(DeleteProperty)\n delete(ctx: StateContext<PropertiesStateModel>, action: DeleteProperty) {\n startLoading(ctx, 'delete');\n\n return this.http\n .delete<void>(`${this.baseUrl}/${encodeURIComponent(String(action.id))}`)\n .pipe(\n tap(() => {\n const { properties, selectedProperty } = ctx.getState();\n const remaining = properties.filter(\n (item) => item.id !== Number(action.id),\n );\n const nextSelected =\n selectedProperty && selectedProperty.id === Number(action.id)\n ? null\n : selectedProperty;\n ctx.patchState({\n properties: remaining,\n selectedProperty: nextSelected,\n });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to delete property';\n setLoadingError(ctx, 'delete', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'delete')),\n );\n }\n\n @Action(SetPropertyTypes)\n SetPropertyTypes(\n ctx: StateContext<PropertiesStateModel>,\n action: SetPropertyTypes,\n ) {\n ctx.patchState({\n propertyTypes: action.payload,\n });\n }\n\n @Action(SetBreadcrumb)\n setBreadcrumb(\n ctx: StateContext<PropertiesStateModel>,\n action: SetBreadcrumb,\n ) {\n ctx.patchState({\n breadcrumbItems: action.items,\n });\n }\n\n @Action(SetDefaultViewType)\n setDefaultViewType(\n ctx: StateContext<PropertiesStateModel>,\n action: SetDefaultViewType,\n ) {\n ctx.patchState({\n defaultViewType: action.viewType,\n });\n }\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { select, Store } from '@ngxs/store';\nimport type { Observable } from 'rxjs';\n\nimport type { GroupDefinition } from './properties.model';\nimport type { ConfigScope } from './properties.model';\nimport type { PropertyItem } from './properties.model';\nimport type { CountryDefinition } from './properties.model';\nimport type { ApiPropertyOption } from './properties.model';\nimport type { ApiSchema } from './properties.model';\nimport type { ApiTestPayload } from './properties.model';\nimport type { BreadcrumbItem } from '@masterteam/components/breadcrumb';\nimport {\n CreateProperty,\n DeleteProperty,\n GetGroups,\n GetConfigAsType,\n GetLookups,\n GetCountries,\n TestApiConfiguration,\n ResetApiConfiguration,\n GetPropertiesForConfigType,\n GetProperties,\n GetProperty,\n ResetConfigProperties,\n ResetConfigScopes,\n ResetSelectedProperty,\n SetPropertiesModuleInfo,\n UpdateProperty,\n SetPropertyTypes,\n SetBreadcrumb,\n SetDefaultViewType,\n} from './properties.actions';\nimport { PropertiesState } from './properties.state';\nimport type {\n LookupDefinition,\n PropertiesLoadingName,\n PropertiesQueryParams,\n PropertyPayload,\n} from './properties.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertiesFacade {\n private readonly store = inject(Store);\n readonly list = select(PropertiesState.properties);\n readonly propertyTypes = select<any>(PropertiesState.propertyTypes);\n readonly selected = select(PropertiesState.selectedProperty);\n readonly lookups = select<LookupDefinition[]>(PropertiesState.lookups);\n readonly configProperties = select<PropertyItem[]>(\n PropertiesState.configTypeProperties,\n );\n readonly groups = select<GroupDefinition[]>(PropertiesState.groups);\n readonly configScopes = select<ConfigScope[]>(PropertiesState.configScopes);\n readonly countries = select<CountryDefinition[]>(PropertiesState.countries);\n readonly apiSchema = select<ApiSchema | null>(PropertiesState.apiSchema);\n readonly apiProperties = select<ApiPropertyOption[]>(\n PropertiesState.apiProperties,\n );\n readonly breadcrumbItems = select<BreadcrumbItem[]>(\n PropertiesState.breadcrumbItems,\n );\n readonly defaultViewType = select<string | null>(\n PropertiesState.defaultViewType,\n );\n readonly systemProperties = computed(() =>\n this.list().filter((property) => Boolean(property.isSystem)),\n );\n readonly customProperties = computed(() =>\n this.list().filter((property) => !Boolean(property.isSystem)),\n );\n\n isLoading(loadingName: PropertiesLoadingName) {\n const loadingFactory = select<(name: PropertiesLoadingName) => boolean>(\n PropertiesState.isLoadingFactory,\n );\n return computed(() => loadingFactory()(loadingName));\n }\n\n loadAll(params?: Partial<PropertiesQueryParams>): Observable<unknown> {\n return this.store.dispatch(new GetProperties(params));\n }\n\n loadOne(id: string | number, mode: 'edit' = 'edit'): Observable<unknown> {\n return this.store.dispatch(new GetProperty(id, mode));\n }\n\n delete(id: string | number): Observable<unknown> {\n return this.store.dispatch(new DeleteProperty(id));\n }\n\n create(payload: PropertyPayload): Observable<unknown> {\n return this.store.dispatch(new CreateProperty(payload));\n }\n\n update(id: string | number, payload: PropertyPayload): Observable<unknown> {\n return this.store.dispatch(new UpdateProperty(id, payload));\n }\n\n setModuleInfo(\n moduleType: string,\n moduleId: string | number,\n parentModuleType?: string,\n parentModuleId?: string | number,\n parentPath?: string,\n ): Observable<unknown> {\n return this.store.dispatch(\n new SetPropertiesModuleInfo(\n moduleType,\n moduleId,\n parentModuleType,\n parentModuleId,\n parentPath,\n ),\n );\n }\n\n loadLookups(): Observable<unknown> {\n return this.store.dispatch(new GetLookups());\n }\n\n loadGroups(): Observable<unknown> {\n return this.store.dispatch(new GetGroups());\n }\n\n loadConfigAsType(viewType: string): Observable<unknown> {\n return this.store.dispatch(new GetConfigAsType(viewType));\n }\n\n loadCountries(): Observable<unknown> {\n return this.store.dispatch(new GetCountries());\n }\n\n testApiConfiguration(payload: ApiTestPayload): Observable<unknown> {\n return this.store.dispatch(new TestApiConfiguration(payload));\n }\n\n resetApiConfiguration(): Observable<unknown> {\n return this.store.dispatch(new ResetApiConfiguration());\n }\n setPropertyTypes(propertyTypes: any) {\n return this.store.dispatch(new SetPropertyTypes(propertyTypes));\n }\n\n loadPropertiesForConfigType(\n moduleType: string,\n moduleId: string | number,\n ): Observable<unknown> {\n return this.store.dispatch(\n new GetPropertiesForConfigType(moduleType, moduleId),\n );\n }\n\n resetSelectedProperty(): Observable<unknown> {\n return this.store.dispatch(new ResetSelectedProperty());\n }\n\n resetConfigProperties(): Observable<unknown> {\n return this.store.dispatch(new ResetConfigProperties());\n }\n\n resetConfigScopes(): Observable<unknown> {\n return this.store.dispatch(new ResetConfigScopes());\n }\n\n setBreadcrumb(items: BreadcrumbItem[]): Observable<unknown> {\n return this.store.dispatch(new SetBreadcrumb(items));\n }\n\n setDefaultViewType(viewType: string): Observable<unknown> {\n return this.store.dispatch(new SetDefaultViewType(viewType));\n }\n}\n","// store/app.state.ts\n\nimport { HttpContextToken } from '@angular/common/http';\n\nexport const REQUEST_CONTEXT = new HttpContextToken<{ useBaseUrl: boolean }>(\n () => ({\n useBaseUrl: false,\n }),\n);\n","// store/index.ts\n// This file exports EVERYTHING - one import for all state needs\n\n// States\n\nexport * from './properties/properties.state';\nexport * from './properties/properties.model';\n\n// Actions\n\nexport * from './properties/properties.actions';\n\n// Facades\n\nexport * from './properties/properties.facade';\n\n// Re-export app state\nexport * from './app.state';\n","import {\n Component,\n computed,\n inject,\n signal,\n input,\n linkedSignal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Table, ColumnDef, TableAction } from '@masterteam/components/table';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PropertiesFacade, PropertyItem } from '../../store';\nimport { Breadcrumb } from '@masterteam/components/breadcrumb';\nimport { Card } from '@masterteam/components/card';\nimport { Avatar } from '@masterteam/components/avatar';\nimport { Divider } from 'primeng/divider';\nimport { Button } from '@masterteam/components/button';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'mt-properties-list',\n standalone: true,\n imports: [CommonModule, Table, Breadcrumb, Card, Avatar, Divider, Button],\n templateUrl: './properties-list.html',\n styleUrl: './properties-list.scss',\n})\nexport class PropertiesList {\n private readonly facade = inject(PropertiesFacade);\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n private readonly defaultTab = 'all';\n\n tab = input<string>();\n\n tabs = signal([\n { label: 'All', value: 'all' },\n { label: 'System', value: 'system' },\n { label: 'Custom', value: 'custom' },\n ]);\n\n activeTab = linkedSignal(() => {\n return this.tab() || this.defaultTab;\n });\n\n readonly tableColumns = signal<ColumnDef[]>([\n { key: 'title', label: 'Name' },\n { key: 'viewType', label: 'Type' },\n { key: 'required', label: 'Required', type: 'boolean' },\n ]);\n\n propertyTypes = signal<any[]>([\n {\n label: 'Short text',\n icon: 'editor.type-square',\n value: 'Text',\n color: 'pink',\n },\n {\n label: 'Paragraph',\n icon: 'editor.line-height',\n value: 'LongText',\n color: 'sky',\n },\n { label: 'User', icon: 'user.user-01', value: 'User', color: 'yellow' },\n {\n label: 'Number',\n icon: 'editor.letter-spacing-01',\n value: 'Number',\n color: 'violet',\n },\n {\n label: 'Currency',\n icon: 'finance.currency-dollar',\n value: 'Currency',\n color: 'indigo',\n },\n {\n label: 'Lookup',\n icon: 'custom.list-cards',\n value: 'Lookup',\n color: 'lime',\n },\n ]);\n tableActions = computed<TableAction[]>(() => {\n if (this.tableData().length === 0 || this.activeTab() === 'system') {\n return [];\n }\n return [\n {\n icon: 'general.plus',\n label: 'Create',\n color: 'primary',\n action: () => {\n this.createProperty();\n },\n },\n ];\n });\n deletingRowIds = signal<any[]>([]);\n readonly rowActions = signal<TableAction[]>([\n {\n icon: 'custom.pencil',\n tooltip: 'Edit',\n color: 'primary',\n action: (row) => this.editRow(row),\n },\n {\n icon: 'general.trash-01',\n tooltip: 'Delete',\n color: 'danger',\n variant: 'outlined',\n action: (row) => this.deleteRow(row),\n hidden: (row: any) => !!row.isSystem,\n confirmation: {\n type: 'popup',\n confirmationType: 'delete',\n },\n loading: (row: PropertyItem) => this.deletingRowIds().includes(row.id),\n },\n ]);\n\n readonly loading = this.facade.isLoading('getAll');\n\n readonly tableData = computed(() => {\n const tab = this.activeTab();\n const allProperties = this.facade.list();\n\n switch (tab) {\n case 'system':\n return this.facade.systemProperties();\n case 'custom':\n return this.facade.customProperties();\n case 'all':\n default:\n return allProperties;\n }\n });\n\n readonly breadcrumbItems = this.facade.breadcrumbItems;\n\n private editRow(row: PropertyItem): void {\n if (!row?.id) {\n return;\n }\n this.navigatePreservingTab(['../properties-form', row.id]);\n }\n\n private deleteRow(row: PropertyItem): void {\n if (!row?.id) {\n return;\n }\n this.deletingRowIds.update((ids) => [...ids, row.id]);\n this.facade\n .delete(row.id)\n .pipe(\n finalize(() => {\n this.deletingRowIds.update((ids) =>\n ids.filter((id) => id !== row.id),\n );\n }),\n )\n .subscribe();\n }\n\n createProperty() {\n this.navigatePreservingTab(['../properties-form']);\n }\n\n createPropertyWithType(viewType: string) {\n this.facade.setDefaultViewType(viewType);\n this.createProperty();\n }\n onTabChange(tab: string): void {\n const currentTab = tab;\n if (currentTab != this.tab()) {\n this.updateTabQueryParam(currentTab);\n }\n }\n private updateTabQueryParam(tab: string): void {\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { tab },\n queryParamsHandling: 'merge',\n replaceUrl: true,\n });\n }\n\n private navigatePreservingTab(commands: any[]): void {\n this.router.navigate(commands, {\n relativeTo: this.route,\n queryParams: { tab: this.activeTab() },\n queryParamsHandling: 'merge',\n });\n }\n}\n","<div class=\"space-y-3\">\n <div class=\"flex items-center justify-between\">\n <div class=\"space-y-1\">\n <h1 class=\"text-xl font-semibold text-slate-900 tracking-tight\">\n All Properties\n </h1>\n <mt-breadcrumb\n [items]=\"breadcrumbItems()\"\n [styleClass]=\"'flex justify-center'\"\n >\n </mt-breadcrumb>\n </div>\n </div>\n <mt-table\n [tabs]=\"tabs()\"\n [(activeTab)]=\"activeTab\"\n (onTabChange)=\"onTabChange($event)\"\n [data]=\"tableData()\"\n [actions]=\"tableActions()\"\n [columns]=\"tableColumns()\"\n [rowActions]=\"rowActions()\"\n [generalSearch]=\"true\"\n [loading]=\"loading()\"\n >\n <ng-template #empty>\n <div headless class=\"flex-col justify-center items-center w-full p-5\">\n <div class=\"content flex flex-col gap-5 items-center text-center mb-5\">\n <svg\n width=\"152\"\n height=\"120\"\n viewBox=\"0 0 152 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"76\" cy=\"52\" r=\"52\" fill=\"#E9EAEB\" />\n <g filter=\"url(#filter0_ddd_2474_28277)\">\n <path\n d=\"M77.6 16C66.8273 16 57.2978 21.3233 51.4987 29.4829C49.605 29.0363 47.6301 28.8 45.6 28.8C31.4615 28.8 20 40.2615 20 54.4C20 68.5385 31.4615 80 45.6 80L109.6 80C121.971 80 132 69.9712 132 57.6C132 45.2288 121.971 35.2 109.6 35.2C108.721 35.2 107.854 35.2506 107.002 35.349C102.098 23.9677 90.7797 16 77.6 16Z\"\n fill=\"#FAFAFA\"\n />\n <ellipse\n cx=\"45.6\"\n cy=\"54.3998\"\n rx=\"25.6\"\n ry=\"25.6\"\n fill=\"url(#paint0_linear_2474_28277)\"\n />\n <circle\n cx=\"77.6016\"\n cy=\"48\"\n r=\"32\"\n fill=\"url(#paint1_linear_2474_28277)\"\n />\n <ellipse\n cx=\"109.599\"\n cy=\"57.6002\"\n rx=\"22.4\"\n ry=\"22.4\"\n fill=\"url(#paint2_linear_2474_28277)\"\n />\n </g>\n <circle cx=\"21\" cy=\"19\" r=\"5\" fill=\"#F5F5F5\" />\n <circle cx=\"18\" cy=\"109\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"145\" cy=\"35\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"134\" cy=\"8\" r=\"4\" fill=\"#F5F5F5\" />\n <foreignObject x=\"44\" y=\"54\" width=\"64\" height=\"64\">\n <div\n xmlns=\"http://www.w3.org/1999/xhtml\"\n style=\"\n backdrop-filter: blur(4px);\n clip-path: url(#bgblur_0_2474_28277_clip_path);\n height: 100%;\n width: 100%;\n \"\n ></div>\n </foreignObject>\n <g data-figma-bg-blur-radius=\"8\">\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n fill=\"#344054\"\n fill-opacity=\"0.4\"\n />\n <path\n d=\"M85 95L81.5001 91.5M84 85.5C84 90.1944 80.1944 94 75.5 94C70.8056 94 67 90.1944 67 85.5C67 80.8056 70.8056 77 75.5 77C80.1944 77 84 80.8056 84 85.5Z\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_ddd_2474_28277\"\n x=\"0\"\n y=\"16\"\n width=\"152\"\n height=\"104\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"1.5\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feOffset dy=\"3\" />\n <feGaussianBlur stdDeviation=\"1.5\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.04 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.03 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_2474_28277\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feOffset dy=\"20\" />\n <feGaussianBlur stdDeviation=\"12\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.08 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect2_dropShadow_2474_28277\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect3_dropShadow_2474_28277\"\n result=\"shape\"\n />\n </filter>\n <clipPath\n id=\"bgblur_0_2474_28277_clip_path\"\n transform=\"translate(-44 -54)\"\n >\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n />\n </clipPath>\n <linearGradient\n id=\"paint0_linear_2474_28277\"\n x1=\"25.9429\"\n y1=\"37.4855\"\n x2=\"71.2\"\n y2=\"79.9998\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_2474_28277\"\n x1=\"53.0301\"\n y1=\"26.8571\"\n x2=\"109.602\"\n y2=\"80\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_2474_28277\"\n x1=\"92.3992\"\n y1=\"42.8002\"\n x2=\"131.999\"\n y2=\"80.0002\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-md text-surface-600\">{{ \"No data to show\" }}</div>\n </div>\n <div>\n <mt-button\n label=\"Add New Property\"\n icon=\"general.plus\"\n (click)=\"createProperty()\"\n />\n </div>\n </div>\n <p-divider type=\"solid\">\n <div class=\"text-lg text-surface-600\">Create from Type Template</div>\n </p-divider>\n <div class=\"flex gap-3 mt-5 justify-center\">\n @for (card of propertyTypes(); track card.label) {\n <mt-card\n headless\n class=\"w-25 tailwind-4 cursor-pointer\"\n style=\"background-color: #fafafa\"\n (click)=\"createPropertyWithType(card.value)\"\n >\n <div class=\"content flex flex-col gap-3 items-center text-center\">\n <mt-avatar\n [style.--p-avatar-background]=\"\n 'var(--p-' + card.color + '-100)'\n \"\n [style.--p-avatar-color]=\"'var(--p-' + card.color + '-600)'\"\n [icon]=\"card.icon\"\n shape=\"square\"\n ></mt-avatar>\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-xs font-normal\">{{ card.label }}</div>\n </div>\n </div>\n </mt-card>\n }\n </div>\n </div>\n </ng-template>\n </mt-table>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n signal,\n computed,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { Button } from '@masterteam/components/button';\nimport { SelectField } from '@masterteam/components/select-field';\nimport { TextField } from '@masterteam/components/text-field';\nimport { ToggleField } from '@masterteam/components/toggle-field';\nimport { PropertiesFacade } from '../../../../store';\nimport type { ApiConfigurationValue, ApiSchema } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\ntype HeaderFormGroup = FormGroup<{\n key: FormControl<string>;\n value: FormControl<string>;\n}>;\n\n@Component({\n selector: 'mt-api-configuration',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TextField,\n SelectField,\n ToggleField,\n Button,\n ],\n templateUrl: './api-configuration.html',\n styleUrl: './api-configuration.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ApiConfiguration),\n multi: true,\n },\n ],\n})\nexport class ApiConfiguration implements ControlValueAccessor {\n private readonly facade = inject(PropertiesFacade);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly schema = signal<ApiSchema | null>(null);\n private isWriting = false;\n private touched = false;\n\n readonly isTesting = this.facade.isLoading('testApiConfiguration');\n readonly apiProperties = this.facade.apiProperties;\n readonly hasDetectedSchema = computed(() => this.apiProperties().length > 0);\n\n readonly form = new FormGroup({\n endpoint: new FormControl<string>('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n headers: new FormArray<HeaderFormGroup>([]),\n key: new FormControl<string | null>(null),\n value: new FormControl<string | null>(null),\n supportMultiSelect: new FormControl<boolean>(false, { nonNullable: true }),\n });\n\n private onChange: (value: ApiConfigurationValue | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n private readonly formChanges = toSignal(this.form.valueChanges, {\n initialValue: this.form.getRawValue(),\n });\n\n constructor() {\n this.facade.resetApiConfiguration();\n effect(() => {\n this.formChanges();\n this.emitValue();\n });\n\n effect(() => {\n const latestSchema = this.facade.apiSchema();\n if (latestSchema !== undefined) {\n this.schema.set(latestSchema);\n if (!this.isWriting) {\n this.emitValue(false);\n }\n }\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.resetApiConfiguration();\n });\n }\n\n get headers(): FormArray<HeaderFormGroup> {\n return this.form.controls.headers;\n }\n\n writeValue(value: ApiConfigurationValue | null): void {\n this.isWriting = true;\n try {\n if (!value) {\n this.form.reset(\n {\n endpoint: '',\n key: null,\n value: null,\n supportMultiSelect: false,\n },\n { emitEvent: false },\n );\n this.setHeadersFromRecord({});\n this.schema.set(null);\n this.touched = false;\n return;\n }\n\n this.schema.set(value.schema ?? null);\n this.form.patchValue(\n {\n endpoint: value.endpoint ?? '',\n key: value.key ?? null,\n value: value.value ?? null,\n supportMultiSelect: !!value.supportMultiSelect,\n },\n { emitEvent: false },\n );\n this.setHeadersFromRecord(value.headers ?? {});\n this.touched = false;\n } finally {\n this.isWriting = false;\n this.emitValue(false);\n }\n }\n\n registerOnChange(fn: (value: ApiConfigurationValue | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n }\n\n addHeader(): void {\n this.headers.push(this.createHeaderGroup());\n }\n\n removeHeader(index: number): void {\n this.headers.removeAt(index);\n this.emitValue();\n }\n\n testApi(): void {\n if (!this.form.controls.endpoint.valid) {\n this.form.controls.endpoint.markAsTouched();\n return;\n }\n\n const headers = this.headersToRecord();\n const payload = {\n endpoint: this.form.controls.endpoint.value,\n headers: Object.keys(headers).length ? headers : undefined,\n };\n\n this.facade.testApiConfiguration(payload).subscribe();\n }\n\n private emitValue(triggerTouched = true): void {\n if (this.isWriting) {\n return;\n }\n\n const headers = this.headersToRecord();\n const value: ApiConfigurationValue = {\n endpoint: this.form.controls.endpoint.value,\n headers,\n key: this.form.controls.key.value ?? undefined,\n value: this.form.controls.value.value ?? undefined,\n supportMultiSelect: this.form.controls.supportMultiSelect.value,\n schema: this.schema(),\n };\n\n this.onChange(value);\n\n if (triggerTouched && !this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n private createHeaderGroup(\n initial: Partial<{ key: string; value: string }> = {},\n ): HeaderFormGroup {\n return new FormGroup({\n key: new FormControl(initial.key ?? '', { nonNullable: true }),\n value: new FormControl(initial.value ?? '', { nonNullable: true }),\n });\n }\n\n private setHeadersFromRecord(headers: Record<string, string>): void {\n while (this.headers.length) {\n this.headers.removeAt(0);\n }\n\n Object.entries(headers).forEach(([key, value]) => {\n this.headers.push(this.createHeaderGroup({ key, value }));\n });\n }\n\n private headersToRecord(): Record<string, string> {\n return this.headers.controls.reduce<Record<string, string>>(\n (acc, group) => {\n const key = group.controls.key.value?.trim();\n if (key) {\n acc[key] = group.controls.value.value ?? '';\n }\n return acc;\n },\n {},\n );\n }\n}\n","<div [formGroup]=\"form\" class=\"space-y-6\">\n <div class=\"space-y-4 rounded-xl bg-white px-6 py-4 shadow-sm\">\n <div class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_auto]\">\n <mt-text-field\n formControlName=\"endpoint\"\n label=\"Endpoint\"\n placeholder=\"https://api.example.com/items\"\n />\n <div class=\"flex justify-end gap-2\">\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.plus\"\n label=\"Add Header\"\n (click)=\"addHeader()\"\n />\n <mt-button\n type=\"button\"\n label=\"Test API\"\n [loading]=\"isTesting()\"\n (click)=\"testApi()\"\n />\n </div>\n </div>\n\n @if (headers.controls.length) {\n <div class=\"space-y-3\">\n <div class=\"text-sm font-medium text-surface-500\">Headers</div>\n <div class=\"space-y-3\">\n @for (\n headerCtrl of headers.controls;\n track headerCtrl;\n let i = $index\n ) {\n <div\n [formGroup]=\"headerCtrl\"\n class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]\"\n >\n <mt-text-field formControlName=\"key\" label=\"Key\" />\n <mt-text-field formControlName=\"value\" label=\"Value\" />\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.trash-01\"\n (click)=\"removeHeader(i)\"\n />\n </div>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n No headers added. Use “Add Header” to include authentication or custom\n headers.\n </p>\n }\n </div>\n\n <div class=\"space-y-4 rounded-xl bg-white px-6 py-4 shadow-sm\">\n @if (hasDetectedSchema()) {\n <div class=\"grid gap-4 md:grid-cols-2\">\n <mt-select-field\n formControlName=\"key\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n label=\"Key field\"\n />\n <mt-select-field\n formControlName=\"value\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n label=\"Value field\"\n />\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n Run “Test API” to detect available fields.\n </p>\n }\n\n <div class=\"flex items-center justify-between gap-4\">\n <mt-toggle-field\n formControlName=\"supportMultiSelect\"\n label=\"Support multiple select\"\n />\n @if (isTesting()) {\n <span class=\"text-xs text-surface-400\">Testing...</span>\n }\n </div>\n </div>\n</div>\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-check-list-form-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './check-list-form-configuration.html',\n styleUrl: './check-list-form-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class CheckListFormConfiguration implements OnDestroy {\n private readonly propertiesFacade = inject(PropertiesFacade);\n private readonly controlContainer = inject(ControlContainer);\n private readonly parentGroup = this.controlContainer.control as FormGroup;\n\n readonly lookups = this.propertiesFacade.lookups;\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configProperties = this.propertiesFacade.configProperties;\n\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((value) => value?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n\n readonly scopeItems = computed(() => {\n const scope = this.configScopes()[0];\n return scope?.items ?? [];\n });\n\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'lookup',\n type: 'select',\n label: 'Select Lookup',\n optionLabel: 'title',\n optionValue: 'id',\n filter: true,\n options: this.lookups(),\n },\n {\n key: 'scopeId',\n type: 'select',\n label: 'Select Scope',\n optionLabel: 'title',\n optionValue: 'id',\n options: this.scopeItems(),\n filter: true,\n },\n new PickListFieldConfig({\n key: 'properties',\n cssClass: 'md:col-span-2',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: 'Available Properties',\n targetHeader: 'Selected Properties',\n }),\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.lookups().length) {\n this.propertiesFacade.loadLookups();\n }\n });\n\n effect(() => {\n const scopeId = this.configuration()?.scopeId;\n if (scopeId) {\n const scopeType = this.configScopes()[0]?.scope;\n if (scopeType) {\n this.propertiesFacade.loadPropertiesForConfigType(scopeType, scopeId);\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-dynamic-list-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './dynamic-list-configuration.html',\n styleUrl: './dynamic-list-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class DynamicListConfiguration implements OnDestroy {\n private readonly propertiesFacade = inject(PropertiesFacade);\n private readonly controlContainer = inject(ControlContainer);\n private readonly parentGroup = this.controlContainer.control as FormGroup;\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configProperties = this.propertiesFacade.configProperties;\n\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((value) => value?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n\n readonly scopeItems = computed(() => {\n const scope = this.configScopes()[0];\n return scope?.items ?? [];\n });\n\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'scopeId',\n type: 'select',\n label: 'Select Scope',\n optionLabel: 'title',\n optionValue: 'id',\n filter: true,\n\n options: this.scopeItems(),\n },\n new PickListFieldConfig({\n key: 'properties',\n cssClass: 'md:col-span-2',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: 'Available Properties',\n targetHeader: 'Selected Properties',\n }),\n {\n key: 'mapToActual',\n type: 'toggle',\n label: 'Map To Actual',\n cssClass: 'md:col-span-2',\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n const scopeId = this.configuration()?.scopeId;\n if (scopeId) {\n const scopeType = this.configScopes()[0]?.scope;\n if (scopeType) {\n this.propertiesFacade.loadPropertiesForConfigType(scopeType, scopeId);\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-editable-list-view-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './editable-list-view-configuration.html',\n styleUrl: './editable-list-view-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class EditableListViewConfiguration implements OnDestroy {\n private readonly propertiesFacade = inject(PropertiesFacade);\n private readonly controlContainer = inject(ControlContainer);\n private readonly parentGroup = this.controlContainer.control as FormGroup;\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configProperties = this.propertiesFacade.configProperties;\n\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((value) => value?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n\n readonly scopeItems = computed(() => {\n const scope = this.configScopes()[0];\n return scope?.items ?? [];\n });\n\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'scopeId',\n type: 'select',\n label: 'Select Scope',\n optionLabel: 'title',\n optionValue: 'id',\n options: this.scopeItems(),\n },\n\n new PickListFieldConfig({\n key: 'Properties',\n cssClass: 'md:col-span-2',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: 'Available Properties',\n targetHeader: 'Selected Properties',\n }),\n {\n key: 'isEditable',\n type: 'toggle',\n label: 'Is Editable',\n },\n {\n key: 'preserveValue',\n type: 'toggle',\n label: 'Preserve Value',\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n const scopeId = this.configuration()?.scopeId;\n if (scopeId) {\n const scopeType = this.configScopes()[0]?.scope;\n if (scopeType) {\n this.propertiesFacade.loadPropertiesForConfigType(scopeType, scopeId);\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-internal-module-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './internal-module-configuration.html',\n styleUrl: './internal-module-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class InternalModuleConfiguration implements OnDestroy {\n // private readonly workspaceStructureFacade = inject(WorkspaceStructureFacade);\n // = this.workspaceStructureFacade.workspaceNodes;\n levels: any;\n private readonly propertiesFacade = inject(PropertiesFacade);\n private cc = inject(ControlContainer);\n parentGroup = this.cc.control as FormGroup;\n readonly configProperties = this.propertiesFacade.configProperties;\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((v) => v?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n PrevModuleId = signal<string | null>(null);\n\n readonly scopeItems = computed(() => {\n const selectedType = this.configuration()?.type;\n if (!selectedType) return [];\n const scope = this.configScopes().find((s) => s.scope === selectedType);\n return scope?.items ?? [];\n });\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3 align-items-end ',\n fields: [\n {\n key: 'type',\n type: 'select',\n label: 'Type',\n optionLabel: 'scope',\n optionValue: 'scope',\n options: this.configScopes(),\n },\n {\n key: 'scopeId',\n type: 'select',\n label: 'Select Scope',\n optionLabel: 'title',\n optionValue: 'id',\n filter: true,\n\n options: this.scopeItems(),\n },\n {\n type: 'select',\n key: 'property',\n label: 'Value Property',\n optionLabel: 'title',\n optionValue: 'key',\n options: this.configProperties(),\n },\n\n new PickListFieldConfig({\n cssClass: 'md:col-span-2 mt-2',\n key: 'propertyDetails',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: 'Available Properties',\n targetHeader: 'Selected Properties',\n }),\n {\n cssClass: 'md:col-span-2',\n key: 'preserveValue',\n type: 'toggle',\n label: 'Preserve Value',\n },\n ],\n },\n ],\n }));\n constructor() {\n effect(() => {\n if (this.configuration()?.scopeId) {\n const moduleType = this.configuration()?.type;\n const moduleId = this.configuration()?.scopeId;\n if (moduleId == this.PrevModuleId()) {\n return;\n }\n if (moduleType && moduleId) {\n this.PrevModuleId.set(moduleId);\n this.propertiesFacade.loadPropertiesForConfigType(\n moduleType,\n moduleId,\n );\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, computed, effect, inject } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { PropertiesFacade } from '../../../../store';\n\n@Component({\n selector: 'mt-location-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './location-configuration.html',\n styleUrl: './location-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class LocationConfiguration {\n private readonly facade = inject(PropertiesFacade);\n readonly countries = this.facade.countries;\n\n readonly formConfig = computed<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'country',\n type: 'select',\n label: 'Select Country',\n optionLabel: 'name',\n optionValue: 'name',\n options: this.countries(),\n filter: true,\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.countries().length) {\n this.facade.loadCountries();\n }\n });\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, computed, effect, inject } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { PropertiesFacade } from '../../../../store';\n\n@Component({\n selector: 'mt-lookup-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './lookup-configuration.html',\n styleUrl: './lookup-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class LookupConfiguration {\n private readonly facade = inject(PropertiesFacade);\n readonly lookups = this.facade.lookups;\n\n readonly formConfig = computed<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'lookup',\n type: 'select',\n label: 'Select Lookup',\n optionLabel: 'title',\n optionValue: 'id',\n options: this.lookups(),\n filter: true,\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.lookups().length) {\n this.facade.loadLookups();\n }\n });\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, signal } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\n\n@Component({\n selector: 'mt-percentage-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './percentage-configuration.html',\n styleUrl: './percentage-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class PercentageConfiguration {\n readonly formConfig = signal<DynamicFormConfig>({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'color',\n type: 'color-picker',\n label: 'Select Color',\n },\n ],\n },\n ],\n });\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, computed, effect, inject } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { PropertiesFacade } from '../../../../store';\n\n@Component({\n selector: 'mt-user-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './user-configuration.html',\n styleUrl: './user-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class UserConfiguration {\n private readonly facade = inject(PropertiesFacade);\n readonly groups = this.facade.groups;\n\n readonly formConfig = computed<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'group',\n type: 'select',\n label: 'Select Group',\n optionLabel: 'title',\n optionValue: 'id',\n options: this.groups(),\n filter: true,\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.groups().length) {\n this.facade.loadGroups();\n }\n });\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, signal } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\n\nexport const ATTACHMENT_ACCEPT = [\n {\n key: 'image/*',\n name: 'image',\n },\n {\n key: 'application/pdf',\n name: 'pdf',\n },\n {\n key: '.mpp',\n name: 'mpp',\n },\n {\n key: '.xer',\n name: 'xer',\n },\n {\n key: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n name: 'word',\n },\n {\n key: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n name: 'excel',\n },\n {\n key: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n name: 'powrpoint',\n },\n {\n key: '.eml',\n name: 'eml',\n },\n {\n key: '.doc',\n name: 'doc',\n },\n {\n key: '.docx',\n name: 'docx',\n },\n {\n key: '.ppt',\n name: 'ppt',\n },\n {\n key: '.pptx',\n name: 'pptx',\n },\n {\n key: '.xls',\n name: 'xls',\n },\n {\n key: '.xlsx',\n name: 'xlsx',\n },\n {\n key: '.csv',\n name: 'csv',\n },\n {\n key: '.mp4',\n name: 'mp4',\n },\n {\n key: '.mov',\n name: 'mov',\n },\n {\n key: '.wmv',\n name: 'wmv',\n },\n {\n key: '.avi',\n name: 'avi',\n },\n {\n key: '.mkv',\n name: 'mkv',\n },\n {\n key: '.msg',\n name: 'msg',\n },\n {\n key: '.zip',\n name: 'zip',\n },\n {\n key: '.rar',\n name: 'rar',\n },\n {\n key: '.7z',\n name: '7z',\n },\n {\n key: '.gz',\n name: 'gz',\n },\n {\n key: '.gzip',\n name: 'gzip',\n },\n {\n key: '.gzip',\n name: 'gzip',\n },\n];\n\n@Component({\n selector: 'mt-attachment-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './attachment-configuration.html',\n styleUrl: './attachment-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class AttachmentConfiguration {\n readonly formConfig = signal<DynamicFormConfig>({\n sections: [\n {\n key: 'configuration',\n label: 'Configuration',\n cssClass:\n ' rounded-xl bg-white \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n new PickListFieldConfig({\n key: 'AcceptTypes',\n options: ATTACHMENT_ACCEPT,\n optionLabel: 'name',\n optionValue: 'key',\n sourceHeader: 'Available Types',\n targetHeader: 'Selected Types',\n cssClass: 'md:col-span-2',\n }),\n {\n key: 'IsMulitple',\n type: 'toggle',\n label: 'Allow Multiple Files',\n },\n ],\n },\n ],\n });\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n ComponentRef,\n EnvironmentInjector,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n computed,\n effect,\n inject,\n input,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Card } from '@masterteam/components/card';\nimport { Avatar } from '@masterteam/components/avatar';\nimport { Button } from '@masterteam/components/button';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, ValidatorConfig } from '@masterteam/components';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription, distinctUntilChanged, map } from 'rxjs';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { ApiConfiguration } from './configuration-types/api-configuration/api-configuration';\nimport { CheckListFormConfiguration } from './configuration-types/check-list-form-configuration/check-list-form-configuration';\nimport { DynamicListConfiguration } from './configuration-types/dynamic-list-configuration/dynamic-list-configuration';\nimport { EditableListViewConfiguration } from './configuration-types/editable-list-view-configuration/editable-list-view-configuration';\nimport { InternalModuleConfiguration } from './configuration-types/internal-module-configuration/internal-module-configuration';\nimport { LocationConfiguration } from './configuration-types/location-configuration/location-configuration';\nimport { LookupConfiguration } from './configuration-types/lookup-configuration/lookup-configuration';\nimport { PercentageConfiguration } from './configuration-types/percentage-configuration/percentage-configuration';\nimport { UserConfiguration } from './configuration-types/user-configuration/user-configuration';\nimport {\n PropertyItem,\n PropertyPayload,\n} from '../../store/properties/properties.model';\nimport { AttachmentConfiguration } from './configuration-types/attachment-configuration/attachment-configuration';\nimport { PropertiesFacade } from '../../store';\n\n@Component({\n selector: 'mt-property-form',\n imports: [\n Card,\n Avatar,\n Button,\n DynamicForm,\n ReactiveFormsModule,\n ApiConfiguration,\n CheckListFormConfiguration,\n DynamicListConfiguration,\n EditableListViewConfiguration,\n InternalModuleConfiguration,\n LocationConfiguration,\n LookupConfiguration,\n PercentageConfiguration,\n UserConfiguration,\n AttachmentConfiguration,\n SkeletonModule,\n ],\n templateUrl: './property-form.html',\n styleUrl: './property-form.scss',\n})\nexport class PropertyForm implements OnDestroy {\n private readonly facade = inject(PropertiesFacade);\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n\n propertyId = input<string>('');\n\n private readonly propertyTypes = this.facade.propertyTypes;\n\n submitLabel = computed(() => (this.propertyId() ? 'Update' : 'Create'));\n isEditing = computed(() => !!this.propertyId());\n\n // Keep your original structure: \"main\" is a FormControl<any>, \"configuration\" is FormControl<any|null>\n readonly propertyForm = new FormGroup({\n main: new FormControl<any>({\n isCalculated: false,\n viewType: null,\n name: { ar: '', en: '' },\n description: '',\n }),\n configuration: new FormControl<any | null>(null),\n });\n\n private readonly mainControl = this.propertyForm.get(\n 'main',\n ) as FormControl<any>;\n private readonly configurationControl = this.propertyForm.get(\n 'configuration',\n ) as FormControl<any | null>;\n\n private readonly creating = this.facade.isLoading('create');\n private readonly updating = this.facade.isLoading('update');\n readonly loading = this.facade.isLoading('getOne');\n readonly submitting = computed(() => this.creating() || this.updating());\n readonly propertyType = toSignal(\n this.mainControl.valueChanges.pipe(\n map((v) => v?.viewType),\n distinctUntilChanged(),\n ),\n );\n\n private readonly selectedPropertyTypeConfiguration = computed(() => {\n const propertyTypesSetting = this.propertyTypes();\n const selectedViewType = this.propertyType();\n\n if (!propertyTypesSetting?.value || !selectedViewType) return null;\n const match = propertyTypesSetting.value.find(\n (item: any) =>\n item.viewType?.toLowerCase() === selectedViewType.toLowerCase(),\n );\n\n return match?.configuration ?? null;\n });\n\n readonly configurationFormConfig = computed(\n () => this.selectedPropertyTypeConfiguration()?.configurationForm ?? null,\n );\n\n @ViewChild('configurationHost', { read: ViewContainerRef })\n private configurationHost?: ViewContainerRef;\n\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n private readonly configurationComponentType = signal<Type<any> | null>(null);\n private configurationComponentRef: ComponentRef<any> | null = null;\n private configurationComponentLoadId = 0;\n private readonly externalConfigurationForm = signal<FormGroup | null>(null);\n private externalConfigurationSubscriptions: Subscription | null = null;\n private readonly externalConfigurationInvalid = signal(false);\n\n readonly configurationComponentExists = computed(\n () => !!this.configurationComponentType(),\n );\n readonly configurationFormInvalid = computed(() =>\n this.externalConfigurationInvalid(),\n );\n readonly submitDisabled = computed(\n () => this.submitting() || this.configurationFormInvalid(),\n );\n // Your existing dynamic form config unchanged\n dynamicFormConfigMain = linkedSignal<DynamicFormConfig>(() => ({\n layout: {\n containerClass: `space-y-2`,\n },\n sections: [\n {\n key: 'top-row',\n type: 'none',\n cssClass: ' rounded-xl bg-white shadow-sm p-6 mt-3 mb-0',\n bodyClass: 'flex justify-between items-center gap-6',\n fields: [\n {\n key: 'viewType',\n type: 'select',\n placeholder: 'Select Property Type',\n optionLabel: 'label.en',\n optionValue: 'viewType',\n cssClass: 'w-1/2',\n options: this.propertyTypes()?.value,\n disabled: this.isEditing(),\n filter: true,\n },\n {\n key: 'isCalculated',\n type: 'toggle',\n label: 'Calculated',\n cssClass: 'justify-self-end',\n relations: [\n {\n action: 'show',\n key: 'viewType',\n value: 'Text',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'LongText',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Percentage',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Date',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Currency',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Number',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Checkbox',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Lookup',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'LookupMultiSelect',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Time',\n },\n ],\n },\n ],\n },\n {\n key: 'default-info',\n label: 'Default Information',\n type: 'header',\n cssClass: ' rounded-xl bg-white shadow-sm p-6',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'title.en',\n label: 'English Name',\n placeholder: 'English Name',\n validators: [new ValidatorConfig({ type: 'required' })],\n },\n {\n key: 'title.ar',\n label: 'Arabic Name',\n placeholder: 'Arabic Name',\n validators: [new ValidatorConfig({ type: 'required' })],\n },\n {\n key: 'description',\n label: 'Description',\n type: 'textarea',\n cssClass: 'md:col-span-2',\n },\n // {\n // key: 'defaultValue',\n // label: 'Default Value',\n // cssClass: 'md:col-span-2',\n // },\n ],\n },\n ],\n }));\n\n constructor() {\n // Load when editing\n effect(() => {\n if (this.propertyId()) {\n this.facade.loadOne(this.propertyId());\n }\n });\n\n // Patch viewType from store when creating new property\n effect(() => {\n const defaultViewType = this.facade.defaultViewType();\n if (!this.propertyId() && defaultViewType) {\n this.mainControl.patchValue(\n { ...this.mainControl.value, viewType: defaultViewType },\n { emitEvent: true },\n );\n }\n });\n\n // Track previous property type\n let prev: any;\n effect(() => {\n const currentPropertyType = this.propertyType();\n if (!currentPropertyType || !prev || prev == currentPropertyType) {\n prev = this.propertyType();\n return;\n }\n\n this.configurationControl.reset(null);\n });\n effect(() => {\n const currentPropertyType = this.propertyType();\n if (!currentPropertyType) return;\n\n // Reset config scopes before loading new ones\n this.facade.resetConfigScopes();\n\n // Load config scopes for specific property types\n const supportedTypes = [\n 'InternalModule',\n 'DynamicList',\n 'EditableListView',\n 'LookupLog',\n ];\n if (supportedTypes.includes(currentPropertyType)) {\n this.facade.loadConfigAsType(currentPropertyType);\n }\n });\n effect(() => {\n const property = this.facade.selected();\n this.syncFormWithSelectedProperty(property);\n });\n\n effect(() => {\n this.resolveConfigurationComponent(\n this.selectedPropertyTypeConfiguration(),\n );\n });\n\n effect(() => {\n this.renderConfigurationComponent(this.configurationComponentType());\n });\n }\n\n private renderConfigurationComponent(componentType: Type<any> | null) {\n if (!this.configurationHost) return;\n\n this.destroyConfigurationComponent();\n\n if (!componentType) return;\n\n const componentRef = this.configurationHost.createComponent(componentType, {\n environmentInjector: this.environmentInjector,\n });\n\n this.configurationComponentRef = componentRef;\n this.connectExternalConfigurationForm(componentRef.instance);\n }\n\n private destroyConfigurationComponent() {\n this.externalConfigurationSubscriptions?.unsubscribe();\n this.externalConfigurationSubscriptions = null;\n this.externalConfigurationForm.set(null);\n this.externalConfigurationInvalid.set(false);\n this.configurationComponentRef?.destroy();\n this.configurationComponentRef = null;\n this.configurationHost?.clear();\n }\n\n private connectExternalConfigurationForm(instance: any) {\n const form = this.extractConfigurationForm(instance);\n if (!form) return;\n\n this.externalConfigurationForm.set(form);\n this.externalConfigurationInvalid.set(form.invalid);\n\n const currentValue = this.configurationControl.value;\n if (currentValue) {\n form.patchValue(currentValue);\n }\n\n this.configurationControl.setValue(form.value ?? null, {\n emitEvent: false,\n });\n\n this.externalConfigurationSubscriptions = new Subscription();\n this.externalConfigurationSubscriptions.add(\n form.valueChanges.subscribe((value) =>\n this.configurationControl.setValue(value, { emitEvent: false }),\n ),\n );\n this.externalConfigurationSubscriptions.add(\n form.statusChanges.subscribe(() =>\n this.externalConfigurationInvalid.set(form.invalid),\n ),\n );\n }\n\n private extractConfigurationForm(instance: any): FormGroup | null {\n const form = (instance as { form?: any })?.form;\n return form instanceof FormGroup ? form : null;\n }\n // PropertyTypeConfiguration\n private resolveConfigurationComponent(configuration: any | null) {\n const componentLoader = configuration?.configurationComponent;\n const loadId = ++this.configurationComponentLoadId;\n\n if (!componentLoader) {\n this.configurationComponentType.set(null);\n return;\n }\n\n // Direct component type\n if (typeof componentLoader !== 'function' || componentLoader.prototype) {\n this.configurationComponentType.set(componentLoader as Type<any>);\n return;\n }\n\n // Async loader factory\n try {\n const result = (\n componentLoader as () => Type<any> | Promise<Type<any>>\n )();\n this.applyConfigurationComponentResult(result, loadId);\n } catch (error) {\n console.error('Failed to resolve configuration component.', error);\n this.configurationComponentType.set(null);\n }\n }\n\n private applyConfigurationComponentResult(\n result: Type<any> | Promise<Type<any>>,\n loadId: number,\n ) {\n // Async promise result\n if (result instanceof Promise) {\n this.configurationComponentType.set(null);\n result\n .then((component) => {\n if (loadId !== this.configurationComponentLoadId) return;\n\n // Handle default export\n const resolved = (component as any)?.default ?? component;\n this.configurationComponentType.set(resolved as Type<any>);\n })\n .catch((error) => {\n if (loadId === this.configurationComponentLoadId) {\n this.configurationComponentType.set(null);\n }\n console.error('Unable to load configuration component.', error);\n });\n return;\n }\n\n // Direct component type\n this.configurationComponentType.set(result);\n }\n\n createOrEditProperty() {\n const mainValue = this.mainControl.value;\n if (!mainValue) return;\n\n const payload: PropertyPayload = {\n ...mainValue,\n Configuration:\n this.configurationControl.value ?? mainValue.Configuration ?? null,\n };\n\n const request$ = this.propertyId()\n ? this.facade.update(this.propertyId(), payload)\n : this.facade.create(payload);\n\n request$.subscribe(() => this.goBack());\n }\n\n private syncFormWithSelectedProperty(\n property: PropertyItem | PropertyPayload | null,\n ) {\n if (!property) return;\n this.mainControl.patchValue(property, {\n emitEvent: false,\n });\n this.configurationControl.setValue(property?.configuration);\n }\n\n goBack() {\n const path = this.isEditing()\n ? '../../properties-list'\n : '../properties-list';\n this.router.navigate([path], {\n relativeTo: this.route,\n queryParamsHandling: 'preserve',\n });\n }\n\n ngOnDestroy(): void {\n this.facade.resetSelectedProperty();\n this.facade.setDefaultViewType('');\n this.destroyConfigurationComponent();\n }\n}\n","<mt-card class=\"h-full\">\n <ng-template #headless>\n <div class=\"flex justify-between items-center p-3 border-b border-surface\">\n <div class=\"flex gap-2 items-center\">\n <mt-button\n [text]=\"true\"\n icon=\"arrow.arrow-narrow-left\"\n size=\"large\"\n (click)=\"goBack()\"\n ></mt-button>\n <mt-avatar size=\"normal\" icon=\"custom.user-pp\" />\n <h3 class=\"font-bold text-lg\">\n {{ propertyId() ? \"Edit Property\" : \"Create New Property\" }}\n </h3>\n </div>\n <mt-button\n class=\"mx-2\"\n [label]=\"submitLabel()\"\n [icon]=\"isEditing() ? 'custom.pencil' : 'general.plus'\"\n [loading]=\"submitting()\"\n [disabled]=\"submitDisabled() || this.propertyForm.invalid\"\n (click)=\"createOrEditProperty()\"\n />\n </div>\n <div\n [formGroup]=\"propertyForm\"\n class=\"h-full py-4 bg-[radial-gradient(120%_80%_at_100%_0%,_#EBEFFF_0%,_#F6F8FC_45%,_#F6F8FC_100%)] h-full overflow-y-auto flex justify-center\"\n >\n <div class=\"w-1/2 flex flex-col gap-6\">\n @if (loading()) {\n <!-- Skeleton Loading State -->\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <div class=\"flex justify-between items-center gap-6\">\n <p-skeleton width=\"50%\" height=\"3rem\"></p-skeleton>\n <p-skeleton width=\"8rem\" height=\"2.5rem\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"12rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"6rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n <p-skeleton height=\"3rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"10rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"8rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n } @else {\n <mt-dynamic-form\n [formConfig]=\"dynamicFormConfigMain()\"\n [formControlName]=\"'main'\"\n />\n @if (configurationFormConfig()) {\n <mt-dynamic-form\n formControlName=\"configuration\"\n [formConfig]=\"configurationFormConfig()!\"\n />\n } @else {\n <ng-container #configurationHost></ng-container>\n @if (!configurationComponentExists()) {\n @switch (propertyType()) {\n @case (\"User\") {\n <mt-user-configuration />\n }\n @case (\"Percentage\") {\n <mt-percentage-configuration />\n }\n @case (\"Lookup\") {\n <mt-lookup-configuration />\n }\n @case (\"LookupMultiSelect\") {\n <mt-lookup-configuration />\n }\n @case (\"InternalModule\") {\n <mt-internal-module-configuration />\n }\n @case (\"DynamicList\") {\n <mt-dynamic-list-configuration />\n }\n @case (\"API\") {\n <mt-api-configuration formControlName=\"configuration\" />\n }\n <!-- @case('ViewList') { REMOVED FOR NOW\n <mt-view-list-configuration />\n } -->\n @case (\"Attachment\") {\n <mt-attachment-configuration />\n }\n <!-- @case('ReferenceProperty') { REMOVED FOR NOW\n } -->\n @case (\"EditableListView\") {\n <mt-editable-list-view-configuration />\n }\n @case (\"LookupLog\") {\n <mt-check-list-form-configuration />\n }\n <!-- @case('LookupMatrix') { REMOVED FOR NOW\n <mt-lookup-configuration />\n } -->\n @case (\"Location\") {\n <mt-location-configuration />\n }\n }\n }\n }\n }\n </div>\n </div>\n </ng-template>\n</mt-card>\n","/*\n * Public API Surface of structure-builder\n */\n\nexport * from './lib/properties-list/properties-list';\nexport * from './lib/property-form/property-form';\n\nexport * from './store';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["finalize"],"mappings":"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"}
1
+ {"version":3,"file":"masterteam-properties.mjs","sources":["../../../../packages/masterteam/properties/src/store/utils/state-helpers.ts","../../../../packages/masterteam/properties/src/store/properties/properties.actions.ts","../../../../packages/masterteam/properties/src/store/properties/properties.state.ts","../../../../packages/masterteam/properties/src/store/properties/properties.facade.ts","../../../../packages/masterteam/properties/src/store/app.state.ts","../../../../packages/masterteam/properties/src/store/index.ts","../../../../packages/masterteam/properties/src/lib/properties-list/properties-list.ts","../../../../packages/masterteam/properties/src/lib/properties-list/properties-list.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/api-configuration/api-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/api-configuration/api-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/check-list-form-configuration/check-list-form-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/check-list-form-configuration/check-list-form-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/dynamic-list-configuration/dynamic-list-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/dynamic-list-configuration/dynamic-list-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/editable-list-view-configuration/editable-list-view-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/editable-list-view-configuration/editable-list-view-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/internal-module-configuration/internal-module-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/internal-module-configuration/internal-module-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/location-configuration/location-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/location-configuration/location-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/lookup-configuration/lookup-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/lookup-configuration/lookup-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/percentage-configuration/percentage-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/percentage-configuration/percentage-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/user-configuration/user-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/user-configuration/user-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/attachment-configuration/attachment-configuration.ts","../../../../packages/masterteam/properties/src/lib/property-form/configuration-types/attachment-configuration/attachment-configuration.html","../../../../packages/masterteam/properties/src/lib/property-form/property-form.ts","../../../../packages/masterteam/properties/src/lib/property-form/property-form.html","../../../../packages/masterteam/properties/src/public-api.ts","../../../../packages/masterteam/properties/src/masterteam-properties.ts"],"sourcesContent":["import type { StateContext } from '@ngxs/store';\n\nexport interface LoadingStateShape<L extends string = string> {\n loadingActive: L[];\n errors: Partial<Record<L, string>>;\n}\n\ntype LoadingName<T extends LoadingStateShape<string>> =\n T['loadingActive'][number];\n\nexport function startLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive, errors } = ctx.getState();\n\n if (!loadingActive.includes(loadingName)) {\n ctx.patchState({\n loadingActive: [...loadingActive, loadingName],\n } as Partial<T>);\n }\n\n if (errors && errors[loadingName]) {\n const { [loadingName]: _removed, ...rest } = errors;\n ctx.patchState({ errors: rest } as Partial<T>);\n }\n}\n\nexport function endLoading<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n): void {\n const { loadingActive } = ctx.getState();\n\n ctx.patchState({\n loadingActive: loadingActive.filter((name) => name !== loadingName),\n } as Partial<T>);\n}\n\nexport function setLoadingError<T extends LoadingStateShape<string>>(\n ctx: StateContext<T>,\n loadingName: LoadingName<T>,\n message: string,\n): void {\n const { errors } = ctx.getState();\n ctx.patchState({\n errors: { ...errors, [loadingName]: message },\n } as Partial<T>);\n}\n","import type {\n PropertiesQueryParams,\n PropertyPayload,\n ApiTestPayload,\n} from './properties.model';\nimport type { BreadcrumbItem } from '@masterteam/components/breadcrumb';\n\nexport class GetProperties {\n static readonly type = '[Properties] Get All';\n\n constructor(public readonly params?: PropertiesQueryParams) {}\n}\n\nexport class GetProperty {\n static readonly type = '[Properties] Get One';\n\n constructor(\n public readonly id: string | number,\n public readonly mode: 'edit' = 'edit',\n ) {}\n}\n\nexport class GetLookups {\n static readonly type = '[Properties] Get Lookups';\n}\n\nexport class GetGroups {\n static readonly type = '[Properties] Get Groups';\n}\n\nexport class GetConfigAsType {\n static readonly type = '[Properties] Get Config As Type';\n\n constructor(public readonly viewType: string) {}\n}\n\nexport class GetCountries {\n static readonly type = '[Properties] Get Countries';\n}\n\nexport class TestApiConfiguration {\n static readonly type = '[Properties] Test API Configuration';\n\n constructor(public readonly payload: ApiTestPayload) {}\n}\n\nexport class ResetApiConfiguration {\n static readonly type = '[Properties] Reset API Configuration';\n}\n\nexport class GetPropertiesForConfigType {\n static readonly type = '[Properties] Get By Config Type';\n\n constructor(\n public readonly moduleType: string,\n public readonly moduleId: string | number,\n ) {}\n}\n\nexport class ResetConfigProperties {\n static readonly type = '[Properties] Reset Config Properties';\n}\n\nexport class ResetConfigScopes {\n static readonly type = '[Properties] Reset Config Scopes';\n}\n\nexport class ResetSelectedProperty {\n static readonly type = '[Properties] Reset Selected Property';\n}\n\nexport class DeleteProperty {\n static readonly type = '[Properties] Delete';\n\n constructor(public readonly id: string | number) {}\n}\n\nexport class CreateProperty {\n static readonly type = '[Properties] Create';\n\n constructor(public readonly payload: PropertyPayload) {}\n}\n\nexport class UpdateProperty {\n static readonly type = '[Properties] Update';\n\n constructor(\n public readonly id: string | number,\n public readonly payload: PropertyPayload,\n ) {}\n}\n\nexport class SetPropertiesModuleInfo {\n static readonly type = '[Properties] Set Module Info';\n\n constructor(\n public readonly moduleType: string,\n public readonly moduleId: string | number,\n public readonly parentModuleType?: string,\n public readonly parentModuleId?: string | number,\n public readonly parentPath?: string,\n ) {}\n}\nexport class SetPropertyTypes {\n static readonly type = '[Properties] Set Property Types';\n\n constructor(public readonly payload: any) {}\n}\n\nexport class SetBreadcrumb {\n static readonly type = '[Properties] Set Breadcrumb';\n\n constructor(public readonly items: BreadcrumbItem[]) {}\n}\n\nexport class SetDefaultViewType {\n static readonly type = '[Properties] Set Default ViewType';\n\n constructor(public readonly viewType: string) {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { catchError, finalize, switchMap, tap } from 'rxjs/operators';\n\nimport {\n endLoading,\n setLoadingError,\n startLoading,\n} from '../utils/state-helpers';\n\nimport {\n ApiPropertyOption,\n ApiSchema,\n ConfigScope,\n CountryDefinition,\n GroupDefinition,\n LookupDefinition,\n PropertiesLoadingName,\n PropertiesStateModel,\n PropertyItem,\n} from './properties.model';\nimport type { BreadcrumbItem } from '@masterteam/components/breadcrumb';\nimport {\n CreateProperty,\n DeleteProperty,\n GetGroups,\n GetConfigAsType,\n GetLookups,\n GetPropertiesForConfigType,\n GetProperties,\n GetProperty,\n GetCountries,\n TestApiConfiguration,\n ResetApiConfiguration,\n ResetConfigProperties,\n ResetConfigScopes,\n ResetSelectedProperty,\n SetPropertiesModuleInfo,\n UpdateProperty,\n SetPropertyTypes,\n SetBreadcrumb,\n SetDefaultViewType,\n} from './properties.actions';\nimport { Response } from './api.model';\n\nconst DEFAULT_STATE: PropertiesStateModel = {\n properties: [],\n selectedProperty: null,\n loadingActive: [],\n errors: {},\n moduleType: null,\n moduleId: null,\n parentModuleType: null,\n parentModuleId: null,\n lastQueryParams: null,\n lookups: [],\n configTypeProperties: [],\n groups: [],\n configScopes: [],\n countries: [],\n apiSchema: null,\n apiProperties: [],\n breadcrumbItems: [],\n defaultViewType: null,\n};\n\n@State<PropertiesStateModel>({\n name: 'properties',\n defaults: DEFAULT_STATE,\n})\n@Injectable()\nexport class PropertiesState {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = 'Properties';\n private readonly lookupsUrl = 'Lookups';\n private readonly configPropertiesUrl = 'Properties';\n private readonly groupsUrl = 'identity/Groups';\n private readonly countriesUrl = '/assets/countries/countries.json';\n private readonly apiTestUrl = 'app/testAPI';\n private readonly apiDetectUrl = 'app/detect';\n\n @Selector()\n static properties(state: PropertiesStateModel): PropertyItem[] {\n return state.properties;\n }\n\n @Selector()\n static selectedProperty(state: PropertiesStateModel): PropertyItem | null {\n return state.selectedProperty;\n }\n\n @Selector()\n static lookups(state: PropertiesStateModel): LookupDefinition[] {\n return state.lookups;\n }\n\n @Selector()\n static configTypeProperties(state: PropertiesStateModel): PropertyItem[] {\n return state.configTypeProperties;\n }\n\n @Selector()\n static groups(state: PropertiesStateModel): GroupDefinition[] {\n return state.groups;\n }\n\n @Selector()\n static configScopes(state: PropertiesStateModel): ConfigScope[] {\n return state.configScopes;\n }\n\n @Selector()\n static countries(state: PropertiesStateModel): CountryDefinition[] {\n return state.countries;\n }\n\n @Selector()\n static apiSchema(state: PropertiesStateModel): ApiSchema | null {\n return state.apiSchema;\n }\n\n @Selector()\n static apiProperties(state: PropertiesStateModel): ApiPropertyOption[] {\n return state.apiProperties;\n }\n @Selector()\n static propertyTypes(state: PropertiesStateModel): any[] {\n return state.propertyTypes ?? [];\n }\n\n @Selector()\n static breadcrumbItems(state: PropertiesStateModel): BreadcrumbItem[] {\n return state.breadcrumbItems;\n }\n\n @Selector()\n static defaultViewType(state: PropertiesStateModel): string | null {\n return state.defaultViewType;\n }\n\n @Selector()\n static isLoadingFactory(state: PropertiesStateModel) {\n return (loadingName: PropertiesLoadingName) =>\n state.loadingActive.includes(loadingName);\n }\n\n @Selector()\n static errorFactory(state: PropertiesStateModel) {\n return (loadingName: PropertiesLoadingName) =>\n state.errors?.[loadingName] ?? null;\n }\n\n @Selector()\n static propertyById(state: PropertiesStateModel) {\n return (id: number | string) =>\n state.properties.find((property) => property.id === Number(id)) ?? null;\n }\n\n @Action(GetProperties)\n getAll(ctx: StateContext<PropertiesStateModel>, action: GetProperties) {\n startLoading(ctx, 'getAll');\n const state = ctx.getState();\n const moduleType = state.moduleType ?? undefined;\n const moduleId = state.moduleId ?? undefined;\n const parentPath = state.parentPath ?? '';\n const params = { ...action.params };\n\n ctx.patchState({\n lastQueryParams: params ?? null,\n });\n return this.http\n .get<Response<PropertyItem[]>>(\n `${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`,\n {\n params: params,\n },\n )\n .pipe(\n tap((response) => {\n const properties = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ properties });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load properties';\n setLoadingError(ctx, 'getAll', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getAll')),\n );\n }\n\n @Action(GetProperty)\n getOne(ctx: StateContext<PropertiesStateModel>, action: GetProperty) {\n startLoading(ctx, 'getOne');\n\n const params = { mode: action.mode ?? 'edit' };\n\n return this.http\n .get<Response<PropertyItem>>(`${this.baseUrl}/${action.id}`, { params })\n .pipe(\n tap((response) => {\n ctx.patchState({\n selectedProperty: response?.data ?? null,\n });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load property';\n setLoadingError(ctx, 'getOne', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'getOne')),\n );\n }\n\n @Action(GetLookups)\n getLookups(ctx: StateContext<PropertiesStateModel>, _action: GetLookups) {\n const state = ctx.getState();\n if (state.lookups.length) {\n return of(state.lookups);\n }\n\n startLoading(ctx, 'getLookups');\n\n return this.http.get<Response<LookupDefinition[]>>(this.lookupsUrl).pipe(\n tap((response) => {\n const lookups = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ lookups });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load lookups';\n setLoadingError(ctx, 'getLookups', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getLookups')),\n );\n }\n\n @Action(GetGroups)\n getGroups(ctx: StateContext<PropertiesStateModel>, _action: GetGroups) {\n const state = ctx.getState();\n if (state.groups.length) {\n return of(state.groups);\n }\n\n startLoading(ctx, 'getGroups');\n\n return this.http.get<Response<GroupDefinition[]>>(this.groupsUrl).pipe(\n tap((response) => {\n const groups = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ groups });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load groups';\n setLoadingError(ctx, 'getGroups', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getGroups')),\n );\n }\n\n @Action(GetConfigAsType)\n getConfigAsType(\n ctx: StateContext<PropertiesStateModel>,\n action: GetConfigAsType,\n ) {\n const state = ctx.getState();\n\n // Don't reload if we already have data for this viewType\n if (state.configScopes.length) {\n return of(state.configScopes);\n }\n\n startLoading(ctx, 'getConfigAsType');\n\n const url = `${this.baseUrl}/${action.viewType}/GetViewTypeProperties`;\n\n return this.http.get<Response<ConfigScope[]>>(url).pipe(\n tap((response) => {\n const configScopes = Array.isArray(response?.data) ? response.data : [];\n ctx.patchState({ configScopes });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load configuration scopes';\n setLoadingError(ctx, 'getConfigAsType', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getConfigAsType')),\n );\n }\n\n @Action(GetCountries)\n getCountries(ctx: StateContext<PropertiesStateModel>, _action: GetCountries) {\n const state = ctx.getState();\n if (state.countries.length) {\n return of(state.countries);\n }\n\n startLoading(ctx, 'getCountries');\n\n return this.http.get<CountryDefinition[]>(this.countriesUrl).pipe(\n tap((response) => {\n const countries = Array.isArray(response) ? response : [];\n ctx.patchState({ countries });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to load countries';\n setLoadingError(ctx, 'getCountries', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getCountries')),\n );\n }\n\n @Action(TestApiConfiguration)\n testApiConfiguration(\n ctx: StateContext<PropertiesStateModel>,\n action: TestApiConfiguration,\n ) {\n startLoading(ctx, 'testApiConfiguration');\n ctx.patchState({\n apiSchema: null,\n apiProperties: [],\n });\n\n return this.http.post<Response<any>>(this.apiTestUrl, action.payload).pipe(\n switchMap((testResponse) => {\n const rawData = testResponse?.data;\n if (!rawData) {\n return of(null);\n }\n\n const formData = new FormData();\n formData.append('jsonData', JSON.stringify(rawData));\n\n return this.http\n .post<Response<ApiSchema>>(this.apiDetectUrl, formData)\n .pipe(\n tap((detectResponse) => {\n const schema = detectResponse?.data ?? null;\n const apiProperties = this.mapSchemaToOptions(schema);\n ctx.patchState({\n apiSchema: schema,\n apiProperties,\n });\n }),\n );\n }),\n catchError((error) => {\n const message =\n error?.error?.message ?? error?.message ?? 'Failed to test API';\n setLoadingError(ctx, 'testApiConfiguration', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'testApiConfiguration')),\n );\n }\n\n @Action(ResetApiConfiguration)\n resetApiConfiguration(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({\n apiSchema: null,\n apiProperties: [],\n });\n }\n\n private mapSchemaToOptions(schema: ApiSchema | null): ApiPropertyOption[] {\n if (!schema?.properties) {\n return [];\n }\n\n return Object.entries(schema.properties).map(([key, definition]) => {\n const typeLabel = definition?.type ? ` | ${definition.type}` : '';\n return {\n key,\n name: `${key}${typeLabel}`,\n type: definition?.type,\n } as ApiPropertyOption;\n });\n }\n\n @Action(GetPropertiesForConfigType)\n getPropertiesForConfigType(\n ctx: StateContext<PropertiesStateModel>,\n action: GetPropertiesForConfigType,\n ) {\n startLoading(ctx, 'getConfigProperties');\n\n const { moduleType, moduleId } = action;\n\n return this.http\n .get<\n Response<PropertyItem[]>\n >(`${this.configPropertiesUrl}/${moduleType}/${moduleId}`)\n .pipe(\n tap((response) => {\n const configTypeProperties = Array.isArray(response?.data)\n ? response.data\n : [];\n ctx.patchState({ configTypeProperties });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to load properties';\n setLoadingError(ctx, 'getConfigProperties', message);\n return of([]);\n }),\n finalize(() => endLoading(ctx, 'getConfigProperties')),\n );\n }\n\n @Action(ResetConfigProperties)\n resetConfigProperties(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({ configTypeProperties: [] });\n }\n\n @Action(ResetConfigScopes)\n resetConfigScopes(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({ configScopes: [] });\n }\n\n @Action(ResetSelectedProperty)\n resetSelectedProperty(ctx: StateContext<PropertiesStateModel>) {\n ctx.patchState({ selectedProperty: null });\n }\n\n @Action(SetPropertiesModuleInfo)\n setModuleInfo(\n ctx: StateContext<PropertiesStateModel>,\n action: SetPropertiesModuleInfo,\n ) {\n let parentPath = '';\n if (action.parentModuleType && action.parentModuleId) {\n parentPath = `/${action.parentModuleType}/${action.parentModuleId}`;\n } else if (action.parentPath) {\n parentPath = action.parentPath;\n }\n ctx.patchState({\n moduleType: action.moduleType,\n moduleId: action.moduleId,\n parentModuleType: action.parentModuleType ?? null,\n parentModuleId: action.parentModuleId ?? null,\n parentPath: parentPath ?? '',\n });\n }\n\n @Action(CreateProperty)\n create(ctx: StateContext<PropertiesStateModel>, action: CreateProperty) {\n startLoading(ctx, 'create');\n\n const state = ctx.getState();\n const moduleType = state.moduleType ?? undefined;\n const moduleId = state.moduleId ?? undefined;\n const parentPath = state.parentPath ?? '';\n\n if (!moduleType || moduleId === undefined || moduleId === null) {\n const message = 'Missing module context for creating property';\n setLoadingError(ctx, 'create', message);\n endLoading(ctx, 'create');\n return of(null);\n }\n\n return this.http\n .post<\n Response<PropertyItem>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}`, action.payload)\n .pipe(\n tap((response) => {\n const created = response?.data;\n if (!created) {\n return;\n }\n\n const state = ctx.getState();\n ctx.patchState({\n properties: [...state.properties, created],\n selectedProperty: created,\n });\n }),\n finalize(() => endLoading(ctx, 'create')),\n );\n }\n\n @Action(UpdateProperty)\n update(ctx: StateContext<PropertiesStateModel>, action: UpdateProperty) {\n startLoading(ctx, 'update');\n\n const state = ctx.getState();\n const moduleType = state.moduleType ?? undefined;\n const moduleId = state.moduleId ?? undefined;\n const parentPath = state.parentPath ?? '';\n\n if (!moduleType || moduleId === undefined || moduleId === null) {\n const message = 'Missing module context for updating property';\n setLoadingError(ctx, 'update', message);\n endLoading(ctx, 'update');\n return of(null);\n }\n return this.http\n .put<\n Response<PropertyItem>\n >(`${this.baseUrl}${parentPath}/${moduleType}/${moduleId}/${action.id}`, action.payload)\n .pipe(\n tap((response) => {\n const updated = response?.data;\n if (!updated) {\n return;\n }\n\n const updatedId = updated.id ?? Number(action.id);\n const state = ctx.getState();\n const properties = state.properties.some(\n (item) => item.id === updatedId,\n )\n ? state.properties.map((item) =>\n item.id === updatedId ? { ...item, ...updated } : item,\n )\n : [...state.properties, updated];\n\n ctx.patchState({\n properties,\n selectedProperty: updated,\n });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to update property';\n setLoadingError(ctx, 'update', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'update')),\n );\n }\n\n @Action(DeleteProperty)\n delete(ctx: StateContext<PropertiesStateModel>, action: DeleteProperty) {\n startLoading(ctx, 'delete');\n\n return this.http\n .delete<void>(`${this.baseUrl}/${encodeURIComponent(String(action.id))}`)\n .pipe(\n tap(() => {\n const { properties, selectedProperty } = ctx.getState();\n const remaining = properties.filter(\n (item) => item.id !== Number(action.id),\n );\n const nextSelected =\n selectedProperty && selectedProperty.id === Number(action.id)\n ? null\n : selectedProperty;\n ctx.patchState({\n properties: remaining,\n selectedProperty: nextSelected,\n });\n }),\n catchError((error) => {\n const message =\n error?.error?.message ??\n error?.message ??\n 'Failed to delete property';\n setLoadingError(ctx, 'delete', message);\n return of(null);\n }),\n finalize(() => endLoading(ctx, 'delete')),\n );\n }\n\n @Action(SetPropertyTypes)\n SetPropertyTypes(\n ctx: StateContext<PropertiesStateModel>,\n action: SetPropertyTypes,\n ) {\n ctx.patchState({\n propertyTypes: action.payload,\n });\n }\n\n @Action(SetBreadcrumb)\n setBreadcrumb(\n ctx: StateContext<PropertiesStateModel>,\n action: SetBreadcrumb,\n ) {\n ctx.patchState({\n breadcrumbItems: action.items,\n });\n }\n\n @Action(SetDefaultViewType)\n setDefaultViewType(\n ctx: StateContext<PropertiesStateModel>,\n action: SetDefaultViewType,\n ) {\n ctx.patchState({\n defaultViewType: action.viewType,\n });\n }\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { select, Store } from '@ngxs/store';\nimport type { Observable } from 'rxjs';\n\nimport type { GroupDefinition } from './properties.model';\nimport type { ConfigScope } from './properties.model';\nimport type { PropertyItem } from './properties.model';\nimport type { CountryDefinition } from './properties.model';\nimport type { ApiPropertyOption } from './properties.model';\nimport type { ApiSchema } from './properties.model';\nimport type { ApiTestPayload } from './properties.model';\nimport type { BreadcrumbItem } from '@masterteam/components/breadcrumb';\nimport {\n CreateProperty,\n DeleteProperty,\n GetGroups,\n GetConfigAsType,\n GetLookups,\n GetCountries,\n TestApiConfiguration,\n ResetApiConfiguration,\n GetPropertiesForConfigType,\n GetProperties,\n GetProperty,\n ResetConfigProperties,\n ResetConfigScopes,\n ResetSelectedProperty,\n SetPropertiesModuleInfo,\n UpdateProperty,\n SetPropertyTypes,\n SetBreadcrumb,\n SetDefaultViewType,\n} from './properties.actions';\nimport { PropertiesState } from './properties.state';\nimport type {\n LookupDefinition,\n PropertiesLoadingName,\n PropertiesQueryParams,\n PropertyPayload,\n} from './properties.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertiesFacade {\n private readonly store = inject(Store);\n readonly list = select(PropertiesState.properties);\n readonly propertyTypes = select<any>(PropertiesState.propertyTypes);\n readonly selected = select(PropertiesState.selectedProperty);\n readonly lookups = select<LookupDefinition[]>(PropertiesState.lookups);\n readonly configProperties = select<PropertyItem[]>(\n PropertiesState.configTypeProperties,\n );\n readonly groups = select<GroupDefinition[]>(PropertiesState.groups);\n readonly configScopes = select<ConfigScope[]>(PropertiesState.configScopes);\n readonly countries = select<CountryDefinition[]>(PropertiesState.countries);\n readonly apiSchema = select<ApiSchema | null>(PropertiesState.apiSchema);\n readonly apiProperties = select<ApiPropertyOption[]>(\n PropertiesState.apiProperties,\n );\n readonly breadcrumbItems = select<BreadcrumbItem[]>(\n PropertiesState.breadcrumbItems,\n );\n readonly defaultViewType = select<string | null>(\n PropertiesState.defaultViewType,\n );\n readonly systemProperties = computed(() =>\n this.list().filter((property) => Boolean(property.isSystem)),\n );\n readonly customProperties = computed(() =>\n this.list().filter((property) => !Boolean(property.isSystem)),\n );\n\n isLoading(loadingName: PropertiesLoadingName) {\n const loadingFactory = select<(name: PropertiesLoadingName) => boolean>(\n PropertiesState.isLoadingFactory,\n );\n return computed(() => loadingFactory()(loadingName));\n }\n\n loadAll(params?: Partial<PropertiesQueryParams>): Observable<unknown> {\n return this.store.dispatch(new GetProperties(params));\n }\n\n loadOne(id: string | number, mode: 'edit' = 'edit'): Observable<unknown> {\n return this.store.dispatch(new GetProperty(id, mode));\n }\n\n delete(id: string | number): Observable<unknown> {\n return this.store.dispatch(new DeleteProperty(id));\n }\n\n create(payload: PropertyPayload): Observable<unknown> {\n return this.store.dispatch(new CreateProperty(payload));\n }\n\n update(id: string | number, payload: PropertyPayload): Observable<unknown> {\n return this.store.dispatch(new UpdateProperty(id, payload));\n }\n\n setModuleInfo(\n moduleType: string,\n moduleId: string | number,\n parentModuleType?: string,\n parentModuleId?: string | number,\n parentPath?: string,\n ): Observable<unknown> {\n return this.store.dispatch(\n new SetPropertiesModuleInfo(\n moduleType,\n moduleId,\n parentModuleType,\n parentModuleId,\n parentPath,\n ),\n );\n }\n\n loadLookups(): Observable<unknown> {\n return this.store.dispatch(new GetLookups());\n }\n\n loadGroups(): Observable<unknown> {\n return this.store.dispatch(new GetGroups());\n }\n\n loadConfigAsType(viewType: string): Observable<unknown> {\n return this.store.dispatch(new GetConfigAsType(viewType));\n }\n\n loadCountries(): Observable<unknown> {\n return this.store.dispatch(new GetCountries());\n }\n\n testApiConfiguration(payload: ApiTestPayload): Observable<unknown> {\n return this.store.dispatch(new TestApiConfiguration(payload));\n }\n\n resetApiConfiguration(): Observable<unknown> {\n return this.store.dispatch(new ResetApiConfiguration());\n }\n setPropertyTypes(propertyTypes: any) {\n return this.store.dispatch(new SetPropertyTypes(propertyTypes));\n }\n\n loadPropertiesForConfigType(\n moduleType: string,\n moduleId: string | number,\n ): Observable<unknown> {\n return this.store.dispatch(\n new GetPropertiesForConfigType(moduleType, moduleId),\n );\n }\n\n resetSelectedProperty(): Observable<unknown> {\n return this.store.dispatch(new ResetSelectedProperty());\n }\n\n resetConfigProperties(): Observable<unknown> {\n return this.store.dispatch(new ResetConfigProperties());\n }\n\n resetConfigScopes(): Observable<unknown> {\n return this.store.dispatch(new ResetConfigScopes());\n }\n\n setBreadcrumb(items: BreadcrumbItem[]): Observable<unknown> {\n return this.store.dispatch(new SetBreadcrumb(items));\n }\n\n setDefaultViewType(viewType: string): Observable<unknown> {\n return this.store.dispatch(new SetDefaultViewType(viewType));\n }\n}\n","// store/app.state.ts\n\nimport { HttpContextToken } from '@angular/common/http';\n\nexport const REQUEST_CONTEXT = new HttpContextToken<{ useBaseUrl: boolean }>(\n () => ({\n useBaseUrl: false,\n }),\n);\n","// store/index.ts\n// This file exports EVERYTHING - one import for all state needs\n\n// States\n\nexport * from './properties/properties.state';\nexport * from './properties/properties.model';\n\n// Actions\n\nexport * from './properties/properties.actions';\n\n// Facades\n\nexport * from './properties/properties.facade';\n\n// Re-export app state\nexport * from './app.state';\n","import {\n Component,\n computed,\n inject,\n input,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Table, ColumnDef, TableAction } from '@masterteam/components/table';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PropertiesFacade, PropertyItem } from '../../store';\nimport { Breadcrumb } from '@masterteam/components/breadcrumb';\nimport { Card } from '@masterteam/components/card';\nimport { Avatar } from '@masterteam/components/avatar';\nimport { Divider } from 'primeng/divider';\nimport { Button } from '@masterteam/components/button';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { finalize } from 'rxjs';\n\n@Component({\n selector: 'mt-properties-list',\n standalone: true,\n imports: [\n CommonModule,\n Table,\n Breadcrumb,\n Card,\n Avatar,\n Divider,\n Button,\n TranslocoModule,\n ],\n templateUrl: './properties-list.html',\n styleUrl: './properties-list.scss',\n})\nexport class PropertiesList {\n private readonly facade = inject(PropertiesFacade);\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n private readonly transloco = inject(TranslocoService);\n private readonly defaultTab = 'all';\n\n tab = input<string>();\n\n tabs = signal([\n {\n label: this.transloco.translate('properties.list.tabAll'),\n value: 'all',\n },\n {\n label: this.transloco.translate('properties.list.tabSystem'),\n value: 'system',\n },\n {\n label: this.transloco.translate('properties.list.tabCustom'),\n value: 'custom',\n },\n ]);\n\n activeTab = linkedSignal(() => {\n return this.tab() || this.defaultTab;\n });\n\n readonly tableColumns = signal<ColumnDef[]>([\n {\n key: 'title',\n label: this.transloco.translate('properties.list.columnName'),\n },\n {\n key: 'viewType',\n label: this.transloco.translate('properties.list.columnType'),\n },\n {\n key: 'required',\n label: this.transloco.translate('properties.list.columnRequired'),\n type: 'boolean',\n },\n ]);\n\n propertyTypes = signal([\n {\n label: this.transloco.translate('properties.list.typeShortText'),\n icon: 'editor.type-square',\n value: 'Text',\n color: 'pink',\n },\n {\n label: this.transloco.translate('properties.list.typeParagraph'),\n icon: 'editor.line-height',\n value: 'LongText',\n color: 'sky',\n },\n {\n label: this.transloco.translate('properties.list.typeUser'),\n icon: 'user.user-01',\n value: 'User',\n color: 'yellow',\n },\n {\n label: this.transloco.translate('properties.list.typeNumber'),\n icon: 'editor.letter-spacing-01',\n value: 'Number',\n color: 'violet',\n },\n {\n label: this.transloco.translate('properties.list.typeCurrency'),\n icon: 'finance.currency-dollar',\n value: 'Currency',\n color: 'indigo',\n },\n {\n label: this.transloco.translate('properties.list.typeLookup'),\n icon: 'custom.list-cards',\n value: 'Lookup',\n color: 'lime',\n },\n ]);\n tableActions = computed<TableAction[]>(() => {\n if (this.tableData().length === 0 || this.activeTab() === 'system') {\n return [];\n }\n return [\n {\n icon: 'general.plus',\n label: this.transloco.translate('properties.list.createAction'),\n color: 'primary',\n action: () => {\n this.createProperty();\n },\n },\n ];\n });\n deletingRowIds = signal<any[]>([]);\n readonly rowActions = signal<TableAction[]>([\n {\n icon: 'custom.pencil',\n tooltip: this.transloco.translate('properties.list.editAction'),\n color: 'primary',\n action: (row) => this.editRow(row),\n },\n {\n icon: 'general.trash-01',\n tooltip: this.transloco.translate('properties.list.deleteAction'),\n color: 'danger',\n variant: 'outlined',\n action: (row) => this.deleteRow(row),\n hidden: (row: any) => !!row.isSystem,\n confirmation: {\n type: 'popup',\n confirmationType: 'delete',\n },\n loading: (row: PropertyItem) => this.deletingRowIds().includes(row.id),\n },\n ]);\n\n readonly loading = this.facade.isLoading('getAll');\n\n readonly tableData = computed(() => {\n const tab = this.activeTab();\n const allProperties = this.facade.list();\n\n switch (tab) {\n case 'system':\n return this.facade.systemProperties();\n case 'custom':\n return this.facade.customProperties();\n case 'all':\n default:\n return allProperties;\n }\n });\n\n readonly breadcrumbItems = this.facade.breadcrumbItems;\n\n private editRow(row: PropertyItem): void {\n if (!row?.id) {\n return;\n }\n this.navigatePreservingTab(['../properties-form', row.id]);\n }\n\n private deleteRow(row: PropertyItem): void {\n if (!row?.id) {\n return;\n }\n this.deletingRowIds.update((ids) => [...ids, row.id]);\n this.facade\n .delete(row.id)\n .pipe(\n finalize(() => {\n this.deletingRowIds.update((ids) =>\n ids.filter((id) => id !== row.id),\n );\n }),\n )\n .subscribe();\n }\n\n createProperty() {\n this.navigatePreservingTab(['../properties-form']);\n }\n\n createPropertyWithType(viewType: string) {\n this.facade.setDefaultViewType(viewType);\n this.createProperty();\n }\n onTabChange(tab: string): void {\n const currentTab = tab;\n if (currentTab != this.tab()) {\n this.updateTabQueryParam(currentTab);\n }\n }\n private updateTabQueryParam(tab: string): void {\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { tab },\n queryParamsHandling: 'merge',\n replaceUrl: true,\n });\n }\n\n private navigatePreservingTab(commands: any[]): void {\n this.router.navigate(commands, {\n relativeTo: this.route,\n queryParams: { tab: this.activeTab() },\n queryParamsHandling: 'merge',\n });\n }\n}\n","<div class=\"space-y-3\">\n <div class=\"flex items-center justify-between\">\n <div class=\"space-y-1\">\n <h1 class=\"text-xl font-semibold text-slate-900 tracking-tight\">\n {{ \"properties.list.pageTitle\" | transloco }}\n </h1>\n <mt-breadcrumb\n [items]=\"breadcrumbItems()\"\n [styleClass]=\"'flex justify-center'\"\n >\n </mt-breadcrumb>\n </div>\n </div>\n <mt-card paddingless>\n <mt-table\n [tabs]=\"tabs()\"\n [(activeTab)]=\"activeTab\"\n (onTabChange)=\"onTabChange($event)\"\n [data]=\"tableData()\"\n [actions]=\"tableActions()\"\n [columns]=\"tableColumns()\"\n [rowActions]=\"rowActions()\"\n [generalSearch]=\"true\"\n [loading]=\"loading()\"\n >\n <ng-template #empty>\n <div headless class=\"flex-col justify-center items-center w-full p-5\">\n <div\n class=\"content flex flex-col gap-5 items-center text-center mb-5\"\n >\n <svg\n width=\"152\"\n height=\"120\"\n viewBox=\"0 0 152 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"76\" cy=\"52\" r=\"52\" fill=\"#E9EAEB\" />\n <g filter=\"url(#filter0_ddd_2474_28277)\">\n <path\n d=\"M77.6 16C66.8273 16 57.2978 21.3233 51.4987 29.4829C49.605 29.0363 47.6301 28.8 45.6 28.8C31.4615 28.8 20 40.2615 20 54.4C20 68.5385 31.4615 80 45.6 80L109.6 80C121.971 80 132 69.9712 132 57.6C132 45.2288 121.971 35.2 109.6 35.2C108.721 35.2 107.854 35.2506 107.002 35.349C102.098 23.9677 90.7797 16 77.6 16Z\"\n fill=\"#FAFAFA\"\n />\n <ellipse\n cx=\"45.6\"\n cy=\"54.3998\"\n rx=\"25.6\"\n ry=\"25.6\"\n fill=\"url(#paint0_linear_2474_28277)\"\n />\n <circle\n cx=\"77.6016\"\n cy=\"48\"\n r=\"32\"\n fill=\"url(#paint1_linear_2474_28277)\"\n />\n <ellipse\n cx=\"109.599\"\n cy=\"57.6002\"\n rx=\"22.4\"\n ry=\"22.4\"\n fill=\"url(#paint2_linear_2474_28277)\"\n />\n </g>\n <circle cx=\"21\" cy=\"19\" r=\"5\" fill=\"#F5F5F5\" />\n <circle cx=\"18\" cy=\"109\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"145\" cy=\"35\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"134\" cy=\"8\" r=\"4\" fill=\"#F5F5F5\" />\n <foreignObject x=\"44\" y=\"54\" width=\"64\" height=\"64\">\n <div\n xmlns=\"http://www.w3.org/1999/xhtml\"\n style=\"\n backdrop-filter: blur(4px);\n clip-path: url(#bgblur_0_2474_28277_clip_path);\n height: 100%;\n width: 100%;\n \"\n ></div>\n </foreignObject>\n <g data-figma-bg-blur-radius=\"8\">\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n fill=\"#344054\"\n fill-opacity=\"0.4\"\n />\n <path\n d=\"M85 95L81.5001 91.5M84 85.5C84 90.1944 80.1944 94 75.5 94C70.8056 94 67 90.1944 67 85.5C67 80.8056 70.8056 77 75.5 77C80.1944 77 84 80.8056 84 85.5Z\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_ddd_2474_28277\"\n x=\"0\"\n y=\"16\"\n width=\"152\"\n height=\"104\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"1.5\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feOffset dy=\"3\" />\n <feGaussianBlur stdDeviation=\"1.5\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.04 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.03 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_2474_28277\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feOffset dy=\"20\" />\n <feGaussianBlur stdDeviation=\"12\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.08 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect2_dropShadow_2474_28277\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect3_dropShadow_2474_28277\"\n result=\"shape\"\n />\n </filter>\n <clipPath\n id=\"bgblur_0_2474_28277_clip_path\"\n transform=\"translate(-44 -54)\"\n >\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n />\n </clipPath>\n <linearGradient\n id=\"paint0_linear_2474_28277\"\n x1=\"25.9429\"\n y1=\"37.4855\"\n x2=\"71.2\"\n y2=\"79.9998\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_2474_28277\"\n x1=\"53.0301\"\n y1=\"26.8571\"\n x2=\"109.602\"\n y2=\"80\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_2474_28277\"\n x1=\"92.3992\"\n y1=\"42.8002\"\n x2=\"131.999\"\n y2=\"80.0002\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-md text-surface-600\">\n {{ \"properties.list.emptyStateNoData\" | transloco }}\n </div>\n </div>\n <div>\n <mt-button\n [label]=\"'properties.list.addNewProperty' | transloco\"\n icon=\"general.plus\"\n (click)=\"createProperty()\"\n />\n </div>\n </div>\n <p-divider type=\"solid\">\n <div class=\"text-lg text-surface-600\">\n {{ \"properties.list.emptyStateTemplate\" | transloco }}\n </div>\n </p-divider>\n <div class=\"flex gap-3 mt-5 justify-center\">\n @for (card of propertyTypes(); track card.label) {\n <mt-card\n headless\n class=\"w-25 tailwind-4 cursor-pointer\"\n style=\"background-color: #fafafa\"\n (click)=\"createPropertyWithType(card.value)\"\n >\n <div\n class=\"content flex flex-col gap-3 items-center text-center\"\n >\n <mt-avatar\n [style.--p-avatar-background]=\"\n 'var(--p-' + card.color + '-100)'\n \"\n [style.--p-avatar-color]=\"'var(--p-' + card.color + '-600)'\"\n [icon]=\"card.icon\"\n shape=\"square\"\n ></mt-avatar>\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-xs font-normal\">{{ card.label }}</div>\n </div>\n </div>\n </mt-card>\n }\n </div>\n </div>\n </ng-template>\n </mt-table>\n </mt-card>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n signal,\n computed,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\nimport { Button } from '@masterteam/components/button';\nimport { SelectField } from '@masterteam/components/select-field';\nimport { TextField } from '@masterteam/components/text-field';\nimport { ToggleField } from '@masterteam/components/toggle-field';\nimport { PropertiesFacade } from '../../../../store';\nimport type { ApiConfigurationValue, ApiSchema } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\ntype HeaderFormGroup = FormGroup<{\n key: FormControl<string>;\n value: FormControl<string>;\n}>;\n\n@Component({\n selector: 'mt-api-configuration',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TextField,\n SelectField,\n ToggleField,\n Button,\n TranslocoModule,\n ],\n templateUrl: './api-configuration.html',\n styleUrl: './api-configuration.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ApiConfiguration),\n multi: true,\n },\n ],\n})\nexport class ApiConfiguration implements ControlValueAccessor {\n private readonly facade = inject(PropertiesFacade);\n private readonly destroyRef = inject(DestroyRef);\n readonly transloco = inject(TranslocoService);\n\n private readonly schema = signal<ApiSchema | null>(null);\n private isWriting = false;\n private touched = false;\n\n readonly isTesting = this.facade.isLoading('testApiConfiguration');\n readonly apiProperties = this.facade.apiProperties;\n readonly hasDetectedSchema = computed(() => this.apiProperties().length > 0);\n\n readonly form = new FormGroup({\n endpoint: new FormControl<string>('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n headers: new FormArray<HeaderFormGroup>([]),\n key: new FormControl<string | null>(null),\n value: new FormControl<string | null>(null),\n supportMultiSelect: new FormControl<boolean>(false, { nonNullable: true }),\n });\n\n private onChange: (value: ApiConfigurationValue | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n private readonly formChanges = toSignal(this.form.valueChanges, {\n initialValue: this.form.getRawValue(),\n });\n\n constructor() {\n this.facade.resetApiConfiguration();\n effect(() => {\n this.formChanges();\n this.emitValue();\n });\n\n effect(() => {\n const latestSchema = this.facade.apiSchema();\n if (latestSchema !== undefined) {\n this.schema.set(latestSchema);\n if (!this.isWriting) {\n this.emitValue(false);\n }\n }\n });\n\n this.destroyRef.onDestroy(() => {\n this.facade.resetApiConfiguration();\n });\n }\n\n get headers(): FormArray<HeaderFormGroup> {\n return this.form.controls.headers;\n }\n\n writeValue(value: ApiConfigurationValue | null): void {\n this.isWriting = true;\n try {\n if (!value) {\n this.form.reset(\n {\n endpoint: '',\n key: null,\n value: null,\n supportMultiSelect: false,\n },\n { emitEvent: false },\n );\n this.setHeadersFromRecord({});\n this.schema.set(null);\n this.touched = false;\n return;\n }\n\n this.schema.set(value.schema ?? null);\n this.form.patchValue(\n {\n endpoint: value.endpoint ?? '',\n key: value.key ?? null,\n value: value.value ?? null,\n supportMultiSelect: !!value.supportMultiSelect,\n },\n { emitEvent: false },\n );\n this.setHeadersFromRecord(value.headers ?? {});\n this.touched = false;\n } finally {\n this.isWriting = false;\n this.emitValue(false);\n }\n }\n\n registerOnChange(fn: (value: ApiConfigurationValue | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.form.disable({ emitEvent: false });\n } else {\n this.form.enable({ emitEvent: false });\n }\n }\n\n addHeader(): void {\n this.headers.push(this.createHeaderGroup());\n }\n\n removeHeader(index: number): void {\n this.headers.removeAt(index);\n this.emitValue();\n }\n\n testApi(): void {\n if (!this.form.controls.endpoint.valid) {\n this.form.controls.endpoint.markAsTouched();\n return;\n }\n\n const headers = this.headersToRecord();\n const payload = {\n endpoint: this.form.controls.endpoint.value,\n headers: Object.keys(headers).length ? headers : undefined,\n };\n\n this.facade.testApiConfiguration(payload).subscribe();\n }\n\n private emitValue(triggerTouched = true): void {\n if (this.isWriting) {\n return;\n }\n\n const headers = this.headersToRecord();\n const value: ApiConfigurationValue = {\n endpoint: this.form.controls.endpoint.value,\n headers,\n key: this.form.controls.key.value ?? undefined,\n value: this.form.controls.value.value ?? undefined,\n supportMultiSelect: this.form.controls.supportMultiSelect.value,\n schema: this.schema(),\n };\n\n this.onChange(value);\n\n if (triggerTouched && !this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n private createHeaderGroup(\n initial: Partial<{ key: string; value: string }> = {},\n ): HeaderFormGroup {\n return new FormGroup({\n key: new FormControl(initial.key ?? '', { nonNullable: true }),\n value: new FormControl(initial.value ?? '', { nonNullable: true }),\n });\n }\n\n private setHeadersFromRecord(headers: Record<string, string>): void {\n while (this.headers.length) {\n this.headers.removeAt(0);\n }\n\n Object.entries(headers).forEach(([key, value]) => {\n this.headers.push(this.createHeaderGroup({ key, value }));\n });\n }\n\n private headersToRecord(): Record<string, string> {\n return this.headers.controls.reduce<Record<string, string>>(\n (acc, group) => {\n const key = group.controls.key.value?.trim();\n if (key) {\n acc[key] = group.controls.value.value ?? '';\n }\n return acc;\n },\n {},\n );\n }\n}\n","<div [formGroup]=\"form\" class=\"space-y-6\">\n <div class=\"space-y-4 rounded-xl bg-content px-6 py-4 shadow-sm\">\n <div class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_auto]\">\n <mt-text-field\n formControlName=\"endpoint\"\n [label]=\"'properties.form.endpoint' | transloco\"\n [placeholder]=\"'properties.form.endpointPlaceholder' | transloco\"\n />\n <div class=\"flex justify-end gap-2\">\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.plus\"\n [label]=\"'properties.form.addHeader' | transloco\"\n (click)=\"addHeader()\"\n />\n <mt-button\n type=\"button\"\n [label]=\"'properties.form.testApi' | transloco\"\n [loading]=\"isTesting()\"\n (click)=\"testApi()\"\n />\n </div>\n </div>\n\n @if (headers.controls.length) {\n <div class=\"space-y-3\">\n <div class=\"text-sm font-medium text-surface-500\">\n {{ \"properties.form.headers\" | transloco }}\n </div>\n <div class=\"space-y-3\">\n @for (\n headerCtrl of headers.controls;\n track headerCtrl;\n let i = $index\n ) {\n <div\n [formGroup]=\"headerCtrl\"\n class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]\"\n >\n <mt-text-field\n formControlName=\"key\"\n [label]=\"'properties.form.headerKey' | transloco\"\n />\n <mt-text-field\n formControlName=\"value\"\n [label]=\"'properties.form.headerValue' | transloco\"\n />\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.trash-01\"\n (click)=\"removeHeader(i)\"\n />\n </div>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n {{ \"properties.form.noHeadersMessage\" | transloco }}\n </p>\n }\n </div>\n\n <div class=\"space-y-4 rounded-xl bg-content px-6 py-4 shadow-sm\">\n @if (hasDetectedSchema()) {\n <div class=\"grid gap-4 md:grid-cols-2\">\n <mt-select-field\n formControlName=\"key\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n [label]=\"'properties.form.keyField' | transloco\"\n />\n <mt-select-field\n formControlName=\"value\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n [label]=\"'properties.form.valueField' | transloco\"\n />\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n {{ \"properties.form.messageTestApiPrompt\" | transloco }}\n </p>\n }\n\n <div class=\"flex items-center justify-between gap-4\">\n <mt-toggle-field\n formControlName=\"supportMultiSelect\"\n [label]=\"'properties.form.labelSupportMultiSelect' | transloco\"\n />\n @if (isTesting()) {\n <span class=\"text-xs text-surface-400\">\n {{ \"properties.form.messageTesting\" | transloco }}\n </span>\n }\n </div>\n </div>\n</div>\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-check-list-form-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './check-list-form-configuration.html',\n styleUrl: './check-list-form-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class CheckListFormConfiguration implements OnDestroy {\n private readonly propertiesFacade = inject(PropertiesFacade);\n private readonly controlContainer = inject(ControlContainer);\n private readonly parentGroup = this.controlContainer.control as FormGroup;\n private readonly transloco = inject(TranslocoService);\n\n readonly lookups = this.propertiesFacade.lookups;\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configProperties = this.propertiesFacade.configProperties;\n\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((value) => value?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n\n readonly scopeItems = computed(() => {\n const scope = this.configScopes()[0];\n return scope?.items ?? [];\n });\n\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'lookup',\n type: 'select',\n label: this.transloco.translate('properties.form.selectLookup'),\n optionLabel: 'title',\n optionValue: 'id',\n filter: true,\n options: this.lookups(),\n },\n {\n key: 'scopeId',\n type: 'select',\n label: this.transloco.translate('properties.form.selectScope'),\n optionLabel: 'title',\n optionValue: 'id',\n options: this.scopeItems(),\n filter: true,\n },\n new PickListFieldConfig({\n key: 'properties',\n cssClass: 'md:col-span-2',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: this.transloco.translate(\n 'properties.form.availableProperties',\n ),\n targetHeader: this.transloco.translate(\n 'properties.form.selectedProperties',\n ),\n }),\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.lookups().length) {\n this.propertiesFacade.loadLookups();\n }\n });\n\n effect(() => {\n const scopeId = this.configuration()?.scopeId;\n if (scopeId) {\n const scopeType = this.configScopes()[0]?.scope;\n if (scopeType) {\n this.propertiesFacade.loadPropertiesForConfigType(scopeType, scopeId);\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-dynamic-list-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './dynamic-list-configuration.html',\n styleUrl: './dynamic-list-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class DynamicListConfiguration implements OnDestroy {\n private readonly propertiesFacade = inject(PropertiesFacade);\n private readonly controlContainer = inject(ControlContainer);\n private readonly parentGroup = this.controlContainer.control as FormGroup;\n private readonly transloco = inject(TranslocoService);\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configProperties = this.propertiesFacade.configProperties;\n\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((value) => value?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n\n readonly scopeItems = computed(() => {\n const scope = this.configScopes()[0];\n return scope?.items ?? [];\n });\n\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'scopeId',\n type: 'select',\n label: this.transloco.translate('properties.form.selectScope'),\n optionLabel: 'title',\n optionValue: 'id',\n filter: true,\n\n options: this.scopeItems(),\n },\n new PickListFieldConfig({\n key: 'properties',\n cssClass: 'md:col-span-2',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: this.transloco.translate(\n 'properties.form.availableProperties',\n ),\n targetHeader: this.transloco.translate(\n 'properties.form.selectedProperties',\n ),\n }),\n {\n key: 'mappingBehaviour',\n type: 'toggle',\n label: this.transloco.translate('properties.form.mapToActual'),\n cssClass: 'md:col-span-2',\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n const scopeId = this.configuration()?.scopeId;\n if (scopeId) {\n const scopeType = this.configScopes()[0]?.scope;\n if (scopeType) {\n this.propertiesFacade.loadPropertiesForConfigType(scopeType, scopeId);\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-editable-list-view-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './editable-list-view-configuration.html',\n styleUrl: './editable-list-view-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class EditableListViewConfiguration implements OnDestroy {\n private readonly propertiesFacade = inject(PropertiesFacade);\n private readonly controlContainer = inject(ControlContainer);\n private readonly parentGroup = this.controlContainer.control as FormGroup;\n private readonly transloco = inject(TranslocoService);\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configProperties = this.propertiesFacade.configProperties;\n\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((value) => value?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n\n readonly scopeItems = computed(() => {\n const scope = this.configScopes()[0];\n return scope?.items ?? [];\n });\n\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'scopeId',\n type: 'select',\n label: this.transloco.translate('properties.form.selectScope'),\n optionLabel: 'title',\n optionValue: 'id',\n options: this.scopeItems(),\n },\n\n new PickListFieldConfig({\n key: 'Properties',\n cssClass: 'md:col-span-2',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: this.transloco.translate(\n 'properties.form.availableProperties',\n ),\n targetHeader: this.transloco.translate(\n 'properties.form.selectedProperties',\n ),\n }),\n {\n key: 'isEditable',\n type: 'toggle',\n label: this.transloco.translate('properties.form.isEditable'),\n },\n {\n key: 'preserveValue',\n type: 'toggle',\n label: this.transloco.translate('properties.form.preserveValue'),\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n const scopeId = this.configuration()?.scopeId;\n if (scopeId) {\n const scopeType = this.configScopes()[0]?.scope;\n if (scopeType) {\n this.propertiesFacade.loadPropertiesForConfigType(scopeType, scopeId);\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n OnDestroy,\n computed,\n effect,\n inject,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PropertiesFacade } from '../../../../store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\n\n@Component({\n selector: 'mt-internal-module-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './internal-module-configuration.html',\n styleUrl: './internal-module-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class InternalModuleConfiguration implements OnDestroy {\n // private readonly workspaceStructureFacade = inject(WorkspaceStructureFacade);\n // = this.workspaceStructureFacade.workspaceNodes;\n levels: any;\n private readonly propertiesFacade = inject(PropertiesFacade);\n private cc = inject(ControlContainer);\n private readonly transloco = inject(TranslocoService);\n parentGroup = this.cc.control as FormGroup;\n readonly configProperties = this.propertiesFacade.configProperties;\n readonly configScopes = this.propertiesFacade.configScopes;\n readonly configuration = toSignal(\n this.parentGroup.valueChanges.pipe(\n startWith(this.parentGroup.value),\n map((v) => v?.configuration),\n distinctUntilChanged(),\n ),\n { initialValue: this.parentGroup.value?.configuration },\n );\n PrevModuleId = signal<string | null>(null);\n\n readonly scopeItems = computed(() => {\n const selectedType = this.configuration()?.type;\n if (!selectedType) return [];\n const scope = this.configScopes().find((s) => s.scope === selectedType);\n return scope?.items ?? [];\n });\n readonly formConfig = linkedSignal<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3 align-items-end ',\n fields: [\n {\n key: 'type',\n type: 'select',\n label: this.transloco.translate('properties.form.type'),\n optionLabel: 'scope',\n optionValue: 'scope',\n options: this.configScopes(),\n },\n {\n key: 'scopeId',\n type: 'select',\n label: this.transloco.translate('properties.form.selectScope'),\n optionLabel: 'title',\n optionValue: 'id',\n filter: true,\n\n options: this.scopeItems(),\n },\n {\n type: 'select',\n key: 'property',\n label: this.transloco.translate('properties.form.valueProperty'),\n optionLabel: 'title',\n optionValue: 'key',\n options: this.configProperties(),\n },\n\n new PickListFieldConfig({\n cssClass: 'md:col-span-2 mt-2',\n key: 'propertyDetails',\n options: this.configProperties(),\n optionLabel: 'title',\n optionValue: 'key',\n sourceHeader: this.transloco.translate(\n 'properties.form.availableProperties',\n ),\n targetHeader: this.transloco.translate(\n 'properties.form.selectedProperties',\n ),\n }),\n {\n cssClass: 'md:col-span-2',\n key: 'preserveValue',\n type: 'toggle',\n label: this.transloco.translate(\n 'properties.form.labelPreserveValue',\n ),\n },\n ],\n },\n ],\n }));\n constructor() {\n effect(() => {\n if (this.configuration()?.scopeId) {\n const moduleType = this.configuration()?.type;\n const moduleId = this.configuration()?.scopeId;\n if (moduleId == this.PrevModuleId()) {\n return;\n }\n if (moduleType && moduleId) {\n this.PrevModuleId.set(moduleId);\n this.propertiesFacade.loadPropertiesForConfigType(\n moduleType,\n moduleId,\n );\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.propertiesFacade.resetConfigProperties();\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, computed, effect, inject } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PropertiesFacade } from '../../../../store';\n\n@Component({\n selector: 'mt-location-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './location-configuration.html',\n styleUrl: './location-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class LocationConfiguration {\n private readonly facade = inject(PropertiesFacade);\n private readonly transloco = inject(TranslocoService);\n readonly countries = this.facade.countries;\n\n readonly formConfig = computed<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'country',\n type: 'select',\n label: this.transloco.translate('properties.form.selectCountry'),\n optionLabel: 'name',\n optionValue: 'name',\n options: this.countries(),\n filter: true,\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.countries().length) {\n this.facade.loadCountries();\n }\n });\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, computed, effect, inject } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PropertiesFacade } from '../../../../store';\n\n@Component({\n selector: 'mt-lookup-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './lookup-configuration.html',\n styleUrl: './lookup-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class LookupConfiguration {\n private readonly facade = inject(PropertiesFacade);\n private readonly transloco = inject(TranslocoService);\n readonly lookups = this.facade.lookups;\n\n readonly formConfig = computed<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'lookup',\n type: 'select',\n label: this.transloco.translate('properties.form.selectLookup'),\n optionLabel: 'title',\n optionValue: 'id',\n options: this.lookups(),\n filter: true,\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.lookups().length) {\n this.facade.loadLookups();\n }\n });\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, inject, signal } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\n\n@Component({\n selector: 'mt-percentage-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './percentage-configuration.html',\n styleUrl: './percentage-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class PercentageConfiguration {\n private readonly transloco = inject(TranslocoService);\n\n readonly formConfig = signal<DynamicFormConfig>({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'color',\n type: 'color-picker',\n label: this.transloco.translate('properties.form.selectColor'),\n },\n ],\n },\n ],\n });\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, computed, effect, inject } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PropertiesFacade } from '../../../../store';\n\n@Component({\n selector: 'mt-user-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './user-configuration.html',\n styleUrl: './user-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class UserConfiguration {\n private readonly facade = inject(PropertiesFacade);\n private readonly transloco = inject(TranslocoService);\n readonly groups = this.facade.groups;\n\n readonly formConfig = computed<DynamicFormConfig>(() => ({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass:\n 'grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-3',\n fields: [\n {\n key: 'group',\n type: 'select',\n label: this.transloco.translate('properties.form.selectGroup'),\n optionLabel: 'title',\n optionValue: 'id',\n options: this.groups(),\n filter: true,\n },\n ],\n },\n ],\n }));\n\n constructor() {\n effect(() => {\n if (!this.groups().length) {\n this.facade.loadGroups();\n }\n });\n }\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import { Component, inject, signal } from '@angular/core';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, PickListFieldConfig } from '@masterteam/components';\nimport {\n ControlContainer,\n FormGroupDirective,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\n\nexport const ATTACHMENT_ACCEPT = [\n {\n key: 'image/*',\n name: 'image',\n },\n {\n key: 'application/pdf',\n name: 'pdf',\n },\n {\n key: '.mpp',\n name: 'mpp',\n },\n {\n key: '.xer',\n name: 'xer',\n },\n {\n key: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n name: 'word',\n },\n {\n key: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n name: 'excel',\n },\n {\n key: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n name: 'powrpoint',\n },\n {\n key: '.eml',\n name: 'eml',\n },\n {\n key: '.doc',\n name: 'doc',\n },\n {\n key: '.docx',\n name: 'docx',\n },\n {\n key: '.ppt',\n name: 'ppt',\n },\n {\n key: '.pptx',\n name: 'pptx',\n },\n {\n key: '.xls',\n name: 'xls',\n },\n {\n key: '.xlsx',\n name: 'xlsx',\n },\n {\n key: '.csv',\n name: 'csv',\n },\n {\n key: '.mp4',\n name: 'mp4',\n },\n {\n key: '.mov',\n name: 'mov',\n },\n {\n key: '.wmv',\n name: 'wmv',\n },\n {\n key: '.avi',\n name: 'avi',\n },\n {\n key: '.mkv',\n name: 'mkv',\n },\n {\n key: '.msg',\n name: 'msg',\n },\n {\n key: '.zip',\n name: 'zip',\n },\n {\n key: '.rar',\n name: 'rar',\n },\n {\n key: '.7z',\n name: '7z',\n },\n {\n key: '.gz',\n name: 'gz',\n },\n {\n key: '.gzip',\n name: 'gzip',\n },\n {\n key: '.gzip',\n name: 'gzip',\n },\n];\n\n@Component({\n selector: 'mt-attachment-configuration',\n imports: [DynamicForm, ReactiveFormsModule],\n templateUrl: './attachment-configuration.html',\n styleUrl: './attachment-configuration.scss',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class AttachmentConfiguration {\n private readonly transloco = inject(TranslocoService);\n\n readonly formConfig = signal<DynamicFormConfig>({\n sections: [\n {\n key: 'configuration',\n label: this.transloco.translate('properties.form.configurationSection'),\n cssClass:\n ' rounded-xl bg-content \\\n shadow-sm \\\n px-6 py-4',\n type: 'header',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n new PickListFieldConfig({\n key: 'AcceptTypes',\n options: ATTACHMENT_ACCEPT,\n optionLabel: 'name',\n optionValue: 'key',\n sourceHeader: this.transloco.translate(\n 'properties.form.availableTypes',\n ),\n targetHeader: this.transloco.translate(\n 'properties.form.selectedTypes',\n ),\n cssClass: 'md:col-span-2',\n }),\n {\n key: 'IsMulitple',\n type: 'toggle',\n label: this.transloco.translate('properties.form.allowMultiple'),\n },\n ],\n },\n ],\n });\n}\n","<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n","import {\n Component,\n ComponentRef,\n EnvironmentInjector,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n computed,\n effect,\n inject,\n input,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Page } from '@masterteam/components/page';\nimport { Button } from '@masterteam/components/button';\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\nimport { DynamicFormConfig, ValidatorConfig } from '@masterteam/components';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription, distinctUntilChanged, map } from 'rxjs';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\nimport { ApiConfiguration } from './configuration-types/api-configuration/api-configuration';\nimport { CheckListFormConfiguration } from './configuration-types/check-list-form-configuration/check-list-form-configuration';\nimport { DynamicListConfiguration } from './configuration-types/dynamic-list-configuration/dynamic-list-configuration';\nimport { EditableListViewConfiguration } from './configuration-types/editable-list-view-configuration/editable-list-view-configuration';\nimport { InternalModuleConfiguration } from './configuration-types/internal-module-configuration/internal-module-configuration';\nimport { LocationConfiguration } from './configuration-types/location-configuration/location-configuration';\nimport { LookupConfiguration } from './configuration-types/lookup-configuration/lookup-configuration';\nimport { PercentageConfiguration } from './configuration-types/percentage-configuration/percentage-configuration';\nimport { UserConfiguration } from './configuration-types/user-configuration/user-configuration';\nimport {\n PropertyItem,\n PropertyPayload,\n} from '../../store/properties/properties.model';\nimport { AttachmentConfiguration } from './configuration-types/attachment-configuration/attachment-configuration';\nimport { PropertiesFacade } from '../../store';\n\n@Component({\n selector: 'mt-property-form',\n imports: [\n Page,\n Button,\n DynamicForm,\n ReactiveFormsModule,\n ApiConfiguration,\n CheckListFormConfiguration,\n DynamicListConfiguration,\n EditableListViewConfiguration,\n InternalModuleConfiguration,\n LocationConfiguration,\n LookupConfiguration,\n PercentageConfiguration,\n UserConfiguration,\n AttachmentConfiguration,\n SkeletonModule,\n TranslocoModule,\n ],\n templateUrl: './property-form.html',\n styleUrl: './property-form.scss',\n})\nexport class PropertyForm implements OnDestroy {\n private readonly facade = inject(PropertiesFacade);\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n private readonly transloco = inject(TranslocoService);\n\n propertyId = input<string>('');\n\n private readonly propertyTypes = this.facade.propertyTypes;\n\n submitLabel = computed(() =>\n this.propertyId()\n ? this.transloco.translate('properties.form.updateButton')\n : this.transloco.translate('properties.form.createButton'),\n );\n isEditing = computed(() => !!this.propertyId());\n\n // Keep your original structure: \"main\" is a FormControl<any>, \"configuration\" is FormControl<any|null>\n readonly propertyForm = new FormGroup({\n main: new FormControl<any>({\n isCalculated: false,\n viewType: null,\n name: { ar: '', en: '' },\n description: '',\n }),\n configuration: new FormControl<any | null>(null),\n });\n\n private readonly mainControl = this.propertyForm.get(\n 'main',\n ) as FormControl<any>;\n private readonly configurationControl = this.propertyForm.get(\n 'configuration',\n ) as FormControl<any | null>;\n\n private readonly creating = this.facade.isLoading('create');\n private readonly updating = this.facade.isLoading('update');\n readonly loading = this.facade.isLoading('getOne');\n readonly submitting = computed(() => this.creating() || this.updating());\n readonly propertyType = toSignal(\n this.mainControl.valueChanges.pipe(\n map((v) => v?.viewType),\n distinctUntilChanged(),\n ),\n );\n\n private readonly selectedPropertyTypeConfiguration = computed(() => {\n const propertyTypesSetting = this.propertyTypes();\n const selectedViewType = this.propertyType();\n\n if (!propertyTypesSetting?.value || !selectedViewType) return null;\n const match = propertyTypesSetting.value.find(\n (item: any) =>\n item.viewType?.toLowerCase() === selectedViewType.toLowerCase(),\n );\n\n return match?.configuration ?? null;\n });\n\n readonly configurationFormConfig = computed(\n () => this.selectedPropertyTypeConfiguration()?.configurationForm ?? null,\n );\n\n @ViewChild('configurationHost', { read: ViewContainerRef })\n private configurationHost?: ViewContainerRef;\n\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n private readonly configurationComponentType = signal<Type<any> | null>(null);\n private configurationComponentRef: ComponentRef<any> | null = null;\n private configurationComponentLoadId = 0;\n private readonly externalConfigurationForm = signal<FormGroup | null>(null);\n private externalConfigurationSubscriptions: Subscription | null = null;\n private readonly externalConfigurationInvalid = signal(false);\n\n readonly configurationComponentExists = computed(\n () => !!this.configurationComponentType(),\n );\n readonly configurationFormInvalid = computed(() =>\n this.externalConfigurationInvalid(),\n );\n readonly submitDisabled = computed(\n () => this.submitting() || this.configurationFormInvalid(),\n );\n // Your existing dynamic form config unchanged\n dynamicFormConfigMain = linkedSignal<DynamicFormConfig>(() => ({\n layout: {\n containerClass: `space-y-2`,\n },\n sections: [\n {\n key: 'top-row',\n type: 'none',\n cssClass: ' rounded-xl bg-content shadow-sm p-6 mt-3 mb-0',\n bodyClass: 'flex justify-between items-center gap-6',\n fields: [\n {\n key: 'viewType',\n type: 'select',\n placeholder: this.transloco.translate(\n 'properties.form.selectPropertyType',\n ),\n optionLabel: 'label.en',\n optionValue: 'viewType',\n cssClass: 'w-1/2',\n options: this.propertyTypes()?.value,\n disabled: this.isEditing(),\n filter: true,\n hasPlaceholderPrefix: false,\n },\n {\n key: 'isCalculated',\n type: 'toggle',\n label: this.transloco.translate('properties.form.calculated'),\n cssClass: 'justify-self-end',\n relations: [\n {\n action: 'show',\n key: 'viewType',\n value: 'Text',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'LongText',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Percentage',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Date',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Currency',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Number',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Checkbox',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Lookup',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'LookupMultiSelect',\n },\n {\n action: 'show',\n key: 'viewType',\n value: 'Time',\n },\n ],\n },\n ],\n },\n {\n key: 'default-info',\n label: this.transloco.translate('properties.form.defaultInfoSection'),\n type: 'header',\n cssClass: ' rounded-xl bg-content shadow-sm p-6',\n bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fields: [\n {\n key: 'title.en',\n label: this.transloco.translate('properties.form.englishName'),\n placeholder: this.transloco.translate(\n 'properties.form.enterEnglishName',\n ),\n validators: [new ValidatorConfig({ type: 'required' })],\n },\n {\n key: 'title.ar',\n label: this.transloco.translate('properties.form.arabicName'),\n placeholder: this.transloco.translate(\n 'properties.form.enterArabicName',\n ),\n validators: [new ValidatorConfig({ type: 'required' })],\n },\n {\n key: 'description',\n label: this.transloco.translate('properties.form.description'),\n type: 'textarea',\n cssClass: 'md:col-span-2',\n },\n // {\n // key: 'defaultValue',\n // label: 'Default Value',\n // cssClass: 'md:col-span-2',\n // },\n ],\n },\n ],\n }));\n\n constructor() {\n // Load when editing\n effect(() => {\n if (this.propertyId()) {\n this.facade.loadOne(this.propertyId());\n }\n });\n\n // Patch viewType from store when creating new property\n effect(() => {\n const defaultViewType = this.facade.defaultViewType();\n if (!this.propertyId() && defaultViewType) {\n this.mainControl.patchValue(\n { ...this.mainControl.value, viewType: defaultViewType },\n { emitEvent: true },\n );\n }\n });\n\n // Track previous property type\n let prev: any;\n effect(() => {\n const currentPropertyType = this.propertyType();\n if (!currentPropertyType || !prev || prev == currentPropertyType) {\n prev = this.propertyType();\n return;\n }\n\n this.configurationControl.reset(null);\n });\n effect(() => {\n const currentPropertyType = this.propertyType();\n if (!currentPropertyType) return;\n\n // Reset config scopes before loading new ones\n this.facade.resetConfigScopes();\n\n // Load config scopes for specific property types\n const supportedTypes = [\n 'InternalModule',\n 'DynamicList',\n 'EditableListView',\n 'LookupLog',\n ];\n if (supportedTypes.includes(currentPropertyType)) {\n this.facade.loadConfigAsType(currentPropertyType);\n }\n });\n effect(() => {\n const property = this.facade.selected();\n this.syncFormWithSelectedProperty(property);\n });\n\n effect(() => {\n this.resolveConfigurationComponent(\n this.selectedPropertyTypeConfiguration(),\n );\n });\n\n effect(() => {\n this.renderConfigurationComponent(this.configurationComponentType());\n });\n }\n\n private renderConfigurationComponent(componentType: Type<any> | null) {\n if (!this.configurationHost) return;\n\n this.destroyConfigurationComponent();\n\n if (!componentType) return;\n\n const componentRef = this.configurationHost.createComponent(componentType, {\n environmentInjector: this.environmentInjector,\n });\n\n this.configurationComponentRef = componentRef;\n this.connectExternalConfigurationForm(componentRef.instance);\n }\n\n private destroyConfigurationComponent() {\n this.externalConfigurationSubscriptions?.unsubscribe();\n this.externalConfigurationSubscriptions = null;\n this.externalConfigurationForm.set(null);\n this.externalConfigurationInvalid.set(false);\n this.configurationComponentRef?.destroy();\n this.configurationComponentRef = null;\n this.configurationHost?.clear();\n }\n\n private connectExternalConfigurationForm(instance: any) {\n const form = this.extractConfigurationForm(instance);\n if (!form) return;\n\n this.externalConfigurationForm.set(form);\n this.externalConfigurationInvalid.set(form.invalid);\n\n const currentValue = this.configurationControl.value;\n if (currentValue) {\n form.patchValue(currentValue);\n }\n\n this.configurationControl.setValue(form.value ?? null, {\n emitEvent: false,\n });\n\n this.externalConfigurationSubscriptions = new Subscription();\n this.externalConfigurationSubscriptions.add(\n form.valueChanges.subscribe((value) =>\n this.configurationControl.setValue(value, { emitEvent: false }),\n ),\n );\n this.externalConfigurationSubscriptions.add(\n form.statusChanges.subscribe(() =>\n this.externalConfigurationInvalid.set(form.invalid),\n ),\n );\n }\n\n private extractConfigurationForm(instance: any): FormGroup | null {\n const form = (instance as { form?: any })?.form;\n return form instanceof FormGroup ? form : null;\n }\n // PropertyTypeConfiguration\n private resolveConfigurationComponent(configuration: any | null) {\n const componentLoader = configuration?.configurationComponent;\n const loadId = ++this.configurationComponentLoadId;\n\n if (!componentLoader) {\n this.configurationComponentType.set(null);\n return;\n }\n\n // Direct component type\n if (typeof componentLoader !== 'function' || componentLoader.prototype) {\n this.configurationComponentType.set(componentLoader as Type<any>);\n return;\n }\n\n // Async loader factory\n try {\n const result = (\n componentLoader as () => Type<any> | Promise<Type<any>>\n )();\n this.applyConfigurationComponentResult(result, loadId);\n } catch (error) {\n console.error('Failed to resolve configuration component.', error);\n this.configurationComponentType.set(null);\n }\n }\n\n private applyConfigurationComponentResult(\n result: Type<any> | Promise<Type<any>>,\n loadId: number,\n ) {\n // Async promise result\n if (result instanceof Promise) {\n this.configurationComponentType.set(null);\n result\n .then((component) => {\n if (loadId !== this.configurationComponentLoadId) return;\n\n // Handle default export\n const resolved = (component as any)?.default ?? component;\n this.configurationComponentType.set(resolved as Type<any>);\n })\n .catch((error) => {\n if (loadId === this.configurationComponentLoadId) {\n this.configurationComponentType.set(null);\n }\n console.error('Unable to load configuration component.', error);\n });\n return;\n }\n\n // Direct component type\n this.configurationComponentType.set(result);\n }\n\n createOrEditProperty() {\n const mainValue = this.mainControl.value;\n if (!mainValue) return;\n\n const payload: PropertyPayload = {\n ...mainValue,\n Configuration:\n this.configurationControl.value ?? mainValue.Configuration ?? null,\n };\n\n const request$ = this.propertyId()\n ? this.facade.update(this.propertyId(), payload)\n : this.facade.create(payload);\n\n request$.subscribe(() => this.goBack());\n }\n\n private syncFormWithSelectedProperty(\n property: PropertyItem | PropertyPayload | null,\n ) {\n if (!property) return;\n this.mainControl.patchValue(property, {\n emitEvent: false,\n });\n this.configurationControl.setValue(property?.configuration);\n }\n\n goBack() {\n const path = this.isEditing()\n ? '../../properties-list'\n : '../properties-list';\n this.router.navigate([path], {\n relativeTo: this.route,\n queryParamsHandling: 'preserve',\n });\n }\n\n ngOnDestroy(): void {\n this.facade.resetSelectedProperty();\n this.facade.setDefaultViewType('');\n this.destroyConfigurationComponent();\n }\n}\n","<mt-page\n [title]=\"\n propertyId()\n ? ('properties.form.editProperty' | transloco)\n : ('properties.form.createNewProperty' | transloco)\n \"\n avatarIcon=\"custom.user-pp\"\n (backButtonClick)=\"goBack()\"\n backButton\n class=\"h-full\"\n>\n <ng-template #headerEnd>\n <mt-button\n class=\"mx-2\"\n [label]=\"submitLabel()\"\n [icon]=\"isEditing() ? 'custom.pencil' : 'general.plus'\"\n [loading]=\"submitting()\"\n [disabled]=\"submitDisabled() || this.propertyForm.invalid\"\n (click)=\"createOrEditProperty()\"\n />\n </ng-template>\n <div\n [formGroup]=\"propertyForm\"\n class=\"h-full py-4 h-full overflow-y-auto flex justify-center\"\n >\n <div class=\"w-1/2 flex flex-col gap-6\">\n @if (loading()) {\n <!-- Skeleton Loading State -->\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <div class=\"flex justify-between items-center gap-6\">\n <p-skeleton width=\"50%\" height=\"3rem\"></p-skeleton>\n <p-skeleton width=\"8rem\" height=\"2.5rem\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"12rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"6rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n <p-skeleton height=\"3rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"10rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"8rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n } @else {\n <mt-dynamic-form\n [formConfig]=\"dynamicFormConfigMain()\"\n [formControlName]=\"'main'\"\n />\n @if (configurationFormConfig()) {\n <mt-dynamic-form\n formControlName=\"configuration\"\n [formConfig]=\"configurationFormConfig()!\"\n />\n } @else {\n <ng-container #configurationHost></ng-container>\n @if (!configurationComponentExists()) {\n @switch (propertyType()) {\n @case (\"User\") {\n <mt-user-configuration />\n }\n @case (\"Percentage\") {\n <mt-percentage-configuration />\n }\n @case (\"Lookup\") {\n <mt-lookup-configuration />\n }\n @case (\"LookupMultiSelect\") {\n <mt-lookup-configuration />\n }\n @case (\"InternalModule\") {\n <mt-internal-module-configuration />\n }\n @case (\"DynamicList\") {\n <mt-dynamic-list-configuration />\n }\n @case (\"API\") {\n <mt-api-configuration formControlName=\"configuration\" />\n }\n <!-- @case('ViewList') { REMOVED FOR NOW\n <mt-view-list-configuration />\n } -->\n @case (\"Attachment\") {\n <mt-attachment-configuration />\n }\n <!-- @case('ReferenceProperty') { REMOVED FOR NOW\n } -->\n @case (\"EditableListView\") {\n <mt-editable-list-view-configuration />\n }\n @case (\"LookupLog\") {\n <mt-check-list-form-configuration />\n }\n <!-- @case('LookupMatrix') { REMOVED FOR NOW\n <mt-lookup-configuration />\n } -->\n @case (\"Location\") {\n <mt-location-configuration />\n }\n }\n }\n }\n }\n </div>\n </div>\n</mt-page>\n","/*\n * Public API Surface of structure-builder\n */\n\nexport * from './lib/properties-list/properties-list';\nexport * from './lib/property-form/property-form';\n\nexport * from './store';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["finalize","i1","i2","i3"],"mappings":"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"}