diff --git a/Sources/TablerSort.swift b/Sources/TablerSort.swift index b7a6726..8d00e11 100644 --- a/Sources/TablerSort.swift +++ b/Sources/TablerSort.swift @@ -17,6 +17,7 @@ // import SwiftUI +import SwiftData public struct TablerSort where Element: Identifiable @@ -153,6 +154,68 @@ public extension View { func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + + /// Swift-data support + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } + @available(iOS 17.0, macCatalyst 17.0, macOS 14.0, tvOS 17.0, visionOS 1.0, watchOS 10.0, *) + func tablerSort(_ c: Binding>, _ k: KeyPath) -> SortDescriptor { SortDescriptor(k, order: xlat(updateSort(c, k))) } private func xlat(_ direction: TablerSort.Direction) -> SortOrder { direction == .forward ? SortOrder.forward : SortOrder.reverse