@@ -8,7 +8,7 @@ struct AnalyticsHubRangeAdapter {
88
99 /// Converts an `AnalyticsHubTimeRangeSelection.SelectionType` range into a `AnalyticsTimeRangeCard.Range`.
1010 ///
11- fileprivate static func timeCardRange( from analyticsHubRange: AnalyticsHubTimeRangeSelection . SelectionType ) -> AnalyticsTimeRangeCard . Range {
11+ static func timeCardRange( from analyticsHubRange: AnalyticsHubTimeRangeSelection . SelectionType ) -> AnalyticsTimeRangeCard . Range {
1212 switch analyticsHubRange {
1313 case . custom:
1414 return . custom
@@ -37,7 +37,7 @@ struct AnalyticsHubRangeAdapter {
3737
3838 /// Converts an `AnalyticsTimeRangeCard.Range` into a `AnalyticsHubTimeRangeSelection.SelectionType` range.
3939 ///
40- fileprivate static func analyticsHubRange( from timeCardRange: AnalyticsTimeRangeCard . Range ) -> AnalyticsHubTimeRangeSelection . SelectionType {
40+ static func analyticsHubRange( from timeCardRange: AnalyticsTimeRangeCard . Range ) -> AnalyticsHubTimeRangeSelection . SelectionType {
4141 switch timeCardRange {
4242 case . custom:
4343 return . custom( start: Date ( ) , end: Date ( ) )
@@ -179,6 +179,17 @@ struct AnalyticsHubRangeAdapter {
179179 return TracksIdentifier . yearToDate
180180 }
181181 }
182+
183+ /// Extracts the dates from an analytics hub range custom type.
184+ ///
185+ static func customDates( from analyticsHubRange: AnalyticsHubTimeRangeSelection . SelectionType ) -> ( start: Date , end: Date ) ? {
186+ switch analyticsHubRange {
187+ case let . custom( startDate, endDate) :
188+ return ( startDate, endDate)
189+ default :
190+ return nil
191+ }
192+ }
182193}
183194
184195// MARK: Constants
@@ -241,4 +252,16 @@ extension AnalyticsHubTimeRangeSelection.SelectionType {
241252 var asTimeCardRange : AnalyticsTimeRangeCard . Range {
242253 AnalyticsHubRangeAdapter . timeCardRange ( from: self )
243254 }
255+
256+ /// Extracts the start date from custom range type.
257+ ///
258+ var startDate : Date ? {
259+ AnalyticsHubRangeAdapter . customDates ( from: self ) ? . start
260+ }
261+
262+ /// Extracts the end date from custom range type.
263+ ///
264+ var endDate : Date ? {
265+ AnalyticsHubRangeAdapter . customDates ( from: self ) ? . end
266+ }
244267}
0 commit comments