@consta/uikit 5.27.1 → 5.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ModalDeprecated/index.d.ts +1 -0
- package/ModalDeprecated/index.js +1 -0
- package/Notification/index.d.ts +1 -0
- package/Notification/index.js +1 -0
- package/SidebarDeprecated/index.d.ts +1 -0
- package/SidebarDeprecated/index.js +1 -0
- package/__internal__/src/components/Chips/ChipsChoice/ChipsChoice.js +1 -1
- package/__internal__/src/components/Chips/ChipsChoice/ChipsChoice.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePicker.js +1 -1
- package/__internal__/src/components/DatePicker/DatePicker.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.d.ts +2 -4
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +2 -4
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.d.ts +3 -6
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +1 -0
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/helpers.d.ts +2 -0
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +2 -4
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.d.ts +3 -6
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/helpers.d.ts +27 -8
- package/__internal__/src/components/DatePicker/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/types.d.ts +26 -5
- package/__internal__/src/components/DatePicker/types.js +1 -1
- package/__internal__/src/components/DatePicker/types.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTime.js +1 -1
- package/__internal__/src/components/DateTime/DateTime.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDate/DateTimeTypeDate.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDate/DateTimeTypeDate.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDateTime/DateTimeTypeDateTime.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDateTime/DateTimeTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDateTime/useOnChange.d.ts +2 -2
- package/__internal__/src/components/DateTime/DateTimeTypeDateTime/useOnChange.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeDateTime/useOnChange.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeMonth/DateTimeTypeMonth.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeMonth/DateTimeTypeMonth.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeTime/DateTimeTypeTime.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeTime/DateTimeTypeTime.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeTime/helpers.d.ts +5 -2
- package/__internal__/src/components/DateTime/DateTimeTypeTime/helpers.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeTime/helpers.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeYear/DateTimeTypeYear.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeYear/DateTimeTypeYear.js.map +1 -1
- package/__internal__/src/components/DateTime/helpers/getDisableDatesKey.d.ts +2 -0
- package/__internal__/src/components/DateTime/helpers/getDisableDatesKey.js +2 -0
- package/__internal__/src/components/DateTime/helpers/getDisableDatesKey.js.map +1 -0
- package/__internal__/src/components/DateTime/helpers/getTimeNumbers.d.ts +2 -0
- package/__internal__/src/components/DateTime/helpers/getTimeNumbers.js +2 -0
- package/__internal__/src/components/DateTime/helpers/getTimeNumbers.js.map +1 -0
- package/__internal__/src/components/DateTime/helpers/getTimeOptionsKey.d.ts +2 -0
- package/__internal__/src/components/DateTime/helpers/getTimeOptionsKey.js +2 -0
- package/__internal__/src/components/DateTime/helpers/getTimeOptionsKey.js.map +1 -0
- package/__internal__/src/components/DateTime/helpers/index.d.ts +3 -0
- package/__internal__/src/components/DateTime/helpers/index.js +1 -1
- package/__internal__/src/components/DateTime/helpers/index.js.map +1 -1
- package/__internal__/src/components/DateTime/helpers/types.d.ts +30 -3
- package/__internal__/src/components/DateTime/helpers/types.js.map +1 -1
- package/__internal__/src/components/DragNDropFieldCanary/DragNDropFieldInformer/DragNDropFieldInformer.d.ts +11 -2
- package/__internal__/src/components/DragNDropFieldCanary/DragNDropFieldInformer/DragNDropFieldInformer.js.map +1 -1
- package/__internal__/src/components/DragNDropFieldCanary/types.d.ts +2 -2
- package/__internal__/src/components/DragNDropFieldCanary/types.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelect.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js.map +1 -1
- package/__internal__/src/components/FlatSelect/defaultProps.js.map +1 -1
- package/__internal__/src/components/ModalDeprecated/ModalDeprecated.css +1 -0
- package/__internal__/src/components/ModalDeprecated/ModalDeprecated.d.ts +27 -0
- package/__internal__/src/components/ModalDeprecated/ModalDeprecated.js +2 -0
- package/__internal__/src/components/ModalDeprecated/ModalDeprecated.js.map +1 -0
- package/__internal__/src/components/ModalDeprecated/index.d.ts +1 -0
- package/__internal__/src/components/ModalDeprecated/index.js +2 -0
- package/__internal__/src/components/ModalDeprecated/index.js.map +1 -0
- package/__internal__/src/components/Notification/Notification/Notification.css +1 -0
- package/__internal__/src/components/Notification/Notification/Notification.d.ts +4 -0
- package/__internal__/src/components/Notification/Notification/Notification.js +2 -0
- package/__internal__/src/components/Notification/Notification/Notification.js.map +1 -0
- package/__internal__/src/components/Notification/Notification/helpers.d.ts +70 -0
- package/__internal__/src/components/Notification/Notification/helpers.js +2 -0
- package/__internal__/src/components/Notification/Notification/helpers.js.map +1 -0
- package/__internal__/src/components/Notification/Notification/index.d.ts +2 -0
- package/__internal__/src/components/Notification/Notification/index.js +2 -0
- package/__internal__/src/components/Notification/Notification/index.js.map +1 -0
- package/__internal__/src/components/Notification/Notification/types.d.ts +66 -0
- package/__internal__/src/components/Notification/Notification/types.js +2 -0
- package/__internal__/src/components/Notification/Notification/types.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationActions/NotificationActions.d.ts +2 -0
- package/__internal__/src/components/Notification/NotificationActions/NotificationActions.js +2 -0
- package/__internal__/src/components/Notification/NotificationActions/NotificationActions.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationActions/helpers.d.ts +21 -0
- package/__internal__/src/components/Notification/NotificationActions/helpers.js +2 -0
- package/__internal__/src/components/Notification/NotificationActions/helpers.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationActions/index.d.ts +2 -0
- package/__internal__/src/components/Notification/NotificationActions/index.js +2 -0
- package/__internal__/src/components/Notification/NotificationActions/index.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationActions/types.d.ts +30 -0
- package/__internal__/src/components/Notification/NotificationActions/types.js +2 -0
- package/__internal__/src/components/Notification/NotificationActions/types.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationCaption/NotificationCaption.css +1 -0
- package/__internal__/src/components/Notification/NotificationCaption/NotificationCaption.d.ts +7 -0
- package/__internal__/src/components/Notification/NotificationCaption/NotificationCaption.js +2 -0
- package/__internal__/src/components/Notification/NotificationCaption/NotificationCaption.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationCaption/index.d.ts +1 -0
- package/__internal__/src/components/Notification/NotificationCaption/index.js +2 -0
- package/__internal__/src/components/Notification/NotificationCaption/index.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationGroup/NotificationGroup.css +1 -0
- package/__internal__/src/components/Notification/NotificationGroup/NotificationGroup.d.ts +4 -0
- package/__internal__/src/components/Notification/NotificationGroup/NotificationGroup.js +2 -0
- package/__internal__/src/components/Notification/NotificationGroup/NotificationGroup.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationGroup/index.d.ts +2 -0
- package/__internal__/src/components/Notification/NotificationGroup/index.js +2 -0
- package/__internal__/src/components/Notification/NotificationGroup/index.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationGroup/types.d.ts +12 -0
- package/__internal__/src/components/Notification/NotificationGroup/types.js +2 -0
- package/__internal__/src/components/Notification/NotificationGroup/types.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationHeader/NotificationHeader.css +1 -0
- package/__internal__/src/components/Notification/NotificationHeader/NotificationHeader.d.ts +5 -0
- package/__internal__/src/components/Notification/NotificationHeader/NotificationHeader.js +2 -0
- package/__internal__/src/components/Notification/NotificationHeader/NotificationHeader.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationHeader/index.d.ts +2 -0
- package/__internal__/src/components/Notification/NotificationHeader/index.js +2 -0
- package/__internal__/src/components/Notification/NotificationHeader/index.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationHeader/types.d.ts +14 -0
- package/__internal__/src/components/Notification/NotificationHeader/types.js +2 -0
- package/__internal__/src/components/Notification/NotificationHeader/types.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationItem/NotificationItem.css +1 -0
- package/__internal__/src/components/Notification/NotificationItem/NotificationItem.d.ts +6 -0
- package/__internal__/src/components/Notification/NotificationItem/NotificationItem.js +2 -0
- package/__internal__/src/components/Notification/NotificationItem/NotificationItem.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationItem/index.d.ts +2 -0
- package/__internal__/src/components/Notification/NotificationItem/index.js +2 -0
- package/__internal__/src/components/Notification/NotificationItem/index.js.map +1 -0
- package/__internal__/src/components/Notification/NotificationItem/types.d.ts +19 -0
- package/__internal__/src/components/Notification/NotificationItem/types.js +2 -0
- package/__internal__/src/components/Notification/NotificationItem/types.js.map +1 -0
- package/__internal__/src/components/Notification/helpers/defaultDateFormat.d.ts +1 -0
- package/__internal__/src/components/Notification/helpers/defaultDateFormat.js +2 -0
- package/__internal__/src/components/Notification/helpers/defaultDateFormat.js.map +1 -0
- package/__internal__/src/components/Notification/helpers/groupLabelByDay.d.ts +1 -0
- package/__internal__/src/components/Notification/helpers/groupLabelByDay.js +2 -0
- package/__internal__/src/components/Notification/helpers/groupLabelByDay.js.map +1 -0
- package/__internal__/src/components/Notification/helpers/groupsByDay.d.ts +1 -0
- package/__internal__/src/components/Notification/helpers/groupsByDay.js +2 -0
- package/__internal__/src/components/Notification/helpers/groupsByDay.js.map +1 -0
- package/__internal__/src/components/Notification/helpers/index.d.ts +4 -0
- package/__internal__/src/components/Notification/helpers/index.js +2 -0
- package/__internal__/src/components/Notification/helpers/index.js.map +1 -0
- package/__internal__/src/components/Notification/helpers/sortGroupByDay.d.ts +5 -0
- package/__internal__/src/components/Notification/helpers/sortGroupByDay.js +2 -0
- package/__internal__/src/components/Notification/helpers/sortGroupByDay.js.map +1 -0
- package/__internal__/src/components/Notification/index.d.ts +7 -0
- package/__internal__/src/components/Notification/index.js +2 -0
- package/__internal__/src/components/Notification/index.js.map +1 -0
- package/__internal__/src/components/Sidebar/Sidebar.js +1 -1
- package/__internal__/src/components/Sidebar/Sidebar.js.map +1 -1
- package/__internal__/src/components/Sidebar/types.d.ts +3 -2
- package/__internal__/src/components/Sidebar/types.js.map +1 -1
- package/__internal__/src/components/SidebarDeprecated/SidebarDeprecated.css +1 -0
- package/__internal__/src/components/SidebarDeprecated/SidebarDeprecated.d.ts +39 -0
- package/__internal__/src/components/SidebarDeprecated/SidebarDeprecated.js +2 -0
- package/__internal__/src/components/SidebarDeprecated/SidebarDeprecated.js.map +1 -0
- package/__internal__/src/components/SidebarDeprecated/index.d.ts +1 -0
- package/__internal__/src/components/SidebarDeprecated/index.js +2 -0
- package/__internal__/src/components/SidebarDeprecated/index.js.map +1 -0
- package/__internal__/src/utils/getItemClick.d.ts +5 -0
- package/__internal__/src/utils/getItemClick.js +2 -0
- package/__internal__/src/utils/getItemClick.js.map +1 -0
- package/__internal__/src/utils/object/keys.d.ts +1 -0
- package/__internal__/src/utils/object/keys.js +2 -0
- package/__internal__/src/utils/object/keys.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/components/ModalDeprecated";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/components/ModalDeprecated";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/components/Notification";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/components/Notification";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/components/SidebarDeprecated";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/components/SidebarDeprecated";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["value","onChange","multiple","getItemKey","getItemLabel","disabled"];import React,{forwardRef}from"react";import{Chips}from"./..";import{useChoiceGroup}from"../../../hooks/useChoiceGroup";import{defaultGetItemLabel}from"../helpers";export var getUndefined=function(){};export var getItemKeyDefault=function(a){return a.key};var ChipsChoiceRender=function(a,b){var c=a.value,d=a.onChange,e=a.multiple,f=a.getItemKey,g=void 0===f?getItemKeyDefault:f,h=a.getItemLabel,i=void 0===h?defaultGetItemLabel:h,j=a.disabled,k=void 0!==j&&j,l=_objectWithoutProperties(a,_excluded),m=useChoiceGroup({getKey:function getKey(a){var b=g(a);return typeof b!==void 0&&b?b:i(a)},value:c,callBack:d,multiple:e}),n=m.getOnChange,o=m.getChecked;return React.createElement(Chips,Object.assign({},l,{ref:b,onItemRightIconClick:getUndefined,onItemClick:function onItemClick(a,b){var c=b.e;return!k&&n(a)(c)},getItemIconRight:getUndefined,getItemAttributes:getUndefined,getItemActive:o,interactive:!k,disabled:k}))};export var ChipsChoice=forwardRef(ChipsChoiceRender);
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["value","onChange","multiple","getItemKey","getItemLabel","disabled"];import React,{forwardRef}from"react";import{Chips}from"./..";import{useChoiceGroup}from"../../../hooks/useChoiceGroup";import{defaultGetItemLabel}from"../helpers";export var getUndefined=function(){};export var getItemKeyDefault=function(a){return a.key};var ChipsChoiceRender=function(a,b){var c=a.value,d=a.onChange,e=a.multiple,f=a.getItemKey,g=void 0===f?getItemKeyDefault:f,h=a.getItemLabel,i=void 0===h?defaultGetItemLabel:h,j=a.disabled,k=void 0!==j&&j,l=_objectWithoutProperties(a,_excluded),m=useChoiceGroup({getKey:function getKey(a){var b=g(a);return typeof b!==void 0&&b?b:i(a)},value:c,callBack:d,multiple:e}),n=m.getOnChange,o=m.getChecked;return React.createElement(Chips,Object.assign({},l,{ref:b,onItemRightIconClick:getUndefined,onItemClick:function onItemClick(a,b){var c=b.e;return!k&&n(a)(c)},getItemLabel:i,getItemIconRight:getUndefined,getItemAttributes:getUndefined,getItemActive:o,interactive:!k,disabled:k}))};export var ChipsChoice=forwardRef(ChipsChoiceRender);
|
|
2
2
|
//# sourceMappingURL=ChipsChoice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipsChoice.js","names":["React","forwardRef","Chips","useChoiceGroup","defaultGetItemLabel","getUndefined","getItemKeyDefault","item","key","ChipsChoiceRender","props","ref","value","onChange","multiple","getItemKey","getItemLabel","disabled","otherProps","getKey","callBack","getOnChange","getChecked","e","ChipsChoice"],"sources":["../../../../../../src/components/Chips/ChipsChoice/ChipsChoice.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Chips } from '##/components/Chips';\nimport { useChoiceGroup } from '##/hooks/useChoiceGroup';\n\nimport { defaultGetItemLabel } from '../helpers';\nimport {\n ChipsChoiceComponent,\n ChipsChoiceDefaultItem,\n ChipsChoicePropGetItemKey,\n ChipsChoiceProps,\n} from './types';\n\nexport const getUndefined = () => undefined;\nexport const getItemKeyDefault: ChipsChoicePropGetItemKey<\n ChipsChoiceDefaultItem\n> = (item) => item.key;\n\nconst ChipsChoiceRender = (\n props: ChipsChoiceProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n value,\n onChange,\n multiple,\n getItemKey = getItemKeyDefault,\n getItemLabel = defaultGetItemLabel,\n disabled = false,\n ...otherProps\n } = props;\n\n const { getOnChange, getChecked } = useChoiceGroup<\n ChipsChoiceDefaultItem,\n React.MouseEvent\n >({\n getKey: (item: ChipsChoiceDefaultItem) => {\n const key = getItemKey(item);\n return typeof key !== undefined && key ? key : getItemLabel(item);\n },\n value: value as ChipsChoiceDefaultItem,\n callBack: onChange,\n multiple: multiple as false,\n // привел к типам из-за того что\n // TS не понимает что параметры для не Multiple и Multiple не могут прийти одновременно\n });\n\n return (\n <Chips\n {...otherProps}\n ref={ref}\n onItemRightIconClick={getUndefined}\n onItemClick={(item, { e }) => !disabled && getOnChange(item)(e)}\n getItemIconRight={getUndefined}\n getItemAttributes={getUndefined}\n getItemActive={getChecked}\n interactive={!disabled}\n disabled={disabled}\n />\n );\n};\n\nexport const ChipsChoice = forwardRef(\n ChipsChoiceRender,\n) as ChipsChoiceComponent;\n"],"mappings":"0KAAA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,KAAT,YACA,OAASC,cAAT,qCAEA,OAASC,mBAAT,kBAQA,MAAO,IAAMC,aAAY,CAAG,YAArB,CACP,MAAO,IAAMC,kBAEZ,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,GAAf,CAFG,CAIP,GAAMC,kBAAiB,CAAG,SACxBC,CADwB,CAExBC,CAFwB,CAGrB,IAEDC,EAFC,CASCF,CATD,CAEDE,KAFC,CAGDC,CAHC,CASCH,CATD,CAGDG,QAHC,CAIDC,CAJC,CASCJ,CATD,CAIDI,QAJC,GASCJ,CATD,CAKDK,UALC,CAKDA,CALC,YAKYT,iBALZ,KASCI,CATD,CAMDM,YANC,CAMDA,CANC,YAMcZ,mBANd,KASCM,CATD,CAODO,QAPC,CAODA,CAPC,eAQEC,CARF,0BASCR,CATD,cAWiCP,cAAc,CAGhD,CACAgB,MAAM,CAAE,gBAACZ,CAAD,CAAkC,CACxC,GAAMC,EAAG,CAAGO,CAAU,CAACR,CAAD,CAAtB,CACA,MAAO,OAAOC,EAAP,WAA4BA,CAA5B,CAAkCA,CAAlC,CAAwCQ,CAAY,CAACT,CAAD,CAC5D,CAJD,CAKAK,KAAK,CAAEA,CALP,CAMAQ,QAAQ,CAAEP,CANV,CAOAC,QAAQ,CAAEA,CAPV,CAHgD,CAX/C,CAWKO,CAXL,GAWKA,WAXL,CAWkBC,CAXlB,GAWkBA,UAXlB,CA0BH,MACE,qBAAC,KAAD,kBACMJ,CADN,EAEE,GAAG,CAAEP,CAFP,CAGE,oBAAoB,CAAEN,YAHxB,CAIE,WAAW,CAAE,qBAACE,CAAD,OAASgB,EAAT,GAASA,CAAT,OAAiB,CAACN,CAAD,EAAaI,CAAW,CAACd,CAAD,CAAX,CAAkBgB,CAAlB,CAA9B,CAJf,CAKE,
|
|
1
|
+
{"version":3,"file":"ChipsChoice.js","names":["React","forwardRef","Chips","useChoiceGroup","defaultGetItemLabel","getUndefined","getItemKeyDefault","item","key","ChipsChoiceRender","props","ref","value","onChange","multiple","getItemKey","getItemLabel","disabled","otherProps","getKey","callBack","getOnChange","getChecked","e","ChipsChoice"],"sources":["../../../../../../src/components/Chips/ChipsChoice/ChipsChoice.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Chips } from '##/components/Chips';\nimport { useChoiceGroup } from '##/hooks/useChoiceGroup';\n\nimport { defaultGetItemLabel } from '../helpers';\nimport {\n ChipsChoiceComponent,\n ChipsChoiceDefaultItem,\n ChipsChoicePropGetItemKey,\n ChipsChoiceProps,\n} from './types';\n\nexport const getUndefined = () => undefined;\nexport const getItemKeyDefault: ChipsChoicePropGetItemKey<\n ChipsChoiceDefaultItem\n> = (item) => item.key;\n\nconst ChipsChoiceRender = (\n props: ChipsChoiceProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n value,\n onChange,\n multiple,\n getItemKey = getItemKeyDefault,\n getItemLabel = defaultGetItemLabel,\n disabled = false,\n ...otherProps\n } = props;\n\n const { getOnChange, getChecked } = useChoiceGroup<\n ChipsChoiceDefaultItem,\n React.MouseEvent\n >({\n getKey: (item: ChipsChoiceDefaultItem) => {\n const key = getItemKey(item);\n return typeof key !== undefined && key ? key : getItemLabel(item);\n },\n value: value as ChipsChoiceDefaultItem,\n callBack: onChange,\n multiple: multiple as false,\n // привел к типам из-за того что\n // TS не понимает что параметры для не Multiple и Multiple не могут прийти одновременно\n });\n\n return (\n <Chips\n {...otherProps}\n ref={ref}\n onItemRightIconClick={getUndefined}\n onItemClick={(item, { e }) => !disabled && getOnChange(item)(e)}\n getItemLabel={getItemLabel}\n getItemIconRight={getUndefined}\n getItemAttributes={getUndefined}\n getItemActive={getChecked}\n interactive={!disabled}\n disabled={disabled}\n />\n );\n};\n\nexport const ChipsChoice = forwardRef(\n ChipsChoiceRender,\n) as ChipsChoiceComponent;\n"],"mappings":"0KAAA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,KAAT,YACA,OAASC,cAAT,qCAEA,OAASC,mBAAT,kBAQA,MAAO,IAAMC,aAAY,CAAG,YAArB,CACP,MAAO,IAAMC,kBAEZ,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,GAAf,CAFG,CAIP,GAAMC,kBAAiB,CAAG,SACxBC,CADwB,CAExBC,CAFwB,CAGrB,IAEDC,EAFC,CASCF,CATD,CAEDE,KAFC,CAGDC,CAHC,CASCH,CATD,CAGDG,QAHC,CAIDC,CAJC,CASCJ,CATD,CAIDI,QAJC,GASCJ,CATD,CAKDK,UALC,CAKDA,CALC,YAKYT,iBALZ,KASCI,CATD,CAMDM,YANC,CAMDA,CANC,YAMcZ,mBANd,KASCM,CATD,CAODO,QAPC,CAODA,CAPC,eAQEC,CARF,0BASCR,CATD,cAWiCP,cAAc,CAGhD,CACAgB,MAAM,CAAE,gBAACZ,CAAD,CAAkC,CACxC,GAAMC,EAAG,CAAGO,CAAU,CAACR,CAAD,CAAtB,CACA,MAAO,OAAOC,EAAP,WAA4BA,CAA5B,CAAkCA,CAAlC,CAAwCQ,CAAY,CAACT,CAAD,CAC5D,CAJD,CAKAK,KAAK,CAAEA,CALP,CAMAQ,QAAQ,CAAEP,CANV,CAOAC,QAAQ,CAAEA,CAPV,CAHgD,CAX/C,CAWKO,CAXL,GAWKA,WAXL,CAWkBC,CAXlB,GAWkBA,UAXlB,CA0BH,MACE,qBAAC,KAAD,kBACMJ,CADN,EAEE,GAAG,CAAEP,CAFP,CAGE,oBAAoB,CAAEN,YAHxB,CAIE,WAAW,CAAE,qBAACE,CAAD,OAASgB,EAAT,GAASA,CAAT,OAAiB,CAACN,CAAD,EAAaI,CAAW,CAACd,CAAD,CAAX,CAAkBgB,CAAlB,CAA9B,CAJf,CAKE,YAAY,CAAEP,CALhB,CAME,gBAAgB,CAAEX,YANpB,CAOE,iBAAiB,CAAEA,YAPrB,CAQE,aAAa,CAAEiB,CARjB,CASE,WAAW,CAAE,CAACL,CAThB,CAUE,QAAQ,CAAEA,CAVZ,GAaH,CA3CD,CA6CA,MAAO,IAAMO,YAAW,CAAGvB,UAAU,CACnCQ,iBADmC,CAA9B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClick","getItemAs","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import"./ContextMenuLevel.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useEffect,useMemo}from"react";import{cnListBox,List,ListDivider,ListItem,mapIconSize,mapVerticalSpace}from"../../ListCanary";import{useFlag}from"../../../hooks/useFlag/useFlag";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate";import{cnMixSpace}from"../../../mixs/MixSpace";import{cn}from"../../../utils/bem";import{ContextMenuLevelWrapper}from"../ContextMenuLevelWrapper";import{contextMenuDefaultSize}from"../types";import{useMenuNavigation}from"../useMenuNavigation";export var cnContextMenuLevel=cn("ContextMenuLevel");var timers=[];export function clearTimers(){var a,b=_createForOfIteratorHelper(timers);try{for(b.s();!(a=b.n()).done;){var c=a.value;clearTimeout(c)}}catch(a){b.e(a)}finally{b.f()}timers=[]}var closeDelay=300,ContextMenuLevelRender=function(a,b){var c=a.size,d=void 0===c?contextMenuDefaultSize:c,f=a.items,g=a.groups,h=a.className,i=a.form,j=void 0===i?"default":i,k=a.animate,l=a.levelDepth,m=a.activeLevelDepth,n=a.activeItem,o=a.addLevel,p=a.deleteLevel,q=a.setHoveredParenLevel,r=a.hoveredParenLevel,s=a.sortGroup,t=a.onItemClick,u=a.onEsc,v=a.isOpen,w=a.parent,x=a.isMobile,y=a.direction,z=a.possibleDirections,A=a.offset,B=a.onSetDirection,C=a.spareDirection,D=a.anchorRef,E=a.getItemLabel,F=a.getItemRightSide,G=a.getItemLeftSide,H=a.getItemSubMenu,I=a.getItemStatus,J=a.getItemDisabled,K=a.getItemKey,L=a.getItemOnClick,M=a.getItemAs,N=a.getItemAttributes,O=a.getItemGroupId,P=a.getItemLeftIcon,Q=a.getItemRightIcon,R=a.getGroupLabel,S=a.getGroupId,T=_objectWithoutProperties(a,_excluded),U=0===l,V=useFlag(!1),W=_slicedToArray(V,2),X=W[0],Y=W[1],Z=function(a){return(K(a)||E(a)).toString()},$=function(a){var b=H(a),c=J(a);if(Array.isArray(b)&&!c){var d=Z(a);o({level:l+1,items:b,anchorRef:ha[d],activeItem:d,parent:a}),q(l+1)}else q(l)},_=useMenuNavigation({items:f,getItemSubMenu:H,addLevel:$,active:m===l,deleteLevel:function deleteLevel(){return p(l)},onEsc:function handleEscClick(a){var b;null===u||void 0===u?void 0:u(a),null===D||void 0===D||null===(b=D.current)||void 0===b?void 0:b.focus()},level:l,isMobile:x}),aa=_.refs,ba=_.onKeyDown,ca=_.activeIndex,da=_.setActiveIndex,ea=_.setDirection,fa=_.parentRef,ga=_.containerRef,ha=useMemo(function(){return f.map(function(a){return Z(a)}).reduce(function(b,a,c){return _objectSpread(_objectSpread({},b),{},_defineProperty({},a,aa[c]))},{})},[g,aa]),ia=useMemo(function(){var a=f[ca];return a?Z(a):void 0},[f,ca]),ja=x?void 0:function(a){return function(b){var c;$(a);var d=null===(c=N(a))||void 0===c?void 0:c.onMouseEnter;da(f.indexOf(a)),null===d||void 0===d?void 0:d(b)}},ka=L?function(a){return function(b){var c;return null===(c=L(a))||void 0===c?void 0:c(b)}}:void 0;return useEffect(function(){return 0!==l&&!X&&r<l&&(clearTimeout(timers[l]),timers[l]=setTimeout(function(){return p(l)},closeDelay)),function(){return clearTimeout(timers[l])}},[X,r]),useEffect(function(){v||clearTimeout(timers[l])},[v]),React.createElement(ContextMenuLevelWrapper,Object.assign({anchorRef:D,className:x?cnContextMenuLevel("Mobile",{animate:k},[h]):cnContextMenuLevel("Desktop",{firstLevel:U},[cnListBox({size:d,form:j,border:!0,shadow:!0}),cnMixSpace({pV:mapVerticalSpace[d]}),cnMixPopoverAnimate({animate:k}),
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClick","getItemAs","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import"./ContextMenuLevel.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useEffect,useMemo}from"react";import{cnListBox,List,ListDivider,ListItem,mapIconSize,mapVerticalSpace}from"../../ListCanary";import{useFlag}from"../../../hooks/useFlag/useFlag";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate";import{cnMixSpace}from"../../../mixs/MixSpace";import{cn}from"../../../utils/bem";import{ContextMenuLevelWrapper}from"../ContextMenuLevelWrapper";import{contextMenuDefaultSize}from"../types";import{useMenuNavigation}from"../useMenuNavigation";export var cnContextMenuLevel=cn("ContextMenuLevel");var timers=[];export function clearTimers(){var a,b=_createForOfIteratorHelper(timers);try{for(b.s();!(a=b.n()).done;){var c=a.value;clearTimeout(c)}}catch(a){b.e(a)}finally{b.f()}timers=[]}var closeDelay=300,ContextMenuLevelRender=function(a,b){var c=a.size,d=void 0===c?contextMenuDefaultSize:c,f=a.items,g=a.groups,h=a.className,i=a.form,j=void 0===i?"default":i,k=a.animate,l=a.levelDepth,m=a.activeLevelDepth,n=a.activeItem,o=a.addLevel,p=a.deleteLevel,q=a.setHoveredParenLevel,r=a.hoveredParenLevel,s=a.sortGroup,t=a.onItemClick,u=a.onEsc,v=a.isOpen,w=a.parent,x=a.isMobile,y=a.direction,z=a.possibleDirections,A=a.offset,B=a.onSetDirection,C=a.spareDirection,D=a.anchorRef,E=a.getItemLabel,F=a.getItemRightSide,G=a.getItemLeftSide,H=a.getItemSubMenu,I=a.getItemStatus,J=a.getItemDisabled,K=a.getItemKey,L=a.getItemOnClick,M=a.getItemAs,N=a.getItemAttributes,O=a.getItemGroupId,P=a.getItemLeftIcon,Q=a.getItemRightIcon,R=a.getGroupLabel,S=a.getGroupId,T=_objectWithoutProperties(a,_excluded),U=0===l,V=useFlag(!1),W=_slicedToArray(V,2),X=W[0],Y=W[1],Z=function(a){return(K(a)||E(a)).toString()},$=function(a){var b=H(a),c=J(a);if(Array.isArray(b)&&!c){var d=Z(a);o({level:l+1,items:b,anchorRef:ha[d],activeItem:d,parent:a}),q(l+1)}else q(l)},_=useMenuNavigation({items:f,getItemSubMenu:H,addLevel:$,active:m===l,deleteLevel:function deleteLevel(){return p(l)},onEsc:function handleEscClick(a){var b;null===u||void 0===u?void 0:u(a),null===D||void 0===D||null===(b=D.current)||void 0===b?void 0:b.focus()},level:l,isMobile:x}),aa=_.refs,ba=_.onKeyDown,ca=_.activeIndex,da=_.setActiveIndex,ea=_.setDirection,fa=_.parentRef,ga=_.containerRef,ha=useMemo(function(){return f.map(function(a){return Z(a)}).reduce(function(b,a,c){return _objectSpread(_objectSpread({},b),{},_defineProperty({},a,aa[c]))},{})},[g,aa]),ia=useMemo(function(){var a=f[ca];return a?Z(a):void 0},[f,ca]),ja=x?void 0:function(a){return function(b){var c;$(a);var d=null===(c=N(a))||void 0===c?void 0:c.onMouseEnter;da(f.indexOf(a)),null===d||void 0===d?void 0:d(b)}},ka=L?function(a){return function(b){var c;return null===(c=L(a))||void 0===c?void 0:c(b)}}:void 0;return useEffect(function(){return 0!==l&&!X&&r<l&&(clearTimeout(timers[l]),timers[l]=setTimeout(function(){return p(l)},closeDelay)),function(){return clearTimeout(timers[l])}},[X,r]),useEffect(function(){v||clearTimeout(timers[l])},[v]),React.createElement(ContextMenuLevelWrapper,Object.assign({anchorRef:D,className:x?cnContextMenuLevel("Mobile",{animate:k,firstLevel:U,level:l.toString()},[h]):cnContextMenuLevel("Desktop",{firstLevel:U,level:l.toString()},[cnListBox({size:d,form:j,border:!0,shadow:!0}),cnMixSpace({pV:mapVerticalSpace[d]}),cnMixPopoverAnimate({animate:k}),h]),possibleDirections:z,spareDirection:C,direction:y,offset:A,tabIndex:0,onKeyDown:ba,onSetDirection:function onSetDirection(a){null===B||void 0===B?void 0:B(a),ea(a)},onMouseEnter:Y.on,onMouseLeave:function onMouseLeave(){Y.off(),da(-1)},ref:useForkRef([b,ga]),isMobile:x},T),w&&React.createElement(React.Fragment,null,React.createElement(ListItem,{label:E(w),size:d,tabIndex:0,ref:fa,leftIcon:IconArrowLeft,onClick:function onClick(){return p(l)},active:-1===ca,className:cnContextMenuLevel("Item",{active:-1===ca})}),React.createElement(ListDivider,{size:d,space:{mV:mapVerticalSpace[d]}})),React.createElement(List,{size:d,items:f,getItemLabel:E,onItemClick:function onItemClick(a,b){var c=b.e;x&&($(a),da(f.indexOf(a))),null===t||void 0===t?void 0:t(a,{e:c})},sortGroup:s?function(c,a){return s(c.key,a.key)}:void 0,getItemOnClick:ka,getItemAs:M,getItemAttributes:function getItemAttributes(a){return _objectSpread(_objectSpread({},N(a)),{},{tabIndex:0,onMouseEnter:null===ja||void 0===ja?void 0:ja(a)})},getItemGroupKey:O,getItemLeftIcon:P,getItemRightIcon:Q,getItemLeftSide:G,getItemRightSide:function getItemRightSide(a){var b=F(a);if(!H(a))return b;var c=Array.isArray(b)?b:[b];return c.push(React.createElement(IconArrowRight,{size:mapIconSize[d]})),c},getGroupKey:S,getGroupLabel:R,getItemDisabled:J,getItemStatus:I,getItemActive:function getItemActive(a){var b=Z(a);return b===n||b===ia},getItemAdditionalClassName:function getItemAdditionalClassName(a){return cnContextMenuLevel("Item",{active:Z(a)===n})},getItemRef:function getItemRef(a){return ha[Z(a)]},groups:g,innerOffset:"round"===j?"increased":"normal"}))};export var ContextMenuLevel=forwardRef(ContextMenuLevelRender);
|
|
2
2
|
//# sourceMappingURL=ContextMenuLevel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenuLevel.js","names":["IconArrowLeft","IconArrowRight","React","forwardRef","useEffect","useMemo","cnListBox","List","ListDivider","ListItem","mapIconSize","mapVerticalSpace","useFlag","useForkRef","cnMixPopoverAnimate","cnMixSpace","cn","ContextMenuLevelWrapper","contextMenuDefaultSize","useMenuNavigation","cnContextMenuLevel","timers","clearTimers","timer","clearTimeout","closeDelay","ContextMenuLevelRender","props","ref","size","items","groupsProp","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClickProp","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSideProp","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClickProp","getItemOnClick","getItemAs","getItemAttributesProp","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId","otherProps","firstLevel","hovered","setHovered","getKey","item","toString","addCurrentLevel","subMenu","disabled","Array","isArray","key","level","itemsRefs","active","handleEscClick","e","current","focus","refs","onKeyDown","activeIndex","setActiveIndex","setDirection","parentRef","containerRef","map","reduce","a","v","index","activeKey","onMouseEnter","indexOf","setTimeout","border","shadow","pV","on","onMouseLeave","off","mV","b","tabIndex","side","sides","push","getItemActive","ContextMenuLevel"],"sources":["../../../../../../src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.tsx"],"sourcesContent":["import './ContextMenuLevel.css';\n\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useEffect, useMemo } from 'react';\n\nimport {\n cnListBox,\n List,\n ListDivider,\n ListItem,\n ListPropOnItemClick,\n mapIconSize,\n mapVerticalSpace,\n} from '##/components/ListCanary';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cn } from '##/utils/bem';\nimport { AsAttributes, AsTagAttribute } from '##/utils/types/AsTags';\n\nimport { ContextMenuLevelWrapper } from '../ContextMenuLevelWrapper';\nimport {\n contextMenuDefaultSize,\n ContextMenuItemDefault,\n ContextMenuLevelComponent,\n ContextMenuLevelProps,\n} from '../types';\nimport { useMenuNavigation } from '../useMenuNavigation';\n\nexport const cnContextMenuLevel = cn('ContextMenuLevel');\n\nlet timers: ReturnType<typeof setTimeout>[] = [];\nexport function clearTimers() {\n for (const timer of timers) {\n clearTimeout(timer);\n }\n timers = [];\n}\n\nconst closeDelay = 300;\n\nconst ContextMenuLevelRender = (\n props: ContextMenuLevelProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n size = contextMenuDefaultSize,\n items,\n groups: groupsProp,\n className,\n form = 'default',\n animate,\n // Свойства относящиеся к меню\n levelDepth,\n activeLevelDepth,\n activeItem,\n addLevel,\n deleteLevel,\n setHoveredParenLevel,\n hoveredParenLevel,\n sortGroup,\n onItemClick: onItemClickProp,\n onEsc,\n isOpen,\n parent,\n isMobile,\n\n // Свойства для поповера\n direction,\n possibleDirections,\n offset,\n onSetDirection,\n spareDirection,\n anchorRef,\n // Геттеры для ITEM\n getItemLabel,\n getItemRightSide: getItemRightSideProp,\n getItemLeftSide,\n getItemSubMenu,\n getItemStatus,\n getItemDisabled,\n getItemKey,\n getItemOnClick: getItemOnClickProp,\n getItemAs,\n getItemAttributes: getItemAttributesProp,\n getItemGroupId,\n getItemLeftIcon,\n getItemRightIcon,\n // Геттеры для GROUP\n getGroupLabel,\n getGroupId,\n ...otherProps\n } = props;\n\n const firstLevel = levelDepth === 0;\n\n const [hovered, setHovered] = useFlag(false);\n\n const getKey = (item: ContextMenuItemDefault) =>\n (getItemKey(item) || getItemLabel(item)).toString();\n\n const addCurrentLevel = (item: ContextMenuItemDefault) => {\n const subMenu = getItemSubMenu(item);\n const disabled = getItemDisabled(item);\n\n if (Array.isArray(subMenu) && !disabled) {\n const key = getKey(item);\n addLevel({\n level: levelDepth + 1,\n items: subMenu,\n anchorRef: itemsRefs[key],\n activeItem: key,\n parent: item,\n });\n setHoveredParenLevel(levelDepth + 1);\n } else {\n setHoveredParenLevel(levelDepth);\n }\n };\n\n const handleEscClick: React.KeyboardEventHandler = (e) => {\n onEsc?.(e);\n anchorRef?.current?.focus();\n };\n\n const {\n refs,\n onKeyDown,\n activeIndex,\n setActiveIndex,\n setDirection,\n parentRef,\n containerRef,\n } = useMenuNavigation({\n items,\n getItemSubMenu,\n addLevel: addCurrentLevel,\n active: activeLevelDepth === levelDepth,\n deleteLevel: () => deleteLevel(levelDepth),\n onEsc: handleEscClick,\n level: levelDepth,\n isMobile,\n });\n\n const itemsRefs = useMemo(() => {\n return items\n .map((item) => getKey(item))\n .reduce((a, v, index) => ({ ...a, [v]: refs[index] }), {}) as Record<\n string,\n React.RefObject<HTMLDivElement>\n >;\n }, [groupsProp, refs]);\n\n const activeKey = useMemo(() => {\n const item = items[activeIndex];\n return item ? getKey(item) : undefined;\n }, [items, activeIndex]);\n\n const onMouseEnter = isMobile\n ? undefined\n : (item: ContextMenuItemDefault): AsTagAttribute<'div'>['onMouseEnter'] =>\n (e) => {\n addCurrentLevel(item);\n const onMouseEnter = getItemAttributesProp(item)\n ?.onMouseEnter as AsTagAttribute<'div'>['onMouseEnter'];\n setActiveIndex(items.indexOf(item));\n onMouseEnter?.(e);\n };\n\n // GETTERS\n\n const getItemOnClick = getItemOnClickProp\n ? (item: ContextMenuItemDefault) => (e: React.MouseEvent) =>\n getItemOnClickProp(item)?.(e as React.MouseEvent<HTMLDivElement>)\n : undefined;\n\n const getItemAttributes = (item: ContextMenuItemDefault) =>\n ({\n ...getItemAttributesProp(item),\n tabIndex: 0,\n onMouseEnter: onMouseEnter?.(item),\n } as AsAttributes);\n\n const getItemActive = (item: ContextMenuItemDefault) => {\n const key = getKey(item);\n return key === activeItem || key === activeKey;\n };\n\n const getItemRightSide = (item: ContextMenuItemDefault) => {\n const side = getItemRightSideProp(item);\n if (!getItemSubMenu(item)) {\n return side;\n }\n\n const sides: React.ReactNode[] = Array.isArray(side) ? side : [side];\n sides.push(<IconArrowRight size={mapIconSize[size]} />);\n return sides;\n };\n\n const onMouseLeave: React.MouseEventHandler = () => {\n setHovered.off();\n setActiveIndex(-1);\n };\n\n const onItemClick: ListPropOnItemClick<ContextMenuItemDefault> = (\n item,\n { e },\n ) => {\n if (isMobile) {\n addCurrentLevel(item);\n setActiveIndex(items.indexOf(item));\n }\n onItemClickProp?.(item, {\n e: e as React.MouseEvent<HTMLDivElement>,\n });\n };\n\n // EFFECTS\n\n useEffect(() => {\n if (levelDepth !== 0 && !hovered && hoveredParenLevel < levelDepth) {\n clearTimeout(timers[levelDepth]);\n timers[levelDepth] = setTimeout(\n () => deleteLevel(levelDepth),\n closeDelay,\n );\n }\n return () => clearTimeout(timers[levelDepth]);\n }, [hovered, hoveredParenLevel]);\n\n useEffect(() => {\n if (!isOpen) {\n clearTimeout(timers[levelDepth]);\n }\n }, [isOpen]);\n\n return (\n <ContextMenuLevelWrapper\n anchorRef={anchorRef}\n className={\n isMobile\n ? cnContextMenuLevel('Mobile', { animate }, [className])\n : cnContextMenuLevel('Desktop', { firstLevel }, [\n cnListBox({ size, form, border: true, shadow: true }),\n cnMixSpace({\n pV: mapVerticalSpace[size],\n }),\n cnMixPopoverAnimate({ animate }),\n firstLevel ? className : undefined,\n ])\n }\n possibleDirections={possibleDirections}\n spareDirection={spareDirection}\n direction={direction}\n offset={offset}\n tabIndex={0}\n onKeyDown={onKeyDown}\n onSetDirection={(direction) => {\n onSetDirection?.(direction);\n setDirection(direction);\n }}\n onMouseEnter={setHovered.on}\n onMouseLeave={onMouseLeave}\n ref={useForkRef([ref, containerRef])}\n isMobile={isMobile}\n {...otherProps}\n >\n {parent && (\n <>\n <ListItem\n label={getItemLabel(parent)}\n size={size}\n tabIndex={0}\n ref={parentRef}\n leftIcon={IconArrowLeft}\n onClick={() => deleteLevel(levelDepth)}\n active={activeIndex === -1}\n className={cnContextMenuLevel('Item', {\n active: activeIndex === -1,\n })}\n />\n <ListDivider size={size} space={{ mV: mapVerticalSpace[size] }} />\n </>\n )}\n <List\n size={size}\n items={items}\n getItemLabel={getItemLabel}\n onItemClick={onItemClick}\n sortGroup={sortGroup ? (a, b) => sortGroup(a.key, b.key) : undefined}\n getItemOnClick={getItemOnClick}\n getItemAs={getItemAs}\n getItemAttributes={getItemAttributes}\n getItemGroupKey={getItemGroupId}\n getItemLeftIcon={getItemLeftIcon}\n getItemRightIcon={getItemRightIcon}\n getItemLeftSide={getItemLeftSide}\n getItemRightSide={getItemRightSide}\n getGroupKey={getGroupId}\n getGroupLabel={getGroupLabel}\n getItemDisabled={getItemDisabled}\n getItemStatus={getItemStatus}\n getItemActive={getItemActive}\n getItemAdditionalClassName={(item) =>\n cnContextMenuLevel('Item', {\n active: getKey(item) === activeItem,\n })\n }\n getItemRef={(item) => itemsRefs[getKey(item)]}\n groups={groupsProp}\n innerOffset={form === 'round' ? 'increased' : 'normal'}\n />\n </ContextMenuLevelWrapper>\n );\n};\n\nexport const ContextMenuLevel = forwardRef(\n ContextMenuLevelRender,\n) as ContextMenuLevelComponent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ContextMenuLevel.js","names":["IconArrowLeft","IconArrowRight","React","forwardRef","useEffect","useMemo","cnListBox","List","ListDivider","ListItem","mapIconSize","mapVerticalSpace","useFlag","useForkRef","cnMixPopoverAnimate","cnMixSpace","cn","ContextMenuLevelWrapper","contextMenuDefaultSize","useMenuNavigation","cnContextMenuLevel","timers","clearTimers","timer","clearTimeout","closeDelay","ContextMenuLevelRender","props","ref","size","items","groupsProp","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClickProp","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSideProp","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClickProp","getItemOnClick","getItemAs","getItemAttributesProp","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId","otherProps","firstLevel","hovered","setHovered","getKey","item","toString","addCurrentLevel","subMenu","disabled","Array","isArray","key","level","itemsRefs","active","handleEscClick","e","current","focus","refs","onKeyDown","activeIndex","setActiveIndex","setDirection","parentRef","containerRef","map","reduce","a","v","index","activeKey","onMouseEnter","indexOf","setTimeout","border","shadow","pV","on","onMouseLeave","off","mV","b","tabIndex","side","sides","push","getItemActive","ContextMenuLevel"],"sources":["../../../../../../src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.tsx"],"sourcesContent":["import './ContextMenuLevel.css';\n\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useEffect, useMemo } from 'react';\n\nimport {\n cnListBox,\n List,\n ListDivider,\n ListItem,\n ListPropOnItemClick,\n mapIconSize,\n mapVerticalSpace,\n} from '##/components/ListCanary';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cn } from '##/utils/bem';\nimport { AsAttributes, AsTagAttribute } from '##/utils/types/AsTags';\n\nimport { ContextMenuLevelWrapper } from '../ContextMenuLevelWrapper';\nimport {\n contextMenuDefaultSize,\n ContextMenuItemDefault,\n ContextMenuLevelComponent,\n ContextMenuLevelProps,\n} from '../types';\nimport { useMenuNavigation } from '../useMenuNavigation';\n\nexport const cnContextMenuLevel = cn('ContextMenuLevel');\n\nlet timers: ReturnType<typeof setTimeout>[] = [];\nexport function clearTimers() {\n for (const timer of timers) {\n clearTimeout(timer);\n }\n timers = [];\n}\n\nconst closeDelay = 300;\n\nconst ContextMenuLevelRender = (\n props: ContextMenuLevelProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n size = contextMenuDefaultSize,\n items,\n groups: groupsProp,\n className,\n form = 'default',\n animate,\n // Свойства относящиеся к меню\n levelDepth,\n activeLevelDepth,\n activeItem,\n addLevel,\n deleteLevel,\n setHoveredParenLevel,\n hoveredParenLevel,\n sortGroup,\n onItemClick: onItemClickProp,\n onEsc,\n isOpen,\n parent,\n isMobile,\n\n // Свойства для поповера\n direction,\n possibleDirections,\n offset,\n onSetDirection,\n spareDirection,\n anchorRef,\n // Геттеры для ITEM\n getItemLabel,\n getItemRightSide: getItemRightSideProp,\n getItemLeftSide,\n getItemSubMenu,\n getItemStatus,\n getItemDisabled,\n getItemKey,\n getItemOnClick: getItemOnClickProp,\n getItemAs,\n getItemAttributes: getItemAttributesProp,\n getItemGroupId,\n getItemLeftIcon,\n getItemRightIcon,\n // Геттеры для GROUP\n getGroupLabel,\n getGroupId,\n ...otherProps\n } = props;\n\n const firstLevel = levelDepth === 0;\n\n const [hovered, setHovered] = useFlag(false);\n\n const getKey = (item: ContextMenuItemDefault) =>\n (getItemKey(item) || getItemLabel(item)).toString();\n\n const addCurrentLevel = (item: ContextMenuItemDefault) => {\n const subMenu = getItemSubMenu(item);\n const disabled = getItemDisabled(item);\n\n if (Array.isArray(subMenu) && !disabled) {\n const key = getKey(item);\n addLevel({\n level: levelDepth + 1,\n items: subMenu,\n anchorRef: itemsRefs[key],\n activeItem: key,\n parent: item,\n });\n setHoveredParenLevel(levelDepth + 1);\n } else {\n setHoveredParenLevel(levelDepth);\n }\n };\n\n const handleEscClick: React.KeyboardEventHandler = (e) => {\n onEsc?.(e);\n anchorRef?.current?.focus();\n };\n\n const {\n refs,\n onKeyDown,\n activeIndex,\n setActiveIndex,\n setDirection,\n parentRef,\n containerRef,\n } = useMenuNavigation({\n items,\n getItemSubMenu,\n addLevel: addCurrentLevel,\n active: activeLevelDepth === levelDepth,\n deleteLevel: () => deleteLevel(levelDepth),\n onEsc: handleEscClick,\n level: levelDepth,\n isMobile,\n });\n\n const itemsRefs = useMemo(() => {\n return items\n .map((item) => getKey(item))\n .reduce((a, v, index) => ({ ...a, [v]: refs[index] }), {}) as Record<\n string,\n React.RefObject<HTMLDivElement>\n >;\n }, [groupsProp, refs]);\n\n const activeKey = useMemo(() => {\n const item = items[activeIndex];\n return item ? getKey(item) : undefined;\n }, [items, activeIndex]);\n\n const onMouseEnter = isMobile\n ? undefined\n : (item: ContextMenuItemDefault): AsTagAttribute<'div'>['onMouseEnter'] =>\n (e) => {\n addCurrentLevel(item);\n const onMouseEnter = getItemAttributesProp(item)\n ?.onMouseEnter as AsTagAttribute<'div'>['onMouseEnter'];\n setActiveIndex(items.indexOf(item));\n onMouseEnter?.(e);\n };\n\n // GETTERS\n\n const getItemOnClick = getItemOnClickProp\n ? (item: ContextMenuItemDefault) => (e: React.MouseEvent) =>\n getItemOnClickProp(item)?.(e as React.MouseEvent<HTMLDivElement>)\n : undefined;\n\n const getItemAttributes = (item: ContextMenuItemDefault) =>\n ({\n ...getItemAttributesProp(item),\n tabIndex: 0,\n onMouseEnter: onMouseEnter?.(item),\n } as AsAttributes);\n\n const getItemActive = (item: ContextMenuItemDefault) => {\n const key = getKey(item);\n return key === activeItem || key === activeKey;\n };\n\n const getItemRightSide = (item: ContextMenuItemDefault) => {\n const side = getItemRightSideProp(item);\n if (!getItemSubMenu(item)) {\n return side;\n }\n\n const sides: React.ReactNode[] = Array.isArray(side) ? side : [side];\n sides.push(<IconArrowRight size={mapIconSize[size]} />);\n return sides;\n };\n\n const onMouseLeave: React.MouseEventHandler = () => {\n setHovered.off();\n setActiveIndex(-1);\n };\n\n const onItemClick: ListPropOnItemClick<ContextMenuItemDefault> = (\n item,\n { e },\n ) => {\n if (isMobile) {\n addCurrentLevel(item);\n setActiveIndex(items.indexOf(item));\n }\n onItemClickProp?.(item, {\n e: e as React.MouseEvent<HTMLDivElement>,\n });\n };\n\n // EFFECTS\n\n useEffect(() => {\n if (levelDepth !== 0 && !hovered && hoveredParenLevel < levelDepth) {\n clearTimeout(timers[levelDepth]);\n timers[levelDepth] = setTimeout(\n () => deleteLevel(levelDepth),\n closeDelay,\n );\n }\n return () => clearTimeout(timers[levelDepth]);\n }, [hovered, hoveredParenLevel]);\n\n useEffect(() => {\n if (!isOpen) {\n clearTimeout(timers[levelDepth]);\n }\n }, [isOpen]);\n\n return (\n <ContextMenuLevelWrapper\n anchorRef={anchorRef}\n className={\n isMobile\n ? cnContextMenuLevel(\n 'Mobile',\n { animate, firstLevel, level: levelDepth.toString() },\n [className],\n )\n : cnContextMenuLevel(\n 'Desktop',\n { firstLevel, level: levelDepth.toString() },\n [\n cnListBox({ size, form, border: true, shadow: true }),\n cnMixSpace({\n pV: mapVerticalSpace[size],\n }),\n cnMixPopoverAnimate({ animate }),\n className,\n ],\n )\n }\n possibleDirections={possibleDirections}\n spareDirection={spareDirection}\n direction={direction}\n offset={offset}\n tabIndex={0}\n onKeyDown={onKeyDown}\n onSetDirection={(direction) => {\n onSetDirection?.(direction);\n setDirection(direction);\n }}\n onMouseEnter={setHovered.on}\n onMouseLeave={onMouseLeave}\n ref={useForkRef([ref, containerRef])}\n isMobile={isMobile}\n {...otherProps}\n >\n {parent && (\n <>\n <ListItem\n label={getItemLabel(parent)}\n size={size}\n tabIndex={0}\n ref={parentRef}\n leftIcon={IconArrowLeft}\n onClick={() => deleteLevel(levelDepth)}\n active={activeIndex === -1}\n className={cnContextMenuLevel('Item', {\n active: activeIndex === -1,\n })}\n />\n <ListDivider size={size} space={{ mV: mapVerticalSpace[size] }} />\n </>\n )}\n <List\n size={size}\n items={items}\n getItemLabel={getItemLabel}\n onItemClick={onItemClick}\n sortGroup={sortGroup ? (a, b) => sortGroup(a.key, b.key) : undefined}\n getItemOnClick={getItemOnClick}\n getItemAs={getItemAs}\n getItemAttributes={getItemAttributes}\n getItemGroupKey={getItemGroupId}\n getItemLeftIcon={getItemLeftIcon}\n getItemRightIcon={getItemRightIcon}\n getItemLeftSide={getItemLeftSide}\n getItemRightSide={getItemRightSide}\n getGroupKey={getGroupId}\n getGroupLabel={getGroupLabel}\n getItemDisabled={getItemDisabled}\n getItemStatus={getItemStatus}\n getItemActive={getItemActive}\n getItemAdditionalClassName={(item) =>\n cnContextMenuLevel('Item', {\n active: getKey(item) === activeItem,\n })\n }\n getItemRef={(item) => itemsRefs[getKey(item)]}\n groups={groupsProp}\n innerOffset={form === 'round' ? 'increased' : 'normal'}\n />\n </ContextMenuLevelWrapper>\n );\n};\n\nexport const ContextMenuLevel = forwardRef(\n ContextMenuLevelRender,\n) as ContextMenuLevelComponent;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["type","minDate","maxDate","labelPosition","
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["type","minDate","maxDate","labelPosition","timeOptions","multiplicityHours","multiplicityMinutes","multiplicitySeconds"];import React,{forwardRef,useMemo,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{maxDateDefault,minDateDefault}from"../../utils/date";import{getByMap}from"../../utils/getByMap";import{getTimeOptionsKey}from"../DateTime/helpers/getTimeOptionsKey";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{DatePickerTypeDate}from"./DatePickerTypeDate/DatePickerTypeDate";import{DatePickerTypeDateRange}from"./DatePickerTypeDateRange/DatePickerTypeDateRange";import{DatePickerTypeDateTime}from"./DatePickerTypeDateTime/DatePickerTypeDateTime";import{DatePickerTypeDateTimeRange}from"./DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange";import{DatePickerTypeMonth}from"./DatePickerTypeMonth/DatePickerTypeMonth";import{DatePickerTypeMonthRange}from"./DatePickerTypeMonthRange/DatePickerTypeMonthRange";import{DatePickerTypeTime}from"./DatePickerTypeTime/DatePickerTypeTime";import{DatePickerTypeYear}from"./DatePickerTypeYear/DatePickerTypeYear";import{DatePickerTypeYearRange}from"./DatePickerTypeYearRange/DatePickerTypeYearRange";import{isTypeWithTime}from"./helpers";import{datePickerPropTypeDefault}from"./types";var typeMap={date:DatePickerTypeDate,"date-range":DatePickerTypeDateRange,"date-time":DatePickerTypeDateTime,"date-time-range":DatePickerTypeDateTimeRange,time:DatePickerTypeTime,year:DatePickerTypeYear,"year-range":DatePickerTypeYearRange,month:DatePickerTypeMonth,"month-range":DatePickerTypeMonthRange};export var COMPONENT_NAME="DatePicker";export var DatePicker=forwardRef(function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.type,f=void 0===e?datePickerPropTypeDefault:e,g=d.minDate,h=void 0===g?minDateDefault:g,i=d.maxDate,j=void 0===i?maxDateDefault:i,k=d.labelPosition,l=void 0===k?"top":k,m=d.timeOptions,n=d.multiplicityHours,o=d.multiplicityMinutes,p=d.multiplicitySeconds,q=_objectWithoutProperties(d,_excluded),r=useMemo(function(){var a,b,c;return{hours:null!==(a=null===m||void 0===m?void 0:m.hours)&&void 0!==a?a:n===void 0?void 0:{step:n},minutes:null!==(b=null===m||void 0===m?void 0:m.minutes)&&void 0!==b?b:o===void 0?void 0:{step:o},seconds:null!==(c=null===m||void 0===m?void 0:m.seconds)&&void 0!==c?c:p===void 0?void 0:{step:p}}},[getTimeOptionsKey(m),n,o,p]),s=useMemo(function(){return isTypeWithTime(f)?{timeOptions:r}:void 0},[f,r]),t=getByMap(typeMap,f);return React.createElement(t,Object.assign({},q,s,{labelPosition:l,minDate:h,maxDate:j,ref:useForkRef([b,c])}))});export*from"./helpers";export*from"./types";
|
|
2
2
|
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","names":["React","forwardRef","useMemo","useRef","useForkRef","maxDateDefault","minDateDefault","getByMap","usePropsHandler","DatePickerTypeDate","DatePickerTypeDateRange","DatePickerTypeDateTime","DatePickerTypeDateTimeRange","DatePickerTypeMonth","DatePickerTypeMonthRange","DatePickerTypeTime","DatePickerTypeYear","DatePickerTypeYearRange","isTypeWithTime","datePickerPropTypeDefault","typeMap","COMPONENT_NAME","DatePicker","props","ref","datePickerRef","type","minDate","maxDate","labelPosition","multiplicityMinutes","multiplicitySeconds","
|
|
1
|
+
{"version":3,"file":"DatePicker.js","names":["React","forwardRef","useMemo","useRef","useForkRef","maxDateDefault","minDateDefault","getByMap","getTimeOptionsKey","usePropsHandler","DatePickerTypeDate","DatePickerTypeDateRange","DatePickerTypeDateTime","DatePickerTypeDateTimeRange","DatePickerTypeMonth","DatePickerTypeMonthRange","DatePickerTypeTime","DatePickerTypeYear","DatePickerTypeYearRange","isTypeWithTime","datePickerPropTypeDefault","typeMap","COMPONENT_NAME","DatePicker","props","ref","datePickerRef","type","minDate","maxDate","labelPosition","timeOptions","multiplicityHours","multiplicityMinutes","multiplicitySeconds","otherProps","effectiveTimeOptions","hours","step","minutes","seconds","timeProps","Component"],"sources":["../../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\n\nimport { useForkRef } from '##/hooks/useForkRef/useForkRef';\nimport { maxDateDefault, minDateDefault } from '##/utils/date';\nimport { getByMap } from '##/utils/getByMap';\n\nimport { TimeOptions } from '../DateTime';\nimport { getTimeOptionsKey } from '../DateTime/helpers/getTimeOptionsKey';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { DatePickerTypeDate } from './DatePickerTypeDate/DatePickerTypeDate';\nimport { DatePickerTypeDateRange } from './DatePickerTypeDateRange/DatePickerTypeDateRange';\nimport { DatePickerTypeDateTime } from './DatePickerTypeDateTime/DatePickerTypeDateTime';\nimport { DatePickerTypeDateTimeRange } from './DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange';\nimport { DatePickerTypeMonth } from './DatePickerTypeMonth/DatePickerTypeMonth';\nimport { DatePickerTypeMonthRange } from './DatePickerTypeMonthRange/DatePickerTypeMonthRange';\nimport { DatePickerTypeTime } from './DatePickerTypeTime/DatePickerTypeTime';\nimport { DatePickerTypeYear } from './DatePickerTypeYear/DatePickerTypeYear';\nimport { DatePickerTypeYearRange } from './DatePickerTypeYearRange/DatePickerTypeYearRange';\nimport { isTypeWithTime } from './helpers';\nimport {\n DatePickerComponent,\n DatePickerPropType,\n datePickerPropTypeDefault,\n DatePickerTypeComponent,\n} from './types';\n\nconst typeMap: Record<\n DatePickerPropType,\n DatePickerTypeComponent<DatePickerPropType>\n> = {\n 'date': DatePickerTypeDate,\n 'date-range': DatePickerTypeDateRange,\n 'date-time': DatePickerTypeDateTime,\n 'date-time-range': DatePickerTypeDateTimeRange,\n 'time': DatePickerTypeTime,\n 'year': DatePickerTypeYear,\n 'year-range': DatePickerTypeYearRange,\n 'month': DatePickerTypeMonth,\n 'month-range': DatePickerTypeMonthRange,\n};\n\nexport const COMPONENT_NAME = 'DatePicker' as const;\n\nexport const DatePicker: DatePickerComponent = forwardRef((props, ref) => {\n const datePickerRef = useRef<HTMLDivElement>(null);\n const {\n type = datePickerPropTypeDefault,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n labelPosition = 'top',\n timeOptions,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, datePickerRef);\n\n // TODO: major - удалить multiplicity* props конвертацию, используйте timeOptions напрямую\n const effectiveTimeOptions = useMemo((): TimeOptions => {\n return {\n hours:\n timeOptions?.hours ??\n (multiplicityHours !== undefined\n ? { step: multiplicityHours }\n : undefined),\n minutes:\n timeOptions?.minutes ??\n (multiplicityMinutes !== undefined\n ? { step: multiplicityMinutes }\n : undefined),\n seconds:\n timeOptions?.seconds ??\n (multiplicitySeconds !== undefined\n ? { step: multiplicitySeconds }\n : undefined),\n };\n }, [\n getTimeOptionsKey(timeOptions),\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n ]);\n\n const timeProps = useMemo(\n () =>\n isTypeWithTime(type)\n ? {\n timeOptions: effectiveTimeOptions,\n }\n : undefined,\n [type, effectiveTimeOptions],\n );\n\n const Component = getByMap(typeMap, type);\n\n return (\n <Component\n {...otherProps}\n {...timeProps}\n labelPosition={labelPosition}\n minDate={minDate}\n maxDate={maxDate}\n ref={useForkRef([ref, datePickerRef])}\n />\n );\n});\n\nexport * from './helpers';\nexport * from './types';\n"],"mappings":"8NAAA,MAAOA,MAAP,EAAgBC,UAAhB,CAA4BC,OAA5B,CAAqCC,MAArC,KAAmD,OAAnD,CAEA,OAASC,UAAT,yCACA,OAASC,cAAT,CAAyBC,cAAzB,wBACA,OAASC,QAAT,4BAGA,OAASC,iBAAT,6CACA,OAASC,eAAT,2CACA,OAASC,kBAAT,+CACA,OAASC,uBAAT,yDACA,OAASC,sBAAT,uDACA,OAASC,2BAAT,iEACA,OAASC,mBAAT,iDACA,OAASC,wBAAT,2DACA,OAASC,kBAAT,+CACA,OAASC,kBAAT,+CACA,OAASC,uBAAT,yDACA,OAASC,cAAT,iBACA,OAGEC,yBAHF,eAOA,GAAMC,QAGL,CAAG,CACF,KAAQX,kBADN,CAEF,aAAcC,uBAFZ,CAGF,YAAaC,sBAHX,CAIF,kBAAmBC,2BAJjB,CAKF,KAAQG,kBALN,CAMF,KAAQC,kBANN,CAOF,aAAcC,uBAPZ,CAQF,MAASJ,mBARP,CASF,cAAeC,wBATb,CAHJ,CAeA,MAAO,IAAMO,eAAc,CAAG,YAAvB,CAEP,MAAO,IAAMC,WAA+B,CAAGtB,UAAU,CAAC,SAACuB,CAAD,CAAQC,CAAR,CAAgB,IAClEC,EAAa,CAAGvB,MAAM,CAAiB,IAAjB,CAD4C,GAYpEM,eAAe,CAACa,cAAD,CAAiBE,CAAjB,CAAwBE,CAAxB,CAZqD,KAGtEC,IAHsE,CAGtEA,CAHsE,YAG/DP,yBAH+D,OAItEQ,OAJsE,CAItEA,CAJsE,YAI5DtB,cAJ4D,OAKtEuB,OALsE,CAKtEA,CALsE,YAK5DxB,cAL4D,OAMtEyB,aANsE,CAMtEA,CANsE,YAMtD,KANsD,GAOtEC,CAPsE,GAOtEA,WAPsE,CAQtEC,CARsE,GAQtEA,iBARsE,CAStEC,CATsE,GAStEA,mBATsE,CAUtEC,CAVsE,GAUtEA,mBAVsE,CAWnEC,CAXmE,uCAelEC,CAAoB,CAAGlC,OAAO,CAAC,UAAmB,WACtD,MAAO,CACLmC,KAAK,kBACHN,CADG,WACHA,CADG,QACHA,CAAW,CAAEM,KADV,gBAEFL,CAAiB,SAAjB,QACG,CAAEM,IAAI,CAAEN,CAAR,CAJD,CAMLO,OAAO,kBACLR,CADK,WACLA,CADK,QACLA,CAAW,CAAEQ,OADR,gBAEJN,CAAmB,SAAnB,QACG,CAAEK,IAAI,CAAEL,CAAR,CATD,CAWLO,OAAO,kBACLT,CADK,WACLA,CADK,QACLA,CAAW,CAAES,OADR,gBAEJN,CAAmB,SAAnB,QACG,CAAEI,IAAI,CAAEJ,CAAR,CAdD,CAiBR,CAlBmC,CAkBjC,CACD1B,iBAAiB,CAACuB,CAAD,CADhB,CAEDC,CAFC,CAGDC,CAHC,CAIDC,CAJC,CAlBiC,CAfoC,CAwClEO,CAAS,CAAGvC,OAAO,CACvB,iBACEiB,eAAc,CAACQ,CAAD,CAAd,CACI,CACEI,WAAW,CAAEK,CADf,CADJ,OADF,CADuB,CAOvB,CAACT,CAAD,CAAOS,CAAP,CAPuB,CAxC+C,CAkDlEM,CAAS,CAAGnC,QAAQ,CAACc,OAAD,CAAUM,CAAV,CAlD8C,CAoDxE,MACE,qBAAC,CAAD,kBACMQ,CADN,CAEMM,CAFN,EAGE,aAAa,CAAEX,CAHjB,CAIE,OAAO,CAAEF,CAJX,CAKE,OAAO,CAAEC,CALX,CAME,GAAG,CAAEzB,UAAU,CAAC,CAACqB,CAAD,CAAMC,CAAN,CAAD,CANjB,GASH,CA9DwD,CAAlD,CAgEP,uBACA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './DatePickerDropdown.css';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { DateTimePropOnChange, DateTimePropType } from '../../DateTime';
|
|
4
|
-
import { DateTimePropDisableDates } from '../../DateTime/helpers/types';
|
|
4
|
+
import { DateTimePropDisableDates, TimeOptions } from '../../DateTime/helpers/types';
|
|
5
5
|
import { DateRange } from '../../../utils/types/Date';
|
|
6
6
|
import { PropsWithHTMLAttributesAndRef } from '../../../utils/types/PropsWithHTMLAttributes';
|
|
7
7
|
import { DatePickerAdditionalControlRenderProp, DatePickerPropDateTimeView, DatePickerPropDropdownForm } from '../types';
|
|
@@ -23,9 +23,7 @@ export type DatePickerDropdownProps = PropsWithHTMLAttributesAndRef<{
|
|
|
23
23
|
onChangeCurrentVisibleDate?: (date: Date) => void;
|
|
24
24
|
zIndex?: number;
|
|
25
25
|
renderAdditionalControls?: DatePickerAdditionalControlRenderProp;
|
|
26
|
-
|
|
27
|
-
multiplicityMinutes?: number;
|
|
28
|
-
multiplicityHours?: number;
|
|
26
|
+
timeOptions?: TimeOptions;
|
|
29
27
|
timeFor?: 'start' | 'end';
|
|
30
28
|
disableDates?: DateTimePropDisableDates;
|
|
31
29
|
}, HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerDropdown.js","names":["React","forwardRef","useCallback","useRef","useState","Transition","DateTime","Popover","useFlag","useForkRef","animateTimeout","cnMixPopoverAnimate","cn","DatePickerAdditionalControls","datePickerPropDropdownFormDefault","moveMap","cnDatePickerDropdown","DatePickerDropdown","props","componentRef","form","anchorRef","isOpen","className","zIndex","renderAdditionalControls","otherProps","rootRef","direction","setDirection","visibleAdditionalControls","setVisibleAdditionalControls","onMove","to","type","on","off","ref","animate","currentVisibleDate","view"],"sources":["../../../../../../src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.tsx"],"sourcesContent":["import './DatePickerDropdown.css';\n\nimport React, { forwardRef, useCallback, useRef, useState } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n DateTime,\n DateTimePropOnChange,\n DateTimePropType,\n MoveType,\n} from '##/components/DateTime';\nimport {
|
|
1
|
+
{"version":3,"file":"DatePickerDropdown.js","names":["React","forwardRef","useCallback","useRef","useState","Transition","DateTime","Popover","useFlag","useForkRef","animateTimeout","cnMixPopoverAnimate","cn","DatePickerAdditionalControls","datePickerPropDropdownFormDefault","moveMap","cnDatePickerDropdown","DatePickerDropdown","props","componentRef","form","anchorRef","isOpen","className","zIndex","renderAdditionalControls","otherProps","rootRef","direction","setDirection","visibleAdditionalControls","setVisibleAdditionalControls","onMove","to","type","on","off","ref","animate","currentVisibleDate","view"],"sources":["../../../../../../src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.tsx"],"sourcesContent":["import './DatePickerDropdown.css';\n\nimport React, { forwardRef, useCallback, useRef, useState } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n DateTime,\n DateTimePropOnChange,\n DateTimePropType,\n MoveType,\n} from '##/components/DateTime';\nimport {\n DateTimePropDisableDates,\n TimeOptions,\n} from '##/components/DateTime/helpers/types';\nimport { Direction, Popover } from '##/components/Popover';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { animateTimeout, cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cn } from '##/utils/bem';\nimport { DateRange } from '##/utils/types/Date';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { DatePickerAdditionalControls } from '../DatePickerAdditionalControls/DatePickerAdditionalControls';\nimport {\n DatePickerAdditionalControlRenderProp,\n DatePickerPropDateTimeView,\n DatePickerPropDropdownForm,\n datePickerPropDropdownFormDefault,\n} from '../types';\n\nexport type DatePickerDropdownPropOnChange = DateTimePropOnChange;\n\nexport type DatePickerDropdownProps = PropsWithHTMLAttributesAndRef<\n {\n anchorRef: React.RefObject<HTMLElement>;\n currentVisibleDate?: Date;\n type: DateTimePropType;\n value?: Date | DateRange;\n onChange?: DatePickerDropdownPropOnChange;\n minDate?: Date;\n maxDate?: Date;\n events?: Date[];\n view: DatePickerPropDateTimeView;\n locale?: Locale;\n children?: never;\n form?: DatePickerPropDropdownForm;\n isOpen?: boolean;\n onChangeCurrentVisibleDate?: (date: Date) => void;\n zIndex?: number;\n renderAdditionalControls?: DatePickerAdditionalControlRenderProp;\n timeOptions?: TimeOptions;\n timeFor?: 'start' | 'end';\n disableDates?: DateTimePropDisableDates;\n },\n HTMLDivElement\n>;\n\ntype DatePickerDropdownComponent = (\n props: DatePickerDropdownProps,\n) => React.ReactNode | null;\n\nconst moveMap: Record<DateTimePropType, MoveType> = {\n 'year': 'year',\n 'month': 'month',\n 'date': 'day',\n 'time': 'time',\n 'date-time': 'day',\n};\n\nconst cnDatePickerDropdown = cn('DatePickerDropdown');\n\nexport const DatePickerDropdown: DatePickerDropdownComponent = forwardRef(\n (props, componentRef) => {\n const {\n form = datePickerPropDropdownFormDefault,\n anchorRef,\n isOpen,\n className,\n zIndex,\n renderAdditionalControls,\n ...otherProps\n } = props;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const [direction, setDirection] = useState<Direction>();\n\n const [visibleAdditionalControls, setVisibleAdditionalControls] =\n useFlag(true);\n\n const onMove = useCallback(\n (to: MoveType) => {\n to === moveMap[props.type]\n ? setVisibleAdditionalControls.on()\n : setVisibleAdditionalControls.off();\n },\n [props.type],\n );\n\n const ref = useForkRef([componentRef, rootRef]);\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n timeout={animateTimeout}\n nodeRef={rootRef}\n >\n {(animate) => {\n return (\n <Popover\n ref={ref}\n anchorRef={anchorRef}\n className={cnDatePickerDropdown({ form }, [\n className,\n cnMixPopoverAnimate({ direction, animate }),\n ])}\n direction=\"downStartLeft\"\n spareDirection=\"downStartLeft\"\n possibleDirections={[\n 'downStartLeft',\n 'upStartLeft',\n 'downStartRight',\n 'upStartRight',\n ]}\n style={{ zIndex }}\n role=\"listbox\"\n onSetDirection={setDirection}\n >\n <DateTime {...otherProps} onMove={onMove} />\n {visibleAdditionalControls && (\n <DatePickerAdditionalControls\n currentVisibleDate={props.currentVisibleDate}\n renderAdditionalControls={renderAdditionalControls}\n type={props.type}\n view={props.view}\n />\n )}\n </Popover>\n );\n }}\n </Transition>\n );\n },\n);\n"],"mappings":"kPAAA,iCAEA,MAAOA,MAAP,EAAgBC,UAAhB,CAA4BC,WAA5B,CAAyCC,MAAzC,CAAiDC,QAAjD,KAAiE,OAAjE,CACA,OAASC,UAAT,KAA2B,wBAA3B,CAEA,OACEC,QADF,sBAUA,OAAoBC,OAApB,qBACA,OAASC,OAAT,8BACA,OAASC,UAAT,iCACA,OAASC,cAAT,CAAyBC,mBAAzB,uCACA,OAASC,EAAT,0BAIA,OAASC,4BAAT,oEACA,OAIEC,iCAJF,gB,GAsCMC,QAA2C,CAAG,CAClD,KAAQ,MAD0C,CAElD,MAAS,OAFyC,CAGlD,KAAQ,KAH0C,CAIlD,KAAQ,MAJ0C,CAKlD,YAAa,KALqC,C,CAQ9CC,oBAAoB,CAAGJ,EAAE,CAAC,oBAAD,C,CAE/B,MAAO,IAAMK,mBAA+C,CAAGhB,UAAU,CACvE,SAACiB,CAAD,CAAQC,CAAR,CAAyB,OASnBD,CATmB,CAErBE,IAFqB,CAErBA,CAFqB,YAEdN,iCAFc,GAGrBO,CAHqB,CASnBH,CATmB,CAGrBG,SAHqB,CAIrBC,CAJqB,CASnBJ,CATmB,CAIrBI,MAJqB,CAKrBC,CALqB,CASnBL,CATmB,CAKrBK,SALqB,CAMrBC,CANqB,CASnBN,CATmB,CAMrBM,MANqB,CAOrBC,CAPqB,CASnBP,CATmB,CAOrBO,wBAPqB,CAQlBC,CARkB,0BASnBR,CATmB,YAWjBS,CAAO,CAAGxB,MAAM,CAAiB,IAAjB,CAXC,GAYWC,QAAQ,EAZnB,uBAYhBwB,CAZgB,MAYLC,CAZK,QAerBrB,OAAO,IAfc,uBAchBsB,CAdgB,MAcWC,CAdX,MAiBjBC,CAAM,CAAG9B,WAAW,CACxB,SAAC+B,CAAD,CAAkB,CAChBA,CAAE,GAAKlB,OAAO,CAACG,CAAK,CAACgB,IAAP,CAAd,CACIH,CAA4B,CAACI,EAA7B,EADJ,CAEIJ,CAA4B,CAACK,GAA7B,EACL,CALuB,CAMxB,CAAClB,CAAK,CAACgB,IAAP,CANwB,CAjBH,CA0BjBG,CAAG,CAAG5B,UAAU,CAAC,CAACU,CAAD,CAAeQ,CAAf,CAAD,CA1BC,CA4BvB,MACE,qBAAC,UAAD,EACE,GAAIL,CADN,CAEE,aAAa,GAFf,CAGE,OAAO,CAAEZ,cAHX,CAIE,OAAO,CAAEiB,CAJX,EAMG,SAACW,CAAD,CAAa,CACZ,MACE,qBAAC,OAAD,EACE,GAAG,CAAED,CADP,CAEE,SAAS,CAAEhB,CAFb,CAGE,SAAS,CAAEL,oBAAoB,CAAC,CAAEI,IAAI,CAAJA,CAAF,CAAD,CAAW,CACxCG,CADwC,CAExCZ,mBAAmB,CAAC,CAAEiB,SAAS,CAATA,CAAF,CAAaU,OAAO,CAAPA,CAAb,CAAD,CAFqB,CAAX,CAHjC,CAOE,SAAS,CAAC,eAPZ,CAQE,cAAc,CAAC,eARjB,CASE,kBAAkB,CAAE,CAClB,eADkB,CAElB,aAFkB,CAGlB,gBAHkB,CAIlB,cAJkB,CATtB,CAeE,KAAK,CAAE,CAAEd,MAAM,CAANA,CAAF,CAfT,CAgBE,IAAI,CAAC,SAhBP,CAiBE,cAAc,CAAEK,CAjBlB,EAmBE,oBAAC,QAAD,kBAAcH,CAAd,EAA0B,MAAM,CAAEM,CAAlC,GAnBF,CAoBGF,CAAyB,EACxB,oBAAC,4BAAD,EACE,kBAAkB,CAAEZ,CAAK,CAACqB,kBAD5B,CAEE,wBAAwB,CAAEd,CAF5B,CAGE,IAAI,CAAEP,CAAK,CAACgB,IAHd,CAIE,IAAI,CAAEhB,CAAK,CAACsB,IAJd,EArBJ,CA8BH,CAtCH,CAyCH,CAvEsE,CAAlE"}
|
package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","defaultValue"];import React from"react";import{TextField}from"../../TextField";import{useForkRef}from"../../../hooks/useForkRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{datePickerPropFormatTypeDate,
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","defaultValue"];import React from"react";import{TextField}from"../../TextField";import{useForkRef}from"../../../hooks/useForkRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{datePickerPropFormatTypeDate,datePickerPropSeparatorDefault,placeholderByFormat}from"../helpers";import{usePicker}from"./helpers";export var DatePickerFieldTypeDate=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeDate:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=a.onChange,i=a.onError,j=a.minDate,k=void 0===j?minDateDefault:j,l=a.maxDate,m=void 0===l?maxDateDefault:l,n=a.value,o=a.inputRef,p=a.defaultValue,q=_objectWithoutProperties(a,_excluded),r=null!==g&&void 0!==g?g:placeholderByFormat(d),s=usePicker({format:d,separator:f,onChange:h,onError:i,value:n,minDate:k,maxDate:m}),t=_slicedToArray(s,2),u=t[0],v=t[1];return React.createElement(TextField,Object.assign({},q,{type:"text",inputContainerRef:b,inputRef:useForkRef([u,o]),placeholder:r,onClear:v}))});
|
|
2
2
|
//# sourceMappingURL=DatePickerFieldTypeDate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerFieldTypeDate.js","names":["React","TextField","useForkRef","maxDateDefault","minDateDefault","datePickerPropFormatTypeDate","
|
|
1
|
+
{"version":3,"file":"DatePickerFieldTypeDate.js","names":["React","TextField","useForkRef","maxDateDefault","minDateDefault","datePickerPropFormatTypeDate","datePickerPropSeparatorDefault","placeholderByFormat","usePicker","DatePickerFieldTypeDate","forwardRef","props","ref","format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","defaultValue","otherProps","adaptedPlaceholder","onClear"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.tsx"],"sourcesContent":["import React from 'react';\n\nimport { TextField } from '##/components/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { maxDateDefault, minDateDefault } from '##/utils/date';\n\nimport {\n datePickerPropFormatTypeDate,\n datePickerPropSeparatorDefault,\n placeholderByFormat,\n} from '../helpers';\nimport { DatePickerFieldTypeDateProps, usePicker } from './helpers';\n\nexport const DatePickerFieldTypeDate = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeDateProps\n>((props, ref) => {\n const {\n format = datePickerPropFormatTypeDate,\n separator = datePickerPropSeparatorDefault,\n placeholder,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n defaultValue,\n ...otherProps\n } = props;\n\n const adaptedPlaceholder = placeholder ?? placeholderByFormat(format);\n\n const [inputRef, onClear] = usePicker({\n format,\n separator,\n onChange,\n onError,\n value,\n minDate,\n maxDate,\n });\n\n return (\n <TextField\n {...otherProps}\n type=\"text\"\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n placeholder={adaptedPlaceholder}\n onClear={onClear}\n />\n );\n});\n"],"mappings":"oRAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,SAAT,uBACA,OAASC,UAAT,iCACA,OAASC,cAAT,CAAyBC,cAAzB,2BAEA,OACEC,4BADF,CAEEC,8BAFF,CAGEC,mBAHF,kBAKA,OAAuCC,SAAvC,iBAEA,MAAO,IAAMC,wBAAuB,CAAGT,KAAK,CAACU,UAAN,CAGrC,SAACC,CAAD,CAAQC,CAAR,CAAgB,OAaZD,CAbY,CAEdE,MAFc,CAEdA,CAFc,YAELR,4BAFK,KAaZM,CAbY,CAGdG,SAHc,CAGdA,CAHc,YAGFR,8BAHE,GAIdS,CAJc,CAaZJ,CAbY,CAIdI,WAJc,CAKdC,CALc,CAaZL,CAbY,CAKdK,QALc,CAMdC,CANc,CAaZN,CAbY,CAMdM,OANc,GAaZN,CAbY,CAOdO,OAPc,CAOdA,CAPc,YAOJd,cAPI,KAaZO,CAbY,CAQdQ,OARc,CAQdA,CARc,YAQJhB,cARI,GASdiB,CATc,CAaZT,CAbY,CASdS,KATc,CAUJC,CAVI,CAaZV,CAbY,CAUdW,QAVc,CAWdC,CAXc,CAaZZ,CAbY,CAWdY,YAXc,CAYXC,CAZW,0BAaZb,CAbY,YAeVc,CAAkB,QAAGV,CAAH,WAAGA,CAAH,CAAGA,CAAH,CAAkBR,mBAAmB,CAACM,CAAD,CAf7C,GAiBYL,SAAS,CAAC,CACpCK,MAAM,CAANA,CADoC,CAEpCC,SAAS,CAATA,CAFoC,CAGpCE,QAAQ,CAARA,CAHoC,CAIpCC,OAAO,CAAPA,CAJoC,CAKpCG,KAAK,CAALA,CALoC,CAMpCF,OAAO,CAAPA,CANoC,CAOpCC,OAAO,CAAPA,CAPoC,CAAD,CAjBrB,uBAiBTG,CAjBS,MAiBCI,CAjBD,MA2BhB,MACE,qBAAC,SAAD,kBACMF,CADN,EAEE,IAAI,CAAC,MAFP,CAGE,iBAAiB,CAAEZ,CAHrB,CAIE,QAAQ,CAAEV,UAAU,CAAC,CAACoB,CAAD,CAAWD,CAAX,CAAD,CAJtB,CAKE,WAAW,CAAEI,CALf,CAME,OAAO,CAAEC,CANX,GASH,CAxCsC,CAAhC"}
|
|
@@ -31,12 +31,10 @@ export declare const DatePickerFieldTypeDateTime: React.ForwardRefExoticComponen
|
|
|
31
31
|
minDate?: Date;
|
|
32
32
|
maxDate?: Date;
|
|
33
33
|
focused?: boolean;
|
|
34
|
-
|
|
35
|
-
multiplicityMinutes?: number;
|
|
36
|
-
multiplicityHours?: number;
|
|
34
|
+
timeOptions?: import("../../DateTime").TimeOptions;
|
|
37
35
|
label?: string;
|
|
38
36
|
labelIcon?: import("@consta/icons/Icon").IconComponent;
|
|
39
37
|
caption?: string;
|
|
40
38
|
labelPosition?: "top" | "left";
|
|
41
39
|
withClearButton?: boolean;
|
|
42
|
-
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "autoFocus" | "className" | "id" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "size" | "view" | "form" | "separator" | "status" | "caption" | "label" | "name" | "disabled" | "value" | "placeholder" | "readOnly" | "required" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "
|
|
40
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "autoFocus" | "className" | "id" | "tabIndex" | "children" | "onFocus" | "onBlur" | "onChange" | "onError" | "size" | "view" | "form" | "separator" | "status" | "caption" | "label" | "name" | "disabled" | "value" | "placeholder" | "readOnly" | "required" | "inputRef" | "focused" | "ariaLabel" | "labelIcon" | "labelPosition" | "leftSide" | "rightSide" | "withClearButton" | "iconSize" | "minDate" | "maxDate" | "timeOptions" | "format"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","timeOptions","defaultValue"];import React from"react";import{TextField}from"../../TextField";import{useForkRef}from"../../../hooks/useForkRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{adaptFormat,datePickerPropFormatTypeDateTime,datePickerPropSeparatorDefault,placeholderByFormat}from"../helpers";import{usePicker}from"./helpers";export var DatePickerFieldTypeDateTime=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeDateTime:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=a.onChange,i=a.onError,j=a.minDate,k=void 0===j?minDateDefault:j,l=a.maxDate,m=void 0===l?maxDateDefault:l,n=a.value,o=a.inputRef,p=a.timeOptions,q=a.defaultValue,r=_objectWithoutProperties(a,_excluded),s=adaptFormat(d,p),t=null!==g&&void 0!==g?g:placeholderByFormat(s),u=usePicker({onChange:h,value:n,onError:i,maxDate:m,minDate:k,timeOptions:p,separator:f,format:s}),v=_slicedToArray(u,2),w=v[0],x=v[1];return React.createElement(TextField,Object.assign({},r,{type:"text",inputContainerRef:b,inputRef:useForkRef([w,o]),placeholder:t,onClear:x}))});
|
|
2
2
|
//# sourceMappingURL=DatePickerFieldTypeDateTime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerFieldTypeDateTime.js","names":["React","TextField","useForkRef","maxDateDefault","minDateDefault","
|
|
1
|
+
{"version":3,"file":"DatePickerFieldTypeDateTime.js","names":["React","TextField","useForkRef","maxDateDefault","minDateDefault","adaptFormat","datePickerPropFormatTypeDateTime","datePickerPropSeparatorDefault","placeholderByFormat","usePicker","DatePickerFieldTypeDateTime","forwardRef","props","ref","format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","timeOptions","defaultValue","otherProps","adaptedFormat","adaptedPlaceholder","onClear"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.tsx"],"sourcesContent":["import React from 'react';\n\nimport { TextField } from '##/components/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { maxDateDefault, minDateDefault } from '##/utils/date';\n\nimport {\n adaptFormat,\n datePickerPropFormatTypeDateTime,\n datePickerPropSeparatorDefault,\n placeholderByFormat,\n} from '../helpers';\nimport { DatePickerFieldTypeDateTimeProps, usePicker } from './helpers';\n\nexport const DatePickerFieldTypeDateTime = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeDateTimeProps\n>((props, ref) => {\n const {\n format = datePickerPropFormatTypeDateTime,\n separator = datePickerPropSeparatorDefault,\n placeholder,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n timeOptions,\n defaultValue,\n ...otherProps\n } = props;\n\n const adaptedFormat = adaptFormat(format, timeOptions);\n\n const adaptedPlaceholder = placeholder ?? placeholderByFormat(adaptedFormat);\n\n const [inputRef, onClear] = usePicker({\n onChange,\n value,\n onError,\n maxDate,\n minDate,\n timeOptions,\n separator,\n format: adaptedFormat,\n });\n\n return (\n <TextField\n {...otherProps}\n type=\"text\"\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n placeholder={adaptedPlaceholder}\n onClear={onClear}\n />\n );\n});\n"],"mappings":"kSAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,SAAT,uBACA,OAASC,UAAT,iCACA,OAASC,cAAT,CAAyBC,cAAzB,2BAEA,OACEC,WADF,CAEEC,gCAFF,CAGEC,8BAHF,CAIEC,mBAJF,kBAMA,OAA2CC,SAA3C,iBAEA,MAAO,IAAMC,4BAA2B,CAAGV,KAAK,CAACW,UAAN,CAGzC,SAACC,CAAD,CAAQC,CAAR,CAAgB,OAcZD,CAdY,CAEdE,MAFc,CAEdA,CAFc,YAELR,gCAFK,KAcZM,CAdY,CAGdG,SAHc,CAGdA,CAHc,YAGFR,8BAHE,GAIdS,CAJc,CAcZJ,CAdY,CAIdI,WAJc,CAKdC,CALc,CAcZL,CAdY,CAKdK,QALc,CAMdC,CANc,CAcZN,CAdY,CAMdM,OANc,GAcZN,CAdY,CAOdO,OAPc,CAOdA,CAPc,YAOJf,cAPI,KAcZQ,CAdY,CAQdQ,OARc,CAQdA,CARc,YAQJjB,cARI,GASdkB,CATc,CAcZT,CAdY,CASdS,KATc,CAUJC,CAVI,CAcZV,CAdY,CAUdW,QAVc,CAWdC,CAXc,CAcZZ,CAdY,CAWdY,WAXc,CAYdC,CAZc,CAcZb,CAdY,CAYda,YAZc,CAaXC,CAbW,0BAcZd,CAdY,YAgBVe,CAAa,CAAGtB,WAAW,CAACS,CAAD,CAASU,CAAT,CAhBjB,CAkBVI,CAAkB,QAAGZ,CAAH,WAAGA,CAAH,CAAGA,CAAH,CAAkBR,mBAAmB,CAACmB,CAAD,CAlB7C,GAoBYlB,SAAS,CAAC,CACpCQ,QAAQ,CAARA,CADoC,CAEpCI,KAAK,CAALA,CAFoC,CAGpCH,OAAO,CAAPA,CAHoC,CAIpCE,OAAO,CAAPA,CAJoC,CAKpCD,OAAO,CAAPA,CALoC,CAMpCK,WAAW,CAAXA,CANoC,CAOpCT,SAAS,CAATA,CAPoC,CAQpCD,MAAM,CAAEa,CAR4B,CAAD,CApBrB,uBAoBTJ,CApBS,MAoBCM,CApBD,MA+BhB,MACE,qBAAC,SAAD,kBACMH,CADN,EAEE,IAAI,CAAC,MAFP,CAGE,iBAAiB,CAAEb,CAHrB,CAIE,QAAQ,CAAEX,UAAU,CAAC,CAACqB,CAAD,CAAWD,CAAX,CAAD,CAJtB,CAKE,WAAW,CAAEM,CALf,CAME,OAAO,CAAEC,CANX,GASH,CA5C0C,CAApC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IconComponent, IconPropSize } from '@consta/icons/Icon';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { TimeOptions } from '../../DateTime/helpers';
|
|
3
4
|
import { TextFieldPropForm, TextFieldPropSize, TextFieldPropStatus, TextFieldPropView } from '../../TextField/TextField';
|
|
4
5
|
import { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';
|
|
5
6
|
import { DatePickerPropOnError } from '../types';
|
|
@@ -36,9 +37,7 @@ export type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<{
|
|
|
36
37
|
minDate?: Date;
|
|
37
38
|
maxDate?: Date;
|
|
38
39
|
focused?: boolean;
|
|
39
|
-
|
|
40
|
-
multiplicityMinutes?: number;
|
|
41
|
-
multiplicityHours?: number;
|
|
40
|
+
timeOptions?: TimeOptions;
|
|
42
41
|
label?: string;
|
|
43
42
|
labelIcon?: IconComponent;
|
|
44
43
|
caption?: string;
|
|
@@ -53,9 +52,7 @@ type UsePickerProps = {
|
|
|
53
52
|
separator: string;
|
|
54
53
|
minDate: Date;
|
|
55
54
|
maxDate: Date;
|
|
56
|
-
|
|
57
|
-
multiplicitySeconds: number | undefined;
|
|
58
|
-
multiplicityMinutes: number | undefined;
|
|
55
|
+
timeOptions?: TimeOptions;
|
|
59
56
|
};
|
|
60
57
|
export declare const usePicker: (props: UsePickerProps) => readonly [React.MutableRefObject<HTMLInputElement | null>, React.MouseEventHandler<HTMLButtonElement>];
|
|
61
58
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback,useMemo}from"react";import{useIMask}from"react-imask";import{getTimeOptionsKey}from"../../DateTime/helpers/getTimeOptionsKey";import{useMutableRef}from"../../../hooks/useMutableRef/useMutableRef";import{datePickerPropSeparatorDefault,getMaskBlocks,getPartDate,getParts,getPartsDate,isValidTimeByTimeOptions,useStringValue}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=a.timeOptions,k=useMutableRef(c),l=useMutableRef(b),m=useMutableRef(d),n=useCallback(function(a,b,c){var d=k.current,e=l.current;if(!(e&&isValid(e)&&_format(e,f)===a)){if((null===a||void 0===a?void 0:a.length)!==f.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var n=getParts(f,g,!1),o=getParts(a,g,!1),p=n.map(function(a){return getPartDate(n,o,a)}).filter(function(a){return!!a});if(n.length===p.length){var F=_parse(o.join(datePickerPropSeparatorDefault),n.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(F,{start:i,end:h})){var q,r=getPartsDate(a,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),s=_slicedToArray(r,6),t=s[0],u=s[1],v=s[2],w=s[3],x=s[4],y=s[5];return null===(q=m.current)||void 0===q?void 0:q.call(m,{type:datePickerErrorTypes[0],stringValue:a,dd:t,MM:u,yyyy:v,date:F,HH:w,mm:x,ss:y}),void(e&&d(null,{e:c}))}if(!isValidTimeByTimeOptions(F,j)){var z,A=getPartsDate(a,f,":",!1,["HH","mm","ss"]),B=_slicedToArray(A,3),C=B[0],D=B[1],E=B[2];return null===(z=m.current)||void 0===z?void 0:z.call(m,{type:datePickerErrorTypes[3],stringValue:a,date:F,HH:C,mm:D,ss:E}),void(e&&d(null,{e:c}))}d(F,{e:c})}else e&&d(null,{e:c})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g,getTimeOptionsKey(j)]),o=useMemo(function(){return getMaskBlocks()},[]),p=useIMask({mask:Date,pattern:f,blocks:{yyyy:o.yyyy,MM:o.MM,dd:o.dd,HH:o.HH,mm:o.mm,ss:o.ss},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!0,["dd","MM","yyyy","HH","mm","ss"]),i=_slicedToArray(h,6),j=i[0],k=i[1],l=i[2],n=i[3],o=i[4],p=i[5];return null===(e=m.current)||void 0===e?void 0:e.call(m,{type:datePickerErrorTypes[1],stringValue:a,dd:j,MM:k,yyyy:l,HH:n,mm:o,ss:p}),!1}return!0}},{onAccept:n}),q=useStringValue(b,f,g,k,p);return[p.ref,q]};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","useCallback","IMask","useIMask","getLabelHours","getLabelMinutes","getLabelSeconds","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","getTimeEnum","useStringValue","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","multiplicityHours","multiplicityMinutes","multiplicitySeconds","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","dd","MM","yyyy","HH","mm","ss","type","getTime","imaskProps","mask","pattern","blocks","MaskedRange","from","to","MaskedEnum","lazy","autofix","string","validate","handleClear","ref"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport React, { useCallback } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '##/components/DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n getTimeEnum,\n useStringValue,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDateTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const imaskProps = useIMask<HTMLInputElement, ReactMaskOpts>(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n string,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n const handleClear = useStringValue(\n value,\n formatProp,\n separator,\n onChangeRef,\n imaskProps,\n );\n\n return [imaskProps.ref, handleClear] as const;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useMemo","useIMask","getTimeOptionsKey","useMutableRef","datePickerPropSeparatorDefault","getMaskBlocks","getPartDate","getParts","getPartsDate","isValidTimeByTimeOptions","useStringValue","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","timeOptions","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","dd","MM","yyyy","HH","mm","ss","type","getTime","maskBlocks","imaskProps","mask","pattern","blocks","lazy","autofix","string","validate","handleClear","ref"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport React, { useCallback, useMemo } from 'react';\nimport { ReactMaskOpts, useIMask } from 'react-imask';\n\nimport { TimeOptions } from '##/components/DateTime/helpers';\nimport { getTimeOptionsKey } from '##/components/DateTime/helpers/getTimeOptionsKey';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getMaskBlocks,\n getPartDate,\n getParts,\n getPartsDate,\n isValidTimeByTimeOptions,\n useStringValue,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeDateTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeDateTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n timeOptions?: TimeOptions;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeDateTimePropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n timeOptions?: TimeOptions;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n timeOptions,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n dd,\n MM,\n yyyy,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n if (!isValidTimeByTimeOptions(date, timeOptions)) {\n const [HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n ':',\n false,\n ['HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[3],\n stringValue,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [\n minDate?.getTime(),\n maxDate?.getTime(),\n formatProp,\n separator,\n getTimeOptionsKey(timeOptions),\n ],\n );\n\n const maskBlocks = useMemo(() => getMaskBlocks(), []);\n\n const imaskProps = useIMask<HTMLInputElement, ReactMaskOpts>(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: maskBlocks.yyyy,\n MM: maskBlocks.MM,\n dd: maskBlocks.dd,\n HH: maskBlocks.HH,\n mm: maskBlocks.mm,\n ss: maskBlocks.ss,\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [dd, MM, yyyy, HH, mm, ss] = getPartsDate(\n string,\n formatProp,\n separator,\n true,\n ['dd', 'MM', 'yyyy', 'HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n dd,\n MM,\n yyyy,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n const handleClear = useStringValue(\n value,\n formatProp,\n separator,\n onChangeRef,\n imaskProps,\n );\n\n return [imaskProps.ref, handleClear] as const;\n};\n"],"mappings":"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"}
|
|
@@ -27,4 +27,5 @@ export declare const DatePickerFieldTypeDateTimeRange: React.ForwardRefExoticCom
|
|
|
27
27
|
endFieldName?: string;
|
|
28
28
|
startFieldPlaceholder?: string;
|
|
29
29
|
endFieldPlaceholder?: string;
|
|
30
|
+
timeOptions?: import("../../DateTime").TimeOptions;
|
|
30
31
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","disabled","size","view","status","autoFocus","startFieldPlaceholder","endFieldPlaceholder","readOnly","required","tabIndex","ariaLabel","id","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","startFieldName","endFieldName","withClearButton"];import React,{forwardRef}from"react";import{FieldCaption}from"../../FieldCaption";import{FieldLabel}from"../../FieldLabel";import{DatePickerFieldTypeDateTime}from"../DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime";import{cnDatePickerMixRangeField}from"../DatePickerMixRangeField/DatePickerMixRangeField";import{getChangeFnRange}from"../getChangeFnRange";import{getFormForEnd,getFormForStart}from"../helpers";export var DatePickerFieldTypeDateTimeRange=forwardRef(function(a,b){var c=a.className,d=a.form,e=void 0===d?"default":d,f=a.startFieldInputRef,g=a.startFieldLeftSide,h=a.startFieldRightSide,i=a.endFieldInputRef,j=a.endFieldLeftSide,k=a.endFieldRightSide,l=a.value,m=void 0===l?[]:l,n=a.onChange,o=a.onError,p=a.disabled,q=a.size,r=a.view,s=a.status,t=a.autoFocus,u=a.startFieldPlaceholder,v=a.endFieldPlaceholder,w=a.readOnly,x=a.required,y=a.tabIndex,z=a.ariaLabel,A=a.id,B=a.iconSize,C=a.format,D=a.separator,E=a.minDate,F=a.maxDate,G=a.startFieldOnClick,H=a.startFieldOnBlur,I=a.startFieldOnFocus,J=a.endFieldOnClick,K=a.endFieldOnBlur,L=a.endFieldOnFocus,M=a.startFieldRef,N=a.endFieldRef,O=a.startFocused,P=a.endFocused,Q=a.label,R=a.labelIcon,S=a.labelPosition,T=a.caption,U=a.startFieldName,V=a.endFieldName,W=a.withClearButton,X=_objectWithoutProperties(a,_excluded),
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","disabled","size","view","status","autoFocus","startFieldPlaceholder","endFieldPlaceholder","readOnly","required","tabIndex","ariaLabel","id","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","startFieldName","endFieldName","withClearButton","timeOptions"];import React,{forwardRef}from"react";import{FieldCaption}from"../../FieldCaption";import{FieldLabel}from"../../FieldLabel";import{DatePickerFieldTypeDateTime}from"../DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime";import{cnDatePickerMixRangeField}from"../DatePickerMixRangeField/DatePickerMixRangeField";import{getChangeFnRange}from"../getChangeFnRange";import{getFormForEnd,getFormForStart}from"../helpers";export var DatePickerFieldTypeDateTimeRange=forwardRef(function(a,b){var c=a.className,d=a.form,e=void 0===d?"default":d,f=a.startFieldInputRef,g=a.startFieldLeftSide,h=a.startFieldRightSide,i=a.endFieldInputRef,j=a.endFieldLeftSide,k=a.endFieldRightSide,l=a.value,m=void 0===l?[]:l,n=a.onChange,o=a.onError,p=a.disabled,q=a.size,r=a.view,s=a.status,t=a.autoFocus,u=a.startFieldPlaceholder,v=a.endFieldPlaceholder,w=a.readOnly,x=a.required,y=a.tabIndex,z=a.ariaLabel,A=a.id,B=a.iconSize,C=a.format,D=a.separator,E=a.minDate,F=a.maxDate,G=a.startFieldOnClick,H=a.startFieldOnBlur,I=a.startFieldOnFocus,J=a.endFieldOnClick,K=a.endFieldOnBlur,L=a.endFieldOnFocus,M=a.startFieldRef,N=a.endFieldRef,O=a.startFocused,P=a.endFocused,Q=a.label,R=a.labelIcon,S=a.labelPosition,T=a.caption,U=a.startFieldName,V=a.endFieldName,W=a.withClearButton,X=a.timeOptions,Y=_objectWithoutProperties(a,_excluded),Z={className:cnDatePickerMixRangeField("Field"),disabled:p,onError:o,size:q,view:r,status:s,readOnly:w,required:x,tabIndex:y,ariaLabel:z,iconSize:B,format:C,separator:D,minDate:E,maxDate:F,withClearButton:W,timeOptions:X},$=getChangeFnRange(n,o,m),_=_slicedToArray($,2),aa=_[0],ba=_[1];return React.createElement("div",Object.assign({},Y,{className:cnDatePickerMixRangeField({view:r,labelPosition:S,size:q},[c]),ref:b}),Q&&React.createElement(FieldLabel,{icon:R,as:"label",required:x,className:cnDatePickerMixRangeField("Label",{labelPosition:S}),size:q,htmlFor:A},Q),React.createElement("div",{className:cnDatePickerMixRangeField("Body")},React.createElement("div",{className:cnDatePickerMixRangeField("Fields")},React.createElement(DatePickerFieldTypeDateTime,Object.assign({},Z,{inputRef:f,ref:M,leftSide:g,rightSide:h,id:A,form:getFormForStart(e),value:null===m||void 0===m?void 0:m[0],onClick:G,onChange:aa,onFocus:I,onBlur:H,focused:O,autoFocus:t,name:U,placeholder:u})),React.createElement(DatePickerFieldTypeDateTime,Object.assign({},Z,{inputRef:i,ref:N,leftSide:j,rightSide:k,form:getFormForEnd(e),value:null===m||void 0===m?void 0:m[1],onClick:J,onChange:ba,onFocus:L,onBlur:K,focused:P,name:V,placeholder:v}))),T&&React.createElement(FieldCaption,{className:cnDatePickerMixRangeField("Caption"),status:s},T)))});
|
|
2
2
|
//# sourceMappingURL=DatePickerFieldTypeDateTimeRange.js.map
|