{"version":3,"file":"assign-header-variables.cjs","sources":["../../../../../src/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.ts"],"sourcesContent":["import { keys, rem } from '../../../../core';\nimport type { AppShellProps } from '../../AppShell';\nimport {\n  AppShellIconListConfiguration,\n  AppShellNavbarConfiguration,\n  AppShellResponsiveSize,\n  AppShellSize,\n} from '../../AppShell.types';\nimport { getBaseSize } from '../get-base-size/get-base-size';\nimport type { CSSVariables, MediaQueryVariables } from '../get-variables/get-variables';\nimport { isPrimitiveSize } from '../is-primitive-size/is-primitive-size';\nimport { isResponsiveSize } from '../is-responsive-size/is-responsive-size';\n\ninterface AssignHeaderVariablesInput {\n  baseStyles: CSSVariables;\n  minMediaStyles: MediaQueryVariables;\n  header: AppShellProps['header'] | undefined;\n  iconList: AppShellProps['iconList'] | undefined;\n  navbar: AppShellProps['navbar'] | undefined;\n}\n\nexport function assignHeaderVariables({\n  baseStyles,\n  minMediaStyles,\n  header,\n  iconList,\n  navbar,\n}: AssignHeaderVariablesInput) {\n  const headerHeight = header?.height;\n\n  const collapsedHeaderTransform = 'translateY(calc(var(--app-shell-header-height) * -1))';\n  const shouldOffset = header?.offset ?? true;\n\n  if (isPrimitiveSize(headerHeight)) {\n    const baseSize = rem(getBaseSize(headerHeight));\n    baseStyles['--app-shell-header-height'] = baseSize;\n    if (shouldOffset) {\n      baseStyles['--app-shell-header-offset-y'] = baseSize;\n    }\n  }\n\n  if (isResponsiveSize(headerHeight)) {\n    if (typeof headerHeight.base !== 'undefined') {\n      baseStyles['--app-shell-header-height'] = rem(headerHeight.base);\n\n      if (shouldOffset) {\n        baseStyles['--app-shell-header-offset-y'] = rem(headerHeight.base);\n      }\n    }\n\n    keys(headerHeight).forEach((key) => {\n      if (key !== 'base') {\n        minMediaStyles[key] = minMediaStyles[key] || {};\n        minMediaStyles[key]['--app-shell-header-height'] = rem(headerHeight[key]);\n\n        if (shouldOffset) {\n          minMediaStyles[key]['--app-shell-header-offset-y'] = rem(headerHeight[key]);\n        }\n      }\n    });\n  }\n\n  if (header?.collapsed) {\n    baseStyles['--app-shell-header-transform'] = collapsedHeaderTransform;\n    baseStyles['--app-shell-header-offset-y'] = '0px !important';\n  }\n\n  getPrimativeSize(iconList, navbar, baseStyles);\n  getResponsiveSize(iconList, navbar, baseStyles);\n  loopMediaStyles(iconList, navbar, minMediaStyles);\n  iconListVisible();\n\n  if (iconList?.breakpoint && !navbar?.collapsed?.mobile) {\n    // console.log('hello iconlist breakpoint');\n  }\n}\n\nfunction getBaseSizeNumber(width: AppShellSize | AppShellResponsiveSize) {\n  if (isPrimitiveSize(width)) {\n    const baseSize = rem(getBaseSize(width));\n    return Number(baseSize);\n  }\n\n  return 0;\n}\n\nfunction getPrimativeSize(\n  iconList: AppShellIconListConfiguration | undefined,\n  navbar: AppShellNavbarConfiguration | undefined,\n  baseStyles: CSSVariables\n) {\n  let iconListNumber = 0;\n  let navbarNumber = 0;\n\n  if (iconList?.layout === 'alt') {\n    iconListNumber = getBaseSizeNumber(iconList?.width) || 0;\n  }\n\n  if (navbar?.layout === 'alt') {\n    navbarNumber = getBaseSizeNumber(navbar?.width) || 0;\n  }\n\n  if (iconList?.layout === 'alt' || navbar?.layout === 'alt') {\n    baseStyles['--app-shell-header-start-x'] = rem(iconListNumber + navbarNumber);\n  }\n}\n\nfunction getResponsiveSizeNumber(width: AppShellSize | AppShellResponsiveSize) {\n  if (isResponsiveSize(width)) {\n    if (typeof width.base !== 'undefined') {\n      return Number(width.base) || 0;\n    }\n  }\n\n  return 0;\n}\n\nfunction getResponsiveSize(\n  iconList: AppShellIconListConfiguration | undefined,\n  navbar: AppShellNavbarConfiguration | undefined,\n  baseStyles: CSSVariables\n) {\n  let iconListNumber = 0;\n  let navbarNumber = 0;\n\n  if (iconList?.layout === 'alt') {\n    if (!iconList?.collapsed?.desktop) {\n      iconListNumber = getResponsiveSizeNumber(iconList?.width);\n    }\n\n    if (!iconListVisible()) {\n      iconListNumber = 0;\n    }\n  }\n\n  if (navbar?.layout === 'alt') {\n    if (!navbar?.collapsed?.desktop) {\n      navbarNumber = getResponsiveSizeNumber(navbar?.width);\n    }\n\n    if (!navbarVisible()) {\n      navbarNumber = 0;\n    }\n  }\n\n  baseStyles['--app-shell-header-start-x'] = rem(iconListNumber + navbarNumber);\n}\n\nfunction loopMediaStyles(\n  iconList: AppShellIconListConfiguration | undefined,\n  navbar: AppShellNavbarConfiguration | undefined,\n  minMediaStyles: MediaQueryVariables\n) {\n  const styles = {} as Record<string, number>;\n\n  if (iconList?.layout === 'alt') {\n    if (!iconList?.collapsed?.desktop) {\n      const iconListWidth = iconList?.width;\n\n      if (isResponsiveSize(iconListWidth)) {\n        keys(iconListWidth).forEach((key) => {\n          if (key !== 'base') {\n            styles[key] = Number(iconListWidth[key]);\n          }\n        });\n      }\n\n      keys(styles).forEach((key) => {\n        if (key !== 'base') {\n          minMediaStyles[key] = minMediaStyles[key] || {};\n          minMediaStyles[key]['--app-shell-header-start-x'] = rem(styles[key]);\n        }\n      });\n    }\n  }\n\n  if (navbar?.layout === 'alt') {\n    if (!navbar?.collapsed?.desktop) {\n      const navbarWidth = navbar?.width;\n\n      if (isResponsiveSize(navbarWidth)) {\n        keys(navbarWidth).forEach((key) => {\n          if (key !== 'base') {\n            styles[key] = Number(styles[key] || 0) + Number(navbarWidth[key]);\n          }\n        });\n      }\n\n      keys(styles).forEach((key) => {\n        if (key !== 'base') {\n          minMediaStyles[key] = minMediaStyles[key] || {};\n          minMediaStyles[key]['--app-shell-header-start-x'] = rem(styles[key]);\n        }\n      });\n    }\n  }\n}\n\nfunction iconListVisible() {\n  const el = document.querySelector('.raikou-AppShell-iconList');\n\n  if (el) {\n    return el?.getBoundingClientRect().width !== 1;\n  }\n\n  return false;\n}\n\nfunction navbarVisible() {\n  const el = document.querySelector('.raikou-AppShell-navbar');\n\n  if (el) {\n    return Math.sign(el?.getBoundingClientRect().x) !== -1;\n  }\n\n  return false;\n}\n"],"names":["isPrimitiveSize","rem","getBaseSize","isResponsiveSize","keys"],"mappings":"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"}