{"version":3,"file":"index.mjs","names":[],"sources":["../../src/emote/emote-client.ts","../../src/emote/emote.ts"],"sourcesContent":["/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */\n/* SPDX-License-Identifier: Apache-2.0 */\n\nimport {\n  callServiceFunction,\n  closeService,\n  isServiceAvailable,\n  openService,\n  resolveHost,\n  type ServiceClientOptions,\n  type ServiceHandle,\n} from '../common/service-rpc.ts';\nimport type { EmoteAssetSource, EmoteConfig } from './emote-types.ts';\n\nexport const EMOTE_SERVICE_NAME = 'Emote';\n\nexport const EMOTE_FUNCTIONS = {\n  SetConfig: 'SetConfig',\n  LoadAssetsSource: 'LoadAssetsSource',\n  SetEmoji: 'SetEmoji',\n  HideEmoji: 'HideEmoji',\n  SetAnimation: 'SetAnimation',\n  InsertAnimation: 'InsertAnimation',\n  StopAnimation: 'StopAnimation',\n  WaitAnimationFrameDone: 'WaitAnimationFrameDone',\n  SetEventMessage: 'SetEventMessage',\n  HideEventMessage: 'HideEventMessage',\n  SetQrcode: 'SetQrcode',\n  HideQrcode: 'HideQrcode',\n  NotifyFlushFinished: 'NotifyFlushFinished',\n  RefreshAll: 'RefreshAll',\n} as const;\n\nexport type EmoteClientOptions = ServiceClientOptions;\nexport { type ServiceHandle as EmoteHandle };\n\nexport function isEmoteAvailable(options?: EmoteClientOptions): boolean {\n  return isServiceAvailable(EMOTE_SERVICE_NAME, options);\n}\n\nexport function openEmote(options?: EmoteClientOptions): ServiceHandle {\n  return openService(EMOTE_SERVICE_NAME, options);\n}\n\nexport function closeEmote(handle: ServiceHandle, options?: EmoteClientOptions): void {\n  closeService(handle, options);\n}\n\nexport function setConfig(\n  handle: ServiceHandle,\n  config: EmoteConfig,\n  options?: EmoteClientOptions,\n): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.SetConfig, {\n    Config: config,\n  });\n}\n\nexport function loadAssetsSource(\n  handle: ServiceHandle,\n  source: EmoteAssetSource,\n  options?: EmoteClientOptions,\n): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.LoadAssetsSource, {\n    Source: source,\n  });\n}\n\nexport function setEmoji(handle: ServiceHandle, name: string, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.SetEmoji, { Name: name });\n}\n\nexport function hideEmoji(handle: ServiceHandle, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.HideEmoji, {});\n}\n\nexport function setAnimation(\n  handle: ServiceHandle,\n  name: string,\n  options?: EmoteClientOptions,\n): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.SetAnimation, {\n    Name: name,\n  });\n}\n\nexport function insertAnimation(\n  handle: ServiceHandle,\n  name: string,\n  duration: number,\n  options?: EmoteClientOptions,\n): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.InsertAnimation, {\n    Name: name,\n    Duration: duration,\n  });\n}\n\nexport function stopAnimation(handle: ServiceHandle, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.StopAnimation, {});\n}\n\nexport function waitAnimationFrameDone(\n  handle: ServiceHandle,\n  timeout: number,\n  options?: EmoteClientOptions,\n): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.WaitAnimationFrameDone, {\n    Timeout: timeout,\n  });\n}\n\nexport function setEventMessage(\n  handle: ServiceHandle,\n  message: string,\n  color: string,\n  options?: EmoteClientOptions,\n): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.SetEventMessage, {\n    Message: message,\n    Color: color,\n  });\n}\n\nexport function hideEventMessage(handle: ServiceHandle, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.HideEventMessage, {});\n}\n\nexport function setQrcode(handle: ServiceHandle, data: string, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.SetQrcode, {\n    Data: data,\n  });\n}\n\nexport function hideQrcode(handle: ServiceHandle, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.HideQrcode, {});\n}\n\nexport function notifyFlushFinished(handle: ServiceHandle, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.NotifyFlushFinished, {});\n}\n\nexport function refreshAll(handle: ServiceHandle, options?: EmoteClientOptions): void {\n  callServiceFunction<void>(resolveHost(options), handle, EMOTE_FUNCTIONS.RefreshAll, {});\n}\n","/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */\n/* SPDX-License-Identifier: Apache-2.0 */\n\nimport {\n  closeEmote,\n  hideEmoji,\n  hideEventMessage,\n  hideQrcode,\n  insertAnimation,\n  isEmoteAvailable,\n  loadAssetsSource,\n  notifyFlushFinished,\n  openEmote,\n  refreshAll,\n  setAnimation,\n  setConfig,\n  setEmoji,\n  setEventMessage,\n  setQrcode,\n  stopAnimation,\n  waitAnimationFrameDone,\n  type EmoteClientOptions,\n  type EmoteHandle,\n} from './emote-client.ts';\nimport type { EmoteAssetSource, EmoteConfig } from './emote-types.ts';\n\nexport type EmoteModuleOptions = EmoteClientOptions;\ntype State = { handle: EmoteHandle | null; options: EmoteModuleOptions };\nconst state: State = { handle: null, options: {} };\n\nfunction handle(): EmoteHandle {\n  if (state.handle !== null) return state.handle;\n  if (!isEmoteAvailable(state.options)) throw new Error('Emote service is not available');\n  state.handle = openEmote(state.options);\n  return state.handle;\n}\n\nexport function configure(options: EmoteModuleOptions): void {\n  if (state.handle !== null) closeEmote(state.handle, state.options);\n  state.handle = null;\n  state.options = options;\n}\n\nconst emote = {\n  available(): boolean {\n    return isEmoteAvailable(state.options);\n  },\n  close(): void {\n    if (state.handle === null) return;\n    closeEmote(state.handle, state.options);\n    state.handle = null;\n  },\n  setConfig(config: EmoteConfig): void {\n    setConfig(handle(), config, state.options);\n  },\n  loadAssetsSource(source: EmoteAssetSource): void {\n    loadAssetsSource(handle(), source, state.options);\n  },\n  setEmoji(name: string): void {\n    setEmoji(handle(), name, state.options);\n  },\n  hideEmoji(): void {\n    hideEmoji(handle(), state.options);\n  },\n  setAnimation(name: string): void {\n    setAnimation(handle(), name, state.options);\n  },\n  insertAnimation(name: string, duration: number): void {\n    insertAnimation(handle(), name, duration, state.options);\n  },\n  stopAnimation(): void {\n    stopAnimation(handle(), state.options);\n  },\n  waitAnimationFrameDone(timeout: number): void {\n    waitAnimationFrameDone(handle(), timeout, state.options);\n  },\n  setEventMessage(message: string, color: string): void {\n    setEventMessage(handle(), message, color, state.options);\n  },\n  hideEventMessage(): void {\n    hideEventMessage(handle(), state.options);\n  },\n  setQrcode(data: string): void {\n    setQrcode(handle(), data, state.options);\n  },\n  hideQrcode(): void {\n    hideQrcode(handle(), state.options);\n  },\n  notifyFlushFinished(): void {\n    notifyFlushFinished(handle(), state.options);\n  },\n  refreshAll(): void {\n    refreshAll(handle(), state.options);\n  },\n};\n\nexport default emote;\n"],"mappings":"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"}