@servicetitan/form 31.1.0 → 31.3.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.
Files changed (81) hide show
  1. package/dist/color-picker/color-palette.js +8 -9
  2. package/dist/color-picker/color-palette.js.map +1 -1
  3. package/dist/color-picker/color-picker.js +46 -9
  4. package/dist/color-picker/color-picker.js.map +1 -1
  5. package/dist/color-picker/color-picker.module.css.d.ts +4 -0
  6. package/dist/color-picker/index.js +1 -0
  7. package/dist/color-picker/index.js.map +1 -1
  8. package/dist/date-range-picker/date-range-picker.js +205 -174
  9. package/dist/date-range-picker/date-range-picker.js.map +1 -1
  10. package/dist/date-range-picker/date-range-picker.module.css.d.ts +8 -0
  11. package/dist/date-range-picker/index.js +1 -0
  12. package/dist/date-range-picker/index.js.map +1 -1
  13. package/dist/demo/color-picker.js +39 -4
  14. package/dist/demo/color-picker.js.map +1 -1
  15. package/dist/demo/date-range-picker.js +18 -2
  16. package/dist/demo/date-range-picker.js.map +1 -1
  17. package/dist/demo/file-uploader.js +94 -12
  18. package/dist/demo/file-uploader.js.map +1 -1
  19. package/dist/demo/index.js +1 -0
  20. package/dist/demo/index.js.map +1 -1
  21. package/dist/demo/input-date-mask.js +18 -2
  22. package/dist/demo/input-date-mask.js.map +1 -1
  23. package/dist/demo/number-input.js +121 -3
  24. package/dist/demo/number-input.js.map +1 -1
  25. package/dist/demo/original-number-input.js +18 -2
  26. package/dist/demo/original-number-input.js.map +1 -1
  27. package/dist/demo/phone-number-input.js +5 -1
  28. package/dist/demo/phone-number-input.js.map +1 -1
  29. package/dist/file-uploader/config.js +10 -1
  30. package/dist/file-uploader/config.js.map +1 -1
  31. package/dist/file-uploader/file-uploader.js +189 -192
  32. package/dist/file-uploader/file-uploader.js.map +1 -1
  33. package/dist/file-uploader/index.js +3 -1
  34. package/dist/file-uploader/index.js.map +1 -1
  35. package/dist/file-uploader/uploader.js +57 -41
  36. package/dist/file-uploader/uploader.js.map +1 -1
  37. package/dist/form-state-error-banner/form-state-error-banner.js +15 -5
  38. package/dist/form-state-error-banner/form-state-error-banner.js.map +1 -1
  39. package/dist/form-state-error-banner/index.js +1 -0
  40. package/dist/form-state-error-banner/index.js.map +1 -1
  41. package/dist/index.js +1 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/input-date-mask/index.js +1 -0
  44. package/dist/input-date-mask/index.js.map +1 -1
  45. package/dist/input-date-mask/input-date-mask.js +47 -28
  46. package/dist/input-date-mask/input-date-mask.js.map +1 -1
  47. package/dist/input-date-mask/input-date-mask.module.css.d.ts +4 -0
  48. package/dist/label/index.js +1 -0
  49. package/dist/label/index.js.map +1 -1
  50. package/dist/label/label.js +29 -1
  51. package/dist/label/label.js.map +1 -1
  52. package/dist/label/label.module.css.d.ts +7 -0
  53. package/dist/masked-input.js +17 -4
  54. package/dist/masked-input.js.map +1 -1
  55. package/dist/number-input/common-interfaces.js +2 -1
  56. package/dist/number-input/common-interfaces.js.map +1 -1
  57. package/dist/number-input/get-formatted-string.js +2 -3
  58. package/dist/number-input/get-formatted-string.js.map +1 -1
  59. package/dist/number-input/index.js +1 -0
  60. package/dist/number-input/index.js.map +1 -1
  61. package/dist/number-input/number-input.js +53 -42
  62. package/dist/number-input/number-input.js.map +1 -1
  63. package/dist/number-input/process-value.js +10 -16
  64. package/dist/number-input/process-value.js.map +1 -1
  65. package/dist/original-number-input/index.js +1 -0
  66. package/dist/original-number-input/index.js.map +1 -1
  67. package/dist/original-number-input/ordinal-number-input.js +54 -59
  68. package/dist/original-number-input/ordinal-number-input.js.map +1 -1
  69. package/dist/phone-number-input/index.js +1 -0
  70. package/dist/phone-number-input/index.js.map +1 -1
  71. package/dist/phone-number-input/phone-number-input.js +13 -1
  72. package/dist/phone-number-input/phone-number-input.js.map +1 -1
  73. package/package.json +13 -13
  74. package/dist/form.stories.js +0 -20
  75. package/dist/form.stories.js.map +0 -1
  76. package/dist/number-input/__tests__/get-formatted-string.test.js +0 -41
  77. package/dist/number-input/__tests__/get-formatted-string.test.js.map +0 -1
  78. package/dist/number-input/__tests__/process-value.test.js +0 -283
  79. package/dist/number-input/__tests__/process-value.test.js.map +0 -1
  80. package/dist/original-number-input/__tests__/ordinal-number-input.test.js +0 -51
  81. 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
- .flat()
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,"file":"color-palette.js","sourceRoot":"","sources":["../../src/color-picker/color-palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB;QACI,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;KACxB;IACD;QACI,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;KACxB;IACD;QACI,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;KACxB;IACD;QACI,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,eAAe;KACzB;IACD;QACI,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,eAAe;KACzB;CACJ;KACI,IAAI,EAAE;KACN,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC"}
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, } from '@servicetitan/design-system';
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
- }, [handleClickOutside]);
20
- const handleTriggerClick = () => {
21
- setIsOpen(isOpen => !isOpen);
19
+ }, [
20
+ handleClickOutside
21
+ ]);
22
+ const handleTriggerClick = ()=>{
23
+ setIsOpen((isOpen)=>!isOpen);
22
24
  };
23
- return (_jsx("div", { ref: ref, className: "d-f", children: _jsxs(Popover, { trigger: _jsx("div", { style: { background: value }, onClick: handleTriggerClick, className: Styles.colorPicker }), open: isOpen, direction: "rb", popoverContentClassName: "p-3", className: Styles.colorPickerPopover, children: [_jsx(BodyText, { size: "medium", className: "m-b-1", children: label }), _jsx(Card, { padding: "thin", children: _jsx(AnvilColorPicker, { colors: colors, value: value === null || value === void 0 ? void 0 : value.toLowerCase(), onChange: onChange }) }), Preview && _jsx(Preview, { color: value })] }) }));
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,"file":"color-picker.js","sourceRoot":"","sources":["../../src/color-picker/color-picker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAEpF,OAAO,EACH,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAW,IAAI,gBAAgB,GAClC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAcpD,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAC9C,KAAK,EACL,MAAM,GAAG,YAAY,EACrB,KAAK,EACL,OAAO,EAAE,OAAO,EAChB,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,KAAY,EAAE,EAAE;QACpD,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;YAC7D,SAAS,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACX,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAE3D,OAAO,GAAG,EAAE;YACR,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAClE,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO,CACH,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,KAAK,YAC1B,MAAC,OAAO,IACJ,OAAO,EACH,cACI,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAC5B,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,CAAC,WAAW,GAC/B,EAEN,IAAI,EAAE,MAAM,EACZ,SAAS,EAAC,IAAI,EACd,uBAAuB,EAAC,KAAK,EAC7B,SAAS,EAAE,MAAM,CAAC,kBAAkB,aAEpC,KAAC,QAAQ,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,YACpC,KAAK,GACC,EACX,KAAC,IAAI,IAAC,OAAO,EAAC,MAAM,YAChB,KAAC,gBAAgB,IACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,EAAE,EAC3B,QAAQ,EAAE,QAAQ,GACpB,GACC,EACN,OAAO,IAAI,KAAC,OAAO,IAAC,KAAK,EAAE,KAAK,GAAI,IAC/B,GACR,CACT,CAAC;AACN,CAAC,CAAC"}
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"}
@@ -0,0 +1,4 @@
1
+ export const __esModule: true;
2
+ export const colorPicker: string;
3
+ export const colorPickerPopover: string;
4
+
@@ -1,3 +1,4 @@
1
1
  export * from './color-picker';
2
2
  export * from './color-palette';
3
+
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/color-picker/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
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
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
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 (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;
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
- var __metadata = (this && this.__metadata) || function (k, v) {
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, } from '@progress/kendo-react-dateinputs';
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
- let DateRangePicker = class DateRangePicker extends Component {
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, } = this.props;
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
- return (_jsxs("div", { className: classnames(Styles.dateRangePicker, className), ref: this.handleRef, onClick: this.handleClickDateRangePicker, children: [_jsx(DateRangePickerKendo, { className: Styles.dateRangePickerKendo, calendarSettings: {
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
- }, popupSettings: {
66
+ cell: cellComponent
67
+ },
68
+ popupSettings: {
187
69
  appendTo: this.wrapElem,
188
- className: horizontalAlignClass,
189
- }, startDateInputSettings: {
190
- tabIndex: -1,
191
- }, endDateInputSettings: {
192
- tabIndex: -1,
193
- }, show: this.showDatePicker, value: { start: (_a = value.from) !== null && _a !== void 0 ? _a : null, end: (_b = value.to) !== null && _b !== void 0 ? _b : null }, onChange: this.handleChange, min: minDate, max: maxDate, calendar: calendarComponent }), _jsxs(Stack, { alignItems: "center", className: "flex-grow-1", children: [_jsx(Stack.Item, { fill: true, children: _jsx(InputDateMask, { shortLabel: _jsx(Icon, { name: "today", className: classnames(Styles.icon, `${qaTestingLocator}-icon-from`), onClick: this.handleClickIcon }), placeholder: placeHolder, value: value.from, onChange: this.handleFromChange, onBlur: this.handleFromChange, error: hasError, disabled: disabled, "qa-testing": `${qaTestingLocator}-from`, dateFormat: inputFormat, minDate: minDate, maxDate: this.maxFromDate, small: small, maskChar: maskChar }) }), _jsx(Icon, { name: "arrow_forward", className: Styles.endLabel }), _jsx(Stack.Item, { fill: true, children: _jsx(InputDateMask, { shortLabel: _jsx(Icon, { name: "today", className: classnames(Styles.icon, `${qaTestingLocator}-icon-to`), onClick: this.handleClickIcon }), placeholder: placeHolder, value: value.to, onChange: this.handleToChange, onBlur: this.handleToChange, error: hasError, disabled: disabled, "qa-testing": `${qaTestingLocator}-to`, dateFormat: inputFormat, minDate: this.minToDate, maxDate: maxDate, small: small, maskChar: maskChar }) })] }), _jsx("input", { hidden: true, "qa-testing": qaTestingLocator, onChange: this.handleHiddenInputChange })] }));
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
- __decorate([
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
- __metadata("design:type", Object)
251
+ _ts_metadata("design:type", Object)
224
252
  ], DateRangePicker.prototype, "wrapElem", void 0);
225
- __decorate([
226
- observable,
227
- __metadata("design:type", Object)
253
+ _ts_decorate([
254
+ observable
228
255
  ], DateRangePicker.prototype, "showDatePicker", void 0);
229
- __decorate([
230
- action,
231
- __metadata("design:type", Object)
256
+ _ts_decorate([
257
+ action
232
258
  ], DateRangePicker.prototype, "handleRef", void 0);
233
- __decorate([
259
+ _ts_decorate([
234
260
  action,
235
- __metadata("design:type", Function),
236
- __metadata("design:paramtypes", [Boolean]),
237
- __metadata("design:returntype", void 0)
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 = __decorate([
267
+ DateRangePicker = _ts_decorate([
240
268
  observer,
241
- __metadata("design:paramtypes", [Object])
269
+ _ts_metadata("design:type", Function),
270
+ _ts_metadata("design:paramtypes", [
271
+ typeof DateRangePickerProps === "undefined" ? Object : DateRangePickerProps
272
+ ])
242
273
  ], DateRangePicker);
243
- export { DateRangePicker };
274
+
244
275
  //# sourceMappingURL=date-range-picker.js.map