@tripian/react 8.0.2 → 8.0.4

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.
@@ -8,6 +8,7 @@ interface IPoiSearchAutoComplete {
8
8
  onInputChange?: (input: string) => void;
9
9
  onCreateOption: (input: string) => void;
10
10
  placeHolder?: string;
11
+ isDisabled?: boolean;
11
12
  }
12
13
  declare const PoiSearchAutoComplete: React.FC<IPoiSearchAutoComplete>;
13
14
  export default PoiSearchAutoComplete;
@@ -1,11 +1,10 @@
1
1
  import React from 'react';
2
- import { InputActionMeta } from 'react-select';
3
2
  import { RSelectOption } from '../RSelect/RSelect';
4
3
  interface IRSelectMultiCustom {
5
4
  options: RSelectOption[];
6
5
  selectedOptionValues: string[];
7
6
  onSelectedOptionChange: (selectedOptions: RSelectOption[]) => void;
8
- onInputChange?: (newValue: string, actionMeta: InputActionMeta) => void;
7
+ isSelectAll: boolean;
9
8
  placeHolder?: string;
10
9
  disabled?: boolean;
11
10
  onFocus?: () => void;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { InputActionMeta } from 'react-select';
3
+ import { RSelectOption } from '../RSelect/RSelect';
4
+ interface IRSelectMultiCustom {
5
+ options: RSelectOption[];
6
+ selectedOptionValues: string[];
7
+ onSelectedOptionChange: (selectedOptions: RSelectOption[]) => void;
8
+ onInputChange?: (newValue: string, actionMeta: InputActionMeta) => void;
9
+ placeHolder?: string;
10
+ disabled?: boolean;
11
+ onFocus?: () => void;
12
+ onBlur?: () => void;
13
+ }
14
+ declare const RSelectMultiCustom: React.FC<IRSelectMultiCustom>;
15
+ export default RSelectMultiCustom;
package/index.js CHANGED
@@ -78399,7 +78399,7 @@ var PoiCategories = function (_a) {
78399
78399
  var selectedOptionValues = selectedPoiCategoryIndexes.map(function (x) { return x.toString(); });
78400
78400
  var callBackRSelect = function (selectedOptions) { return setSelectedPoiCategoryIndexes(selectedOptions.map(function (selectedOption) { return Number(selectedOption.value); })); };
78401
78401
  return (react_1.default.createElement("div", { className: PoiCategories_scss_1.default.poiCategories },
78402
- react_1.default.createElement(RSelectMultiCustom_1.default, { options: poiCategoryOptions, selectedOptionValues: selectedOptionValues, onSelectedOptionChange: callBackRSelect, placeHolder: "Select Category" })));
78402
+ react_1.default.createElement(RSelectMultiCustom_1.default, { options: poiCategoryOptions, selectedOptionValues: selectedOptionValues, onSelectedOptionChange: callBackRSelect, placeHolder: "Select Category", isSelectAll: true })));
78403
78403
  };
78404
78404
  exports.default = PoiCategories;
78405
78405
 
@@ -78455,23 +78455,30 @@ var __rest = (this && this.__rest) || function (s, e) {
78455
78455
  }
78456
78456
  return t;
78457
78457
  };
78458
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
78459
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
78460
+ if (ar || !(i in from)) {
78461
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
78462
+ ar[i] = from[i];
78463
+ }
78464
+ }
78465
+ return to.concat(ar || Array.prototype.slice.call(from));
78466
+ };
78458
78467
  var __importDefault = (this && this.__importDefault) || function (mod) {
78459
78468
  return (mod && mod.__esModule) ? mod : { "default": mod };
78460
78469
  };
78461
78470
  Object.defineProperty(exports, "__esModule", { value: true });
78471
+ /* eslint-disable prefer-const */
78462
78472
  /* eslint-disable react/destructuring-assignment */
78463
78473
  /* eslint-disable react/jsx-props-no-spreading */
78464
78474
  /* eslint-disable @typescript-eslint/restrict-template-expressions */
78465
78475
  /* eslint-disable @typescript-eslint/no-unsafe-return */
78466
- /* eslint-disable prefer-const */
78467
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
78468
78476
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
78469
- /* eslint-disable @typescript-eslint/no-explicit-any */
78477
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
78470
78478
  var react_1 = __importStar(__webpack_require__(0));
78471
78479
  var react_select_1 = __importStar(__webpack_require__(78));
78472
- var model_1 = __webpack_require__(6);
78473
- var Icons_1 = __webpack_require__(24);
78474
78480
  var RSelectMultiCustom_scss_1 = __importDefault(__webpack_require__(831));
78481
+ var Icons_1 = __webpack_require__(24);
78475
78482
  var ValueContainer = function (_a) {
78476
78483
  var children = _a.children, props = __rest(_a, ["children"]);
78477
78484
  var _b = children, values = _b[0], input = _b[1];
@@ -78492,24 +78499,65 @@ var ValueContainer = function (_a) {
78492
78499
  values,
78493
78500
  input)));
78494
78501
  };
78495
- var Option = function (_a) {
78496
- var children = _a.children, props = __rest(_a, ["children"]);
78497
- return (react_1.default.createElement(react_select_1.components.Option, __assign({}, props),
78498
- react_1.default.createElement("div", { className: RSelectMultiCustom_scss_1.default.customContainer },
78499
- react_1.default.createElement("input", { type: "checkbox", checked: props.isSelected, className: RSelectMultiCustom_scss_1.default.checkbox }),
78500
- children)));
78501
- };
78502
78502
  var RSelectMultiCustom = function (_a) {
78503
- var options = _a.options, selectedOptionValues = _a.selectedOptionValues, onSelectedOptionChange = _a.onSelectedOptionChange, onInputChange = _a.onInputChange, _b = _a.placeHolder, placeHolder = _b === void 0 ? '' : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, onFocus = _a.onFocus, onBlur = _a.onBlur;
78503
+ var options = _a.options, selectedOptionValues = _a.selectedOptionValues, onSelectedOptionChange = _a.onSelectedOptionChange, isSelectAll = _a.isSelectAll, /* onInputChange */ _b = _a.placeHolder, /* onInputChange */ placeHolder = _b === void 0 ? '' : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, onFocus = _a.onFocus, onBlur = _a.onBlur;
78504
+ var _d = (0, react_1.useState)(''), selectInput = _d[0], setSelectInput = _d[1];
78505
+ var isAllSelected = (0, react_1.useRef)(false);
78506
+ var allOption = { value: '*', label: 'All' };
78507
+ var comparator = function (v1, v2) { return Number(v1.value) - Number(v2.value); };
78504
78508
  var selectedOptions = (0, react_1.useMemo)(function () { return options.filter(function (option) { return selectedOptionValues.includes(option.value); }); }, [selectedOptionValues, options]);
78509
+ var filterOptions = function (opts, input) { return opts === null || opts === void 0 ? void 0 : opts.filter(function (_a) {
78510
+ var label = _a.label;
78511
+ return label.toLowerCase().includes(input.toLowerCase());
78512
+ }); };
78513
+ var filteredOptions = filterOptions(options, selectInput);
78514
+ var filteredSelectedOptions = filterOptions(selectedOptions, selectInput);
78515
+ var Option = function (_a) {
78516
+ var children = _a.children, props = __rest(_a, ["children"]);
78517
+ return (react_1.default.createElement(react_select_1.components.Option, __assign({}, props),
78518
+ react_1.default.createElement("div", { className: RSelectMultiCustom_scss_1.default.customContainer },
78519
+ react_1.default.createElement("input", { type: "checkbox", checked: props.isSelected || isAllSelected.current, className: RSelectMultiCustom_scss_1.default.checkbox, onChange: function () { } }),
78520
+ children)));
78521
+ };
78522
+ var customFilterOption = function (_a, input) {
78523
+ var value = _a.value, label = _a.label;
78524
+ return (value !== '*' && label.toLowerCase().includes(input.toLowerCase())) || (value === '*' && (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) > 0);
78525
+ };
78526
+ var onInputChange = function (inputValue, event) {
78527
+ if (event.action === 'input-change')
78528
+ setSelectInput(inputValue);
78529
+ else if (event.action === 'menu-close' && selectInput !== '')
78530
+ setSelectInput('');
78531
+ };
78532
+ var onKeyDown = function (e) {
78533
+ if ((e.key === ' ' || e.key === 'Enter') && !selectInput)
78534
+ e.preventDefault();
78535
+ };
78505
78536
  var handleChange = function (newSelectedOptions) {
78506
- onSelectedOptionChange(newSelectedOptions);
78537
+ if (newSelectedOptions.length > 0 &&
78538
+ !isAllSelected.current &&
78539
+ (newSelectedOptions[newSelectedOptions.length - 1].value === allOption.value || JSON.stringify(filteredOptions) === JSON.stringify(newSelectedOptions.sort(comparator))))
78540
+ return onSelectedOptionChange(__spreadArray(__spreadArray([], (selectedOptions !== null && selectedOptions !== void 0 ? selectedOptions : []), true), options.filter(function (_a) {
78541
+ var label = _a.label;
78542
+ return label.toLowerCase().includes(selectInput === null || selectInput === void 0 ? void 0 : selectInput.toLowerCase()) && (selectedOptions !== null && selectedOptions !== void 0 ? selectedOptions : []).filter(function (opt) { return opt.label === label; }).length === 0;
78543
+ }), true).sort(comparator));
78544
+ if (newSelectedOptions.length > 0 && newSelectedOptions[newSelectedOptions.length - 1].value !== allOption.value && JSON.stringify(newSelectedOptions.sort(comparator)) !== JSON.stringify(filteredOptions))
78545
+ return onSelectedOptionChange(newSelectedOptions);
78546
+ return onSelectedOptionChange(__spreadArray([], selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.filter(function (_a) {
78547
+ var label = _a.label;
78548
+ return !label.toLowerCase().includes(selectInput === null || selectInput === void 0 ? void 0 : selectInput.toLowerCase());
78549
+ }), true));
78507
78550
  };
78508
- var customFilter = function (option, searchText) { return model_1.helper.toEngChars(option.label).toLowerCase().includes(model_1.helper.toEngChars(searchText).toLowerCase()); };
78509
- return (react_1.default.createElement(react_select_1.default, { value: selectedOptions, onChange: handleChange, onInputChange: onInputChange, options: options, filterOption: customFilter, isMulti: true, isSearchable: true, placeholder: placeHolder, isDisabled: disabled, isClearable: false, className: "trpReactSelectMulti", classNamePrefix: "trpReactSelectMulti", closeMenuOnSelect: false, hideSelectedOptions: false, components: {
78551
+ if (isSelectAll && options.length !== 0) {
78552
+ isAllSelected.current = JSON.stringify(filteredSelectedOptions) === JSON.stringify(filteredOptions);
78553
+ return (react_1.default.createElement(react_select_1.default, { value: selectedOptions, onChange: handleChange, onInputChange: onInputChange, options: __spreadArray([allOption], options, true), filterOption: customFilterOption, isMulti: true, isSearchable: false, placeholder: placeHolder, isDisabled: disabled, isClearable: false, className: "trpReactSelectMulti", classNamePrefix: "trpReactSelectMulti", closeMenuOnSelect: false, components: {
78554
+ ValueContainer: ValueContainer,
78555
+ Option: Option,
78556
+ }, onFocus: function () { return onFocus && onFocus(); }, onBlur: function () { return onBlur && onBlur(); }, inputValue: selectInput, onKeyDown: onKeyDown, tabSelectsValue: false, backspaceRemovesValue: false, hideSelectedOptions: false, blurInputOnSelect: false }));
78557
+ }
78558
+ return (react_1.default.createElement(react_select_1.default, { inputValue: selectInput, onInputChange: onInputChange, filterOption: customFilterOption, components: {
78510
78559
  ValueContainer: ValueContainer,
78511
- Option: Option,
78512
- }, onFocus: function () { return onFocus && onFocus(); }, onBlur: function () { return onBlur && onBlur(); } }));
78560
+ }, onKeyDown: onKeyDown, tabSelectsValue: false, hideSelectedOptions: true, backspaceRemovesValue: false, blurInputOnSelect: true }));
78513
78561
  };
78514
78562
  exports.default = RSelectMultiCustom;
78515
78563
 
@@ -78943,24 +78991,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
78943
78991
  /* eslint-disable @typescript-eslint/no-unused-vars */
78944
78992
  /* eslint-disable @typescript-eslint/no-explicit-any */
78945
78993
  var react_1 = __importStar(__webpack_require__(0));
78994
+ var model_1 = __webpack_require__(6);
78946
78995
  var creatable_1 = __importDefault(__webpack_require__(923));
78947
78996
  var react_select_1 = __webpack_require__(78);
78948
- var model_1 = __webpack_require__(6);
78949
78997
  var PoiSearchAutoComplete_scss_1 = __importDefault(__webpack_require__(853));
78950
- var ValueContainer = function (_a) {
78951
- var children = _a.children, props = __rest(_a, ["children"]);
78952
- var _b = children, values = _b[0], input = _b[1];
78953
- return react_1.default.createElement(react_select_1.components.ValueContainer, __assign({}, props), input);
78954
- };
78955
78998
  var PoiSearchAutoComplete = function (_a) {
78956
- var inputValue = _a.inputValue, options = _a.options, selectedOptionValues = _a.selectedOptionValues, onSelectedOptionChange = _a.onSelectedOptionChange, onInputChange = _a.onInputChange, onCreateOption = _a.onCreateOption, placeHolder = _a.placeHolder;
78999
+ var inputValue = _a.inputValue, options = _a.options, selectedOptionValues = _a.selectedOptionValues, onSelectedOptionChange = _a.onSelectedOptionChange, onInputChange = _a.onInputChange, onCreateOption = _a.onCreateOption, placeHolder = _a.placeHolder, _b = _a.isDisabled, isDisabled = _b === void 0 ? false : _b;
78957
79000
  var selectedOptions = (0, react_1.useMemo)(function () { return options.filter(function (option) { return selectedOptionValues.includes(option.value); }); }, [selectedOptionValues, options]);
78958
79001
  var handleChange = function (newSelectedOptions) {
78959
79002
  onSelectedOptionChange(newSelectedOptions);
78960
79003
  };
78961
79004
  var customFilter = function (option, searchText) { return model_1.helper.toEngChars(option.label).toLowerCase().includes(model_1.helper.toEngChars(searchText).toLowerCase()); };
79005
+ var ValueContainer = function (_a) {
79006
+ var children = _a.children, props = __rest(_a, ["children"]);
79007
+ var _b = children, values = _b[0], input = _b[1];
79008
+ return (react_1.default.createElement(react_select_1.components.ValueContainer, __assign({}, props),
79009
+ react_1.default.createElement("div", { className: PoiSearchAutoComplete_scss_1.default.customContainer }, input)));
79010
+ };
79011
+ var Input = function (props) { return react_1.default.createElement(react_select_1.components.Input, __assign({}, props, { autoComplete: "off", placeholder: placeHolder })); };
78962
79012
  return (react_1.default.createElement("div", { className: PoiSearchAutoComplete_scss_1.default.poiSearchAutoComplete },
78963
- react_1.default.createElement(creatable_1.default, { className: "trpReactCreatableSelectMulti", classNamePrefix: "trpReactCreatableSelectMulti", onCreateOption: onCreateOption, isMulti: true, options: options, value: selectedOptions, filterOption: customFilter, isClearable: false, isSearchable: true, inputValue: inputValue, onChange: handleChange, onInputChange: onInputChange, placeholder: placeHolder, components: { ValueContainer: ValueContainer }, formatCreateLabel: function (userInput) { return userInput; } })));
79013
+ react_1.default.createElement(creatable_1.default, { className: "trpReactCreatableSelectMulti", classNamePrefix: "trpReactCreatableSelectMulti", onCreateOption: onCreateOption, isMulti: true, options: options, value: selectedOptions, filterOption: customFilter, isClearable: false, isSearchable: true, inputValue: inputValue, onChange: handleChange, onInputChange: onInputChange, components: { ValueContainer: ValueContainer, Input: Input }, formatCreateLabel: function (userInput) { return userInput; }, isDisabled: isDisabled })));
78964
79014
  };
78965
79015
  exports.default = PoiSearchAutoComplete;
78966
79016