@vendorflow/components 2.0.99 → 2.1.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 (62) hide show
  1. package/lib/TempHooks.d.ts +9 -0
  2. package/lib/TempHooks.js +25 -0
  3. package/lib/components/InfiniteScroll/InfiniteScroll.d.ts +16 -0
  4. package/lib/components/InfiniteScroll/InfiniteScroll.js +159 -0
  5. package/lib/components/InfiniteScroll/index.d.ts +1 -0
  6. package/lib/components/InfiniteScroll/index.js +8 -0
  7. package/lib/components/blueprint/InputGroup/InputGroup.d.ts +20 -0
  8. package/lib/components/blueprint/InputGroup/InputGroup.js +13 -0
  9. package/lib/components/blueprint/InputGroup/InputGroup.story.d.ts +2 -0
  10. package/lib/components/blueprint/InputGroup/InputGroup.story.js +11 -0
  11. package/lib/components/blueprint/InputGroup/index.d.ts +1 -0
  12. package/lib/components/blueprint/InputGroup/index.js +4 -0
  13. package/lib/components/blueprint/InputSelect/InputSelect.d.ts +51 -0
  14. package/lib/components/blueprint/InputSelect/InputSelect.js +98 -0
  15. package/lib/components/blueprint/InputSelect/InputSelect.story.d.ts +3 -0
  16. package/lib/components/blueprint/InputSelect/InputSelect.story.js +19 -0
  17. package/lib/components/blueprint/InputSelect/index.d.ts +1 -0
  18. package/lib/components/blueprint/InputSelect/index.js +4 -0
  19. package/lib/components/blueprint/InputTime/InputTime.d.ts +24 -0
  20. package/lib/components/blueprint/InputTime/InputTime.js +28 -0
  21. package/lib/components/blueprint/InputTime/InputTime.story.d.ts +2 -0
  22. package/lib/components/blueprint/InputTime/InputTime.story.js +11 -0
  23. package/lib/components/blueprint/InputTime/index.d.ts +1 -0
  24. package/lib/components/blueprint/InputTime/index.js +4 -0
  25. package/lib/components/material-ui/ChatInterface/ActionsMenu.d.ts +4 -0
  26. package/lib/components/material-ui/ChatInterface/ActionsMenu.js +37 -0
  27. package/lib/components/material-ui/ChatInterface/ChatInterface.d.ts +33 -0
  28. package/lib/components/material-ui/ChatInterface/ChatInterface.js +109 -0
  29. package/lib/components/material-ui/ChatInterface/ChatInterface.story.d.ts +1 -0
  30. package/lib/components/material-ui/ChatInterface/ChatInterface.story.js +134 -0
  31. package/lib/components/material-ui/ChatInterface/MessageInput.d.ts +9 -0
  32. package/lib/components/material-ui/ChatInterface/MessageInput.js +53 -0
  33. package/lib/components/material-ui/ChatInterface/MessageItem.d.ts +8 -0
  34. package/lib/components/material-ui/ChatInterface/MessageItem.js +71 -0
  35. package/lib/components/material-ui/ChatInterface/MessageThread.d.ts +6 -0
  36. package/lib/components/material-ui/ChatInterface/MessageThread.js +119 -0
  37. package/lib/components/material-ui/ChatInterface/index.d.ts +1 -0
  38. package/lib/components/material-ui/ChatInterface/index.js +8 -0
  39. package/lib/components/material-ui/ColorPicker/styles.d.ts +1 -1
  40. package/lib/components/material-ui/DataTable/AppliedFilters.d.ts +12 -0
  41. package/lib/components/material-ui/DataTable/AppliedFilters.js +26 -0
  42. package/lib/components/material-ui/DataTable/GlobalSearchFilter.d.ts +10 -0
  43. package/lib/components/material-ui/DataTable/GlobalSearchFilter.js +49 -0
  44. package/lib/components/material-ui/DataTable/IndeterminateCheckbox.d.ts +4 -0
  45. package/lib/components/material-ui/DataTable/IndeterminateCheckbox.js +65 -0
  46. package/lib/components/material-ui/DataTable/SortIndicator.d.ts +10 -0
  47. package/lib/components/material-ui/DataTable/SortIndicator.js +33 -0
  48. package/lib/components/material-ui/DataTable/Toolbar.d.ts +24 -0
  49. package/lib/components/material-ui/DataTable/Toolbar.js +63 -0
  50. package/lib/components/material-ui/DataTable/Utils.d.ts +25 -0
  51. package/lib/components/material-ui/DataTable/Utils.js +119 -0
  52. package/lib/components/material-ui/DataTable/ViewColumnTool.d.ts +11 -0
  53. package/lib/components/material-ui/DataTable/ViewColumnTool.js +76 -0
  54. package/lib/components/material-ui/ErrorBoundary/ErrorBoundary.d.ts +7 -0
  55. package/lib/components/material-ui/ErrorBoundary/ErrorBoundary.js +20 -0
  56. package/lib/components/material-ui/ErrorBoundary/index.d.ts +1 -0
  57. package/lib/components/material-ui/ErrorBoundary/index.js +8 -0
  58. package/lib/components/material-ui/InputSearchDropdown/InputSearchDropdown.js +44 -35
  59. package/lib/components/material-ui/InputSearchDropdown/InputSearchDropdown.story.js +1 -1
  60. package/lib/services/Select.service.d.ts +5 -0
  61. package/lib/services/Select.service.js +67 -0
  62. package/package.json +1 -1
@@ -55,19 +55,30 @@ var useStyles = (0, styles_1.makeStyles)({
55
55
  },
56
56
  });
57
57
  function InputSearchDropdown(props) {
58
- var mRef = props.mRef, _a = props.autoHighlight, autoHighlight = _a === void 0 ? true : _a, _b = props.clearOnEscape, clearOnEscape = _b === void 0 ? true : _b, count = props.count, disableFilter = props.disableFilter, error = props.error, errors = props.errors, filterOptions = props.filterOptions, _c = props.filterSelectedOptions, filterSelectedOptions = _c === void 0 ? true : _c, getKey = props.getKey, label = props.label, helperText = props.helperText, name = props.name, onChange = props.onChange, _d = props.openOnFocus, openOnFocus = _d === void 0 ? true : _d, _e = props.renderInput, renderInput = _e === void 0 ? null : _e, renderTags = props.renderTags, _f = props.selectOnFocus, selectOnFocus = _f === void 0 ? true : _f, _g = props.variant, variant = _g === void 0 ? 'outlined' : _g, multiple = props.multiple, max = props.max, autoFocus = props.autoFocus, _h = props.size, size = _h === void 0 ? 'small' : _h, restOfProps = __rest(props, ["mRef", "autoHighlight", "clearOnEscape", "count", "disableFilter", "error", "errors", "filterOptions", "filterSelectedOptions", "getKey", "label", "helperText", "name", "onChange", "openOnFocus", "renderInput", "renderTags", "selectOnFocus", "variant", "multiple", "max", "autoFocus", "size"]);
58
+ var mRef = props.mRef, _a = props.autoHighlight, autoHighlight = _a === void 0 ? true : _a, _b = props.clearOnEscape, clearOnEscape = _b === void 0 ? true : _b, count = props.count, disableFilter = props.disableFilter, error = props.error, errors = props.errors, filterOptions = props.filterOptions, _c = props.filterSelectedOptions, filterSelectedOptions = _c === void 0 ? true : _c, getKey = props.getKey, label = props.label, helperText = props.helperText, name = props.name, onChange = props.onChange, _d = props.openOnFocus, openOnFocus = _d === void 0 ? true : _d, _e = props.renderInput, renderInput = _e === void 0 ? null : _e, renderOption = props.renderOption, renderTags = props.renderTags, _f = props.selectOnFocus, selectOnFocus = _f === void 0 ? true : _f, _g = props.variant, variant = _g === void 0 ? 'outlined' : _g, multiple = props.multiple, max = props.max, autoFocus = props.autoFocus, _h = props.size, size = _h === void 0 ? 'small' : _h, restOfProps = __rest(props, ["mRef", "autoHighlight", "clearOnEscape", "count", "disableFilter", "error", "errors", "filterOptions", "filterSelectedOptions", "getKey", "label", "helperText", "name", "onChange", "openOnFocus", "renderInput", "renderOption", "renderTags", "selectOnFocus", "variant", "multiple", "max", "autoFocus", "size"]);
59
59
  var id = (0, react_2.useRef)((0, nanoid_1.nanoid)());
60
60
  var _j = __read((0, react_2.useState)(null), 2), value = _j[0], setValue = _j[1];
61
61
  var mainStyles = useStyles();
62
- (0, react_2.useEffect)(function () {
63
- if (props.value !== value) {
64
- if (!props.value && props.multiple) {
65
- setValue([]);
66
- }
67
- setValue(props.value);
62
+ var getOptionLabel = (0, react_2.useCallback)(function (option) {
63
+ if (typeof option === 'string') {
64
+ return option;
68
65
  }
69
- }, [props.value]); // eslint-disable-line
70
- function getValue() {
66
+ if (!props.getOptionLabel) {
67
+ throw new Error('You must provide the getOptionLabel prop to the InputSearchDropdown component');
68
+ }
69
+ return props.getOptionLabel(option);
70
+ }, [props.getOptionLabel]);
71
+ var getKeySuffix = (0, react_2.useCallback)(function (option) {
72
+ return typeof option === 'string' ? option : getKey !== undefined ? getKey(option) : getOptionLabel(option);
73
+ }, [getOptionLabel, getKey]);
74
+ var getCount = (0, react_2.useCallback)(function () {
75
+ var _a;
76
+ if (count !== undefined) {
77
+ return count;
78
+ }
79
+ return ((_a = value) === null || _a === void 0 ? void 0 : _a.length) || 0;
80
+ }, [count, value]);
81
+ var getValue = (0, react_2.useCallback)(function () {
71
82
  if (multiple && value === null) {
72
83
  return [];
73
84
  }
@@ -78,7 +89,28 @@ function InputSearchDropdown(props) {
78
89
  return value.length ? value[0] : null;
79
90
  }
80
91
  return value;
81
- }
92
+ }, [multiple, value]);
93
+ var renderDefaultOption = (0, react_2.useCallback)(function (props, option) {
94
+ return ((0, react_1.jsx)("li", __assign({}, props, { key: "option-" + getKeySuffix(option) }), getOptionLabel(option)));
95
+ }, [getKeySuffix, getOptionLabel]);
96
+ var renderDefaultTags = (0, react_2.useCallback)(function (values, getTagProps) {
97
+ return values.map(function (value, index) {
98
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
99
+ var _a = getTagProps({ index: index }), key = _a.key, tagProps = __rest(_a, ["key"]);
100
+ return ((0, react_1.jsx)(material_1.Chip, __assign({ key: "chip-" + getKeySuffix(value), css: (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-color: ", ";\n "], ["\n border-color: ", ";\n "])), errors && errors[index] ? 'red' : 'initial'), variant: "outlined", label: getOptionLabel(value), size: "small" }, tagProps)));
101
+ });
102
+ }, [getKeySuffix, getOptionLabel, errors]);
103
+ var renderDefaultInput = (0, react_2.useCallback)(function (params) {
104
+ return ((0, react_1.jsx)(material_1.TextField, __assign({}, params, { error: error || !!(errors === null || errors === void 0 ? void 0 : errors.length), label: label, variant: variant, autoFocus: autoFocus })));
105
+ }, [error, errors, label, variant, autoFocus]);
106
+ (0, react_2.useEffect)(function () {
107
+ if (props.value !== value) {
108
+ if (!props.value && props.multiple) {
109
+ setValue([]);
110
+ }
111
+ setValue(props.value);
112
+ }
113
+ }, [props.value]); // eslint-disable-line
82
114
  function handleOnChange(_, newValue, reason) {
83
115
  // logic that prevents the input from exceeding its limit
84
116
  if (multiple && max) {
@@ -98,34 +130,11 @@ function InputSearchDropdown(props) {
98
130
  function handleOptionFilter() {
99
131
  return (0, material_1.createFilterOptions)({
100
132
  matchFrom: 'any',
101
- stringify: props.getOptionLabel,
102
- });
103
- }
104
- function renderDefaultInput(params) {
105
- return ((0, react_1.jsx)(material_1.TextField, __assign({}, params, { error: error || !!(errors === null || errors === void 0 ? void 0 : errors.length), label: label, variant: variant, autoFocus: autoFocus })));
106
- }
107
- function renderDefaultTags(values, getTagProps) {
108
- return values.map(function (value, index) {
109
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
110
- var _a = getTagProps({ index: index }), key = _a.key, tagProps = __rest(_a, ["key"]);
111
- return ((0, react_1.jsx)(material_1.Chip, __assign({ key: "chip-" + (typeof value === 'string'
112
- ? value
113
- : getKey !== undefined
114
- ? getKey(value)
115
- : props.getOptionLabel !== undefined
116
- ? props.getOptionLabel(value)
117
- : JSON.stringify(value)), css: (0, react_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-color: ", ";\n "], ["\n border-color: ", ";\n "])), errors && errors[index] ? 'red' : 'initial'), variant: "outlined", label: props.getOptionLabel ? props.getOptionLabel(value) : value, size: "small" }, tagProps)));
133
+ stringify: getOptionLabel,
118
134
  });
119
135
  }
120
- function getCount() {
121
- var _a;
122
- if (count !== undefined) {
123
- return count;
124
- }
125
- return ((_a = value) === null || _a === void 0 ? void 0 : _a.length) || 0;
126
- }
127
136
  return ((0, react_1.jsx)("div", null,
128
- (0, react_1.jsx)(material_1.Autocomplete, __assign({ id: id.current, css: (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n // TODO: this is due to a bug in MaterialUI clear up when resolve -- should file a PR ticket\n &&& .MuiInputBase-root {\n padding-right: 39px;\n }\n "], ["\n // TODO: this is due to a bug in MaterialUI clear up when resolve -- should file a PR ticket\n &&& .MuiInputBase-root {\n padding-right: 39px;\n }\n "]))), autoHighlight: autoHighlight, clearOnEscape: clearOnEscape, filterOptions: !disableFilter ? filterOptions || handleOptionFilter() : function (options) { return options; }, filterSelectedOptions: filterSelectedOptions, onChange: handleOnChange, openOnFocus: openOnFocus, renderInput: renderInput || renderDefaultInput, renderTags: renderTags || renderDefaultTags, selectOnFocus: selectOnFocus, multiple: multiple, classes: mainStyles, size: size }, restOfProps, { value: getValue(), ref: mRef })),
137
+ (0, react_1.jsx)(material_1.Autocomplete, __assign({ id: id.current, css: (0, react_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n // TODO: this is due to a bug in MaterialUI clear up when resolve -- should file a PR ticket\n &&& .MuiInputBase-root {\n padding-right: 39px;\n }\n "], ["\n // TODO: this is due to a bug in MaterialUI clear up when resolve -- should file a PR ticket\n &&& .MuiInputBase-root {\n padding-right: 39px;\n }\n "]))), autoHighlight: autoHighlight, clearOnEscape: clearOnEscape, filterOptions: !disableFilter ? filterOptions || handleOptionFilter() : function (options) { return options; }, filterSelectedOptions: filterSelectedOptions, onChange: handleOnChange, openOnFocus: openOnFocus, renderInput: renderInput || renderDefaultInput, renderOption: renderOption ? renderOption : renderDefaultOption, renderTags: renderTags || renderDefaultTags, selectOnFocus: selectOnFocus, multiple: multiple, classes: mainStyles, size: size }, restOfProps, { value: getValue(), ref: mRef })),
129
138
  (0, react_1.jsx)("div", null,
130
139
  helperText && ((0, react_1.jsx)(material_1.Typography, { css: (0, react_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n float: left;\n margin-left: 14px;\n margin-top: 4px;\n color: ", ";\n width: calc(100% - 82px);\n "], ["\n float: left;\n margin-left: 14px;\n margin-top: 4px;\n color: ", ";\n width: calc(100% - 82px);\n "])), error ? 'red' : 'rgba(0, 0, 0, 0.54)'), variant: "caption" }, helperText)),
131
140
  multiple && max && ((0, react_1.jsx)(material_1.Typography, { css: (0, react_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n font-size: 0.75rem;\n text-align: right;\n float: right;\n margin-left: 14px;\n margin-right: 14px;\n margin-top: 4px;\n color: ", ";\n width: 40px;\n "], ["\n font-size: 0.75rem;\n text-align: right;\n float: right;\n margin-left: 14px;\n margin-right: 14px;\n margin-top: 4px;\n color: ", ";\n width: 40px;\n "])), error ? 'red' : 'rgba(0, 0, 0, 0.54)'), variant: "subtitle1" },
@@ -61,6 +61,6 @@ var InputSearchDropdownSingle = function () {
61
61
  exports.InputSearchDropdownSingle = InputSearchDropdownSingle;
62
62
  var InputSearchDropdownMulti = function () {
63
63
  var _a = __read((0, react_1.useState)([]), 2), value = _a[0], setValue = _a[1];
64
- return (react_1.default.createElement(InputSearchDropdown_1.default, { freeSolo: true, multiple: true, name: "footballPlayer", label: "Football Player", options: options, getOptionLabel: getOptionLabel, onChange: function (evt) { return setValue(evt.target.value); }, errors: errors, value: value, helperText: "hello", max: 10 }));
64
+ return (react_1.default.createElement(InputSearchDropdown_1.default, { freeSolo: true, multiple: true, name: "footballPlayer", label: "Football Player", options: options, getKey: getKey, getOptionLabel: getOptionLabel, onChange: function (evt) { return setValue(evt.target.value); }, errors: errors, value: value, helperText: "hello", max: 10 }));
65
65
  };
66
66
  exports.InputSearchDropdownMulti = InputSearchDropdownMulti;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { IItemRendererProps } from '@blueprintjs/select';
3
+ import { UniqueKey, InputValueRender } from 'types/Component.types';
4
+ export declare function getFilter<T>(inputValueRenderer: InputValueRender<T>): (query: string, item: T, index?: number | undefined, exactMatch?: boolean | undefined) => boolean;
5
+ export declare function getItemRenderer<T>(uniqueKey: UniqueKey<T>, inputValueRenderer: InputValueRender<T>, isItemSelected?: (item: T) => boolean): (item: T, { handleClick, modifiers, query }: IItemRendererProps) => JSX.Element | null;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var core_1 = require("@blueprintjs/core");
8
+ function escapeRegExpChars(text) {
9
+ return text.replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1');
10
+ }
11
+ function highlightText(text, query) {
12
+ var lastIndex = 0;
13
+ var words = query
14
+ .split(/\s+/)
15
+ .filter(function (word) { return word.length > 0; })
16
+ .map(escapeRegExpChars);
17
+ if (words.length === 0) {
18
+ return [text];
19
+ }
20
+ var regexp = new RegExp(words.join('|'), 'gi');
21
+ var tokens = [];
22
+ while (true) {
23
+ var match = regexp.exec(text);
24
+ if (!match) {
25
+ break;
26
+ }
27
+ var length_1 = match[0].length;
28
+ var before = text.slice(lastIndex, regexp.lastIndex - length_1);
29
+ if (before.length > 0) {
30
+ tokens.push(before);
31
+ }
32
+ lastIndex = regexp.lastIndex;
33
+ tokens.push(react_1.default.createElement("strong", { key: lastIndex }, match[0]));
34
+ }
35
+ var rest = text.slice(lastIndex);
36
+ if (rest.length > 0) {
37
+ tokens.push(rest);
38
+ }
39
+ return tokens;
40
+ }
41
+ function getFilter(inputValueRenderer) {
42
+ return function filterItems(query, item, index, exactMatch) {
43
+ return exactMatch
44
+ ? inputValueRenderer(item).toLowerCase() === query.toLowerCase()
45
+ : inputValueRenderer(item).toLowerCase().includes(query.toLowerCase());
46
+ };
47
+ }
48
+ exports.getFilter = getFilter;
49
+ function getItemRenderer(uniqueKey, inputValueRenderer, isItemSelected) {
50
+ return function renderItem(item, _a) {
51
+ var handleClick = _a.handleClick, modifiers = _a.modifiers, query = _a.query;
52
+ if (!modifiers.matchesPredicate) {
53
+ return null;
54
+ }
55
+ var text = inputValueRenderer(item);
56
+ var key = null;
57
+ if (typeof uniqueKey === 'string') {
58
+ // @ts-ignore
59
+ key = item[uniqueKey];
60
+ }
61
+ else if (typeof uniqueKey === 'function') {
62
+ key = uniqueKey(item);
63
+ }
64
+ return (react_1.default.createElement(core_1.MenuItem, { active: modifiers.active, icon: isItemSelected && isItemSelected(item) ? 'tick' : 'blank', disabled: modifiers.disabled, label: undefined, key: key, onClick: handleClick, text: highlightText(text, query) }));
65
+ };
66
+ }
67
+ exports.getItemRenderer = getItemRenderer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vendorflow/components",
3
- "version": "2.0.99",
3
+ "version": "2.1.0",
4
4
  "description": "React components for vendorflow",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",