@fluentui/react-charts 1.2.0 → 9.0.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.
- package/CHANGELOG.md +177 -15
- package/LICENSE +11 -17
- package/README.md +174 -23
- package/dist/index.d.ts +2143 -0
- package/lib/CartesianChart.js +1 -0
- package/lib/CartesianChart.js.map +1 -0
- package/lib/DeclarativeChart.js +1 -0
- package/lib/DeclarativeChart.js.map +1 -0
- package/lib/DonutChart.js +1 -0
- package/lib/DonutChart.js.map +1 -0
- package/lib/HorizontalBarChart.js +1 -0
- package/lib/HorizontalBarChart.js.map +1 -0
- package/lib/Legends.js +1 -0
- package/lib/Legends.js.map +1 -0
- package/lib/LineChart.js +1 -0
- package/lib/LineChart.js.map +1 -0
- package/lib/Popover.js +1 -0
- package/lib/Popover.js.map +1 -0
- package/lib/ResponsiveContainer.js +1 -0
- package/lib/ResponsiveContainer.js.map +1 -0
- package/lib/Sparkline.js +1 -0
- package/lib/Sparkline.js.map +1 -0
- package/lib/VerticalBarChart.js +1 -0
- package/lib/VerticalBarChart.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.js +462 -0
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.types.js +1 -0
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -0
- package/lib/components/CommonComponents/ChartPopover.js +187 -0
- package/lib/components/CommonComponents/ChartPopover.js.map +1 -0
- package/lib/components/CommonComponents/ChartPopover.types.js +1 -0
- package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -0
- package/lib/components/CommonComponents/index.js +4 -0
- package/lib/components/CommonComponents/index.js.map +1 -0
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +229 -0
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -0
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +178 -0
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -0
- package/lib/components/DeclarativeChart/DeclarativeChart.js +150 -0
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -0
- package/lib/components/DeclarativeChart/PlotlySchema.js +7 -0
- package/lib/components/DeclarativeChart/PlotlySchema.js.map +1 -0
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +400 -0
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -0
- package/lib/components/DeclarativeChart/imageExporter.js +221 -0
- package/lib/components/DeclarativeChart/imageExporter.js.map +1 -0
- package/lib/components/DeclarativeChart/index.js +1 -0
- package/lib/components/DeclarativeChart/index.js.map +1 -0
- package/lib/components/DonutChart/Arc/Arc.js +110 -0
- package/lib/components/DonutChart/Arc/Arc.js.map +1 -0
- package/lib/components/DonutChart/Arc/Arc.types.js +1 -0
- package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -0
- package/lib/components/DonutChart/Arc/index.js +2 -0
- package/lib/components/DonutChart/Arc/index.js.map +1 -0
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js +54 -0
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -0
- package/lib/components/DonutChart/DonutChart.js +291 -0
- package/lib/components/DonutChart/DonutChart.js.map +1 -0
- package/lib/components/DonutChart/DonutChart.types.js +1 -0
- package/lib/components/DonutChart/DonutChart.types.js.map +1 -0
- package/lib/components/DonutChart/Pie/Pie.js +72 -0
- package/lib/components/DonutChart/Pie/Pie.js.map +1 -0
- package/lib/components/DonutChart/Pie/Pie.types.js +1 -0
- package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -0
- package/lib/components/DonutChart/Pie/index.js +2 -0
- package/lib/components/DonutChart/Pie/index.js.map +1 -0
- package/lib/components/DonutChart/Pie/usePieStyles.styles.js +44 -0
- package/lib/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -0
- package/lib/components/DonutChart/index.js +3 -0
- package/lib/components/DonutChart/index.js.map +1 -0
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +58 -0
- package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js +402 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js +6 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -0
- package/lib/components/HorizontalBarChart/index.js +3 -0
- package/lib/components/HorizontalBarChart/index.js.map +1 -0
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +163 -0
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -0
- package/lib/components/Legends/Legends.js +302 -0
- package/lib/components/Legends/Legends.js.map +1 -0
- package/lib/components/Legends/Legends.types.js +1 -0
- package/lib/components/Legends/Legends.types.js.map +1 -0
- package/lib/components/Legends/OverflowMenu.js +25 -0
- package/lib/components/Legends/OverflowMenu.js.map +1 -0
- package/lib/components/Legends/index.js +3 -0
- package/lib/components/Legends/index.js.map +1 -0
- package/lib/components/Legends/shape.js +35 -0
- package/lib/components/Legends/shape.js.map +1 -0
- package/lib/components/Legends/useLegendsStyles.styles.js +147 -0
- package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -0
- package/lib/components/LineChart/LineChart.js +1026 -0
- package/lib/components/LineChart/LineChart.js.map +1 -0
- package/lib/components/LineChart/LineChart.types.js +3 -0
- package/lib/components/LineChart/LineChart.types.js.map +1 -0
- package/lib/components/LineChart/eventAnnotation/EventAnnotation.js +119 -0
- package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -0
- package/lib/components/LineChart/eventAnnotation/LabelLink.js +57 -0
- package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -0
- package/lib/components/LineChart/eventAnnotation/Textbox.js +40 -0
- package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -0
- package/lib/components/LineChart/index.js +4 -0
- package/lib/components/LineChart/index.js.map +1 -0
- package/lib/components/LineChart/useLineChartStyles.styles.js +65 -0
- package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js +65 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js +1 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -0
- package/lib/components/ResponsiveContainer/index.js +1 -0
- package/lib/components/ResponsiveContainer/index.js.map +1 -0
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +23 -0
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +1 -0
- package/lib/components/Sparkline/Sparkline.js +119 -0
- package/lib/components/Sparkline/Sparkline.js.map +1 -0
- package/lib/components/Sparkline/Sparkline.types.js +4 -0
- package/lib/components/Sparkline/Sparkline.types.js.map +1 -0
- package/lib/components/Sparkline/index.js +3 -0
- package/lib/components/Sparkline/index.js.map +1 -0
- package/lib/components/Sparkline/useSparklineStyles.styles.js +49 -0
- package/lib/components/Sparkline/useSparklineStyles.styles.js.map +1 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.js +849 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js +4 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -0
- package/lib/components/VerticalBarChart/index.js +3 -0
- package/lib/components/VerticalBarChart/index.js.map +1 -0
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +74 -0
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -0
- package/lib/index.js +12 -8
- package/lib/index.js.map +1 -1
- package/lib/types/DataPoint.js +3 -0
- package/lib/types/DataPoint.js.map +1 -0
- package/lib/types/EventAnnotation.js +1 -0
- package/lib/types/EventAnnotation.js.map +1 -0
- package/lib/types/LegendDataItem.js +1 -0
- package/lib/types/LegendDataItem.js.map +1 -0
- package/lib/types/index.js +2 -2
- package/lib/types/index.js.map +1 -1
- package/lib/utilities/FocusableTooltipText.js +65 -0
- package/lib/utilities/FocusableTooltipText.js.map +1 -0
- package/lib/utilities/KeyCodes.js +8 -0
- package/lib/utilities/KeyCodes.js.map +1 -0
- package/lib/utilities/SVGTooltipText.js +138 -0
- package/lib/utilities/SVGTooltipText.js.map +1 -0
- package/lib/utilities/async-utils.js +380 -0
- package/lib/utilities/async-utils.js.map +1 -0
- package/lib/utilities/colors.js +249 -0
- package/lib/utilities/colors.js.map +1 -0
- package/lib/utilities/getWindow.js +25 -0
- package/lib/utilities/getWindow.js.map +1 -0
- package/lib/utilities/index.js +3 -0
- package/lib/utilities/index.js.map +1 -0
- package/lib/utilities/locale-util.js +15 -0
- package/lib/utilities/locale-util.js.map +1 -0
- package/lib/utilities/overflow-utils.js +27 -0
- package/lib/utilities/overflow-utils.js.map +1 -0
- package/lib/utilities/test-data.js +276 -0
- package/lib/utilities/test-data.js.map +1 -0
- package/lib/utilities/utilities.js +1215 -0
- package/lib/utilities/utilities.js.map +1 -0
- package/lib/utilities/vbc-utils.js +27 -0
- package/lib/utilities/vbc-utils.js.map +1 -0
- package/lib-commonjs/CartesianChart.js +6 -0
- package/lib-commonjs/CartesianChart.js.map +1 -0
- package/lib-commonjs/DeclarativeChart.js +6 -0
- package/lib-commonjs/DeclarativeChart.js.map +1 -0
- package/lib-commonjs/DonutChart.js +6 -0
- package/lib-commonjs/DonutChart.js.map +1 -0
- package/lib-commonjs/HorizontalBarChart.js +6 -0
- package/lib-commonjs/HorizontalBarChart.js.map +1 -0
- package/lib-commonjs/Legends.js +6 -0
- package/lib-commonjs/Legends.js.map +1 -0
- package/lib-commonjs/LineChart.js +6 -0
- package/lib-commonjs/LineChart.js.map +1 -0
- package/lib-commonjs/Popover.js +6 -0
- package/lib-commonjs/Popover.js.map +1 -0
- package/lib-commonjs/ResponsiveContainer.js +6 -0
- package/lib-commonjs/ResponsiveContainer.js.map +1 -0
- package/lib-commonjs/Sparkline.js +6 -0
- package/lib-commonjs/Sparkline.js.map +1 -0
- package/lib-commonjs/VerticalBarChart.js +6 -0
- package/lib-commonjs/VerticalBarChart.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +469 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js +6 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.js +197 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.types.js +4 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/index.js +9 -0
- package/lib-commonjs/components/CommonComponents/index.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +356 -0
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +261 -0
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +158 -0
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchema.js +10 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchema.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +445 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/imageExporter.js +231 -0
- package/lib-commonjs/components/DeclarativeChart/imageExporter.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/index.js +6 -0
- package/lib-commonjs/components/DeclarativeChart/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.js +117 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.types.js +4 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/index.js +7 -0
- package/lib-commonjs/components/DonutChart/Arc/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +83 -0
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -0
- package/lib-commonjs/components/DonutChart/DonutChart.js +298 -0
- package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -0
- package/lib-commonjs/components/DonutChart/DonutChart.types.js +6 -0
- package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.js +79 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.types.js +4 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/index.js +7 -0
- package/lib-commonjs/components/DonutChart/Pie/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js +61 -0
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -0
- package/lib-commonjs/components/DonutChart/index.js +8 -0
- package/lib-commonjs/components/DonutChart/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +82 -0
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +408 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js +17 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/index.js +8 -0
- package/lib-commonjs/components/HorizontalBarChart/index.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +251 -0
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/Legends/Legends.js +313 -0
- package/lib-commonjs/components/Legends/Legends.js.map +1 -0
- package/lib-commonjs/components/Legends/Legends.types.js +6 -0
- package/lib-commonjs/components/Legends/Legends.types.js.map +1 -0
- package/lib-commonjs/components/Legends/OverflowMenu.js +36 -0
- package/lib-commonjs/components/Legends/OverflowMenu.js.map +1 -0
- package/lib-commonjs/components/Legends/index.js +8 -0
- package/lib-commonjs/components/Legends/index.js.map +1 -0
- package/lib-commonjs/components/Legends/shape.js +46 -0
- package/lib-commonjs/components/Legends/shape.js.map +1 -0
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +304 -0
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -0
- package/lib-commonjs/components/LineChart/LineChart.js +1032 -0
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -0
- package/lib-commonjs/components/LineChart/LineChart.types.js +6 -0
- package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js +129 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js +68 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js +51 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -0
- package/lib-commonjs/components/LineChart/index.js +9 -0
- package/lib-commonjs/components/LineChart/index.js.map +1 -0
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +96 -0
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +76 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js +6 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/index.js +6 -0
- package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +47 -0
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +1 -0
- package/lib-commonjs/components/Sparkline/Sparkline.js +125 -0
- package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -0
- package/lib-commonjs/components/Sparkline/Sparkline.types.js +7 -0
- package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -0
- package/lib-commonjs/components/Sparkline/index.js +8 -0
- package/lib-commonjs/components/Sparkline/index.js.map +1 -0
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js +77 -0
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +851 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js +7 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/index.js +8 -0
- package/lib-commonjs/components/VerticalBarChart/index.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +117 -0
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -0
- package/lib-commonjs/index.js +17 -0
- package/lib-commonjs/index.js.map +1 -0
- package/lib-commonjs/types/DataPoint.js +6 -0
- package/lib-commonjs/types/DataPoint.js.map +1 -0
- package/lib-commonjs/types/EventAnnotation.js +6 -0
- package/lib-commonjs/types/EventAnnotation.js.map +1 -0
- package/lib-commonjs/types/LegendDataItem.js +4 -0
- package/lib-commonjs/types/LegendDataItem.js.map +1 -0
- package/lib-commonjs/types/index.js +7 -0
- package/lib-commonjs/types/index.js.map +1 -0
- package/lib-commonjs/utilities/FocusableTooltipText.js +75 -0
- package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -0
- package/lib-commonjs/utilities/KeyCodes.js +18 -0
- package/lib-commonjs/utilities/KeyCodes.js.map +1 -0
- package/lib-commonjs/utilities/SVGTooltipText.js +148 -0
- package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -0
- package/lib-commonjs/utilities/async-utils.js +382 -0
- package/lib-commonjs/utilities/async-utils.js.map +1 -0
- package/lib-commonjs/utilities/colors.js +270 -0
- package/lib-commonjs/utilities/colors.js.map +1 -0
- package/lib-commonjs/utilities/getWindow.js +28 -0
- package/lib-commonjs/utilities/getWindow.js.map +1 -0
- package/lib-commonjs/utilities/index.js +8 -0
- package/lib-commonjs/utilities/index.js.map +1 -0
- package/lib-commonjs/utilities/locale-util.js +25 -0
- package/lib-commonjs/utilities/locale-util.js.map +1 -0
- package/lib-commonjs/utilities/overflow-utils.js +36 -0
- package/lib-commonjs/utilities/overflow-utils.js.map +1 -0
- package/lib-commonjs/utilities/test-data.js +324 -0
- package/lib-commonjs/utilities/test-data.js.map +1 -0
- package/lib-commonjs/utilities/utilities.js +1184 -0
- package/lib-commonjs/utilities/utilities.js.map +1 -0
- package/lib-commonjs/utilities/vbc-utils.js +45 -0
- package/lib-commonjs/utilities/vbc-utils.js.map +1 -0
- package/package.json +80 -72
- package/CHANGELOG.json +0 -65
- package/lib/chart/chart-legend.d.ts +0 -6
- package/lib/chart/chart-legend.js +0 -445
- package/lib/chart/chart-legend.js.map +0 -1
- package/lib/chart/chart-render.d.ts +0 -3
- package/lib/chart/chart-render.js +0 -50
- package/lib/chart/chart-render.js.map +0 -1
- package/lib/chart/chart.d.ts +0 -3
- package/lib/chart/chart.js +0 -10
- package/lib/chart/chart.js.map +0 -1
- package/lib/chart/index.d.ts +0 -1
- package/lib/chart/index.js +0 -2
- package/lib/chart/index.js.map +0 -1
- package/lib/index.d.ts +0 -7
- package/lib/lib/builder.d.ts +0 -89
- package/lib/lib/builder.js +0 -379
- package/lib/lib/builder.js.map +0 -1
- package/lib/lib/datasets.d.ts +0 -123
- package/lib/lib/datasets.js +0 -285
- package/lib/lib/datasets.js.map +0 -1
- package/lib/lib/patterns.d.ts +0 -43
- package/lib/lib/patterns.js +0 -433
- package/lib/lib/patterns.js.map +0 -1
- package/lib/lib/plugins.d.ts +0 -11
- package/lib/lib/plugins.js +0 -403
- package/lib/lib/plugins.js.map +0 -1
- package/lib/lib/settings.d.ts +0 -12
- package/lib/lib/settings.js +0 -368
- package/lib/lib/settings.js.map +0 -1
- package/lib/lib/storybook.d.ts +0 -11
- package/lib/lib/storybook.js +0 -13
- package/lib/lib/storybook.js.map +0 -1
- package/lib/lib/utils.d.ts +0 -34
- package/lib/lib/utils.js +0 -253
- package/lib/lib/utils.js.map +0 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/types.d.ts +0 -101
- package/lib/types/types.js +0 -41
- package/lib/types/types.js.map +0 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "SVGTooltipText", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return SVGTooltipText;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
12
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
13
|
+
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
|
|
14
|
+
const _reacttooltip = require("@fluentui/react-tooltip");
|
|
15
|
+
const _asyncutils = require("./async-utils");
|
|
16
|
+
const _KeyCodes = require("./KeyCodes");
|
|
17
|
+
const _reactutilities = require("@fluentui/react-utilities");
|
|
18
|
+
const SVGTooltipText = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
|
|
19
|
+
const [isTooltipVisible, setIsTooltipVisible] = (0, _react.useState)(false);
|
|
20
|
+
const [isOverflowing, setIsOverflowing] = (0, _react.useState)(false);
|
|
21
|
+
const tooltipHostRef = (0, _react.useRef)(null);
|
|
22
|
+
const async = (0, _react.useRef)(new _asyncutils.Async()).current;
|
|
23
|
+
const dismissTimerId = (0, _react.useRef)();
|
|
24
|
+
const openTimerId = (0, _react.useRef)();
|
|
25
|
+
const tooltipHostId = (0, _react.useRef)((0, _reactutilities.useId)('tooltip-host')).current;
|
|
26
|
+
const ignoreNextFocusEvent = (0, _react.useRef)(false);
|
|
27
|
+
const portalMountNode = (0, _reactsharedcontexts.usePortalMountNode)();
|
|
28
|
+
const wrapContentCallback = (0, _react.useCallback)(()=>{
|
|
29
|
+
var _props_maxWidth;
|
|
30
|
+
if (props.content && props.wrapContent && props.wrapContent(props.content, tooltipHostId, (_props_maxWidth = props.maxWidth) !== null && _props_maxWidth !== void 0 ? _props_maxWidth : 100, props.maxHeight) // ToDo - Specify a correct fallback value here
|
|
31
|
+
) {
|
|
32
|
+
setIsOverflowing(true);
|
|
33
|
+
} else {
|
|
34
|
+
setIsOverflowing(false);
|
|
35
|
+
}
|
|
36
|
+
}, [
|
|
37
|
+
props,
|
|
38
|
+
tooltipHostId
|
|
39
|
+
]);
|
|
40
|
+
(0, _react.useEffect)(()=>{
|
|
41
|
+
wrapContentCallback();
|
|
42
|
+
return ()=>{
|
|
43
|
+
async.dispose();
|
|
44
|
+
};
|
|
45
|
+
}, [
|
|
46
|
+
wrapContentCallback,
|
|
47
|
+
async
|
|
48
|
+
]);
|
|
49
|
+
(0, _react.useEffect)(()=>{
|
|
50
|
+
wrapContentCallback();
|
|
51
|
+
}, [
|
|
52
|
+
props.maxWidth,
|
|
53
|
+
props.maxHeight,
|
|
54
|
+
wrapContentCallback
|
|
55
|
+
]);
|
|
56
|
+
const hideTooltip = (0, _react.useCallback)(()=>{
|
|
57
|
+
async.clearTimeout(openTimerId.current);
|
|
58
|
+
async.clearTimeout(dismissTimerId.current);
|
|
59
|
+
setIsTooltipVisible(false);
|
|
60
|
+
}, [
|
|
61
|
+
async
|
|
62
|
+
]);
|
|
63
|
+
const onTooltipMouseEnter = (0, _react.useCallback)((ev)=>{
|
|
64
|
+
if (!isOverflowing) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (ev.target && (portalMountNode === null || portalMountNode === void 0 ? void 0 : portalMountNode.contains(ev.target))) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
async.clearTimeout(dismissTimerId.current);
|
|
71
|
+
async.clearTimeout(openTimerId.current);
|
|
72
|
+
if (props.delay !== 0) {
|
|
73
|
+
openTimerId.current = async.setTimeout(()=>{
|
|
74
|
+
setIsTooltipVisible(true);
|
|
75
|
+
}, props.delay);
|
|
76
|
+
} else {
|
|
77
|
+
setIsTooltipVisible(true);
|
|
78
|
+
}
|
|
79
|
+
}, [
|
|
80
|
+
isOverflowing,
|
|
81
|
+
portalMountNode,
|
|
82
|
+
async,
|
|
83
|
+
props.delay
|
|
84
|
+
]);
|
|
85
|
+
const onTooltipMouseLeave = (0, _react.useCallback)((ev)=>{
|
|
86
|
+
async.clearTimeout(dismissTimerId.current);
|
|
87
|
+
async.clearTimeout(openTimerId.current);
|
|
88
|
+
if (props.closeDelay) {
|
|
89
|
+
dismissTimerId.current = async.setTimeout(()=>{
|
|
90
|
+
setIsTooltipVisible(false);
|
|
91
|
+
}, props.closeDelay);
|
|
92
|
+
} else {
|
|
93
|
+
setIsTooltipVisible(false);
|
|
94
|
+
}
|
|
95
|
+
}, [
|
|
96
|
+
async,
|
|
97
|
+
props.closeDelay
|
|
98
|
+
]);
|
|
99
|
+
const onTooltipFocus = (0, _react.useCallback)((ev)=>{
|
|
100
|
+
if (ignoreNextFocusEvent.current) {
|
|
101
|
+
ignoreNextFocusEvent.current = false;
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
onTooltipMouseEnter(ev);
|
|
105
|
+
}, [
|
|
106
|
+
onTooltipMouseEnter
|
|
107
|
+
]);
|
|
108
|
+
const onTooltipBlur = (0, _react.useCallback)((ev)=>{
|
|
109
|
+
var _document;
|
|
110
|
+
ignoreNextFocusEvent.current = ((_document = document) === null || _document === void 0 ? void 0 : _document.activeElement) === ev.target;
|
|
111
|
+
dismissTimerId.current = async.setTimeout(()=>{
|
|
112
|
+
setIsTooltipVisible(false);
|
|
113
|
+
}, 0);
|
|
114
|
+
}, [
|
|
115
|
+
async
|
|
116
|
+
]);
|
|
117
|
+
const onTooltipKeyDown = (0, _react.useCallback)((ev)=>{
|
|
118
|
+
if ((ev.which === _KeyCodes.KeyCodes.escape || ev.ctrlKey) && isTooltipVisible) {
|
|
119
|
+
hideTooltip();
|
|
120
|
+
ev.stopPropagation();
|
|
121
|
+
}
|
|
122
|
+
}, [
|
|
123
|
+
isTooltipVisible,
|
|
124
|
+
hideTooltip
|
|
125
|
+
]);
|
|
126
|
+
const showTooltip = props.isTooltipVisibleProp && isOverflowing && !!props.content || isTooltipVisible && !!props.content;
|
|
127
|
+
return /*#__PURE__*/ _react.createElement(_react.Fragment, null, /*#__PURE__*/ _react.createElement(_reacttooltip.Tooltip, {
|
|
128
|
+
relationship: "description",
|
|
129
|
+
...props.tooltipProps,
|
|
130
|
+
withArrow: true,
|
|
131
|
+
content: props.content,
|
|
132
|
+
// targetElement={getTargetElement()} ToDo - This assignment is causing build failure. Needs to be fixed.
|
|
133
|
+
visible: showTooltip
|
|
134
|
+
}, /*#__PURE__*/ _react.createElement("text", {
|
|
135
|
+
...props.textProps,
|
|
136
|
+
id: tooltipHostId,
|
|
137
|
+
ref: tooltipHostRef,
|
|
138
|
+
onFocusCapture: onTooltipFocus,
|
|
139
|
+
onBlurCapture: onTooltipBlur,
|
|
140
|
+
onMouseEnter: onTooltipMouseEnter,
|
|
141
|
+
onMouseLeave: onTooltipMouseLeave,
|
|
142
|
+
onKeyDown: onTooltipKeyDown,
|
|
143
|
+
"data-is-focusable": props.shouldReceiveFocus && isOverflowing
|
|
144
|
+
}, props.content)));
|
|
145
|
+
});
|
|
146
|
+
SVGTooltipText.defaultProps = {
|
|
147
|
+
delay: 0
|
|
148
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["SVGTooltipText.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState, useRef, useEffect, useCallback } from 'react';\nimport { usePortalMountNode } from '@fluentui/react-shared-contexts';\nimport { Tooltip } from '@fluentui/react-tooltip';\nimport { Async } from './async-utils';\nimport { KeyCodes } from './KeyCodes';\nimport { useId } from '@fluentui/react-utilities';\n\ninterface SVGTooltipTextProps {\n closeDelay?: number;\n content: string;\n delay?: number;\n tooltipProps?: React.ComponentProps<typeof Tooltip>;\n textProps?: React.SVGAttributes<SVGTextElement>;\n maxWidth?: number;\n maxHeight?: number;\n shouldReceiveFocus?: boolean;\n isTooltipVisibleProp?: boolean;\n wrapContent?: (content: string, id: string, maxWidth: number, maxHeight?: number) => boolean;\n}\n\nexport const SVGTooltipText: React.FunctionComponent<SVGTooltipTextProps> = React.forwardRef<\n HTMLDivElement,\n SVGTooltipTextProps\n>((props, forwardedRef) => {\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\n const [isOverflowing, setIsOverflowing] = useState(false);\n const tooltipHostRef = useRef<SVGTextElement>(null);\n const async = useRef(new Async()).current;\n const dismissTimerId = useRef<number>();\n const openTimerId = useRef<number>();\n const tooltipHostId = useRef(useId('tooltip-host')).current;\n const ignoreNextFocusEvent = useRef(false);\n const portalMountNode = usePortalMountNode();\n\n const wrapContentCallback = useCallback(() => {\n if (\n props.content &&\n props.wrapContent &&\n props.wrapContent(props.content, tooltipHostId, props.maxWidth ?? 100, props.maxHeight) // ToDo - Specify a correct fallback value here\n ) {\n setIsOverflowing(true);\n } else {\n setIsOverflowing(false);\n }\n }, [props, tooltipHostId]);\n\n useEffect(() => {\n wrapContentCallback();\n return () => {\n async.dispose();\n };\n }, [wrapContentCallback, async]);\n\n useEffect(() => {\n wrapContentCallback();\n }, [props.maxWidth, props.maxHeight, wrapContentCallback]);\n\n const hideTooltip = useCallback(() => {\n async.clearTimeout(openTimerId.current!);\n async.clearTimeout(dismissTimerId.current!);\n setIsTooltipVisible(false);\n }, [async]);\n\n const onTooltipMouseEnter = useCallback(\n (ev: React.MouseEvent<SVGElement>) => {\n if (!isOverflowing) {\n return;\n }\n\n if (ev.target && portalMountNode?.contains(ev.target as HTMLElement)) {\n return;\n }\n\n async.clearTimeout(dismissTimerId.current!);\n async.clearTimeout(openTimerId.current!);\n\n if (props.delay !== 0) {\n openTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(true);\n }, props.delay!);\n } else {\n setIsTooltipVisible(true);\n }\n },\n [isOverflowing, portalMountNode, async, props.delay],\n );\n\n const onTooltipMouseLeave = useCallback(\n (ev: React.MouseEvent<SVGElement>) => {\n async.clearTimeout(dismissTimerId.current!);\n async.clearTimeout(openTimerId.current!);\n\n if (props.closeDelay) {\n dismissTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(false);\n }, props.closeDelay);\n } else {\n setIsTooltipVisible(false);\n }\n },\n [async, props.closeDelay],\n );\n\n const onTooltipFocus = useCallback(\n (ev: React.FocusEvent<SVGElement>) => {\n if (ignoreNextFocusEvent.current) {\n ignoreNextFocusEvent.current = false;\n return;\n }\n onTooltipMouseEnter(ev as unknown as React.MouseEvent<SVGElement>);\n },\n [onTooltipMouseEnter],\n );\n\n const onTooltipBlur = useCallback(\n (ev: React.FocusEvent<SVGElement>) => {\n ignoreNextFocusEvent.current = document?.activeElement === ev.target;\n dismissTimerId.current = async.setTimeout(() => {\n setIsTooltipVisible(false);\n }, 0);\n },\n [async],\n );\n\n const onTooltipKeyDown = useCallback(\n (ev: React.KeyboardEvent<SVGElement>) => {\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && isTooltipVisible) {\n hideTooltip();\n ev.stopPropagation();\n }\n },\n [isTooltipVisible, hideTooltip],\n );\n\n const showTooltip =\n (props.isTooltipVisibleProp && isOverflowing && !!props.content) || (isTooltipVisible && !!props.content);\n\n return (\n <>\n <Tooltip\n relationship=\"description\"\n {...props.tooltipProps}\n withArrow\n content={props.content}\n // targetElement={getTargetElement()} ToDo - This assignment is causing build failure. Needs to be fixed.\n visible={showTooltip}\n >\n <text\n {...props.textProps}\n id={tooltipHostId}\n ref={tooltipHostRef}\n onFocusCapture={onTooltipFocus}\n onBlurCapture={onTooltipBlur}\n onMouseEnter={onTooltipMouseEnter}\n onMouseLeave={onTooltipMouseLeave}\n onKeyDown={onTooltipKeyDown}\n data-is-focusable={props.shouldReceiveFocus && isOverflowing}\n >\n {props.content}\n </text>\n </Tooltip>\n </>\n );\n});\n\nSVGTooltipText.defaultProps = {\n delay: 0,\n};\n"],"names":["SVGTooltipText","React","forwardRef","props","forwardedRef","isTooltipVisible","setIsTooltipVisible","useState","isOverflowing","setIsOverflowing","tooltipHostRef","useRef","async","Async","current","dismissTimerId","openTimerId","tooltipHostId","useId","ignoreNextFocusEvent","portalMountNode","usePortalMountNode","wrapContentCallback","useCallback","content","wrapContent","maxWidth","maxHeight","useEffect","dispose","hideTooltip","clearTimeout","onTooltipMouseEnter","ev","target","contains","delay","setTimeout","onTooltipMouseLeave","closeDelay","onTooltipFocus","onTooltipBlur","document","activeElement","onTooltipKeyDown","which","KeyCodes","escape","ctrlKey","stopPropagation","showTooltip","isTooltipVisibleProp","createElement","Fragment","Tooltip","relationship","tooltipProps","withArrow","visible","text","textProps","id","ref","onFocusCapture","onBlurCapture","onMouseEnter","onMouseLeave","onKeyDown","data-is-focusable","shouldReceiveFocus","defaultProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "Async", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Async;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _define_property = require("@swc/helpers/_/_define_property");
|
|
12
|
+
const _getWindow = require("./getWindow");
|
|
13
|
+
class Async {
|
|
14
|
+
/**
|
|
15
|
+
* Dispose function, clears all async operations.
|
|
16
|
+
*/ dispose() {
|
|
17
|
+
let id;
|
|
18
|
+
this._isDisposed = true;
|
|
19
|
+
this._parent = null;
|
|
20
|
+
// Clear timeouts.
|
|
21
|
+
if (this._timeoutIds) {
|
|
22
|
+
for(id in this._timeoutIds){
|
|
23
|
+
if (this._timeoutIds.hasOwnProperty(id)) {
|
|
24
|
+
this.clearTimeout(parseInt(id, 10));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
this._timeoutIds = null;
|
|
28
|
+
}
|
|
29
|
+
// Clear immediates.
|
|
30
|
+
if (this._immediateIds) {
|
|
31
|
+
for(id in this._immediateIds){
|
|
32
|
+
if (this._immediateIds.hasOwnProperty(id)) {
|
|
33
|
+
this.clearImmediate(parseInt(id, 10));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
this._immediateIds = null;
|
|
37
|
+
}
|
|
38
|
+
// Clear intervals.
|
|
39
|
+
if (this._intervalIds) {
|
|
40
|
+
for(id in this._intervalIds){
|
|
41
|
+
if (this._intervalIds.hasOwnProperty(id)) {
|
|
42
|
+
this.clearInterval(parseInt(id, 10));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
this._intervalIds = null;
|
|
46
|
+
}
|
|
47
|
+
// Clear animation frames.
|
|
48
|
+
if (this._animationFrameIds) {
|
|
49
|
+
for(id in this._animationFrameIds){
|
|
50
|
+
if (this._animationFrameIds.hasOwnProperty(id)) {
|
|
51
|
+
this.cancelAnimationFrame(parseInt(id, 10));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
this._animationFrameIds = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* SetTimeout override, which will auto cancel the timeout during dispose.
|
|
59
|
+
* @param callback - Callback to execute.
|
|
60
|
+
* @param duration - Duration in milliseconds.
|
|
61
|
+
* @returns The setTimeout id.
|
|
62
|
+
*/ setTimeout(callback, duration) {
|
|
63
|
+
let timeoutId = 0;
|
|
64
|
+
if (!this._isDisposed) {
|
|
65
|
+
if (!this._timeoutIds) {
|
|
66
|
+
this._timeoutIds = {};
|
|
67
|
+
}
|
|
68
|
+
timeoutId = setTimeout(()=>{
|
|
69
|
+
// Time to execute the timeout, enqueue it as a foreground task to be executed.
|
|
70
|
+
try {
|
|
71
|
+
// Now delete the record and call the callback.
|
|
72
|
+
if (this._timeoutIds) {
|
|
73
|
+
delete this._timeoutIds[timeoutId];
|
|
74
|
+
}
|
|
75
|
+
callback.apply(this._parent);
|
|
76
|
+
} catch (e) {
|
|
77
|
+
this._logError(e);
|
|
78
|
+
}
|
|
79
|
+
}, duration);
|
|
80
|
+
this._timeoutIds[timeoutId] = true;
|
|
81
|
+
}
|
|
82
|
+
return timeoutId;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Clears the timeout.
|
|
86
|
+
* @param id - Id to cancel.
|
|
87
|
+
*/ clearTimeout(id) {
|
|
88
|
+
if (this._timeoutIds && this._timeoutIds[id]) {
|
|
89
|
+
clearTimeout(id);
|
|
90
|
+
delete this._timeoutIds[id];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* SetImmediate override, which will auto cancel the immediate during dispose.
|
|
95
|
+
* @param callback - Callback to execute.
|
|
96
|
+
* @param targetElement - Optional target element to use for identifying the correct window.
|
|
97
|
+
* @returns The setTimeout id.
|
|
98
|
+
*/ setImmediate(callback, targetElement) {
|
|
99
|
+
let immediateId = 0;
|
|
100
|
+
const win = (0, _getWindow.getWindow)(targetElement);
|
|
101
|
+
if (!this._isDisposed) {
|
|
102
|
+
if (!this._immediateIds) {
|
|
103
|
+
this._immediateIds = {};
|
|
104
|
+
}
|
|
105
|
+
let setImmediateCallback = ()=>{
|
|
106
|
+
// Time to execute the timeout, enqueue it as a foreground task to be executed.
|
|
107
|
+
try {
|
|
108
|
+
// Now delete the record and call the callback.
|
|
109
|
+
if (this._immediateIds) {
|
|
110
|
+
delete this._immediateIds[immediateId];
|
|
111
|
+
}
|
|
112
|
+
callback.apply(this._parent);
|
|
113
|
+
} catch (e) {
|
|
114
|
+
this._logError(e);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
immediateId = win.setTimeout(setImmediateCallback, 0);
|
|
118
|
+
this._immediateIds[immediateId] = true;
|
|
119
|
+
}
|
|
120
|
+
return immediateId;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Clears the immediate.
|
|
124
|
+
* @param id - Id to cancel.
|
|
125
|
+
* @param targetElement - Optional target element to use for identifying the correct window.
|
|
126
|
+
*/ clearImmediate(id, targetElement) {
|
|
127
|
+
const win = (0, _getWindow.getWindow)(targetElement);
|
|
128
|
+
if (this._immediateIds && this._immediateIds[id]) {
|
|
129
|
+
win.clearTimeout(id);
|
|
130
|
+
delete this._immediateIds[id];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* SetInterval override, which will auto cancel the timeout during dispose.
|
|
135
|
+
* @param callback - Callback to execute.
|
|
136
|
+
* @param duration - Duration in milliseconds.
|
|
137
|
+
* @returns The setTimeout id.
|
|
138
|
+
*/ setInterval(callback, duration) {
|
|
139
|
+
let intervalId = 0;
|
|
140
|
+
if (!this._isDisposed) {
|
|
141
|
+
if (!this._intervalIds) {
|
|
142
|
+
this._intervalIds = {};
|
|
143
|
+
}
|
|
144
|
+
intervalId = setInterval(()=>{
|
|
145
|
+
// Time to execute the interval callback, enqueue it as a foreground task to be executed.
|
|
146
|
+
try {
|
|
147
|
+
callback.apply(this._parent);
|
|
148
|
+
} catch (e) {
|
|
149
|
+
this._logError(e);
|
|
150
|
+
}
|
|
151
|
+
}, duration);
|
|
152
|
+
this._intervalIds[intervalId] = true;
|
|
153
|
+
}
|
|
154
|
+
return intervalId;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Clears the interval.
|
|
158
|
+
* @param id - Id to cancel.
|
|
159
|
+
*/ clearInterval(id) {
|
|
160
|
+
if (this._intervalIds && this._intervalIds[id]) {
|
|
161
|
+
clearInterval(id);
|
|
162
|
+
delete this._intervalIds[id];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Creates a function that, when executed, will only call the func function at most once per
|
|
167
|
+
* every wait milliseconds. Provide an options object to indicate that func should be invoked
|
|
168
|
+
* on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled
|
|
169
|
+
* function will return the result of the last func call.
|
|
170
|
+
*
|
|
171
|
+
* Note: If leading and trailing options are true func will be called on the trailing edge of
|
|
172
|
+
* the timeout only if the throttled function is invoked more than once during the wait timeout.
|
|
173
|
+
*
|
|
174
|
+
* @param func - The function to throttle.
|
|
175
|
+
* @param wait - The number of milliseconds to throttle executions to. Defaults to 0.
|
|
176
|
+
* @param options - The options object.
|
|
177
|
+
* @returns The new throttled function.
|
|
178
|
+
*/ // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
179
|
+
throttle(func, wait, options) {
|
|
180
|
+
if (this._isDisposed) {
|
|
181
|
+
return this._noop;
|
|
182
|
+
}
|
|
183
|
+
let waitMS = wait || 0;
|
|
184
|
+
let leading = true;
|
|
185
|
+
let trailing = true;
|
|
186
|
+
let lastExecuteTime = 0;
|
|
187
|
+
let lastResult;
|
|
188
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
189
|
+
let lastArgs;
|
|
190
|
+
let timeoutId = null;
|
|
191
|
+
if (options && typeof options.leading === 'boolean') {
|
|
192
|
+
leading = options.leading;
|
|
193
|
+
}
|
|
194
|
+
if (options && typeof options.trailing === 'boolean') {
|
|
195
|
+
trailing = options.trailing;
|
|
196
|
+
}
|
|
197
|
+
let callback = (userCall)=>{
|
|
198
|
+
let now = Date.now();
|
|
199
|
+
let delta = now - lastExecuteTime;
|
|
200
|
+
let waitLength = leading ? waitMS - delta : waitMS;
|
|
201
|
+
if (delta >= waitMS && (!userCall || leading)) {
|
|
202
|
+
lastExecuteTime = now;
|
|
203
|
+
if (timeoutId) {
|
|
204
|
+
this.clearTimeout(timeoutId);
|
|
205
|
+
timeoutId = null;
|
|
206
|
+
}
|
|
207
|
+
lastResult = func.apply(this._parent, lastArgs);
|
|
208
|
+
} else if (timeoutId === null && trailing) {
|
|
209
|
+
timeoutId = this.setTimeout(callback, waitLength);
|
|
210
|
+
}
|
|
211
|
+
return lastResult;
|
|
212
|
+
};
|
|
213
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
214
|
+
let resultFunction = (...args)=>{
|
|
215
|
+
lastArgs = args;
|
|
216
|
+
return callback(true);
|
|
217
|
+
};
|
|
218
|
+
return resultFunction;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Creates a function that will delay the execution of func until after wait milliseconds have
|
|
222
|
+
* elapsed since the last time it was invoked. Provide an options object to indicate that func
|
|
223
|
+
* should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls
|
|
224
|
+
* to the debounced function will return the result of the last func call.
|
|
225
|
+
*
|
|
226
|
+
* Note: If leading and trailing options are true func will be called on the trailing edge of
|
|
227
|
+
* the timeout only if the debounced function is invoked more than once during the wait
|
|
228
|
+
* timeout.
|
|
229
|
+
*
|
|
230
|
+
* @param func - The function to debounce.
|
|
231
|
+
* @param wait - The number of milliseconds to delay.
|
|
232
|
+
* @param options - The options object.
|
|
233
|
+
* @returns The new debounced function.
|
|
234
|
+
*/ // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
235
|
+
debounce(func, wait, options) {
|
|
236
|
+
if (this._isDisposed) {
|
|
237
|
+
let noOpFunction = ()=>{
|
|
238
|
+
/** Do nothing */ };
|
|
239
|
+
noOpFunction.cancel = ()=>{
|
|
240
|
+
return;
|
|
241
|
+
};
|
|
242
|
+
noOpFunction.flush = ()=>null;
|
|
243
|
+
noOpFunction.pending = ()=>false;
|
|
244
|
+
return noOpFunction;
|
|
245
|
+
}
|
|
246
|
+
let waitMS = wait || 0;
|
|
247
|
+
let leading = false;
|
|
248
|
+
let trailing = true;
|
|
249
|
+
let maxWait = null;
|
|
250
|
+
let lastCallTime = 0;
|
|
251
|
+
let lastExecuteTime = Date.now();
|
|
252
|
+
let lastResult;
|
|
253
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
254
|
+
let lastArgs;
|
|
255
|
+
let timeoutId = null;
|
|
256
|
+
if (options && typeof options.leading === 'boolean') {
|
|
257
|
+
leading = options.leading;
|
|
258
|
+
}
|
|
259
|
+
if (options && typeof options.trailing === 'boolean') {
|
|
260
|
+
trailing = options.trailing;
|
|
261
|
+
}
|
|
262
|
+
if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {
|
|
263
|
+
maxWait = options.maxWait;
|
|
264
|
+
}
|
|
265
|
+
let markExecuted = (time)=>{
|
|
266
|
+
if (timeoutId) {
|
|
267
|
+
this.clearTimeout(timeoutId);
|
|
268
|
+
timeoutId = null;
|
|
269
|
+
}
|
|
270
|
+
lastExecuteTime = time;
|
|
271
|
+
};
|
|
272
|
+
let invokeFunction = (time)=>{
|
|
273
|
+
markExecuted(time);
|
|
274
|
+
lastResult = func.apply(this._parent, lastArgs);
|
|
275
|
+
};
|
|
276
|
+
let callback = (userCall)=>{
|
|
277
|
+
let now = Date.now();
|
|
278
|
+
let executeImmediately = false;
|
|
279
|
+
if (userCall) {
|
|
280
|
+
if (leading && now - lastCallTime >= waitMS) {
|
|
281
|
+
executeImmediately = true;
|
|
282
|
+
}
|
|
283
|
+
lastCallTime = now;
|
|
284
|
+
}
|
|
285
|
+
let delta = now - lastCallTime;
|
|
286
|
+
let waitLength = waitMS - delta;
|
|
287
|
+
let maxWaitDelta = now - lastExecuteTime;
|
|
288
|
+
let maxWaitExpired = false;
|
|
289
|
+
if (maxWait !== null) {
|
|
290
|
+
// maxWait only matters when there is a pending callback
|
|
291
|
+
if (maxWaitDelta >= maxWait && timeoutId) {
|
|
292
|
+
maxWaitExpired = true;
|
|
293
|
+
} else {
|
|
294
|
+
waitLength = Math.min(waitLength, maxWait - maxWaitDelta);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
if (delta >= waitMS || maxWaitExpired || executeImmediately) {
|
|
298
|
+
invokeFunction(now);
|
|
299
|
+
} else if ((timeoutId === null || !userCall) && trailing) {
|
|
300
|
+
timeoutId = this.setTimeout(callback, waitLength);
|
|
301
|
+
}
|
|
302
|
+
return lastResult;
|
|
303
|
+
};
|
|
304
|
+
let pending = ()=>{
|
|
305
|
+
return !!timeoutId;
|
|
306
|
+
};
|
|
307
|
+
let cancel = ()=>{
|
|
308
|
+
if (pending()) {
|
|
309
|
+
// Mark the debounced function as having executed
|
|
310
|
+
markExecuted(Date.now());
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
let flush = ()=>{
|
|
314
|
+
if (pending()) {
|
|
315
|
+
invokeFunction(Date.now());
|
|
316
|
+
}
|
|
317
|
+
return lastResult;
|
|
318
|
+
};
|
|
319
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
320
|
+
let resultFunction = (...args)=>{
|
|
321
|
+
lastArgs = args;
|
|
322
|
+
return callback(true);
|
|
323
|
+
};
|
|
324
|
+
resultFunction.cancel = cancel;
|
|
325
|
+
resultFunction.flush = flush;
|
|
326
|
+
resultFunction.pending = pending;
|
|
327
|
+
return resultFunction;
|
|
328
|
+
}
|
|
329
|
+
requestAnimationFrame(callback, targetElement) {
|
|
330
|
+
let animationFrameId = 0;
|
|
331
|
+
const win = (0, _getWindow.getWindow)(targetElement);
|
|
332
|
+
if (!this._isDisposed) {
|
|
333
|
+
if (!this._animationFrameIds) {
|
|
334
|
+
this._animationFrameIds = {};
|
|
335
|
+
}
|
|
336
|
+
let animationFrameCallback = ()=>{
|
|
337
|
+
try {
|
|
338
|
+
// Now delete the record and call the callback.
|
|
339
|
+
if (this._animationFrameIds) {
|
|
340
|
+
delete this._animationFrameIds[animationFrameId];
|
|
341
|
+
}
|
|
342
|
+
callback.apply(this._parent);
|
|
343
|
+
} catch (e) {
|
|
344
|
+
this._logError(e);
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
animationFrameId = win.requestAnimationFrame ? win.requestAnimationFrame(animationFrameCallback) : win.setTimeout(animationFrameCallback, 0);
|
|
348
|
+
this._animationFrameIds[animationFrameId] = true;
|
|
349
|
+
}
|
|
350
|
+
return animationFrameId;
|
|
351
|
+
}
|
|
352
|
+
cancelAnimationFrame(id, targetElement) {
|
|
353
|
+
const win = (0, _getWindow.getWindow)(targetElement);
|
|
354
|
+
if (this._animationFrameIds && this._animationFrameIds[id]) {
|
|
355
|
+
win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);
|
|
356
|
+
delete this._animationFrameIds[id];
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
360
|
+
_logError(e) {
|
|
361
|
+
if (this._onErrorHandler) {
|
|
362
|
+
this._onErrorHandler(e);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
366
|
+
constructor(parent, onError){
|
|
367
|
+
(0, _define_property._)(this, "_timeoutIds", null);
|
|
368
|
+
(0, _define_property._)(this, "_immediateIds", null);
|
|
369
|
+
(0, _define_property._)(this, "_intervalIds", null);
|
|
370
|
+
(0, _define_property._)(this, "_animationFrameIds", null);
|
|
371
|
+
(0, _define_property._)(this, "_isDisposed", void 0);
|
|
372
|
+
(0, _define_property._)(this, "_parent", void 0);
|
|
373
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
374
|
+
(0, _define_property._)(this, "_onErrorHandler", void 0);
|
|
375
|
+
(0, _define_property._)(this, "_noop", void 0);
|
|
376
|
+
this._isDisposed = false;
|
|
377
|
+
this._parent = parent || null;
|
|
378
|
+
this._onErrorHandler = onError;
|
|
379
|
+
this._noop = ()=>{
|
|
380
|
+
/* do nothing */ };
|
|
381
|
+
}
|
|
382
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["async-utils.ts"],"sourcesContent":["import { getWindow } from './getWindow';\n\ndeclare function setTimeout(cb: Function, delay: number): number;\ndeclare function setInterval(cb: Function, delay: number): number;\n\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nexport class Async {\n private _timeoutIds: { [id: number]: boolean } | null = null;\n private _immediateIds: { [id: number]: boolean } | null = null;\n private _intervalIds: { [id: number]: boolean } | null = null;\n private _animationFrameIds: { [id: number]: boolean } | null = null;\n private _isDisposed: boolean;\n private _parent: object | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _onErrorHandler: ((e: any) => void) | undefined;\n private _noop: () => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(parent?: object, onError?: (e: any) => void) {\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = () => {\n /* do nothing */\n };\n }\n\n /**\n * Dispose function, clears all async operations.\n */\n public dispose(): void {\n let id;\n\n this._isDisposed = true;\n this._parent = null;\n\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n\n this._timeoutIds = null;\n }\n\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n\n this._immediateIds = null;\n }\n\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n\n this._animationFrameIds = null;\n }\n }\n\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n public setTimeout(callback: () => void, duration: number): number {\n let timeoutId = 0;\n\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n\n timeoutId = setTimeout(() => {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n\n try {\n // Now delete the record and call the callback.\n if (this._timeoutIds) {\n delete this._timeoutIds[timeoutId];\n }\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n }, duration);\n\n this._timeoutIds[timeoutId] = true;\n }\n\n return timeoutId;\n }\n\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n public clearTimeout(id: number): void {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n }\n\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n public setImmediate(callback: () => void, targetElement?: Element | null): number {\n let immediateId = 0;\n const win = getWindow(targetElement)!;\n\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n\n let setImmediateCallback = () => {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n\n try {\n // Now delete the record and call the callback.\n if (this._immediateIds) {\n delete this._immediateIds[immediateId];\n }\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n };\n\n immediateId = win.setTimeout(setImmediateCallback, 0);\n\n this._immediateIds[immediateId] = true;\n }\n\n return immediateId;\n }\n\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n public clearImmediate(id: number, targetElement?: Element | null): void {\n const win = getWindow(targetElement)!;\n\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n }\n\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n public setInterval(callback: () => void, duration: number): number {\n let intervalId = 0;\n\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n\n intervalId = setInterval(() => {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n }, duration);\n\n this._intervalIds[intervalId] = true;\n }\n\n return intervalId;\n }\n\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n public clearInterval(id: number): void {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n }\n\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public throttle<T extends (...args: any[]) => any>(\n func: T,\n wait?: number,\n options?: {\n leading?: boolean;\n trailing?: boolean;\n },\n ): T {\n if (this._isDisposed) {\n return this._noop as T;\n }\n\n let waitMS = wait || 0;\n let leading = true;\n let trailing = true;\n let lastExecuteTime = 0;\n let lastResult: T;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let lastArgs: any[];\n let timeoutId: number | null = null;\n\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n\n let callback = (userCall?: boolean) => {\n let now = Date.now();\n let delta = now - lastExecuteTime;\n let waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(this._parent, lastArgs);\n } else if (timeoutId === null && trailing) {\n timeoutId = this.setTimeout(callback, waitLength);\n }\n\n return lastResult;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let resultFunction = ((...args: any[]): any => {\n lastArgs = args;\n return callback(true);\n }) as T;\n\n return resultFunction;\n }\n\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public debounce<T extends (...args: any[]) => any>(\n func: T,\n wait?: number,\n options?: {\n leading?: boolean;\n maxWait?: number;\n trailing?: boolean;\n },\n ): ICancelable<T> & T {\n if (this._isDisposed) {\n let noOpFunction = (() => {\n /** Do nothing */\n }) as ICancelable<T> & T;\n\n noOpFunction.cancel = () => {\n return;\n };\n noOpFunction.flush = (() => null) as unknown as () => ReturnType<T>;\n noOpFunction.pending = () => false;\n\n return noOpFunction;\n }\n\n let waitMS = wait || 0;\n let leading = false;\n let trailing = true;\n let maxWait: number | null = null;\n let lastCallTime = 0;\n let lastExecuteTime = Date.now();\n let lastResult: ReturnType<T>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let lastArgs: any[];\n let timeoutId: number | null = null;\n\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n\n let markExecuted = (time: number) => {\n if (timeoutId) {\n this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n\n let invokeFunction = (time: number) => {\n markExecuted(time);\n lastResult = func.apply(this._parent, lastArgs);\n };\n\n let callback = (userCall?: boolean) => {\n let now = Date.now();\n let executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n let delta = now - lastCallTime;\n let waitLength = waitMS - delta;\n let maxWaitDelta = now - lastExecuteTime;\n let maxWaitExpired = false;\n\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n } else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n } else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = this.setTimeout(callback, waitLength);\n }\n\n return lastResult;\n };\n\n let pending = (): boolean => {\n return !!timeoutId;\n };\n\n let cancel = (): void => {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n\n let flush = () => {\n if (pending()) {\n invokeFunction(Date.now());\n }\n\n return lastResult;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let resultFunction = ((...args: any[]) => {\n lastArgs = args;\n return callback(true);\n }) as ICancelable<T> & T;\n\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n\n return resultFunction;\n }\n\n public requestAnimationFrame(callback: () => void, targetElement?: Element | null): number {\n let animationFrameId = 0;\n const win = getWindow(targetElement)!;\n\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n\n let animationFrameCallback = () => {\n try {\n // Now delete the record and call the callback.\n if (this._animationFrameIds) {\n delete this._animationFrameIds[animationFrameId];\n }\n\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n };\n\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n\n this._animationFrameIds[animationFrameId] = true;\n }\n\n return animationFrameId;\n }\n\n public cancelAnimationFrame(id: number, targetElement?: Element | null): void {\n const win = getWindow(targetElement)!;\n\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected _logError(e: any): void {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ICancelable<T extends (...args: any[]) => any> = {\n flush: () => ReturnType<T>;\n cancel: () => void;\n pending: () => boolean;\n};\n"],"names":["Async","dispose","id","_isDisposed","_parent","_timeoutIds","hasOwnProperty","clearTimeout","parseInt","_immediateIds","clearImmediate","_intervalIds","clearInterval","_animationFrameIds","cancelAnimationFrame","setTimeout","callback","duration","timeoutId","apply","e","_logError","setImmediate","targetElement","immediateId","win","getWindow","setImmediateCallback","setInterval","intervalId","throttle","func","wait","options","_noop","waitMS","leading","trailing","lastExecuteTime","lastResult","lastArgs","userCall","now","Date","delta","waitLength","resultFunction","args","debounce","noOpFunction","cancel","flush","pending","maxWait","lastCallTime","isNaN","markExecuted","time","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","Math","min","requestAnimationFrame","animationFrameId","animationFrameCallback","_onErrorHandler","constructor","parent","onError","_define_property"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|