{"version":3,"sources":["../../../../src/sensors/useNavigatorLanguage/core.ts"],"sourcesContent":["import { observable } from \"@legendapp/state\";\nimport { createSupported, onMount } from \"@usels/core\";\nimport type { DeepMaybeObservable, ReadonlyObservable, Supportable } from \"@usels/core\";\nimport { type ConfigurableWindow, defaultNavigator, defaultWindow } from \"@shared/configurable\";\nimport type { MaybeEventTarget } from \"../../types\";\nimport { createEventListener } from \"../../browser/useEventListener/core\";\n\nexport interface UseNavigatorLanguageReturn extends Supportable {\n  /** Current browser language (e.g., \"en-US\") */\n  language$: ReadonlyObservable<string | undefined>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface UseNavigatorLanguageOptions extends ConfigurableWindow {}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function createNavigatorLanguage(\n  _options?: DeepMaybeObservable<UseNavigatorLanguageOptions>\n): UseNavigatorLanguageReturn {\n  const isSupported$ = createSupported(() => !!defaultNavigator && \"language\" in defaultNavigator);\n  const language$ = observable<string | undefined>(undefined);\n\n  onMount(() => {\n    if (defaultNavigator) {\n      language$.set(defaultNavigator.language);\n    }\n  });\n\n  createEventListener(\n    (defaultWindow as MaybeEventTarget) ?? null,\n    \"languagechange\",\n    () => {\n      if (defaultNavigator) {\n        language$.set(defaultNavigator.language);\n      }\n    },\n    { passive: true }\n  );\n\n  return { isSupported$, language$ };\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB,eAAe;AAEzC,SAAkC,kBAAkB,qBAAqB;AAEzE,SAAS,2BAA2B;AAAA;AAW7B,SAAS,wBACd,UAC4B;AAC5B,QAAM,eAAe,gBAAgB,MAAM,CAAC,CAAC,oBAAoB,cAAc,gBAAgB;AAC/F,QAAM,YAAY,WAA+B,MAAS;AAE1D,UAAQ,MAAM;AACZ,QAAI,kBAAkB;AACpB,gBAAU,IAAI,iBAAiB,QAAQ;AAAA,IACzC;AAAA,EACF,CAAC;AAED;AAAA,IACG,iBAAsC;AAAA,IACvC;AAAA,IACA,MAAM;AACJ,UAAI,kBAAkB;AACpB,kBAAU,IAAI,iBAAiB,QAAQ;AAAA,MACzC;AAAA,IACF;AAAA,IACA,EAAE,SAAS,KAAK;AAAA,EAClB;AAEA,SAAO,EAAE,cAAc,UAAU;AACnC;","names":[]}