@rio-cloud/rio-uikit 2.3.0-beta.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/Marker.js +9 -5
  2. package/Table.js +10 -9
  3. package/TableNext.js +10 -9
  4. package/TableRowActionsDropdown.d.ts +2 -0
  5. package/TableRowActionsDropdown.js +5 -0
  6. package/TableRowActionsDropdown.js.map +1 -0
  7. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.d.ts +38 -3
  8. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js +104 -109
  9. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js.map +1 -1
  10. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.d.ts +24 -5
  11. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js +60 -56
  12. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js.map +1 -1
  13. package/components/datepicker/DayPicker.js +72 -70
  14. package/components/datepicker/DayPicker.js.map +1 -1
  15. package/components/datepicker/DayPickerDropdown.d.ts +1 -0
  16. package/components/datepicker/DayPickerDropdown.js +61 -48
  17. package/components/datepicker/DayPickerDropdown.js.map +1 -1
  18. package/components/datepicker/useStackedDayPickerCalendars.js +26 -26
  19. package/components/datepicker/useStackedDayPickerCalendars.js.map +1 -1
  20. package/components/dropdown/ButtonDropdown.d.ts +4 -0
  21. package/components/dropdown/ButtonDropdown.js +82 -80
  22. package/components/dropdown/ButtonDropdown.js.map +1 -1
  23. package/components/listMenu/ListMenu.d.ts +8 -0
  24. package/components/listMenu/ListMenu.js +74 -66
  25. package/components/listMenu/ListMenu.js.map +1 -1
  26. package/components/map/components/Map.js +207 -156
  27. package/components/map/components/Map.js.map +1 -1
  28. package/components/map/components/MapContext.d.ts +3 -0
  29. package/components/map/components/MapContext.js +9 -6
  30. package/components/map/components/MapContext.js.map +1 -1
  31. package/components/map/components/features/MapZoom.js +19 -19
  32. package/components/map/components/features/MapZoom.js.map +1 -1
  33. package/components/map/components/features/Route.d.ts +65 -1
  34. package/components/map/components/features/Route.js +184 -98
  35. package/components/map/components/features/Route.js.map +1 -1
  36. package/components/map/components/features/basics/Marker.d.ts +21 -1
  37. package/components/map/components/features/basics/Marker.js +99 -40
  38. package/components/map/components/features/basics/Marker.js.map +1 -1
  39. package/components/map/components/features/basics/Polygon.d.ts +24 -1
  40. package/components/map/components/features/basics/Polygon.js +72 -19
  41. package/components/map/components/features/basics/Polygon.js.map +1 -1
  42. package/components/map/components/features/basics/Polyline.d.ts +29 -0
  43. package/components/map/components/features/basics/Polyline.js +69 -39
  44. package/components/map/components/features/basics/Polyline.js.map +1 -1
  45. package/components/map/components/features/layers/MarkerLayer.js +8 -8
  46. package/components/map/components/features/layers/MarkerLayer.js.map +1 -1
  47. package/components/map/components/features/layers/clustering/SimpleClusterLayer.js +13 -6
  48. package/components/map/components/features/layers/clustering/SimpleClusterLayer.js.map +1 -1
  49. package/components/map/utils/clustering.d.ts +1 -1
  50. package/components/map/utils/clustering.js +30 -30
  51. package/components/map/utils/clustering.js.map +1 -1
  52. package/components/map/utils/mapTypes.d.ts +141 -0
  53. package/components/map/utils/mapTypes.js.map +1 -1
  54. package/components/map/utils/mapUtils.d.ts +2 -0
  55. package/components/map/utils/mapUtils.js +4 -0
  56. package/components/map/utils/mapUtils.js.map +1 -1
  57. package/components/mapMarker/ClusterMapMarker.d.ts +2 -0
  58. package/components/mapMarker/ClusterMapMarker.js.map +1 -1
  59. package/components/mapMarker/SingleMapMarker.d.ts +2 -0
  60. package/components/mapMarker/SingleMapMarker.js.map +1 -1
  61. package/components/selects/ClearButton.js +9 -7
  62. package/components/selects/ClearButton.js.map +1 -1
  63. package/components/table/Table.d.ts +3 -1
  64. package/components/table/Table.js +239 -216
  65. package/components/table/Table.js.map +1 -1
  66. package/components/table/Table.types.d.ts +62 -4
  67. package/components/table/TableColumn.d.ts +8 -1
  68. package/components/table/TableColumn.js +66 -64
  69. package/components/table/TableColumn.js.map +1 -1
  70. package/components/table/TableExpandedRow.d.ts +4 -0
  71. package/components/table/TableExpandedRow.js +70 -67
  72. package/components/table/TableExpandedRow.js.map +1 -1
  73. package/components/table/TableGroupRow.d.ts +3 -1
  74. package/components/table/TableGroupRow.js +15 -14
  75. package/components/table/TableGroupRow.js.map +1 -1
  76. package/components/table/TableHeader.d.ts +9 -0
  77. package/components/table/TableHeader.js +110 -81
  78. package/components/table/TableHeader.js.map +1 -1
  79. package/components/table/TableHeaderColumn.d.ts +11 -1
  80. package/components/table/TableHeaderColumn.js +63 -58
  81. package/components/table/TableHeaderColumn.js.map +1 -1
  82. package/components/table/TableRow.d.ts +12 -0
  83. package/components/table/TableRow.js +78 -74
  84. package/components/table/TableRow.js.map +1 -1
  85. package/components/table/TableRowActionsDropdown.d.ts +11 -0
  86. package/components/table/TableRowActionsDropdown.js +22 -0
  87. package/components/table/TableRowActionsDropdown.js.map +1 -0
  88. package/components/table/TableStickyRowButton.d.ts +25 -0
  89. package/components/table/TableStickyRowButton.js +32 -0
  90. package/components/table/TableStickyRowButton.js.map +1 -0
  91. package/components/table/TableToolbar.d.ts +24 -3
  92. package/components/table/TableToolbar.js +78 -37
  93. package/components/table/TableToolbar.js.map +1 -1
  94. package/components/table/TableViewToggles.js +5 -5
  95. package/components/table/TableViewToggles.js.map +1 -1
  96. package/components/table/context/TableInteractionContext.d.ts +3 -0
  97. package/components/table/context/TableInteractionContext.js.map +1 -1
  98. package/components/table/context/TableLayoutContext.d.ts +1 -0
  99. package/components/table/context/TableLayoutContext.js.map +1 -1
  100. package/components/table/context/TableRenderContext.d.ts +1 -0
  101. package/components/table/context/TableRenderContext.js.map +1 -1
  102. package/components/table/layout/useHorizontalSectionSync.d.ts +2 -1
  103. package/components/table/layout/useHorizontalSectionSync.js +32 -31
  104. package/components/table/layout/useHorizontalSectionSync.js.map +1 -1
  105. package/components/table/layout/useMeasuredColumnMaxWidths.js +52 -54
  106. package/components/table/layout/useMeasuredColumnMaxWidths.js.map +1 -1
  107. package/components/table/layout/useTableLayout.d.ts +6 -2
  108. package/components/table/layout/useTableLayout.js +61 -48
  109. package/components/table/layout/useTableLayout.js.map +1 -1
  110. package/components/table/layout/useTableVirtualization.js +51 -56
  111. package/components/table/layout/useTableVirtualization.js.map +1 -1
  112. package/components/table/model/resolveResponsiveViewType.d.ts +2 -0
  113. package/components/table/model/resolveResponsiveViewType.js +27 -0
  114. package/components/table/model/resolveResponsiveViewType.js.map +1 -0
  115. package/components/table/render/header/TableDraggableHeaderCell.js +38 -36
  116. package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -1
  117. package/components/table/render/header/TableHeader.types.d.ts +2 -0
  118. package/components/table/render/header/TableHeaderCellContent.js +16 -16
  119. package/components/table/render/header/TableHeaderCellContent.js.map +1 -1
  120. package/components/table/render/header/TableHeaderSelectionCell.d.ts +1 -0
  121. package/components/table/render/header/TableHeaderSelectionCell.js +13 -12
  122. package/components/table/render/header/TableHeaderSelectionCell.js.map +1 -1
  123. package/components/table/render/header/TableStaticHeaderCell.js +31 -29
  124. package/components/table/render/header/TableStaticHeaderCell.js.map +1 -1
  125. package/components/table/render/header/resolveHeaderCellClassName.d.ts +1 -0
  126. package/components/table/render/header/resolveHeaderCellClassName.js +10 -9
  127. package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -1
  128. package/components/table/runtime/useResolvedRenderColumns.d.ts +4 -4
  129. package/components/table/runtime/useResolvedRenderColumns.js +13 -13
  130. package/components/table/runtime/useResolvedRenderColumns.js.map +1 -1
  131. package/components/table/runtime/useResolvedRenderHeader.d.ts +1 -1
  132. package/components/table/runtime/useResolvedRenderHeader.js.map +1 -1
  133. package/components/table/runtime/useResponsiveResolvedViewType.d.ts +23 -0
  134. package/components/table/runtime/useResponsiveResolvedViewType.js +22 -0
  135. package/components/table/runtime/useResponsiveResolvedViewType.js.map +1 -0
  136. package/components/table/selection/useInternalTableSelectionState.d.ts +2 -0
  137. package/components/table/selection/useInternalTableSelectionState.js +27 -17
  138. package/components/table/selection/useInternalTableSelectionState.js.map +1 -1
  139. package/components/table/selection/useTableSelection.d.ts +5 -1
  140. package/components/table/selection/useTableSelection.js +37 -26
  141. package/components/table/selection/useTableSelection.js.map +1 -1
  142. package/components/table/shared/parsePixelSize.d.ts +2 -0
  143. package/components/table/shared/parsePixelSize.js +13 -0
  144. package/components/table/shared/parsePixelSize.js.map +1 -0
  145. package/hooks/useDraggableElement.d.ts +27 -5
  146. package/hooks/useDraggableElement.js +100 -23
  147. package/hooks/useDraggableElement.js.map +1 -1
  148. package/hooks/usePopperDropdown.d.ts +1 -0
  149. package/hooks/usePopperDropdown.js +15 -12
  150. package/hooks/usePopperDropdown.js.map +1 -1
  151. package/hooks/useResizeObserver.d.ts +25 -6
  152. package/hooks/useResizeObserver.js +20 -18
  153. package/hooks/useResizeObserver.js.map +1 -1
  154. package/package.json +10 -10
  155. package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -1
  156. package/utils/init/initConfig.js +5 -5
  157. package/utils/init/initConfig.js.map +1 -1
  158. package/version.d.ts +1 -1
  159. package/version.js +2 -2
  160. package/version.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsAnalysisOverlay.js","sources":["../../../src/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.tsx"],"sourcesContent":["import { useCallback, useState, type CSSProperties } from 'react';\n\nimport Notification from '../../Notification';\nimport useDraggableElement from '../../hooks/useDraggableElement';\nimport {\n buildAnalyticsAnalysisData,\n hasRequiredAnalyticsHeaderRow,\n type AnalyticsReportEntry,\n} from '../../utils/analytics/analyticsAnalysisUtils';\nimport useAnalyticsOverlayDom from '../../utils/analytics/useAnalyticsOverlayDom';\nimport { AnalyticsAnalysisBanner } from './AnalyticsAnalysisBanner';\n\ntype AnalyticsAnalysisOverlayProps = {\n overlayBackgroundOpacity?: number;\n bannerStartCoordinates?: {\n top: number;\n left: number;\n };\n};\n\nexport const AnalyticsAnalysisOverlay = (props: AnalyticsAnalysisOverlayProps) => {\n const { overlayBackgroundOpacity = 0.5, bannerStartCoordinates } = props;\n const normalizedOverlayBackgroundOpacity = Math.min(1, Math.max(0, overlayBackgroundOpacity));\n const startTop = bannerStartCoordinates?.top;\n const startLeft = bannerStartCoordinates?.left;\n const hasCustomStartCoordinates =\n typeof startTop === 'number' &&\n Number.isFinite(startTop) &&\n typeof startLeft === 'number' &&\n Number.isFinite(startLeft);\n const [analyticsLookup, setAnalyticsLookup] = useState<Map<string, AnalyticsReportEntry[]>>(() => new Map());\n const [analyticsDateRangeLabel, setAnalyticsDateRangeLabel] = useState<string | null>(null);\n const [analyticsTotalUsers, setAnalyticsTotalUsers] = useState<number | null>(null);\n const [loadedCsvName, setLoadedCsvName] = useState<string | null>(null);\n const [showOverlayDetails, setShowOverlayDetails] = useState(true);\n const [showOverlayLabelText, setShowOverlayLabelText] = useState(true);\n const { draggableRef, isDragging, position, onDragHandlePointerDown } = useDraggableElement<HTMLDivElement>();\n const metadataBannerHost = useAnalyticsOverlayDom({\n analyticsLookup,\n overlayBackgroundOpacity: normalizedOverlayBackgroundOpacity,\n showOverlayDetails,\n showOverlayLabelText,\n analyticsTotalUsers,\n });\n\n const handleCsvPick = useCallback(async (files: File[]) => {\n const csvFiles = files.filter(file => file.name.toLowerCase().endsWith('.csv'));\n\n if (csvFiles.length === 0) {\n setAnalyticsLookup(new Map());\n setAnalyticsDateRangeLabel(null);\n setAnalyticsTotalUsers(null);\n setLoadedCsvName(null);\n return;\n }\n\n const selectedFile = csvFiles[0];\n const csvRaw = await selectedFile.text();\n\n if (!hasRequiredAnalyticsHeaderRow(csvRaw)) {\n Notification.error(\n 'A Google Analytics CSV report based on the \"UIKIT AnalyticsAnalysisOverlay Template\" is required.',\n {\n title: 'Unsupported CSV',\n }\n );\n setAnalyticsLookup(new Map());\n setAnalyticsDateRangeLabel(null);\n setAnalyticsTotalUsers(null);\n setLoadedCsvName(null);\n return;\n }\n\n const uploads = [\n {\n reportName: selectedFile.name,\n csvRaw,\n },\n ];\n const analysisData = buildAnalyticsAnalysisData(uploads);\n\n setAnalyticsLookup(analysisData.analyticsLookup);\n setAnalyticsDateRangeLabel(analysisData.analyticsDateRangeLabel);\n setAnalyticsTotalUsers(analysisData.analyticsTotalUsers);\n setLoadedCsvName(selectedFile.name);\n }, []);\n\n const handleClearCsv = useCallback(() => {\n setAnalyticsLookup(new Map());\n setAnalyticsDateRangeLabel(null);\n setAnalyticsTotalUsers(null);\n setLoadedCsvName(null);\n }, []);\n\n const bannerStyle: CSSProperties = position.hasDragged\n ? {\n top: `${position.top}px`,\n left: `${position.left}px`,\n }\n : hasCustomStartCoordinates\n ? {\n top: `${startTop}px`,\n left: `${startLeft}px`,\n }\n : {\n top: '70px',\n left: '50%',\n transform: 'translateX(-50%)',\n };\n\n return (\n <AnalyticsAnalysisBanner\n host={metadataBannerHost}\n bannerRef={draggableRef}\n bannerStyle={bannerStyle}\n analyticsDateRangeLabel={analyticsDateRangeLabel}\n loadedCsvName={loadedCsvName}\n showOverlayDetails={showOverlayDetails}\n showOverlayLabelText={showOverlayLabelText}\n isDragging={isDragging}\n onCsvPick={handleCsvPick}\n onToggleOverlayDetails={() => setShowOverlayDetails(previousState => !previousState)}\n onToggleOverlayLabelText={() => setShowOverlayLabelText(previousState => !previousState)}\n onClearCsv={handleClearCsv}\n onDragHandlePointerDown={onDragHandlePointerDown}\n />\n );\n};\n"],"names":["AnalyticsAnalysisOverlay","props","overlayBackgroundOpacity","bannerStartCoordinates","normalizedOverlayBackgroundOpacity","startTop","startLeft","hasCustomStartCoordinates","analyticsLookup","setAnalyticsLookup","useState","analyticsDateRangeLabel","setAnalyticsDateRangeLabel","analyticsTotalUsers","setAnalyticsTotalUsers","loadedCsvName","setLoadedCsvName","showOverlayDetails","setShowOverlayDetails","showOverlayLabelText","setShowOverlayLabelText","draggableRef","isDragging","position","onDragHandlePointerDown","useDraggableElement","metadataBannerHost","useAnalyticsOverlayDom","handleCsvPick","useCallback","files","csvFiles","file","selectedFile","csvRaw","hasRequiredAnalyticsHeaderRow","Notification","uploads","analysisData","buildAnalyticsAnalysisData","handleClearCsv","bannerStyle","jsx","AnalyticsAnalysisBanner","previousState"],"mappings":"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"}
1
+ {"version":3,"file":"AnalyticsAnalysisOverlay.js","sources":["../../../src/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.tsx"],"sourcesContent":["import { useCallback, useState, type CSSProperties } from 'react';\n\nimport Notification from '../../Notification';\nimport useDraggableElement from '../../hooks/useDraggableElement';\nimport {\n buildAnalyticsAnalysisData,\n hasRequiredAnalyticsHeaderRow,\n type AnalyticsReportEntry,\n} from '../../utils/analytics/analyticsAnalysisUtils';\nimport useAnalyticsOverlayDom from '../../utils/analytics/useAnalyticsOverlayDom';\nimport { AnalyticsAnalysisBanner } from './AnalyticsAnalysisBanner';\n\nconst DEFAULT_BANNER_POSITION = {\n top: '70px',\n left: '50%',\n transform: 'translateX(-50%)',\n};\n\ntype AnalysisBannerPosition = {\n /**\n * Initial top offset in pixels relative to the viewport.\n */\n top: number;\n\n /**\n * Initial left offset in pixels relative to the viewport.\n */\n left: number;\n};\n\ntype AnalyticsAnalysisOverlayProps = {\n /**\n * Opacity of the fullscreen analytics overlay backdrop.\n * Values are clamped to the range `0` to `1`.\n *\n * @default 0.5\n */\n overlayBackgroundOpacity?: number;\n\n /**\n * Optional initial viewport coordinates for the draggable analytics banner.\n * When omitted, the banner starts at `top: 70px`, `left: 50%` with `translateX(-50%)`.\n *\n * @default undefined\n */\n bannerStartCoordinates?: AnalysisBannerPosition;\n};\n\nexport const AnalyticsAnalysisOverlay = (props: AnalyticsAnalysisOverlayProps) => {\n const { overlayBackgroundOpacity = 0.5, bannerStartCoordinates } = props;\n\n const normalizedOverlayBackgroundOpacity = Math.min(1, Math.max(0, overlayBackgroundOpacity));\n\n const startTop = bannerStartCoordinates?.top;\n const startLeft = bannerStartCoordinates?.left;\n\n const hasCustomStartCoordinates =\n typeof startTop === 'number' &&\n Number.isFinite(startTop) &&\n typeof startLeft === 'number' &&\n Number.isFinite(startLeft);\n\n const [analyticsLookup, setAnalyticsLookup] = useState<Map<string, AnalyticsReportEntry[]>>(() => new Map());\n const [analyticsDateRangeLabel, setAnalyticsDateRangeLabel] = useState<string | null>(null);\n const [analyticsTotalUsers, setAnalyticsTotalUsers] = useState<number | null>(null);\n\n const [loadedCsvName, setLoadedCsvName] = useState<string | null>(null);\n\n const [showOverlayDetails, setShowOverlayDetails] = useState(true);\n const [showOverlayLabelText, setShowOverlayLabelText] = useState(true);\n\n const initialPosition = hasCustomStartCoordinates ? { top: startTop, left: startLeft } : undefined;\n\n const { draggableRef, isDragging, position, onDragHandleDown, renderElement } = useDraggableElement({\n initialPosition,\n });\n\n const metadataBannerHost = useAnalyticsOverlayDom({\n analyticsLookup,\n overlayBackgroundOpacity: normalizedOverlayBackgroundOpacity,\n showOverlayDetails,\n showOverlayLabelText,\n analyticsTotalUsers,\n });\n\n const handleCsvPick = useCallback(async (files: File[]) => {\n const csvFiles = files.filter(file => file.name.toLowerCase().endsWith('.csv'));\n\n if (csvFiles.length === 0) {\n setAnalyticsLookup(new Map());\n setAnalyticsDateRangeLabel(null);\n setAnalyticsTotalUsers(null);\n setLoadedCsvName(null);\n return;\n }\n\n const selectedFile = csvFiles[0];\n const csvRaw = await selectedFile.text();\n\n if (!hasRequiredAnalyticsHeaderRow(csvRaw)) {\n Notification.error(\n 'A Google Analytics CSV report based on the \"UIKIT AnalyticsAnalysisOverlay Template\" is required.',\n {\n title: 'Unsupported CSV',\n }\n );\n setAnalyticsLookup(new Map());\n setAnalyticsDateRangeLabel(null);\n setAnalyticsTotalUsers(null);\n setLoadedCsvName(null);\n return;\n }\n\n const uploads = [\n {\n reportName: selectedFile.name,\n csvRaw,\n },\n ];\n const analysisData = buildAnalyticsAnalysisData(uploads);\n\n setAnalyticsLookup(analysisData.analyticsLookup);\n setAnalyticsDateRangeLabel(analysisData.analyticsDateRangeLabel);\n setAnalyticsTotalUsers(analysisData.analyticsTotalUsers);\n setLoadedCsvName(selectedFile.name);\n }, []);\n\n const handleClearCsv = useCallback(() => {\n setAnalyticsLookup(new Map());\n setAnalyticsDateRangeLabel(null);\n setAnalyticsTotalUsers(null);\n setLoadedCsvName(null);\n }, []);\n\n const bannerStyle: CSSProperties = position.hasDragged\n ? {\n top: `${position.top}px`,\n left: `${position.left}px`,\n }\n : hasCustomStartCoordinates\n ? {\n top: `${position.top}px`,\n left: `${position.left}px`,\n }\n : DEFAULT_BANNER_POSITION;\n\n return renderElement(\n <AnalyticsAnalysisBanner\n bannerRef={draggableRef}\n bannerStyle={bannerStyle}\n analyticsDateRangeLabel={analyticsDateRangeLabel}\n loadedCsvName={loadedCsvName}\n showOverlayDetails={showOverlayDetails}\n showOverlayLabelText={showOverlayLabelText}\n isDragging={isDragging}\n onCsvPick={handleCsvPick}\n onToggleOverlayDetails={() => setShowOverlayDetails(previousState => !previousState)}\n onToggleOverlayLabelText={() => setShowOverlayLabelText(previousState => !previousState)}\n onClearCsv={handleClearCsv}\n onDragHandleDown={onDragHandleDown}\n />,\n metadataBannerHost\n );\n};\n"],"names":["DEFAULT_BANNER_POSITION","AnalyticsAnalysisOverlay","props","overlayBackgroundOpacity","bannerStartCoordinates","normalizedOverlayBackgroundOpacity","startTop","startLeft","hasCustomStartCoordinates","analyticsLookup","setAnalyticsLookup","useState","analyticsDateRangeLabel","setAnalyticsDateRangeLabel","analyticsTotalUsers","setAnalyticsTotalUsers","loadedCsvName","setLoadedCsvName","showOverlayDetails","setShowOverlayDetails","showOverlayLabelText","setShowOverlayLabelText","initialPosition","draggableRef","isDragging","position","onDragHandleDown","renderElement","useDraggableElement","metadataBannerHost","useAnalyticsOverlayDom","handleCsvPick","useCallback","files","csvFiles","file","selectedFile","csvRaw","hasRequiredAnalyticsHeaderRow","Notification","uploads","analysisData","buildAnalyticsAnalysisData","handleClearCsv","bannerStyle","jsx","AnalyticsAnalysisBanner","previousState"],"mappings":";;;;;;;AAYA,MAAMA,IAA0B;AAAA,EAC5B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,WAAW;AACf,GAgCaC,IAA2B,CAACC,MAAyC;AAC9E,QAAM,EAAE,0BAAAC,IAA2B,KAAK,wBAAAC,EAAA,IAA2BF,GAE7DG,IAAqC,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGF,CAAwB,CAAC,GAEtFG,IAAWF,GAAwB,KACnCG,IAAYH,GAAwB,MAEpCI,IACF,OAAOF,KAAa,YACpB,OAAO,SAASA,CAAQ,KACxB,OAAOC,KAAc,YACrB,OAAO,SAASA,CAAS,GAEvB,CAACE,GAAiBC,CAAkB,IAAIC,EAA8C,MAAM,oBAAI,KAAK,GACrG,CAACC,GAAyBC,CAA0B,IAAIF,EAAwB,IAAI,GACpF,CAACG,GAAqBC,CAAsB,IAAIJ,EAAwB,IAAI,GAE5E,CAACK,GAAeC,CAAgB,IAAIN,EAAwB,IAAI,GAEhE,CAACO,GAAoBC,CAAqB,IAAIR,EAAS,EAAI,GAC3D,CAACS,GAAsBC,CAAuB,IAAIV,EAAS,EAAI,GAE/DW,IAAkBd,IAA4B,EAAE,KAAKF,GAAU,MAAMC,MAAc,QAEnF,EAAE,cAAAgB,GAAc,YAAAC,GAAY,UAAAC,GAAU,kBAAAC,GAAkB,eAAAC,EAAA,IAAkBC,EAAoB;AAAA,IAChG,iBAAAN;AAAA,EAAA,CACH,GAEKO,IAAqBC,EAAuB;AAAA,IAC9C,iBAAArB;AAAA,IACA,0BAA0BJ;AAAA,IAC1B,oBAAAa;AAAA,IACA,sBAAAE;AAAA,IACA,qBAAAN;AAAA,EAAA,CACH,GAEKiB,IAAgBC,EAAY,OAAOC,MAAkB;AACvD,UAAMC,IAAWD,EAAM,OAAO,CAAAE,MAAQA,EAAK,KAAK,YAAA,EAAc,SAAS,MAAM,CAAC;AAE9E,QAAID,EAAS,WAAW,GAAG;AACvB,MAAAxB,EAAmB,oBAAI,KAAK,GAC5BG,EAA2B,IAAI,GAC/BE,EAAuB,IAAI,GAC3BE,EAAiB,IAAI;AACrB;AAAA,IACJ;AAEA,UAAMmB,IAAeF,EAAS,CAAC,GACzBG,IAAS,MAAMD,EAAa,KAAA;AAElC,QAAI,CAACE,EAA8BD,CAAM,GAAG;AACxC,MAAAE,EAAa;AAAA,QACT;AAAA,QACA;AAAA,UACI,OAAO;AAAA,QAAA;AAAA,MACX,GAEJ7B,EAAmB,oBAAI,KAAK,GAC5BG,EAA2B,IAAI,GAC/BE,EAAuB,IAAI,GAC3BE,EAAiB,IAAI;AACrB;AAAA,IACJ;AAEA,UAAMuB,IAAU;AAAA,MACZ;AAAA,QACI,YAAYJ,EAAa;AAAA,QACzB,QAAAC;AAAA,MAAA;AAAA,IACJ,GAEEI,IAAeC,EAA2BF,CAAO;AAEvD,IAAA9B,EAAmB+B,EAAa,eAAe,GAC/C5B,EAA2B4B,EAAa,uBAAuB,GAC/D1B,EAAuB0B,EAAa,mBAAmB,GACvDxB,EAAiBmB,EAAa,IAAI;AAAA,EACtC,GAAG,CAAA,CAAE,GAECO,IAAiBX,EAAY,MAAM;AACrC,IAAAtB,EAAmB,oBAAI,KAAK,GAC5BG,EAA2B,IAAI,GAC/BE,EAAuB,IAAI,GAC3BE,EAAiB,IAAI;AAAA,EACzB,GAAG,CAAA,CAAE,GAEC2B,IAA6BnB,EAAS,aACtC;AAAA,IACI,KAAK,GAAGA,EAAS,GAAG;AAAA,IACpB,MAAM,GAAGA,EAAS,IAAI;AAAA,EAAA,IAE1BjB,IACE;AAAA,IACI,KAAK,GAAGiB,EAAS,GAAG;AAAA,IACpB,MAAM,GAAGA,EAAS,IAAI;AAAA,EAAA,IAE1BzB;AAER,SAAO2B;AAAA,IACH,gBAAAkB;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,WAAWvB;AAAA,QACX,aAAAqB;AAAA,QACA,yBAAAhC;AAAA,QACA,eAAAI;AAAA,QACA,oBAAAE;AAAA,QACA,sBAAAE;AAAA,QACA,YAAAI;AAAA,QACA,WAAWO;AAAA,QACX,wBAAwB,MAAMZ,EAAsB,CAAA4B,MAAiB,CAACA,CAAa;AAAA,QACnF,0BAA0B,MAAM1B,EAAwB,CAAA0B,MAAiB,CAACA,CAAa;AAAA,QACvF,YAAYJ;AAAA,QACZ,kBAAAjB;AAAA,MAAA;AAAA,IAAA;AAAA,IAEJG;AAAA,EAAA;AAER;"}
@@ -1,19 +1,19 @@
1
1
  import { jsx as i, jsxs as $, Fragment as q } from "react/jsx-runtime";
2
- import { useState as H, useRef as J, useEffect as we } from "react";
3
- import Re from "react-dom";
4
- import Ie from "../../hooks/useClickOutside.js";
5
- import Ne from "../../hooks/useKey.js";
6
- import Be from "../../hooks/usePopperDropdown.js";
7
- import Me from "../../utils/classNames.js";
8
- import { getOrCreatePortalRoot as Ve } from "../../utils/portalRoot.js";
9
- import Ee from "./DayPickerCalendar.js";
10
- import Fe from "./DayPickerDropdown.js";
11
- import je from "./DayPickerInput.js";
12
- import { isSingleDayPickerProps as L, isMultipleDayPickerProps as Q, isRangeDayPickerProps as Ge } from "./dayPickerTypes.js";
13
- import Te from "./useDayPickerInputState.js";
2
+ import { useState as H, useRef as J, useEffect as Re } from "react";
3
+ import Ie from "react-dom";
4
+ import Ne from "../../hooks/useClickOutside.js";
5
+ import Be from "../../hooks/useKey.js";
6
+ import Me from "../../hooks/usePopperDropdown.js";
7
+ import Ve from "../../utils/classNames.js";
8
+ import { getOrCreatePortalRoot as Ee } from "../../utils/portalRoot.js";
9
+ import Fe from "./DayPickerCalendar.js";
10
+ import je from "./DayPickerDropdown.js";
11
+ import Ge from "./DayPickerInput.js";
12
+ import { isSingleDayPickerProps as L, isMultipleDayPickerProps as Q, isRangeDayPickerProps as Te } from "./dayPickerTypes.js";
13
+ import xe from "./useDayPickerInputState.js";
14
14
  import "date-fns";
15
15
  import "date-fns/locale";
16
- const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "closeOnSelect"), w = (e, o) => typeof e == "function" ? e(o) : e ?? null, tt = (e) => {
16
+ const Ae = (e) => Object.hasOwn(e, "value"), Ke = (e) => Object.hasOwn(e, "closeOnSelect"), w = (e, o) => typeof e == "function" ? e(o) : e ?? null, nt = (e) => {
17
17
  const {
18
18
  id: o,
19
19
  name: l,
@@ -24,7 +24,7 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
24
24
  dateFormat: U,
25
25
  onBlur: X,
26
26
  inputProps: c,
27
- errorMessage: P,
27
+ errorMessage: S,
28
28
  warningMessage: k,
29
29
  messageWhiteSpace: M = "normal",
30
30
  inputClassName: Y,
@@ -38,21 +38,22 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
38
38
  isClearable: re = !1,
39
39
  closeOnOutsideClick: V = !0,
40
40
  selectionBehavior: I = "immediate"
41
- } = e, E = xe(e), N = L(e), oe = Ae(e) ? e.closeOnSelect !== !1 : I !== "deferred", [ae, ie] = H(e.defaultValue), s = E ? e.value : ae, [y, d] = H(s), {
41
+ } = e, E = Ae(e), N = L(e), oe = Ke(e) ? e.closeOnSelect !== !1 : I !== "deferred", [ae, ie] = H(e.defaultValue), s = E ? e.value : ae, [y, d] = H(s), {
42
42
  isOpen: a,
43
43
  open: D,
44
44
  close: B,
45
+ update: le,
45
46
  referenceRef: O,
46
- popperElementRef: le,
47
- popperStyles: ce,
48
- popperAttributes: se
49
- } = Be({ placement: ne ? "bottom-end" : "bottom-start" }), C = J(null), F = J(null);
50
- we(() => {
47
+ popperElementRef: ce,
48
+ popperStyles: se,
49
+ popperAttributes: de
50
+ } = Me({ placement: ne ? "bottom-end" : "bottom-start" }), C = J(null), F = J(null);
51
+ Re(() => {
51
52
  d(s);
52
53
  }, [s]);
53
- const de = (t) => {
54
- F.current = t, le(t);
55
- }, ue = (t, n) => {
54
+ const ue = (t) => {
55
+ F.current = t, ce(t);
56
+ }, fe = (t, n) => {
56
57
  if (N) {
57
58
  e.onChange?.(t, n);
58
59
  return;
@@ -61,16 +62,16 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
61
62
  e.onChange?.(t, n);
62
63
  return;
63
64
  }
64
- Ge(e) && e.onChange?.(t, n);
65
+ Te(e) && e.onChange?.(t, n);
65
66
  }, b = (t, n = {}) => {
66
- E || ie(t), d(t), ue(t, n);
67
- }, fe = () => {
67
+ E || ie(t), d(t), fe(t, n);
68
+ }, ge = () => {
68
69
  b(void 0, {});
69
70
  }, u = () => {
70
71
  B(), d(s);
71
72
  }, j = () => {
72
73
  b(y, {}), B();
73
- }, ge = Ie(
74
+ }, me = Ne(
74
75
  (t) => {
75
76
  if (!V)
76
77
  return;
@@ -79,28 +80,28 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
79
80
  u();
80
81
  return;
81
82
  }
82
- const f = O.current?.contains(n), S = C.current?.contains(n);
83
- f || S || u();
83
+ const f = O.current?.contains(n), P = C.current?.contains(n);
84
+ f || P || u();
84
85
  },
85
86
  void 0,
86
87
  a
87
88
  );
88
- Ne("Escape", (t) => {
89
+ Be("Escape", (t) => {
89
90
  const n = t.target;
90
91
  if (!n || !a)
91
92
  return;
92
- const f = C.current && C.current === n, S = !!O.current?.contains(n);
93
- (f || S) && u();
93
+ const f = C.current && C.current === n, P = !!O.current?.contains(n);
94
+ (f || P) && u();
94
95
  });
95
96
  const {
96
97
  displayValue: G,
97
- handleInputBlur: me,
98
- handleInputChange: he,
98
+ handleInputBlur: he,
99
+ handleInputChange: pe,
99
100
  handleClearInput: T,
100
- handleInputFocus: pe,
101
- handleInputKeyDown: Ce,
102
- inputMaskProps: be
103
- } = Te({
101
+ handleInputFocus: Ce,
102
+ handleInputKeyDown: be,
103
+ inputMaskProps: Pe
104
+ } = xe({
104
105
  props: e,
105
106
  locale: m,
106
107
  dateFormat: U,
@@ -114,7 +115,7 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
114
115
  draftValue: y,
115
116
  setDraftValue: d,
116
117
  commitValue: b,
117
- clearValue: fe,
118
+ clearValue: ge,
118
119
  openDropdown: D,
119
120
  closeDropdown: u,
120
121
  applyDraftValue: j,
@@ -127,7 +128,7 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
127
128
  return;
128
129
  }
129
130
  D();
130
- }, r = Ke({
131
+ }, r = We({
131
132
  props: e,
132
133
  value: s,
133
134
  draftValue: y,
@@ -143,40 +144,41 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
143
144
  isOpen: a,
144
145
  open: D,
145
146
  toggle: Se
146
- }) : null, Pe = (t, n) => {
147
+ }) : null, ke = (t, n) => {
147
148
  if (n.disabled || n.hidden)
148
149
  return;
149
150
  const f = I === "immediate";
150
151
  f ? b(t, n) : d(t);
151
- const S = g !== "range" || !!t?.from && !!t?.to;
152
- oe && S && (f || b(t, n), B());
153
- }, K = !!(P || k), ke = {
152
+ const P = g !== "range" || !!t?.from && !!t?.to;
153
+ oe && P && (f || b(t, n), B());
154
+ }, K = !!(S || k), ye = {
154
155
  ...c,
155
156
  name: l || c?.name,
156
157
  autoComplete: c?.autoComplete || "off",
157
158
  placeholder: h || c?.placeholder
158
- }, ye = r.leftSidebar ? w(r.leftSidebar, r.renderProps) : null, De = r.rightSidebar ? w(r.rightSidebar, r.renderProps) : null, Oe = r.footer ? w(r.footer, r.renderProps) : null, W = R ? Ve() : null, z = /* @__PURE__ */ i(
159
- Fe,
159
+ }, De = r.leftSidebar ? w(r.leftSidebar, r.renderProps) : null, Oe = r.rightSidebar ? w(r.rightSidebar, r.renderProps) : null, we = r.footer ? w(r.footer, r.renderProps) : null, W = R ? Ee() : null, z = /* @__PURE__ */ i(
160
+ je,
160
161
  {
161
- assignPopperElement: de,
162
- popperStyles: ce,
163
- popperAttributes: se,
162
+ assignPopperElement: ue,
163
+ popperStyles: se,
164
+ popperAttributes: de,
164
165
  enableStackedCalendars: (e.numberOfMonths ?? 1) > 1,
165
166
  dropdownClassName: _,
166
- outsideRef: ge,
167
- leftSidebar: ye,
168
- rightSidebar: De,
169
- footer: Oe,
167
+ outsideRef: me,
168
+ updatePopperPosition: le,
169
+ leftSidebar: De,
170
+ rightSidebar: Oe,
171
+ footer: we,
170
172
  leftSidebarClassName: v,
171
173
  rightSidebarClassName: ee,
172
174
  footerClassName: te,
173
175
  children: /* @__PURE__ */ i(
174
- Ee,
176
+ Fe,
175
177
  {
176
178
  ...e,
177
179
  size: "sm",
178
180
  value: y,
179
- onChange: Pe,
181
+ onChange: ke,
180
182
  className: "margin-15"
181
183
  }
182
184
  )
@@ -186,18 +188,18 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
186
188
  /* @__PURE__ */ i(
187
189
  "div",
188
190
  {
189
- className: Me(
191
+ className: Ve(
190
192
  "form-group",
191
193
  K && "has-feedback",
192
- P && "has-error",
194
+ S && "has-error",
193
195
  k && "has-warning",
194
196
  Z
195
197
  ),
196
198
  children: A ? /* @__PURE__ */ $(q, { children: [
197
199
  /* @__PURE__ */ i("div", { ref: O, className: "display-inline-block", children: A }),
198
- K ? /* @__PURE__ */ i("span", { className: `help-block white-space-${M}`, children: /* @__PURE__ */ i("span", { children: P || k }) }) : null
200
+ K ? /* @__PURE__ */ i("span", { className: `help-block white-space-${M}`, children: /* @__PURE__ */ i("span", { children: S || k }) }) : null
199
201
  ] }) : /* @__PURE__ */ i(
200
- je,
202
+ Ge,
201
203
  {
202
204
  id: o,
203
205
  triggerRef: O,
@@ -206,29 +208,29 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
206
208
  iconName: p,
207
209
  isSingleMode: N,
208
210
  isClearable: re,
209
- inputMaskProps: be,
210
- mergedInputProps: ke,
211
+ inputMaskProps: Pe,
212
+ mergedInputProps: ye,
211
213
  inputClassName: Y,
212
- errorMessage: P,
214
+ errorMessage: S,
213
215
  warningMessage: k,
214
216
  messageWhiteSpace: M,
215
- onChange: he,
217
+ onChange: pe,
216
218
  onAddonClick: x,
217
219
  onClick: (t) => {
218
220
  c?.onClick?.(t), x();
219
221
  },
220
- onFocus: pe,
221
- onBlur: me,
222
- onKeyDown: Ce,
222
+ onFocus: Ce,
223
+ onBlur: he,
224
+ onKeyDown: be,
223
225
  onClear: T
224
226
  }
225
227
  )
226
228
  }
227
229
  ),
228
- a && R && W && Re.createPortal(z, W),
230
+ a && R && W && Ie.createPortal(z, W),
229
231
  a && !R && z
230
232
  ] });
231
- }, Ke = ({
233
+ }, We = ({
232
234
  props: e,
233
235
  value: o,
234
236
  draftValue: l,
@@ -283,7 +285,7 @@ const xe = (e) => Object.hasOwn(e, "value"), Ae = (e) => Object.hasOwn(e, "close
283
285
  }
284
286
  };
285
287
  export {
286
- Ee as DayPickerCalendar,
287
- tt as default
288
+ Fe as DayPickerCalendar,
289
+ nt as default
288
290
  };
289
291
  //# sourceMappingURL=DayPicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DayPicker.js","sources":["../../../src/components/datepicker/DayPicker.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport useClickOutside from '../../hooks/useClickOutside';\nimport useKey from '../../hooks/useKey';\nimport usePopperDropdown from '../../hooks/usePopperDropdown';\nimport classNames from '../../utils/classNames';\nimport { getOrCreatePortalRoot } from '../../utils/portalRoot';\n\nimport DayPickerCalendar from './DayPickerCalendar';\nimport DayPickerDropdown from './DayPickerDropdown';\nimport DayPickerInput from './DayPickerInput';\nimport {\n isMultipleDayPickerProps,\n isRangeDayPickerProps,\n isSingleDayPickerProps,\n type DateRange,\n type DayPickerProps,\n type DayPickerSelection,\n type Modifiers,\n} from './dayPickerTypes';\nimport useDayPickerInputState from './useDayPickerInputState';\nexport { supportedDayPickerLocales } from './dayPickerUtils';\n\nexport type {\n DateRange,\n DayPickerCalendarProps,\n DayPickerProps,\n DayPickerSlotRenderProps,\n DayPickerTriggerRenderProps,\n Modifiers,\n} from './dayPickerTypes';\nexport { default as DayPickerCalendar } from './DayPickerCalendar';\n\nconst hasValueProp = (props: DayPickerProps) => Object.hasOwn(props, 'value');\nconst hasCloseOnSelectProp = (props: DayPickerProps) => Object.hasOwn(props, 'closeOnSelect');\n\nconst renderSlot = (slot: unknown, slotProps: unknown) => {\n if (typeof slot === 'function') {\n return (slot as (props: unknown) => ReactNode)(slotProps);\n }\n\n return (slot as ReactNode) ?? null;\n};\n\nconst DayPicker = (props: DayPickerProps) => {\n const {\n id,\n name,\n mode = 'single',\n locale = 'en-GB',\n placeholder,\n iconName = 'rioglyph-calendar',\n dateFormat,\n onBlur,\n inputProps,\n errorMessage,\n warningMessage,\n messageWhiteSpace = 'normal',\n inputClassName,\n className,\n dropdownClassName,\n leftSidebarClassName,\n rightSidebarClassName,\n footerClassName,\n usePortal = false,\n alignRight,\n isClearable = false,\n closeOnOutsideClick = true,\n selectionBehavior = 'immediate',\n } = props;\n\n const isControlled = hasValueProp(props);\n const isSingleMode = isSingleDayPickerProps(props);\n const closeOnSelect = hasCloseOnSelectProp(props)\n ? props.closeOnSelect !== false\n : selectionBehavior !== 'deferred';\n const [internalValue, setInternalValue] = useState<DayPickerSelection>(props.defaultValue);\n const committedValue = (isControlled ? props.value : internalValue) as DayPickerSelection;\n const [draftValue, setDraftValue] = useState<DayPickerSelection>(committedValue);\n\n const {\n isOpen: isDropdownOpen,\n open: openPopper,\n close: closePopper,\n referenceRef: popperRef,\n popperElementRef: setPopperElement,\n popperStyles,\n popperAttributes,\n } = usePopperDropdown({ placement: alignRight ? 'bottom-end' : 'bottom-start' });\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const popperElementRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n setDraftValue(committedValue);\n }, [committedValue]);\n\n const assignPopperElement = (element: HTMLElement | null) => {\n popperElementRef.current = element;\n setPopperElement(element);\n };\n\n const notifyChange = (value: DayPickerSelection, modifiers: Modifiers) => {\n if (isSingleMode) {\n props.onChange?.(value as Date | undefined, modifiers);\n return;\n }\n\n if (isMultipleDayPickerProps(props)) {\n props.onChange?.(value as Date[] | undefined, modifiers);\n return;\n }\n\n if (isRangeDayPickerProps(props)) {\n props.onChange?.(value as DateRange | undefined, modifiers);\n }\n };\n\n const commitValue = (value: DayPickerSelection, modifiers: Modifiers = {}) => {\n if (!isControlled) {\n setInternalValue(value);\n }\n\n setDraftValue(value);\n notifyChange(value, modifiers);\n };\n\n const clearValue = () => {\n commitValue(undefined, {});\n };\n\n const closeDropdown = () => {\n closePopper();\n setDraftValue(committedValue);\n };\n\n const applyDraftValue = () => {\n commitValue(draftValue, {});\n closePopper();\n };\n\n const outsideRef = useClickOutside<HTMLDivElement>(\n event => {\n if (!closeOnOutsideClick) {\n return;\n }\n\n const target = event.target as Node | null;\n if (!target) {\n closeDropdown();\n return;\n }\n\n const clickedWithinTrigger = popperRef.current?.contains(target);\n const clickedWithinInput = inputRef.current?.contains(target);\n\n if (clickedWithinTrigger || clickedWithinInput) {\n return;\n }\n\n closeDropdown();\n },\n undefined,\n isDropdownOpen\n );\n\n useKey('Escape', event => {\n const target = event.target as Node | null;\n if (!target || !isDropdownOpen) {\n return;\n }\n\n const isInputTarget = inputRef.current && inputRef.current === target;\n const isTriggerTarget = !!popperRef.current?.contains(target);\n\n if (isInputTarget || isTriggerTarget) {\n closeDropdown();\n }\n });\n\n const {\n displayValue,\n handleInputBlur,\n handleInputChange,\n handleClearInput,\n handleInputFocus,\n handleInputKeyDown,\n inputMaskProps,\n } = useDayPickerInputState({\n props,\n locale,\n dateFormat,\n inputProps,\n onBlur,\n isDropdownOpen,\n isSingleMode,\n selectionBehavior,\n closeOnOutsideClick,\n committedValue,\n draftValue,\n setDraftValue,\n commitValue,\n clearValue,\n openDropdown: openPopper,\n closeDropdown,\n applyDraftValue,\n popperElementRef,\n });\n\n const handleInputClick = () => {\n openPopper();\n inputRef.current?.focus();\n };\n\n const toggleDropdown = () => {\n if (isDropdownOpen) {\n closeDropdown();\n return;\n }\n\n openPopper();\n };\n\n const slotProps = createSlotProps({\n props,\n value: committedValue,\n draftValue,\n setDraftValue,\n apply: applyDraftValue,\n clear: handleClearInput,\n close: closeDropdown,\n });\n\n const triggerContent = slotProps.trigger\n ? renderSlot(slotProps.trigger, {\n ...slotProps.renderProps,\n id,\n name,\n displayValue,\n isOpen: isDropdownOpen,\n open: openPopper,\n toggle: toggleDropdown,\n })\n : null;\n\n const handleCalendarChange = (value: DayPickerSelection, modifiers: Modifiers) => {\n if (modifiers.disabled || modifiers.hidden) {\n return;\n }\n\n const shouldApplyImmediately = selectionBehavior === 'immediate';\n\n if (shouldApplyImmediately) {\n commitValue(value, modifiers);\n } else {\n setDraftValue(value);\n }\n\n const shouldCloseRange =\n mode !== 'range' || (!!(value as DateRange | undefined)?.from && !!(value as DateRange | undefined)?.to);\n\n if (closeOnSelect && shouldCloseRange) {\n if (!shouldApplyImmediately) {\n commitValue(value, modifiers);\n }\n closePopper();\n }\n };\n\n const hasFeedback = !!(errorMessage || warningMessage);\n\n const mergedInputProps = {\n ...inputProps,\n name: name || inputProps?.name,\n autoComplete: inputProps?.autoComplete || 'off',\n placeholder: placeholder || inputProps?.placeholder,\n };\n\n const leftSidebarContent = slotProps.leftSidebar ? renderSlot(slotProps.leftSidebar, slotProps.renderProps) : null;\n\n const rightSidebarContent = slotProps.rightSidebar\n ? renderSlot(slotProps.rightSidebar, slotProps.renderProps)\n : null;\n\n const footerContent = slotProps.footer ? renderSlot(slotProps.footer, slotProps.renderProps) : null;\n\n const dropdownRoot = usePortal ? getOrCreatePortalRoot() : null;\n\n const dropdownContent = (\n <DayPickerDropdown\n assignPopperElement={assignPopperElement}\n popperStyles={popperStyles}\n popperAttributes={popperAttributes}\n enableStackedCalendars={(props.numberOfMonths ?? 1) > 1}\n dropdownClassName={dropdownClassName}\n outsideRef={outsideRef}\n leftSidebar={leftSidebarContent}\n rightSidebar={rightSidebarContent}\n footer={footerContent}\n leftSidebarClassName={leftSidebarClassName}\n rightSidebarClassName={rightSidebarClassName}\n footerClassName={footerClassName}\n >\n <DayPickerCalendar\n {...props}\n size='sm'\n value={draftValue as never}\n onChange={handleCalendarChange as never}\n className='margin-15'\n />\n </DayPickerDropdown>\n );\n\n return (\n <>\n <div\n className={classNames(\n 'form-group',\n hasFeedback && 'has-feedback',\n errorMessage && 'has-error',\n warningMessage && 'has-warning',\n className\n )}\n >\n {triggerContent ? (\n <>\n <div ref={popperRef} className='display-inline-block'>\n {triggerContent}\n </div>\n {hasFeedback ? (\n <span className={`help-block white-space-${messageWhiteSpace}`}>\n <span>{errorMessage || warningMessage}</span>\n </span>\n ) : null}\n </>\n ) : (\n <DayPickerInput\n id={id}\n triggerRef={popperRef}\n inputRef={inputRef}\n displayValue={displayValue}\n iconName={iconName}\n isSingleMode={isSingleMode}\n isClearable={isClearable}\n inputMaskProps={inputMaskProps}\n mergedInputProps={mergedInputProps}\n inputClassName={inputClassName}\n errorMessage={errorMessage}\n warningMessage={warningMessage}\n messageWhiteSpace={messageWhiteSpace}\n onChange={handleInputChange}\n onAddonClick={handleInputClick}\n onClick={event => {\n inputProps?.onClick?.(event);\n handleInputClick();\n }}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleInputKeyDown}\n onClear={handleClearInput}\n />\n )}\n </div>\n {isDropdownOpen && usePortal && dropdownRoot && ReactDOM.createPortal(dropdownContent, dropdownRoot)}\n {isDropdownOpen && !usePortal && dropdownContent}\n </>\n );\n};\n\nconst createSlotProps = ({\n props,\n value,\n draftValue,\n setDraftValue,\n apply,\n clear,\n close,\n}: {\n props: DayPickerProps;\n value: DayPickerSelection;\n draftValue: DayPickerSelection;\n setDraftValue: (value: DayPickerSelection) => void;\n apply: () => void;\n clear: () => void;\n close: () => void;\n}) => {\n if (isSingleDayPickerProps(props)) {\n return {\n trigger: props.trigger,\n leftSidebar: props.leftSidebar,\n rightSidebar: props.rightSidebar,\n footer: props.footer,\n renderProps: {\n value: value as Date | undefined,\n draftValue: draftValue as Date | undefined,\n setDraftValue: setDraftValue as (value: Date | undefined) => void,\n apply,\n clear,\n close,\n mode: props.mode || 'single',\n locale: props.locale || 'en-GB',\n },\n };\n }\n\n if (isMultipleDayPickerProps(props)) {\n return {\n trigger: props.trigger,\n leftSidebar: props.leftSidebar,\n rightSidebar: props.rightSidebar,\n footer: props.footer,\n renderProps: {\n value: value as Date[] | undefined,\n draftValue: draftValue as Date[] | undefined,\n setDraftValue: setDraftValue as (value: Date[] | undefined) => void,\n apply,\n clear,\n close,\n mode: props.mode,\n locale: props.locale || 'en-GB',\n },\n };\n }\n\n return {\n trigger: props.trigger,\n leftSidebar: props.leftSidebar,\n rightSidebar: props.rightSidebar,\n footer: props.footer,\n renderProps: {\n value: value as DateRange | undefined,\n draftValue: draftValue as DateRange | undefined,\n setDraftValue: setDraftValue as (value: DateRange | undefined) => void,\n apply,\n clear,\n close,\n mode: props.mode,\n locale: props.locale || 'en-GB',\n },\n };\n};\n\nexport default DayPicker;\n"],"names":["hasValueProp","props","hasCloseOnSelectProp","renderSlot","slot","slotProps","DayPicker","id","name","mode","locale","placeholder","iconName","dateFormat","onBlur","inputProps","errorMessage","warningMessage","messageWhiteSpace","inputClassName","className","dropdownClassName","leftSidebarClassName","rightSidebarClassName","footerClassName","usePortal","alignRight","isClearable","closeOnOutsideClick","selectionBehavior","isControlled","isSingleMode","isSingleDayPickerProps","closeOnSelect","internalValue","setInternalValue","useState","committedValue","draftValue","setDraftValue","isDropdownOpen","openPopper","closePopper","popperRef","setPopperElement","popperStyles","popperAttributes","usePopperDropdown","inputRef","useRef","popperElementRef","useEffect","assignPopperElement","element","notifyChange","value","modifiers","isMultipleDayPickerProps","isRangeDayPickerProps","commitValue","clearValue","closeDropdown","applyDraftValue","outsideRef","useClickOutside","event","target","clickedWithinTrigger","clickedWithinInput","useKey","isInputTarget","isTriggerTarget","displayValue","handleInputBlur","handleInputChange","handleClearInput","handleInputFocus","handleInputKeyDown","inputMaskProps","useDayPickerInputState","handleInputClick","toggleDropdown","createSlotProps","triggerContent","handleCalendarChange","shouldApplyImmediately","shouldCloseRange","hasFeedback","mergedInputProps","leftSidebarContent","rightSidebarContent","footerContent","dropdownRoot","getOrCreatePortalRoot","dropdownContent","jsx","DayPickerDropdown","DayPickerCalendar","jsxs","Fragment","classNames","DayPickerInput","ReactDOM","apply","clear","close"],"mappings":"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"}
1
+ {"version":3,"file":"DayPicker.js","sources":["../../../src/components/datepicker/DayPicker.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport useClickOutside from '../../hooks/useClickOutside';\nimport useKey from '../../hooks/useKey';\nimport usePopperDropdown from '../../hooks/usePopperDropdown';\nimport classNames from '../../utils/classNames';\nimport { getOrCreatePortalRoot } from '../../utils/portalRoot';\n\nimport DayPickerCalendar from './DayPickerCalendar';\nimport DayPickerDropdown from './DayPickerDropdown';\nimport DayPickerInput from './DayPickerInput';\nimport {\n isMultipleDayPickerProps,\n isRangeDayPickerProps,\n isSingleDayPickerProps,\n type DateRange,\n type DayPickerProps,\n type DayPickerSelection,\n type Modifiers,\n} from './dayPickerTypes';\nimport useDayPickerInputState from './useDayPickerInputState';\nexport { supportedDayPickerLocales } from './dayPickerUtils';\n\nexport type {\n DateRange,\n DayPickerCalendarProps,\n DayPickerProps,\n DayPickerSlotRenderProps,\n DayPickerTriggerRenderProps,\n Modifiers,\n} from './dayPickerTypes';\nexport { default as DayPickerCalendar } from './DayPickerCalendar';\n\nconst hasValueProp = (props: DayPickerProps) => Object.hasOwn(props, 'value');\nconst hasCloseOnSelectProp = (props: DayPickerProps) => Object.hasOwn(props, 'closeOnSelect');\n\nconst renderSlot = (slot: unknown, slotProps: unknown) => {\n if (typeof slot === 'function') {\n return (slot as (props: unknown) => ReactNode)(slotProps);\n }\n\n return (slot as ReactNode) ?? null;\n};\n\nconst DayPicker = (props: DayPickerProps) => {\n const {\n id,\n name,\n mode = 'single',\n locale = 'en-GB',\n placeholder,\n iconName = 'rioglyph-calendar',\n dateFormat,\n onBlur,\n inputProps,\n errorMessage,\n warningMessage,\n messageWhiteSpace = 'normal',\n inputClassName,\n className,\n dropdownClassName,\n leftSidebarClassName,\n rightSidebarClassName,\n footerClassName,\n usePortal = false,\n alignRight,\n isClearable = false,\n closeOnOutsideClick = true,\n selectionBehavior = 'immediate',\n } = props;\n\n const isControlled = hasValueProp(props);\n const isSingleMode = isSingleDayPickerProps(props);\n const closeOnSelect = hasCloseOnSelectProp(props)\n ? props.closeOnSelect !== false\n : selectionBehavior !== 'deferred';\n const [internalValue, setInternalValue] = useState<DayPickerSelection>(props.defaultValue);\n const committedValue = (isControlled ? props.value : internalValue) as DayPickerSelection;\n const [draftValue, setDraftValue] = useState<DayPickerSelection>(committedValue);\n\n const {\n isOpen: isDropdownOpen,\n open: openPopper,\n close: closePopper,\n update: updatePopperPosition,\n referenceRef: popperRef,\n popperElementRef: setPopperElement,\n popperStyles,\n popperAttributes,\n } = usePopperDropdown({ placement: alignRight ? 'bottom-end' : 'bottom-start' });\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const popperElementRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n setDraftValue(committedValue);\n }, [committedValue]);\n\n const assignPopperElement = (element: HTMLElement | null) => {\n popperElementRef.current = element;\n setPopperElement(element);\n };\n\n const notifyChange = (value: DayPickerSelection, modifiers: Modifiers) => {\n if (isSingleMode) {\n props.onChange?.(value as Date | undefined, modifiers);\n return;\n }\n\n if (isMultipleDayPickerProps(props)) {\n props.onChange?.(value as Date[] | undefined, modifiers);\n return;\n }\n\n if (isRangeDayPickerProps(props)) {\n props.onChange?.(value as DateRange | undefined, modifiers);\n }\n };\n\n const commitValue = (value: DayPickerSelection, modifiers: Modifiers = {}) => {\n if (!isControlled) {\n setInternalValue(value);\n }\n\n setDraftValue(value);\n notifyChange(value, modifiers);\n };\n\n const clearValue = () => {\n commitValue(undefined, {});\n };\n\n const closeDropdown = () => {\n closePopper();\n setDraftValue(committedValue);\n };\n\n const applyDraftValue = () => {\n commitValue(draftValue, {});\n closePopper();\n };\n\n const outsideRef = useClickOutside<HTMLDivElement>(\n event => {\n if (!closeOnOutsideClick) {\n return;\n }\n\n const target = event.target as Node | null;\n if (!target) {\n closeDropdown();\n return;\n }\n\n const clickedWithinTrigger = popperRef.current?.contains(target);\n const clickedWithinInput = inputRef.current?.contains(target);\n\n if (clickedWithinTrigger || clickedWithinInput) {\n return;\n }\n\n closeDropdown();\n },\n undefined,\n isDropdownOpen\n );\n\n useKey('Escape', event => {\n const target = event.target as Node | null;\n if (!target || !isDropdownOpen) {\n return;\n }\n\n const isInputTarget = inputRef.current && inputRef.current === target;\n const isTriggerTarget = !!popperRef.current?.contains(target);\n\n if (isInputTarget || isTriggerTarget) {\n closeDropdown();\n }\n });\n\n const {\n displayValue,\n handleInputBlur,\n handleInputChange,\n handleClearInput,\n handleInputFocus,\n handleInputKeyDown,\n inputMaskProps,\n } = useDayPickerInputState({\n props,\n locale,\n dateFormat,\n inputProps,\n onBlur,\n isDropdownOpen,\n isSingleMode,\n selectionBehavior,\n closeOnOutsideClick,\n committedValue,\n draftValue,\n setDraftValue,\n commitValue,\n clearValue,\n openDropdown: openPopper,\n closeDropdown,\n applyDraftValue,\n popperElementRef,\n });\n\n const handleInputClick = () => {\n openPopper();\n inputRef.current?.focus();\n };\n\n const toggleDropdown = () => {\n if (isDropdownOpen) {\n closeDropdown();\n return;\n }\n\n openPopper();\n };\n\n const slotProps = createSlotProps({\n props,\n value: committedValue,\n draftValue,\n setDraftValue,\n apply: applyDraftValue,\n clear: handleClearInput,\n close: closeDropdown,\n });\n\n const triggerContent = slotProps.trigger\n ? renderSlot(slotProps.trigger, {\n ...slotProps.renderProps,\n id,\n name,\n displayValue,\n isOpen: isDropdownOpen,\n open: openPopper,\n toggle: toggleDropdown,\n })\n : null;\n\n const handleCalendarChange = (value: DayPickerSelection, modifiers: Modifiers) => {\n if (modifiers.disabled || modifiers.hidden) {\n return;\n }\n\n const shouldApplyImmediately = selectionBehavior === 'immediate';\n\n if (shouldApplyImmediately) {\n commitValue(value, modifiers);\n } else {\n setDraftValue(value);\n }\n\n const shouldCloseRange =\n mode !== 'range' || (!!(value as DateRange | undefined)?.from && !!(value as DateRange | undefined)?.to);\n\n if (closeOnSelect && shouldCloseRange) {\n if (!shouldApplyImmediately) {\n commitValue(value, modifiers);\n }\n closePopper();\n }\n };\n\n const hasFeedback = !!(errorMessage || warningMessage);\n\n const mergedInputProps = {\n ...inputProps,\n name: name || inputProps?.name,\n autoComplete: inputProps?.autoComplete || 'off',\n placeholder: placeholder || inputProps?.placeholder,\n };\n\n const leftSidebarContent = slotProps.leftSidebar ? renderSlot(slotProps.leftSidebar, slotProps.renderProps) : null;\n\n const rightSidebarContent = slotProps.rightSidebar\n ? renderSlot(slotProps.rightSidebar, slotProps.renderProps)\n : null;\n\n const footerContent = slotProps.footer ? renderSlot(slotProps.footer, slotProps.renderProps) : null;\n\n const dropdownRoot = usePortal ? getOrCreatePortalRoot() : null;\n\n const dropdownContent = (\n <DayPickerDropdown\n assignPopperElement={assignPopperElement}\n popperStyles={popperStyles}\n popperAttributes={popperAttributes}\n enableStackedCalendars={(props.numberOfMonths ?? 1) > 1}\n dropdownClassName={dropdownClassName}\n outsideRef={outsideRef}\n updatePopperPosition={updatePopperPosition}\n leftSidebar={leftSidebarContent}\n rightSidebar={rightSidebarContent}\n footer={footerContent}\n leftSidebarClassName={leftSidebarClassName}\n rightSidebarClassName={rightSidebarClassName}\n footerClassName={footerClassName}\n >\n <DayPickerCalendar\n {...props}\n size='sm'\n value={draftValue as never}\n onChange={handleCalendarChange as never}\n className='margin-15'\n />\n </DayPickerDropdown>\n );\n\n return (\n <>\n <div\n className={classNames(\n 'form-group',\n hasFeedback && 'has-feedback',\n errorMessage && 'has-error',\n warningMessage && 'has-warning',\n className\n )}\n >\n {triggerContent ? (\n <>\n <div ref={popperRef} className='display-inline-block'>\n {triggerContent}\n </div>\n {hasFeedback ? (\n <span className={`help-block white-space-${messageWhiteSpace}`}>\n <span>{errorMessage || warningMessage}</span>\n </span>\n ) : null}\n </>\n ) : (\n <DayPickerInput\n id={id}\n triggerRef={popperRef}\n inputRef={inputRef}\n displayValue={displayValue}\n iconName={iconName}\n isSingleMode={isSingleMode}\n isClearable={isClearable}\n inputMaskProps={inputMaskProps}\n mergedInputProps={mergedInputProps}\n inputClassName={inputClassName}\n errorMessage={errorMessage}\n warningMessage={warningMessage}\n messageWhiteSpace={messageWhiteSpace}\n onChange={handleInputChange}\n onAddonClick={handleInputClick}\n onClick={event => {\n inputProps?.onClick?.(event);\n handleInputClick();\n }}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleInputKeyDown}\n onClear={handleClearInput}\n />\n )}\n </div>\n {isDropdownOpen && usePortal && dropdownRoot && ReactDOM.createPortal(dropdownContent, dropdownRoot)}\n {isDropdownOpen && !usePortal && dropdownContent}\n </>\n );\n};\n\nconst createSlotProps = ({\n props,\n value,\n draftValue,\n setDraftValue,\n apply,\n clear,\n close,\n}: {\n props: DayPickerProps;\n value: DayPickerSelection;\n draftValue: DayPickerSelection;\n setDraftValue: (value: DayPickerSelection) => void;\n apply: () => void;\n clear: () => void;\n close: () => void;\n}) => {\n if (isSingleDayPickerProps(props)) {\n return {\n trigger: props.trigger,\n leftSidebar: props.leftSidebar,\n rightSidebar: props.rightSidebar,\n footer: props.footer,\n renderProps: {\n value: value as Date | undefined,\n draftValue: draftValue as Date | undefined,\n setDraftValue: setDraftValue as (value: Date | undefined) => void,\n apply,\n clear,\n close,\n mode: props.mode || 'single',\n locale: props.locale || 'en-GB',\n },\n };\n }\n\n if (isMultipleDayPickerProps(props)) {\n return {\n trigger: props.trigger,\n leftSidebar: props.leftSidebar,\n rightSidebar: props.rightSidebar,\n footer: props.footer,\n renderProps: {\n value: value as Date[] | undefined,\n draftValue: draftValue as Date[] | undefined,\n setDraftValue: setDraftValue as (value: Date[] | undefined) => void,\n apply,\n clear,\n close,\n mode: props.mode,\n locale: props.locale || 'en-GB',\n },\n };\n }\n\n return {\n trigger: props.trigger,\n leftSidebar: props.leftSidebar,\n rightSidebar: props.rightSidebar,\n footer: props.footer,\n renderProps: {\n value: value as DateRange | undefined,\n draftValue: draftValue as DateRange | undefined,\n setDraftValue: setDraftValue as (value: DateRange | undefined) => void,\n apply,\n clear,\n close,\n mode: props.mode,\n locale: props.locale || 'en-GB',\n },\n };\n};\n\nexport default DayPicker;\n"],"names":["hasValueProp","props","hasCloseOnSelectProp","renderSlot","slot","slotProps","DayPicker","id","name","mode","locale","placeholder","iconName","dateFormat","onBlur","inputProps","errorMessage","warningMessage","messageWhiteSpace","inputClassName","className","dropdownClassName","leftSidebarClassName","rightSidebarClassName","footerClassName","usePortal","alignRight","isClearable","closeOnOutsideClick","selectionBehavior","isControlled","isSingleMode","isSingleDayPickerProps","closeOnSelect","internalValue","setInternalValue","useState","committedValue","draftValue","setDraftValue","isDropdownOpen","openPopper","closePopper","updatePopperPosition","popperRef","setPopperElement","popperStyles","popperAttributes","usePopperDropdown","inputRef","useRef","popperElementRef","useEffect","assignPopperElement","element","notifyChange","value","modifiers","isMultipleDayPickerProps","isRangeDayPickerProps","commitValue","clearValue","closeDropdown","applyDraftValue","outsideRef","useClickOutside","event","target","clickedWithinTrigger","clickedWithinInput","useKey","isInputTarget","isTriggerTarget","displayValue","handleInputBlur","handleInputChange","handleClearInput","handleInputFocus","handleInputKeyDown","inputMaskProps","useDayPickerInputState","handleInputClick","toggleDropdown","createSlotProps","triggerContent","handleCalendarChange","shouldApplyImmediately","shouldCloseRange","hasFeedback","mergedInputProps","leftSidebarContent","rightSidebarContent","footerContent","dropdownRoot","getOrCreatePortalRoot","dropdownContent","jsx","DayPickerDropdown","DayPickerCalendar","jsxs","Fragment","classNames","DayPickerInput","ReactDOM","apply","clear","close"],"mappings":"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"}
@@ -6,6 +6,7 @@ type DayPickerDropdownProps = {
6
6
  enableStackedCalendars?: boolean;
7
7
  dropdownClassName?: string;
8
8
  outsideRef: MutableRefObject<HTMLDivElement | null>;
9
+ updatePopperPosition?: () => void;
9
10
  leftSidebar?: ReactNode;
10
11
  rightSidebar?: ReactNode;
11
12
  footer?: ReactNode;
@@ -1,67 +1,80 @@
1
- import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
- import o from "../../utils/classNames.js";
3
- import C from "./DayPickerDropdownFooter.js";
4
- import p from "./DayPickerDropdownSidebar.js";
5
- import P from "./useStackedDayPickerCalendars.js";
6
- const I = (f) => {
1
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
+ import { useEffect as C } from "react";
3
+ import s from "../../utils/classNames.js";
4
+ import v from "./DayPickerDropdownFooter.js";
5
+ import u from "./DayPickerDropdownSidebar.js";
6
+ import S from "./useStackedDayPickerCalendars.js";
7
+ const z = (b) => {
7
8
  const {
8
- assignPopperElement: u,
9
- popperStyles: b,
10
- popperAttributes: D,
11
- enableStackedCalendars: s = !1,
12
- dropdownClassName: h,
13
- outsideRef: x,
9
+ assignPopperElement: x,
10
+ popperStyles: w,
11
+ popperAttributes: h,
12
+ enableStackedCalendars: r = !1,
13
+ dropdownClassName: y,
14
+ outsideRef: D,
15
+ updatePopperPosition: l,
14
16
  leftSidebar: a,
15
- rightSidebar: r,
16
- footer: l,
17
- leftSidebarClassName: y,
18
- rightSidebarClassName: k,
19
- footerClassName: w,
20
- children: i
21
- } = f, { calendarsRef: N, stackCalendars: g } = P([i, a, r]), n = (d) => {
22
- const c = d.target;
23
- if (!c)
17
+ rightSidebar: t,
18
+ footer: d,
19
+ leftSidebarClassName: k,
20
+ rightSidebarClassName: N,
21
+ footerClassName: P,
22
+ children: c
23
+ } = b, { calendarsRef: g, stackCalendars: m } = S([c, a, t]);
24
+ C(() => {
25
+ if (!r || !l)
24
26
  return;
25
- const t = c.closest(
27
+ const o = window.requestAnimationFrame(() => {
28
+ l();
29
+ });
30
+ return () => window.cancelAnimationFrame(o);
31
+ }, [r, m, l]);
32
+ const p = (o) => {
33
+ const f = o.target;
34
+ if (!f)
35
+ return;
36
+ const i = f.closest(
26
37
  'input:not([type="button"]):not([type="submit"]):not([type="reset"]), select, textarea, [contenteditable="true"], [role="combobox"], [role="textbox"]'
27
38
  );
28
- t && !t.hasAttribute("disabled") && t.getAttribute("aria-disabled") !== "true" || d.preventDefault();
39
+ i && !i.hasAttribute("disabled") && i.getAttribute("aria-disabled") !== "true" || o.preventDefault();
29
40
  };
30
41
  return /* @__PURE__ */ e(
31
42
  "div",
32
43
  {
33
- ref: u,
34
- style: b,
35
- className: o(
44
+ ref: x,
45
+ style: w,
46
+ className: s(
36
47
  "DayPickerDropdown z-index-max bg-white shadow-default rounded margin-y-3 border",
37
- h
48
+ y
38
49
  ),
39
- ...D,
50
+ ...h,
40
51
  role: "dialog",
41
52
  "aria-label": "DayPicker calendar",
42
53
  children: /* @__PURE__ */ e(
43
54
  "div",
44
55
  {
45
- ref: x,
56
+ ref: D,
46
57
  className: "display-flex flex-column",
47
- onPointerDownCapture: n,
48
- onMouseDownCapture: n,
49
- children: /* @__PURE__ */ m("div", { className: o((a || r) && "display-flex flex-column-xs flex-row-sm"), children: [
50
- a && /* @__PURE__ */ e(p, { className: y, children: a }),
51
- /* @__PURE__ */ m("div", { children: [
52
- /* @__PURE__ */ e(
53
- "div",
54
- {
55
- ref: s ? N : null,
56
- className: o(
57
- "DayPickerDropdown-calendars",
58
- s && g && "stacked-calendars"
59
- ),
60
- children: i
61
- }
62
- ),
63
- r && /* @__PURE__ */ e(p, { side: "right", className: k, children: r }),
64
- l && /* @__PURE__ */ e(C, { className: w, children: l })
58
+ onPointerDownCapture: p,
59
+ onMouseDownCapture: p,
60
+ children: /* @__PURE__ */ n("div", { className: s(a && "display-flex flex-column-xs flex-row-sm"), children: [
61
+ a && /* @__PURE__ */ e(u, { className: k, children: a }),
62
+ /* @__PURE__ */ n("div", { children: [
63
+ /* @__PURE__ */ n("div", { className: s(t && "display-flex flex-column-xs flex-row-sm"), children: [
64
+ /* @__PURE__ */ e(
65
+ "div",
66
+ {
67
+ ref: r ? g : null,
68
+ className: s(
69
+ "DayPickerDropdown-calendars",
70
+ r && m && "stacked-calendars"
71
+ ),
72
+ children: c
73
+ }
74
+ ),
75
+ t && /* @__PURE__ */ e(u, { side: "right", className: N, children: t })
76
+ ] }),
77
+ d && /* @__PURE__ */ e(v, { className: P, children: d })
65
78
  ] })
66
79
  ] })
67
80
  }
@@ -70,6 +83,6 @@ const I = (f) => {
70
83
  );
71
84
  };
72
85
  export {
73
- I as default
86
+ z as default
74
87
  };
75
88
  //# sourceMappingURL=DayPickerDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DayPickerDropdown.js","sources":["../../../src/components/datepicker/DayPickerDropdown.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes, MouseEvent, MutableRefObject, PointerEvent, ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\n\nimport DayPickerDropdownFooter from './DayPickerDropdownFooter';\nimport DayPickerDropdownSidebar from './DayPickerDropdownSidebar';\nimport useStackedDayPickerCalendars from './useStackedDayPickerCalendars';\n\ntype DayPickerDropdownProps = {\n assignPopperElement: (element: HTMLDivElement | null) => void;\n popperStyles: CSSProperties;\n popperAttributes: HTMLAttributes<HTMLDivElement>;\n enableStackedCalendars?: boolean;\n dropdownClassName?: string;\n outsideRef: MutableRefObject<HTMLDivElement | null>;\n leftSidebar?: ReactNode;\n rightSidebar?: ReactNode;\n footer?: ReactNode;\n leftSidebarClassName?: string;\n rightSidebarClassName?: string;\n footerClassName?: string;\n children: ReactNode;\n};\n\nconst DayPickerDropdown = (props: DayPickerDropdownProps) => {\n const {\n assignPopperElement,\n popperStyles,\n popperAttributes,\n enableStackedCalendars = false,\n dropdownClassName,\n outsideRef,\n leftSidebar,\n rightSidebar,\n footer,\n leftSidebarClassName,\n rightSidebarClassName,\n footerClassName,\n children,\n } = props;\n\n const { calendarsRef, stackCalendars } = useStackedDayPickerCalendars([children, leftSidebar, rightSidebar]);\n\n const handlePointerDownCapture = (event: PointerEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n const focusableFieldElement = target.closest<HTMLElement>(\n 'input:not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]), select, textarea, [contenteditable=\"true\"], [role=\"combobox\"], [role=\"textbox\"]'\n );\n const clickedInteractiveElement =\n !!focusableFieldElement &&\n !focusableFieldElement.hasAttribute('disabled') &&\n focusableFieldElement.getAttribute('aria-disabled') !== 'true';\n\n if (!clickedInteractiveElement) {\n event.preventDefault();\n }\n };\n\n return (\n <div\n ref={assignPopperElement}\n style={popperStyles}\n className={classNames(\n 'DayPickerDropdown z-index-max bg-white shadow-default rounded margin-y-3 border',\n dropdownClassName\n )}\n {...popperAttributes}\n role='dialog'\n aria-label='DayPicker calendar'\n >\n <div\n ref={outsideRef}\n className='display-flex flex-column'\n onPointerDownCapture={handlePointerDownCapture}\n onMouseDownCapture={handlePointerDownCapture}\n >\n {/* flex-column on mobile */}\n <div className={classNames((leftSidebar || rightSidebar) && 'display-flex flex-column-xs flex-row-sm')}>\n {leftSidebar && (\n <DayPickerDropdownSidebar className={leftSidebarClassName}>\n {leftSidebar}\n </DayPickerDropdownSidebar>\n )}\n <div>\n <div\n ref={enableStackedCalendars ? calendarsRef : null}\n className={classNames(\n 'DayPickerDropdown-calendars',\n enableStackedCalendars && stackCalendars && 'stacked-calendars'\n )}\n >\n {children}\n </div>\n {rightSidebar && (\n <DayPickerDropdownSidebar side='right' className={rightSidebarClassName}>\n {rightSidebar}\n </DayPickerDropdownSidebar>\n )}\n {footer && (\n <DayPickerDropdownFooter className={footerClassName}>{footer}</DayPickerDropdownFooter>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default DayPickerDropdown;\n"],"names":["DayPickerDropdown","props","assignPopperElement","popperStyles","popperAttributes","enableStackedCalendars","dropdownClassName","outsideRef","leftSidebar","rightSidebar","footer","leftSidebarClassName","rightSidebarClassName","footerClassName","children","calendarsRef","stackCalendars","useStackedDayPickerCalendars","handlePointerDownCapture","event","target","focusableFieldElement","jsx","classNames","DayPickerDropdownSidebar","DayPickerDropdownFooter"],"mappings":";;;;;AAwBA,MAAMA,IAAoB,CAACC,MAAkC;AACzD,QAAM;AAAA,IACF,qBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,wBAAAC,IAAyB;AAAA,IACzB,mBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACAb,GAEE,EAAE,cAAAc,GAAc,gBAAAC,MAAmBC,EAA6B,CAACH,GAAUN,GAAaC,CAAY,CAAC,GAErGS,IAA2B,CAACC,MAAqE;AACnG,UAAMC,IAASD,EAAM;AACrB,QAAI,CAACC;AACD;AAGJ,UAAMC,IAAwBD,EAAO;AAAA,MACjC;AAAA,IAAA;AAOJ,IAJMC,KACF,CAACA,EAAsB,aAAa,UAAU,KAC9CA,EAAsB,aAAa,eAAe,MAAM,UAGxDF,EAAM,eAAA;AAAA,EAEd;AAEA,SACI,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAKpB;AAAA,MACL,OAAOC;AAAA,MACP,WAAWoB;AAAA,QACP;AAAA,QACAjB;AAAA,MAAA;AAAA,MAEH,GAAGF;AAAA,MACJ,MAAK;AAAA,MACL,cAAW;AAAA,MAEX,UAAA,gBAAAkB;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAKf;AAAA,UACL,WAAU;AAAA,UACV,sBAAsBW;AAAA,UACtB,oBAAoBA;AAAA,UAGpB,4BAAC,OAAA,EAAI,WAAWK,GAAYf,KAAeC,MAAiB,yCAAyC,GAChG,UAAA;AAAA,YAAAD,KACG,gBAAAc,EAACE,GAAA,EAAyB,WAAWb,GAChC,UAAAH,GACL;AAAA,8BAEH,OAAA,EACG,UAAA;AAAA,cAAA,gBAAAc;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,KAAKjB,IAAyBU,IAAe;AAAA,kBAC7C,WAAWQ;AAAA,oBACP;AAAA,oBACAlB,KAA0BW,KAAkB;AAAA,kBAAA;AAAA,kBAG/C,UAAAF;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEJL,KACG,gBAAAa,EAACE,GAAA,EAAyB,MAAK,SAAQ,WAAWZ,GAC7C,UAAAH,GACL;AAAA,cAEHC,KACG,gBAAAY,EAACG,GAAA,EAAwB,WAAWZ,GAAkB,UAAAH,EAAA,CAAO;AAAA,YAAA,EAAA,CAErE;AAAA,UAAA,EAAA,CACJ;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAGZ;"}
1
+ {"version":3,"file":"DayPickerDropdown.js","sources":["../../../src/components/datepicker/DayPickerDropdown.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport type { CSSProperties, HTMLAttributes, MouseEvent, MutableRefObject, PointerEvent, ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\n\nimport DayPickerDropdownFooter from './DayPickerDropdownFooter';\nimport DayPickerDropdownSidebar from './DayPickerDropdownSidebar';\nimport useStackedDayPickerCalendars from './useStackedDayPickerCalendars';\n\ntype DayPickerDropdownProps = {\n assignPopperElement: (element: HTMLDivElement | null) => void;\n popperStyles: CSSProperties;\n popperAttributes: HTMLAttributes<HTMLDivElement>;\n enableStackedCalendars?: boolean;\n dropdownClassName?: string;\n outsideRef: MutableRefObject<HTMLDivElement | null>;\n updatePopperPosition?: () => void;\n leftSidebar?: ReactNode;\n rightSidebar?: ReactNode;\n footer?: ReactNode;\n leftSidebarClassName?: string;\n rightSidebarClassName?: string;\n footerClassName?: string;\n children: ReactNode;\n};\n\nconst DayPickerDropdown = (props: DayPickerDropdownProps) => {\n const {\n assignPopperElement,\n popperStyles,\n popperAttributes,\n enableStackedCalendars = false,\n dropdownClassName,\n outsideRef,\n updatePopperPosition,\n leftSidebar,\n rightSidebar,\n footer,\n leftSidebarClassName,\n rightSidebarClassName,\n footerClassName,\n children,\n } = props;\n\n const { calendarsRef, stackCalendars } = useStackedDayPickerCalendars([children, leftSidebar, rightSidebar]);\n\n useEffect(() => {\n if (!enableStackedCalendars || !updatePopperPosition) {\n return;\n }\n\n const frameId = window.requestAnimationFrame(() => {\n updatePopperPosition();\n });\n\n return () => window.cancelAnimationFrame(frameId);\n }, [enableStackedCalendars, stackCalendars, updatePopperPosition]);\n\n const handlePointerDownCapture = (event: PointerEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n const focusableFieldElement = target.closest<HTMLElement>(\n 'input:not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]), select, textarea, [contenteditable=\"true\"], [role=\"combobox\"], [role=\"textbox\"]'\n );\n const clickedInteractiveElement =\n !!focusableFieldElement &&\n !focusableFieldElement.hasAttribute('disabled') &&\n focusableFieldElement.getAttribute('aria-disabled') !== 'true';\n\n if (!clickedInteractiveElement) {\n event.preventDefault();\n }\n };\n\n return (\n <div\n ref={assignPopperElement}\n style={popperStyles}\n className={classNames(\n 'DayPickerDropdown z-index-max bg-white shadow-default rounded margin-y-3 border',\n dropdownClassName\n )}\n {...popperAttributes}\n role='dialog'\n aria-label='DayPicker calendar'\n >\n <div\n ref={outsideRef}\n className='display-flex flex-column'\n onPointerDownCapture={handlePointerDownCapture}\n onMouseDownCapture={handlePointerDownCapture}\n >\n {/* flex-column on mobile */}\n <div className={classNames(leftSidebar && 'display-flex flex-column-xs flex-row-sm')}>\n {leftSidebar && (\n <DayPickerDropdownSidebar className={leftSidebarClassName}>\n {leftSidebar}\n </DayPickerDropdownSidebar>\n )}\n <div>\n <div className={classNames(rightSidebar && 'display-flex flex-column-xs flex-row-sm')}>\n <div\n ref={enableStackedCalendars ? calendarsRef : null}\n className={classNames(\n 'DayPickerDropdown-calendars',\n enableStackedCalendars && stackCalendars && 'stacked-calendars'\n )}\n >\n {children}\n </div>\n {rightSidebar && (\n <DayPickerDropdownSidebar side='right' className={rightSidebarClassName}>\n {rightSidebar}\n </DayPickerDropdownSidebar>\n )}\n </div>\n {footer && (\n <DayPickerDropdownFooter className={footerClassName}>{footer}</DayPickerDropdownFooter>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default DayPickerDropdown;\n"],"names":["DayPickerDropdown","props","assignPopperElement","popperStyles","popperAttributes","enableStackedCalendars","dropdownClassName","outsideRef","updatePopperPosition","leftSidebar","rightSidebar","footer","leftSidebarClassName","rightSidebarClassName","footerClassName","children","calendarsRef","stackCalendars","useStackedDayPickerCalendars","useEffect","frameId","handlePointerDownCapture","event","target","focusableFieldElement","jsx","classNames","DayPickerDropdownSidebar","jsxs","DayPickerDropdownFooter"],"mappings":";;;;;;AA0BA,MAAMA,IAAoB,CAACC,MAAkC;AACzD,QAAM;AAAA,IACF,qBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,wBAAAC,IAAyB;AAAA,IACzB,mBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACAd,GAEE,EAAE,cAAAe,GAAc,gBAAAC,MAAmBC,EAA6B,CAACH,GAAUN,GAAaC,CAAY,CAAC;AAE3G,EAAAS,EAAU,MAAM;AACZ,QAAI,CAACd,KAA0B,CAACG;AAC5B;AAGJ,UAAMY,IAAU,OAAO,sBAAsB,MAAM;AAC/C,MAAAZ,EAAA;AAAA,IACJ,CAAC;AAED,WAAO,MAAM,OAAO,qBAAqBY,CAAO;AAAA,EACpD,GAAG,CAACf,GAAwBY,GAAgBT,CAAoB,CAAC;AAEjE,QAAMa,IAA2B,CAACC,MAAqE;AACnG,UAAMC,IAASD,EAAM;AACrB,QAAI,CAACC;AACD;AAGJ,UAAMC,IAAwBD,EAAO;AAAA,MACjC;AAAA,IAAA;AAOJ,IAJMC,KACF,CAACA,EAAsB,aAAa,UAAU,KAC9CA,EAAsB,aAAa,eAAe,MAAM,UAGxDF,EAAM,eAAA;AAAA,EAEd;AAEA,SACI,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAKvB;AAAA,MACL,OAAOC;AAAA,MACP,WAAWuB;AAAA,QACP;AAAA,QACApB;AAAA,MAAA;AAAA,MAEH,GAAGF;AAAA,MACJ,MAAK;AAAA,MACL,cAAW;AAAA,MAEX,UAAA,gBAAAqB;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAKlB;AAAA,UACL,WAAU;AAAA,UACV,sBAAsBc;AAAA,UACtB,oBAAoBA;AAAA,UAGpB,4BAAC,OAAA,EAAI,WAAWK,EAAWjB,KAAe,yCAAyC,GAC9E,UAAA;AAAA,YAAAA,KACG,gBAAAgB,EAACE,GAAA,EAAyB,WAAWf,GAChC,UAAAH,GACL;AAAA,8BAEH,OAAA,EACG,UAAA;AAAA,cAAA,gBAAAmB,EAAC,OAAA,EAAI,WAAWF,EAAWhB,KAAgB,yCAAyC,GAChF,UAAA;AAAA,gBAAA,gBAAAe;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACG,KAAKpB,IAAyBW,IAAe;AAAA,oBAC7C,WAAWU;AAAA,sBACP;AAAA,sBACArB,KAA0BY,KAAkB;AAAA,oBAAA;AAAA,oBAG/C,UAAAF;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEJL,KACG,gBAAAe,EAACE,GAAA,EAAyB,MAAK,SAAQ,WAAWd,GAC7C,UAAAH,EAAA,CACL;AAAA,cAAA,GAER;AAAA,cACCC,KACG,gBAAAc,EAACI,GAAA,EAAwB,WAAWf,GAAkB,UAAAH,EAAA,CAAO;AAAA,YAAA,EAAA,CAErE;AAAA,UAAA,EAAA,CACJ;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAGZ;"}