@servicetitan/form 14.3.0 → 16.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. package/dist/date-range-picker/date-range-picker.d.ts +47 -0
  2. package/dist/date-range-picker/date-range-picker.d.ts.map +1 -0
  3. package/dist/date-range-picker/date-range-picker.js +256 -0
  4. package/dist/date-range-picker/date-range-picker.js.map +1 -0
  5. package/dist/date-range-picker/date-range-picker.module.css +37 -0
  6. package/dist/date-range-picker/index.d.ts +2 -0
  7. package/dist/date-range-picker/index.d.ts.map +1 -0
  8. package/dist/date-range-picker/index.js +14 -0
  9. package/dist/date-range-picker/index.js.map +1 -0
  10. package/dist/demo/date-range-picker.d.ts +3 -0
  11. package/dist/demo/date-range-picker.d.ts.map +1 -0
  12. package/dist/demo/date-range-picker.js +17 -0
  13. package/dist/demo/date-range-picker.js.map +1 -0
  14. package/dist/demo/index.d.ts +4 -0
  15. package/dist/demo/index.d.ts.map +1 -1
  16. package/dist/demo/index.js +4 -0
  17. package/dist/demo/index.js.map +1 -1
  18. package/dist/demo/input-date-mask.d.ts +3 -0
  19. package/dist/demo/input-date-mask.d.ts.map +1 -0
  20. package/dist/demo/input-date-mask.js +17 -0
  21. package/dist/demo/input-date-mask.js.map +1 -0
  22. package/dist/demo/original-number-input.d.ts +3 -0
  23. package/dist/demo/original-number-input.d.ts.map +1 -0
  24. package/dist/demo/original-number-input.js +17 -0
  25. package/dist/demo/original-number-input.js.map +1 -0
  26. package/dist/demo/phone-number-input.d.ts +3 -0
  27. package/dist/demo/phone-number-input.d.ts.map +1 -0
  28. package/dist/demo/phone-number-input.js +8 -0
  29. package/dist/demo/phone-number-input.js.map +1 -0
  30. package/dist/index.d.ts +4 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/input-date-mask/index.d.ts +2 -0
  35. package/dist/input-date-mask/index.d.ts.map +1 -0
  36. package/dist/input-date-mask/index.js +14 -0
  37. package/dist/input-date-mask/index.js.map +1 -0
  38. package/dist/input-date-mask/input-date-mask.d.ts +14 -0
  39. package/dist/input-date-mask/input-date-mask.d.ts.map +1 -0
  40. package/dist/input-date-mask/input-date-mask.js +122 -0
  41. package/dist/input-date-mask/input-date-mask.js.map +1 -0
  42. package/dist/input-date-mask/input-date-mask.module.css +22 -0
  43. package/dist/original-number-input/index.d.ts +2 -0
  44. package/dist/original-number-input/index.d.ts.map +1 -0
  45. package/dist/original-number-input/index.js +14 -0
  46. package/dist/original-number-input/index.js.map +1 -0
  47. package/dist/original-number-input/ordinal-number-input.d.ts +22 -0
  48. package/dist/original-number-input/ordinal-number-input.d.ts.map +1 -0
  49. package/dist/original-number-input/ordinal-number-input.js +149 -0
  50. package/dist/original-number-input/ordinal-number-input.js.map +1 -0
  51. package/dist/phone-number-input/index.d.ts +2 -0
  52. package/dist/phone-number-input/index.d.ts.map +1 -0
  53. package/dist/phone-number-input/index.js +14 -0
  54. package/dist/phone-number-input/index.js.map +1 -0
  55. package/dist/phone-number-input/phone-number-input.d.ts +7 -0
  56. package/dist/phone-number-input/phone-number-input.d.ts.map +1 -0
  57. package/dist/phone-number-input/phone-number-input.js +26 -0
  58. package/dist/phone-number-input/phone-number-input.js.map +1 -0
  59. package/package.json +20 -13
  60. package/src/date-range-picker/date-range-picker.module.css +37 -0
  61. package/src/date-range-picker/date-range-picker.module.css.d.ts +7 -0
  62. package/src/date-range-picker/date-range-picker.tsx +297 -0
  63. package/src/date-range-picker/index.ts +1 -0
  64. package/src/demo/date-range-picker.tsx +33 -0
  65. package/src/demo/index.ts +4 -0
  66. package/src/demo/input-date-mask.tsx +30 -0
  67. package/src/demo/original-number-input.tsx +32 -0
  68. package/src/demo/phone-number-input.tsx +9 -0
  69. package/src/index.ts +4 -0
  70. package/src/input-date-mask/index.ts +1 -0
  71. package/src/input-date-mask/input-date-mask.module.css +22 -0
  72. package/src/input-date-mask/input-date-mask.module.css.d.ts +4 -0
  73. package/src/input-date-mask/input-date-mask.tsx +157 -0
  74. package/src/original-number-input/__tests__/ordinal-number-input.test.tsx +51 -0
  75. package/src/original-number-input/index.ts +1 -0
  76. package/src/original-number-input/ordinal-number-input.tsx +111 -0
  77. package/src/phone-number-input/index.ts +1 -0
  78. package/src/phone-number-input/phone-number-input.tsx +19 -0
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __rest = (this && this.__rest) || function (s, e) {
22
+ var t = {};
23
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
24
+ t[p] = s[p];
25
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
26
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
27
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
28
+ t[p[i]] = s[p[i]];
29
+ }
30
+ return t;
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.InputDateMask = void 0;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const react_1 = require("react");
39
+ const design_system_1 = require("@servicetitan/design-system");
40
+ const mobx_1 = require("mobx");
41
+ const mobx_react_1 = require("mobx-react");
42
+ const moment_1 = __importDefault(require("moment"));
43
+ const react_input_mask_1 = __importDefault(require("react-input-mask"));
44
+ const classnames_1 = __importDefault(require("classnames"));
45
+ const Styles = __importStar(require("./input-date-mask.module.css"));
46
+ const KEY_DEL = 46;
47
+ exports.InputDateMask = mobx_react_1.observer(({ className, maskChar = 'X', alwaysShowMask, shortLabel, value, onChange, 'qa-testing': qaTestingLocator, error, disabled, placeholder, dateFormat = 'MM/DD/YYYY', minDate, maxDate, }) => {
48
+ const state = mobx_react_1.useLocalStore(() => ({
49
+ maskValue: '',
50
+ setMask: mobx_1.action(function (mask) {
51
+ this.maskValue = mask;
52
+ }),
53
+ }));
54
+ const handleKeyDown = (evt) => {
55
+ if (evt.keyCode === KEY_DEL) {
56
+ onChange(undefined);
57
+ state.setMask('');
58
+ }
59
+ };
60
+ const handleChange = (event) => {
61
+ const value = event.target.value;
62
+ state.setMask(value);
63
+ if (event.type === 'focus' || event.type === 'blur') {
64
+ return;
65
+ }
66
+ if (isMaskValid(value)) {
67
+ onChange(parseDate(value));
68
+ }
69
+ else {
70
+ onChange(undefined);
71
+ }
72
+ };
73
+ react_1.useEffect(() => {
74
+ if (value === undefined && isMaskValid(state.maskValue)) {
75
+ state.setMask('');
76
+ }
77
+ }, [value]); // eslint-disable-line react-hooks/exhaustive-deps
78
+ const getMaskError = () => {
79
+ return value === undefined && state.maskValue !== '' && isMaskInvalid(state.maskValue);
80
+ };
81
+ const getValueError = () => {
82
+ return value !== undefined && !isDateInRange(value);
83
+ };
84
+ const formatDate = (date) => {
85
+ return date ? moment_1.default(date).format(dateFormat) : '';
86
+ };
87
+ const parseDate = (date) => {
88
+ return moment_1.default(date, dateFormat).toDate();
89
+ };
90
+ const isMaskValid = (mask) => {
91
+ return !mask.includes(maskChar) && isDateStringValid(mask);
92
+ };
93
+ const isMaskInvalid = (mask) => {
94
+ return !mask.includes(maskChar) && !isDateStringValid(mask);
95
+ };
96
+ const isDateStringValid = (date) => {
97
+ return moment_1.default(date, dateFormat).isValid() && isDateInRange(parseDate(date));
98
+ };
99
+ const isDateInRange = (date) => {
100
+ if (minDate && maxDate) {
101
+ return date >= minDate && date <= maxDate;
102
+ }
103
+ else if (minDate) {
104
+ return date >= minDate;
105
+ }
106
+ else if (maxDate) {
107
+ return date <= maxDate;
108
+ }
109
+ return true;
110
+ };
111
+ const mask = dateFormat.replace(/[MDY]/g, '9');
112
+ const realError = error || getMaskError() || getValueError();
113
+ const realPlaceholder = placeholder || mask.replace(/9/g, maskChar);
114
+ const classes = classnames_1.default(className, qaTestingLocator, Styles.input, {
115
+ [Styles.error]: realError,
116
+ });
117
+ return (jsx_runtime_1.jsx(react_input_mask_1.default, Object.assign({ mask: mask, maskChar: maskChar, onChange: handleChange, onKeyDown: handleKeyDown, alwaysShowMask: alwaysShowMask, value: formatDate(value) || state.maskValue }, { children: (_a) => {
118
+ var { size } = _a, props = __rest(_a, ["size"]);
119
+ return (jsx_runtime_1.jsx("div", { children: jsx_runtime_1.jsx(design_system_1.Input, Object.assign({}, props, { shortLabel: shortLabel, className: classes, small: true, fluid: true, error: realError, disabled: disabled, placeholder: realPlaceholder }), void 0) }, void 0));
120
+ } }), void 0));
121
+ });
122
+ //# sourceMappingURL=input-date-mask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-date-mask.js","sourceRoot":"","sources":["../../src/input-date-mask/input-date-mask.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ .input {
2
+ font-size: var(--typescale-2);
3
+ flex-grow: 1;
4
+ }
5
+
6
+ .input :global(.label) {
7
+ background-color: var(--color-neutral-30);
8
+ border: 1px solid var(--color-neutral-60);
9
+ font-size: var(--typescale-3);
10
+ color: var(--color-neutral-90);
11
+ }
12
+
13
+ .input.error :global(.label) {
14
+ transition: all 0.2s ease-in-out;
15
+ color: var(--color-red-500) !important;
16
+ border-color: var(--color-red-500) !important;
17
+ background-color: var(--color-red-100) !important;
18
+ }
19
+
20
+ .input.error input:focus {
21
+ border-left-color: transparent !important;
22
+ }
@@ -0,0 +1,2 @@
1
+ export * from './ordinal-number-input';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/original-number-input/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./ordinal-number-input"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/original-number-input/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAuC"}
@@ -0,0 +1,22 @@
1
+ import { InputProps } from '@servicetitan/design-system';
2
+ import { Component } from 'react';
3
+ export interface OrdinalNumberInputProps extends Omit<InputProps, 'onChange'> {
4
+ min: number;
5
+ max: number;
6
+ value?: number;
7
+ onChange?(value?: number): void;
8
+ }
9
+ export declare class OrdinalNumberInput extends Component<OrdinalNumberInputProps> {
10
+ hasFocus: boolean;
11
+ constructor(props: OrdinalNumberInputProps);
12
+ render(): JSX.Element;
13
+ private handleFocus;
14
+ private handleBlur;
15
+ private handleChange;
16
+ private getPlaceholder;
17
+ private getDisplayValue;
18
+ }
19
+ export declare function parseIntIntoRange(input: string, min: number, max: number): number | undefined;
20
+ export declare function ordinalString(num: number): string;
21
+ export declare function ordinalSuffix(num: number): string;
22
+ //# sourceMappingURL=ordinal-number-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordinal-number-input.d.ts","sourceRoot":"","sources":["../../src/original-number-input/ordinal-number-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAE/C,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,qBACa,kBAAmB,SAAQ,SAAS,CAAC,uBAAuB,CAAC;IAC1D,QAAQ,UAAS;gBAEjB,KAAK,EAAE,uBAAuB;IAK1C,MAAM;IAeE,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAAiC;IAE3D,OAAO,CAAC,YAAY,CAKlB;IAEF,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;CAO1B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,sBAWxE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBjD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBjD"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.ordinalSuffix = exports.ordinalString = exports.parseIntIntoRange = exports.OrdinalNumberInput = void 0;
24
+ const jsx_runtime_1 = require("react/jsx-runtime");
25
+ const design_system_1 = require("@servicetitan/design-system");
26
+ const mobx_1 = require("mobx");
27
+ const mobx_react_1 = require("mobx-react");
28
+ const react_1 = require("react");
29
+ let OrdinalNumberInput = class OrdinalNumberInput extends react_1.Component {
30
+ constructor(props) {
31
+ super(props);
32
+ Object.defineProperty(this, "hasFocus", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: false
37
+ });
38
+ Object.defineProperty(this, "handleFocus", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: () => (this.hasFocus = true)
43
+ });
44
+ Object.defineProperty(this, "handleBlur", {
45
+ enumerable: true,
46
+ configurable: true,
47
+ writable: true,
48
+ value: () => (this.hasFocus = false)
49
+ });
50
+ Object.defineProperty(this, "handleChange", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: (e) => {
55
+ const parsed = parseIntIntoRange(e.currentTarget.value, this.props.min, this.props.max);
56
+ if (this.props.onChange) {
57
+ this.props.onChange(parsed);
58
+ }
59
+ }
60
+ });
61
+ mobx_1.makeObservable(this);
62
+ }
63
+ render() {
64
+ const _a = this.props, { min, max, value, onChange } = _a, props = __rest(_a, ["min", "max", "value", "onChange"]);
65
+ return (jsx_runtime_1.jsx(design_system_1.Input, Object.assign({ placeholder: this.getPlaceholder() }, props, { value: this.getDisplayValue(), onFocus: this.handleFocus, onBlur: this.handleBlur, onChange: this.handleChange }), void 0));
66
+ }
67
+ getPlaceholder() {
68
+ return `${this.props.min}‒${this.props.max}`;
69
+ }
70
+ getDisplayValue() {
71
+ const value = this.props.value;
72
+ if (typeof value !== 'number') {
73
+ return '';
74
+ }
75
+ return this.hasFocus ? value.toString() : ordinalString(value);
76
+ }
77
+ };
78
+ __decorate([
79
+ mobx_1.observable,
80
+ __metadata("design:type", Object)
81
+ ], OrdinalNumberInput.prototype, "hasFocus", void 0);
82
+ __decorate([
83
+ mobx_1.action,
84
+ __metadata("design:type", Object)
85
+ ], OrdinalNumberInput.prototype, "handleFocus", void 0);
86
+ __decorate([
87
+ mobx_1.action,
88
+ __metadata("design:type", Object)
89
+ ], OrdinalNumberInput.prototype, "handleBlur", void 0);
90
+ OrdinalNumberInput = __decorate([
91
+ mobx_react_1.observer,
92
+ __metadata("design:paramtypes", [Object])
93
+ ], OrdinalNumberInput);
94
+ exports.OrdinalNumberInput = OrdinalNumberInput;
95
+ function parseIntIntoRange(input, min, max) {
96
+ let parsed = parseInt(input, 10);
97
+ if (Number.isNaN(parsed)) {
98
+ return undefined;
99
+ }
100
+ if (parsed < min) {
101
+ parsed = min;
102
+ }
103
+ else if (parsed > max) {
104
+ parsed = max;
105
+ }
106
+ return parsed;
107
+ }
108
+ exports.parseIntIntoRange = parseIntIntoRange;
109
+ function ordinalString(num) {
110
+ switch (num % 100) {
111
+ case 11:
112
+ case 12:
113
+ case 13:
114
+ return num.toString() + 'th';
115
+ default:
116
+ switch (num % 10) {
117
+ case 1:
118
+ return num.toString() + 'st';
119
+ case 2:
120
+ return num.toString() + 'nd';
121
+ case 3:
122
+ return num.toString() + 'rd';
123
+ default:
124
+ return num.toString() + 'th';
125
+ }
126
+ }
127
+ }
128
+ exports.ordinalString = ordinalString;
129
+ function ordinalSuffix(num) {
130
+ switch (num % 100) {
131
+ case 11:
132
+ case 12:
133
+ case 13:
134
+ return 'th';
135
+ default:
136
+ switch (num % 10) {
137
+ case 1:
138
+ return 'st';
139
+ case 2:
140
+ return 'nd';
141
+ case 3:
142
+ return 'rd';
143
+ default:
144
+ return 'th';
145
+ }
146
+ }
147
+ }
148
+ exports.ordinalSuffix = ordinalSuffix;
149
+ //# sourceMappingURL=ordinal-number-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordinal-number-input.js","sourceRoot":"","sources":["../../src/original-number-input/ordinal-number-input.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './phone-number-input';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/phone-number-input/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./phone-number-input"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/phone-number-input/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { FormInputProps } from '@servicetitan/design-system';
3
+ export interface PhoneNumberInputProps extends FormInputProps {
4
+ sip?: boolean;
5
+ }
6
+ export declare const PhoneNumberInput: import("react").ForwardRefExoticComponent<Pick<PhoneNumberInputProps, string | number> & import("react").RefAttributes<HTMLInputElement>>;
7
+ //# sourceMappingURL=phone-number-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-number-input.d.ts","sourceRoot":"","sources":["../../src/phone-number-input/phone-number-input.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAQ,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,2IAS5B,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.PhoneNumberInput = void 0;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const react_1 = require("react");
20
+ const react_input_mask_1 = __importDefault(require("react-input-mask"));
21
+ const design_system_1 = require("@servicetitan/design-system");
22
+ exports.PhoneNumberInput = react_1.forwardRef((_a, ref) => {
23
+ var { sip } = _a, props = __rest(_a, ["sip"]);
24
+ return sip ? (jsx_runtime_1.jsx(design_system_1.Form.Input, Object.assign({}, props, { ref: ref }), void 0)) : (jsx_runtime_1.jsx(react_input_mask_1.default, Object.assign({ maskChar: null, mask: "(999) 999-9999" }, props, { children: () => jsx_runtime_1.jsx(design_system_1.Form.Input, Object.assign({ ref: ref }, props), void 0) }), void 0));
25
+ });
26
+ //# sourceMappingURL=phone-number-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-number-input.js","sourceRoot":"","sources":["../../src/phone-number-input/phone-number-input.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,iCAAmC;AACnC,wEAAyC;AAEzC,+DAAmE;AAMtD,QAAA,gBAAgB,GAAG,kBAAU,CACtC,CAAC,EAAiB,EAAE,GAAG,EAAE,EAAE;QAA1B,EAAE,GAAG,OAAY,EAAP,KAAK,cAAf,OAAiB,CAAF;IACZ,OAAA,GAAG,CAAC,CAAC,CAAC,CACF,kBAAC,oBAAI,CAAC,KAAK,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,YAAI,CACtC,CAAC,CAAC,CAAC,CACA,kBAAC,0BAAS,kBAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,gBAAgB,IAAK,KAAK,cACrD,GAAG,EAAE,CAAC,kBAAC,oBAAI,CAAC,KAAK,kBAAC,GAAG,EAAE,GAAG,IAAM,KAAK,UAAI,YAClC,CACf,CAAA;CAAA,CACR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/form",
3
- "version": "14.3.0",
3
+ "version": "16.0.2",
4
4
  "description": "",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/form",
6
6
  "repository": {
@@ -15,38 +15,45 @@
15
15
  "src"
16
16
  ],
17
17
  "devDependencies": {
18
- "@servicetitan/confirm": "^14.3.0",
19
- "@servicetitan/culture": "^14.3.0",
20
- "@servicetitan/data-query": "^14.3.0",
21
- "@servicetitan/design-system": "~10.1.0",
22
- "@servicetitan/react-ioc": "^14.3.0",
23
- "@servicetitan/tokens": "~10.1.0",
18
+ "@servicetitan/confirm": "^16.0.2",
19
+ "@servicetitan/culture": "^16.0.2",
20
+ "@servicetitan/data-query": "^16.0.2",
21
+ "@servicetitan/design-system": "~10.2.1",
22
+ "@servicetitan/react-ioc": "^16.0.2",
23
+ "@servicetitan/tokens": "~10.2.1",
24
24
  "@types/debounce": "~1.2.0",
25
- "@types/react": "~17.0.19",
25
+ "@types/react": "~17.0.24",
26
26
  "@types/react-input-mask": "~2.0.5",
27
27
  "@types/uuid": "~8.3.1",
28
28
  "accounting": "~0.4.1",
29
29
  "formstate": "~2.0.0",
30
- "mobx": "~6.3.2",
30
+ "mobx": "~6.3.3",
31
31
  "mobx-react": "~7.2.0",
32
+ "moment": "~2.29.1",
32
33
  "react": "~17.0.2",
34
+ "react-dom": "~17.0.2",
33
35
  "resumablejs": "~1.0.2"
34
36
  },
35
37
  "peerDependencies": {
36
38
  "@servicetitan/confirm": "^14.0.0",
37
39
  "@servicetitan/culture": "^14.0.0",
38
40
  "@servicetitan/data-query": "^14.0.0",
39
- "@servicetitan/design-system": "~10.0.0",
41
+ "@servicetitan/design-system": "~10.2.1",
40
42
  "@servicetitan/react-ioc": "^14.0.0",
41
- "@servicetitan/tokens": "~10.0.0",
43
+ "@servicetitan/tokens": "~10.2.1",
42
44
  "accounting": "~0.4.1",
43
45
  "formstate": "~2.0.0",
44
- "mobx": "~6.3.2",
46
+ "mobx": "~6.3.3",
45
47
  "mobx-react": "~7.2.0",
48
+ "moment": "~2.29.1",
46
49
  "react": "~17.0.2",
50
+ "react-dom": "~17.0.2",
47
51
  "resumablejs": "~1.0.2"
48
52
  },
49
53
  "dependencies": {
54
+ "@progress/kendo-licensing": "~1.2.0",
55
+ "@progress/kendo-react-dateinputs": "~4.8.0",
56
+ "@progress/kendo-react-intl": "~4.8.0",
50
57
  "classnames": "~2.3.1",
51
58
  "debounce": "~1.2.1",
52
59
  "react-input-mask": "~2.0.4",
@@ -58,5 +65,5 @@
58
65
  "cli": {
59
66
  "webpack": false
60
67
  },
61
- "gitHead": "2df095623b213e1d63051aba216d4eaa95acf432"
68
+ "gitHead": "11160147e4fa327c9be543c0ba7b0a8d3ae70705"
62
69
  }
@@ -0,0 +1,37 @@
1
+ .date-range-picker {
2
+ position: relative;
3
+ display: flex;
4
+ min-width: 14em;
5
+ }
6
+
7
+ .date-range-picker .date-range-picker-kendo {
8
+ width: 0;
9
+ white-space: nowrap;
10
+ overflow: hidden;
11
+ }
12
+ .date-range-picker .date-range-picker-kendo :global(.k-textbox-container) {
13
+ padding-top: 0;
14
+ height: var(--spacing-4);
15
+ }
16
+
17
+ .date-range-picker .popup-center {
18
+ left: 50% !important;
19
+ transform: translateX(-50%);
20
+ }
21
+
22
+ .date-range-picker .popup-right {
23
+ left: auto !important;
24
+ right: 0;
25
+ }
26
+
27
+ .date-range-picker :global(.Input.InputDateMask.Input--small .InputAddon) {
28
+ padding-left: var(--spacing-1);
29
+ padding-right: var(--spacing-1);
30
+ }
31
+
32
+ .end-label {
33
+ margin: 0 var(--spacing-half);
34
+ color: var(--color-neutral-80);
35
+ font-size: var(--typescale-4);
36
+ width: var(--spacing-3);
37
+ }
@@ -0,0 +1,7 @@
1
+ export const __esModule: true;
2
+ export const dateRangePicker: string;
3
+ export const dateRangePickerKendo: string;
4
+ export const popupCenter: string;
5
+ export const popupRight: string;
6
+ export const endLabel: string;
7
+