{"version":3,"file":"acorex-platform-themes-shared-settings.provider-DxtfyNGS.mjs","sources":["../../../../libs/platform/themes/shared/src/lib/settings.provider.ts"],"sourcesContent":["import { AXPPlatformScope, AXPWidgetsCatalog } from '@acorex/platform/contracts';\nimport { Injector } from '@angular/core';\nimport { AXPCommonSettings, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\n\nimport { objectKeyValueTransforms } from '@acorex/platform/core';\n\nimport { AXPThemeLayoutSetting } from './contracts/settings.keys';\nimport { AXPMenuVerticalMode, AXPThemeMode } from './contracts/theme.types';\n\nconst I18N = '@layout:settings.appearance';\nconst verticalModeVisibility = `{{ context.eval('${AXPThemeLayoutSetting.MenuOrientation}') !== 'horizontal' }}`;\nconst maxOpenTabsVisibility = `{{ context.eval('${AXPCommonSettings.NavigationMode}') !== 'simple' }}`;\n\nexport class AXPThemeSettingProvider implements AXPSettingDefinitionProvider {\n  constructor(private _injector: Injector) {}\n\n  async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n    // Define the 'Appearance Settings' group\n    context\n      .addGroup(\n        'appearance',\n        `${I18N}.nav-title`,\n        `${I18N}.description`,\n        'fa-light fa-palette',\n        `${I18N}.title`,\n        50,\n      )\n\n      // Add the 'Brightness & Color' section\n      .addSection('color', `${I18N}.items.color.title`, `${I18N}.items.color.description`)\n\n      // Add the 'Theme Mode' setting\n      .addSetting({\n        key: AXPThemeLayoutSetting.Mode,\n        title: `${I18N}.items.color.mode.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: AXPThemeMode.Light,\n        valueTransforms: objectKeyValueTransforms('id'),\n        widget: {\n          type: AXPWidgetsCatalog.themeModeChooser,\n          layout: {\n            positions: {\n              sm: {\n                colSpan: 12,\n              },\n              md: {\n                colSpan: 6,\n              },\n            },\n          },\n        },\n        description: `${I18N}.items.color.mode.description`,\n      })\n\n      .addSetting({\n        key: AXPThemeLayoutSetting.Palette,\n        title: `${I18N}.items.color.palette.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: 'default',\n        valueTransforms: objectKeyValueTransforms('name'),\n        widget: {\n          type: 'theme-palette-chooser',\n          layout: {\n            stacked: true,\n          },\n        },\n        description: `${I18N}.items.color.palette.description`,\n      })\n\n      // End the 'Brightness & Color' section\n      .endSection()\n\n      // Add the 'Root Menu' section\n      .addSection('root-menu', `${I18N}.items.root-menu.title`, `${I18N}.items.root-menu.description`)\n\n      // Add the 'Menu Orientation' setting\n      .addSetting({\n        key: AXPThemeLayoutSetting.MenuOrientation,\n        title: `${I18N}.items.root-menu.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: 'vertical',\n        valueTransforms: objectKeyValueTransforms('id'),\n        widget: {\n          type: AXPWidgetsCatalog.menuOrientationChooser,\n          layout: {\n            positions: {\n              sm: {\n                colSpan: 12,\n              },\n              md: {\n                colSpan: 6,\n              },\n            },\n          },\n        },\n        description: `${I18N}.items.root-menu.description`,\n      })\n\n      .addSetting({\n        key: AXPThemeLayoutSetting.MenuVerticalMode,\n        title: `${I18N}.items.root-menu.vertical-mode.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: AXPMenuVerticalMode.Full,\n        valueTransforms: objectKeyValueTransforms('id'),\n        widget: {\n          type: AXPWidgetsCatalog.menuOrientationChooser,\n          options: {\n            chooser: 'vertical-mode',\n            visibility: verticalModeVisibility,\n          },\n          layout: {\n            positions: {\n              sm: {\n                colSpan: 12,\n              },\n              md: {\n                colSpan: 6,\n              },\n            },\n          },\n        },\n        description: `${I18N}.items.root-menu.vertical-mode.description`,\n      })\n\n      // Add the 'Menu Badge Visibility' setting\n      .addSetting({\n        key: AXPThemeLayoutSetting.MenuBadgeVisible,\n        title: `${I18N}.items.root-menu.badge.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: true,\n        widget: {\n          type: AXPWidgetsCatalog.toggle,\n          layout: {\n            positions: {\n              sm: {\n                colSpan: 12,\n              },\n              md: {\n                colSpan: 6,\n              },\n            },\n          },\n        },\n        description: `${I18N}.items.root-menu.badge.description`,\n      })\n      .endSection()\n\n      // Add the 'Navigation' section\n      .addSection('navigation', `${I18N}.items.navigation.title`, `${I18N}.items.navigation.description`)\n      .addSetting({\n        key: AXPCommonSettings.NavigationMode,\n        title: `${I18N}.items.navigation.mode.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: 'simple',\n        requiresPageRefresh: true,\n        widget: {\n          type: AXPWidgetsCatalog.menuOrientationChooser,\n          options: {\n            chooser: 'navigation-mode',\n          },\n          layout: {\n            positions: {\n              sm: {\n                colSpan: 12,\n              },\n              md: {\n                colSpan: 6,\n              },\n            },\n          },\n        },\n        description: `${I18N}.items.navigation.mode.description`,\n      })\n      .addSetting({\n        key: AXPCommonSettings.MaxOpenTabs,\n        title: `${I18N}.items.navigation.max-open-tabs.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: 5,\n        widget: {\n          type: AXPWidgetsCatalog.number,\n          options: {\n            minValue: 2,\n            maxValue: 20,\n            step: 1,\n            visibility: maxOpenTabsVisibility,\n          },\n        },\n        description: `${I18N}.items.navigation.max-open-tabs.description`,\n      })\n      .endSection()\n\n      // Add the 'Scale & Layout' section\n      .addSection('layout', `${I18N}.items.layout.title`, `${I18N}.items.layout.description`)\n\n      // Add the 'Font Style' setting\n      .addSetting({\n        key: AXPThemeLayoutSetting.Font,\n        title: `${I18N}.items.layout.font.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: 'system-ui',\n        valueTransforms: objectKeyValueTransforms('id'),\n        widget: {\n          type: AXPWidgetsCatalog.fontStyleChooser,\n          layout: {\n            positions: {\n              sm: {\n                colSpan: 12,\n              },\n              md: {\n                colSpan: 6,\n              },\n            },\n          },\n        },\n        description: `${I18N}.items.layout.font.description`,\n      })\n\n      // Add the 'Font Size' setting\n      .addSetting({\n        key: AXPThemeLayoutSetting.FontSize,\n        title: `${I18N}.items.layout.size.title`,\n        scope: AXPPlatformScope.User,\n        isInherited: true,\n        defaultValue: 'medium',\n        valueTransforms: objectKeyValueTransforms('id'),\n        widget: {\n          type: AXPWidgetsCatalog.fontSizeChooser,\n          layout: {\n            positions: {\n              sm: {\n                colSpan: 12,\n              },\n              md: {\n                colSpan: 6,\n              },\n            },\n          },\n        },\n        description: `${I18N}.items.layout.size.description`,\n      })\n\n      // End the 'Scale & Layout' section\n      .endSection()\n\n      // End the 'Appearance Settings' group\n      .endGroup();\n  }\n}\n"],"names":[],"mappings":"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"}