@lotte-innovate/ui-component-test 0.1.90 → 0.1.92
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +133 -133
- package/dist/globals.css +4 -4
- package/dist/lib/Typography/Header/index.mjs +1 -1
- package/dist/lib/Typography/Header/index.mjs.map +1 -1
- package/dist/lib/Typography/Text/index.mjs +1 -1
- package/dist/lib/Typography/Text/index.mjs.map +1 -1
- package/dist/lib/components/Accordion/index.mjs +1 -1
- package/dist/lib/components/Accordion/index.mjs.map +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogAction.mjs +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogAction.mjs.map +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogCancel.mjs +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogCancel.mjs.map +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogContent.mjs +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogContent.mjs.map +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogDescription.mjs +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogDescription.mjs.map +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogTitle.mjs +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogTitle.mjs.map +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogTrigger.mjs +1 -1
- package/dist/lib/components/AlertDialog/AlertDialogTrigger.mjs.map +1 -1
- package/dist/lib/components/AspectRatio/index.mjs +1 -1
- package/dist/lib/components/AspectRatio/index.mjs.map +1 -1
- package/dist/lib/components/Avatar/index.mjs +1 -1
- package/dist/lib/components/Avatar/index.mjs.map +1 -1
- package/dist/lib/components/Badge/index.mjs +1 -1
- package/dist/lib/components/Badge/index.mjs.map +1 -1
- package/dist/lib/components/BarChart/index.mjs +1 -1
- package/dist/lib/components/BarChart/index.mjs.map +1 -1
- package/dist/lib/components/BubbleChart/index.mjs +1 -1
- package/dist/lib/components/BubbleChart/index.mjs.map +1 -1
- package/dist/lib/components/Button/index.mjs +1 -1
- package/dist/lib/components/Button/index.mjs.map +1 -1
- package/dist/lib/components/Callout/CalloutIcon.mjs +1 -1
- package/dist/lib/components/Callout/CalloutIcon.mjs.map +1 -1
- package/dist/lib/components/Callout/CalloutRoot.mjs +1 -1
- package/dist/lib/components/Callout/CalloutRoot.mjs.map +1 -1
- package/dist/lib/components/Callout/CalloutText.mjs +1 -1
- package/dist/lib/components/Callout/CalloutText.mjs.map +1 -1
- package/dist/lib/components/Card/index.mjs +1 -1
- package/dist/lib/components/Card/index.mjs.map +1 -1
- package/dist/lib/components/Checkbox/index.mjs +1 -1
- package/dist/lib/components/Checkbox/index.mjs.map +1 -1
- package/dist/lib/components/CheckboxCard/index.mjs +1 -1
- package/dist/lib/components/CheckboxCard/index.mjs.map +1 -1
- package/dist/lib/components/CheckboxGroup/CheckboxGroupRoot.mjs +1 -1
- package/dist/lib/components/CheckboxGroup/CheckboxGroupRoot.mjs.map +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuContent.mjs +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuContent.mjs.map +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuItem.mjs +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuItem.mjs.map +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuItemIndicator.mjs +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuItemIndicator.mjs.map +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuLabel.mjs +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuLabel.mjs.map +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuSubContent.mjs +1 -1
- package/dist/lib/components/ContextMenu/ContextMenuSubContent.mjs.map +1 -1
- package/dist/lib/components/DataList/DataListItem.mjs +1 -1
- package/dist/lib/components/DataList/DataListItem.mjs.map +1 -1
- package/dist/lib/components/DataList/DataListLabel.mjs +1 -1
- package/dist/lib/components/DataList/DataListLabel.mjs.map +1 -1
- package/dist/lib/components/DataList/DataListRoot.mjs +1 -1
- package/dist/lib/components/DataList/DataListRoot.mjs.map +1 -1
- package/dist/lib/components/DataList/DataListValue.mjs +1 -1
- package/dist/lib/components/DataList/DataListValue.mjs.map +1 -1
- package/dist/lib/components/Dialog/DialogAction.mjs +1 -1
- package/dist/lib/components/Dialog/DialogAction.mjs.map +1 -1
- package/dist/lib/components/Dialog/DialogCancel.mjs +1 -1
- package/dist/lib/components/Dialog/DialogCancel.mjs.map +1 -1
- package/dist/lib/components/Dialog/DialogContent.mjs +1 -1
- package/dist/lib/components/Dialog/DialogContent.mjs.map +1 -1
- package/dist/lib/components/Dialog/DialogDescription.mjs +1 -1
- package/dist/lib/components/Dialog/DialogDescription.mjs.map +1 -1
- package/dist/lib/components/Dialog/DialogSlot.mjs +1 -1
- package/dist/lib/components/Dialog/DialogSlot.mjs.map +1 -1
- package/dist/lib/components/Dialog/DialogTitle.mjs +1 -1
- package/dist/lib/components/Dialog/DialogTitle.mjs.map +1 -1
- package/dist/lib/components/DoughnutChart/index.mjs +1 -1
- package/dist/lib/components/DoughnutChart/index.mjs.map +1 -1
- package/dist/lib/components/DropdownMenu/DropdonMenuSubContent.mjs +1 -1
- package/dist/lib/components/DropdownMenu/DropdonMenuSubContent.mjs.map +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuContent.mjs +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuContent.mjs.map +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuItem.mjs +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuItem.mjs.map +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuItemIndicator.mjs +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuItemIndicator.mjs.map +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuLable.mjs +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuLable.mjs.map +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuTrigger.mjs +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenuTrigger.mjs.map +1 -1
- package/dist/lib/components/HoverCard/HoverCardContent.mjs +1 -1
- package/dist/lib/components/HoverCard/HoverCardContent.mjs.map +1 -1
- package/dist/lib/components/IconButton/index.mjs +1 -1
- package/dist/lib/components/IconButton/index.mjs.map +1 -1
- package/dist/lib/components/Inset/index.mjs +1 -1
- package/dist/lib/components/Inset/index.mjs.map +1 -1
- package/dist/lib/components/Label/index.mjs +1 -1
- package/dist/lib/components/Label/index.mjs.map +1 -1
- package/dist/lib/components/LineChart/index.mjs +1 -1
- package/dist/lib/components/LineChart/index.mjs.map +1 -1
- package/dist/lib/components/Menubar/MenubarContent.mjs +1 -1
- package/dist/lib/components/Menubar/MenubarContent.mjs.map +1 -1
- package/dist/lib/components/Menubar/MenubarItem.mjs +1 -1
- package/dist/lib/components/Menubar/MenubarItem.mjs.map +1 -1
- package/dist/lib/components/Menubar/MenubarItemIndicator.mjs +1 -1
- package/dist/lib/components/Menubar/MenubarItemIndicator.mjs.map +1 -1
- package/dist/lib/components/Menubar/MenubarRoot.mjs +1 -1
- package/dist/lib/components/Menubar/MenubarRoot.mjs.map +1 -1
- package/dist/lib/components/Menubar/MenubarSubContent.mjs +1 -1
- package/dist/lib/components/Menubar/MenubarSubContent.mjs.map +1 -1
- package/dist/lib/components/Menubar/MenubarTrigger.mjs +1 -1
- package/dist/lib/components/Menubar/MenubarTrigger.mjs.map +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuContent.mjs +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuContent.mjs.map +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuLink.mjs +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuLink.mjs.map +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuList.mjs +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuList.mjs.map +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuTrigger.mjs +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuTrigger.mjs.map +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuViewport.mjs +1 -1
- package/dist/lib/components/NavigationMenu/NavigationMenuViewport.mjs.map +1 -1
- package/dist/lib/components/PieChart/index.mjs +1 -1
- package/dist/lib/components/PieChart/index.mjs.map +1 -1
- package/dist/lib/components/Popover/PopoverClose.mjs +1 -1
- package/dist/lib/components/Popover/PopoverClose.mjs.map +1 -1
- package/dist/lib/components/Popover/PopoverContent.mjs +1 -1
- package/dist/lib/components/Popover/PopoverContent.mjs.map +1 -1
- package/dist/lib/components/Progress/index.mjs +1 -1
- package/dist/lib/components/Progress/index.mjs.map +1 -1
- package/dist/lib/components/RadarChart/index.mjs +1 -1
- package/dist/lib/components/RadarChart/index.mjs.map +1 -1
- package/dist/lib/components/Radio/index.mjs +1 -1
- package/dist/lib/components/Radio/index.mjs.map +1 -1
- package/dist/lib/components/RadioCards/RadioCardsItem.mjs +1 -1
- package/dist/lib/components/RadioCards/RadioCardsItem.mjs.map +1 -1
- package/dist/lib/components/RadioCards/RadioCardsRoot.mjs +1 -1
- package/dist/lib/components/RadioCards/RadioCardsRoot.mjs.map +1 -1
- package/dist/lib/components/RadioGroup/RadioGroupItem.mjs +1 -1
- package/dist/lib/components/RadioGroup/RadioGroupItem.mjs.map +1 -1
- package/dist/lib/components/RadioGroup/RadioGroupRoot.mjs +1 -1
- package/dist/lib/components/RadioGroup/RadioGroupRoot.mjs.map +1 -1
- package/dist/lib/components/SegmentedControl/SegmentedControlRoot.mjs +1 -1
- package/dist/lib/components/SegmentedControl/SegmentedControlRoot.mjs.map +1 -1
- package/dist/lib/components/Select/index.mjs +1 -1
- package/dist/lib/components/Select/index.mjs.map +1 -1
- package/dist/lib/components/Separator/index.mjs +1 -1
- package/dist/lib/components/Separator/index.mjs.map +1 -1
- package/dist/lib/components/Skeleton/index.mjs +1 -1
- package/dist/lib/components/Skeleton/index.mjs.map +1 -1
- package/dist/lib/components/Slider/index.mjs +1 -1
- package/dist/lib/components/Slider/index.mjs.map +1 -1
- package/dist/lib/components/Spinner/index.mjs +1 -1
- package/dist/lib/components/Spinner/index.mjs.map +1 -1
- package/dist/lib/components/TabNav/index.mjs +1 -1
- package/dist/lib/components/TabNav/index.mjs.map +1 -1
- package/dist/lib/components/Table/index.mjs +1 -1
- package/dist/lib/components/Table/index.mjs.map +1 -1
- package/dist/lib/components/Tabs/index.mjs +1 -1
- package/dist/lib/components/Tabs/index.mjs.map +1 -1
- package/dist/lib/components/TextArea/index.mjs +1 -1
- package/dist/lib/components/TextArea/index.mjs.map +1 -1
- package/dist/lib/components/TextField/index.mjs +1 -1
- package/dist/lib/components/TextField/index.mjs.map +1 -1
- package/dist/lib/components/Toast/ToastActionButton.mjs +1 -1
- package/dist/lib/components/Toast/ToastActionButton.mjs.map +1 -1
- package/dist/lib/components/Toast/ToastDescription.mjs +1 -1
- package/dist/lib/components/Toast/ToastDescription.mjs.map +1 -1
- package/dist/lib/components/Toast/ToastRoot.mjs +1 -1
- package/dist/lib/components/Toast/ToastRoot.mjs.map +1 -1
- package/dist/lib/components/Toast/ToastTitle.mjs +1 -1
- package/dist/lib/components/Toast/ToastTitle.mjs.map +1 -1
- package/dist/lib/components/Toggle/ToggleWithText.mjs +1 -1
- package/dist/lib/components/Toggle/ToggleWithText.mjs.map +1 -1
- package/dist/lib/components/Toggle/index.mjs +1 -1
- package/dist/lib/components/Toggle/index.mjs.map +1 -1
- package/dist/lib/components/ToggleGroup/ToggleGroupItem.mjs +1 -1
- package/dist/lib/components/ToggleGroup/ToggleGroupItem.mjs.map +1 -1
- package/dist/lib/components/ToggleGroup/ToggleGroupRoot.mjs +1 -1
- package/dist/lib/components/ToggleGroup/ToggleGroupRoot.mjs.map +1 -1
- package/dist/lib/components/ToggleSwitch/index.mjs +1 -1
- package/dist/lib/components/ToggleSwitch/index.mjs.map +1 -1
- package/dist/lib/components/Tooltip/index.mjs +1 -1
- package/dist/lib/components/Tooltip/index.mjs.map +1 -1
- package/dist/lib/utils/utils.mjs +1 -1
- package/dist/lib/utils/utils.mjs.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +138 -135
- package/dist/_virtual/_commonjsHelpers.mjs +0 -2
- package/dist/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/dist/_virtual/index.mjs +0 -2
- package/dist/_virtual/index.mjs.map +0 -1
- package/dist/_virtual/index2.mjs +0 -2
- package/dist/_virtual/index2.mjs.map +0 -1
- package/dist/_virtual/jsx-runtime.mjs +0 -2
- package/dist/_virtual/jsx-runtime.mjs.map +0 -1
- package/dist/_virtual/jsx-runtime2.mjs +0 -2
- package/dist/_virtual/jsx-runtime2.mjs.map +0 -1
- package/dist/_virtual/react-jsx-runtime.development.mjs +0 -2
- package/dist/_virtual/react-jsx-runtime.development.mjs.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.min.mjs +0 -2
- package/dist/_virtual/react-jsx-runtime.production.min.mjs.map +0 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +0 -2
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.map +0 -1
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +0 -2
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.map +0 -1
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +0 -2
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.map +0 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +0 -2
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.map +0 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +0 -2
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.map +0 -1
- package/dist/node_modules/@kurkle/color/dist/color.esm.mjs +0 -8
- package/dist/node_modules/@kurkle/color/dist/color.esm.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/number/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/number/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/primitive/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/primitive/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-accordion/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-accordion/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-aspect-ratio/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-aspect-ratio/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-avatar/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-avatar/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-checkbox/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-checkbox/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-collapsible/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-collection/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-collection/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-context/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-context/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-context-menu/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-context-menu/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-direction/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-direction/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-hover-card/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-hover-card/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-icons/dist/react-icons.esm.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-icons/dist/react-icons.esm.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-id/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-id/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-label/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-label/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-menu/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-menu/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-menubar/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-menubar/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-navigation-menu/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-navigation-menu/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-popper/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-popper/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-portal/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-portal/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-presence/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-presence/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-progress/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-progress/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-radio-group/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-radio-group/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-scroll-area/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-scroll-area/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-select/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-select/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-slider/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-slider/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-slot/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-slot/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-switch/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-switch/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-tabs/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-tabs/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-toast/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-toast/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-toggle/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-toggle/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-toggle-group/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-toggle-group/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-previous/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-use-previous/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/base-checkbox.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/base-checkbox.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/base-radio.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/base-radio.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/base-tab-list.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/base-tab-list.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/callout.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/callout.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/callout.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/callout.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/checkbox-group.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/checkbox-group.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/checkbox-group.primitive.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/checkbox-group.primitive.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/checkbox-group.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/checkbox-group.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/data-list.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/data-list.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/data-list.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/data-list.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/dialog.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/dialog.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/dialog.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/dialog.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/flex.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/flex.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/flex.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/flex.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/grid.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/grid.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/grid.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/grid.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/heading.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/heading.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/heading.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/heading.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/hover-card.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/hover-card.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/hover-card.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/hover-card.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/icons.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/icons.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/inset.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/inset.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/inset.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/inset.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/popover.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/popover.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/popover.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/popover.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/progress.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/progress.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/progress.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/progress.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-cards.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-cards.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-cards.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-cards.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-group.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-group.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-group.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio-group.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/radio.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/scroll-area.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/scroll-area.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/scroll-area.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/scroll-area.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/segmented-control.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/segmented-control.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/segmented-control.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/segmented-control.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/select.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/select.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/select.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/select.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/separator.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/separator.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/separator.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/separator.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/skeleton.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/skeleton.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/skeleton.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/skeleton.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/slider.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/slider.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/slider.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/slider.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/spinner.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/spinner.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/spinner.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/spinner.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/switch.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/switch.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/switch.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/switch.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/tab-nav.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/tab-nav.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/table.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/table.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/table.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/table.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/tabs.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/tabs.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-area.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-area.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-area.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-area.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-field.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-field.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-field.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text-field.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/text.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/theme.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/theme.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/theme.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/components/theme.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/extract-margin-props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/extract-margin-props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/extract-props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/extract-props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-margin-styles.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-margin-styles.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-matching-gray-color.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-matching-gray-color.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-responsive-styles.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-responsive-styles.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-subtree.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/get-subtree.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/has-own-property.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/has-own-property.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/inert.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/inert.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/is-responsive-object.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/is-responsive-object.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/map-prop-values.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/map-prop-values.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/merge-styles.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/merge-styles.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/require-react-element.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/helpers/require-react-element.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/as-child.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/as-child.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/color.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/color.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/gap.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/gap.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/height.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/height.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/high-contrast.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/high-contrast.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/layout.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/layout.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/leading-trim.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/leading-trim.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/margin.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/margin.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/padding.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/padding.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/prop-def.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/prop-def.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/radius.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/radius.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/text-align.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/text-align.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/text-wrap.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/text-wrap.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/truncate.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/truncate.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/weight.prop.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/weight.prop.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/width.props.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/dist/esm/props/width.props.mjs.map +0 -1
- package/dist/node_modules/@radix-ui/themes/node_modules/@radix-ui/react-popover/dist/index.mjs +0 -2
- package/dist/node_modules/@radix-ui/themes/node_modules/@radix-ui/react-popover/dist/index.mjs.map +0 -1
- package/dist/node_modules/aria-hidden/dist/es2015/index.mjs +0 -2
- package/dist/node_modules/aria-hidden/dist/es2015/index.mjs.map +0 -1
- package/dist/node_modules/chart.js/auto/auto.mjs +0 -2
- package/dist/node_modules/chart.js/auto/auto.mjs.map +0 -1
- package/dist/node_modules/chart.js/dist/chart.mjs +0 -8
- package/dist/node_modules/chart.js/dist/chart.mjs.map +0 -1
- package/dist/node_modules/chart.js/dist/chunks/helpers.segment.mjs +0 -8
- package/dist/node_modules/chart.js/dist/chunks/helpers.segment.mjs.map +0 -1
- package/dist/node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.esm.mjs +0 -8
- package/dist/node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.esm.mjs.map +0 -1
- package/dist/node_modules/class-variance-authority/dist/index.mjs +0 -2
- package/dist/node_modules/class-variance-authority/dist/index.mjs.map +0 -1
- package/dist/node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs +0 -2
- package/dist/node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs.map +0 -1
- package/dist/node_modules/classnames/index.mjs +0 -7
- package/dist/node_modules/classnames/index.mjs.map +0 -1
- package/dist/node_modules/clsx/dist/clsx.mjs +0 -2
- package/dist/node_modules/clsx/dist/clsx.mjs.map +0 -1
- package/dist/node_modules/get-nonce/dist/es2015/index.mjs +0 -2
- package/dist/node_modules/get-nonce/dist/es2015/index.mjs.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.mjs +0 -11
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.mjs.map +0 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.mjs +0 -11
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.mjs.map +0 -1
- package/dist/node_modules/react/jsx-runtime.mjs +0 -2
- package/dist/node_modules/react/jsx-runtime.mjs.map +0 -1
- package/dist/node_modules/react-chartjs-2/dist/index.mjs +0 -2
- package/dist/node_modules/react-chartjs-2/dist/index.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.mjs +0 -2
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.mjs +0 -2
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.mjs +0 -2
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.mjs +0 -2
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.mjs +0 -2
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.mjs +0 -2
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.mjs +0 -2
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.mjs +0 -2
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.mjs +0 -2
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.mjs.map +0 -1
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.mjs +0 -2
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.mjs.map +0 -1
- package/dist/node_modules/react-style-singleton/dist/es2015/component.mjs +0 -2
- package/dist/node_modules/react-style-singleton/dist/es2015/component.mjs.map +0 -1
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.mjs +0 -2
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.mjs.map +0 -1
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.mjs +0 -2
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.mjs.map +0 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.mjs +0 -2
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.mjs.map +0 -1
- package/dist/node_modules/tslib/tslib.es6.mjs +0 -2
- package/dist/node_modules/tslib/tslib.es6.mjs.map +0 -1
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.mjs +0 -2
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.mjs.map +0 -1
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.mjs +0 -2
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.mjs.map +0 -1
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.mjs +0 -2
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.mjs.map +0 -1
- package/dist/node_modules/use-sidecar/dist/es2015/exports.mjs +0 -2
- package/dist/node_modules/use-sidecar/dist/es2015/exports.mjs.map +0 -1
- package/dist/node_modules/use-sidecar/dist/es2015/medium.mjs +0 -2
- package/dist/node_modules/use-sidecar/dist/es2015/medium.mjs.map +0 -1
@@ -1,8 +0,0 @@
|
|
1
|
-
import{Color as t}from"../../../@kurkle/color/dist/color.esm.mjs";
|
2
|
-
/*!
|
3
|
-
* Chart.js v4.4.4
|
4
|
-
* https://www.chartjs.org
|
5
|
-
* (c) 2024 Chart.js Contributors
|
6
|
-
* Released under the MIT License
|
7
|
-
*/function e(){}const n=(()=>{let t=0;return()=>t++})();function o(t){return null==t}function r(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function i(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function s(t,e){return a(t)?t:e}function c(t,e){return void 0===t?e:t}const l=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,u=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function h(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)}function f(t,e,n,o){let a,s,c;if(r(t))if(s=t.length,o)for(a=s-1;a>=0;a--)e.call(n,t[a],a);else for(a=0;a<s;a++)e.call(n,t[a],a);else if(i(t))for(c=Object.keys(t),s=c.length,a=0;a<s;a++)e.call(n,t[c[a]],c[a])}function d(t,e){let n,o,r,i;if(!t||!e||t.length!==e.length)return!1;for(n=0,o=t.length;n<o;++n)if(r=t[n],i=e[n],r.datasetIndex!==i.datasetIndex||r.index!==i.index)return!1;return!0}function p(t){if(r(t))return t.map(p);if(i(t)){const e=Object.create(null),n=Object.keys(t),o=n.length;let r=0;for(;r<o;++r)e[n[r]]=p(t[n[r]]);return e}return t}function g(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function y(t,e,n,o){if(!g(t))return;const r=e[t],a=n[t];i(r)&&i(a)?b(r,a,o):e[t]=p(a)}function b(t,e,n){const o=r(e)?e:[e],a=o.length;if(!i(t))return t;const s=(n=n||{}).merger||y;let c;for(let e=0;e<a;++e){if(c=o[e],!i(c))continue;const r=Object.keys(c);for(let e=0,o=r.length;e<o;++e)s(r[e],t,c,n)}return t}function x(t,e){return b(t,e,{merger:m})}function m(t,e,n){if(!g(t))return;const o=e[t],r=n[t];i(o)&&i(r)?x(o,r):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=p(r))}const v={"":t=>t,x:t=>t.x,y:t=>t.y};function M(t){const e=t.split("."),n=[];let o="";for(const t of e)o+=t,o.endsWith("\\")?o=o.slice(0,-1)+".":(n.push(o),o="");return n}function w(t,e){const n=v[e]||(v[e]=function(t){const e=M(t);return t=>{for(const n of e){if(""===n)break;t=t&&t[n]}return t}}(e));return n(t)}function k(t){return t.charAt(0).toUpperCase()+t.slice(1)}const _=t=>void 0!==t,O=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function T(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const S=Math.PI,C=2*S,I=C+S,j=Number.POSITIVE_INFINITY,R=S/180,W=S/2,B=S/4,A=2*S/3,D=Math.log10,N=Math.sign;function L(t,e,n){return Math.abs(t-e)<n}function z(t){const e=Math.round(t);t=L(t,e,t/1e3)?e:t;const n=Math.pow(10,Math.floor(D(t))),o=t/n;return(o<=1?1:o<=2?2:o<=5?5:10)*n}function E(t){const e=[],n=Math.sqrt(t);let o;for(o=1;o<n;o++)t%o==0&&(e.push(o),e.push(t/o));return n===(0|n)&&e.push(n),e.sort(((t,e)=>t-e)).pop(),e}function H(t){return!isNaN(parseFloat(t))&&isFinite(t)}function F(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function Q(t,e,n){let o,r,i;for(o=0,r=t.length;o<r;o++)i=t[o][n],isNaN(i)||(e.min=Math.min(e.min,i),e.max=Math.max(e.max,i))}function q(t){return t*(S/180)}function $(t){return t*(180/S)}function K(t){if(!a(t))return;let e=1,n=0;for(;Math.round(t*e)/e!==t;)e*=10,n++;return n}function J(t,e){const n=e.x-t.x,o=e.y-t.y,r=Math.sqrt(n*n+o*o);let i=Math.atan2(o,n);return i<-.5*S&&(i+=C),{angle:i,distance:r}}function V(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function G(t,e){return(t-e+I)%C-S}function Y(t){return(t%C+C)%C}function U(t,e,n,o){const r=Y(t),i=Y(e),a=Y(n),s=Y(i-r),c=Y(a-r),l=Y(r-i),u=Y(r-a);return r===i||r===a||o&&i===a||s>c&&l<u}function X(t,e,n){return Math.max(e,Math.min(n,t))}function Z(t){return X(t,-32768,32767)}function tt(t,e,n,o=1e-6){return t>=Math.min(e,n)-o&&t<=Math.max(e,n)+o}function et(t,e,n){n=n||(n=>t[n]<e);let o,r=t.length-1,i=0;for(;r-i>1;)o=i+r>>1,n(o)?i=o:r=o;return{lo:i,hi:r}}const nt=(t,e,n,o)=>et(t,n,o?o=>{const r=t[o][e];return r<n||r===n&&t[o+1][e]===n}:o=>t[o][e]<n),ot=(t,e,n)=>et(t,n,(o=>t[o][e]>=n));function rt(t,e,n){let o=0,r=t.length;for(;o<r&&t[o]<e;)o++;for(;r>o&&t[r-1]>n;)r--;return o>0||r<t.length?t.slice(o,r):t}const it=["push","pop","shift","splice","unshift"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),it.forEach((e=>{const n="_onData"+k(e),o=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const r=o.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[n]&&t[n](...e)})),r}})})))}function st(t,e){const n=t._chartjs;if(!n)return;const o=n.listeners,r=o.indexOf(e);-1!==r&&o.splice(r,1),o.length>0||(it.forEach((e=>{delete t[e]})),delete t._chartjs)}function ct(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const lt="undefined"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ut(t,e){let n=[],o=!1;return function(...r){n=r,o||(o=!0,lt.call(window,(()=>{o=!1,t.apply(e,n)})))}}function ht(t,e){let n;return function(...o){return e?(clearTimeout(n),n=setTimeout(t,e,o)):t.apply(this,o),e}}const ft=t=>"start"===t?"left":"end"===t?"right":"center",dt=(t,e,n)=>"start"===t?e:"end"===t?n:(e+n)/2,pt=(t,e,n,o)=>t===(o?"left":"right")?n:"center"===t?(e+n)/2:e;function gt(t,e,n){const o=e.length;let r=0,i=o;if(t._sorted){const{iScale:a,_parsed:s}=t,c=a.axis,{min:l,max:u,minDefined:h,maxDefined:f}=a.getUserBounds();h&&(r=X(Math.min(nt(s,c,l).lo,n?o:nt(e,c,a.getPixelForValue(l)).lo),0,o-1)),i=f?X(Math.max(nt(s,a.axis,u,!0).hi+1,n?0:nt(e,c,a.getPixelForValue(u),!0).hi+1),r,o)-r:o-r}return{start:r,count:i}}function yt(t){const{xScale:e,yScale:n,_scaleRanges:o}=t,r={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!o)return t._scaleRanges=r,!0;const i=o.xmin!==e.min||o.xmax!==e.max||o.ymin!==n.min||o.ymax!==n.max;return Object.assign(o,r),i}const bt=t=>0===t||1===t,xt=(t,e,n)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*C/n),mt=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*C/n)+1,vt={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*W),easeOutSine:t=>Math.sin(t*W),easeInOutSine:t=>-.5*(Math.cos(S*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>bt(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>bt(t)?t:xt(t,.075,.3),easeOutElastic:t=>bt(t)?t:mt(t,.075,.3),easeInOutElastic(t){const e=.1125;return bt(t)?t:t<.5?.5*xt(2*t,e,.45):.5+.5*mt(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-vt.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,n=2.75;return t<1/n?e*t*t:t<2/n?e*(t-=1.5/n)*t+.75:t<2.5/n?e*(t-=2.25/n)*t+.9375:e*(t-=2.625/n)*t+.984375},easeInOutBounce:t=>t<.5?.5*vt.easeInBounce(2*t):.5*vt.easeOutBounce(2*t-1)+.5};function Mt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function wt(e){return Mt(e)?e:new t(e)}function kt(e){return Mt(e)?e:new t(e).saturate(.5).darken(.1).hexString()}const _t=["x","y","borderWidth","radius","tension"],Ot=["color","borderColor","backgroundColor"];const Pt=new Map;function Tt(t,e,n){return function(t,e){e=e||{};const n=t+JSON.stringify(e);let o=Pt.get(n);return o||(o=new Intl.NumberFormat(t,e),Pt.set(n,o)),o}(e,n).format(t)}const St={values:t=>r(t)?t:""+t,numeric(t,e,n){if(0===t)return"0";const o=this.chart.options.locale;let r,i=t;if(n.length>1){const e=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(e<1e-4||e>1e15)&&(r="scientific"),i=function(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t));return n}(t,n)}const a=D(Math.abs(i)),s=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),c={notation:r,minimumFractionDigits:s,maximumFractionDigits:s};return Object.assign(c,this.options.ticks.format),Tt(t,o,c)},logarithmic(t,e,n){if(0===t)return"0";const o=n[e].significand||t/Math.pow(10,Math.floor(D(t)));return[1,2,3,5,10,15].includes(o)||e>.8*n.length?St.numeric.call(this,t,e,n):""}};var Ct={formatters:St};const It=Object.create(null),jt=Object.create(null);function Rt(t,e){if(!e)return t;const n=e.split(".");for(let e=0,o=n.length;e<o;++e){const o=n[e];t=t[o]||(t[o]=Object.create(null))}return t}function Wt(t,e,n){return"string"==typeof e?b(Rt(t,e),n):b(Rt(t,""),e)}class Bt{constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>kt(e.backgroundColor),this.hoverBorderColor=(t,e)=>kt(e.borderColor),this.hoverColor=(t,e)=>kt(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return Wt(this,t,e)}get(t){return Rt(this,t)}describe(t,e){return Wt(jt,t,e)}override(t,e){return Wt(It,t,e)}route(t,e,n,o){const r=Rt(this,t),a=Rt(this,n),s="_"+e;Object.defineProperties(r,{[s]:{value:r[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[s],e=a[o];return i(t)?Object.assign({},e,t):c(t,e)},set(t){this[s]=t}}})}apply(t){t.forEach((t=>t(this)))}}var At=new Bt({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:Ot},numbers:{type:"number",properties:_t}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Ct.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function Dt(t){return!t||o(t.size)||o(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Nt(t,e,n,o,r){let i=e[r];return i||(i=e[r]=t.measureText(r).width,n.push(r)),i>o&&(o=i),o}function Lt(t,e,n,o){let i=(o=o||{}).data=o.data||{},a=o.garbageCollect=o.garbageCollect||[];o.font!==e&&(i=o.data={},a=o.garbageCollect=[],o.font=e),t.save(),t.font=e;let s=0;const c=n.length;let l,u,h,f,d;for(l=0;l<c;l++)if(f=n[l],null==f||r(f)){if(r(f))for(u=0,h=f.length;u<h;u++)d=f[u],null==d||r(d)||(s=Nt(t,i,a,s,d))}else s=Nt(t,i,a,s,f);t.restore();const p=a.length/2;if(p>n.length){for(l=0;l<p;l++)delete i[a[l]];a.splice(0,p)}return s}function zt(t,e,n){const o=t.currentDevicePixelRatio,r=0!==n?Math.max(n/2,.5):0;return Math.round((e-r)*o)/o+r}function Et(t,e){(e||t)&&((e=e||t.getContext("2d")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function Ht(t,e,n,o){Ft(t,e,n,o,null)}function Ft(t,e,n,o,r){let i,a,s,c,l,u,h,f;const d=e.pointStyle,p=e.rotation,g=e.radius;let y=(p||0)*R;if(d&&"object"==typeof d&&(i=d.toString(),"[object HTMLImageElement]"===i||"[object HTMLCanvasElement]"===i))return t.save(),t.translate(n,o),t.rotate(y),t.drawImage(d,-d.width/2,-d.height/2,d.width,d.height),void t.restore();if(!(isNaN(g)||g<=0)){switch(t.beginPath(),d){default:r?t.ellipse(n,o,r/2,g,0,0,C):t.arc(n,o,g,0,C),t.closePath();break;case"triangle":u=r?r/2:g,t.moveTo(n+Math.sin(y)*u,o-Math.cos(y)*g),y+=A,t.lineTo(n+Math.sin(y)*u,o-Math.cos(y)*g),y+=A,t.lineTo(n+Math.sin(y)*u,o-Math.cos(y)*g),t.closePath();break;case"rectRounded":l=.516*g,c=g-l,a=Math.cos(y+B)*c,h=Math.cos(y+B)*(r?r/2-l:c),s=Math.sin(y+B)*c,f=Math.sin(y+B)*(r?r/2-l:c),t.arc(n-h,o-s,l,y-S,y-W),t.arc(n+f,o-a,l,y-W,y),t.arc(n+h,o+s,l,y,y+W),t.arc(n-f,o+a,l,y+W,y+S),t.closePath();break;case"rect":if(!p){c=Math.SQRT1_2*g,u=r?r/2:c,t.rect(n-u,o-c,2*u,2*c);break}y+=B;case"rectRot":h=Math.cos(y)*(r?r/2:g),a=Math.cos(y)*g,s=Math.sin(y)*g,f=Math.sin(y)*(r?r/2:g),t.moveTo(n-h,o-s),t.lineTo(n+f,o-a),t.lineTo(n+h,o+s),t.lineTo(n-f,o+a),t.closePath();break;case"crossRot":y+=B;case"cross":h=Math.cos(y)*(r?r/2:g),a=Math.cos(y)*g,s=Math.sin(y)*g,f=Math.sin(y)*(r?r/2:g),t.moveTo(n-h,o-s),t.lineTo(n+h,o+s),t.moveTo(n+f,o-a),t.lineTo(n-f,o+a);break;case"star":h=Math.cos(y)*(r?r/2:g),a=Math.cos(y)*g,s=Math.sin(y)*g,f=Math.sin(y)*(r?r/2:g),t.moveTo(n-h,o-s),t.lineTo(n+h,o+s),t.moveTo(n+f,o-a),t.lineTo(n-f,o+a),y+=B,h=Math.cos(y)*(r?r/2:g),a=Math.cos(y)*g,s=Math.sin(y)*g,f=Math.sin(y)*(r?r/2:g),t.moveTo(n-h,o-s),t.lineTo(n+h,o+s),t.moveTo(n+f,o-a),t.lineTo(n-f,o+a);break;case"line":a=r?r/2:Math.cos(y)*g,s=Math.sin(y)*g,t.moveTo(n-a,o-s),t.lineTo(n+a,o+s);break;case"dash":t.moveTo(n,o),t.lineTo(n+Math.cos(y)*(r?r/2:g),o+Math.sin(y)*g);break;case!1:t.closePath()}t.fill(),e.borderWidth>0&&t.stroke()}}function Qt(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.x<e.right+n&&t.y>e.top-n&&t.y<e.bottom+n}function qt(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function $t(t){t.restore()}function Kt(t,e,n,o,r){if(!e)return t.lineTo(n.x,n.y);if("middle"===r){const o=(e.x+n.x)/2;t.lineTo(o,e.y),t.lineTo(o,n.y)}else"after"===r!=!!o?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y);t.lineTo(n.x,n.y)}function Jt(t,e,n,o){if(!e)return t.lineTo(n.x,n.y);t.bezierCurveTo(o?e.cp1x:e.cp2x,o?e.cp1y:e.cp2y,o?n.cp2x:n.cp1x,o?n.cp2y:n.cp1y,n.x,n.y)}function Vt(t,e,n,o,r){if(r.strikethrough||r.underline){const i=t.measureText(o),a=e-i.actualBoundingBoxLeft,s=e+i.actualBoundingBoxRight,c=n-i.actualBoundingBoxAscent,l=n+i.actualBoundingBoxDescent,u=r.strikethrough?(c+l)/2:l;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=r.decorationWidth||2,t.moveTo(a,u),t.lineTo(s,u),t.stroke()}}function Gt(t,e){const n=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=n}function Yt(t,e,n,i,a,s={}){const c=r(e)?e:[e],l=s.strokeWidth>0&&""!==s.strokeColor;let u,h;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),o(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,s),u=0;u<c.length;++u)h=c[u],s.backdrop&&Gt(t,s.backdrop),l&&(s.strokeColor&&(t.strokeStyle=s.strokeColor),o(s.strokeWidth)||(t.lineWidth=s.strokeWidth),t.strokeText(h,n,i,s.maxWidth)),t.fillText(h,n,i,s.maxWidth),Vt(t,n,i,h,s),i+=Number(a.lineHeight);t.restore()}function Ut(t,e){const{x:n,y:o,w:r,h:i,radius:a}=e;t.arc(n+a.topLeft,o+a.topLeft,a.topLeft,1.5*S,S,!0),t.lineTo(n,o+i-a.bottomLeft),t.arc(n+a.bottomLeft,o+i-a.bottomLeft,a.bottomLeft,S,W,!0),t.lineTo(n+r-a.bottomRight,o+i),t.arc(n+r-a.bottomRight,o+i-a.bottomRight,a.bottomRight,W,0,!0),t.lineTo(n+r,o+a.topRight),t.arc(n+r-a.topRight,o+a.topRight,a.topRight,0,-W,!0),t.lineTo(n+a.topLeft,o)}const Xt=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,Zt=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function te(t,e){const n=(""+t).match(Xt);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t}const ee=t=>+t||0;function ne(t,e){const n={},o=i(e),r=o?Object.keys(e):e,a=i(t)?o?n=>c(t[n],t[e[n]]):e=>t[e]:()=>t;for(const t of r)n[t]=ee(a(t));return n}function oe(t){return ne(t,{top:"y",right:"x",bottom:"y",left:"x"})}function re(t){return ne(t,["topLeft","topRight","bottomLeft","bottomRight"])}function ie(t){const e=oe(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function ae(t,e){t=t||{},e=e||At.font;let n=c(t.size,e.size);"string"==typeof n&&(n=parseInt(n,10));let o=c(t.style,e.style);o&&!(""+o).match(Zt)&&(console.warn('Invalid font style specified: "'+o+'"'),o=void 0);const r={family:c(t.family,e.family),lineHeight:te(c(t.lineHeight,e.lineHeight),n),size:n,style:o,weight:c(t.weight,e.weight),string:""};return r.string=Dt(r),r}function se(t,e,n,o){let i,a,s,c=!0;for(i=0,a=t.length;i<a;++i)if(s=t[i],void 0!==s&&(void 0!==e&&"function"==typeof s&&(s=s(e),c=!1),void 0!==n&&r(s)&&(s=s[n%s.length],c=!1),void 0!==s))return o&&!c&&(o.cacheable=!1),s}function ce(t,e,n){const{min:o,max:r}=t,i=u(e,(r-o)/2),a=(t,e)=>n&&0===t?0:t+e;return{min:a(o,-Math.abs(i)),max:a(r,i)}}function le(t,e){return Object.assign(Object.create(t),e)}function ue(t,e=[""],n,o,r=(()=>t[0])){const i=n||t;void 0===o&&(o=Me("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:i,_fallback:o,_getTarget:r,override:n=>ue([n,...t],e,i,o)};return new Proxy(a,{deleteProperty:(e,n)=>(delete e[n],delete e._keys,delete t[0][n],!0),get:(n,o)=>ge(n,o,(()=>function(t,e,n,o){let r;for(const i of e)if(r=Me(de(i,t),n),void 0!==r)return pe(t,r)?me(n,o,t,r):r}(o,e,t,n))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>we(t).includes(e),ownKeys:t=>we(t),set(t,e,n){const o=t._storage||(t._storage=r());return t[e]=o[e]=n,delete t._keys,!0}})}function he(t,e,n,o){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:fe(t,o),setContext:e=>he(t,e,n,o),override:r=>he(t.override(r),e,n,o)};return new Proxy(a,{deleteProperty:(e,n)=>(delete e[n],delete t[n],!0),get:(t,e,n)=>ge(t,e,(()=>function(t,e,n){const{_proxy:o,_context:a,_subProxy:s,_descriptors:c}=t;let l=o[e];O(l)&&c.isScriptable(e)&&(l=function(t,e,n,o){const{_proxy:r,_context:i,_subProxy:a,_stack:s}=n;if(s.has(t))throw new Error("Recursion detected: "+Array.from(s).join("->")+"->"+t);s.add(t);let c=e(i,a||o);s.delete(t),pe(t,c)&&(c=me(r._scopes,r,t,c));return c}(e,l,t,n));r(l)&&l.length&&(l=function(t,e,n,o){const{_proxy:r,_context:a,_subProxy:s,_descriptors:c}=n;if(void 0!==a.index&&o(t))return e[a.index%e.length];if(i(e[0])){const n=e,o=r._scopes.filter((t=>t!==n));e=[];for(const i of n){const n=me(o,r,t,i);e.push(he(n,a,s&&s[t],c))}}return e}(e,l,t,c.isIndexable));pe(e,l)&&(l=he(l,a,s&&s[e],c));return l}(t,e,n))),getOwnPropertyDescriptor:(e,n)=>e._descriptors.allKeys?Reflect.has(t,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,n),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,n)=>Reflect.has(t,n),ownKeys:()=>Reflect.ownKeys(t),set:(e,n,o)=>(t[n]=o,delete e[n],!0)})}function fe(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:o=e.indexable,_allKeys:r=e.allKeys}=t;return{allKeys:r,scriptable:n,indexable:o,isScriptable:O(n)?n:()=>n,isIndexable:O(o)?o:()=>o}}const de=(t,e)=>t?t+k(e):e,pe=(t,e)=>i(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function ge(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||"constructor"===e)return t[e];const o=n();return t[e]=o,o}function ye(t,e,n){return O(t)?t(e,n):t}const be=(t,e)=>!0===t?e:"string"==typeof t?w(e,t):void 0;function xe(t,e,n,o,r){for(const i of e){const e=be(n,i);if(e){t.add(e);const i=ye(e._fallback,n,r);if(void 0!==i&&i!==n&&i!==o)return i}else if(!1===e&&void 0!==o&&n!==o)return null}return!1}function me(t,e,n,o){const a=e._rootScopes,s=ye(e._fallback,n,o),c=[...t,...a],l=new Set;l.add(o);let u=ve(l,c,n,s||n,o);return null!==u&&((void 0===s||s===n||(u=ve(l,c,s,u,o),null!==u))&&ue(Array.from(l),[""],a,s,(()=>function(t,e,n){const o=t._getTarget();e in o||(o[e]={});const a=o[e];if(r(a)&&i(n))return n;return a||{}}(e,n,o))))}function ve(t,e,n,o,r){for(;n;)n=xe(t,e,n,o,r);return n}function Me(t,e){for(const n of e){if(!n)continue;const e=n[t];if(void 0!==e)return e}}function we(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const n of t)for(const t of Object.keys(n).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ke(t,e,n,o){const{iScale:r}=t,{key:i="r"}=this._parsing,a=new Array(o);let s,c,l,u;for(s=0,c=o;s<c;++s)l=s+n,u=e[l],a[s]={r:r.parse(w(u,i),l)};return a}const _e=Number.EPSILON||1e-14,Oe=(t,e)=>e<t.length&&!t[e].skip&&t[e],Pe=t=>"x"===t?"y":"x";function Te(t,e,n,o){const r=t.skip?e:t,i=e,a=n.skip?e:n,s=V(i,r),c=V(a,i);let l=s/(s+c),u=c/(s+c);l=isNaN(l)?0:l,u=isNaN(u)?0:u;const h=o*l,f=o*u;return{previous:{x:i.x-h*(a.x-r.x),y:i.y-h*(a.y-r.y)},next:{x:i.x+f*(a.x-r.x),y:i.y+f*(a.y-r.y)}}}function Se(t,e="x"){const n=Pe(e),o=t.length,r=Array(o).fill(0),i=Array(o);let a,s,c,l=Oe(t,0);for(a=0;a<o;++a)if(s=c,c=l,l=Oe(t,a+1),c){if(l){const t=l[e]-c[e];r[a]=0!==t?(l[n]-c[n])/t:0}i[a]=s?l?N(r[a-1])!==N(r[a])?0:(r[a-1]+r[a])/2:r[a-1]:r[a]}!function(t,e,n){const o=t.length;let r,i,a,s,c,l=Oe(t,0);for(let u=0;u<o-1;++u)c=l,l=Oe(t,u+1),c&&l&&(L(e[u],0,_e)?n[u]=n[u+1]=0:(r=n[u]/e[u],i=n[u+1]/e[u],s=Math.pow(r,2)+Math.pow(i,2),s<=9||(a=3/Math.sqrt(s),n[u]=r*a*e[u],n[u+1]=i*a*e[u])))}(t,r,i),function(t,e,n="x"){const o=Pe(n),r=t.length;let i,a,s,c=Oe(t,0);for(let l=0;l<r;++l){if(a=s,s=c,c=Oe(t,l+1),!s)continue;const r=s[n],u=s[o];a&&(i=(r-a[n])/3,s[`cp1${n}`]=r-i,s[`cp1${o}`]=u-i*e[l]),c&&(i=(c[n]-r)/3,s[`cp2${n}`]=r+i,s[`cp2${o}`]=u+i*e[l])}}(t,i,e)}function Ce(t,e,n){return Math.max(Math.min(t,n),e)}function Ie(t,e,n,o,r){let i,a,s,c;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),"monotone"===e.cubicInterpolationMode)Se(t,r);else{let n=o?t[t.length-1]:t[0];for(i=0,a=t.length;i<a;++i)s=t[i],c=Te(n,s,t[Math.min(i+1,a-(o?0:1))%a],e.tension),s.cp1x=c.previous.x,s.cp1y=c.previous.y,s.cp2x=c.next.x,s.cp2y=c.next.y,n=s}e.capBezierPoints&&function(t,e){let n,o,r,i,a,s=Qt(t[0],e);for(n=0,o=t.length;n<o;++n)a=i,i=s,s=n<o-1&&Qt(t[n+1],e),i&&(r=t[n],a&&(r.cp1x=Ce(r.cp1x,e.left,e.right),r.cp1y=Ce(r.cp1y,e.top,e.bottom)),s&&(r.cp2x=Ce(r.cp2x,e.left,e.right),r.cp2y=Ce(r.cp2y,e.top,e.bottom)))}(t,n)}function je(){return"undefined"!=typeof window&&"undefined"!=typeof document}function Re(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function We(t,e,n){let o;return"string"==typeof t?(o=parseInt(t,10),-1!==t.indexOf("%")&&(o=o/100*e.parentNode[n])):o=t,o}const Be=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function Ae(t,e){return Be(t).getPropertyValue(e)}const De=["top","right","bottom","left"];function Ne(t,e,n){const o={};n=n?"-"+n:"";for(let r=0;r<4;r++){const i=De[r];o[i]=parseFloat(t[e+"-"+i+n])||0}return o.width=o.left+o.right,o.height=o.top+o.bottom,o}const Le=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function ze(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:o}=e,r=Be(n),i="border-box"===r.boxSizing,a=Ne(r,"padding"),s=Ne(r,"border","width"),{x:c,y:l,box:u}=function(t,e){const n=t.touches,o=n&&n.length?n[0]:t,{offsetX:r,offsetY:i}=o;let a,s,c=!1;if(Le(r,i,t.target))a=r,s=i;else{const t=e.getBoundingClientRect();a=o.clientX-t.left,s=o.clientY-t.top,c=!0}return{x:a,y:s,box:c}}(t,n),h=a.left+(u&&s.left),f=a.top+(u&&s.top);let{width:d,height:p}=e;return i&&(d-=a.width+s.width,p-=a.height+s.height),{x:Math.round((c-h)/d*n.width/o),y:Math.round((l-f)/p*n.height/o)}}const Ee=t=>Math.round(10*t)/10;function He(t,e,n,o){const r=Be(t),i=Ne(r,"margin"),a=We(r.maxWidth,t,"clientWidth")||j,s=We(r.maxHeight,t,"clientHeight")||j,c=function(t,e,n){let o,r;if(void 0===e||void 0===n){const i=t&&Re(t);if(i){const t=i.getBoundingClientRect(),a=Be(i),s=Ne(a,"border","width"),c=Ne(a,"padding");e=t.width-c.width-s.width,n=t.height-c.height-s.height,o=We(a.maxWidth,i,"clientWidth"),r=We(a.maxHeight,i,"clientHeight")}else e=t.clientWidth,n=t.clientHeight}return{width:e,height:n,maxWidth:o||j,maxHeight:r||j}}(t,e,n);let{width:l,height:u}=c;if("content-box"===r.boxSizing){const t=Ne(r,"border","width"),e=Ne(r,"padding");l-=e.width+t.width,u-=e.height+t.height}l=Math.max(0,l-i.width),u=Math.max(0,o?l/o:u-i.height),l=Ee(Math.min(l,a,c.maxWidth)),u=Ee(Math.min(u,s,c.maxHeight)),l&&!u&&(u=Ee(l/2));return(void 0!==e||void 0!==n)&&o&&c.height&&u>c.height&&(u=c.height,l=Ee(Math.floor(u*o))),{width:l,height:u}}function Fe(t,e,n){const o=e||1,r=Math.floor(t.height*o),i=Math.floor(t.width*o);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(n||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==o||a.height!==r||a.width!==i)&&(t.currentDevicePixelRatio=o,a.height=r,a.width=i,t.ctx.setTransform(o,0,0,o,0,0),!0)}const Qe=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};je()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch(t){}return t}();function qe(t,e){const n=Ae(t,e),o=n&&n.match(/^(\d+)(\.\d+)?px$/);return o?+o[1]:void 0}function $e(t,e,n,o){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function Ke(t,e,n,o){return{x:t.x+n*(e.x-t.x),y:"middle"===o?n<.5?t.y:e.y:"after"===o?n<1?t.y:e.y:n>0?e.y:t.y}}function Je(t,e,n,o){const r={x:t.cp2x,y:t.cp2y},i={x:e.cp1x,y:e.cp1y},a=$e(t,r,n),s=$e(r,i,n),c=$e(i,e,n),l=$e(a,s,n),u=$e(s,c,n);return $e(l,u,n)}function Ve(t,e,n){return t?function(t,e){return{x:n=>t+t+e-n,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,n):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ge(t,e){let n,o;"ltr"!==e&&"rtl"!==e||(n=t.canvas.style,o=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=o)}function Ye(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Ue(t){return"angle"===t?{between:U,compare:G,normalize:Y}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Xe({start:t,end:e,count:n,loop:o,style:r}){return{start:t%n,end:e%n,loop:o&&(e-t+1)%n==0,style:r}}function Ze(t,e,n){if(!n)return[t];const{property:o,start:r,end:i}=n,a=e.length,{compare:s,between:c,normalize:l}=Ue(o),{start:u,end:h,loop:f,style:d}=function(t,e,n){const{property:o,start:r,end:i}=n,{between:a,normalize:s}=Ue(o),c=e.length;let l,u,{start:h,end:f,loop:d}=t;if(d){for(h+=c,f+=c,l=0,u=c;l<u&&a(s(e[h%c][o]),r,i);++l)h--,f--;h%=c,f%=c}return f<h&&(f+=c),{start:h,end:f,loop:d,style:t.style}}(t,e,n),p=[];let g,y,b,x=!1,m=null;const v=()=>x||c(r,b,g)&&0!==s(r,b),M=()=>!x||0===s(i,g)||c(i,b,g);for(let t=u,n=u;t<=h;++t)y=e[t%a],y.skip||(g=l(y[o]),g!==b&&(x=c(g,r,i),null===m&&v()&&(m=0===s(g,r)?t:n),null!==m&&M()&&(p.push(Xe({start:m,end:t,loop:f,count:a,style:d})),m=null),n=t,b=g));return null!==m&&p.push(Xe({start:m,end:h,loop:f,count:a,style:d})),p}function tn(t,e){const n=[],o=t.segments;for(let r=0;r<o.length;r++){const i=Ze(o[r],t.points,e);i.length&&n.push(...i)}return n}function en(t,e){const n=t.points,o=t.options.spanGaps,r=n.length;if(!r)return[];const i=!!t._loop,{start:a,end:s}=function(t,e,n,o){let r=0,i=e-1;if(n&&!o)for(;r<e&&!t[r].skip;)r++;for(;r<e&&t[r].skip;)r++;for(r%=e,n&&(i+=r);i>r&&t[i%e].skip;)i--;return i%=e,{start:r,end:i}}(n,r,i,o);if(!0===o)return nn(t,[{start:a,end:s,loop:i}],n,e);return nn(t,function(t,e,n,o){const r=t.length,i=[];let a,s=e,c=t[e];for(a=e+1;a<=n;++a){const n=t[a%r];n.skip||n.stop?c.skip||(o=!1,i.push({start:e%r,end:(a-1)%r,loop:o}),e=s=n.stop?a:null):(s=a,c.skip&&(e=a)),c=n}return null!==s&&i.push({start:e%r,end:s%r,loop:o}),i}(n,a,s<a?s+r:s,!!t._fullLoop&&0===a&&s===r-1),n,e)}function nn(t,e,n,o){return o&&o.setContext&&n?function(t,e,n,o){const r=t._chart.getContext(),i=on(t.options),{_datasetIndex:a,options:{spanGaps:s}}=t,c=n.length,l=[];let u=i,h=e[0].start,f=h;function d(t,e,o,r){const i=s?-1:1;if(t!==e){for(t+=c;n[t%c].skip;)t-=i;for(;n[e%c].skip;)e+=i;t%c!=e%c&&(l.push({start:t%c,end:e%c,loop:o,style:r}),u=r,h=e%c)}}for(const t of e){h=s?h:t.start;let e,i=n[h%c];for(f=h+1;f<=t.end;f++){const s=n[f%c];e=on(o.setContext(le(r,{type:"segment",p0:i,p1:s,p0DataIndex:(f-1)%c,p1DataIndex:f%c,datasetIndex:a}))),rn(e,u)&&d(h,f-1,t.loop,u),i=s,u=e}h<f-1&&d(h,f-1,t.loop,u)}return l}(t,e,n,o):e}function on(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function rn(t,e){if(!e)return!1;const n=[],o=function(t,e){return Mt(e)?(n.includes(e)||n.push(e),n.indexOf(e)):e};return JSON.stringify(t,o)!==JSON.stringify(e,o)}export{$t as $,ot as A,nt as B,Qt as C,J as D,ie as E,f as F,He as G,W as H,Re as I,qe as J,Qe as K,ut as L,je as M,E as N,s as O,S as P,h as Q,ce as R,X as S,C as T,$ as U,Nt as V,Z as W,zt as X,qt as Y,Yt as Z,ct as _,se as a,ae as a0,ft as a1,dt as a2,It as a3,b as a4,k as a5,jt as a6,O as a7,he as a8,ue as a9,Ge as aA,pt as aB,Ye as aC,Ft as aD,V as aE,e as aF,Q as aG,z as aH,F as aI,L as aJ,K as aK,Ct as aL,D as aM,Lt as aN,rt as aO,et as aP,Mt as aQ,kt as aR,p as aS,y as aT,m as aU,M as aW,Dt as aX,Te as aY,Se as aZ,Ae as a_,fe as aa,x as ab,n as ac,ht as ad,Fe as ae,Et as af,P as ag,d as ah,T as ai,tt as aj,ne as ak,Ie as al,en as am,tn as an,Ke as ao,Je as ap,$e as aq,Kt as ar,Jt as as,Ht as at,Ut as au,oe as av,re as aw,Ze as ax,Y as ay,Ve as az,r as b,te as b0,I as b1,j as b2,R as b3,B as b4,A as b5,G as b6,wt as c,At as d,vt as e,w as f,a as g,_ as h,i,le as j,o as k,at as l,l as m,u as n,Tt as o,U as p,gt as q,lt as r,N as s,q as t,st as u,c as v,yt as w,H as x,ke as y,ze as z};
|
8
|
-
//# sourceMappingURL=helpers.segment.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"helpers.segment.mjs","sources":["../../../../../node_modules/chart.js/dist/chunks/helpers.segment.js"],"sourcesContent":["/*!\n * Chart.js v4.4.4\n * https://www.chartjs.org\n * (c) 2024 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , _parsed } = meta;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */ /**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, fontString as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, overrideTextDirection as aA, _textX as aB, restoreTextDirection as aC, drawPointLegend as aD, distanceBetweenPoints as aE, noop as aF, _setMinAndMaxByKey as aG, niceNum as aH, almostWhole as aI, almostEquals as aJ, _decimalPlaces as aK, Ticks as aL, log10 as aM, _longestText as aN, _filterBetween as aO, _lookup as aP, isPatternOrGradient as aQ, getHoverColor as aR, clone as aS, _merger as aT, _mergerIf as aU, _deprecated as aV, _splitKey as aW, toFontString as aX, splineCurve as aY, splineCurveMonotone as aZ, getStyle as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, _elementsEqual as ah, _isClickEvent as ai, _isBetween as aj, _readValueToProps as ak, _updateBezierControlPoints as al, _computeSegments as am, _boundSegments as an, _steppedInterpolation as ao, _bezierInterpolation as ap, _pointInLine as aq, _steppedLineTo as ar, _bezierCurveTo as as, drawPoint as at, addRoundedRectPath as au, toTRBL as av, toTRBLCorners as aw, _boundSegment as ax, _normalizeAngle as ay, getRtlAdapter as az, isArray as b, toLineHeight as b0, PITAU as b1, INFINITY as b2, RAD_PER_DEG as b3, QUARTER_PI as b4, TWO_THIRDS_PI as b5, _angleDiff as b6, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.segment.js.map\n"],"names":["noop","uid","id","isNullOrUndef","value","isArray","Array","type","Object","prototype","toString","call","slice","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","parseFloat","toDimension","callback","fn","args","thisArg","apply","each","loopable","reverse","i","len","keys","length","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone","source","map","target","create","klen","k","isValidKey","key","indexOf","_merger","options","tval","sval","merge","sources","merger","current","mergeIf","_mergerIf","hasOwnProperty","keyResolvers","v","x","o","y","_splitKey","parts","split","tmp","part","push","resolveObjectKey","obj","resolver","_getKeyResolver","_capitalize","str","charAt","toUpperCase","defined","isFunction","setsEqual","a","b","size","item","has","_isClickEvent","e","PI","Math","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","epsilon","abs","niceNum","range","roundedRange","round","niceRange","pow","floor","fraction","_factorize","result","sqrt","sort","pop","isNumber","n","isNaN","almostWhole","rounded","_setMinAndMaxByKey","array","property","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","p","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","start","end","sameAngleIsFullCircle","s","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","mid","hi","lo","_lookupByKey","last","ti","_rlookupByKey","_filterBetween","values","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","defineProperty","configurable","enumerable","forEach","method","base","res","this","object","unlistenArrayEvents","stub","splice","_arrayUnique","items","set","Set","from","requestAnimFrame","window","requestAnimationFrame","throttled","argsToUse","ticking","debounce","delay","timeout","clearTimeout","setTimeout","_toLeftRightCenter","align","_alignStartEnd","_textX","left","right","rtl","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","minDefined","maxDefined","getUserBounds","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","assign","atEdge","t","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","d","easeInOutBounce","isPatternOrGradient","color","Color","getHoverColor","saturate","darken","hexString","numbers","colors","intlCache","Map","formatNumber","num","locale","cacheKey","JSON","stringify","formatter","get","Intl","NumberFormat","getNumberFormat","format","formatters","numeric","tickValue","ticks","chart","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","remain","significand","includes","Ticks","overrides","descriptors","getScope$1","node","root","scope","Defaults","constructor","_descriptors","_appliers","animation","undefined","backgroundColor","borderColor","datasets","devicePixelRatio","context","platform","getDevicePixelRatio","elements","events","font","family","style","lineHeight","weight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","override","route","name","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","writable","local","appliers","defaults","_scriptable","startsWith","_indexable","_fallback","duration","easing","loop","to","properties","active","resize","show","animations","visible","hide","autoPadding","padding","top","bottom","display","offset","beginAtZero","bounds","clip","grace","grid","lineWidth","drawOnChartArea","drawTicks","tickLength","tickWidth","_ctx","tickColor","border","dash","dashOffset","width","title","text","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","minor","major","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","toFontString","_measureText","data","gc","longest","string","textWidth","measureText","_longestText","arrayOfThings","cache","garbageCollect","save","j","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","drawPointLegend","w","xOffset","yOffset","cornerRadius","xOffsetW","yOffsetW","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","clipArea","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","decorateText","line","opts","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","strokeStyle","fillStyle","decorationWidth","drawBackdrop","oldColor","fillRect","renderText","lines","strokeWidth","strokeColor","translation","textAlign","textBaseline","setRenderOpts","backdrop","strokeText","maxWidth","fillText","addRoundedRectPath","h","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","match","numberOrZero","_readValueToProps","props","ret","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","parseInt","console","warn","resolve","inputs","info","cacheable","_addGrace","minmax","change","keepZero","add","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","finalRootScopes","_resolve","Symbol","toStringTag","_cacheable","_scopes","_rootScopes","_getTarget","Proxy","deleteProperty","_keys","_cached","proxy","prefix","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","getPrototypeOf","getKeysFromAllScopes","ownKeys","storage","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_context","_subProxy","_stack","setContext","receiver","isScriptable","getValue","Error","join","delete","_resolveScriptable","isIndexable","arr","filter","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_parsing","parsed","r","parse","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","next","d01","d12","s01","s12","fa","fb","splineCurveMonotone","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","iPixel","vPixel","monotoneCompute","capControlPoint","pt","_updateBezierControlPoints","controlPoints","spanGaps","cubicInterpolationMode","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","document","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","ownerDocument","defaultView","getStyle","el","getPropertyValue","positions","getPositionedStyle","styles","suffix","pos","useOffsetPos","shadowRoot","getRelativePosition","event","borderBox","boxSizing","paddings","borders","box","touches","offsetX","offsetY","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","addEventListener","removeEventListener","readUsedSize","_pointInLine","p1","p2","_steppedInterpolation","_bezierInterpolation","cp1","cp2","c","getRtlAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_boundSegment","segment","startBound","endBound","getSegment","prevValue","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","_computeSegments","segmentOptions","_loop","findStartAndEnd","splitByStyles","cur","stop","solidSegments","_fullLoop","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","l","st","dir","p0","p0DataIndex","p1DataIndex","styleChanged","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","replacer"],"mappings":"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"}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import{ArcElement as t,PointElement as e,BarElement as r}from"../../chart.js/dist/chart.mjs";import{a4 as n,a0 as a,a as o,d as i,E as l,v as s,Q as u,k as c,F as h,i as d}from"../../chart.js/dist/chunks/helpers.segment.mjs";
|
2
|
-
/*!
|
3
|
-
* chartjs-plugin-datalabels v2.2.0
|
4
|
-
* https://chartjs-plugin-datalabels.netlify.app
|
5
|
-
* (c) 2017-2022 chartjs-plugin-datalabels contributors
|
6
|
-
* Released under the MIT license
|
7
|
-
*/var f=function(){if("undefined"!=typeof window){if(window.devicePixelRatio)return window.devicePixelRatio;var t=window.screen;if(t)return(t.deviceXDPI||1)/(t.logicalXDPI||1)}return 1}(),x=function(t){var e,r=[];for(t=[].concat(t);t.length;)"string"==typeof(e=t.pop())?r.unshift.apply(r,e.split("\n")):Array.isArray(e)?t.push.apply(t,e):c(t)||r.unshift(""+e);return r},y=function(t,e,r){var n,a=[].concat(e),o=a.length,i=t.font,l=0;for(t.font=r.string,n=0;n<o;++n)l=Math.max(t.measureText(a[n]).width,l);return t.font=i,{height:o*r.lineHeight,width:l}},v=function(t,e,r){return Math.max(t,Math.min(e,r))},_=function(t,e){var r,n,a,o,i=t.slice(),l=[];for(r=0,a=e.length;r<a;++r)o=e[r],-1===(n=i.indexOf(o))?l.push([o,1]):i.splice(n,1);for(r=0,a=i.length;r<a;++r)l.push([i[r],-1]);return l};function b(t,e){var r=e.x,n=e.y;if(null===r)return{x:0,y:-1};if(null===n)return{x:1,y:0};var a=t.x-r,o=t.y-n,i=Math.sqrt(a*a+o*o);return{x:i?a/i:0,y:i?o/i:-1}}var p=0,g=1,m=2,w=4,M=8;function k(t,e,r){var n=p;return t<r.left?n|=g:t>r.right&&(n|=m),e<r.top?n|=M:e>r.bottom&&(n|=w),n}function S(t,e){var r,n,a=e.anchor,o=t;return e.clamp&&(o=function(t,e){for(var r,n,a,o=t.x0,i=t.y0,l=t.x1,s=t.y1,u=k(o,i,e),c=k(l,s,e);u|c&&!(u&c);)(r=u||c)&M?(n=o+(l-o)*(e.top-i)/(s-i),a=e.top):r&w?(n=o+(l-o)*(e.bottom-i)/(s-i),a=e.bottom):r&m?(a=i+(s-i)*(e.right-o)/(l-o),n=e.right):r&g&&(a=i+(s-i)*(e.left-o)/(l-o),n=e.left),r===u?u=k(o=n,i=a,e):c=k(l=n,s=a,e);return{x0:o,x1:l,y0:i,y1:s}}(o,e.area)),"start"===a?(r=o.x0,n=o.y0):"end"===a?(r=o.x1,n=o.y1):(r=(o.x0+o.x1)/2,n=(o.y0+o.y1)/2),function(t,e,r,n,a){switch(a){case"center":r=n=0;break;case"bottom":r=0,n=1;break;case"right":r=1,n=0;break;case"left":r=-1,n=0;break;case"top":r=0,n=-1;break;case"start":r=-r,n=-n;break;case"end":break;default:a*=Math.PI/180,r=Math.cos(a),n=Math.sin(a)}return{x:t,y:e,vx:r,vy:n}}(r,n,t.vx,t.vy,e.align)}var C=function(t,e){var r=(t.startAngle+t.endAngle)/2,n=Math.cos(r),a=Math.sin(r),o=t.innerRadius,i=t.outerRadius;return S({x0:t.x+n*o,y0:t.y+a*o,x1:t.x+n*i,y1:t.y+a*i,vx:n,vy:a},e)},P=function(t,e){var r=b(t,e.origin),n=r.x*t.options.radius,a=r.y*t.options.radius;return S({x0:t.x-n,y0:t.y-a,x1:t.x+n,y1:t.y+a,vx:r.x,vy:r.y},e)},I=function(t,e){var r=b(t,e.origin),n=t.x,a=t.y,o=0,i=0;return t.horizontal?(n=Math.min(t.x,t.base),o=Math.abs(t.base-t.x)):(a=Math.min(t.y,t.base),i=Math.abs(t.base-t.y)),S({x0:n,y0:a+i,x1:n+o,y1:a,vx:r.x,vy:r.y},e)},$=function(t,e){var r=b(t,e.origin);return S({x0:t.x,y0:t.y,x1:t.x+(t.width||0),y1:t.y+(t.height||0),vx:r.x,vy:r.y},e)},A=function(t){return Math.round(t*f)/f};function E(t,e){var r=e.chart.getDatasetMeta(e.datasetIndex).vScale;if(!r)return null;if(void 0!==r.xCenter&&void 0!==r.yCenter)return{x:r.xCenter,y:r.yCenter};var n=r.getBasePixel();return t.horizontal?{x:n,y:null}:{x:null,y:n}}function W(t,e,r){var n=r.backgroundColor,a=r.borderColor,o=r.borderWidth;(n||a&&o)&&(t.beginPath(),function(t,e,r,n,a,o){var i=Math.PI/2;if(o){var l=Math.min(o,a/2,n/2),s=e+l,u=r+l,c=e+n-l,h=r+a-l;t.moveTo(e,u),s<c&&u<h?(t.arc(s,u,l,-Math.PI,-i),t.arc(c,u,l,-i,0),t.arc(c,h,l,0,i),t.arc(s,h,l,i,Math.PI)):s<c?(t.moveTo(s,r),t.arc(c,u,l,-i,i),t.arc(s,u,l,i,Math.PI+i)):u<h?(t.arc(s,u,l,-Math.PI,0),t.arc(s,h,l,0,Math.PI)):t.arc(s,u,l,-Math.PI,Math.PI),t.closePath(),t.moveTo(e,r)}else t.rect(e,r,n,a)}(t,A(e.x)+o/2,A(e.y)+o/2,A(e.w)-o,A(e.h)-o,r.borderRadius),t.closePath(),n&&(t.fillStyle=n,t.fill()),a&&o&&(t.strokeStyle=a,t.lineWidth=o,t.lineJoin="miter",t.stroke()))}function B(t,e,r){var n=t.shadowBlur,a=r.stroked,o=A(r.x),i=A(r.y),l=A(r.w);a&&t.strokeText(e,o,i,l),r.filled&&(n&&a&&(t.shadowBlur=0),t.fillText(e,o,i,l),n&&a&&(t.shadowBlur=n))}var R=function(t,e,r,n){var a=this;a._config=t,a._index=n,a._model=null,a._rects=null,a._ctx=e,a._el=r};n(R.prototype,{_modelize:function(n,s,u,c){var h,d=this,f=d._index,x=a(o([u.font,{}],c,f)),v=o([u.color,i.color],c,f);return{align:o([u.align,"center"],c,f),anchor:o([u.anchor,"center"],c,f),area:c.chart.chartArea,backgroundColor:o([u.backgroundColor,null],c,f),borderColor:o([u.borderColor,null],c,f),borderRadius:o([u.borderRadius,0],c,f),borderWidth:o([u.borderWidth,0],c,f),clamp:o([u.clamp,!1],c,f),clip:o([u.clip,!1],c,f),color:v,display:n,font:x,lines:s,offset:o([u.offset,4],c,f),opacity:o([u.opacity,1],c,f),origin:E(d._el,c),padding:l(o([u.padding,4],c,f)),positioner:(h=d._el,h instanceof t?C:h instanceof e?P:h instanceof r?I:$),rotation:o([u.rotation,0],c,f)*(Math.PI/180),size:y(d._ctx,s,x),textAlign:o([u.textAlign,"start"],c,f),textShadowBlur:o([u.textShadowBlur,0],c,f),textShadowColor:o([u.textShadowColor,v],c,f),textStrokeColor:o([u.textStrokeColor,v],c,f),textStrokeWidth:o([u.textStrokeWidth,0],c,f)}},update:function(t){var e,r,n,a=this,i=null,l=null,h=a._index,d=a._config,f=o([d.display,!0],t,h);f&&(e=t.dataset.data[h],r=s(u(d.formatter,[e,t]),e),(n=c(r)?[]:x(r)).length&&(l=function(t){var e=t.borderWidth||0,r=t.padding,n=t.size.height,a=t.size.width,o=-a/2,i=-n/2;return{frame:{x:o-r.left-e,y:i-r.top-e,w:a+r.width+2*e,h:n+r.height+2*e},text:{x:o,y:i,w:a,h:n}}}(i=a._modelize(f,n,d,t)))),a._model=i,a._rects=l},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(t,e){var r,n=t.ctx,a=this._model,o=this._rects;this.visible()&&(n.save(),a.clip&&(r=a.area,n.beginPath(),n.rect(r.left,r.top,r.right-r.left,r.bottom-r.top),n.clip()),n.globalAlpha=v(0,a.opacity,1),n.translate(A(e.x),A(e.y)),n.rotate(a.rotation),W(n,o.frame,a),function(t,e,r,n){var a,o=n.textAlign,i=n.color,l=!!i,s=n.font,u=e.length,c=n.textStrokeColor,h=n.textStrokeWidth,d=c&&h;if(u&&(l||d))for(r=function(t,e,r){var n=r.lineHeight,a=t.w,o=t.x;return"center"===e?o+=a/2:"end"!==e&&"right"!==e||(o+=a),{h:n,w:a,x:o,y:t.y+n/2}}(r,o,s),t.font=s.string,t.textAlign=o,t.textBaseline="middle",t.shadowBlur=n.textShadowBlur,t.shadowColor=n.textShadowColor,l&&(t.fillStyle=i),d&&(t.lineJoin="round",t.lineWidth=h,t.strokeStyle=c),a=0,u=e.length;a<u;++a)B(t,e[a],{stroked:d,filled:l,w:r.w,x:r.x,y:r.y+r.h*a})}(n,a.lines,o.text,a),n.restore())}});var z=Number.MIN_SAFE_INTEGER||-9007199254740991,D=Number.MAX_SAFE_INTEGER||9007199254740991;function T(t,e,r){var n=Math.cos(r),a=Math.sin(r),o=e.x,i=e.y;return{x:o+n*(t.x-o)-a*(t.y-i),y:i+a*(t.x-o)+n*(t.y-i)}}function j(t,e){var r,n,a,o,i,l=D,s=z,u=e.origin;for(r=0;r<t.length;++r)a=(n=t[r]).x-u.x,o=n.y-u.y,i=e.vx*a+e.vy*o,l=Math.min(l,i),s=Math.max(s,i);return{min:l,max:s}}function N(t,e){var r=e.x-t.x,n=e.y-t.y,a=Math.sqrt(r*r+n*n);return{vx:(e.x-t.x)/a,vy:(e.y-t.y)/a,origin:t,ln:a}}var F=function(){this._rotation=0,this._rect={x:0,y:0,w:0,h:0}};function H(t,e,r){var n=e.positioner(t,e),a=n.vx,o=n.vy;if(!a&&!o)return{x:n.x,y:n.y};var i=r.w,l=r.h,s=e.rotation,u=Math.abs(i/2*Math.cos(s))+Math.abs(l/2*Math.sin(s)),c=Math.abs(i/2*Math.sin(s))+Math.abs(l/2*Math.cos(s)),h=1/Math.max(Math.abs(a),Math.abs(o));return u*=a*h,c*=o*h,u+=e.offset*a,c+=e.offset*o,{x:n.x+u,y:n.y+c}}n(F.prototype,{center:function(){var t=this._rect;return{x:t.x+t.w/2,y:t.y+t.h/2}},update:function(t,e,r){this._rotation=r,this._rect={x:e.x+t.x,y:e.y+t.y,w:e.w,h:e.h}},contains:function(t){var e=this,r=e._rect;return!((t=T(t,e.center(),-e._rotation)).x<r.x-1||t.y<r.y-1||t.x>r.x+r.w+2||t.y>r.y+r.h+2)},intersects:function(t){var e,r,n,a=this._points(),o=t._points(),i=[N(a[0],a[1]),N(a[0],a[3])];for(this._rotation!==t._rotation&&i.push(N(o[0],o[1]),N(o[0],o[3])),e=0;e<i.length;++e)if(r=j(a,i[e]),n=j(o,i[e]),r.max<n.min||n.max<r.min)return!1;return!0},_points:function(){var t=this,e=t._rect,r=t._rotation,n=t.center();return[T({x:e.x,y:e.y},n,r),T({x:e.x+e.w,y:e.y},n,r),T({x:e.x+e.w,y:e.y+e.h},n,r),T({x:e.x,y:e.y+e.h},n,r)]}});var O={prepare:function(t){var e,r,n,a,o,i=[];for(e=0,n=t.length;e<n;++e)for(r=0,a=t[e].length;r<a;++r)o=t[e][r],i.push(o),o.$layout={_box:new F,_hidable:!1,_visible:!0,_set:e,_idx:o._index};return i.sort((function(t,e){var r=t.$layout,n=e.$layout;return r._idx===n._idx?n._set-r._set:n._idx-r._idx})),this.update(i),i},update:function(t){var e,r,n,a,o,i=!1;for(e=0,r=t.length;e<r;++e)a=(n=t[e]).model(),(o=n.$layout)._hidable=a&&"auto"===a.display,o._visible=n.visible(),i|=o._hidable;i&&function(t){var e,r,n,a,o,i,l;for(e=0,r=t.length;e<r;++e)(a=(n=t[e]).$layout)._visible&&(l=new Proxy(n._el,{get:(t,e)=>t.getProps([e],!0)[e]}),o=n.geometry(),i=H(l,n.model(),o),a._box.update(i,o,n.rotation()));(function(t,e){var r,n,a,o;for(r=t.length-1;r>=0;--r)for(a=t[r].$layout,n=r-1;n>=0&&a._visible;--n)(o=t[n].$layout)._visible&&a._box.intersects(o._box)&&e(a,o)})(t,(function(t,e){var r=t._hidable,n=e._hidable;r&&n||n?e._visible=!1:r&&(t._visible=!1)}))}(t)},lookup:function(t,e){var r,n;for(r=t.length-1;r>=0;--r)if((n=t[r].$layout)&&n._visible&&n._box.contains(e))return t[r];return null},draw:function(t,e){var r,n,a,o,i,l;for(r=0,n=e.length;r<n;++r)(o=(a=e[r]).$layout)._visible&&(i=a.geometry(),l=H(a._el,a.model(),i),o._box.update(l,i,a.rotation()),a.draw(t,l))}},U="$datalabels",X="$default";function q(t,e,r,n){if(e){var a,o=r.$context,i=r.$groups;e[i._set]&&(a=e[i._set][i._key])&&!0===u(a,[o,n])&&(t[U]._dirty=!0,r.update(o))}}function G(t,e){var r,n,a=t[U],o=a._listeners;if(o.enter||o.leave){if("mousemove"===e.type)n=O.lookup(a._labels,e);else if("mouseout"!==e.type)return;r=a._hovered,a._hovered=n,function(t,e,r,n,a){var o,i;(r||n)&&(r?n?r!==n&&(i=o=!0):i=!0:o=!0,i&&q(t,e.leave,r,a),o&&q(t,e.enter,n,a))}(t,o,r,n,e)}}var J={id:"datalabels",defaults:{align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,clamp:!1,clip:!1,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},formatter:function(t){if(c(t))return null;var e,r,n,a=t;if(d(t))if(c(t.label))if(c(t.r))for(a="",n=0,r=(e=Object.keys(t)).length;n<r;++n)a+=(0!==n?", ":"")+e[n]+": "+t[e[n]];else a=t.r;else a=t.label;return""+a},labels:void 0,listeners:{},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,textShadowBlur:0,textShadowColor:void 0},beforeInit:function(t){t[U]={_actives:[]}},beforeUpdate:function(t){var e=t[U];e._listened=!1,e._listeners={},e._datasets=[],e._labels=[]},afterDatasetUpdate:function(t,e,r){var a,o,i,l,s,u,c,d,f=e.index,x=t[U],y=x._datasets[f]=[],v=t.isDatasetVisible(f),_=t.data.datasets[f],b=function(t,e){var r,a,o,i=t.datalabels,l=[];return!1===i?null:(!0===i&&(i={}),e=n({},[e,i]),a=e.labels||{},o=Object.keys(a),delete e.labels,o.length?o.forEach((function(t){a[t]&&l.push(n({},[e,a[t],{_key:t}]))})):l.push(e),r=l.reduce((function(t,e){return h(e.listeners||{},(function(r,n){t[n]=t[n]||{},t[n][e._key||X]=r})),delete e.listeners,t}),{}),{labels:l,listeners:r})}(_,r),p=e.meta.data||[],g=t.ctx;for(g.save(),a=0,i=p.length;a<i;++a)if((c=p[a])[U]=[],v&&c&&t.getDataVisibility(a)&&!c.skip)for(o=0,l=b.labels.length;o<l;++o)u=(s=b.labels[o])._key,(d=new R(s,g,c,a)).$groups={_set:f,_key:u||X},d.$context={active:!1,chart:t,dataIndex:a,dataset:_,datasetIndex:f},d.update(d.$context),c[U].push(d),y.push(d);g.restore(),n(x._listeners,b.listeners,{merger:function(t,r,n){r[t]=r[t]||{},r[t][e.index]=n[t],x._listened=!0}})},afterUpdate:function(t){t[U]._labels=O.prepare(t[U]._datasets)},afterDatasetsDraw:function(t){O.draw(t,t[U]._labels)},beforeEvent:function(t,e){if(t[U]._listened){var r=e.event;switch(r.type){case"mousemove":case"mouseout":G(t,r);break;case"click":!function(t,e){var r=t[U],n=r._listeners.click,a=n&&O.lookup(r._labels,e);a&&q(t,n,a,e)}(t,r)}}},afterEvent:function(t){var e,r,n,a,o,i,l,s=t[U],u=s._actives,c=s._actives=t.getActiveElements(),h=_(u,c);for(e=0,r=h.length;e<r;++e)if((o=h[e])[1])for(n=0,a=(l=o[0].element[U]||[]).length;n<a;++n)(i=l[n]).$context.active=1===o[1],i.update(i.$context);(s._dirty||h.length)&&(O.update(s._labels),t.render()),delete s._dirty}};export{J as default};
|
8
|
-
//# sourceMappingURL=chartjs-plugin-datalabels.esm.mjs.map
|