{"version":3,"file":"viewport-extra.cjs","sources":["../../src/internal/ArrayLike.ts","../../src/internal/Document.ts","../../src/internal/string.ts","../../src/internal/ContentAttribute.ts","../../src/internal/MediaAttribute.ts","../../src/internal/number.ts","../../src/internal/Content.ts","../../src/internal/Media.ts","../../src/internal/MediaSpecificParameters.ts","../../src/internal/HTMLMetaElement.ts","../../src/internal/MatchMedia.ts","../../src/apis/setMediaSpecificParametersList.ts","../../src/apis/activateMediaSpecificAttributes.ts","../../src/entries/immediate/viewport-extra.ts"],"sourcesContent":["export const arrayFrom: typeof Array.from =\n  __TYPESCRIPT_TARGET__ !== \"es5\"\n    ? /* eslint-disable-next-line compat/compat */\n      Array.from\n    : <T>(arrayLike: ArrayLike<T>) =>\n        (Array.prototype as T[]).slice.call(arrayLike);\n","import { arrayFrom } from \"./ArrayLike.js\";\n\nexport const ensureViewportMetaElement = (doc: Document): HTMLMetaElement => {\n  const viewportMetaElement = doc.querySelector<HTMLMetaElement>(\n    'meta[name=\"viewport\"]',\n  );\n  if (viewportMetaElement) return viewportMetaElement;\n  const htmlMetaElement = doc.createElement(\"meta\");\n  htmlMetaElement.setAttribute(\"name\", \"viewport\");\n  doc.head.appendChild(htmlMetaElement);\n  return htmlMetaElement;\n};\n\nexport const getMetaElementList = (doc: Document): HTMLMetaElement[] =>\n  arrayFrom(\n    doc.querySelectorAll<HTMLMetaElement>(\n      'meta[name=\"viewport\"],meta[name=\"viewport-extra\"]',\n    ),\n  );\n\nexport const getDocumentClientWidth = (doc: Document): number =>\n  doc.documentElement.clientWidth;\n","export const camelizeKebabCaseString = (str: string): string =>\n  str\n    .replace(/\\s+/g, \"\")\n    .toLowerCase()\n    .replace(/-./g, (s) => s[1].toUpperCase());\n\nexport const kebabizeCamelCaseString = (str: string): string =>\n  str\n    .replace(/\\s+/g, \"\")\n    .replace(/[A-Z]+/g, (s) => `-${s[0]}`)\n    .toLowerCase();\n","import type { Content } from \"./Content.js\";\nimport { camelizeKebabCaseString } from \"./string.js\";\n\nexport type ContentAttribute = string;\n\nexport const mergeNullableContentAttributes = (\n  precedingNullableContentAttribute: ContentAttribute | null,\n  followingNullableContentAttribute: ContentAttribute | null,\n): ContentAttribute | null =>\n  precedingNullableContentAttribute\n    ? followingNullableContentAttribute\n      ? [\n          precedingNullableContentAttribute,\n          followingNullableContentAttribute,\n        ].join(\",\")\n      : precedingNullableContentAttribute\n    : followingNullableContentAttribute;\n\nexport const createOptionalPartialContent = (\n  nullableContentAttribute: ContentAttribute | null,\n): Partial<Content> | undefined =>\n  nullableContentAttribute\n    ? nullableContentAttribute\n        .split(\",\")\n        .reduce<Partial<Content>>((partialContent, equalSeparatedContent) => {\n          const [key, value] = equalSeparatedContent\n            .split(\"=\")\n            .map((keyOrValue) => keyOrValue.trim());\n          if (key && value) {\n            const numberValue = +value;\n            // biome-ignore lint/suspicious/noGlobalIsNan: isNaN is safe to use here\n            partialContent[camelizeKebabCaseString(key)] = isNaN(numberValue)\n              ? value\n              : numberValue;\n          }\n          return partialContent;\n        }, {})\n    : undefined;\n","import type { Media } from \"./Media.js\";\n\nexport type MediaAttribute = string;\n\nexport const mergeNullableMediaAttribute = (\n  precedingNullableMediaAttribute: MediaAttribute | null,\n  followingNullableMediaAttribute: MediaAttribute | null,\n): MediaAttribute | null =>\n  followingNullableMediaAttribute ?? precedingNullableMediaAttribute;\n\nexport const createOptionalMedia = (\n  nullableMediaAttribute: MediaAttribute | null,\n): Media | undefined => nullableMediaAttribute ?? undefined;\n","export const mathTrunc: typeof Math.trunc =\n  __TYPESCRIPT_TARGET__ !== \"es5\"\n    ? /* eslint-disable-next-line compat/compat */\n      Math.trunc\n    : (num) => (num < 0 ? Math.ceil : Math.floor)(num);\n\nexport const truncateDecimalNumber = (\n  num: number,\n  decimalPlaces: number,\n): number =>\n  // biome-ignore lint/suspicious/noGlobalIsFinite: isFinite is safe to use here\n  isFinite(decimalPlaces)\n    ? mathTrunc(num * 10 ** decimalPlaces) / 10 ** decimalPlaces\n    : num;\n","import type { ContentAttribute } from \"./ContentAttribute.js\";\nimport type { DecimalPlaces } from \"./DecimalPlaces.js\";\nimport { truncateDecimalNumber } from \"./number.js\";\nimport { kebabizeCamelCaseString } from \"./string.js\";\n\nexport type Content = {\n  width: number | \"device-width\";\n  initialScale: number;\n  minimumWidth: number;\n  maximumWidth: number;\n  /** Alternative to `minimumWidth` */\n  minWidth?: number;\n  /** Alternative to `maximumWidth` */\n  maxWidth?: number;\n} & {\n  [key: string]: string | number;\n};\n\nexport const defaultContent = {\n  width: \"device-width\" as const,\n  initialScale: 1,\n  minimumWidth: 0,\n  maximumWidth: Infinity,\n};\n\nexport const createContent = (\n  partialContent: Partial<Content> | undefined = {},\n): Content => ({\n  ...defaultContent,\n  ...partialContent,\n});\n\nexport const mergeOptionalPartialContent = (\n  precedingOptionalPartialContent: Partial<Content> | undefined,\n  followingOptionalPartialContent: Partial<Content> | undefined,\n): Partial<Content> | undefined =>\n  precedingOptionalPartialContent\n    ? {\n        ...precedingOptionalPartialContent,\n        ...(followingOptionalPartialContent ?? {}),\n      }\n    : followingOptionalPartialContent;\n\nexport const createContentAttribute: {\n  (\n    content: Content,\n    documentClientWidth: number,\n    decimalPlaces: DecimalPlaces,\n  ): ContentAttribute;\n  (): ContentAttribute;\n} = (\n  content: Content = { ...defaultContent },\n  // biome-ignore lint/style/noInferrableTypes: number type cannot be inferred from initialization\n  documentClientWidth: number = 0,\n  decimalPlaces: DecimalPlaces = 0,\n) => {\n  const { width, initialScale } = content;\n  const {\n    minimumWidth: _minimumWidth,\n    maximumWidth: _maximumWidth,\n    minWidth,\n    maxWidth,\n    ...contentWithoutExtraProperties\n  } = content;\n  const minimumWidth = minWidth ?? _minimumWidth;\n  const maximumWidth = maxWidth ?? _maximumWidth;\n  if (minimumWidth <= maximumWidth && width === \"device-width\") {\n    if (documentClientWidth < minimumWidth) {\n      contentWithoutExtraProperties.width = minimumWidth;\n      contentWithoutExtraProperties.initialScale =\n        (documentClientWidth / minimumWidth) * initialScale;\n    } else if (documentClientWidth > maximumWidth) {\n      contentWithoutExtraProperties.width = maximumWidth;\n      contentWithoutExtraProperties.initialScale =\n        (documentClientWidth / maximumWidth) * initialScale;\n    }\n  }\n  return Object.keys(contentWithoutExtraProperties)\n    .map(\n      (key) =>\n        `${kebabizeCamelCaseString(key)}=${\n          typeof contentWithoutExtraProperties[key] === \"number\"\n            ? truncateDecimalNumber(\n                contentWithoutExtraProperties[key],\n                decimalPlaces,\n              )\n            : contentWithoutExtraProperties[key]\n        }`,\n    )\n    .sort()\n    .join(\",\");\n};\n","export type Media = string;\n\nexport const defaultMedia = \"\";\n\nexport const createMedia = (optionalMedia: Media | undefined): Media =>\n  optionalMedia ?? defaultMedia;\n\nexport const mergeOptionalMedia = (\n  precedingOptionalMedia: Media | undefined,\n  followingOptionalMedia: Media | undefined,\n): Media | undefined => followingOptionalMedia ?? precedingOptionalMedia;\n","import * as ContentModule from \"./Content.js\";\nimport {\n  type Content,\n  createContent,\n  mergeOptionalPartialContent,\n} from \"./Content.js\";\nimport type { ContentAttribute } from \"./ContentAttribute.js\";\nimport type { DecimalPlaces } from \"./DecimalPlaces.js\";\nimport type { DeepPartial } from \"./DeepPartial.js\";\nimport { createMedia, type Media, mergeOptionalMedia } from \"./Media.js\";\n\nexport type MediaSpecificParameters = {\n  content: Content;\n  media: Media;\n};\n\nexport const createMediaSpecificParameters = (\n  partialMediaSpecificParameters: DeepPartial<MediaSpecificParameters> = {},\n): MediaSpecificParameters => ({\n  content: createContent(partialMediaSpecificParameters.content),\n  media: createMedia(partialMediaSpecificParameters.media),\n});\n\nexport const mergePartialMediaSpecificParameters = (\n  precedingPartialMediaSpecificParameters: DeepPartial<MediaSpecificParameters>,\n  followingPartialMediaSpecificParameters: DeepPartial<MediaSpecificParameters>,\n): DeepPartial<MediaSpecificParameters> => {\n  const partialMediaSpecificParameters: DeepPartial<MediaSpecificParameters> =\n    {};\n  const optionalPartialContent = mergeOptionalPartialContent(\n    precedingPartialMediaSpecificParameters.content,\n    followingPartialMediaSpecificParameters.content,\n  );\n  const optionalMedia = mergeOptionalMedia(\n    precedingPartialMediaSpecificParameters.media,\n    followingPartialMediaSpecificParameters.media,\n  );\n  if (optionalPartialContent)\n    partialMediaSpecificParameters.content = optionalPartialContent;\n  if (typeof optionalMedia !== \"undefined\")\n    partialMediaSpecificParameters.media = optionalMedia;\n  return partialMediaSpecificParameters;\n};\n\nexport const createContentAttribute: {\n  (\n    optionalMediaSpecificParameters: MediaSpecificParameters,\n    optionalDocumentClientWidth: number,\n    optionalDecimalPlaces: DecimalPlaces,\n  ): ContentAttribute;\n  (): ContentAttribute;\n} = (\n  optionalMediaSpecificParameters?: MediaSpecificParameters,\n  optionalDocumentClientWidth?: number,\n  optionalDecimalPlaces?: DecimalPlaces,\n) =>\n  optionalMediaSpecificParameters &&\n  typeof optionalDocumentClientWidth !== \"undefined\" &&\n  typeof optionalDecimalPlaces !== \"undefined\"\n    ? ContentModule.createContentAttribute(\n        optionalMediaSpecificParameters.content,\n        optionalDocumentClientWidth,\n        optionalDecimalPlaces,\n      )\n    : ContentModule.createContentAttribute();\n\nexport const assignOptionalPartialContent = (\n  optionalPartialMediaSpecificParameters:\n    | DeepPartial<MediaSpecificParameters>\n    | undefined,\n  optionalPartialContent: Partial<Content> | undefined,\n): DeepPartial<MediaSpecificParameters> =>\n  optionalPartialContent\n    ? {\n        ...(optionalPartialMediaSpecificParameters ?? {}),\n        content: optionalPartialContent,\n      }\n    : (optionalPartialMediaSpecificParameters ?? {});\n\nexport const assignOptionalMedia = (\n  optionalPartialMediaSpecificParameters:\n    | DeepPartial<MediaSpecificParameters>\n    | undefined,\n  optionalMedia: Media | undefined,\n): DeepPartial<MediaSpecificParameters> =>\n  typeof optionalMedia !== \"undefined\"\n    ? {\n        ...(optionalPartialMediaSpecificParameters ?? {}),\n        media: optionalMedia,\n      }\n    : (optionalPartialMediaSpecificParameters ?? {});\n\nexport const createPartialMediaSpecificParametersMerger =\n  (isMatchingCurrentViewport: (media?: Media) => boolean) =>\n  (\n    precedingPartialMediaSpecificParameters: DeepPartial<MediaSpecificParameters>,\n    followingPartialMediaSpecificParameters: DeepPartial<MediaSpecificParameters>,\n  ): DeepPartial<MediaSpecificParameters> =>\n    isMatchingCurrentViewport(followingPartialMediaSpecificParameters.media)\n      ? mergePartialMediaSpecificParameters(\n          precedingPartialMediaSpecificParameters,\n          followingPartialMediaSpecificParameters,\n        )\n      : precedingPartialMediaSpecificParameters;\n","import {\n  type ContentAttribute,\n  createOptionalPartialContent,\n  mergeNullableContentAttributes,\n} from \"./ContentAttribute.js\";\nimport {\n  createOptionalDecimalPlaces,\n  type DecimalPlacesAttribute,\n  mergeNullableDecimalPlacesAttribute,\n} from \"./DecimalPlacesAttribute.js\";\nimport type { DeepPartial } from \"./DeepPartial.js\";\nimport {\n  assignOptionalDecimalPlaces,\n  type GlobalParameters,\n  getDecimalPlaces,\n} from \"./GlobalParameters.js\";\nimport {\n  createOptionalMedia,\n  type MediaAttribute,\n  mergeNullableMediaAttribute,\n} from \"./MediaAttribute.js\";\nimport {\n  assignOptionalMedia,\n  assignOptionalPartialContent,\n  createContentAttribute,\n  type MediaSpecificParameters,\n} from \"./MediaSpecificParameters.js\";\n\nexport const getNullableDecimalPlacesAttribute = (\n  htmlMetaElement: HTMLMetaElement,\n): DecimalPlacesAttribute | null =>\n  mergeNullableDecimalPlacesAttribute(\n    htmlMetaElement.getAttribute(\"data-decimal-places\"),\n    htmlMetaElement.getAttribute(\"data-extra-decimal-places\"),\n  );\n\nexport const createPartialGlobalParameters = (\n  htmlMetaElement: HTMLMetaElement,\n): Partial<GlobalParameters> =>\n  assignOptionalDecimalPlaces(\n    undefined,\n    createOptionalDecimalPlaces(\n      getNullableDecimalPlacesAttribute(htmlMetaElement),\n    ),\n  );\n\nexport const getNullableContentAttribute = (\n  htmlMetaElement: HTMLMetaElement,\n): ContentAttribute | null =>\n  mergeNullableContentAttributes(\n    htmlMetaElement.getAttribute(\"content\"),\n    htmlMetaElement.getAttribute(\"data-extra-content\"),\n  );\n\nexport const getNullableMediaAttribute = (\n  htmlMetaElement: HTMLMetaElement,\n): MediaAttribute | null =>\n  mergeNullableMediaAttribute(\n    htmlMetaElement.getAttribute(\"data-media\"),\n    htmlMetaElement.getAttribute(\"data-extra-media\"),\n  );\n\nexport const createPartialMediaSpecificParameters = (\n  htmlMetaElement: HTMLMetaElement,\n): DeepPartial<MediaSpecificParameters> =>\n  assignOptionalMedia(\n    assignOptionalPartialContent(\n      undefined,\n      createOptionalPartialContent(\n        getNullableContentAttribute(htmlMetaElement),\n      ),\n    ),\n    createOptionalMedia(getNullableMediaAttribute(htmlMetaElement)),\n  );\n\nexport const setContentAttribute = (\n  htmlMetaElement: HTMLMetaElement,\n  contentAttribute: ContentAttribute,\n): void => htmlMetaElement.setAttribute(\"content\", contentAttribute);\n\nexport const applyMediaSpecificParameters = (\n  htmlMetaElement: HTMLMetaElement,\n  getDocumentClientWidth: () => number,\n  getMediaSpecificParameters: () => MediaSpecificParameters,\n): void => {\n  setContentAttribute(htmlMetaElement, createContentAttribute());\n  setContentAttribute(\n    htmlMetaElement,\n    createContentAttribute(\n      getMediaSpecificParameters(),\n      getDocumentClientWidth(),\n      Infinity,\n    ),\n  );\n};\n\nexport const applyMediaSpecificParametersTruncated = (\n  htmlMetaElement: HTMLMetaElement,\n  getDocumentClientWidth: () => number,\n  getMediaSpecificParameters: () => MediaSpecificParameters,\n  globalParameters: GlobalParameters,\n): void => {\n  setContentAttribute(htmlMetaElement, createContentAttribute());\n  setContentAttribute(\n    htmlMetaElement,\n    createContentAttribute(\n      getMediaSpecificParameters(),\n      getDocumentClientWidth(),\n      getDecimalPlaces(globalParameters),\n    ),\n  );\n};\n","import type { Media } from \"./Media.js\";\n\nexport type MatchMedia = (query: string) => MediaQueryList;\n\nexport const createMatchMediaPredicate =\n  (mm: MatchMedia) =>\n  (media?: Media): boolean =>\n    typeof media !== \"undefined\" ? mm(media).matches : true;\n","import type { DeepPartial } from \"../internal/DeepPartial.js\";\nimport {\n  ensureViewportMetaElement,\n  getDocumentClientWidth,\n} from \"../internal/Document.js\";\nimport { applyMediaSpecificParameters } from \"../internal/HTMLMetaElement.js\";\nimport { createMatchMediaPredicate } from \"../internal/MatchMedia.js\";\nimport {\n  createMediaSpecificParameters,\n  createPartialMediaSpecificParametersMerger,\n  type MediaSpecificParameters,\n} from \"../internal/MediaSpecificParameters.js\";\n\nexport const setMediaSpecificParametersList = (\n  partialMediaSpecificParametersList: DeepPartial<MediaSpecificParameters>[],\n): void => {\n  if (typeof window === \"undefined\") return;\n  applyMediaSpecificParameters(\n    ensureViewportMetaElement(document),\n    () => getDocumentClientWidth(document),\n    () =>\n      createMediaSpecificParameters(\n        partialMediaSpecificParametersList.reduce(\n          createPartialMediaSpecificParametersMerger(\n            createMatchMediaPredicate(matchMedia),\n          ),\n          // Value that does not need to check matching current viewport\n          createMediaSpecificParameters(),\n        ),\n      ),\n  );\n};\n","import { getMetaElementList } from \"../internal/Document.js\";\nimport { createPartialMediaSpecificParameters } from \"../internal/HTMLMetaElement.js\";\nimport { setMediaSpecificParametersList } from \"./setMediaSpecificParametersList.js\";\n\nexport const activateMediaSpecificAttributes = (): void => {\n  if (typeof window === \"undefined\") return;\n  setMediaSpecificParametersList(\n    getMetaElementList(document).map(createPartialMediaSpecificParameters),\n  );\n};\n","import { activateMediaSpecificAttributes } from \"../../apis/activateMediaSpecificAttributes.js\";\n\nactivateMediaSpecificAttributes();\n\nexport { setMediaSpecificParametersList as apply } from \"../../apis/setMediaSpecificParametersList.js\";\n"],"names":["createContentAttribute","ContentModule.createContentAttribute"],"mappings":"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"}