@servicetitan/form 31.2.0 → 32.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/color-picker/color-palette.js +8 -9
- package/dist/color-picker/color-palette.js.map +1 -1
- package/dist/color-picker/color-picker.js +46 -9
- package/dist/color-picker/color-picker.js.map +1 -1
- package/dist/color-picker/color-picker.module.css.d.ts +4 -0
- package/dist/color-picker/index.js +1 -0
- package/dist/color-picker/index.js.map +1 -1
- package/dist/date-range-picker/date-range-picker.js +205 -174
- package/dist/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/date-range-picker/date-range-picker.module.css.d.ts +8 -0
- package/dist/date-range-picker/index.js +1 -0
- package/dist/date-range-picker/index.js.map +1 -1
- package/dist/demo/color-picker.js +39 -4
- package/dist/demo/color-picker.js.map +1 -1
- package/dist/demo/date-range-picker.js +18 -2
- package/dist/demo/date-range-picker.js.map +1 -1
- package/dist/demo/file-uploader.js +94 -12
- package/dist/demo/file-uploader.js.map +1 -1
- package/dist/demo/index.js +1 -0
- package/dist/demo/index.js.map +1 -1
- package/dist/demo/input-date-mask.js +18 -2
- package/dist/demo/input-date-mask.js.map +1 -1
- package/dist/demo/number-input.js +121 -3
- package/dist/demo/number-input.js.map +1 -1
- package/dist/demo/original-number-input.js +18 -2
- package/dist/demo/original-number-input.js.map +1 -1
- package/dist/demo/phone-number-input.js +5 -1
- package/dist/demo/phone-number-input.js.map +1 -1
- package/dist/file-uploader/config.js +10 -1
- package/dist/file-uploader/config.js.map +1 -1
- package/dist/file-uploader/file-uploader.js +189 -192
- package/dist/file-uploader/file-uploader.js.map +1 -1
- package/dist/file-uploader/index.js +3 -1
- package/dist/file-uploader/index.js.map +1 -1
- package/dist/file-uploader/uploader.js +57 -41
- package/dist/file-uploader/uploader.js.map +1 -1
- package/dist/form-state-error-banner/form-state-error-banner.js +15 -5
- package/dist/form-state-error-banner/form-state-error-banner.js.map +1 -1
- package/dist/form-state-error-banner/index.js +1 -0
- package/dist/form-state-error-banner/index.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/input-date-mask/index.js +1 -0
- package/dist/input-date-mask/index.js.map +1 -1
- package/dist/input-date-mask/input-date-mask.js +47 -28
- package/dist/input-date-mask/input-date-mask.js.map +1 -1
- package/dist/input-date-mask/input-date-mask.module.css.d.ts +4 -0
- package/dist/label/index.js +1 -0
- package/dist/label/index.js.map +1 -1
- package/dist/label/label.js +29 -1
- package/dist/label/label.js.map +1 -1
- package/dist/label/label.module.css.d.ts +7 -0
- package/dist/masked-input.js +17 -4
- package/dist/masked-input.js.map +1 -1
- package/dist/number-input/common-interfaces.js +2 -1
- package/dist/number-input/common-interfaces.js.map +1 -1
- package/dist/number-input/get-formatted-string.js +2 -3
- package/dist/number-input/get-formatted-string.js.map +1 -1
- package/dist/number-input/index.js +1 -0
- package/dist/number-input/index.js.map +1 -1
- package/dist/number-input/number-input.js +53 -42
- package/dist/number-input/number-input.js.map +1 -1
- package/dist/number-input/process-value.js +10 -16
- package/dist/number-input/process-value.js.map +1 -1
- package/dist/original-number-input/index.js +1 -0
- package/dist/original-number-input/index.js.map +1 -1
- package/dist/original-number-input/ordinal-number-input.js +54 -59
- package/dist/original-number-input/ordinal-number-input.js.map +1 -1
- package/dist/phone-number-input/index.js +1 -0
- package/dist/phone-number-input/index.js.map +1 -1
- package/dist/phone-number-input/phone-number-input.js +13 -1
- package/dist/phone-number-input/phone-number-input.js.map +1 -1
- package/package.json +13 -13
- package/dist/form.stories.js +0 -20
- package/dist/form.stories.js.map +0 -1
- package/dist/number-input/__tests__/get-formatted-string.test.js +0 -41
- package/dist/number-input/__tests__/get-formatted-string.test.js.map +0 -1
- package/dist/number-input/__tests__/process-value.test.js +0 -283
- package/dist/number-input/__tests__/process-value.test.js.map +0 -1
- package/dist/original-number-input/__tests__/ordinal-number-input.test.js +0 -51
- package/dist/original-number-input/__tests__/ordinal-number-input.test.js.map +0 -1
@@ -9,7 +9,7 @@ export const colorPalette = [
|
|
9
9
|
tokens.colorBlue200,
|
10
10
|
tokens.colorMagenta200,
|
11
11
|
tokens.colorPurple200,
|
12
|
-
tokens.colorNeutral60
|
12
|
+
tokens.colorNeutral60
|
13
13
|
],
|
14
14
|
[
|
15
15
|
tokens.colorRed300,
|
@@ -20,7 +20,7 @@ export const colorPalette = [
|
|
20
20
|
tokens.colorBlue300,
|
21
21
|
tokens.colorMagenta300,
|
22
22
|
tokens.colorPurple300,
|
23
|
-
tokens.colorNeutral70
|
23
|
+
tokens.colorNeutral70
|
24
24
|
],
|
25
25
|
[
|
26
26
|
tokens.colorRed400,
|
@@ -31,7 +31,7 @@ export const colorPalette = [
|
|
31
31
|
tokens.colorBlue400,
|
32
32
|
tokens.colorMagenta400,
|
33
33
|
tokens.colorPurple400,
|
34
|
-
tokens.colorNeutral90
|
34
|
+
tokens.colorNeutral90
|
35
35
|
],
|
36
36
|
[
|
37
37
|
tokens.colorRed500,
|
@@ -42,7 +42,7 @@ export const colorPalette = [
|
|
42
42
|
tokens.colorBlue500,
|
43
43
|
tokens.colorMagenta500,
|
44
44
|
tokens.colorPurple500,
|
45
|
-
tokens.colorNeutral200
|
45
|
+
tokens.colorNeutral200
|
46
46
|
],
|
47
47
|
[
|
48
48
|
tokens.colorRed600,
|
@@ -53,9 +53,8 @@ export const colorPalette = [
|
|
53
53
|
tokens.colorBlue600,
|
54
54
|
tokens.colorMagenta600,
|
55
55
|
tokens.colorPurple600,
|
56
|
-
tokens.colorNeutral400
|
57
|
-
]
|
58
|
-
]
|
59
|
-
|
60
|
-
.map(color => color.toLowerCase());
|
56
|
+
tokens.colorNeutral400
|
57
|
+
]
|
58
|
+
].flat().map((color)=>color.toLowerCase());
|
59
|
+
|
61
60
|
//# sourceMappingURL=color-palette.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/color-picker/color-palette.ts"],"sourcesContent":["import { tokens } from '@servicetitan/tokens/core';\r\n\r\nexport const colorPalette = [\r\n [\r\n tokens.colorRed200,\r\n tokens.colorOrange200,\r\n tokens.colorYellow200,\r\n tokens.colorGreen200,\r\n tokens.colorCyan200,\r\n tokens.colorBlue200,\r\n tokens.colorMagenta200,\r\n tokens.colorPurple200,\r\n tokens.colorNeutral60,\r\n ],\r\n [\r\n tokens.colorRed300,\r\n tokens.colorOrange300,\r\n tokens.colorYellow300,\r\n tokens.colorGreen300,\r\n tokens.colorCyan300,\r\n tokens.colorBlue300,\r\n tokens.colorMagenta300,\r\n tokens.colorPurple300,\r\n tokens.colorNeutral70,\r\n ],\r\n [\r\n tokens.colorRed400,\r\n tokens.colorOrange400,\r\n tokens.colorYellow400,\r\n tokens.colorGreen400,\r\n tokens.colorCyan400,\r\n tokens.colorBlue400,\r\n tokens.colorMagenta400,\r\n tokens.colorPurple400,\r\n tokens.colorNeutral90,\r\n ],\r\n [\r\n tokens.colorRed500,\r\n tokens.colorOrange500,\r\n tokens.colorYellow500,\r\n tokens.colorGreen500,\r\n tokens.colorCyan500,\r\n tokens.colorBlue500,\r\n tokens.colorMagenta500,\r\n tokens.colorPurple500,\r\n tokens.colorNeutral200,\r\n ],\r\n [\r\n tokens.colorRed600,\r\n tokens.colorOrange600,\r\n tokens.colorYellow600,\r\n tokens.colorGreen600,\r\n tokens.colorCyan600,\r\n tokens.colorBlue600,\r\n tokens.colorMagenta600,\r\n tokens.colorPurple600,\r\n tokens.colorNeutral400,\r\n ],\r\n]\r\n .flat()\r\n .map(color => color.toLowerCase());\r\n"],"names":["tokens","colorPalette","colorRed200","colorOrange200","colorYellow200","colorGreen200","colorCyan200","colorBlue200","colorMagenta200","colorPurple200","colorNeutral60","colorRed300","colorOrange300","colorYellow300","colorGreen300","colorCyan300","colorBlue300","colorMagenta300","colorPurple300","colorNeutral70","colorRed400","colorOrange400","colorYellow400","colorGreen400","colorCyan400","colorBlue400","colorMagenta400","colorPurple400","colorNeutral90","colorRed500","colorOrange500","colorYellow500","colorGreen500","colorCyan500","colorBlue500","colorMagenta500","colorPurple500","colorNeutral200","colorRed600","colorOrange600","colorYellow600","colorGreen600","colorCyan600","colorBlue600","colorMagenta600","colorPurple600","colorNeutral400","flat","map","color","toLowerCase"],"mappings":"AAAA,SAASA,MAAM,QAAQ,4BAA4B;AAEnD,OAAO,MAAMC,eAAe;IACxB;QACID,OAAOE,WAAW;QAClBF,OAAOG,cAAc;QACrBH,OAAOI,cAAc;QACrBJ,OAAOK,aAAa;QACpBL,OAAOM,YAAY;QACnBN,OAAOO,YAAY;QACnBP,OAAOQ,eAAe;QACtBR,OAAOS,cAAc;QACrBT,OAAOU,cAAc;KACxB;IACD;QACIV,OAAOW,WAAW;QAClBX,OAAOY,cAAc;QACrBZ,OAAOa,cAAc;QACrBb,OAAOc,aAAa;QACpBd,OAAOe,YAAY;QACnBf,OAAOgB,YAAY;QACnBhB,OAAOiB,eAAe;QACtBjB,OAAOkB,cAAc;QACrBlB,OAAOmB,cAAc;KACxB;IACD;QACInB,OAAOoB,WAAW;QAClBpB,OAAOqB,cAAc;QACrBrB,OAAOsB,cAAc;QACrBtB,OAAOuB,aAAa;QACpBvB,OAAOwB,YAAY;QACnBxB,OAAOyB,YAAY;QACnBzB,OAAO0B,eAAe;QACtB1B,OAAO2B,cAAc;QACrB3B,OAAO4B,cAAc;KACxB;IACD;QACI5B,OAAO6B,WAAW;QAClB7B,OAAO8B,cAAc;QACrB9B,OAAO+B,cAAc;QACrB/B,OAAOgC,aAAa;QACpBhC,OAAOiC,YAAY;QACnBjC,OAAOkC,YAAY;QACnBlC,OAAOmC,eAAe;QACtBnC,OAAOoC,cAAc;QACrBpC,OAAOqC,eAAe;KACzB;IACD;QACIrC,OAAOsC,WAAW;QAClBtC,OAAOuC,cAAc;QACrBvC,OAAOwC,cAAc;QACrBxC,OAAOyC,aAAa;QACpBzC,OAAO0C,YAAY;QACnB1C,OAAO2C,YAAY;QACnB3C,OAAO4C,eAAe;QACtB5C,OAAO6C,cAAc;QACrB7C,OAAO8C,eAAe;KACzB;CACJ,CACIC,IAAI,GACJC,GAAG,CAACC,CAAAA,QAASA,MAAMC,WAAW,IAAI"}
|
@@ -1,25 +1,62 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import { useRef, useState, useCallback, useEffect } from 'react';
|
3
|
-
import { Popover, BodyText, Card, ColorPicker as AnvilColorPicker
|
3
|
+
import { Popover, BodyText, Card, ColorPicker as AnvilColorPicker } from '@servicetitan/design-system';
|
4
4
|
import { colorPalette } from './color-palette';
|
5
5
|
import * as Styles from './color-picker.module.css';
|
6
|
-
export const ColorPicker = ({ label, colors = colorPalette, value, preview: Preview, onChange
|
6
|
+
export const ColorPicker = ({ label, colors = colorPalette, value, preview: Preview, onChange })=>{
|
7
7
|
const ref = useRef(null);
|
8
8
|
const [isOpen, setIsOpen] = useState(false);
|
9
|
-
const handleClickOutside = useCallback((event)
|
9
|
+
const handleClickOutside = useCallback((event)=>{
|
10
10
|
if (ref.current && !ref.current.contains(event.target)) {
|
11
11
|
setIsOpen(false);
|
12
12
|
}
|
13
13
|
}, []);
|
14
|
-
useEffect(()
|
14
|
+
useEffect(()=>{
|
15
15
|
document.addEventListener('mousedown', handleClickOutside);
|
16
|
-
return ()
|
16
|
+
return ()=>{
|
17
17
|
document.removeEventListener('mousedown', handleClickOutside);
|
18
18
|
};
|
19
|
-
}, [
|
20
|
-
|
21
|
-
|
19
|
+
}, [
|
20
|
+
handleClickOutside
|
21
|
+
]);
|
22
|
+
const handleTriggerClick = ()=>{
|
23
|
+
setIsOpen((isOpen)=>!isOpen);
|
22
24
|
};
|
23
|
-
return
|
25
|
+
return /*#__PURE__*/ _jsx("div", {
|
26
|
+
ref: ref,
|
27
|
+
className: "d-f",
|
28
|
+
children: /*#__PURE__*/ _jsxs(Popover, {
|
29
|
+
trigger: /*#__PURE__*/ _jsx("div", {
|
30
|
+
style: {
|
31
|
+
background: value
|
32
|
+
},
|
33
|
+
onClick: handleTriggerClick,
|
34
|
+
className: Styles.colorPicker
|
35
|
+
}),
|
36
|
+
open: isOpen,
|
37
|
+
direction: "rb",
|
38
|
+
popoverContentClassName: "p-3",
|
39
|
+
className: Styles.colorPickerPopover,
|
40
|
+
children: [
|
41
|
+
/*#__PURE__*/ _jsx(BodyText, {
|
42
|
+
size: "medium",
|
43
|
+
className: "m-b-1",
|
44
|
+
children: label
|
45
|
+
}),
|
46
|
+
/*#__PURE__*/ _jsx(Card, {
|
47
|
+
padding: "thin",
|
48
|
+
children: /*#__PURE__*/ _jsx(AnvilColorPicker, {
|
49
|
+
colors: colors,
|
50
|
+
value: value === null || value === void 0 ? void 0 : value.toLowerCase(),
|
51
|
+
onChange: onChange
|
52
|
+
})
|
53
|
+
}),
|
54
|
+
Preview && /*#__PURE__*/ _jsx(Preview, {
|
55
|
+
color: value
|
56
|
+
})
|
57
|
+
]
|
58
|
+
})
|
59
|
+
});
|
24
60
|
};
|
61
|
+
|
25
62
|
//# sourceMappingURL=color-picker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/color-picker/color-picker.tsx"],"sourcesContent":["import { useRef, useState, useCallback, useEffect, FC, ComponentType } from 'react';\r\n\r\nimport {\r\n Popover,\r\n BodyText,\r\n Card,\r\n ColorPicker as AnvilColorPicker,\r\n} from '@servicetitan/design-system';\r\n\r\nimport { colorPalette } from './color-palette';\r\n\r\nimport * as Styles from './color-picker.module.css';\r\n\r\nexport interface ColorPickerPreviewProps {\r\n color?: string;\r\n}\r\n\r\nexport interface ColorPickerProps {\r\n label?: string;\r\n colors?: string[];\r\n value: string | undefined;\r\n preview?: ComponentType<ColorPickerPreviewProps>;\r\n onChange(value: string | undefined): void;\r\n}\r\n\r\nexport const ColorPicker: FC<ColorPickerProps> = ({\r\n label,\r\n colors = colorPalette,\r\n value,\r\n preview: Preview,\r\n onChange,\r\n}) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleClickOutside = useCallback((event: Event) => {\r\n if (ref.current && !ref.current.contains(event.target as Node)) {\r\n setIsOpen(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [handleClickOutside]);\r\n\r\n const handleTriggerClick = () => {\r\n setIsOpen(isOpen => !isOpen);\r\n };\r\n\r\n return (\r\n <div ref={ref} className=\"d-f\">\r\n <Popover\r\n trigger={\r\n <div\r\n style={{ background: value }}\r\n onClick={handleTriggerClick}\r\n className={Styles.colorPicker}\r\n />\r\n }\r\n open={isOpen}\r\n direction=\"rb\"\r\n popoverContentClassName=\"p-3\"\r\n className={Styles.colorPickerPopover}\r\n >\r\n <BodyText size=\"medium\" className=\"m-b-1\">\r\n {label}\r\n </BodyText>\r\n <Card padding=\"thin\">\r\n <AnvilColorPicker\r\n colors={colors}\r\n value={value?.toLowerCase()}\r\n onChange={onChange}\r\n />\r\n </Card>\r\n {Preview && <Preview color={value} />}\r\n </Popover>\r\n </div>\r\n );\r\n};\r\n"],"names":["useRef","useState","useCallback","useEffect","Popover","BodyText","Card","ColorPicker","AnvilColorPicker","colorPalette","Styles","label","colors","value","preview","Preview","onChange","ref","isOpen","setIsOpen","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","handleTriggerClick","div","className","trigger","style","background","onClick","colorPicker","open","direction","popoverContentClassName","colorPickerPopover","size","padding","toLowerCase","color"],"mappings":";AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,QAA2B,QAAQ;AAEpF,SACIC,OAAO,EACPC,QAAQ,EACRC,IAAI,EACJC,eAAeC,gBAAgB,QAC5B,8BAA8B;AAErC,SAASC,YAAY,QAAQ,kBAAkB;AAE/C,YAAYC,YAAY,4BAA4B;AAcpD,OAAO,MAAMH,cAAoC,CAAC,EAC9CI,KAAK,EACLC,SAASH,YAAY,EACrBI,KAAK,EACLC,SAASC,OAAO,EAChBC,QAAQ,EACX;IACG,MAAMC,MAAMjB,OAAuB;IAEnC,MAAM,CAACkB,QAAQC,UAAU,GAAGlB,SAAS;IAErC,MAAMmB,qBAAqBlB,YAAY,CAACmB;QACpC,IAAIJ,IAAIK,OAAO,IAAI,CAACL,IAAIK,OAAO,CAACC,QAAQ,CAACF,MAAMG,MAAM,GAAW;YAC5DL,UAAU;QACd;IACJ,GAAG,EAAE;IAELhB,UAAU;QACNsB,SAASC,gBAAgB,CAAC,aAAaN;QAEvC,OAAO;YACHK,SAASE,mBAAmB,CAAC,aAAaP;QAC9C;IACJ,GAAG;QAACA;KAAmB;IAEvB,MAAMQ,qBAAqB;QACvBT,UAAUD,CAAAA,SAAU,CAACA;IACzB;IAEA,qBACI,KAACW;QAAIZ,KAAKA;QAAKa,WAAU;kBACrB,cAAA,MAAC1B;YACG2B,uBACI,KAACF;gBACGG,OAAO;oBAAEC,YAAYpB;gBAAM;gBAC3BqB,SAASN;gBACTE,WAAWpB,OAAOyB,WAAW;;YAGrCC,MAAMlB;YACNmB,WAAU;YACVC,yBAAwB;YACxBR,WAAWpB,OAAO6B,kBAAkB;;8BAEpC,KAAClC;oBAASmC,MAAK;oBAASV,WAAU;8BAC7BnB;;8BAEL,KAACL;oBAAKmC,SAAQ;8BACV,cAAA,KAACjC;wBACGI,QAAQA;wBACRC,KAAK,EAAEA,kBAAAA,4BAAAA,MAAO6B,WAAW;wBACzB1B,UAAUA;;;gBAGjBD,yBAAW,KAACA;oBAAQ4B,OAAO9B;;;;;AAI5C,EAAE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/color-picker/index.ts"],"sourcesContent":["export * from './color-picker';\r\nexport * from './color-palette';\r\n"],"names":[],"mappings":"AAAA,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB"}
|
@@ -1,161 +1,35 @@
|
|
1
|
-
|
1
|
+
function _define_property(obj, key, value) {
|
2
|
+
if (key in obj) {
|
3
|
+
Object.defineProperty(obj, key, {
|
4
|
+
value: value,
|
5
|
+
enumerable: true,
|
6
|
+
configurable: true,
|
7
|
+
writable: true
|
8
|
+
});
|
9
|
+
} else {
|
10
|
+
obj[key] = value;
|
11
|
+
}
|
12
|
+
return obj;
|
13
|
+
}
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
2
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
-
else for
|
17
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
-
}
|
7
|
-
|
19
|
+
}
|
20
|
+
function _ts_metadata(k, v) {
|
8
21
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
9
|
-
}
|
22
|
+
}
|
10
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
11
24
|
import { Component } from 'react';
|
12
|
-
import { DateRangePicker as DateRangePickerKendo
|
25
|
+
import { DateRangePicker as DateRangePickerKendo } from '@progress/kendo-react-dateinputs';
|
13
26
|
import { Icon, InputDateMask, Stack } from '@servicetitan/design-system';
|
14
27
|
import { observable, action, makeObservable } from 'mobx';
|
15
28
|
import { observer } from 'mobx-react';
|
16
29
|
import classnames from 'classnames';
|
17
30
|
import moment from 'moment';
|
18
31
|
import * as Styles from './date-range-picker.module.css';
|
19
|
-
|
20
|
-
constructor(props) {
|
21
|
-
super(props);
|
22
|
-
// `HTMLDivElement` leads to issues with Node/SSR
|
23
|
-
Object.defineProperty(this, "wrapElem", {
|
24
|
-
enumerable: true,
|
25
|
-
configurable: true,
|
26
|
-
writable: true,
|
27
|
-
value: void 0
|
28
|
-
});
|
29
|
-
Object.defineProperty(this, "isFocused", {
|
30
|
-
enumerable: true,
|
31
|
-
configurable: true,
|
32
|
-
writable: true,
|
33
|
-
value: false
|
34
|
-
});
|
35
|
-
Object.defineProperty(this, "showDatePicker", {
|
36
|
-
enumerable: true,
|
37
|
-
configurable: true,
|
38
|
-
writable: true,
|
39
|
-
value: false
|
40
|
-
});
|
41
|
-
Object.defineProperty(this, "isIconClicked", {
|
42
|
-
enumerable: true,
|
43
|
-
configurable: true,
|
44
|
-
writable: true,
|
45
|
-
value: false
|
46
|
-
});
|
47
|
-
Object.defineProperty(this, "isDateRangePickerClicked", {
|
48
|
-
enumerable: true,
|
49
|
-
configurable: true,
|
50
|
-
writable: true,
|
51
|
-
value: false
|
52
|
-
});
|
53
|
-
Object.defineProperty(this, "handleRef", {
|
54
|
-
enumerable: true,
|
55
|
-
configurable: true,
|
56
|
-
writable: true,
|
57
|
-
value: (wrapElem) => {
|
58
|
-
this.wrapElem = wrapElem;
|
59
|
-
}
|
60
|
-
});
|
61
|
-
Object.defineProperty(this, "handleClickGlobal", {
|
62
|
-
enumerable: true,
|
63
|
-
configurable: true,
|
64
|
-
writable: true,
|
65
|
-
value: (evt) => {
|
66
|
-
if (!(evt.target instanceof Node)) {
|
67
|
-
return;
|
68
|
-
}
|
69
|
-
const isPrevFocused = this.isFocused;
|
70
|
-
this.isFocused = this.isDateRangePickerClicked;
|
71
|
-
if (!this.isFocused && isPrevFocused) {
|
72
|
-
// click outside
|
73
|
-
this.props.field.enableAutoValidationAndValidate();
|
74
|
-
this.toggleShow(false);
|
75
|
-
}
|
76
|
-
else if (this.isFocused && !isPrevFocused && !this.isIconClicked) {
|
77
|
-
// click inside but outside icons
|
78
|
-
this.props.field.disableAutoValidation();
|
79
|
-
}
|
80
|
-
this.isIconClicked = false;
|
81
|
-
this.isDateRangePickerClicked = false;
|
82
|
-
}
|
83
|
-
});
|
84
|
-
Object.defineProperty(this, "handleClickDateRangePicker", {
|
85
|
-
enumerable: true,
|
86
|
-
configurable: true,
|
87
|
-
writable: true,
|
88
|
-
value: () => {
|
89
|
-
this.isDateRangePickerClicked = true;
|
90
|
-
}
|
91
|
-
});
|
92
|
-
Object.defineProperty(this, "handleClickIcon", {
|
93
|
-
enumerable: true,
|
94
|
-
configurable: true,
|
95
|
-
writable: true,
|
96
|
-
value: () => {
|
97
|
-
this.isIconClicked = true;
|
98
|
-
if (this.showDatePicker) {
|
99
|
-
this.props.field.enableAutoValidationAndValidate();
|
100
|
-
}
|
101
|
-
else {
|
102
|
-
this.props.field.disableAutoValidation();
|
103
|
-
}
|
104
|
-
this.toggleShow();
|
105
|
-
}
|
106
|
-
});
|
107
|
-
Object.defineProperty(this, "handleChange", {
|
108
|
-
enumerable: true,
|
109
|
-
configurable: true,
|
110
|
-
writable: true,
|
111
|
-
value: (event) => {
|
112
|
-
var _a, _b;
|
113
|
-
const value = event.target.value;
|
114
|
-
if (value.start && value.end && value.start > value.end) {
|
115
|
-
[value.start, value.end] = [value.end, value.start];
|
116
|
-
}
|
117
|
-
this.props.field.onChange({ from: (_a = value.start) !== null && _a !== void 0 ? _a : undefined, to: (_b = value.end) !== null && _b !== void 0 ? _b : undefined });
|
118
|
-
}
|
119
|
-
});
|
120
|
-
Object.defineProperty(this, "handleFromChange", {
|
121
|
-
enumerable: true,
|
122
|
-
configurable: true,
|
123
|
-
writable: true,
|
124
|
-
value: (from) => {
|
125
|
-
const to = this.props.field.value ? this.props.field.value.to : undefined;
|
126
|
-
if (from || to) {
|
127
|
-
this.props.field.onChange({ from, to });
|
128
|
-
}
|
129
|
-
else {
|
130
|
-
this.props.field.onChange(undefined);
|
131
|
-
}
|
132
|
-
}
|
133
|
-
});
|
134
|
-
Object.defineProperty(this, "handleToChange", {
|
135
|
-
enumerable: true,
|
136
|
-
configurable: true,
|
137
|
-
writable: true,
|
138
|
-
value: (to) => {
|
139
|
-
const from = this.props.field.value ? this.props.field.value.from : undefined;
|
140
|
-
if (from || to) {
|
141
|
-
this.props.field.onChange({ from, to });
|
142
|
-
}
|
143
|
-
else {
|
144
|
-
this.props.field.onChange(undefined);
|
145
|
-
}
|
146
|
-
}
|
147
|
-
});
|
148
|
-
Object.defineProperty(this, "handleHiddenInputChange", {
|
149
|
-
enumerable: true,
|
150
|
-
configurable: true,
|
151
|
-
writable: true,
|
152
|
-
value: (ev) => {
|
153
|
-
const values = ev.currentTarget.value.split('-').map(v => new Date(v));
|
154
|
-
this.props.field.onChange({ from: values[0] || undefined, to: values[1] || undefined });
|
155
|
-
}
|
156
|
-
});
|
157
|
-
makeObservable(this);
|
158
|
-
}
|
32
|
+
export class DateRangePicker extends Component {
|
159
33
|
toggleShow(show) {
|
160
34
|
this.showDatePicker = show !== undefined ? show : !this.showDatePicker;
|
161
35
|
}
|
@@ -166,15 +40,22 @@ let DateRangePicker = class DateRangePicker extends Component {
|
|
166
40
|
window.removeEventListener('click', this.handleClickGlobal);
|
167
41
|
}
|
168
42
|
render() {
|
169
|
-
var _a, _b;
|
170
43
|
const { hasError } = this.props.field;
|
171
|
-
const { 'qa-testing': qaTestingLocator, placeHolder, inputFormat, className, calendarComponent, headerTitleComponent, cellComponent, minDate, maxDate, calendarMinDate, calendarMaxDate, topView, bottomView, horizontalAlign, disabled = false, small, maskChar
|
44
|
+
const { 'qa-testing': qaTestingLocator, placeHolder, inputFormat, className, calendarComponent, headerTitleComponent, cellComponent, minDate, maxDate, calendarMinDate, calendarMaxDate, topView, bottomView, horizontalAlign, disabled = false, small, maskChar } = this.props;
|
172
45
|
const value = this.props.field.value ? this.props.field.value : {};
|
173
46
|
const horizontalAlignClass = classnames({
|
174
47
|
[Styles.popupCenter]: horizontalAlign === 'center',
|
175
|
-
[Styles.popupRight]: horizontalAlign === 'right'
|
48
|
+
[Styles.popupRight]: horizontalAlign === 'right'
|
176
49
|
});
|
177
|
-
|
50
|
+
var _value_from, _value_to;
|
51
|
+
return /*#__PURE__*/ _jsxs("div", {
|
52
|
+
className: classnames(Styles.dateRangePicker, className),
|
53
|
+
ref: this.handleRef,
|
54
|
+
onClick: this.handleClickDateRangePicker,
|
55
|
+
children: [
|
56
|
+
/*#__PURE__*/ _jsx(DateRangePickerKendo, {
|
57
|
+
className: Styles.dateRangePickerKendo,
|
58
|
+
calendarSettings: {
|
178
59
|
min: minDate !== null && minDate !== void 0 ? minDate : calendarMinDate,
|
179
60
|
max: maxDate !== null && maxDate !== void 0 ? maxDate : calendarMaxDate,
|
180
61
|
topView,
|
@@ -182,15 +63,90 @@ let DateRangePicker = class DateRangePicker extends Component {
|
|
182
63
|
disabled,
|
183
64
|
mode: 'range',
|
184
65
|
headerTitle: headerTitleComponent,
|
185
|
-
cell: cellComponent
|
186
|
-
},
|
66
|
+
cell: cellComponent
|
67
|
+
},
|
68
|
+
popupSettings: {
|
187
69
|
appendTo: this.wrapElem,
|
188
|
-
className: horizontalAlignClass
|
189
|
-
},
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
70
|
+
className: horizontalAlignClass
|
71
|
+
},
|
72
|
+
startDateInputSettings: {
|
73
|
+
tabIndex: -1
|
74
|
+
},
|
75
|
+
endDateInputSettings: {
|
76
|
+
tabIndex: -1
|
77
|
+
},
|
78
|
+
show: this.showDatePicker,
|
79
|
+
value: {
|
80
|
+
start: (_value_from = value.from) !== null && _value_from !== void 0 ? _value_from : null,
|
81
|
+
end: (_value_to = value.to) !== null && _value_to !== void 0 ? _value_to : null
|
82
|
+
},
|
83
|
+
onChange: this.handleChange,
|
84
|
+
min: minDate,
|
85
|
+
max: maxDate,
|
86
|
+
calendar: calendarComponent
|
87
|
+
}),
|
88
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
89
|
+
alignItems: "center",
|
90
|
+
className: "flex-grow-1",
|
91
|
+
children: [
|
92
|
+
/*#__PURE__*/ _jsx(Stack.Item, {
|
93
|
+
fill: true,
|
94
|
+
children: /*#__PURE__*/ _jsx(InputDateMask, {
|
95
|
+
shortLabel: /*#__PURE__*/ _jsx(Icon, {
|
96
|
+
name: "today",
|
97
|
+
className: classnames(Styles.icon, `${qaTestingLocator}-icon-from`),
|
98
|
+
onClick: this.handleClickIcon
|
99
|
+
}),
|
100
|
+
placeholder: placeHolder,
|
101
|
+
value: value.from,
|
102
|
+
onChange: this.handleFromChange,
|
103
|
+
onBlur: this.handleFromChange,
|
104
|
+
error: hasError,
|
105
|
+
disabled: disabled,
|
106
|
+
"qa-testing": `${qaTestingLocator}-from`,
|
107
|
+
dateFormat: inputFormat,
|
108
|
+
minDate: minDate,
|
109
|
+
maxDate: this.maxFromDate,
|
110
|
+
small: small,
|
111
|
+
maskChar: maskChar
|
112
|
+
})
|
113
|
+
}),
|
114
|
+
/*#__PURE__*/ _jsx(Icon, {
|
115
|
+
name: "arrow_forward",
|
116
|
+
className: Styles.endLabel
|
117
|
+
}),
|
118
|
+
/*#__PURE__*/ _jsx(Stack.Item, {
|
119
|
+
fill: true,
|
120
|
+
children: /*#__PURE__*/ _jsx(InputDateMask, {
|
121
|
+
shortLabel: /*#__PURE__*/ _jsx(Icon, {
|
122
|
+
name: "today",
|
123
|
+
className: classnames(Styles.icon, `${qaTestingLocator}-icon-to`),
|
124
|
+
onClick: this.handleClickIcon
|
125
|
+
}),
|
126
|
+
placeholder: placeHolder,
|
127
|
+
value: value.to,
|
128
|
+
onChange: this.handleToChange,
|
129
|
+
onBlur: this.handleToChange,
|
130
|
+
error: hasError,
|
131
|
+
disabled: disabled,
|
132
|
+
"qa-testing": `${qaTestingLocator}-to`,
|
133
|
+
dateFormat: inputFormat,
|
134
|
+
minDate: this.minToDate,
|
135
|
+
maxDate: maxDate,
|
136
|
+
small: small,
|
137
|
+
maskChar: maskChar
|
138
|
+
})
|
139
|
+
})
|
140
|
+
]
|
141
|
+
}),
|
142
|
+
/*#__PURE__*/ _jsx("input", {
|
143
|
+
hidden: true,
|
144
|
+
// eslint-disable-next-line react/no-unknown-property
|
145
|
+
"qa-testing": qaTestingLocator,
|
146
|
+
onChange: this.handleHiddenInputChange
|
147
|
+
})
|
148
|
+
]
|
149
|
+
});
|
194
150
|
}
|
195
151
|
formatDate(date, inputFormat = 'L') {
|
196
152
|
return date ? moment(date).format(inputFormat) : '';
|
@@ -217,28 +173,103 @@ let DateRangePicker = class DateRangePicker extends Component {
|
|
217
173
|
}
|
218
174
|
return minDate !== null && minDate !== void 0 ? minDate : from;
|
219
175
|
}
|
220
|
-
|
221
|
-
|
176
|
+
constructor(props){
|
177
|
+
super(props), // `HTMLDivElement` leads to issues with Node/SSR
|
178
|
+
_define_property(this, "wrapElem", void 0), _define_property(this, "isFocused", false), _define_property(this, "showDatePicker", false), _define_property(this, "isIconClicked", false), _define_property(this, "isDateRangePickerClicked", false), _define_property(this, "handleRef", (wrapElem)=>{
|
179
|
+
this.wrapElem = wrapElem;
|
180
|
+
}), _define_property(this, "handleClickGlobal", (evt)=>{
|
181
|
+
if (!(evt.target instanceof Node)) {
|
182
|
+
return;
|
183
|
+
}
|
184
|
+
const isPrevFocused = this.isFocused;
|
185
|
+
this.isFocused = this.isDateRangePickerClicked;
|
186
|
+
if (!this.isFocused && isPrevFocused) {
|
187
|
+
// click outside
|
188
|
+
this.props.field.enableAutoValidationAndValidate();
|
189
|
+
this.toggleShow(false);
|
190
|
+
} else if (this.isFocused && !isPrevFocused && !this.isIconClicked) {
|
191
|
+
// click inside but outside icons
|
192
|
+
this.props.field.disableAutoValidation();
|
193
|
+
}
|
194
|
+
this.isIconClicked = false;
|
195
|
+
this.isDateRangePickerClicked = false;
|
196
|
+
}), _define_property(this, "handleClickDateRangePicker", ()=>{
|
197
|
+
this.isDateRangePickerClicked = true;
|
198
|
+
}), _define_property(this, "handleClickIcon", ()=>{
|
199
|
+
this.isIconClicked = true;
|
200
|
+
if (this.showDatePicker) {
|
201
|
+
this.props.field.enableAutoValidationAndValidate();
|
202
|
+
} else {
|
203
|
+
this.props.field.disableAutoValidation();
|
204
|
+
}
|
205
|
+
this.toggleShow();
|
206
|
+
}), _define_property(this, "handleChange", (event)=>{
|
207
|
+
const value = event.target.value;
|
208
|
+
if (value.start && value.end && value.start > value.end) {
|
209
|
+
[value.start, value.end] = [
|
210
|
+
value.end,
|
211
|
+
value.start
|
212
|
+
];
|
213
|
+
}
|
214
|
+
var _value_start, _value_end;
|
215
|
+
this.props.field.onChange({
|
216
|
+
from: (_value_start = value.start) !== null && _value_start !== void 0 ? _value_start : undefined,
|
217
|
+
to: (_value_end = value.end) !== null && _value_end !== void 0 ? _value_end : undefined
|
218
|
+
});
|
219
|
+
}), _define_property(this, "handleFromChange", (from)=>{
|
220
|
+
const to = this.props.field.value ? this.props.field.value.to : undefined;
|
221
|
+
if (from || to) {
|
222
|
+
this.props.field.onChange({
|
223
|
+
from,
|
224
|
+
to
|
225
|
+
});
|
226
|
+
} else {
|
227
|
+
this.props.field.onChange(undefined);
|
228
|
+
}
|
229
|
+
}), _define_property(this, "handleToChange", (to)=>{
|
230
|
+
const from = this.props.field.value ? this.props.field.value.from : undefined;
|
231
|
+
if (from || to) {
|
232
|
+
this.props.field.onChange({
|
233
|
+
from,
|
234
|
+
to
|
235
|
+
});
|
236
|
+
} else {
|
237
|
+
this.props.field.onChange(undefined);
|
238
|
+
}
|
239
|
+
}), _define_property(this, "handleHiddenInputChange", (ev)=>{
|
240
|
+
const values = ev.currentTarget.value.split('-').map((v)=>new Date(v));
|
241
|
+
this.props.field.onChange({
|
242
|
+
from: values[0] || undefined,
|
243
|
+
to: values[1] || undefined
|
244
|
+
});
|
245
|
+
});
|
246
|
+
makeObservable(this);
|
247
|
+
}
|
248
|
+
}
|
249
|
+
_ts_decorate([
|
222
250
|
observable,
|
223
|
-
|
251
|
+
_ts_metadata("design:type", Object)
|
224
252
|
], DateRangePicker.prototype, "wrapElem", void 0);
|
225
|
-
|
226
|
-
observable
|
227
|
-
__metadata("design:type", Object)
|
253
|
+
_ts_decorate([
|
254
|
+
observable
|
228
255
|
], DateRangePicker.prototype, "showDatePicker", void 0);
|
229
|
-
|
230
|
-
action
|
231
|
-
__metadata("design:type", Object)
|
256
|
+
_ts_decorate([
|
257
|
+
action
|
232
258
|
], DateRangePicker.prototype, "handleRef", void 0);
|
233
|
-
|
259
|
+
_ts_decorate([
|
234
260
|
action,
|
235
|
-
|
236
|
-
|
237
|
-
|
261
|
+
_ts_metadata("design:type", Function),
|
262
|
+
_ts_metadata("design:paramtypes", [
|
263
|
+
Boolean
|
264
|
+
]),
|
265
|
+
_ts_metadata("design:returntype", void 0)
|
238
266
|
], DateRangePicker.prototype, "toggleShow", null);
|
239
|
-
DateRangePicker =
|
267
|
+
DateRangePicker = _ts_decorate([
|
240
268
|
observer,
|
241
|
-
|
269
|
+
_ts_metadata("design:type", Function),
|
270
|
+
_ts_metadata("design:paramtypes", [
|
271
|
+
typeof DateRangePickerProps === "undefined" ? Object : DateRangePickerProps
|
272
|
+
])
|
242
273
|
], DateRangePicker);
|
243
|
-
|
274
|
+
|
244
275
|
//# sourceMappingURL=date-range-picker.js.map
|