{"version":3,"file":"onecx-angular-utils-theme-primeng.mjs","sources":["../../../../libs/angular-utils/theme/primeng/src/utils/create-color-palette.ts","../../../../libs/angular-utils/theme/primeng/src/preset/default-theme-variables.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/breadcrumb.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/autocomplete.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/button.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/datatable.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/dialog.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/fieldset.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/floatlabel.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/inputtext.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/paginator.ts","../../../../libs/angular-utils/theme/primeng/src/preset/component-presets/fileupload.ts","../../../../libs/angular-utils/theme/primeng/src/preset/preset-variables.ts","../../../../libs/angular-utils/theme/primeng/src/utils/normalize-preset-keys.utils.ts","../../../../libs/angular-utils/theme/primeng/src/preset/custom-preset.ts","../../../../libs/angular-utils/theme/primeng/src/utils/theme-config.ts","../../../../libs/angular-utils/theme/primeng/src/services/theme-config.service.ts","../../../../libs/angular-utils/theme/primeng/src/utils/app-styles-initializer.ts","../../../../libs/angular-utils/theme/primeng/src/utils/application-config.ts","../../../../libs/angular-utils/theme/primeng/src/utils/logger.utils.ts","../../../../libs/angular-utils/theme/primeng/src/services/custom-use-style.service.ts","../../../../libs/angular-utils/theme/primeng/src/index.ts","../../../../libs/angular-utils/theme/primeng/src/onecx-angular-utils-theme-primeng.ts"],"sourcesContent":["export interface ColorAdjustment {\n  [key: number]: number\n}\n\nexport const standardColorAdjustment: ColorAdjustment = {\n  50: 210,\n  100: 195,\n  200: 150,\n  300: 98,\n  400: 20,\n  500: 0,\n  600: -25,\n  700: -65,\n  800: -80,\n  900: -110,\n  950: -140,\n}\n\n/**\n * Adjusts the color by lightening or darkening it based on the provided offset.\n *\n * @param {string} color - A string representing the color in hexadecimal format (e.g., \"#RRGGBB\").\n * @param {number} channelOffset - A number indicating how much to lighten or darken the color.\n *                                 Positive values lighten the color, while negative values darken it.\n *                                 Valid values range from -255 to 255.\n * @returns {string} - The adjusted color in hexadecimal format.\n */\nexport function adjustColor(color: string, channelOffSet: number): string {\n  let colorBeginsWithHash = false\n\n  if (color[0] === '#') {\n    color = color.slice(1)\n    colorBeginsWithHash = true\n  }\n\n  const num = parseInt(color, 16)\n\n  let r = (num >> 16) + channelOffSet\n  if (r > 255) r = 255\n  else if (r < 0) r = 0\n\n  let g = ((num >> 8) & 0x00ff) + channelOffSet\n  if (g > 255) g = 255\n  else if (g < 0) g = 0\n\n  let b = (num & 0x0000ff) + channelOffSet\n  if (b > 255) b = 255\n  else if (b < 0) b = 0\n\n  return (colorBeginsWithHash ? '#' : '') + ((r << 16) | (g << 8) | b).toString(16).padStart(6, '0')\n}\n\nexport function createPalette(primaryColor: string, adjustments: ColorAdjustment): { [key: number]: string } {\n  const palette: { [key: number]: string } = {}\n  Object.keys(adjustments).forEach((key) => {\n    const entry = parseInt(key, 10)\n    palette[entry] = adjustColor(primaryColor, adjustments[entry])\n  })\n  return palette\n}\n\n/**\n * Calculates the Euclidean distance between two colors in RGB space.\n *\n * @param {string} color1 - A string representing the first color in hexadecimal format (e.g., \"#RRGGBB\").\n * @param {string} color2 - A string representing the second color in hexadecimal format (e.g., \"#RRGGBB\").\n * @returns {number} - The Euclidean distance between the two colors.\n */\nexport function colorDelta(color1: string, color2: string): number {\n  function hexToRgb(hex: string): { r: number; g: number; b: number } {\n    const color = hex.startsWith('#') ? hex.slice(1) : hex\n    const bigint = parseInt(color, 16)\n    const r = (bigint >> 16) & 255\n    const g = (bigint >> 8) & 255\n    const b = bigint & 255\n    return { r, g, b }\n  }\n\n  const rgb1 = hexToRgb(color1)\n  const rgb2 = hexToRgb(color2)\n\n  const delta = Math.sqrt(Math.pow(rgb1.r - rgb2.r, 2) + Math.pow(rgb1.g - rgb2.g, 2) + Math.pow(rgb1.b - rgb2.b, 2))\n\n  return delta\n}\n","export default {\n  font: {\n    fontFamily: 'Ubuntu, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif',\n    fontSize: null,\n  },\n  topbar: {\n    topbarBgColor: '#0D3650',\n    topbarItemTextColor: '#ffffff',\n    topbarTextColor: '#ffffff',\n    topbarLeftBgColor: '#0D3650',\n    topbarItemTextHoverBgColor: '#262626',\n    topbarMenuButtonBgColor: 'rgb(255 0 68)',\n    logoColor: '#ffffff',\n  },\n  sidebar: {\n    menuTextColor: '#274B5F',\n    menuBgColor: ' #fdfeff',\n    menuItemTextColor: ' #515c66',\n    menuItemBgColor: null,\n    menuItemHoverBgColor: '#d0021b',\n    menuActiveItemTextColor: '#515c66',\n    menuActiveItemBgColor: 'rgba(0, 0, 0, 0.04)',\n    menuInlineBorderColor: null,\n  },\n  general: {\n    primaryColor: '#274B5F',\n    secondaryColor: '#1C4257',\n    textColor: 'rgba(0, 0, 0, 0.87)',\n    textSecondaryColor: '#262626',\n    bodyBgColor: '#f7f7f7',\n    contentBgColor: '#ffffff',\n    contentAltBgColor: null,\n    overlayContentBgColor: '#ffffff',\n    hoverBgColor: '#ad1457',\n    solidSurfaceTextColor: '#ffffff',\n    dividerColor: '#e4e4e4',\n    buttonHoverBg: '#ad1457',\n    buttonActiveBg: 'rgba(39, 75, 95, 0.68)',\n    dangerButtonBg: '#D32F2F',\n    infoMessageBg: '#b3e5fc',\n    successMessageBg: '#c8e6c9',\n    warningMessageBg: '#ffecb3',\n    errorMessageBg: '#ffcdd2',\n  },\n}\n","export default {\n  breadcrumb: {\n    root: {\n      padding: '0.75rem',\n    },\n    item: {\n      color: '{general.textSecondaryColor}',\n      hoverColor: '{general.textSecondaryColor}',\n      icon: {\n        color: '{general.textSecondaryColor}',\n        hoverColor: '{general.textSecondaryColor}',\n      },\n    },\n    separator: {\n      color: '{general.textSecondaryColor}',\n    },\n  },\n}\n","export default {\n  autocomplete: {\n    dropdown: {\n      borderColor: '{primary.color}',\n      hoverBorderColor: '{primary.hoverColor}'\n    },\n    option: {\n      focusBackground: '{surface.50}',\n      selectedBackground: '{list.option.selectedBackground}',\n      selectedFocusBackground: '{list.option.selectedFocusBackground}'\n    },\n    colorScheme: {\n      light: {\n        dropdown: {\n          background: '{primary.color}',\n          hoverBackground: '{primary.hoverColor}',\n          color: '{surface.0}',\n          hoverColor: '{surface.0}',\n        }\n      }\n    }\n}}\n","export default {\n  button: {\n    root: {\n      paddingY: '0.643rem',\n    },\n  },\n}\n","export default {\n    datatable: {\n        headerCell: {\n            background: '{surface.0}',\n            hoverBackground: '{surface.50}', \n            selectedBackground: '{surface.50}'\n        },\n        columnTitle: {\n            fontWeight: '500'\n        }\n    }\n}","export default {\n    dialog: {\n        footer: {\n          padding: '.75rem 1.25rem .75rem 1.25rem'\n        },\n        title: {\n            fontWeight: '500'\n        }\n    }\n}","export default {\n    fieldset: {\n        legend: {\n            fontWeight: '500'\n        }\n    }\n}","export default {\n  floatlabel: {\n    root: {\n      fontWeight: '400',\n    },\n  },\n}\n","export default {\n  inputtext: {\n    root: {\n      color: '{general.textColor}',\n      disabledBackground: '{formField.background}',\n      disabledColor: '{general.textColor}',\n      borderColor: '{surface.300}',\n    },\n  },\n}\n","export default {\n    paginator:  {\n        navButton: {\n            hoverBackground: '{surface.50}'\n        },\n        currentPageReport: {\n            color: '{general.textSecondaryColor}'\n        } \n    }\n}","export default {\n  fileupload: {\n    root: {\n      borderRadius: '{border.radius.sm}',\n      // border width is set to only add additional border between header and content\n    },\n    header: {\n      padding: '0.75rem',\n      background: '{surface.50}',\n      borderWidth: '0 0 1px 0',\n    },\n  },\n}\n","import { createPalette, standardColorAdjustment } from '../utils/create-color-palette'\n\nimport defaultVariables from './default-theme-variables'\nimport breadcrumb from './component-presets/breadcrumb'\nimport autocomplete from './component-presets/autocomplete'\nimport button from './component-presets/button'\nimport datatable from './component-presets/datatable'\nimport dialog from './component-presets/dialog'\nimport fieldset from './component-presets/fieldset'\nimport floatlabel from './component-presets/floatlabel'\nimport inputtext from './component-presets/inputtext'\nimport paginator from './component-presets/paginator'\nimport fileupload from './component-presets/fileupload'\n\n// Structure of this object has to match https://github.com/primefaces/primeuix/tree/main/packages/themes/src/presets/aura\nexport default {\n  components: {\n    ...autocomplete,\n    ...breadcrumb,\n    ...button,\n    ...datatable,\n    ...dialog,\n    ...fieldset,\n    ...fileupload,\n    ...floatlabel,\n    ...inputtext,\n    ...paginator,\n  },\n  semantic: {\n    // OneCX semantic variables extension\n    extend: {\n      onecx: {\n        ...defaultVariables.font,\n        ...defaultVariables.topbar,\n        ...defaultVariables.sidebar,\n        ...defaultVariables.general,\n        errorColor: '#b00020',\n        animationDuration: '0.2s',\n      },\n    },\n    transitionDuration: '0.2s',\n    focusRing: {\n      width: '1px',\n      style: 'solid',\n      color: '{primary.color}',\n      offset: '2px',\n      shadow: 'none',\n    },\n    disabledOpacity: '0.6',\n    iconSize: '1rem',\n    anchorGutter: '2px',\n    primary: {\n      ...createPalette(defaultVariables.general.primaryColor, standardColorAdjustment),\n    },\n    formField: {\n      // INFO: --input-padding from dev env has equal values 0.75rem 0.75rem\n      paddingX: '0.75rem',\n      // paddingY: '0.5rem',\n      paddingY: '0.75rem', // equal to paddingX\n      // INFO: Tokens for new small form fields\n      sm: {\n        fontSize: '0.875rem',\n        paddingX: '0.625rem',\n        // paddingY: '0.375rem',\n        paddingY: '0.625rem', // equal to paddingX\n      },\n      // INFO: Tokens for new large form fields\n      lg: {\n        fontSize: '1.125rem',\n        paddingX: '0.875rem',\n        // paddingY: '0.625rem',\n        paddingY: '0.875rem', // equal to paddingX\n      },\n      borderRadius: '{border.radius.md}',\n      focusRing: {\n        width: '0',\n        style: 'none',\n        color: 'transparent',\n        offset: '0',\n        shadow: 'none',\n      },\n      transitionDuration: '{transition.duration}',\n    },\n    // INFO: Lists in all select and list components (except for tree select and menus)\n    list: {\n      // INFO: List container doesn't seem to have padding in our apps\n      // padding: '0.25rem 0.25rem',\n      // TODO: Do we set a padding here and reduce the padding of the individual items?\n      padding: '0',\n      // INFO: new variable, gap between each item in list\n      gap: '2px',\n      header: {\n        // INFO: --input-list-header-padding used\n        //padding: '0.5rem 1rem 0.25rem 1rem',\n        padding: '0.75rem',\n      },\n      option: {\n        // INFO: --input-list-item-padding used\n        // padding: '0.25rem 0.25rem',\n        // TODO: Do we reduce this because of the newly introduced gap?\n        padding: '0.75rem 0.75rem',\n        // INFO: --input-list-item-border-radius used\n        // borderRadius: '{border.radius.sm}',\n        // TODO: If we decide to add padding to list container, a little bit of border radius would look great\n        borderRadius: 0,\n      },\n      optionGroup: {\n        // INFO: --submenu-header-padding used\n        // padding: '0.5rem 0.75rem',\n        padding: '0.75rem',\n        // INFO: --submenu-header-font-weight used (400) -> no difference to weight of normal list item\n        // TODO: Decide if we want to keep 600 or revert back to 400\n        fontWeight: '600',\n      },\n    },\n    mask: {\n      // INFO: No variable for this, so probably was default PrimeNG value\n      transitionDuration: '0.15s',\n    },\n    content: {\n      // INFO: --border-radius is used\n      borderRadius: '{border.radius.md}',\n    },\n    // INFO: All menu components\n    navigation: {\n      list: {\n        // INFO: --vertical-menu-padding used\n        // padding: '0.25rem 0.25rem',\n        padding: '0.5rem 1.25rem',\n        // INFO: new variable, gap between each item in list\n        gap: '2px',\n      },\n      item: {\n        // INFO: --menuitem-padding used\n        // padding: '0.5rem 0.75rem',\n        padding: '0.75rem 0.75rem',\n        // INFO: --menuitem-border-radius used\n        // borderRadius: '{border.radius.sm}',\n        borderRadius: '0',\n        // INFO: new variable, gap between items in a single item, e.g., icon and text\n        gap: '0.5rem',\n      },\n      submenuLabel: {\n        // INFO: --submenu-header-padding used\n        // padding: '0.5rem 0.75rem',\n        padding: '0.75rem',\n        // INFO: --submenu-header-font-weight used\n        // fontWeight: '600',\n        fontWeight: '400',\n      },\n      submenuIcon: {\n        // INFO: --menuitem-submenu-icon-font-size used\n        size: '0.875rem',\n      },\n    },\n    overlay: {\n      // INFO: Components allowing selection\n      select: {\n        // INFO: --border-radius is used\n        // TODO: Can be borderRadius: 4px\n        // borderRadius: '{border.radius.md}',\n        borderRadius: '{border.radius.sm}',\n        // INFO: --input-overlay-shadow is used\n        // shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)',\n        shadow:\n          '0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)',\n      },\n      // INFO: Components that pop up (p-password, tooltip)\n      popover: {\n        // INFO: --border-radius is used\n        // TODO: Can be borderRadius: 4px\n        // borderRadius: '{border.radius.md}',\n        borderRadius: '{border.radius.sm}',\n        // INFO: for tooltip its 0.5rem\n        // INFO: for overlaypanel and password 0.75rem\n        padding: '0.75rem',\n        // INFO: --input-overlay-shadow used\n        // shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)',\n        shadow:\n          '0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)',\n      },\n      // INFO: The only usage of this token is related to p-dialog\n      modal: {\n        // INFO: --border-radius is used\n        // TODO: Can be borderRadius: 4px\n        // borderRadius: '{border.radius.md}',\n        borderRadius: '{border.radius.sm}',\n        // INFO: --dialog-header-padding is used and --dialog-content-padding is used\n        padding: '1.25rem',\n        // INFO: --overlay-container-shadow is used\n        // shadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)',\n        shadow:\n          '0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)',\n      },\n      // INFO: All menu components\n      navigation: {\n        // INFO: --overlay-menu-shadow is used\n        // shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)',\n        shadow: '0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)',\n      },\n    },\n    colorScheme: {\n      light: {\n        surface: {\n          0: '#ffffff',\n          50: '#f7f8f9',\n          100: '#dadee3',\n          200: '#bcc3cd',\n          300: '#9fa9b7',\n          400: '#818ea1',\n          500: '#64748b',\n          600: '#556376',\n          700: '#465161',\n          800: '#37404c',\n          900: '#282e38',\n          950: '#191d23',\n        },\n        primary: {\n          color: '{primary.500}',\n          contrastColor: '#ffffff',\n          hoverColor: '{onecx.button.hover.bg}', // button-hover-bg\n          activeColor: '{onecx.button.active.bg}', // button-active-bg\n          // if buttonActiveBg is not set, it should be primary.400\n        },\n        highlight: {\n          // --highlight-bg is used, rgba($primaryColor, 0.12);\n          background: '{primary.100}',\n          // $highlightFocusBg is used, rgba($primaryColor, 0.24) !default;\n          focusBackground: '{primary.200}',\n          // primaryColor is used for highlightTextColor\n          color: '{primary.color}',\n          // textColor is used for $inputListItemTextFocusColor\n          focusColor: '{text.color}',\n        },\n        mask: {\n          // INFO: --maskbg used\n          // INFO: Mask applied on image, speedDial with mask prop. Determines what color is the mask\n          // background: 'rgba(0,0,0,0.4)',\n          background: 'rgba(0, 0, 0, 0.32)',\n          // INFO: Color of any text content inside a mask?\n          color: '{surface.200}',\n        },\n        // TODO: Consider using theme variable for surface value so background and borders are set correctly\n        formField: {\n          // INFO: dev -> on focus primary color is used\n          focusBorderColor: '{primary.color}',\n\n          // TODO: When button is invalid, hover/focus is applied for border\n          // INFO: $errorColor color is used for invalid border\n          // invalidBorderColor: '{red.400}',\n          invalidBorderColor: '{onecx.error.color}', // using $errorCode\n\n          // INFO: $errorColor color is used for invalid border\n          // invalidPlaceholderColor: '{red.600}',\n          invalidPlaceholderColor: '{onecx.error.color}', // using $errorCode\n\n          // INFO: --input-bg used input background\n          // TODO: Check with surface value\n          // TODO: Can be background: '#ffffff'\n          background: '{surface.0}',\n          // INFO: --input-filled-bg used input background\n          // TODO: Check with surface value\n          // TODO: Can be filledBackground: '#f5f5f5'\n          filledBackground: '{surface.50}',\n          // INFO: --input-filled-hover-bg used input background\n          // TODO: Check with surface value\n          // TODO: Can be filledHoverBackground: '#ececec'\n          filledHoverBackground: '{surface.50}',\n          // INFO: --input-filled-focus-bg used input background\n          // TODO: Check with surface value\n          // TODO: Can be filledFocusBackground: '#dcdcdc'\n          filledFocusBackground: '{surface.50}',\n\n          // INFO: no variable for disabled background of form fields, opacity for input is set, opacity: var(--disabled-opacity);\n          // TODO: Check with surface value\n          // TODO: Can be disabledBackground: DECIDE_VALUE\n          // disabledBackground: '{surface.200}',\n          disabledBackground: '{surface.100}', // lighter color than default\n          // INFO: no variable for disabled color of form fields, opacity for input is set, opacity: var(--disabled-opacity);\n          // TODO: Check with surface value\n          // TODO: Can be disabledColor: DECIDE_VALUE\n          // disabledColor: '{surface.500}',\n          disabledColor: '{surface.400}', // lighter color than default\n\n          // INFO: --emphasis-low is used for default input border color\n          // TODO: Check with surface value\n          // TODO: Can be borderColor: rgba(0, 0, 0, 0.38)\n          // borderColor: '{surface.300}',\n          borderColor: '{surface.200}', // lighter color than default\n          // INFO: --emphasis-high is used for default input border color\n          // TODO: Check with surface value\n          // TODO: Can be hoverBorderColor: rgba(0, 0, 0, 0.87)\n          hoverBorderColor: '{surface.400}',\n\n          // INFO: --emphasis-high is used for default input text color\n          // TODO: Check with surface value\n          // TODO: Can be color: rgba(0, 0, 0, 0.87)\n          color: '{surface.700}',\n          // INFO: --emphasis-medium is used for placeholder text color\n          // TODO: Check with surface value\n          // TODO: Can be placeholderColor: rgba(0, 0, 0, 0.6)\n          placeholderColor: '{surface.500}',\n          // INFO: --emphasis-medium is used for icon color\n          // TODO: Check with surface value\n          // TODO: Can be iconColor: rgba(0, 0, 0, 0.6)\n          iconColor: '{surface.400}',\n          // INFO: no variable for shadow, no shadow seems to be there for form fields\n          shadow: '0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)',\n\n          // INFO: --emphasis-medium is used for float label text color\n          // TODO: Check with surface value\n          // TODO: Can be floatLabelColor: rgba(0, 0, 0, 0.6)\n          floatLabelColor: '{surface.500}',\n          // INFO: dev -> on focus primary color is used\n          // floatLabelFocusColor: '{primary.600}',\n          floatLabelFocusColor: '{primary.color}',\n          // INFO: No clue what it is\n          floatLabelActiveColor: '{surface.500}',\n          // INFO: $errorColor color is used for invalid border\n          floatLabelInvalidColor: '{form.field.invalid.placeholder.color}',\n        },\n        text: {\n          color: '{onecx.text.color}',\n          // INFO: textColor used for inplaceTextHoverColor, toggleButtonTextHoverColor\n          hoverColor: '{onecx.text.secondary.color}',\n          // mutedColor and hovermuted are not available in the theme\n          mutedColor: '{surface.500}',\n          hoverMutedColor: '{surface.600}',\n        },\n        content: {\n          background: '{onecx.content.bg.color}',\n          hoverBackground: '{onecx.hover.bg.color}',\n          borderColor: '{surface.100}',\n          color: '{text.color}',\n          hoverColor: '{text.hover.color}',\n        },\n        overlay: {\n          select: {\n            // INFO: --input-list-bg used\n            // TODO: Check with surface value\n            // TODO: Can be background: '#ffffff'\n            background: '{surface.0}',\n            // INFO: --input-overlay-border used\n            // INFO: border: 0 none\n            // TODO: Should border be none or should overlay have a border?\n            borderColor: '{surface.200}',\n            // INFO: --text-color used\n            color: '{text.color}',\n          },\n          popover: {\n            // INFO: --panel-content-bg used\n            // TODO: Check with surface value\n            // TODO: Can be background: '#ffffff'\n            background: '{surface.0}',\n            // INFO: --panel-content-bg used\n            // INFO: border: 0 none\n            // TODO: Should border be none or should overlay have a border?\n            borderColor: '{surface.200}',\n            // INFO: --text-color used\n            color: '{text.color}',\n          },\n          modal: {\n            // INFO: --dialog-header-bg, dialog-content-bg used\n            // INFO: Can be background: '#ffffff'\n            background: '{surface.0}',\n            // INFO: --overlay-content-border used\n            // INFO: border: 0 none\n            // TODO: Should border be none or should overlay have a border?\n            borderColor: '{surface.200}',\n            // INFO: --text-color used\n            color: '{text.color}',\n          },\n        },\n        // INFO: Lists in all select and list components (except for tree select and menus)\n        list: {\n          option: {\n            option: {\n              selectedColor: '{primary.color}',\n              selectedFocusColor: '{primary.color}',\n            },\n            // INFO: --input-list-item-hover-bg used\n            // INFO: Could be focusBackground: 'rgba(0, 0, 0, 0.04)'\n            focusBackground: '{surface.100}',\n            // INFO: --highlight-bg used\n            selectedBackground: '{highlight.background}',\n            // INFO: --highlight-bg used\n            selectedFocusBackground: '{highlight.focus.background}',\n            // INFO: --text-color used\n            color: '{text.color}',\n            // INFO: --text-color used\n            // TODO: Maybe it makes sense to leave hover color?\n            focusColor: '{text.hover.color}',\n            // INFO: --primary-color used\n            selectedColor: '{highlight.color}',\n            // INFO: --primary-color used\n            selectedFocusColor: '{highlight.focus.color}',\n            icon: {\n              // INFO: --text-secondary-color used\n              // TODO: Decide on secondary color or surface\n              color: '{surface.400}',\n              // INFO: --text-secondary-color used\n              // TODO: Decide on secondary color or surface\n              focusColor: '{surface.500}',\n            },\n          },\n          optionGroup: {\n            // INFO: --submenu-header-bg used\n            // INFO: Could be background: '#ffffff'\n            background: '{surface.0}',\n            // INFO: --text-secondary-color used\n            // TODO: Decide on secondary color or text.muted\n            color: '{text.muted.color}',\n          },\n        },\n        // INFO: All menu components\n        navigation: {\n          item: {\n            // INFO: --menuitem-focus-bg, --menuitem-hover-bg used\n            // INFO: Could be focusBackground: 'rgba(0, 0, 0, 0.04)'\n            focusBackground: '{surface.100}',\n            // INFO: --menuitem-active-bg, --menuitem-active-focus-bg used\n            // INFO: Could be activeBackground: 'rgba(0, 0, 0, 0.04)'\n            activeBackground: '{surface.100}',\n            // INFO: --text-color used\n            color: '{text.color}',\n            // INFO: --text-color used\n            // TODO: Maybe it makes sense to leave hover color?\n            focusColor: '{text.hover.color}',\n            // INFO: --text-color used\n            // TODO: Maybe it makes sense to leave hover color?\n            activeColor: '{text.hover.color}',\n            icon: {\n              // INFO: --text-secondary-color used\n              // TODO: Decide on secondary color or surface\n              color: '{surface.400}',\n              // INFO: --text-secondary-color used\n              // TODO: Decide on secondary color or surface\n              focusColor: '{surface.500}',\n              // INFO: --text-secondary-color used\n              // TODO: Decide on secondary color or surface\n              activeColor: '{surface.500}',\n            },\n          },\n          submenuLabel: {\n            // INFO: --submenu-header-bg used\n            // INFO: Could be background: '#ffffff'\n            background: 'transparent',\n            // INFO: --text-secondary-color used\n            // TODO: Decide on secondary color or surface\n            color: '{text.muted.color}',\n          },\n          submenuIcon: {\n            // INFO: --text-secondary-color used\n            // TODO: Decide on secondary color or surface\n            color: '{surface.400}',\n            // INFO: --text-secondary-color used\n            // TODO: Decide on secondary color or surface\n            focusColor: '{surface.500}',\n            // INFO: --text-secondary-color used\n            // TODO: Decide on secondary color or surface\n            activeColor: '{surface.500}',\n          },\n        },\n      },\n    },\n  },\n}\n","import { isObject } from '@onecx/angular-utils'\n\n// taken from primeng https://github.com/primefaces/primeuix/blob/main/packages/styled/src/config/index.ts#L9\nconst excludedKeyRegex =\n  /^(primitive|semantic|components|directives|variables|colorscheme|light|dark|common|root|states|extend|css)$/i\n\n// taken from primeng https://github.com/primefaces/primeuix/blob/main/packages/utils/src/object/methods/matchRegex.ts\nfunction matchRegex(str: string, regex?: RegExp): boolean {\n  if (regex) {\n    const match = regex.test(str)\n\n    regex.lastIndex = 0\n\n    return match\n  }\n  return false\n}\n\n/**\n * Splits a camelCase string into an array of lowercase segments.\n * For example, \"hoverColor\" becomes [\"hover\", \"color\"].\n *\n * @param key - The camelCase string to split.\n * @returns An array of lowercase segments.\n */\nfunction splitCamelCase(key: string): string[] {\n  return key\n    .replace(/([a-z])([A-Z])/g, '$1.$2')\n    .toLowerCase()\n    .split('.')\n}\n\n/**\n * Recursively normalizes the keys of an object by converting camelCase keys into nested objects.\n * Keys matching an excluded pattern are preserved as-is.\n * Non-object values are returned unchanged.\n *\n * @param obj - The input object to normalize.\n * @returns A new object with normalized (nested) keys.\n */\nexport function normalizeKeys(obj: any): Record<string, any> {\n  if (!isObject(obj)) return obj\n\n  const result: Record<string, any> = {}\n\n  for (const [key, value] of Object.entries(obj)) {\n    processKey(result, key, value)\n  }\n\n  return result\n}\n\n/**\n * Processes a key-value pair by normalizing its value and inserting it into a nested object structure.\n * If the key matches an excluded pattern, it is added to the result as-is.\n * Otherwise, the camelCase key is split into segments and the value is inserted accordingly.\n *\n * @param result - The object to insert the processed key-value pair into.\n * @param key - The key to process, potentially in camelCase.\n * @param value - The value associated with the key, which may be recursively normalized.\n */\nfunction processKey(result: Record<string, any>, key: string, value: any) {\n  const normalizedValue = normalizeKeys(value)\n\n  if (matchRegex(key, excludedKeyRegex)) {\n    result[key] = normalizedValue\n    return\n  }\n\n  const decomposedKey = splitCamelCase(key)\n  insertNestedValue(result, decomposedKey, normalizedValue)\n}\n\n/**\n * Inserts a value into a nested object structure based on a path of key segments.\n * Creates intermediate objects as needed to ensure the full path exists.\n *\n * @param result - The object to insert the value into.\n * @param path - An array of strings representing the nested key path (e.g., ['item', 'hover', 'color']).\n * @param value - The value to assign at the final path segment.\n *\n * @example\n * const obj = {}\n * insertNestedValue(obj, ['item,', 'hover', 'color'], '#ff0000')\n * Result: { item: { hover: { color: '#ff0000' } } }\n */\nfunction insertNestedValue(result: Record<string, any>, decomposedKey: string[], value: any) {\n  let current = result\n\n  decomposedKey.forEach((segment, index) => {\n    const isLast = index === decomposedKey.length - 1\n\n    if (isLast) {\n      // If it's the last segment, assign the value directly: { key: value }\n      current[segment] = value\n    } else {\n      // If the segment does not exist, create an empty object: { key: {} }\n      current[segment] ??= {}\n      // Move to the next level in the nested structure: {}\n      current = current[segment]\n    }\n  })\n}\n","import { definePreset } from '@primeng/themes'\nimport Aura from '@primeng/themes/aura'\nimport presetVariables from './preset-variables'\nimport { normalizeKeys } from '../utils/normalize-preset-keys.utils'\n\nexport const CustomPreset = definePreset(normalizeKeys(Aura), normalizeKeys(presetVariables))\nCustomPreset['semantic'].colorScheme.dark = {}\nexport default CustomPreset\n","import { createPalette, standardColorAdjustment } from './create-color-palette'\nimport { normalizeKeys } from './normalize-preset-keys.utils'\n\ninterface ThemeVariables {\n  [key: string]: {\n    [key: string]: string\n  }\n}\nexport default class ThemeConfig {\n  constructor(private themeVariables: ThemeVariables | undefined) {\n    // ThemeVariables are saved in kebab case but PrimeNg expects camel case\n    this.themeVariables = this.transformVariablesToCamelCase(this.themeVariables ?? {})\n  }\n\n  getConfig() {\n    const primaryColor = (this.themeVariables as any)['general']['primaryColor']\n    return normalizeKeys({\n      semantic: {\n        extend: {\n          onecx: {\n            ...(this.themeVariables as any)['font'],\n            ...(this.themeVariables as any)['topbar'],\n            ...(this.themeVariables as any)['sidebar'],\n            ...(this.themeVariables as any)['general'],\n          },\n        },\n        primary: {\n          ...createPalette(primaryColor, standardColorAdjustment),\n        },\n        colorScheme: {\n          light: {\n            primary: {\n              ...createPalette(primaryColor, standardColorAdjustment),\n            },\n          },\n        },\n      },\n    })\n  }\n\n  private transformVariablesToCamelCase(themeVariables: ThemeVariables) {\n    const transformedThemeVariables: ThemeVariables = {}\n    for (const section in themeVariables) {\n      const sectionCamelCaseKey = this.toCamelCase(section)\n      transformedThemeVariables[sectionCamelCaseKey] = this.transformSectionToCamelCase(\n        themeVariables[sectionCamelCaseKey]\n      )\n    }\n    return transformedThemeVariables\n  }\n\n  private transformSectionToCamelCase(section: { [key: string]: string }): { [key: string]: string } {\n    const transformedSectionThemeVariables: { [key: string]: string } = {}\n    for (const themeVariable in section) {\n      const themeVariableCamelCase = this.toCamelCase(themeVariable)\n      transformedSectionThemeVariables[themeVariableCamelCase] = section[themeVariable]\n    }\n    return transformedSectionThemeVariables\n  }\n\n  private toCamelCase(str: string): string {\n    return str.replace(/-([a-z])/g, (match, letter) => letter.toUpperCase())\n  }\n}\n","import { ENVIRONMENT_INITIALIZER, Injectable, InjectionToken, inject } from '@angular/core'\nimport { ThemeService } from '@onecx/angular-integration-interface'\nimport { Theme as OneCXTheme, OverrideType, ThemeOverride } from '@onecx/integration-interface'\nimport { Base } from 'primeng/base'\nimport { PrimeNG } from 'primeng/config'\nimport ThemeConfig from '../utils/theme-config'\nimport { CustomUseStyle } from './custom-use-style.service'\nimport { UseStyle } from 'primeng/usestyle'\nimport { Theme } from '@primeuix/styled'\nimport { mergeDeep } from '@onecx/angular-utils'\n\nexport const IS_ADVANCED_THEMING = new InjectionToken<boolean>('IS_ADVANCED_THEMING');\n\nexport function provideThemeConfigService(isAdvanced?: boolean) {\n  Theme.clearLoadedStyleNames()\n  Base.clearLoadedStyleNames()\n  return [\n    {\n      provide: ENVIRONMENT_INITIALIZER,\n      multi: true,\n      useFactory() {\n        return () => inject(ThemeConfigService)\n      },\n    },\n    ThemeConfigService,\n    {\n      provide: UseStyle,\n      useClass: CustomUseStyle,\n    },\n    { provide: IS_ADVANCED_THEMING, useValue: isAdvanced ?? false }\n  ]\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ThemeConfigService {\n  private themeService = inject(ThemeService);\n  private primeNG = inject(PrimeNG);\n  private readonly isAdvancedTheming = inject(IS_ADVANCED_THEMING);\n\n  constructor() {\n    this.themeService.currentTheme$.subscribe((theme) => {\n      this.applyThemeVariables(theme)\n    })\n  }\n \n  private foldOverrides(overrides?: ThemeOverride[]){\n    if (!overrides?.length) return {};\n\n    return overrides.reduce((result, override) => {\n      if (!override.value) return result;\n      return mergeDeep(result, override.value);\n    }, {} );\n  }\n\n  private parsePrimeNGOverridesValue(overrides?: ThemeOverride[]){\n    if (!overrides?.length) return {};\n    const parsedOverrides: any = []\n    overrides.filter(el => el.type === OverrideType.PRIMENG).forEach((element: ThemeOverride) => {\n      if (element.value) {\n        const override = { ...element, value: JSON.parse(element.value) }\n        parsedOverrides.push(override)\n      }\n    })\n    return parsedOverrides\n  }\n\n  async applyThemeVariables(oldTheme: OneCXTheme): Promise<void> {\n    const oldThemeVariables = oldTheme.properties\n    const overridesFolded = this.isAdvancedTheming ? this.foldOverrides(this.parsePrimeNGOverridesValue(oldTheme.overrides)) : {}\n\n    const themeConfig = new ThemeConfig(oldThemeVariables)\n    const preset = await (await import('../preset/custom-preset')).CustomPreset\n    this.primeNG.setThemeConfig({\n      theme: {\n        preset: mergeDeep(preset, mergeDeep(themeConfig.getConfig(),overridesFolded)),\n        options: { darkModeSelector: false },\n      },\n    })\n  }\n}\n","import { inject, provideEnvironmentInitializer } from '@angular/core'\nimport { SKIP_STYLE_SCOPING } from '@onecx/angular-utils'\nimport { getScopeIdentifier, replacePrimengPrefix } from '@onecx/angular-utils'\nimport { AppStateService } from '@onecx/angular-integration-interface'\nimport { REMOTE_COMPONENT_CONFIG } from '@onecx/angular-utils'\nimport { getAppStyleByScope, replaceStyleContent } from '@onecx/angular-utils/style'\n\nexport function provideAppStylesInitializer() {\n  return [provideEnvironmentInitializer(updateAppStyle)]\n}\n\nasync function updateAppStyle() {\n  const appStateService = inject(AppStateService)\n  const skipStyleScoping = inject(SKIP_STYLE_SCOPING, { optional: true }) ?? undefined\n  const remoteComponentConfig = inject(REMOTE_COMPONENT_CONFIG, { optional: true }) ?? undefined\n  const scopeId = await getScopeIdentifier(appStateService, skipStyleScoping, remoteComponentConfig)\n\n  const styleElement = getAppStyleByScope(scopeId)\n  if (styleElement && styleElement.textContent) {\n    replaceStyleContent(styleElement, replacePrimengPrefix(styleElement.textContent, scopeId))\n  }\n}\n","import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'\nimport { providePrimeNG } from 'primeng/config'\nimport { provideThemeConfigService } from '../services/theme-config.service'\nimport { InjectionToken } from '@angular/core'\nimport { provideAppStylesInitializer } from './app-styles-initializer'\n\nexport type ThemeOverrides = (() => Promise<any> | any) | Promise<any> | any\nexport const THEME_OVERRIDES = new InjectionToken<ThemeOverrides>('THEME_OVERRIDES')\n\nexport interface ThemeConfigProviderOptions {\n  overrides?: ThemeOverrides\n  isAdvancedTheming?: boolean\n}\n\nexport function provideThemeConfig(options?: ThemeConfigProviderOptions) {\n  const dynamicProviders = []\n  if (options?.overrides) {\n    dynamicProviders.push({\n      provide: THEME_OVERRIDES,\n      useValue: options.overrides,\n    })\n  }\n  return [\n    provideAnimationsAsync(),\n    providePrimeNG({}),\n    provideThemeConfigService(options?.isAdvancedTheming ?? false),\n    provideAppStylesInitializer(),\n    ...dynamicProviders,\n  ]\n}\n","// This file is not planned to be in the index.ts so it is private to this lib\nimport { createLoggerFactory } from '@onecx/accelerator'\n\nexport const createLogger = createLoggerFactory('@onecx/angular-utils:theme/primeng')\n","import { inject, Injectable } from '@angular/core'\nimport { UseStyle } from 'primeng/usestyle'\nimport { AppStateService } from '@onecx/angular-integration-interface'\nimport { THEME_OVERRIDES, ThemeOverrides } from '../utils/application-config'\nimport {\n  dataVariableOverrideIdAttribute,\n  getScopeIdentifier,\n  REMOTE_COMPONENT_CONFIG,\n  RemoteComponentConfig,\n  replacePrimengPrefix,\n  scopePrimengCss,\n  shellScopeId,\n  SKIP_STYLE_SCOPING,\n} from '@onecx/angular-utils'\nimport { toVariables } from '@primeuix/styled'\nimport { replaceRootWithScope } from '@onecx/angular-utils/style'\nimport { ReplaySubject } from 'rxjs'\nimport { createLogger } from '../utils/logger.utils'\n\n@Injectable({ providedIn: 'any' })\nexport class CustomUseStyle extends UseStyle {\n  private readonly logger = createLogger('CustomUseStyle')\n  private readonly appStateService: AppStateService = inject(AppStateService)\n  private readonly skipStyleScoping: boolean | null = inject(SKIP_STYLE_SCOPING, { optional: true })\n  private readonly remoteComponentConfig: ReplaySubject<RemoteComponentConfig> | null = inject(REMOTE_COMPONENT_CONFIG, { optional: true })\n  private readonly themeOverrides: ThemeOverrides = inject(THEME_OVERRIDES, { optional: true })\n\n  constructor() {\n    super()\n  }\n  // PrimeNg defines CSS variables and styles globally in <style> elements\n  // Each Application needs to isolate the CSS variables and styles from others\n  override use(css: any, options?: any): { id: any; name: any; el: any; css: any } {\n    getScopeIdentifier(this.appStateService, this.skipStyleScoping, this.remoteComponentConfig).then((scopeId) => {\n      css = scopePrimengCss(replaceRootWithScope(replacePrimengPrefix(css, scopeId)), scopeId)\n\n      options = {\n        ...options,\n        name: (options.name ?? '') + (scopeId === '' ? scopeId : '-' + scopeId),\n      }\n      super.use(css, options)\n      return this.applyOverrides(scopeId)\n    })\n    // Result of this call is not used at the moment\n    // Fake response ensures its possible to detect future usages of the result of this call\n    return this.createFakeUseResponse(css, options)\n  }\n\n  private applyOverrides(scopeId: string): Promise<any> {\n    if (!this.themeOverrides) return Promise.resolve()\n\n    const overrides = Promise.resolve(\n      typeof this.themeOverrides === 'function' ? this.themeOverrides() : this.themeOverrides\n    )\n    return overrides.then((resolvedOverrides) => {\n      const variablesData = toVariables(resolvedOverrides)\n      if (variablesData.value.length === 0) return\n\n      const styleRef = this.createOrRetrieveOverrideElement(scopeId || shellScopeId)\n      const prefixedOverrides = scopePrimengCss(\n        replaceRootWithScope(replacePrimengPrefix(variablesData.css, scopeId)),\n        scopeId\n      )\n      styleRef.textContent = prefixedOverrides\n      // Always make sure it is the last child of the document head\n      this.document.head.appendChild(styleRef)\n    })\n  }\n\n  private createOrRetrieveOverrideElement(overrideId: string): Element {\n    const styleRef =\n      this.document.querySelector(`style[${dataVariableOverrideIdAttribute}=\"${overrideId}\"]`) ||\n      this.document.createElement('style')\n    if (!styleRef.isConnected) {\n      styleRef.setAttribute(`${dataVariableOverrideIdAttribute}`, overrideId)\n    }\n    return styleRef\n  }\n\n  private createFakeUseResponse(css: any, options: any) {\n    const logger = this.logger\n    const returnObject: {\n      id: any\n      css: any\n      name: any\n      el: any\n    } = {\n      id: options.id ?? undefined,\n      css: css,\n      name: undefined,\n      el: undefined,\n    }\n\n    Object.defineProperties(returnObject, {\n      name: {\n        get() {\n          logger.error('Unexpected read of CustomUseStyle.use return value name')\n          return undefined\n        },\n      },\n      el: {\n        get() {\n          logger.error('Unexpected read of CustomUseStyle.use return value el')\n          return undefined\n        },\n      },\n    })\n    return returnObject\n  }\n\n  private isVariables(cssName: string) {\n    return cssName.endsWith('-variables')\n  }\n\n  private isStyle(cssName: string) {\n    return !this.isVariables(cssName)\n  }\n}\n","// preset\nexport * from './preset/custom-preset'\nexport * from './preset/preset-variables'\n\n// services\nexport * from './services/custom-use-style.service'\nexport * from './services/theme-config.service'\n\n// utils\nexport * from './utils/application-config'\nexport * from './utils/create-color-palette'\nexport * from './utils/normalize-preset-keys.utils'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}