{"version":3,"file":"SelectContext.cjs","sources":["../../../../../../packages/vue-components/vc-select/src/SelectContext.ts"],"sourcesContent":["/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\n\nimport type { InjectionKey } from 'vue';\nimport type { RawValueType, RenderNode } from './BaseSelect';\nimport type { FlattenOptionData } from './interface';\nimport type { BaseOptionType, FieldNames, OnActiveValue, OnInternalSelect } from './Select';\nimport { inject, provide } from 'vue';\n\n// Use any here since we do not get the type during compilation\nexport interface SelectContextProps {\n  options: BaseOptionType[];\n  flattenOptions: Array<FlattenOptionData<BaseOptionType>>;\n  onActiveValue: OnActiveValue;\n  defaultActiveFirstOption?: boolean;\n  onSelect: OnInternalSelect;\n  menuItemSelectedIcon?: RenderNode;\n  rawValues: Set<RawValueType>;\n  fieldNames?: FieldNames;\n  virtual?: boolean;\n  listHeight?: number;\n  listItemHeight?: number;\n  childrenAsData?: boolean;\n}\n\nconst SelectContextKey: InjectionKey<SelectContextProps> = Symbol('SelectContextKey');\n\nexport function useProvideSelectProps(props: SelectContextProps) {\n  return provide(SelectContextKey, props);\n}\n\nexport default function useSelectProps() {\n  return inject(SelectContextKey, {} as SelectContextProps);\n}\n"],"names":["provide","inject"],"mappings":";;;;;;AA2BA,MAAM,gBAAA,GAAqD,OAAO,kBAAkB,CAAA,CAAA;AAE7E,SAAS,sBAAsB,KAA2B,EAAA;AAC/D,EAAO,OAAAA,WAAA,CAAQ,kBAAkB,KAAK,CAAA,CAAA;AACxC,CAAA;AAEA,SAAwB,cAAiB,GAAA;AACvC,EAAO,OAAAC,UAAA,CAAO,gBAAkB,EAAA,EAAwB,CAAA,CAAA;AAC1D;;;;;"}