@masterteam/components 0.0.54 → 0.0.56

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.
Files changed (30) hide show
  1. package/assets/common.css +1 -1
  2. package/assets/i18n/ar.json +32 -0
  3. package/assets/i18n/en.json +32 -0
  4. package/confirmation/index.d.ts +1 -0
  5. package/fesm2022/masterteam-components-confirmation.mjs +6 -4
  6. package/fesm2022/masterteam-components-confirmation.mjs.map +1 -1
  7. package/fesm2022/masterteam-components-page-header.mjs +42 -0
  8. package/fesm2022/masterteam-components-page-header.mjs.map +1 -0
  9. package/fesm2022/masterteam-components-page.mjs +35 -0
  10. package/fesm2022/masterteam-components-page.mjs.map +1 -0
  11. package/fesm2022/masterteam-components-paginator.mjs +5 -3
  12. package/fesm2022/masterteam-components-paginator.mjs.map +1 -1
  13. package/fesm2022/masterteam-components-select-field.mjs +5 -3
  14. package/fesm2022/masterteam-components-select-field.mjs.map +1 -1
  15. package/fesm2022/masterteam-components-sidebar.mjs +26 -0
  16. package/fesm2022/masterteam-components-sidebar.mjs.map +1 -0
  17. package/fesm2022/masterteam-components-table.mjs +5 -2
  18. package/fesm2022/masterteam-components-table.mjs.map +1 -1
  19. package/fesm2022/masterteam-components-topbar.mjs +27 -0
  20. package/fesm2022/masterteam-components-topbar.mjs.map +1 -0
  21. package/fesm2022/masterteam-components-upload-field.mjs +9 -6
  22. package/fesm2022/masterteam-components-upload-field.mjs.map +1 -1
  23. package/fesm2022/masterteam-components.mjs +2 -1
  24. package/fesm2022/masterteam-components.mjs.map +1 -1
  25. package/index.d.ts +2 -0
  26. package/package.json +59 -43
  27. package/page/index.d.ts +26 -0
  28. package/page-header/index.d.ts +30 -0
  29. package/sidebar/index.d.ts +21 -0
  30. package/topbar/index.d.ts +16 -0
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/lib/config/povide-messages.ts","../../../../packages/masterteam/components/src/lib/config/provide-confirmation.ts","../../../../packages/masterteam/components/src/lib/utils/inputs.ts","../../../../packages/masterteam/components/src/lib/config/dynamic-form.model.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\n// export function generateTailwindPalette(\n// primaryColor500: string,\n// ): TailwindColorPalette {\n// const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n//\n// const palette: TailwindColorPalette = {\n// '500': primaryColor500,\n// };\n//\n// // Define steps for lighter shades (50 - 400)\n// const lightnessStepsLighter: { [key: string]: number } = {\n// '50': 95,\n// '100': 90,\n// '200': 80,\n// '300': 70,\n// '400': 60,\n// };\n//\n// const saturationReductionsLighter: { [key: string]: number } = {\n// '50': 40, // More desaturated\n// '100': 30,\n// '200': 20,\n// '300': 10,\n// '400': 5, // Slightly desaturated\n// };\n//\n// for (const shade in lightnessStepsLighter) {\n// if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n// const newL: number = lightnessStepsLighter[shade];\n// // Ensure saturation doesn't go below 0\n// const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n// palette[shade] = hslToHex(h, newS, newL);\n// }\n// }\n//\n// // Define steps for darker shades (600 - 950)\n// const lightnessStepsDarker: { [key: string]: number } = {\n// '600': 45,\n// '700': 35,\n// '800': 25,\n// '900': 15,\n// '950': 8, // More aggressive darkening for 950\n// };\n//\n// const saturationIncreasesDarker: { [key: string]: number } = {\n// '600': 5,\n// '700': 10,\n// '800': 15,\n// '900': 20,\n// '950': 25, // Can increase saturation for darker shades\n// };\n//\n// for (const shade in lightnessStepsDarker) {\n// if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n// const newL: number = lightnessStepsDarker[shade];\n// // Ensure saturation doesn't exceed 100\n// const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n// palette[shade] = hslToHex(h, newS, newL);\n// }\n// }\n//\n// // Sort the keys numerically to ensure consistent order\n// const sortedPalette: TailwindColorPalette = {};\n// Object.keys(palette)\n// .sort((a, b) => parseInt(a) - parseInt(b))\n// .forEach((key: string) => {\n// sortedPalette[key] = palette[key];\n// });\n//\n// return sortedPalette;\n// }\n\n// Define the specific shade keys\nexport type PaletteShade =\n | '0'\n | '50'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n | '950';\n\n// A helper type for our new palette profile\ntype ShadeProfile = {\n /** Target lightness (0-100) */\n l: number;\n /** Saturation adjustment relative to the 500 shade */\n s_adjust: number;\n};\n\n/**\n * Defines the \"ideal\" lightness and saturation adjustment for each shade.\n * Lightness for 500 is set to 50 as a balanced default.\n */\nconst PALETTE_PROFILE: Record<PaletteShade, ShadeProfile> = {\n '0': { l: 98, s_adjust: -50 },\n '50': { l: 95, s_adjust: -40 },\n '100': { l: 90, s_adjust: -30 },\n '200': { l: 80, s_adjust: -20 },\n '300': { l: 70, s_adjust: -10 },\n '400': { l: 60, s_adjust: -5 },\n '500': { l: 50, s_adjust: 0 },\n '600': { l: 45, s_adjust: 5 },\n '700': { l: 35, s_adjust: 10 },\n '800': { l: 25, s_adjust: 15 },\n '900': { l: 15, s_adjust: 20 },\n '950': { l: 8, s_adjust: 25 },\n};\n\n// Helper to ensure palette is always in the correct 50-950 order\nconst ALL_SHADES: PaletteShade[] = [\n '0',\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '950',\n];\n\n/**\n * Clamps a number between a min and max value.\n */\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from any given base color.\n *\n * @param baseColorHex - The hex string of the base color (e.g., \"#0284c7\").\n * @param baseColorShade - The shade of the base color (e.g., \"500\", \"700\").\n * @returns An object representing the full color palette.\n */\nexport function generateTailwindPalette(\n baseColorHex: string,\n baseColorShade: PaletteShade = '500',\n): TailwindColorPalette {\n // 1. Get HSL of the input color\n const [h_base, s_base, l_base]: HSLTuple = hexToHsl(baseColorHex);\n\n // 2. Find the anchors\n const baseProfile = PALETTE_PROFILE[baseColorShade];\n\n /** The Hue is constant across the entire palette. */\n const h = h_base;\n\n /**\n * Calculate the 500-shade's saturation by \"reversing\" the adjustment\n * from the base color.\n * e.g., if base is 700 (s_adjust: +10) and s_base is 80,\n * s_500 will be 70.\n */\n const s_500 = clamp(s_base - baseProfile.s_adjust, 0, 100);\n\n /**\n * Calculate the lightness \"offset\". This is the difference between\n * the base color's actual lightness and its \"ideal\" lightness\n * from the profile.\n * e.g., if base is 700 (ideal L: 35) and l_base is 38,\n * the offset is +3. This offset will be applied to all shades.\n */\n const l_offset = l_base - baseProfile.l;\n\n // 3. Generate the full palette\n const palette: Partial<TailwindColorPalette> = {};\n\n for (const shade of ALL_SHADES) {\n const profile = PALETTE_PROFILE[shade];\n\n // Calculate the new saturation and lightness for this shade\n const newS = clamp(s_500 + profile.s_adjust, 0, 100);\n const newL = clamp(profile.l + l_offset, 0, 100);\n\n palette[shade] = hslToHex(h, newS, newL);\n }\n\n // 4. Ensure the originally provided color is used exactly\n // (to avoid rounding errors from HSL conversion)\n palette[baseColorShade] = baseColorHex;\n\n return palette as TailwindColorPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeuix/themes/aura';\nimport { definePreset, updatePreset } from '@primeuix/themes';\nimport { ToastTokenSections } from '@primeuix/themes/types/toast';\nimport { EnvironmentProviders } from '@angular/core';\nimport { Preset } from '@primeuix/themes/types';\nimport { AuraBaseDesignTokens } from '@primeuix/themes/aura/base';\n\nexport interface MTThemeOptions {\n primaryColor?: string;\n textColor?: string;\n backgroundColor?: string;\n}\n\nconst toastStyle: ToastTokenSections.Success = {\n // borderColor: '{surface.300}',\n background: '{content.background}',\n // color: '{surface.600}',\n // closeButton: {\n // hoverBackground: '{surface.100}',\n // focusRing: {\n // color: '{surface.600}',\n // },\n // },\n};\n\nexport function changePrimaryColor(color: string): void {\n updatePreset({\n semantic: {\n primary: generateTailwindPalette(color || '#334dff'),\n },\n });\n}\n\nexport function changeBackgroundColor(color?: string): void {\n if (color) {\n const palette = generateTailwindPalette(color, '100');\n console.log('the background palette', palette);\n document.documentElement.style.setProperty(\n '--app-background-light',\n palette['100'],\n );\n document.documentElement.style.setProperty(\n '--app-background-dark',\n palette['950'],\n );\n }\n}\n\nexport function changeTextColor(color: string): void {\n const palette = generateTailwindPalette(color ?? '#334155', '700');\n updatePreset({\n semantic: {\n colorScheme: {\n light: {\n text: {\n color: palette['700'],\n hoverColor: palette['800'],\n hoverMutedColor: palette['600'],\n mutedColor: palette['500'],\n },\n },\n dark: {\n text: {\n color: palette['0'],\n hoverColor: palette['0'],\n hoverMutedColor: palette['300'],\n mutedColor: palette['400'],\n },\n },\n },\n },\n });\n}\n\nconst MTPreset = (themeOptions?: MTThemeOptions) => {\n const textPalette = generateTailwindPalette(\n themeOptions?.textColor ?? '#334155',\n '700',\n );\n const configs: Preset<AuraBaseDesignTokens> = {\n options: {\n prefix: 'mt',\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n colorScheme: {\n light: {\n text: {\n color: textPalette['700'],\n hoverColor: textPalette['800'],\n hoverMutedColor: textPalette['600'],\n mutedColor: textPalette['500'],\n },\n },\n dark: {\n text: {\n color: textPalette['0'],\n hoverColor: textPalette['0'],\n hoverMutedColor: textPalette['300'],\n mutedColor: textPalette['400'],\n },\n },\n },\n primary: generateTailwindPalette(themeOptions?.primaryColor || '#334dff'),\n content: {\n borderRadius: '{border.radius.lg}',\n },\n formField: {\n borderRadius: '{border.radius.lg}',\n },\n },\n components: {\n dialog: {\n header: {\n padding: '0',\n },\n content: {\n padding: '0',\n },\n footer: {\n padding: '0',\n },\n },\n toast: {\n root: {\n borderRadius: '{border.radius.xl}',\n },\n colorScheme: {\n light: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n dark: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n },\n },\n togglebutton: {\n root: {\n padding: '1px',\n },\n colorScheme: {\n light: {\n root: {\n checkedColor: '{primary.500}',\n },\n },\n dark: {\n root: {\n checkedColor: '{primary.400}',\n },\n },\n },\n },\n selectbutton: {\n root: {\n borderRadius: '{border.radius.lg}',\n },\n },\n\n paginator: {\n root: {\n borderRadius: '{border.radius.lg}',\n padding: '0 .5rem',\n },\n navButton: {\n borderRadius: '0',\n },\n\n colorScheme: {\n light: {\n navButton: {\n color: '{surface.600}',\n hoverBackground: '#fff',\n selectedBackground: '{surface.200}',\n selectedColor: '{surface.600}',\n focusRing: {\n color: '{surface.200}',\n },\n },\n },\n dark: {\n navButton: {\n color: '{surface.200}',\n hoverBackground: 'transparent',\n selectedBackground: 'transparent',\n selectedColor: '#fff',\n focusRing: {\n color: '#fff',\n },\n },\n },\n },\n\n css: () => `\n .p-paginator {\n --p-paginator-gap: 0;\n --p-paginator-nav-button-width: 2.2rem;\n --p-paginator-nav-button-height: 2.2rem;\n width: fit-content;\n border: 1px solid var(--p-surface-200);\n overflow: hidden;\n font-size: .95rem;\n }\n\n .p-paginator-pages button,\n .p-paginator-prev,\n .p-paginator-next {\n border-color: var(--p-surface-200);\n }\n\n .p-paginator-pages button {\n border-style: solid;\n border-width: 0 0 0 1px;\n }\n\n .p-paginator-pages button:first-child {\n border-left: none;\n }\n\n .p-paginator-prev {\n border-right: 1px solid var(--p-surface-200);\n }\n\n .p-paginator-next {\n border-left: 1px solid var(--p-surface-200);\n }\n\n .p-paginator .p-select {\n border: 0;\n background: transparent;\n }\n\n .p-paginator .p-select .p-select-label {\n padding: 0;\n }\n\n /* Dark Mode Styles */\n .dark .p-paginator {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-pages button,\n .dark .p-paginator-prev,\n .dark .p-paginator-next {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-prev {\n border-right-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-next {\n border-left-color: var(--p-surface-500);\n }\n `,\n },\n\n toggleswitch: {\n root: {\n width: '2.5rem',\n height: '1.4rem',\n },\n },\n\n // steps: {\n // item: {\n // link: {\n // gap: 'calc(50% + 0.25rem)',\n // },\n // number: {\n // font: {\n // size: '0.9rem',\n // },\n // active: {\n // color: 'white',\n // background: '{primary.500}',\n // border: {\n // color: '{primary.500}',\n // },\n // },\n // },\n // },\n // },\n },\n };\n\n return definePreset(Aura, configs);\n};\n\nexport function provideMTComponents(\n themeOptions?: MTThemeOptions,\n): EnvironmentProviders {\n changeBackgroundColor(themeOptions?.backgroundColor);\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset(themeOptions),\n options: {\n darkModeSelector: '.dark',\n },\n },\n });\n}\n","import { MessageService } from 'primeng/api';\n\nexport function provideMTMessages() {\n return MessageService;\n}\n","import { ConfirmationService } from 'primeng/api';\n\nexport function provideMTConfirmation() {\n return ConfirmationService;\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function isInvalid(control: AbstractControl | null) {\n if (!control) return false;\n return control && control?.invalid && control?.touched;\n}\n","import { HttpContext } from '@angular/common/http';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport type FieldType =\n | 'text'\n | 'textarea'\n | 'select'\n | 'date'\n | 'number'\n | 'slider'\n | 'multi-select'\n | 'pick-list'\n | 'checkbox'\n | 'icon-field'\n | 'color-picker'\n | 'spacer'\n | string;\n\nexport type ValidatorType =\n | 'required'\n | 'email'\n | 'minLength'\n | 'maxLength'\n | 'min'\n | 'max'\n | 'pattern'\n | 'custom';\n\nexport type FieldRelationAction = 'enable' | 'disable' | 'show' | 'hide';\n\nexport interface FieldRelationConfig {\n key: string;\n value: any;\n action: FieldRelationAction;\n}\n\nexport interface ResponsiveColSpan {\n // Container\n xs?: number; // @xs\n sm?: number; // @sm\n md?: number; // @md\n lg?: number; // @lg\n xl?: number; // @xl\n}\n\nexport class ValidatorConfig {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n\n constructor(config: {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n }) {\n this.type = config.type;\n this.value = config.value;\n this.message = config.message;\n this.customValidator = config.customValidator;\n }\n\n // Factory methods for common validators\n static required(message = 'This field is required'): ValidatorConfig {\n return new ValidatorConfig({ type: 'required', message });\n }\n\n static email(message = 'Please enter a valid email'): ValidatorConfig {\n return new ValidatorConfig({ type: 'email', message });\n }\n\n static minLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'minLength',\n value: length,\n message: message || `Minimum length is ${length} characters`,\n });\n }\n\n static maxLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'maxLength',\n value: length,\n message: message || `Maximum length is ${length} characters`,\n });\n }\n\n static min(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'min',\n value,\n message: message || `Minimum value is ${value}`,\n });\n }\n\n static max(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'max',\n value,\n message: message || `Maximum value is ${value}`,\n });\n }\n\n static pattern(pattern: string, message = 'Invalid format'): ValidatorConfig {\n return new ValidatorConfig({ type: 'pattern', value: pattern, message });\n }\n\n static custom(\n validator: (value: any) => boolean | Promise<boolean>,\n message = 'Invalid value',\n ): ValidatorConfig {\n return new ValidatorConfig({\n type: 'custom',\n customValidator: validator,\n message,\n });\n }\n}\n\nexport type BaseFieldConstructorConfig = ConstructorParameters<\n typeof BaseFieldConfig\n>[0];\n\nexport abstract class BaseFieldConfig {\n key: string;\n label: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n readonly: boolean;\n hidden: boolean;\n placeholder: string;\n hint: string;\n cssClass: string;\n validators: ValidatorConfig[];\n order: number;\n colSpan: number | ResponsiveColSpan;\n\n defaultValue?: any;\n\n customTemplate: string;\n relations: FieldRelationConfig[];\n\n constructor(config: {\n key?: string;\n label?: string;\n type: FieldType;\n required?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n placeholder?: string;\n hint?: string;\n cssClass?: string;\n validators?: ValidatorConfig[];\n order?: number;\n relations?: FieldRelationConfig[];\n colSpan?: number | ResponsiveColSpan;\n }) {\n this.key = config.key || 'Key';\n this.label = config.label || '';\n this.type = config.type;\n this.required = config.required || false;\n this.disabled = config.disabled || false;\n this.readonly = config.readonly || false;\n this.hidden = config.hidden || false;\n this.placeholder = config.placeholder || '';\n this.hint = config.hint || '';\n this.cssClass = config.cssClass || '';\n this.validators = config.validators || [];\n this.order = config.order || 0;\n this.relations = config.relations || [];\n this.colSpan = config.colSpan || 12;\n }\n}\n\n// Specific configurations for different field types\nexport class TextFieldConfig extends BaseFieldConfig {\n inputType: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n inputType?: string;\n },\n ) {\n super({ ...config, type: 'text' });\n this.inputType = config.inputType || 'text';\n }\n}\n\nexport class TextareaFieldConfig extends BaseFieldConfig {\n rows: number;\n autoResize: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n rows?: number;\n autoResize?: boolean;\n },\n ) {\n super({ ...config, type: 'textarea' });\n this.rows = config.rows || 3;\n this.autoResize = config.autoResize || false;\n }\n}\n\nexport class SelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n multiple: boolean;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n multiple?: boolean;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n },\n ) {\n super({ ...config, type: 'select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.multiple = config.multiple || false;\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n }\n}\n\nexport class RadioButtonFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n orientation: 'vertical' | 'horizontal';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n orientation?: 'vertical' | 'horizontal';\n },\n ) {\n super({ ...config, type: 'radio-button' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.orientation = config.orientation || 'vertical';\n }\n}\nexport class RadioCardsFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n size: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n },\n ) {\n super({ ...config, type: 'radio-cards' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || 'small';\n }\n}\nexport class UserSearchFieldConfig extends BaseFieldConfig {\n optionLabel: string;\n optionValue: string;\n size: string;\n apiUrl: string;\n context: HttpContext | undefined;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n hint?: string;\n apiUrl?: string;\n context?: HttpContext | undefined;\n placeholder?: string;\n },\n ) {\n super({ ...config, type: 'user-search' });\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || '';\n this.hint = config.hint || '';\n this.context = config.context || undefined;\n this.apiUrl = config.apiUrl || '';\n this.placeholder = config.placeholder || 'Search';\n }\n}\n\nexport class UploadFileFieldConfig extends BaseFieldConfig {\n size: string;\n endPoint?: string;\n userImgClass?: string;\n shape?: string;\n accept?: string;\n fileSizeLimit?: number | undefined;\n context: HttpContext | undefined;\n title: string;\n description: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n size?: string;\n endPoint?: string;\n userImgClass?: string;\n shape?: string;\n accept?: string;\n fileSizeLimit?: number | undefined;\n context?: HttpContext | undefined;\n title?: string;\n description?: string;\n },\n ) {\n super({ ...config, type: 'upload-file' });\n this.size = config.size || 'normal';\n this.endPoint = config.endPoint || 'uploader';\n this.userImgClass =\n config.userImgClass || 'w-25! h-25! text-4xl! text-gray-400!';\n this.shape = config.shape || 'field';\n this.accept = config.accept || '.pdf,.doc,.docx,.xlsx,image/*';\n this.fileSizeLimit = config.fileSizeLimit || undefined;\n this.context = config.context || undefined;\n this.title = config.title || 'Upload File';\n this.description = config.description || 'Click or drop a file to upload';\n }\n}\n\nexport class DateFieldConfig extends BaseFieldConfig {\n dateFormat: string;\n showTime: boolean;\n showSeconds: boolean;\n hourFormat: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates: Date[];\n disabledDays: number[];\n yearRange: string;\n showIcon: boolean;\n icon: string;\n showButtonBar: boolean;\n showClear: boolean;\n inline: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n dateFormat?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n hourFormat?: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[];\n yearRange?: string;\n showIcon?: boolean;\n icon?: string;\n showButtonBar?: boolean;\n showClear?: boolean;\n inline?: boolean;\n },\n ) {\n super({ ...config, type: 'date' });\n this.dateFormat = config.dateFormat || 'yyyy-mm-dd';\n this.showTime = config.showTime || false;\n this.showSeconds = config.showSeconds || false;\n this.hourFormat = config.hourFormat || '24';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.disabledDates = config.disabledDates || [];\n this.disabledDays = config.disabledDays || [];\n this.yearRange = config.yearRange || '1900:2030';\n this.showIcon = config.showIcon || true;\n this.icon = config.icon || 'pi pi-calendar';\n this.showButtonBar = config.showButtonBar || false;\n this.showClear = config.showClear || true;\n this.inline = config.inline || false;\n }\n}\n\nexport class NumberFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n },\n ) {\n super({ ...config, type: 'number' });\n this.min = config.min;\n this.max = config.max;\n this.step = config.step || 1;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.currency = config.currency;\n this.locale = config.locale;\n this.minFractionDigits = config.minFractionDigits;\n this.maxFractionDigits = config.maxFractionDigits;\n this.useGrouping = config.useGrouping || false;\n this.showButtons = config.showButtons || false;\n this.buttonLayout = config.buttonLayout || 'stacked';\n this.incrementButtonClass = config.incrementButtonClass;\n this.decrementButtonClass = config.decrementButtonClass;\n this.incrementButtonIcon = config.incrementButtonIcon;\n this.decrementButtonIcon = config.decrementButtonIcon;\n }\n}\n\nexport class SliderFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n },\n ) {\n super({ ...config, type: 'slider' });\n this.min = config.min || 0;\n this.max = config.max || 100;\n this.step = config.step || 1;\n this.orientation = config.orientation || 'horizontal';\n this.range = config.range || false;\n this.animate = config.animate || false;\n }\n}\n\nexport class MultiSelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n },\n ) {\n super({ ...config, type: 'multi-select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.display = config.display || 'comma';\n this.maxSelectedLabels = config.maxSelectedLabels || 3;\n this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';\n this.showToggleAll = config.showToggleAll || true;\n this.resetFilterOnHide = config.resetFilterOnHide || false;\n }\n}\n\nexport class PickListFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n sourceHeader: string;\n targetHeader: string;\n showSourceControls: boolean;\n showTargetControls: boolean;\n showSourceFilter: boolean;\n showTargetFilter: boolean;\n filterBy: string;\n dataKey?: string;\n dragdrop: boolean;\n responsive: boolean;\n breakpoint: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n sourceHeader?: string;\n targetHeader?: string;\n showSourceControls?: boolean;\n showTargetControls?: boolean;\n showSourceFilter?: boolean;\n showTargetFilter?: boolean;\n filterBy?: string;\n dataKey?: string;\n dragdrop?: boolean;\n responsive?: boolean;\n },\n ) {\n super({ ...config, type: 'pick-list' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.sourceHeader = config.sourceHeader || 'Available';\n this.targetHeader = config.targetHeader || 'Selected';\n this.showSourceControls =\n config.showSourceControls !== undefined\n ? config.showSourceControls\n : true;\n this.showTargetControls =\n config.showTargetControls !== undefined\n ? config.showTargetControls\n : true;\n this.showSourceFilter =\n config.showSourceFilter !== undefined ? config.showSourceFilter : false;\n this.showTargetFilter =\n config.showTargetFilter !== undefined ? config.showTargetFilter : false;\n this.filterBy = config.filterBy || this.optionLabel;\n this.dataKey = config.dataKey || this.optionValue;\n this.dragdrop = config.dragdrop ?? false;\n this.responsive = config.responsive ?? true;\n }\n}\n\nexport class CheckboxFieldConfig extends BaseFieldConfig {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n },\n ) {\n super({ ...config, type: 'checkbox' });\n this.binary = config.binary !== false; // Default to true\n this.trueValue = config.trueValue !== undefined ? config.trueValue : true;\n this.falseValue =\n config.falseValue !== undefined ? config.falseValue : false;\n this.checkboxIcon = config.checkboxIcon;\n }\n}\nexport class ToggleFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'toggle' });\n }\n}\nexport class EditorFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'editor-field' });\n }\n}\n\nexport class ColorPickerFieldConfig extends BaseFieldConfig {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n variant?: 'outlined' | 'filled';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n variant?: 'outlined' | 'filled';\n },\n ) {\n super({ ...config, type: 'color-picker' });\n this.format = config.format || 'hex';\n this.inline = config.inline || false;\n this.appendTo = config.appendTo || 'body';\n this.variant = config.variant || 'outlined';\n }\n}\n\nexport class IconFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {}) {\n super({ ...config, type: 'icon-field' });\n }\n}\n\nexport class SpacerFieldConfig extends BaseFieldConfig {\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type' | 'key' | 'label'> & {\n key?: string;\n label?: string;\n },\n ) {\n super({\n ...config,\n type: 'spacer',\n key: config.key || `spacer_${Date.now()}`,\n label: config.label || '',\n });\n }\n}\n\n// Union type for all field configurations\nexport type DynamicFieldConfig = {\n [K in keyof (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n PickListFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n SpacerFieldConfig &\n BaseFieldConfig)]?: (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n PickListFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n SpacerFieldConfig &\n BaseFieldConfig)[K];\n};\n\n// Layout configuration\nexport interface LayoutConfig {\n containerClass?: string;\n sectionClass?: string;\n fieldClass?: string;\n}\n\n// Simplified form configuration interface\nexport interface DynamicFormConfig {\n sections: SectionConfig[];\n layout?: LayoutConfig;\n}\nexport interface SectionConfig {\n key?: string;\n label?: string;\n type: 'none' | 'header';\n cssClass?: string;\n bodyClass?: string;\n headerClass?: string;\n columns?: number;\n\n order?: number;\n fields: DynamicFieldConfig[];\n}\nexport interface FieldState {\n hidden: boolean;\n disabled: boolean;\n}\n\nexport function createCustomValidator(\n customValidator: (value: any) => boolean | Promise<boolean>,\n message?: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = customValidator(control.value);\n\n if (result instanceof Promise) {\n // Handle async validation\n result.then((isValid) => {\n if (!isValid) {\n control.setErrors({\n custom: { message: message || 'Invalid value' },\n });\n }\n });\n return null; // For async, return null initially\n } else {\n // Handle sync validation\n return result\n ? null\n : { custom: { message: message || 'Invalid value' } };\n }\n };\n}\n\nexport function wrapValidatorWithMessage(\n validator: ValidatorFn,\n errorKey: string,\n message: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = validator(control);\n if (result) {\n // Replace the default error with custom message\n return { [errorKey]: { ...result[Object.keys(result)[0]], message } };\n }\n return null;\n };\n}\n// DynamicFieldConfig = input.required<any>({\n// transform: (value: any) => this.transformToDateFieldConfig(value)\n// });\n// transformToDateFieldConfig(value: any){\n// return new TextFieldConfig()\n// }\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/config/povide-messages';\nexport * from './lib/config/provide-confirmation';\nexport * from './lib/utils/theme';\nexport * from './lib/utils/inputs';\nexport * from './lib/config/dynamic-form.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/lib/config/povide-messages.ts","../../../../packages/masterteam/components/src/lib/config/provide-confirmation.ts","../../../../packages/masterteam/components/src/lib/utils/inputs.ts","../../../../packages/masterteam/components/src/lib/config/dynamic-form.model.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\n// export function generateTailwindPalette(\n// primaryColor500: string,\n// ): TailwindColorPalette {\n// const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n//\n// const palette: TailwindColorPalette = {\n// '500': primaryColor500,\n// };\n//\n// // Define steps for lighter shades (50 - 400)\n// const lightnessStepsLighter: { [key: string]: number } = {\n// '50': 95,\n// '100': 90,\n// '200': 80,\n// '300': 70,\n// '400': 60,\n// };\n//\n// const saturationReductionsLighter: { [key: string]: number } = {\n// '50': 40, // More desaturated\n// '100': 30,\n// '200': 20,\n// '300': 10,\n// '400': 5, // Slightly desaturated\n// };\n//\n// for (const shade in lightnessStepsLighter) {\n// if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n// const newL: number = lightnessStepsLighter[shade];\n// // Ensure saturation doesn't go below 0\n// const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n// palette[shade] = hslToHex(h, newS, newL);\n// }\n// }\n//\n// // Define steps for darker shades (600 - 950)\n// const lightnessStepsDarker: { [key: string]: number } = {\n// '600': 45,\n// '700': 35,\n// '800': 25,\n// '900': 15,\n// '950': 8, // More aggressive darkening for 950\n// };\n//\n// const saturationIncreasesDarker: { [key: string]: number } = {\n// '600': 5,\n// '700': 10,\n// '800': 15,\n// '900': 20,\n// '950': 25, // Can increase saturation for darker shades\n// };\n//\n// for (const shade in lightnessStepsDarker) {\n// if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n// const newL: number = lightnessStepsDarker[shade];\n// // Ensure saturation doesn't exceed 100\n// const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n// palette[shade] = hslToHex(h, newS, newL);\n// }\n// }\n//\n// // Sort the keys numerically to ensure consistent order\n// const sortedPalette: TailwindColorPalette = {};\n// Object.keys(palette)\n// .sort((a, b) => parseInt(a) - parseInt(b))\n// .forEach((key: string) => {\n// sortedPalette[key] = palette[key];\n// });\n//\n// return sortedPalette;\n// }\n\n// Define the specific shade keys\nexport type PaletteShade =\n | '0'\n | '50'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n | '950';\n\n// A helper type for our new palette profile\ntype ShadeProfile = {\n /** Target lightness (0-100) */\n l: number;\n /** Saturation adjustment relative to the 500 shade */\n s_adjust: number;\n};\n\n/**\n * Defines the \"ideal\" lightness and saturation adjustment for each shade.\n * Lightness for 500 is set to 50 as a balanced default.\n */\nconst PALETTE_PROFILE: Record<PaletteShade, ShadeProfile> = {\n '0': { l: 98, s_adjust: -50 },\n '50': { l: 95, s_adjust: -40 },\n '100': { l: 90, s_adjust: -30 },\n '200': { l: 80, s_adjust: -20 },\n '300': { l: 70, s_adjust: -10 },\n '400': { l: 60, s_adjust: -5 },\n '500': { l: 50, s_adjust: 0 },\n '600': { l: 45, s_adjust: 5 },\n '700': { l: 35, s_adjust: 10 },\n '800': { l: 25, s_adjust: 15 },\n '900': { l: 15, s_adjust: 20 },\n '950': { l: 8, s_adjust: 25 },\n};\n\n// Helper to ensure palette is always in the correct 50-950 order\nconst ALL_SHADES: PaletteShade[] = [\n '0',\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '950',\n];\n\n/**\n * Clamps a number between a min and max value.\n */\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from any given base color.\n *\n * @param baseColorHex - The hex string of the base color (e.g., \"#0284c7\").\n * @param baseColorShade - The shade of the base color (e.g., \"500\", \"700\").\n * @returns An object representing the full color palette.\n */\nexport function generateTailwindPalette(\n baseColorHex: string,\n baseColorShade: PaletteShade = '500',\n): TailwindColorPalette {\n // 1. Get HSL of the input color\n const [h_base, s_base, l_base]: HSLTuple = hexToHsl(baseColorHex);\n\n // 2. Find the anchors\n const baseProfile = PALETTE_PROFILE[baseColorShade];\n\n /** The Hue is constant across the entire palette. */\n const h = h_base;\n\n /**\n * Calculate the 500-shade's saturation by \"reversing\" the adjustment\n * from the base color.\n * e.g., if base is 700 (s_adjust: +10) and s_base is 80,\n * s_500 will be 70.\n */\n const s_500 = clamp(s_base - baseProfile.s_adjust, 0, 100);\n\n /**\n * Calculate the lightness \"offset\". This is the difference between\n * the base color's actual lightness and its \"ideal\" lightness\n * from the profile.\n * e.g., if base is 700 (ideal L: 35) and l_base is 38,\n * the offset is +3. This offset will be applied to all shades.\n */\n const l_offset = l_base - baseProfile.l;\n\n // 3. Generate the full palette\n const palette: Partial<TailwindColorPalette> = {};\n\n for (const shade of ALL_SHADES) {\n const profile = PALETTE_PROFILE[shade];\n\n // Calculate the new saturation and lightness for this shade\n const newS = clamp(s_500 + profile.s_adjust, 0, 100);\n const newL = clamp(profile.l + l_offset, 0, 100);\n\n palette[shade] = hslToHex(h, newS, newL);\n }\n\n // 4. Ensure the originally provided color is used exactly\n // (to avoid rounding errors from HSL conversion)\n palette[baseColorShade] = baseColorHex;\n\n return palette as TailwindColorPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeuix/themes/aura';\nimport { definePreset, updatePreset } from '@primeuix/themes';\nimport { ToastTokenSections } from '@primeuix/themes/types/toast';\nimport { EnvironmentProviders } from '@angular/core';\nimport { Preset } from '@primeuix/themes/types';\nimport { AuraBaseDesignTokens } from '@primeuix/themes/aura/base';\n\nexport interface MTThemeOptions {\n primaryColor?: string;\n textColor?: string;\n backgroundColor?: string;\n}\n\nconst toastStyle: ToastTokenSections.Success = {\n // borderColor: '{surface.300}',\n background: '{content.background}',\n // color: '{surface.600}',\n // closeButton: {\n // hoverBackground: '{surface.100}',\n // focusRing: {\n // color: '{surface.600}',\n // },\n // },\n};\n\nexport function changePrimaryColor(color: string): void {\n updatePreset({\n semantic: {\n primary: generateTailwindPalette(color || '#334dff'),\n },\n });\n}\n\nexport function changeBackgroundColor(color?: string): void {\n if (color) {\n const palette = generateTailwindPalette(color, '100');\n document.documentElement.style.setProperty(\n '--app-background-light',\n palette['100'],\n );\n document.documentElement.style.setProperty(\n '--app-background-dark',\n palette['950'],\n );\n }\n}\n\nexport function changeTextColor(color: string): void {\n const palette = generateTailwindPalette(color ?? '#334155', '700');\n updatePreset({\n semantic: {\n colorScheme: {\n light: {\n text: {\n color: palette['700'],\n hoverColor: palette['800'],\n hoverMutedColor: palette['600'],\n mutedColor: palette['500'],\n },\n },\n dark: {\n text: {\n color: palette['0'],\n hoverColor: palette['0'],\n hoverMutedColor: palette['300'],\n mutedColor: palette['400'],\n },\n },\n },\n },\n });\n}\n\nconst MTPreset = (themeOptions?: MTThemeOptions) => {\n const textPalette = generateTailwindPalette(\n themeOptions?.textColor ?? '#334155',\n '700',\n );\n const configs: Preset<AuraBaseDesignTokens> = {\n options: {\n prefix: 'mt',\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n colorScheme: {\n light: {\n text: {\n color: textPalette['700'],\n hoverColor: textPalette['800'],\n hoverMutedColor: textPalette['600'],\n mutedColor: textPalette['500'],\n },\n },\n dark: {\n text: {\n color: textPalette['0'],\n hoverColor: textPalette['0'],\n hoverMutedColor: textPalette['300'],\n mutedColor: textPalette['400'],\n },\n },\n },\n primary: generateTailwindPalette(themeOptions?.primaryColor || '#334dff'),\n content: {\n borderRadius: '{border.radius.lg}',\n },\n formField: {\n borderRadius: '{border.radius.lg}',\n },\n },\n components: {\n dialog: {\n header: {\n padding: '0',\n },\n content: {\n padding: '0',\n },\n footer: {\n padding: '0',\n },\n },\n toast: {\n root: {\n borderRadius: '{border.radius.xl}',\n },\n colorScheme: {\n light: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n dark: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n },\n },\n togglebutton: {\n root: {\n padding: '1px',\n },\n colorScheme: {\n light: {\n root: {\n checkedColor: '{primary.500}',\n },\n },\n dark: {\n root: {\n checkedColor: '{primary.400}',\n },\n },\n },\n },\n selectbutton: {\n root: {\n borderRadius: '{border.radius.lg}',\n },\n },\n\n paginator: {\n root: {\n borderRadius: '{border.radius.lg}',\n padding: '0 .5rem',\n },\n navButton: {\n borderRadius: '0',\n },\n\n colorScheme: {\n light: {\n navButton: {\n color: '{surface.600}',\n hoverBackground: '#fff',\n selectedBackground: '{surface.200}',\n selectedColor: '{surface.600}',\n focusRing: {\n color: '{surface.200}',\n },\n },\n },\n dark: {\n navButton: {\n color: '{surface.200}',\n hoverBackground: 'transparent',\n selectedBackground: 'transparent',\n selectedColor: '#fff',\n focusRing: {\n color: '#fff',\n },\n },\n },\n },\n\n css: () => `\n .p-paginator {\n --p-paginator-gap: 0;\n --p-paginator-nav-button-width: 2.2rem;\n --p-paginator-nav-button-height: 2.2rem;\n width: fit-content;\n border: 1px solid var(--p-surface-200);\n overflow: hidden;\n font-size: .95rem;\n }\n\n .p-paginator-pages button,\n .p-paginator-prev,\n .p-paginator-next {\n border-color: var(--p-surface-200);\n }\n\n .p-paginator-pages button {\n border-style: solid;\n border-width: 0 0 0 1px;\n }\n\n .p-paginator-pages button:first-child {\n border-left: none;\n }\n\n .p-paginator-prev {\n border-right: 1px solid var(--p-surface-200);\n }\n\n .p-paginator-next {\n border-left: 1px solid var(--p-surface-200);\n }\n\n .p-paginator .p-select {\n border: 0;\n background: transparent;\n }\n\n .p-paginator .p-select .p-select-label {\n padding: 0;\n }\n\n /* Dark Mode Styles */\n .dark .p-paginator {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-pages button,\n .dark .p-paginator-prev,\n .dark .p-paginator-next {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-prev {\n border-right-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-next {\n border-left-color: var(--p-surface-500);\n }\n `,\n },\n\n toggleswitch: {\n root: {\n width: '2.5rem',\n height: '1.4rem',\n },\n },\n\n // steps: {\n // item: {\n // link: {\n // gap: 'calc(50% + 0.25rem)',\n // },\n // number: {\n // font: {\n // size: '0.9rem',\n // },\n // active: {\n // color: 'white',\n // background: '{primary.500}',\n // border: {\n // color: '{primary.500}',\n // },\n // },\n // },\n // },\n // },\n },\n };\n\n return definePreset(Aura, configs);\n};\n\nexport function provideMTComponents(\n themeOptions?: MTThemeOptions,\n): EnvironmentProviders {\n changeBackgroundColor(themeOptions?.backgroundColor);\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset(themeOptions),\n options: {\n darkModeSelector: '.dark',\n },\n },\n });\n}\n","import { MessageService } from 'primeng/api';\n\nexport function provideMTMessages() {\n return MessageService;\n}\n","import { ConfirmationService } from 'primeng/api';\n\nexport function provideMTConfirmation() {\n return ConfirmationService;\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function isInvalid(control: AbstractControl | null) {\n if (!control) return false;\n return control && control?.invalid && control?.touched;\n}\n","import { HttpContext } from '@angular/common/http';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport type FieldType =\n | 'text'\n | 'textarea'\n | 'select'\n | 'date'\n | 'number'\n | 'slider'\n | 'multi-select'\n | 'pick-list'\n | 'checkbox'\n | 'icon-field'\n | 'color-picker'\n | 'spacer'\n | string;\n\nexport type ValidatorType =\n | 'required'\n | 'email'\n | 'minLength'\n | 'maxLength'\n | 'min'\n | 'max'\n | 'pattern'\n | 'custom';\n\nexport type FieldRelationAction = 'enable' | 'disable' | 'show' | 'hide';\n\nexport interface FieldRelationConfig {\n key: string;\n value: any;\n action: FieldRelationAction;\n}\n\nexport interface ResponsiveColSpan {\n // Container\n xs?: number; // @xs\n sm?: number; // @sm\n md?: number; // @md\n lg?: number; // @lg\n xl?: number; // @xl\n}\n\nexport class ValidatorConfig {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n\n constructor(config: {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n }) {\n this.type = config.type;\n this.value = config.value;\n this.message = config.message;\n this.customValidator = config.customValidator;\n }\n\n // Factory methods for common validators\n static required(message = 'This field is required'): ValidatorConfig {\n return new ValidatorConfig({ type: 'required', message });\n }\n\n static email(message = 'Please enter a valid email'): ValidatorConfig {\n return new ValidatorConfig({ type: 'email', message });\n }\n\n static minLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'minLength',\n value: length,\n message: message || `Minimum length is ${length} characters`,\n });\n }\n\n static maxLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'maxLength',\n value: length,\n message: message || `Maximum length is ${length} characters`,\n });\n }\n\n static min(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'min',\n value,\n message: message || `Minimum value is ${value}`,\n });\n }\n\n static max(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'max',\n value,\n message: message || `Maximum value is ${value}`,\n });\n }\n\n static pattern(pattern: string, message = 'Invalid format'): ValidatorConfig {\n return new ValidatorConfig({ type: 'pattern', value: pattern, message });\n }\n\n static custom(\n validator: (value: any) => boolean | Promise<boolean>,\n message = 'Invalid value',\n ): ValidatorConfig {\n return new ValidatorConfig({\n type: 'custom',\n customValidator: validator,\n message,\n });\n }\n}\n\nexport type BaseFieldConstructorConfig = ConstructorParameters<\n typeof BaseFieldConfig\n>[0];\n\nexport abstract class BaseFieldConfig {\n key: string;\n label: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n readonly: boolean;\n hidden: boolean;\n placeholder: string;\n hint: string;\n cssClass: string;\n validators: ValidatorConfig[];\n order: number;\n colSpan: number | ResponsiveColSpan;\n\n defaultValue?: any;\n\n customTemplate: string;\n relations: FieldRelationConfig[];\n\n constructor(config: {\n key?: string;\n label?: string;\n type: FieldType;\n required?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n placeholder?: string;\n hint?: string;\n cssClass?: string;\n validators?: ValidatorConfig[];\n order?: number;\n relations?: FieldRelationConfig[];\n colSpan?: number | ResponsiveColSpan;\n }) {\n this.key = config.key || 'Key';\n this.label = config.label || '';\n this.type = config.type;\n this.required = config.required || false;\n this.disabled = config.disabled || false;\n this.readonly = config.readonly || false;\n this.hidden = config.hidden || false;\n this.placeholder = config.placeholder || '';\n this.hint = config.hint || '';\n this.cssClass = config.cssClass || '';\n this.validators = config.validators || [];\n this.order = config.order || 0;\n this.relations = config.relations || [];\n this.colSpan = config.colSpan || 12;\n }\n}\n\n// Specific configurations for different field types\nexport class TextFieldConfig extends BaseFieldConfig {\n inputType: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n inputType?: string;\n },\n ) {\n super({ ...config, type: 'text' });\n this.inputType = config.inputType || 'text';\n }\n}\n\nexport class TextareaFieldConfig extends BaseFieldConfig {\n rows: number;\n autoResize: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n rows?: number;\n autoResize?: boolean;\n },\n ) {\n super({ ...config, type: 'textarea' });\n this.rows = config.rows || 3;\n this.autoResize = config.autoResize || false;\n }\n}\n\nexport class SelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n multiple: boolean;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n hasPlaceholderPrefix: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n multiple?: boolean;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n hasPlaceholderPrefix?: boolean;\n },\n ) {\n super({ ...config, type: 'select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.multiple = config.multiple || false;\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.hasPlaceholderPrefix = config.hasPlaceholderPrefix || true;\n }\n}\n\nexport class RadioButtonFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n orientation: 'vertical' | 'horizontal';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n orientation?: 'vertical' | 'horizontal';\n },\n ) {\n super({ ...config, type: 'radio-button' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.orientation = config.orientation || 'vertical';\n }\n}\nexport class RadioCardsFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n size: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n },\n ) {\n super({ ...config, type: 'radio-cards' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || 'small';\n }\n}\nexport class UserSearchFieldConfig extends BaseFieldConfig {\n optionLabel: string;\n optionValue: string;\n size: string;\n apiUrl: string;\n context: HttpContext | undefined;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n hint?: string;\n apiUrl?: string;\n context?: HttpContext | undefined;\n placeholder?: string;\n },\n ) {\n super({ ...config, type: 'user-search' });\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || '';\n this.hint = config.hint || '';\n this.context = config.context || undefined;\n this.apiUrl = config.apiUrl || '';\n this.placeholder = config.placeholder || 'Search';\n }\n}\n\nexport class UploadFileFieldConfig extends BaseFieldConfig {\n size: string;\n endPoint?: string;\n userImgClass?: string;\n shape?: string;\n accept?: string;\n fileSizeLimit?: number | undefined;\n context: HttpContext | undefined;\n title: string;\n description: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n size?: string;\n endPoint?: string;\n userImgClass?: string;\n shape?: string;\n accept?: string;\n fileSizeLimit?: number | undefined;\n context?: HttpContext | undefined;\n title?: string;\n description?: string;\n },\n ) {\n super({ ...config, type: 'upload-file' });\n this.size = config.size || 'normal';\n this.endPoint = config.endPoint || 'uploader';\n this.userImgClass =\n config.userImgClass || 'w-25! h-25! text-4xl! text-gray-400!';\n this.shape = config.shape || 'field';\n this.accept = config.accept || '.pdf,.doc,.docx,.xlsx,image/*';\n this.fileSizeLimit = config.fileSizeLimit || undefined;\n this.context = config.context || undefined;\n this.title = config.title || 'Upload File';\n this.description = config.description || 'Click or drop a file to upload';\n }\n}\n\nexport class DateFieldConfig extends BaseFieldConfig {\n dateFormat: string;\n showTime: boolean;\n showSeconds: boolean;\n hourFormat: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates: Date[];\n disabledDays: number[];\n yearRange: string;\n showIcon: boolean;\n icon: string;\n showButtonBar: boolean;\n showClear: boolean;\n inline: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n dateFormat?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n hourFormat?: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[];\n yearRange?: string;\n showIcon?: boolean;\n icon?: string;\n showButtonBar?: boolean;\n showClear?: boolean;\n inline?: boolean;\n },\n ) {\n super({ ...config, type: 'date' });\n this.dateFormat = config.dateFormat || 'yyyy-mm-dd';\n this.showTime = config.showTime || false;\n this.showSeconds = config.showSeconds || false;\n this.hourFormat = config.hourFormat || '24';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.disabledDates = config.disabledDates || [];\n this.disabledDays = config.disabledDays || [];\n this.yearRange = config.yearRange || '1900:2030';\n this.showIcon = config.showIcon || true;\n this.icon = config.icon || 'pi pi-calendar';\n this.showButtonBar = config.showButtonBar || false;\n this.showClear = config.showClear || true;\n this.inline = config.inline || false;\n }\n}\n\nexport class NumberFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n },\n ) {\n super({ ...config, type: 'number' });\n this.min = config.min;\n this.max = config.max;\n this.step = config.step || 1;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.currency = config.currency;\n this.locale = config.locale;\n this.minFractionDigits = config.minFractionDigits;\n this.maxFractionDigits = config.maxFractionDigits;\n this.useGrouping = config.useGrouping || false;\n this.showButtons = config.showButtons || false;\n this.buttonLayout = config.buttonLayout || 'stacked';\n this.incrementButtonClass = config.incrementButtonClass;\n this.decrementButtonClass = config.decrementButtonClass;\n this.incrementButtonIcon = config.incrementButtonIcon;\n this.decrementButtonIcon = config.decrementButtonIcon;\n }\n}\n\nexport class SliderFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n },\n ) {\n super({ ...config, type: 'slider' });\n this.min = config.min || 0;\n this.max = config.max || 100;\n this.step = config.step || 1;\n this.orientation = config.orientation || 'horizontal';\n this.range = config.range || false;\n this.animate = config.animate || false;\n }\n}\n\nexport class MultiSelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n },\n ) {\n super({ ...config, type: 'multi-select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.display = config.display || 'comma';\n this.maxSelectedLabels = config.maxSelectedLabels || 3;\n this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';\n this.showToggleAll = config.showToggleAll || true;\n this.resetFilterOnHide = config.resetFilterOnHide || false;\n }\n}\n\nexport class PickListFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n sourceHeader: string;\n targetHeader: string;\n showSourceControls: boolean;\n showTargetControls: boolean;\n showSourceFilter: boolean;\n showTargetFilter: boolean;\n filterBy: string;\n dataKey?: string;\n dragdrop: boolean;\n responsive: boolean;\n breakpoint: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n sourceHeader?: string;\n targetHeader?: string;\n showSourceControls?: boolean;\n showTargetControls?: boolean;\n showSourceFilter?: boolean;\n showTargetFilter?: boolean;\n filterBy?: string;\n dataKey?: string;\n dragdrop?: boolean;\n responsive?: boolean;\n },\n ) {\n super({ ...config, type: 'pick-list' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.sourceHeader = config.sourceHeader || 'Available';\n this.targetHeader = config.targetHeader || 'Selected';\n this.showSourceControls =\n config.showSourceControls !== undefined\n ? config.showSourceControls\n : true;\n this.showTargetControls =\n config.showTargetControls !== undefined\n ? config.showTargetControls\n : true;\n this.showSourceFilter =\n config.showSourceFilter !== undefined ? config.showSourceFilter : false;\n this.showTargetFilter =\n config.showTargetFilter !== undefined ? config.showTargetFilter : false;\n this.filterBy = config.filterBy || this.optionLabel;\n this.dataKey = config.dataKey || this.optionValue;\n this.dragdrop = config.dragdrop ?? false;\n this.responsive = config.responsive ?? true;\n }\n}\n\nexport class CheckboxFieldConfig extends BaseFieldConfig {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n },\n ) {\n super({ ...config, type: 'checkbox' });\n this.binary = config.binary !== false; // Default to true\n this.trueValue = config.trueValue !== undefined ? config.trueValue : true;\n this.falseValue =\n config.falseValue !== undefined ? config.falseValue : false;\n this.checkboxIcon = config.checkboxIcon;\n }\n}\nexport class ToggleFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'toggle' });\n }\n}\nexport class EditorFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'editor-field' });\n }\n}\n\nexport class ColorPickerFieldConfig extends BaseFieldConfig {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n variant?: 'outlined' | 'filled';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n variant?: 'outlined' | 'filled';\n },\n ) {\n super({ ...config, type: 'color-picker' });\n this.format = config.format || 'hex';\n this.inline = config.inline || false;\n this.appendTo = config.appendTo || 'body';\n this.variant = config.variant || 'outlined';\n }\n}\n\nexport class IconFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {}) {\n super({ ...config, type: 'icon-field' });\n }\n}\n\nexport class SpacerFieldConfig extends BaseFieldConfig {\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type' | 'key' | 'label'> & {\n key?: string;\n label?: string;\n },\n ) {\n super({\n ...config,\n type: 'spacer',\n key: config.key || `spacer_${Date.now()}`,\n label: config.label || '',\n });\n }\n}\n\n// Union type for all field configurations\nexport type DynamicFieldConfig = {\n [K in keyof (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n PickListFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n SpacerFieldConfig &\n BaseFieldConfig)]?: (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n PickListFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n SpacerFieldConfig &\n BaseFieldConfig)[K];\n};\n\n// Layout configuration\nexport interface LayoutConfig {\n containerClass?: string;\n sectionClass?: string;\n fieldClass?: string;\n}\n\n// Simplified form configuration interface\nexport interface DynamicFormConfig {\n sections: SectionConfig[];\n layout?: LayoutConfig;\n}\nexport interface SectionConfig {\n key?: string;\n label?: string;\n type: 'none' | 'header';\n cssClass?: string;\n bodyClass?: string;\n headerClass?: string;\n columns?: number;\n\n order?: number;\n fields: DynamicFieldConfig[];\n}\nexport interface FieldState {\n hidden: boolean;\n disabled: boolean;\n}\n\nexport function createCustomValidator(\n customValidator: (value: any) => boolean | Promise<boolean>,\n message?: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = customValidator(control.value);\n\n if (result instanceof Promise) {\n // Handle async validation\n result.then((isValid) => {\n if (!isValid) {\n control.setErrors({\n custom: { message: message || 'Invalid value' },\n });\n }\n });\n return null; // For async, return null initially\n } else {\n // Handle sync validation\n return result\n ? null\n : { custom: { message: message || 'Invalid value' } };\n }\n };\n}\n\nexport function wrapValidatorWithMessage(\n validator: ValidatorFn,\n errorKey: string,\n message: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = validator(control);\n if (result) {\n // Replace the default error with custom message\n return { [errorKey]: { ...result[Object.keys(result)[0]], message } };\n }\n return null;\n };\n}\n// DynamicFieldConfig = input.required<any>({\n// transform: (value: any) => this.transformToDateFieldConfig(value)\n// });\n// transformToDateFieldConfig(value: any){\n// return new TextFieldConfig()\n// }\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/config/povide-messages';\nexport * from './lib/config/provide-confirmation';\nexport * from './lib/utils/theme';\nexport * from './lib/utils/inputs';\nexport * from './lib/config/dynamic-form.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAKA;;;;;AAKG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAA;IAC3B,IAAI,CAAC,GAAW,CAAC,EACf,CAAC,GAAW,CAAC,EACb,CAAC,GAAW,CAAC;;AAGf,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnC;AAAO,SAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IACvC;SAAO;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEA,CAAC,IAAI,GAAG;IACR,CAAC,IAAI,GAAG;IACR,CAAC,IAAI,GAAG;AAER,IAAA,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrC,IAAA,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrC,IAAA,IAAI,CAAC,GAAW,CAAC,EACf,CAAS;IACX,MAAM,CAAC,GAAW,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AAEjC,IAAA,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,QAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACZ;SAAO;AACL,QAAA,MAAM,CAAC,GAAW,GAAG,GAAG,GAAG;QAC3B,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC;QACnD,QAAQ,GAAG;AACT,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC;AACF,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnB;AACF,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnB;;QAEJ,CAAC,IAAI,CAAC;IACR;AAEA,IAAA,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AACrC;AAEA;;;;;;AAMG;AACH,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;IAC/C,CAAC,IAAI,GAAG;AACR,IAAA,MAAM,CAAC,GAAW,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,CAAS,KAAY;QAC9B,MAAM,CAAC,GAAW,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE;AACnC,QAAA,MAAM,KAAK,GAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK;aAC1B,QAAQ,CAAC,EAAE;AACX,aAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACrB,IAAA,CAAC;AACD,IAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACjC;AAwGA;;;AAGG;AACH,MAAM,eAAe,GAAuC;IAC1D,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;IAC7B,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;IAC9B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;IAC/B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;IAC/B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;IAC/B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;IAC9B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC7B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC7B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9B,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;CAC9B;AAED;AACA,MAAM,UAAU,GAAmB;IACjC,GAAG;IACH,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN;AAED;;AAEG;AACH,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AACpD,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5C;AAEA;;;;;;AAMG;SACa,uBAAuB,CACrC,YAAoB,EACpB,iBAA+B,KAAK,EAAA;;AAGpC,IAAA,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAa,QAAQ,CAAC,YAAY,CAAC;;AAGjE,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,CAAC;;IAGnD,MAAM,CAAC,GAAG,MAAM;AAEhB;;;;;AAKG;AACH,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC;AAE1D;;;;;;AAMG;AACH,IAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;;IAGvC,MAAM,OAAO,GAAkC,EAAE;AAEjD,IAAA,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;AAC9B,QAAA,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC;;AAGtC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC;AACpD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC;AAEhD,QAAA,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAC1C;;;AAIA,IAAA,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY;AAEtC,IAAA,OAAO,OAA+B;AACxC;;ACzQA,MAAM,UAAU,GAA+B;;AAE7C,IAAA,UAAU,EAAE,sBAAsB;;;;;;;;CAQnC;AAEK,SAAU,kBAAkB,CAAC,KAAa,EAAA;AAC9C,IAAA,YAAY,CAAC;AACX,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,uBAAuB,CAAC,KAAK,IAAI,SAAS,CAAC;AACrD,SAAA;AACF,KAAA,CAAC;AACJ;AAEM,SAAU,qBAAqB,CAAC,KAAc,EAAA;IAClD,IAAI,KAAK,EAAE;QACT,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC;AACrD,QAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CACxC,wBAAwB,EACxB,OAAO,CAAC,KAAK,CAAC,CACf;AACD,QAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CACxC,uBAAuB,EACvB,OAAO,CAAC,KAAK,CAAC,CACf;IACH;AACF;AAEM,SAAU,eAAe,CAAC,KAAa,EAAA;IAC3C,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,IAAI,SAAS,EAAE,KAAK,CAAC;AAClE,IAAA,YAAY,CAAC;AACX,QAAA,QAAQ,EAAE;AACR,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;AACrB,wBAAA,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;AAC1B,wBAAA,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC;AAC/B,wBAAA,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;AACnB,wBAAA,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;AACxB,wBAAA,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC;AAC/B,wBAAA,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AACJ;AAEA,MAAM,QAAQ,GAAG,CAAC,YAA6B,KAAI;AACjD,IAAA,MAAM,WAAW,GAAG,uBAAuB,CACzC,YAAY,EAAE,SAAS,IAAI,SAAS,EACpC,KAAK,CACN;AACD,IAAA,MAAM,OAAO,GAAiC;AAC5C,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,KAAK,EAAE,sBAAsB;AAC9B,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,WAAW,EAAE;AACX,gBAAA,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AACzB,wBAAA,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC;AAC9B,wBAAA,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC;AACnC,wBAAA,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC;AAC/B,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;AACvB,wBAAA,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC;AAC5B,wBAAA,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC;AACnC,wBAAA,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC;AAC/B,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,OAAO,EAAE,uBAAuB,CAAC,YAAY,EAAE,YAAY,IAAI,SAAS,CAAC;AACzE,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE,oBAAoB;AACnC,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,YAAY,EAAE,oBAAoB;AACnC,aAAA;AACF,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE,GAAG;AACb,iBAAA;AACD,gBAAA,OAAO,EAAE;AACP,oBAAA,OAAO,EAAE,GAAG;AACb,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE,GAAG;AACb,iBAAA;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE;AACJ,oBAAA,YAAY,EAAE,oBAAoB;AACnC,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE;AACL,wBAAA,OAAO,EAAE,UAAU;AACnB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,UAAU;AACnB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE,KAAK;AACf,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE;AACL,wBAAA,IAAI,EAAE;AACJ,4BAAA,YAAY,EAAE,eAAe;AAC9B,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE;AACJ,4BAAA,YAAY,EAAE,eAAe;AAC9B,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE;AACJ,oBAAA,YAAY,EAAE,oBAAoB;AACnC,iBAAA;AACF,aAAA;AAED,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,EAAE;AACJ,oBAAA,YAAY,EAAE,oBAAoB;AAClC,oBAAA,OAAO,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,YAAY,EAAE,GAAG;AAClB,iBAAA;AAED,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE;AACL,wBAAA,SAAS,EAAE;AACT,4BAAA,KAAK,EAAE,eAAe;AACtB,4BAAA,eAAe,EAAE,MAAM;AACvB,4BAAA,kBAAkB,EAAE,eAAe;AACnC,4BAAA,aAAa,EAAE,eAAe;AAC9B,4BAAA,SAAS,EAAE;AACT,gCAAA,KAAK,EAAE,eAAe;AACvB,6BAAA;AACF,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE;AACT,4BAAA,KAAK,EAAE,eAAe;AACtB,4BAAA,eAAe,EAAE,aAAa;AAC9B,4BAAA,kBAAkB,EAAE,aAAa;AACjC,4BAAA,aAAa,EAAE,MAAM;AACrB,4BAAA,SAAS,EAAE;AACT,gCAAA,KAAK,EAAE,MAAM;AACd,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DV,QAAA,CAAA;AACF,aAAA;AAED,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE;AACJ,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,MAAM,EAAE,QAAQ;AACjB,iBAAA;AACF,aAAA;;;;;;;;;;;;;;;;;;;;AAqBF,SAAA;KACF;AAED,IAAA,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC,CAAC;AAEK,SAAU,mBAAmB,CACjC,YAA6B,EAAA;AAE7B,IAAA,qBAAqB,CAAC,YAAY,EAAE,eAAe,CAAC;AACpD,IAAA,OAAO,cAAc,CAAC;AACpB,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC;AAC9B,YAAA,OAAO,EAAE;AACP,gBAAA,gBAAgB,EAAE,OAAO;AAC1B,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AACJ;;SC7TgB,iBAAiB,GAAA;AAC/B,IAAA,OAAO,cAAc;AACvB;;SCFgB,qBAAqB,GAAA;AACnC,IAAA,OAAO,mBAAmB;AAC5B;;ACFM,SAAU,SAAS,CAAC,OAA+B,EAAA;AACvD,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,KAAK;IAC1B,OAAO,OAAO,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO;AACxD;;MCwCa,eAAe,CAAA;AAC1B,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,eAAe;AAEf,IAAA,WAAA,CAAY,MAKX,EAAA;AACC,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe;IAC/C;;AAGA,IAAA,OAAO,QAAQ,CAAC,OAAO,GAAG,wBAAwB,EAAA;QAChD,OAAO,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAC3D;AAEA,IAAA,OAAO,KAAK,CAAC,OAAO,GAAG,4BAA4B,EAAA;QACjD,OAAO,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACxD;AAEA,IAAA,OAAO,SAAS,CAAC,MAAc,EAAE,OAAgB,EAAA;QAC/C,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,OAAO,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,WAAA,CAAa;AAC7D,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,SAAS,CAAC,MAAc,EAAE,OAAgB,EAAA;QAC/C,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,OAAO,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,WAAA,CAAa;AAC7D,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,GAAG,CAAC,KAAa,EAAE,OAAgB,EAAA;QACxC,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,IAAI,EAAE,KAAK;YACX,KAAK;AACL,YAAA,OAAO,EAAE,OAAO,IAAI,CAAA,iBAAA,EAAoB,KAAK,CAAA,CAAE;AAChD,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,GAAG,CAAC,KAAa,EAAE,OAAgB,EAAA;QACxC,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,IAAI,EAAE,KAAK;YACX,KAAK;AACL,YAAA,OAAO,EAAE,OAAO,IAAI,CAAA,iBAAA,EAAoB,KAAK,CAAA,CAAE;AAChD,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,OAAO,CAAC,OAAe,EAAE,OAAO,GAAG,gBAAgB,EAAA;AACxD,QAAA,OAAO,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC1E;AAEA,IAAA,OAAO,MAAM,CACX,SAAqD,EACrD,OAAO,GAAG,eAAe,EAAA;QAEzB,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,eAAe,EAAE,SAAS;YAC1B,OAAO;AACR,SAAA,CAAC;IACJ;AACD;MAMqB,eAAe,CAAA;AACnC,IAAA,GAAG;AACH,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,WAAW;AACX,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,UAAU;AACV,IAAA,KAAK;AACL,IAAA,OAAO;AAEP,IAAA,YAAY;AAEZ,IAAA,cAAc;AACd,IAAA,SAAS;AAET,IAAA,WAAA,CAAY,MAeX,EAAA;QACC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,KAAK;QAC9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;QACvB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK;QACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE;QAC3C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE;QAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE;QACrC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE;QACzC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE;IACrC;AACD;AAED;AACM,MAAO,eAAgB,SAAQ,eAAe,CAAA;AAClD,IAAA,SAAS;AAET,IAAA,WAAA,CACE,MAEC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM;IAC7C;AACD;AAEK,MAAO,mBAAoB,SAAQ,eAAe,CAAA;AACtD,IAAA,IAAI;AACJ,IAAA,UAAU;AAEV,IAAA,WAAA,CACE,MAGC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,KAAK;IAC9C;AACD;AAEK,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AACpD,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,QAAQ;AACR,IAAA,iBAAiB;AACjB,IAAA,SAAS;AACT,IAAA,YAAY;AACZ,IAAA,oBAAoB;AAEpB,IAAA,WAAA,CACE,MAWC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE;QACrC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,WAAW;QAChE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK;QAC1C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,sBAAsB;QACjE,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,IAAI,IAAI;IACjE;AACD;AAEK,MAAO,sBAAuB,SAAQ,eAAe,CAAA;AACzD,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,WAAW;AAEX,IAAA,WAAA,CACE,MAKC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU;IACrD;AACD;AACK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;AACxD,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,IAAI;AAEJ,IAAA,WAAA,CACE,MAKC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO;IACpC;AACD;AACK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;AACxD,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,OAAO;AAEP,IAAA,WAAA,CACE,MAQC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE;QAC7B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE;QACjC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ;IACnD;AACD;AAEK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;AACxD,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,YAAY;AACZ,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,aAAa;AACb,IAAA,OAAO;AACP,IAAA,KAAK;AACL,IAAA,WAAW;AAEX,IAAA,WAAA,CACE,MAUC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ;QACnC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,UAAU;AAC7C,QAAA,IAAI,CAAC,YAAY;AACf,YAAA,MAAM,CAAC,YAAY,IAAI,sCAAsC;QAC/D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,+BAA+B;QAC9D,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,SAAS;QACtD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS;QAC1C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,aAAa;QAC1C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,gCAAgC;IAC3E;AACD;AAEK,MAAO,eAAgB,SAAQ,eAAe,CAAA;AAClD,IAAA,UAAU;AACV,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,aAAa;AACb,IAAA,YAAY;AACZ,IAAA,SAAS;AACT,IAAA,QAAQ;AACR,IAAA,IAAI;AACJ,IAAA,aAAa;AACb,IAAA,SAAS;AACT,IAAA,MAAM;AAEN,IAAA,WAAA,CACE,MAeC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,YAAY;QACnD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;QACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK;QAC9C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI;AAC3C,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC7B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE;QAC/C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE;QAC7C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,WAAW;QAChD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI;QACvC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,gBAAgB;QAC3C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK;QAClD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK;IACtC;AACD;AAEK,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AACpD,IAAA,GAAG;AACH,IAAA,GAAG;AACH,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,iBAAiB;AACjB,IAAA,iBAAiB;AACjB,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,YAAY;AACZ,IAAA,oBAAoB;AACpB,IAAA,oBAAoB;AACpB,IAAA,mBAAmB;AACnB,IAAA,mBAAmB;AAEnB,IAAA,WAAA,CACE,MAiBC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;AACrB,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB;AACjD,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB;QACjD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK;QAC9C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS;AACpD,QAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB;AACvD,QAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB;AACvD,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;AACrD,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;IACvD;AACD;AAEK,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AACpD,IAAA,GAAG;AACH,IAAA,GAAG;AACH,IAAA,IAAI;AACJ,IAAA,WAAW;AACX,IAAA,KAAK;AACL,IAAA,OAAO;AAEP,IAAA,WAAA,CACE,MAOC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY;QACrD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK;IACxC;AACD;AAEK,MAAO,sBAAuB,SAAQ,eAAe,CAAA;AACzD,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,MAAM;AACN,IAAA,QAAQ;AACR,IAAA,iBAAiB;AACjB,IAAA,SAAS;AACT,IAAA,YAAY;AACZ,IAAA,OAAO;AACP,IAAA,iBAAiB;AACjB,IAAA,kBAAkB;AAClB,IAAA,aAAa;AACb,IAAA,iBAAiB;AAEjB,IAAA,WAAA,CACE,MAcC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE;QACrC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,WAAW;QAChE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK;QAC1C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,sBAAsB;QACjE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO;QACxC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC;QACtD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,oBAAoB;QAC3E,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI;QACjD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,KAAK;IAC5D;AACD;AAEK,MAAO,mBAAoB,SAAQ,eAAe,CAAA;AACtD,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,YAAY;AACZ,IAAA,YAAY;AACZ,IAAA,kBAAkB;AAClB,IAAA,kBAAkB;AAClB,IAAA,gBAAgB;AAChB,IAAA,gBAAgB;AAChB,IAAA,QAAQ;AACR,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,UAAU;AACV,IAAA,UAAU;AAEV,IAAA,WAAA,CACE,MAcC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO;QAChD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,WAAW;QACtD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,UAAU;AACrD,QAAA,IAAI,CAAC,kBAAkB;YACrB,MAAM,CAAC,kBAAkB,KAAK;kBAC1B,MAAM,CAAC;kBACP,IAAI;AACV,QAAA,IAAI,CAAC,kBAAkB;YACrB,MAAM,CAAC,kBAAkB,KAAK;kBAC1B,MAAM,CAAC;kBACP,IAAI;AACV,QAAA,IAAI,CAAC,gBAAgB;AACnB,YAAA,MAAM,CAAC,gBAAgB,KAAK,SAAS,GAAG,MAAM,CAAC,gBAAgB,GAAG,KAAK;AACzE,QAAA,IAAI,CAAC,gBAAgB;AACnB,YAAA,MAAM,CAAC,gBAAgB,KAAK,SAAS,GAAG,MAAM,CAAC,gBAAgB,GAAG,KAAK;QACzE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW;QACnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW;QACjD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;QACxC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI;IAC7C;AACD;AAEK,MAAO,mBAAoB,SAAQ,eAAe,CAAA;AACtD,IAAA,MAAM;AACN,IAAA,SAAS;AACT,IAAA,UAAU;AACV,IAAA,YAAY;AAEZ,IAAA,WAAA,CACE,MAKC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI;AACzE,QAAA,IAAI,CAAC,UAAU;AACb,YAAA,MAAM,CAAC,UAAU,KAAK,SAAS,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK;AAC7D,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;IACzC;AACD;AACK,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AACpD,IAAA,WAAA,CAAY,MAAgD,EAAA;QAC1D,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACtC;AACD;AACK,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AACpD,IAAA,WAAA,CAAY,MAAgD,EAAA;QAC1D,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAC5C;AACD;AAEK,MAAO,sBAAuB,SAAQ,eAAe,CAAA;AACzD,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,QAAQ;AACR,IAAA,OAAO;AAEP,IAAA,WAAA,CACE,MAKC,EAAA;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM;QACzC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,UAAU;IAC7C;AACD;AAEK,MAAO,eAAgB,SAAQ,eAAe,CAAA;AAClD,IAAA,WAAA,CAAY,MAAqD,EAAA;QAC/D,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC1C;AACD;AAEK,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AACpD,IAAA,WAAA,CACE,MAGC,EAAA;AAED,QAAA,KAAK,CAAC;AACJ,YAAA,GAAG,MAAM;AACT,YAAA,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE;AACzC,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;AAC1B,SAAA,CAAC;IACJ;AACD;AA4DK,SAAU,qBAAqB,CACnC,eAA2D,EAC3D,OAAgB,EAAA;IAEhB,OAAO,CAAC,OAAwB,KAA6B;QAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;AAE7C,QAAA,IAAI,MAAM,YAAY,OAAO,EAAE;;AAE7B,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;gBACtB,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,CAAC,SAAS,CAAC;AAChB,wBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE;AAChD,qBAAA,CAAC;gBACJ;AACF,YAAA,CAAC,CAAC;YACF,OAAO,IAAI,CAAC;QACd;aAAO;;AAEL,YAAA,OAAO;AACL,kBAAE;AACF,kBAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,EAAE;QACzD;AACF,IAAA,CAAC;AACH;SAEgB,wBAAwB,CACtC,SAAsB,EACtB,QAAgB,EAChB,OAAe,EAAA;IAEf,OAAO,CAAC,OAAwB,KAA6B;AAC3D,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,MAAM,EAAE;;YAEV,OAAO,EAAE,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACvE;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AC7wBA;;AAEG;;ACFH;;AAEG;;;;"}
package/index.d.ts CHANGED
@@ -133,6 +133,7 @@ declare class SelectFieldConfig extends BaseFieldConfig {
133
133
  filterPlaceholder: string;
134
134
  showClear: boolean;
135
135
  emptyMessage: string;
136
+ hasPlaceholderPrefix: boolean;
136
137
  constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
137
138
  options: any[];
138
139
  optionLabel?: string;
@@ -143,6 +144,7 @@ declare class SelectFieldConfig extends BaseFieldConfig {
143
144
  filterPlaceholder?: string;
144
145
  showClear?: boolean;
145
146
  emptyMessage?: string;
147
+ hasPlaceholderPrefix?: boolean;
146
148
  });
147
149
  }
148
150
  declare class RadioButtonFieldConfig extends BaseFieldConfig {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/components",
3
- "version": "0.0.54",
3
+ "version": "0.0.56",
4
4
  "publishConfig": {
5
5
  "directory": ".",
6
6
  "linkDirectory": false,
@@ -55,6 +55,10 @@
55
55
  "types": "./button/index.d.ts",
56
56
  "default": "./fesm2022/masterteam-components-button.mjs"
57
57
  },
58
+ "./button-group": {
59
+ "types": "./button-group/index.d.ts",
60
+ "default": "./fesm2022/masterteam-components-button-group.mjs"
61
+ },
58
62
  "./card": {
59
63
  "types": "./card/index.d.ts",
60
64
  "default": "./fesm2022/masterteam-components-card.mjs"
@@ -63,10 +67,6 @@
63
67
  "types": "./checkbox-field/index.d.ts",
64
68
  "default": "./fesm2022/masterteam-components-checkbox-field.mjs"
65
69
  },
66
- "./button-group": {
67
- "types": "./button-group/index.d.ts",
68
- "default": "./fesm2022/masterteam-components-button-group.mjs"
69
- },
70
70
  "./chip": {
71
71
  "types": "./chip/index.d.ts",
72
72
  "default": "./fesm2022/masterteam-components-chip.mjs"
@@ -79,25 +79,21 @@
79
79
  "types": "./confirmation/index.d.ts",
80
80
  "default": "./fesm2022/masterteam-components-confirmation.mjs"
81
81
  },
82
- "./drawer": {
83
- "types": "./drawer/index.d.ts",
84
- "default": "./fesm2022/masterteam-components-drawer.mjs"
82
+ "./date-field": {
83
+ "types": "./date-field/index.d.ts",
84
+ "default": "./fesm2022/masterteam-components-date-field.mjs"
85
85
  },
86
86
  "./dialog": {
87
87
  "types": "./dialog/index.d.ts",
88
88
  "default": "./fesm2022/masterteam-components-dialog.mjs"
89
89
  },
90
- "./date-field": {
91
- "types": "./date-field/index.d.ts",
92
- "default": "./fesm2022/masterteam-components-date-field.mjs"
93
- },
94
90
  "./dynamic-drawer": {
95
91
  "types": "./dynamic-drawer/index.d.ts",
96
92
  "default": "./fesm2022/masterteam-components-dynamic-drawer.mjs"
97
93
  },
98
- "./field-validation": {
99
- "types": "./field-validation/index.d.ts",
100
- "default": "./fesm2022/masterteam-components-field-validation.mjs"
94
+ "./drawer": {
95
+ "types": "./drawer/index.d.ts",
96
+ "default": "./fesm2022/masterteam-components-drawer.mjs"
101
97
  },
102
98
  "./editor-field": {
103
99
  "types": "./editor-field/index.d.ts",
@@ -107,17 +103,17 @@
107
103
  "types": "./formula-builder/index.d.ts",
108
104
  "default": "./fesm2022/masterteam-components-formula-builder.mjs"
109
105
  },
110
- "./list": {
111
- "types": "./list/index.d.ts",
112
- "default": "./fesm2022/masterteam-components-list.mjs"
106
+ "./field-validation": {
107
+ "types": "./field-validation/index.d.ts",
108
+ "default": "./fesm2022/masterteam-components-field-validation.mjs"
113
109
  },
114
110
  "./icon-field": {
115
111
  "types": "./icon-field/index.d.ts",
116
112
  "default": "./fesm2022/masterteam-components-icon-field.mjs"
117
113
  },
118
- "./menu": {
119
- "types": "./menu/index.d.ts",
120
- "default": "./fesm2022/masterteam-components-menu.mjs"
114
+ "./list": {
115
+ "types": "./list/index.d.ts",
116
+ "default": "./fesm2022/masterteam-components-list.mjs"
121
117
  },
122
118
  "./modal": {
123
119
  "types": "./modal/index.d.ts",
@@ -127,42 +123,62 @@
127
123
  "types": "./module-summary-card/index.d.ts",
128
124
  "default": "./fesm2022/masterteam-components-module-summary-card.mjs"
129
125
  },
130
- "./paginator": {
131
- "types": "./paginator/index.d.ts",
132
- "default": "./fesm2022/masterteam-components-paginator.mjs"
126
+ "./menu": {
127
+ "types": "./menu/index.d.ts",
128
+ "default": "./fesm2022/masterteam-components-menu.mjs"
133
129
  },
134
130
  "./multi-select-field": {
135
131
  "types": "./multi-select-field/index.d.ts",
136
132
  "default": "./fesm2022/masterteam-components-multi-select-field.mjs"
137
133
  },
134
+ "./page": {
135
+ "types": "./page/index.d.ts",
136
+ "default": "./fesm2022/masterteam-components-page.mjs"
137
+ },
138
+ "./paginator": {
139
+ "types": "./paginator/index.d.ts",
140
+ "default": "./fesm2022/masterteam-components-paginator.mjs"
141
+ },
138
142
  "./number-field": {
139
143
  "types": "./number-field/index.d.ts",
140
144
  "default": "./fesm2022/masterteam-components-number-field.mjs"
141
145
  },
142
- "./radio-button-field": {
143
- "types": "./radio-button-field/index.d.ts",
144
- "default": "./fesm2022/masterteam-components-radio-button-field.mjs"
146
+ "./page-header": {
147
+ "types": "./page-header/index.d.ts",
148
+ "default": "./fesm2022/masterteam-components-page-header.mjs"
149
+ },
150
+ "./pick-list-field": {
151
+ "types": "./pick-list-field/index.d.ts",
152
+ "default": "./fesm2022/masterteam-components-pick-list-field.mjs"
145
153
  },
146
154
  "./radio-cards": {
147
155
  "types": "./radio-cards/index.d.ts",
148
156
  "default": "./fesm2022/masterteam-components-radio-cards.mjs"
149
157
  },
150
- "./pick-list-field": {
151
- "types": "./pick-list-field/index.d.ts",
152
- "default": "./fesm2022/masterteam-components-pick-list-field.mjs"
158
+ "./radio-button-field": {
159
+ "types": "./radio-button-field/index.d.ts",
160
+ "default": "./fesm2022/masterteam-components-radio-button-field.mjs"
153
161
  },
154
- "./radio-cards-field": {
155
- "types": "./radio-cards-field/index.d.ts",
156
- "default": "./fesm2022/masterteam-components-radio-cards-field.mjs"
162
+ "./sidebar": {
163
+ "types": "./sidebar/index.d.ts",
164
+ "default": "./fesm2022/masterteam-components-sidebar.mjs"
157
165
  },
158
166
  "./select-field": {
159
167
  "types": "./select-field/index.d.ts",
160
168
  "default": "./fesm2022/masterteam-components-select-field.mjs"
161
169
  },
170
+ "./radio-cards-field": {
171
+ "types": "./radio-cards-field/index.d.ts",
172
+ "default": "./fesm2022/masterteam-components-radio-cards-field.mjs"
173
+ },
162
174
  "./slider-field": {
163
175
  "types": "./slider-field/index.d.ts",
164
176
  "default": "./fesm2022/masterteam-components-slider-field.mjs"
165
177
  },
178
+ "./tabs": {
179
+ "types": "./tabs/index.d.ts",
180
+ "default": "./fesm2022/masterteam-components-tabs.mjs"
181
+ },
166
182
  "./table": {
167
183
  "types": "./table/index.d.ts",
168
184
  "default": "./fesm2022/masterteam-components-table.mjs"
@@ -171,25 +187,25 @@
171
187
  "types": "./text-field/index.d.ts",
172
188
  "default": "./fesm2022/masterteam-components-text-field.mjs"
173
189
  },
174
- "./textarea-field": {
175
- "types": "./textarea-field/index.d.ts",
176
- "default": "./fesm2022/masterteam-components-textarea-field.mjs"
177
- },
178
- "./tabs": {
179
- "types": "./tabs/index.d.ts",
180
- "default": "./fesm2022/masterteam-components-tabs.mjs"
190
+ "./toggle-field": {
191
+ "types": "./toggle-field/index.d.ts",
192
+ "default": "./fesm2022/masterteam-components-toggle-field.mjs"
181
193
  },
182
194
  "./toast": {
183
195
  "types": "./toast/index.d.ts",
184
196
  "default": "./fesm2022/masterteam-components-toast.mjs"
185
197
  },
198
+ "./textarea-field": {
199
+ "types": "./textarea-field/index.d.ts",
200
+ "default": "./fesm2022/masterteam-components-textarea-field.mjs"
201
+ },
186
202
  "./tooltip": {
187
203
  "types": "./tooltip/index.d.ts",
188
204
  "default": "./fesm2022/masterteam-components-tooltip.mjs"
189
205
  },
190
- "./toggle-field": {
191
- "types": "./toggle-field/index.d.ts",
192
- "default": "./fesm2022/masterteam-components-toggle-field.mjs"
206
+ "./topbar": {
207
+ "types": "./topbar/index.d.ts",
208
+ "default": "./fesm2022/masterteam-components-topbar.mjs"
193
209
  },
194
210
  "./upload-field": {
195
211
  "types": "./upload-field/index.d.ts",
@@ -0,0 +1,26 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef, ElementRef } from '@angular/core';
3
+ import { PageHeaderTab } from '@masterteam/components/page-header';
4
+ import { MTIcon } from '@masterteam/icons';
5
+
6
+ declare class Page {
7
+ backButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
8
+ backButtonIcon: _angular_core.InputSignal<"arrow" | "close" | undefined>;
9
+ avatarIcon: _angular_core.InputSignal<MTIcon | undefined>;
10
+ avatarStyle: _angular_core.InputSignal<Record<string, string> | undefined>;
11
+ avatarShape: _angular_core.InputSignal<"circle" | "square" | undefined>;
12
+ title: _angular_core.InputSignal<string>;
13
+ tabs: _angular_core.InputSignal<PageHeaderTab[]>;
14
+ activeTab: _angular_core.InputSignal<string | number | undefined>;
15
+ titleEnd: _angular_core.Signal<TemplateRef<any> | undefined>;
16
+ headerEnd: _angular_core.Signal<TemplateRef<any> | undefined>;
17
+ content: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
18
+ backButtonClick: _angular_core.OutputEmitterRef<void>;
19
+ tabChange: _angular_core.OutputEmitterRef<string | number>;
20
+ contentClass: _angular_core.InputSignal<string>;
21
+ id: _angular_core.InputSignal<string>;
22
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Page, never>;
23
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Page, "mt-page", never, { "backButton": { "alias": "backButton"; "required": false; "isSignal": true; }; "backButtonIcon": { "alias": "backButtonIcon"; "required": false; "isSignal": true; }; "avatarIcon": { "alias": "avatarIcon"; "required": false; "isSignal": true; }; "avatarStyle": { "alias": "avatarStyle"; "required": false; "isSignal": true; }; "avatarShape": { "alias": "avatarShape"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; "contentClass": { "alias": "contentClass"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "backButtonClick": "backButtonClick"; "tabChange": "tabChange"; }, ["titleEnd", "headerEnd"], ["*"], true, never>;
24
+ }
25
+
26
+ export { Page };
@@ -0,0 +1,30 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { MTIcon } from '@masterteam/icons';
4
+
5
+ interface PageHeaderTab {
6
+ label: string;
7
+ value: string | number;
8
+ }
9
+ declare class PageHeader {
10
+ backButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
11
+ backButtonIcon: _angular_core.InputSignal<"arrow" | "close">;
12
+ avatarIcon: _angular_core.InputSignal<MTIcon | undefined>;
13
+ avatarStyle: _angular_core.InputSignal<Record<string, string>>;
14
+ avatarShape: _angular_core.InputSignal<"circle" | "square">;
15
+ title: _angular_core.InputSignal<string>;
16
+ tabs: _angular_core.InputSignal<PageHeaderTab[]>;
17
+ activeTab: _angular_core.InputSignal<string | number | undefined>;
18
+ titleEnd: _angular_core.Signal<TemplateRef<any> | undefined>;
19
+ headerEnd: _angular_core.Signal<TemplateRef<any> | undefined>;
20
+ backButtonClick: _angular_core.OutputEmitterRef<void>;
21
+ tabChange: _angular_core.OutputEmitterRef<string | number>;
22
+ rtl: _angular_core.WritableSignal<boolean>;
23
+ backIcon: _angular_core.Signal<"arrow.arrow-narrow-left" | "arrow.arrow-narrow-right" | "general.x-close">;
24
+ hasTabs: _angular_core.Signal<boolean>;
25
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageHeader, never>;
26
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageHeader, "mt-page-header", never, { "backButton": { "alias": "backButton"; "required": false; "isSignal": true; }; "backButtonIcon": { "alias": "backButtonIcon"; "required": false; "isSignal": true; }; "avatarIcon": { "alias": "avatarIcon"; "required": false; "isSignal": true; }; "avatarStyle": { "alias": "avatarStyle"; "required": false; "isSignal": true; }; "avatarShape": { "alias": "avatarShape"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "backButtonClick": "backButtonClick"; "tabChange": "tabChange"; }, ["titleEnd", "headerEnd"], never, true, never>;
27
+ }
28
+
29
+ export { PageHeader };
30
+ export type { PageHeaderTab };
@@ -0,0 +1,21 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { MTIcon } from '@masterteam/icons';
3
+
4
+ interface SidebarItem {
5
+ id: string | number;
6
+ title: string;
7
+ icon?: MTIcon;
8
+ routerLink?: any[] | string;
9
+ }
10
+ declare class Sidebar {
11
+ items: _angular_core.InputSignal<SidebarItem[]>;
12
+ bgColor: _angular_core.InputSignal<string | undefined>;
13
+ bgImage: _angular_core.InputSignal<string | undefined>;
14
+ bgRepeat: _angular_core.InputSignalWithTransform<boolean, unknown>;
15
+ iconsColor: _angular_core.InputSignal<string>;
16
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Sidebar, never>;
17
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Sidebar, "mt-sidebar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "bgColor": { "alias": "bgColor"; "required": false; "isSignal": true; }; "bgImage": { "alias": "bgImage"; "required": false; "isSignal": true; }; "bgRepeat": { "alias": "bgRepeat"; "required": false; "isSignal": true; }; "iconsColor": { "alias": "iconsColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ }
19
+
20
+ export { Sidebar };
21
+ export type { SidebarItem };