{"version":3,"names":["defaultItemEquality","itemValue","selectedValue","Object","is","compareItemEquality","comparer","selectedValueIncludes","selectedValues","length","some","undefined","findItemIndex","itemValues","findIndex","removeItem","filter"],"sources":["item-equality.ts"],"sourcesContent":["/**\n * Item-equality helpers. 1:1 port of Base UI React's\n * `packages/react/src/internals/itemEquality.ts` — no framework-specific\n * pieces.\n */\n\nexport type ItemEqualityComparer<Item = unknown, Value = Item> = (\n\titemValue: Item,\n\tselectedValue: Value,\n) => boolean;\n\nexport const defaultItemEquality: ItemEqualityComparer = (\n\titemValue,\n\tselectedValue,\n) => Object.is(itemValue, selectedValue);\n\nexport function compareItemEquality<Item, Value>(\n\titemValue: Item,\n\tselectedValue: Value,\n\tcomparer: ItemEqualityComparer<Item, Value>,\n): boolean {\n\tif (itemValue == null || selectedValue == null) {\n\t\treturn Object.is(itemValue, selectedValue);\n\t}\n\treturn comparer(itemValue, selectedValue);\n}\n\nexport function selectedValueIncludes<Item, Value>(\n\tselectedValues: readonly Item[] | undefined | null,\n\titemValue: Value,\n\tcomparer: ItemEqualityComparer<Value, Item>,\n): boolean {\n\tif (!selectedValues || selectedValues.length === 0) {\n\t\treturn false;\n\t}\n\treturn selectedValues.some((selectedValue) => {\n\t\tif (selectedValue === undefined) return false;\n\t\treturn compareItemEquality(itemValue, selectedValue, comparer);\n\t});\n}\n\nexport function findItemIndex<Item, Value>(\n\titemValues: readonly Item[] | undefined | null,\n\tselectedValue: Value,\n\tcomparer: ItemEqualityComparer<Item, Value>,\n): number {\n\tif (!itemValues || itemValues.length === 0) {\n\t\treturn -1;\n\t}\n\treturn itemValues.findIndex((itemValue) => {\n\t\tif (itemValue === undefined) return false;\n\t\treturn compareItemEquality(itemValue, selectedValue, comparer);\n\t});\n}\n\nexport function removeItem<Item, Value>(\n\tselectedValues: readonly Item[],\n\titemValue: Value,\n\tcomparer: ItemEqualityComparer<Value, Item>,\n): Item[] {\n\treturn selectedValues.filter(\n\t\t(selectedValue) => !compareItemEquality(itemValue, selectedValue, comparer),\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAOA,OAAO,MAAMA,mBAAyC,GAAGA,CACxDC,SAAS,EACTC,aAAa,KACTC,MAAM,CAACC,EAAE,CAACH,SAAS,EAAEC,aAAa,CAAC;AAExC,OAAO,SAASG,mBAAmBA,CAClCJ,SAAe,EACfC,aAAoB,EACpBI,QAA2C,EACjC;EACV,IAAIL,SAAS,IAAI,IAAI,IAAIC,aAAa,IAAI,IAAI,EAAE;IAC/C,OAAOC,MAAM,CAACC,EAAE,CAACH,SAAS,EAAEC,aAAa,CAAC;EAC3C;EACA,OAAOI,QAAQ,CAACL,SAAS,EAAEC,aAAa,CAAC;AAC1C;AAEA,OAAO,SAASK,qBAAqBA,CACpCC,cAAkD,EAClDP,SAAgB,EAChBK,QAA2C,EACjC;EACV,IAAI,CAACE,cAAc,IAAIA,cAAc,CAACC,MAAM,KAAK,CAAC,EAAE;IACnD,OAAO,KAAK;EACb;EACA,OAAOD,cAAc,CAACE,IAAI,CAAER,aAAa,IAAK;IAC7C,IAAIA,aAAa,KAAKS,SAAS,EAAE,OAAO,KAAK;IAC7C,OAAON,mBAAmB,CAACJ,SAAS,EAAEC,aAAa,EAAEI,QAAQ,CAAC;EAC/D,CAAC,CAAC;AACH;AAEA,OAAO,SAASM,aAAaA,CAC5BC,UAA8C,EAC9CX,aAAoB,EACpBI,QAA2C,EAClC;EACT,IAAI,CAACO,UAAU,IAAIA,UAAU,CAACJ,MAAM,KAAK,CAAC,EAAE;IAC3C,OAAO,CAAC,CAAC;EACV;EACA,OAAOI,UAAU,CAACC,SAAS,CAAEb,SAAS,IAAK;IAC1C,IAAIA,SAAS,KAAKU,SAAS,EAAE,OAAO,KAAK;IACzC,OAAON,mBAAmB,CAACJ,SAAS,EAAEC,aAAa,EAAEI,QAAQ,CAAC;EAC/D,CAAC,CAAC;AACH;AAEA,OAAO,SAASS,UAAUA,CACzBP,cAA+B,EAC/BP,SAAgB,EAChBK,QAA2C,EAClC;EACT,OAAOE,cAAc,CAACQ,MAAM,CAC1Bd,aAAa,IAAK,CAACG,mBAAmB,CAACJ,SAAS,EAAEC,aAAa,EAAEI,QAAQ,CAC3E,CAAC;AACF","ignoreList":[]}