@activecollab/components 1.0.105 → 1.0.108
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/dist/cjs/components/Icons/collection/ArrowLeft.js +31 -0
- package/dist/cjs/components/Icons/collection/ArrowLeft.js.map +1 -0
- package/dist/cjs/components/Icons/collection/index.js +8 -16
- package/dist/cjs/components/Icons/collection/index.js.map +1 -1
- package/dist/cjs/components/MenuSelector/Styles.js +2 -2
- package/dist/cjs/components/MenuSelector/Styles.js.map +1 -1
- package/dist/cjs/components/Pickers/NavBarElement.js +5 -3
- package/dist/cjs/components/Pickers/NavBarElement.js.map +1 -1
- package/dist/cjs/components/Pickers/Styles.js +6 -18
- package/dist/cjs/components/Pickers/Styles.js.map +1 -1
- package/dist/cjs/components/Select/OptionContent/OptionContent.js +3 -2
- package/dist/cjs/components/Select/OptionContent/OptionContent.js.map +1 -1
- package/dist/cjs/components/Select/OptionContent/Styles.js +11 -3
- package/dist/cjs/components/Select/OptionContent/Styles.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +5 -8
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/Select/Styles.js +18 -2
- package/dist/cjs/components/Select/Styles.js.map +1 -1
- package/dist/cjs/components/Steppers/DateStepper/DateStepper.js +5 -7
- package/dist/cjs/components/Steppers/DateStepper/DateStepper.js.map +1 -1
- package/dist/esm/components/Icons/collection/ArrowLeft.d.ts +4 -0
- package/dist/esm/components/Icons/collection/ArrowLeft.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/ArrowLeft.js +18 -0
- package/dist/esm/components/Icons/collection/ArrowLeft.js.map +1 -0
- package/dist/esm/components/Icons/collection/index.d.ts +1 -2
- package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
- package/dist/esm/components/Icons/collection/index.js +1 -2
- package/dist/esm/components/Icons/collection/index.js.map +1 -1
- package/dist/esm/components/MenuSelector/Styles.js +2 -2
- package/dist/esm/components/MenuSelector/Styles.js.map +1 -1
- package/dist/esm/components/Pickers/NavBarElement.d.ts.map +1 -1
- package/dist/esm/components/Pickers/NavBarElement.js +5 -4
- package/dist/esm/components/Pickers/NavBarElement.js.map +1 -1
- package/dist/esm/components/Pickers/Styles.d.ts +0 -1
- package/dist/esm/components/Pickers/Styles.d.ts.map +1 -1
- package/dist/esm/components/Pickers/Styles.js +5 -13
- package/dist/esm/components/Pickers/Styles.js.map +1 -1
- package/dist/esm/components/Select/OptionContent/OptionContent.d.ts +1 -0
- package/dist/esm/components/Select/OptionContent/OptionContent.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionContent/OptionContent.js +4 -3
- package/dist/esm/components/Select/OptionContent/OptionContent.js.map +1 -1
- package/dist/esm/components/Select/OptionContent/Styles.d.ts +1 -0
- package/dist/esm/components/Select/OptionContent/Styles.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionContent/Styles.js +7 -2
- package/dist/esm/components/Select/OptionContent/Styles.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +6 -7
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Select/Styles.d.ts +3 -1
- package/dist/esm/components/Select/Styles.d.ts.map +1 -1
- package/dist/esm/components/Select/Styles.js +13 -1
- package/dist/esm/components/Select/Styles.js.map +1 -1
- package/dist/esm/components/Steppers/DateStepper/DateStepper.d.ts.map +1 -1
- package/dist/esm/components/Steppers/DateStepper/DateStepper.js +4 -7
- package/dist/esm/components/Steppers/DateStepper/DateStepper.js.map +1 -1
- package/dist/index.js +166 -177
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Pickers/Styles.ts"],"names":["styled","css","Button","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Pickers/Styles.ts"],"names":["styled","css","Button","StyledNavBarButton","props","$direction","StyledMonths","div","StyledMonth","$isSelected","$isCurrent","$isCurrentQuarter","StyledYearMonthPicker","StyledYearMonthPickerNavBar","StyledYearMonthPickerNavBarItem","span","displayName"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,MAAT,QAAuB,kBAAvB;AAGA,OAAO,IAAMC,kBAAkB,GAAGH,MAAM,CAACE,MAAD,CAAT;AAAA;AAAA;AAAA,kGAS3B,UAACE,KAAD;AAAA,SACAA,KAAK,CAACC,UAAN,KAAqB,UAArB,IACAJ,GADA,0BADA;AAAA,CAT2B,EAgB3B,UAACG,KAAD;AAAA,SACAA,KAAK,CAACC,UAAN,KAAqB,MAArB,IACAJ,GADA,gBADA;AAAA,CAhB2B,CAAxB;AA6BP,OAAO,IAAMK,YAAY,GAAGN,MAAM,CAACO,GAAV;AAAA;AAAA;AAAA,mCAInB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAJmB,CAAlB;AAcP,OAAO,IAAMC,WAAW,GAAGR,MAAM,CAACO,GAAV;AAAA;AAAA;AAAA,oEAIlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAJkB,EAYpB,UAACH,KAAD;AAAA,SACA,CAACA,KAAK,CAACK,WAAP,GACIR,GADJ,4DAMIA,GANJ,kDAOU;AAAA;AAAA,GAPV,CADA;AAAA,CAZoB,EAwBnB,UAACG,KAAD;AAAA,SACDA,KAAK,CAACM,UAAN,IACA,CAACN,KAAK,CAACK,WADP,IAEAR,GAFA,WAGM;AAAA;AAAA,GAHN,CADC;AAAA,CAxBmB,EA+BnB,UAACG,KAAD;AAAA,SACDA,KAAK,CAACM,UAAN,IACAN,KAAK,CAACK,WADN,IAEAR,GAFA,mCADC;AAAA,CA/BmB,EAsCnB,UAACG,KAAD;AAAA,SACDA,KAAK,CAACO,iBAAN,IACAV,GADA,gDADC;AAAA,CAtCmB,CAAjB;AA6CP,OAAO,IAAMW,qBAAqB,GAAGZ,MAAM,CAACO,GAAV;AAAA;AAAA;AAAA,oHAK5B;AAAA;AAAA;AAAA,CAL4B,CAA3B;AAaP,OAAO,IAAMM,2BAA2B,GAAGb,MAAM,CAACO,GAAV;AAAA;AAAA;AAAA,iCAAjC;AAKP,OAAO,IAAMO,+BAA+B,GAAGd,MAAM,CAACe,IAAV;AAAA;AAAA;AAAA,kIACtC;AAAA;AAAA;AAAA;AAAA,CADsC,CAArC;AAWPZ,kBAAkB,CAACa,WAAnB,GAAiC,oBAAjC;AACAV,YAAY,CAACU,WAAb,GAA2B,cAA3B;AACAR,WAAW,CAACQ,WAAZ,GAA0B,aAA1B","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { Button } from \"../Button/Button\";\nimport tw from \"twin.macro\";\n\nexport const StyledNavBarButton = styled(Button)<{\n $direction: \"next\" | \"previous\";\n}>`\n position: absolute;\n margin-top: 1px;\n cursor: pointer;\n z-index: 2;\n background-image: none;\n\n ${(props) =>\n props.$direction === \"previous\" &&\n css`\n right: auto;\n left: 1px;\n `}\n\n ${(props) =>\n props.$direction === \"next\" &&\n css`\n right: 1px;\n `}\n`;\n\ninterface StyledMonthInterface {\n $isCurrent: boolean;\n $isSelected: boolean;\n $isCurrentQuarter: boolean;\n}\n\nexport const StyledMonths = styled.div`\n top: 30px;\n height: 230px;\n\n ${tw`\n tw-absolute\n tw-left-0\n tw-p-5\n tw-flex\n tw-flex-wrap\n tw-bg-page-paper-main\n tw-z-10\n `}\n`;\nexport const StyledMonth = styled.div<StyledMonthInterface>`\n width: 26%;\n transition-duration: 0.3s;\n\n ${tw`\n tw-m-auto\n tw-cursor-pointer\n tw-rounded-xl\n tw-font-bold\n tw-text-sm\n `}\n\n ${(props) =>\n !props.$isSelected\n ? css`\n &:hover {\n background-color: var(--color-primary-300);\n }\n `\n : css`\n ${tw`tw-text-theme-100`}\n background-color: var(--color-primary);\n `}\n\n ${(props) =>\n props.$isCurrent &&\n !props.$isSelected &&\n css`\n ${tw`tw-text-primary`}\n `}\n\n ${(props) =>\n props.$isCurrent &&\n props.$isSelected &&\n css`\n color: var(--color-theme-100);\n `}\n\n ${(props) =>\n props.$isCurrentQuarter &&\n css`\n background-color: var(--color-primary-300);\n `}\n`;\n\nexport const StyledYearMonthPicker = styled.div`\n display: table-caption;\n margin-bottom: 0.5rem;\n padding: 0 0.5rem;\n\n ${tw`tw-text-center tw-text-theme-900`}\n\n &> div {\n font-weight: 500;\n font-size: 1.15rem;\n }\n`;\n\nexport const StyledYearMonthPickerNavBar = styled.div`\n width: auto;\n margin: 0 auto;\n`;\n\nexport const StyledYearMonthPickerNavBarItem = styled.span`\n ${tw`tw-px-4 tw-cursor-pointer`}\n transition-duration: 0.3s;\n display: inline-block;\n\n &:hover {\n background-color: var(--color-primary-300);\n border-radius: 15px;\n }\n`;\n\nStyledNavBarButton.displayName = \"StyledNavBarButton\";\nStyledMonths.displayName = \"StyledMonths\";\nStyledMonth.displayName = \"StyledMonth\";\n"],"file":"Styles.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OptionContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQlC,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA2BhD,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Avatar } from "../../Avatar/Avatar";
|
|
3
|
-
import { StyledOptionIndicator, StyledOptionText } from "./Styles";
|
|
3
|
+
import { StyledOptionIndicator, StyledOptionText, StyledAdditionalInfo } from "./Styles";
|
|
4
4
|
export var OptionContent = function OptionContent(_ref) {
|
|
5
5
|
var imageUrl = _ref.imageUrl,
|
|
6
6
|
color = _ref.color,
|
|
7
7
|
textColor = _ref.textColor,
|
|
8
|
-
name = _ref.name
|
|
8
|
+
name = _ref.name,
|
|
9
|
+
additionalInfo = _ref.additionalInfo;
|
|
9
10
|
return /*#__PURE__*/React.createElement(React.Fragment, null, imageUrl || color ? /*#__PURE__*/React.createElement(StyledOptionIndicator, {
|
|
10
11
|
className: "c-option--label",
|
|
11
12
|
backgroundColor: color
|
|
@@ -15,7 +16,7 @@ export var OptionContent = function OptionContent(_ref) {
|
|
|
15
16
|
}) : null) : null, /*#__PURE__*/React.createElement(StyledOptionText, {
|
|
16
17
|
className: "c-option--text",
|
|
17
18
|
textColor: textColor
|
|
18
|
-
}, name));
|
|
19
|
+
}, name), additionalInfo ? /*#__PURE__*/React.createElement(StyledAdditionalInfo, null, additionalInfo) : null);
|
|
19
20
|
};
|
|
20
21
|
OptionContent.displayName = "OptionContent";
|
|
21
22
|
//# sourceMappingURL=OptionContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"names":["React","Avatar","StyledOptionIndicator","StyledOptionText","OptionContent","imageUrl","color","textColor","name","displayName"],"mappings":"AAAA,OAAOA,KAAP,MAA0B,OAA1B;AACA,SAASC,MAAT,QAAuB,qBAAvB;AACA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"names":["React","Avatar","StyledOptionIndicator","StyledOptionText","StyledAdditionalInfo","OptionContent","imageUrl","color","textColor","name","additionalInfo","displayName"],"mappings":"AAAA,OAAOA,KAAP,MAA0B,OAA1B;AACA,SAASC,MAAT,QAAuB,qBAAvB;AACA,SACEC,qBADF,EAEEC,gBAFF,EAGEC,oBAHF,QAIO,UAJP;AAcA,OAAO,IAAMC,aAAqC,GAAG,SAAxCA,aAAwC,OAM/C;AAAA,MALJC,QAKI,QALJA,QAKI;AAAA,MAJJC,KAII,QAJJA,KAII;AAAA,MAHJC,SAGI,QAHJA,SAGI;AAAA,MAFJC,IAEI,QAFJA,IAEI;AAAA,MADJC,cACI,QADJA,cACI;AACJ,sBACE,0CACGJ,QAAQ,IAAIC,KAAZ,gBACC,oBAAC,qBAAD;AACE,IAAA,SAAS,EAAC,iBADZ;AAEE,IAAA,eAAe,EAAEA;AAFnB,KAIGD,QAAQ,gBACP,oBAAC,MAAD;AAAQ,IAAA,SAAS,EAAC,kBAAlB;AAAqC,IAAA,GAAG,EAAEA;AAA1C,IADO,GAEL,IANN,CADD,GASG,IAVN,eAWE,oBAAC,gBAAD;AAAkB,IAAA,SAAS,EAAC,gBAA5B;AAA6C,IAAA,SAAS,EAAEE;AAAxD,KACGC,IADH,CAXF,EAcGC,cAAc,gBACb,oBAAC,oBAAD,QAAuBA,cAAvB,CADa,GAEX,IAhBN,CADF;AAoBD,CA3BM;AA6BPL,aAAa,CAACM,WAAd,GAA4B,eAA5B","sourcesContent":["import React, { FC } from \"react\";\nimport { Avatar } from \"../../Avatar/Avatar\";\nimport {\n StyledOptionIndicator,\n StyledOptionText,\n StyledAdditionalInfo,\n} from \"./Styles\";\n\ninterface OptionContentProps {\n imageUrl?: string;\n color?: string;\n textColor?: string;\n name: string;\n additionalInfo?: string;\n}\n\nexport const OptionContent: FC<OptionContentProps> = ({\n imageUrl,\n color,\n textColor,\n name,\n additionalInfo,\n}) => {\n return (\n <>\n {imageUrl || color ? (\n <StyledOptionIndicator\n className=\"c-option--label\"\n backgroundColor={color}\n >\n {imageUrl ? (\n <Avatar className=\"c-option--avatar\" url={imageUrl} />\n ) : null}\n </StyledOptionIndicator>\n ) : null}\n <StyledOptionText className=\"c-option--text\" textColor={textColor}>\n {name}\n </StyledOptionText>\n {additionalInfo ? (\n <StyledAdditionalInfo>{additionalInfo}</StyledAdditionalInfo>\n ) : null}\n </>\n );\n};\n\nOptionContent.displayName = \"OptionContent\";\n"],"file":"OptionContent.js"}
|
|
@@ -4,4 +4,5 @@ export declare const StyledOptionIndicator: import("styled-components").StyledCo
|
|
|
4
4
|
export declare const StyledOptionText: import("styled-components").StyledComponent<"span", any, {
|
|
5
5
|
textColor?: string | undefined;
|
|
6
6
|
}, never>;
|
|
7
|
+
export declare const StyledAdditionalInfo: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
7
8
|
//# sourceMappingURL=Styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;SAYjC,CAAC;AAIF,eAAO,MAAM,gBAAgB;;SAS5B,CAAC;AAIF,eAAO,MAAM,oBAAoB,qEAGhC,CAAC"}
|
|
@@ -2,14 +2,14 @@ import styled, { css } from "styled-components";
|
|
|
2
2
|
export var StyledOptionIndicator = styled.div.withConfig({
|
|
3
3
|
displayName: "Styles__StyledOptionIndicator",
|
|
4
4
|
componentId: "sc-6fiqyy-0"
|
|
5
|
-
})(["height:24px;width:24px;border-radius:100%;margin-right:8px;", ""], function (props) {
|
|
5
|
+
})(["height:24px;width:24px;border-radius:100%;margin-right:8px;flex-shrink:0;", ""], function (props) {
|
|
6
6
|
return props.backgroundColor && !props.children && css(["background-color:", ";"], props.backgroundColor);
|
|
7
7
|
});
|
|
8
8
|
StyledOptionIndicator.displayName = "StyledOptionIndicator";
|
|
9
9
|
export var StyledOptionText = styled.span.withConfig({
|
|
10
10
|
displayName: "Styles__StyledOptionText",
|
|
11
11
|
componentId: "sc-6fiqyy-1"
|
|
12
|
-
})(["", "
|
|
12
|
+
})(["", " flex-grow:1;line-height:18px;", ""], {
|
|
13
13
|
"overflow": "hidden",
|
|
14
14
|
"textOverflow": "ellipsis",
|
|
15
15
|
"whiteSpace": "nowrap"
|
|
@@ -17,4 +17,9 @@ export var StyledOptionText = styled.span.withConfig({
|
|
|
17
17
|
return props.textColor && css(["color:", ";"], props.textColor);
|
|
18
18
|
});
|
|
19
19
|
StyledOptionText.displayName = "StyledOptionText";
|
|
20
|
+
export var StyledAdditionalInfo = styled.span.withConfig({
|
|
21
|
+
displayName: "Styles__StyledAdditionalInfo",
|
|
22
|
+
componentId: "sc-6fiqyy-2"
|
|
23
|
+
})(["margin:0 0 0 5px;line-height:18px;"]);
|
|
24
|
+
StyledAdditionalInfo.displayName = "StyledAdditionalInfo";
|
|
20
25
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"names":["styled","css","StyledOptionIndicator","div","props","backgroundColor","children","displayName","StyledOptionText","span","textColor"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAGA,OAAO,IAAMC,qBAAqB,GAAGF,MAAM,CAACG,GAAV;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"names":["styled","css","StyledOptionIndicator","div","props","backgroundColor","children","displayName","StyledOptionText","span","textColor","StyledAdditionalInfo"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAGA,OAAO,IAAMC,qBAAqB,GAAGF,MAAM,CAACG,GAAV;AAAA;AAAA;AAAA,sFAM9B,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,eAAN,IACA,CAACD,KAAK,CAACE,QADP,IAEAL,GAFA,6BAGsBG,KAAK,CAACC,eAH5B,CADA;AAAA,CAN8B,CAA3B;AAcPH,qBAAqB,CAACK,WAAtB,GAAoC,uBAApC;AAEA,OAAO,IAAMC,gBAAgB,GAAGR,MAAM,CAACS,IAAV;AAAA;AAAA;AAAA,+CACvB;AAAA;AAAA;AAAA;AAAA,CADuB,EAIzB,UAACL,KAAD;AAAA,SACAA,KAAK,CAACM,SAAN,IACAT,GADA,kBAEWG,KAAK,CAACM,SAFjB,CADA;AAAA,CAJyB,CAAtB;AAWPF,gBAAgB,CAACD,WAAjB,GAA+B,kBAA/B;AAEA,OAAO,IAAMI,oBAAoB,GAAGX,MAAM,CAACS,IAAV;AAAA;AAAA;AAAA,0CAA1B;AAKPE,oBAAoB,CAACJ,WAArB,GAAmC,sBAAnC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nexport const StyledOptionIndicator = styled.div<{ backgroundColor?: string }>`\n height: 24px;\n width: 24px;\n border-radius: 100%;\n margin-right: 8px;\n flex-shrink: 0;\n ${(props) =>\n props.backgroundColor &&\n !props.children &&\n css`\n background-color: ${props.backgroundColor};\n `}\n`;\n\nStyledOptionIndicator.displayName = \"StyledOptionIndicator\";\n\nexport const StyledOptionText = styled.span<{ textColor?: string }>`\n ${tw`tw-truncate`}\n flex-grow: 1;\n line-height: 18px;\n ${(props) =>\n props.textColor &&\n css`\n color: ${props.textColor};\n `}\n`;\n\nStyledOptionText.displayName = \"StyledOptionText\";\n\nexport const StyledAdditionalInfo = styled.span`\n margin: 0 0 0 5px;\n line-height: 18px;\n`;\n\nStyledAdditionalInfo.displayName = \"StyledAdditionalInfo\";\n"],"file":"Styles.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,UAAU,YAAY;IAEpB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAE9D,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE9C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,GAAG,kBAAkB,CAgOxD,CAAC"}
|
|
@@ -2,14 +2,12 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose"];
|
|
4
4
|
import React, { useCallback, useState, useMemo, useEffect, useRef } from "react";
|
|
5
|
-
import { Checkbox } from "../Checkbox";
|
|
6
|
-
import { RadioButton } from "../RadioButton";
|
|
7
5
|
import { Autocomplete } from "../Autocomplete";
|
|
8
6
|
import { Tooltip } from "../Tooltip";
|
|
9
7
|
import { Menu } from "../Menu/Menu";
|
|
10
8
|
import classNames from "classnames";
|
|
11
9
|
import useForkRef from "../../utils/useForkRef";
|
|
12
|
-
import { StyledSelectForm, StyledSelectInput } from "./Styles";
|
|
10
|
+
import { StyledSelectForm, StyledSelectInput, StyledCheckbox, StyledRadioButton } from "./Styles";
|
|
13
11
|
import { OptionContent } from "./OptionContent/OptionContent";
|
|
14
12
|
export var Select = function Select(_ref) {
|
|
15
13
|
var _ref$type = _ref.type,
|
|
@@ -187,12 +185,13 @@ export var Select = function Select(_ref) {
|
|
|
187
185
|
imageUrl: option.image,
|
|
188
186
|
color: option.color,
|
|
189
187
|
textColor: option.textColor,
|
|
190
|
-
name: option.name
|
|
191
|
-
|
|
188
|
+
name: option.name,
|
|
189
|
+
additionalInfo: option.additionalInfo
|
|
190
|
+
}), option.id === null ? type === "multiple" ? /*#__PURE__*/React.createElement(StyledCheckbox, _extends({
|
|
192
191
|
checked: isAllOptionsChecked
|
|
193
|
-
}, props)) : /*#__PURE__*/React.createElement(
|
|
192
|
+
}, props)) : /*#__PURE__*/React.createElement(StyledRadioButton, _extends({
|
|
194
193
|
checked: selectedOptions.length < 1 || !selectedOptions[0]
|
|
195
|
-
}, props)) : type === "multiple" ? /*#__PURE__*/React.createElement(
|
|
194
|
+
}, props)) : type === "multiple" ? /*#__PURE__*/React.createElement(StyledCheckbox, props) : /*#__PURE__*/React.createElement(StyledRadioButton, props));
|
|
196
195
|
}, [isAllOptionsChecked, selectedOptions, type]);
|
|
197
196
|
return /*#__PURE__*/React.createElement(Tag, props, /*#__PURE__*/React.createElement("div", null, !disableSearch ? /*#__PURE__*/React.createElement(StyledSelectForm, {
|
|
198
197
|
ref: formRef
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Checkbox","RadioButton","Autocomplete","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","value","v","filter","concat","onClose","onOpen","props","menuClassName","className","handleEmptyAction","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Checkbox } from \"../Checkbox\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { StyledSelectForm, StyledSelectInput } from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\ninterface ISelectProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set selected items */\n selected?: (string | number)[] | string | number;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Should the order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps & IAutocompleteProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = (): null => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== null) {\n if (type === \"single\") {\n if (forceCloseMenu) {\n setOpen(false);\n }\n return onChange(selectedValue);\n }\n // multiple\n const value = (): (string | number)[] => {\n if (selectedValue instanceof Array) {\n if (selectedValue.every((v) => selectedOptions.includes(v))) {\n return selectedOptions.filter((v) => !selectedValue.includes(v));\n }\n return selectedValue.concat(selectedOptions);\n }\n if (selectedOptions.includes(selectedValue)) {\n return selectedOptions.filter((option) => option !== selectedValue);\n }\n return [...selectedOptions, selectedValue];\n };\n return onChange(value());\n }\n },\n [onChange, type, forceCloseMenu, selectedOptions]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <Checkbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <RadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <Checkbox {...props} />\n ) : (\n <RadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","value","v","filter","concat","onClose","onOpen","props","menuClassName","className","handleEmptyAction","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\ninterface ISelectProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set selected items */\n selected?: (string | number)[] | string | number;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Should the order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps & IAutocompleteProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = (): null => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== null) {\n if (type === \"single\") {\n if (forceCloseMenu) {\n setOpen(false);\n }\n return onChange(selectedValue);\n }\n // multiple\n const value = (): (string | number)[] => {\n if (selectedValue instanceof Array) {\n if (selectedValue.every((v) => selectedOptions.includes(v))) {\n return selectedOptions.filter((v) => !selectedValue.includes(v));\n }\n return selectedValue.concat(selectedOptions);\n }\n if (selectedOptions.includes(selectedValue)) {\n return selectedOptions.filter((option) => option !== selectedValue);\n }\n return [...selectedOptions, selectedValue];\n };\n return onChange(value());\n }\n },\n [onChange, type, forceCloseMenu, selectedOptions]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare const StyledSelectInput: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../Input
|
|
2
|
+
export declare const StyledSelectInput: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../Input").InputProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement>>, keyof import("../Input").InputProps> & import("react").RefAttributes<HTMLInputElement>>, any, {}, never>;
|
|
3
3
|
export declare const StyledSelectForm: import("styled-components").StyledComponent<"form", any, {}, never>;
|
|
4
|
+
export declare const StyledCheckbox: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("react").InputHTMLAttributes<HTMLInputElement> & import("../Checkbox").ICheckboxProps & import("react").RefAttributes<HTMLInputElement>>, any, {}, never>;
|
|
5
|
+
export declare const StyledRadioButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("react").InputHTMLAttributes<HTMLInputElement> & import("../RadioButton").IRadioButtonProps & import("react").RefAttributes<HTMLInputElement>>, any, {}, never>;
|
|
4
6
|
//# sourceMappingURL=Styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Styles.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Styles.ts"],"names":[],"mappings":";AAKA,eAAO,MAAM,iBAAiB,4ZAAkB,CAAC;AAIjD,eAAO,MAAM,gBAAgB,qEAY5B,CAAC;AAIF,eAAO,MAAM,cAAc,wPAE1B,CAAC;AAIF,eAAO,MAAM,iBAAiB,8PAE7B,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import styled from "styled-components";
|
|
2
|
-
import { Input } from "../Input
|
|
2
|
+
import { Input } from "../Input";
|
|
3
|
+
import { Checkbox } from "../Checkbox";
|
|
4
|
+
import { RadioButton } from "../RadioButton";
|
|
3
5
|
export var StyledSelectInput = styled(Input).withConfig({
|
|
4
6
|
displayName: "Styles__StyledSelectInput",
|
|
5
7
|
componentId: "sc-gfxqpu-0"
|
|
@@ -10,4 +12,14 @@ export var StyledSelectForm = styled.form.withConfig({
|
|
|
10
12
|
componentId: "sc-gfxqpu-1"
|
|
11
13
|
})(["margin:12px 12px 0 12px;display:flex;", "{width:100%;border-radius:4px;}*{margin:auto 0;}"], StyledSelectInput);
|
|
12
14
|
StyledSelectForm.displayName = "StyledSelectForm";
|
|
15
|
+
export var StyledCheckbox = styled(Checkbox).withConfig({
|
|
16
|
+
displayName: "Styles__StyledCheckbox",
|
|
17
|
+
componentId: "sc-gfxqpu-2"
|
|
18
|
+
})(["margin-left:12px;"]);
|
|
19
|
+
StyledCheckbox.displayName = "StyledCheckbox";
|
|
20
|
+
export var StyledRadioButton = styled(RadioButton).withConfig({
|
|
21
|
+
displayName: "Styles__StyledRadioButton",
|
|
22
|
+
componentId: "sc-gfxqpu-3"
|
|
23
|
+
})(["margin-left:12px;"]);
|
|
24
|
+
StyledRadioButton.displayName = "StyledRadioButton";
|
|
13
25
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Select/Styles.ts"],"names":["styled","Input","StyledSelectInput","displayName","StyledSelectForm","form"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AACA,SAASC,KAAT,QAAsB,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Select/Styles.ts"],"names":["styled","Input","Checkbox","RadioButton","StyledSelectInput","displayName","StyledSelectForm","form","StyledCheckbox","StyledRadioButton"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,QAAT,QAAyB,aAAzB;AACA,SAASC,WAAT,QAA4B,gBAA5B;AAEA,OAAO,IAAMC,iBAAiB,GAAGJ,MAAM,CAACC,KAAD,CAAT;AAAA;AAAA;AAAA,QAAvB;AAEPG,iBAAiB,CAACC,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,IAAMC,gBAAgB,GAAGN,MAAM,CAACO,IAAV;AAAA;AAAA;AAAA,kGAIzBH,iBAJyB,CAAtB;AAcPE,gBAAgB,CAACD,WAAjB,GAA+B,kBAA/B;AAEA,OAAO,IAAMG,cAAc,GAAGR,MAAM,CAACE,QAAD,CAAT;AAAA;AAAA;AAAA,yBAApB;AAIPM,cAAc,CAACH,WAAf,GAA6B,gBAA7B;AAEA,OAAO,IAAMI,iBAAiB,GAAGT,MAAM,CAACG,WAAD,CAAT;AAAA;AAAA;AAAA,yBAAvB;AAIPM,iBAAiB,CAACJ,WAAlB,GAAgC,mBAAhC","sourcesContent":["import styled from \"styled-components\";\nimport { Input } from \"../Input\";\nimport { Checkbox } from \"../Checkbox\";\nimport { RadioButton } from \"../RadioButton\";\n\nexport const StyledSelectInput = styled(Input)``;\n\nStyledSelectInput.displayName = \"StyledSelectInput\";\n\nexport const StyledSelectForm = styled.form`\n margin: 12px 12px 0 12px;\n display: flex;\n\n ${StyledSelectInput} {\n width: 100%;\n border-radius: 4px;\n }\n\n * {\n margin: auto 0;\n }\n`;\n\nStyledSelectForm.displayName = \"StyledSelectForm\";\n\nexport const StyledCheckbox = styled(Checkbox)`\n margin-left: 12px;\n`;\n\nStyledCheckbox.displayName = \"StyledCheckbox\";\n\nexport const StyledRadioButton = styled(RadioButton)`\n margin-left: 12px;\n`;\n\nStyledRadioButton.displayName = \"StyledRadioButton\";\n"],"file":"Styles.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateStepper.d.ts","sourceRoot":"","sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAA6C,MAAM,OAAO,CAAC;AAI7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"DateStepper.d.ts","sourceRoot":"","sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAA6C,MAAM,OAAO,CAAC;AAI7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,UAAU,iBAAiB;IAEzB,IAAI,EACA,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;IAEX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IAE1C,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IAEpB,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC;IAElB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IAEpE,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IAExC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IAE3C,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CA4T7C,CAAC"}
|
|
@@ -3,10 +3,11 @@ import classNames from "classnames";
|
|
|
3
3
|
import moment from "moment";
|
|
4
4
|
import MomentLocaleUtils from "react-day-picker/moment";
|
|
5
5
|
import { Button } from "../../Button/Button";
|
|
6
|
-
import
|
|
6
|
+
import ArrowLeftIcon from "../../Icons/collection/ArrowLeft";
|
|
7
7
|
import { DatePicker } from "../../DatePicker";
|
|
8
8
|
import { customClassNames } from "../../DatePicker/ClassNames";
|
|
9
9
|
import { StyledButton, StyledButtonGroup, StyledDiv, StyledMenu, StyledSpan } from "./Styles";
|
|
10
|
+
import { ArrowRightIcon } from "../../Icons";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* This component allow you to select date range. It accepts two parameters "from" and "to" as valid format
|
|
@@ -252,7 +253,7 @@ export var DateStepper = function DateStepper(_ref) {
|
|
|
252
253
|
variant: "secondary",
|
|
253
254
|
onClick: onLeftClickHandler,
|
|
254
255
|
disabled: isBeforeMinDate
|
|
255
|
-
}, /*#__PURE__*/React.createElement(
|
|
256
|
+
}, /*#__PURE__*/React.createElement(ArrowLeftIcon, null)) : null, /*#__PURE__*/React.createElement(StyledDiv, {
|
|
256
257
|
$isTargetable: step === "yearly" || !withDatePicker,
|
|
257
258
|
$isRounded: step === "custom",
|
|
258
259
|
style: dateStepperWidth(fromDate, toDate, step)
|
|
@@ -286,11 +287,7 @@ export var DateStepper = function DateStepper(_ref) {
|
|
|
286
287
|
variant: "secondary",
|
|
287
288
|
onClick: onRightClickHandler,
|
|
288
289
|
disabled: isAfterMaxDate
|
|
289
|
-
}, /*#__PURE__*/React.createElement(
|
|
290
|
-
style: {
|
|
291
|
-
transform: "rotate(180deg)"
|
|
292
|
-
}
|
|
293
|
-
})) : null);
|
|
290
|
+
}, /*#__PURE__*/React.createElement(ArrowRightIcon, null)) : null);
|
|
294
291
|
};
|
|
295
292
|
DateStepper.displayName = "DateStepper";
|
|
296
293
|
//# sourceMappingURL=DateStepper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":["React","useCallback","useMemo","useState","useEffect","classNames","moment","MomentLocaleUtils","Button","MenuNavIcon","DatePicker","customClassNames","StyledButton","StyledButtonGroup","StyledDiv","StyledMenu","StyledSpan","DateStepper","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","datePickerClass","withDatePicker","defaultMonth","Date","popperClassName","position","fromDate","setFromDate","toDate","setToDate","showDatePicker","setShowDatePicker","month","setMonth","getDatesByPeriod","interval","date","add","clone","startOf","endOf","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","onChangeCallback","amount","newFrom","newTo","onDatePickerChange","dates","fromDateTemp","toDateTemp","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","onLeftClickHandler","renderLeftRightButtons","handleShow","closeMenu","onMonthChange","m","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","disabled","nonWorkingDay","transform","displayName"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport moment, { Moment } from \"moment\";\nimport MomentLocaleUtils from \"react-day-picker/moment\";\nimport { Placement } from \"@popperjs/core\";\nimport { Button } from \"../../Button/Button\";\nimport MenuNavIcon from \"../../Icons/collection/MenuNavIcon\";\nimport { DatePicker } from \"../../DatePicker\";\nimport { customClassNames } from \"../../DatePicker/ClassNames\";\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledMenu,\n StyledSpan,\n} from \"./Styles\";\n\ninterface IDateStepperProps {\n /** One of the possible steps for this component */\n step:\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"yearly\"\n | \"custom\"\n | string;\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => void;\n /** Start date of the range */\n from: Date | string;\n /** End date of the range */\n to: Date | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Date, to: string | Date) => string;\n /** Default month */\n defaultMonth?: Date;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Date;\n /** Max fate */\n maxValue?: Date;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n datePickerClass,\n withDatePicker = true,\n defaultMonth = new Date(),\n popperClassName,\n position = \"bottom\",\n}) => {\n const [fromDate, setFromDate] = useState(moment(from));\n const [toDate, setToDate] = useState(moment(to));\n const [showDatePicker, setShowDatePicker] = useState(false);\n const [month, setMonth] = useState(defaultMonth);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n }\n return [date, date];\n },\n [fromDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate.toDate(), toDate.toDate());\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return start.format(\"MMM DD\") + \" - \" + end.format(\"MMM DD\");\n } else {\n return start.format(\"MMM DD YYYY\") + \" - \" + end.format(\"MMM DD YYYY\");\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.format(\"MMM DD\");\n }\n return fromDate.format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().startOf(period);\n const endDate = startDate.clone().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.quarter()}/${fromDate.format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.format(\"YYYY\");\n } else if (step === \"custom\") {\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, step, toDate, formatCallback, period]);\n\n const onChangeCallback = useCallback(\n (amount: number) => {\n const [newFrom, newTo] = getDatesByPeriod(amount);\n setFromDate(moment(newFrom));\n setToDate(moment(newTo));\n\n if (onChange) {\n onChange(newFrom.toDate(), newTo.toDate());\n }\n },\n [onChange, getDatesByPeriod]\n );\n\n const onDatePickerChange = useCallback(\n (dates?: { from: Date; to: Date }) => {\n const fromDateTemp = dates?.from;\n const toDateTemp = dates?.to;\n\n setFromDate(moment(fromDateTemp));\n setToDate(moment(toDateTemp));\n\n if (\n onChange &&\n fromDateTemp instanceof Date &&\n toDateTemp instanceof Date\n ) {\n onChange(fromDateTemp, toDateTemp);\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isSameOrAfter(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment(minValue));\n setToDate(moment(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment(maxValue));\n setToDate(moment(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n onChangeCallback(1);\n\n if (onForward) {\n onForward(fromDate.toDate(), toDate.toDate());\n }\n }, [isAfterMaxDate, onChangeCallback, onForward, fromDate, toDate]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n onChangeCallback(-1);\n\n if (onBack) {\n onBack(fromDate.toDate(), toDate.toDate());\n }\n }, [isBeforeMinDate, onChangeCallback, onBack, fromDate, toDate]);\n\n const renderLeftRightButtons = useMemo(() => {\n return step !== \"custom\";\n }, [step]);\n\n const handleShow = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n if (fromDate) {\n setMonth(fromDate.toDate());\n }\n }, [setShowDatePicker, showDatePicker, fromDate]);\n\n const closeMenu = useCallback(() => {\n setShowDatePicker(false);\n }, []);\n\n const onMonthChange = useCallback(\n (m: Date) => {\n setMonth(m);\n },\n [setMonth]\n );\n\n useEffect(() => {\n setFromDate(moment(from));\n setToDate(moment(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.year() !== moment().year() ||\n toDay.year() !== moment().year()\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Date): boolean => {\n const dayFormat = moment(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(() => {\n return {\n [customClassNames.disabled]: (day: Date): boolean => {\n return isDisabled(day);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n return isDisabled(day);\n },\n };\n }, [isDisabled]);\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <MenuNavIcon />\n </Button>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={step === \"custom\"}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker ? (\n <StyledMenu\n target={\n <StyledButton type=\"button\">\n <span>{getDateFormatted}</span>\n </StyledButton>\n }\n open={showDatePicker}\n onOpen={handleShow}\n onClose={closeMenu}\n popperClassName={popperClassName}\n position={position}\n >\n <DatePicker\n month={month}\n localeUtils={MomentLocaleUtils}\n locale=\"en\"\n selectionMode={step}\n className={datePickerClass}\n selectedDays={{ from: fromDate.toDate(), to: toDate.toDate() }}\n onChange={onDatePickerChange}\n onMonthChange={onMonthChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n dateRequired\n fixedWeeks\n />\n </StyledMenu>\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <MenuNavIcon style={{ transform: \"rotate(180deg)\" }} />\n </Button>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"file":"DateStepper.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":["React","useCallback","useMemo","useState","useEffect","classNames","moment","MomentLocaleUtils","Button","ArrowLeftIcon","DatePicker","customClassNames","StyledButton","StyledButtonGroup","StyledDiv","StyledMenu","StyledSpan","ArrowRightIcon","DateStepper","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","datePickerClass","withDatePicker","defaultMonth","Date","popperClassName","position","fromDate","setFromDate","toDate","setToDate","showDatePicker","setShowDatePicker","month","setMonth","getDatesByPeriod","interval","date","add","clone","startOf","endOf","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","onChangeCallback","amount","newFrom","newTo","onDatePickerChange","dates","fromDateTemp","toDateTemp","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","onLeftClickHandler","renderLeftRightButtons","handleShow","closeMenu","onMonthChange","m","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","disabled","nonWorkingDay","displayName"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport moment, { Moment } from \"moment\";\nimport MomentLocaleUtils from \"react-day-picker/moment\";\nimport { Placement } from \"@popperjs/core\";\nimport { Button } from \"../../Button/Button\";\nimport ArrowLeftIcon from \"../../Icons/collection/ArrowLeft\";\nimport { DatePicker } from \"../../DatePicker\";\nimport { customClassNames } from \"../../DatePicker/ClassNames\";\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledMenu,\n StyledSpan,\n} from \"./Styles\";\nimport { ArrowRightIcon } from \"../../Icons\";\n\ninterface IDateStepperProps {\n /** One of the possible steps for this component */\n step:\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"yearly\"\n | \"custom\"\n | string;\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => void;\n /** Start date of the range */\n from: Date | string;\n /** End date of the range */\n to: Date | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Date, to: string | Date) => string;\n /** Default month */\n defaultMonth?: Date;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Date;\n /** Max fate */\n maxValue?: Date;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n datePickerClass,\n withDatePicker = true,\n defaultMonth = new Date(),\n popperClassName,\n position = \"bottom\",\n}) => {\n const [fromDate, setFromDate] = useState(moment(from));\n const [toDate, setToDate] = useState(moment(to));\n const [showDatePicker, setShowDatePicker] = useState(false);\n const [month, setMonth] = useState(defaultMonth);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n }\n return [date, date];\n },\n [fromDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate.toDate(), toDate.toDate());\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return start.format(\"MMM DD\") + \" - \" + end.format(\"MMM DD\");\n } else {\n return start.format(\"MMM DD YYYY\") + \" - \" + end.format(\"MMM DD YYYY\");\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.format(\"MMM DD\");\n }\n return fromDate.format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().startOf(period);\n const endDate = startDate.clone().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.quarter()}/${fromDate.format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.format(\"YYYY\");\n } else if (step === \"custom\") {\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, step, toDate, formatCallback, period]);\n\n const onChangeCallback = useCallback(\n (amount: number) => {\n const [newFrom, newTo] = getDatesByPeriod(amount);\n setFromDate(moment(newFrom));\n setToDate(moment(newTo));\n\n if (onChange) {\n onChange(newFrom.toDate(), newTo.toDate());\n }\n },\n [onChange, getDatesByPeriod]\n );\n\n const onDatePickerChange = useCallback(\n (dates?: { from: Date; to: Date }) => {\n const fromDateTemp = dates?.from;\n const toDateTemp = dates?.to;\n\n setFromDate(moment(fromDateTemp));\n setToDate(moment(toDateTemp));\n\n if (\n onChange &&\n fromDateTemp instanceof Date &&\n toDateTemp instanceof Date\n ) {\n onChange(fromDateTemp, toDateTemp);\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isSameOrAfter(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment(minValue));\n setToDate(moment(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment(maxValue));\n setToDate(moment(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n onChangeCallback(1);\n\n if (onForward) {\n onForward(fromDate.toDate(), toDate.toDate());\n }\n }, [isAfterMaxDate, onChangeCallback, onForward, fromDate, toDate]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n onChangeCallback(-1);\n\n if (onBack) {\n onBack(fromDate.toDate(), toDate.toDate());\n }\n }, [isBeforeMinDate, onChangeCallback, onBack, fromDate, toDate]);\n\n const renderLeftRightButtons = useMemo(() => {\n return step !== \"custom\";\n }, [step]);\n\n const handleShow = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n if (fromDate) {\n setMonth(fromDate.toDate());\n }\n }, [setShowDatePicker, showDatePicker, fromDate]);\n\n const closeMenu = useCallback(() => {\n setShowDatePicker(false);\n }, []);\n\n const onMonthChange = useCallback(\n (m: Date) => {\n setMonth(m);\n },\n [setMonth]\n );\n\n useEffect(() => {\n setFromDate(moment(from));\n setToDate(moment(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.year() !== moment().year() ||\n toDay.year() !== moment().year()\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Date): boolean => {\n const dayFormat = moment(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(() => {\n return {\n [customClassNames.disabled]: (day: Date): boolean => {\n return isDisabled(day);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n return isDisabled(day);\n },\n };\n }, [isDisabled]);\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <ArrowLeftIcon />\n </Button>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={step === \"custom\"}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker ? (\n <StyledMenu\n target={\n <StyledButton type=\"button\">\n <span>{getDateFormatted}</span>\n </StyledButton>\n }\n open={showDatePicker}\n onOpen={handleShow}\n onClose={closeMenu}\n popperClassName={popperClassName}\n position={position}\n >\n <DatePicker\n month={month}\n localeUtils={MomentLocaleUtils}\n locale=\"en\"\n selectionMode={step}\n className={datePickerClass}\n selectedDays={{ from: fromDate.toDate(), to: toDate.toDate() }}\n onChange={onDatePickerChange}\n onMonthChange={onMonthChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n dateRequired\n fixedWeeks\n />\n </StyledMenu>\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <ArrowRightIcon />\n </Button>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"file":"DateStepper.js"}
|