kui-complex 0.0.72 → 0.0.74

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 (38) hide show
  1. package/DependentInput/cjs/index.js +81 -0
  2. package/DependentInput/cjs/index.js.map +1 -0
  3. package/DependentInput/cjs/package.json +10 -0
  4. package/DependentInput/index.d.ts +3 -0
  5. package/DependentInput/index.js +79 -0
  6. package/DependentInput/index.js.map +1 -0
  7. package/DependentInput/package.json +10 -0
  8. package/InputPassword/cjs/index.js.map +1 -1
  9. package/InputPassword/index.js.map +1 -1
  10. package/InputTextAreaMobile/cjs/index.js.map +1 -1
  11. package/InputTextAreaMobile/index.js.map +1 -1
  12. package/InputWithAddressAutocomplete/cjs/index.js +270 -0
  13. package/InputWithAddressAutocomplete/cjs/index.js.map +1 -0
  14. package/InputWithAddressAutocomplete/cjs/package.json +11 -0
  15. package/InputWithAddressAutocomplete/index.d.ts +36 -0
  16. package/InputWithAddressAutocomplete/index.js +264 -0
  17. package/InputWithAddressAutocomplete/index.js.map +1 -0
  18. package/InputWithAddressAutocomplete/package.json +11 -0
  19. package/InputWithAutocomplete/cjs/index.js.map +1 -1
  20. package/InputWithAutocomplete/index.js.map +1 -1
  21. package/InputWithController/cjs/index.js.map +1 -1
  22. package/InputWithController/index.d.ts +1 -1
  23. package/InputWithController/index.js.map +1 -1
  24. package/MapWrapper/cjs/index.js +107 -0
  25. package/MapWrapper/cjs/index.js.map +1 -0
  26. package/MapWrapper/cjs/package.json +10 -0
  27. package/MapWrapper/index.d.ts +9 -0
  28. package/MapWrapper/index.js +101 -0
  29. package/MapWrapper/index.js.map +1 -0
  30. package/MapWrapper/package.json +10 -0
  31. package/TestForm/cjs/index.js.map +1 -1
  32. package/TestForm/index.js.map +1 -1
  33. package/cjs/index.js +186 -0
  34. package/cjs/index.js.map +1 -1
  35. package/index.d.ts +25 -2
  36. package/index.js +185 -2
  37. package/index.js.map +1 -1
  38. package/package.json +4 -1
package/cjs/index.js CHANGED
@@ -22,6 +22,7 @@ var reactRouterDom = require('react-router-dom');
22
22
  var reactRouter = require('react-router');
23
23
  var Swiper = require('react-id-swiper');
24
24
  var ReactDOM = require('react-dom');
25
+ var jsApiLoader = require('@googlemaps/js-api-loader');
25
26
 
26
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
28
 
@@ -90,6 +91,44 @@ function __rest(s, e) {
90
91
  return t;
91
92
  }
92
93
 
94
+ function __awaiter(thisArg, _arguments, P, generator) {
95
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
96
+ return new (P || (P = Promise))(function (resolve, reject) {
97
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
98
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
99
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
100
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
101
+ });
102
+ }
103
+
104
+ function __generator(thisArg, body) {
105
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
106
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
107
+ function verb(n) { return function (v) { return step([n, v]); }; }
108
+ function step(op) {
109
+ if (f) throw new TypeError("Generator is already executing.");
110
+ while (_) try {
111
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
112
+ if (y = 0, t) op = [op[0] & 2, t.value];
113
+ switch (op[0]) {
114
+ case 0: case 1: t = op; break;
115
+ case 4: _.label++; return { value: op[1], done: false };
116
+ case 5: _.label++; y = op[1]; op = [0]; continue;
117
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
118
+ default:
119
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
120
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
121
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
122
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
123
+ if (t[2]) _.ops.pop();
124
+ _.trys.pop(); continue;
125
+ }
126
+ op = body.call(thisArg, _);
127
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
128
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
129
+ }
130
+ }
131
+
93
132
  function __spreadArray(to, from, pack) {
94
133
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
95
134
  if (ar || !(i in from)) {
@@ -1652,6 +1691,150 @@ var StyledCheckbox = styled__default["default"](CheckboxWithController)(template
1652
1691
  var StyledWrapper = styled__default["default"](kuiBasic.Grid)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 3px 16px;\n border: 1px solid ", ";\n border-radius: 66px;\n height: 40px;\n"], ["\n padding: 3px 16px;\n border: 1px solid ", ";\n border-radius: 66px;\n height: 40px;\n"])), kuiBasic.theme.palette.grey.fifteenB);
1653
1692
  var templateObject_1, templateObject_2;
1654
1693
 
1694
+ var render = function (status) {
1695
+ if (status === "LOADING")
1696
+ return jsxRuntime.jsx(Loading, { height: "100%" });
1697
+ if (status === "FAILURE")
1698
+ return jsxRuntime.jsx("h3", { children: status });
1699
+ return jsxRuntime.jsx("div", {});
1700
+ };
1701
+ function MapWrapper(_a) {
1702
+ var children = _a.children;
1703
+ var _b = React.useState(false), isUnMounted = _b[0], setIsUnMounted = _b[1];
1704
+ var _c = React.useState("LOADING"), status = _c[0], setStatus = _c[1];
1705
+ React.useEffect(function () {
1706
+ if (!isUnMounted && process.env.REACT_APP_MAP_KEY) {
1707
+ var loader = new jsApiLoader.Loader({
1708
+ apiKey: process.env.REACT_APP_MAP_KEY,
1709
+ libraries: ["places"],
1710
+ });
1711
+ var setStatusAndExecuteCallback_1 = function (newStatus) {
1712
+ setStatus(newStatus);
1713
+ };
1714
+ setStatusAndExecuteCallback_1("LOADING");
1715
+ loader.load().then(function () { return setStatusAndExecuteCallback_1("SUCCESS"); }, function () { return setStatusAndExecuteCallback_1("FAILURE"); });
1716
+ }
1717
+ return function () { return setIsUnMounted(true); };
1718
+ }, []);
1719
+ if (!process.env.REACT_APP_MAP_KEY) {
1720
+ return jsxRuntime.jsx("h2", { children: "Add google key" });
1721
+ }
1722
+ if (status === "SUCCESS" && children)
1723
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: children });
1724
+ render(status);
1725
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {});
1726
+ }
1727
+
1728
+ var useAddressAutocomplete = function (form, name, handlePlaceSelectProp) {
1729
+ var _a = React.useState(null), place = _a[0], setPlace = _a[1];
1730
+ var inputRef = React.useRef(null);
1731
+ function handlePlaceSelect(newPlace) {
1732
+ var _a, _b, _c, _d, _e, _f, _g;
1733
+ return __awaiter(this, void 0, void 0, function () {
1734
+ var toCoords, lat, lng, street, houseNumber, zipCode, formattedAddress;
1735
+ return __generator(this, function (_h) {
1736
+ toCoords = ((_a = newPlace.geometry) === null || _a === void 0 ? void 0 : _a.location)
1737
+ ? {
1738
+ lat: newPlace.geometry.location.lat(),
1739
+ lng: newPlace.geometry.location.lng(),
1740
+ }
1741
+ : null;
1742
+ lat = toCoords === null || toCoords === void 0 ? void 0 : toCoords.lat;
1743
+ lng = toCoords === null || toCoords === void 0 ? void 0 : toCoords.lng;
1744
+ if (handlePlaceSelectProp) {
1745
+ handlePlaceSelectProp(lat && lng ? { lat: lat, lng: lng } : null, newPlace);
1746
+ }
1747
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lat"), lat, { shouldValidate: true });
1748
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lon"), lng, { shouldValidate: true });
1749
+ form.setValue("".concat(name, ".addressAutoComplete"), newPlace, {
1750
+ shouldValidate: true,
1751
+ });
1752
+ street = (_c = (_b = newPlace.address_components) === null || _b === void 0 ? void 0 : _b.find(function (elem) {
1753
+ return elem.types.includes("route");
1754
+ })) === null || _c === void 0 ? void 0 : _c.short_name;
1755
+ houseNumber = (_e = (_d = newPlace.address_components) === null || _d === void 0 ? void 0 : _d.find(function (elem) {
1756
+ return elem.types.includes("street_number");
1757
+ })) === null || _e === void 0 ? void 0 : _e.short_name;
1758
+ zipCode = (_g = (_f = newPlace.address_components) === null || _f === void 0 ? void 0 : _f.find(function (elem) {
1759
+ return elem.types.includes("postal_code");
1760
+ })) === null || _g === void 0 ? void 0 : _g.short_name;
1761
+ formattedAddress = newPlace.formatted_address;
1762
+ if (street && houseNumber) {
1763
+ formattedAddress = "".concat(street, ", ").concat(houseNumber);
1764
+ }
1765
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".address"), formattedAddress, {
1766
+ shouldValidate: true,
1767
+ });
1768
+ form.setValue("zipCode", zipCode);
1769
+ setPlace(newPlace);
1770
+ return [2 /*return*/];
1771
+ });
1772
+ });
1773
+ }
1774
+ var addAutocomplete = function () {
1775
+ if (inputRef.current) {
1776
+ var autoComplete_1 = new window.google.maps.places.Autocomplete(inputRef.current);
1777
+ autoComplete_1.addListener("place_changed", function () {
1778
+ var newPlace = autoComplete_1.getPlace();
1779
+ handlePlaceSelect(newPlace);
1780
+ });
1781
+ }
1782
+ };
1783
+ var cleanLocation = function () {
1784
+ setPlace(null);
1785
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lat"), null, { shouldValidate: true });
1786
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".location.lon"), null, { shouldValidate: true });
1787
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".addressAutoComplete"), null, {
1788
+ shouldValidate: true,
1789
+ });
1790
+ form === null || form === void 0 ? void 0 : form.setValue("".concat(name, ".address"), "", { shouldValidate: true });
1791
+ };
1792
+ var checkMapLoaded = function () {
1793
+ if (!window.google || !inputRef.current) {
1794
+ setTimeout(checkMapLoaded, 1);
1795
+ }
1796
+ else
1797
+ addAutocomplete();
1798
+ };
1799
+ var setDefaultPlace = function () {
1800
+ var address = form.getValues("".concat(name, ".address"));
1801
+ var lat = form.getValues("".concat(name, ".location.lat"));
1802
+ var lng = form.getValues("".concat(name, ".location.lon"));
1803
+ var defaultPlace = {
1804
+ formatted_address: address,
1805
+ geometry: {
1806
+ location: { lat: lat, lng: lng },
1807
+ },
1808
+ };
1809
+ if (address && lat && lng)
1810
+ setPlace(defaultPlace);
1811
+ };
1812
+ React.useEffect(function () {
1813
+ checkMapLoaded();
1814
+ setDefaultPlace();
1815
+ }, []);
1816
+ return { inputRef: inputRef, handlePlaceSelect: handlePlaceSelect, place: place, cleanLocation: cleanLocation };
1817
+ };
1818
+
1819
+ function InputWithAddressAutocomplete(_a) {
1820
+ var form = _a.form, name = _a.name, handlePlaceSelect = _a.handlePlaceSelect, inputProps = __rest(_a, ["form", "name", "handlePlaceSelect"]);
1821
+ var inputRef = useAddressAutocomplete(form, name, handlePlaceSelect).inputRef;
1822
+ return (jsxRuntime.jsx(MapWrapper, { children: jsxRuntime.jsx(InputWithController, __assign({ name: "".concat(name, ".address"), form: form, ref: inputRef, placeholder: "" }, inputProps)) }));
1823
+ }
1824
+ InputWithAddressAutocomplete.defaultProps = {
1825
+ label: "Address",
1826
+ };
1827
+
1828
+ var DependentInput = function (props) {
1829
+ var dependentInputName = props.dependentInputName, form = props.form, disabled = props.disabled, Input = props.Input, other = __rest(props, ["dependentInputName", "form", "disabled", "Input"]);
1830
+ var dependentInputValue = reactHookForm.useWatch({
1831
+ control: form.control,
1832
+ name: dependentInputName,
1833
+ });
1834
+ var inputProps = __assign({ form: form, disabled: disabled || !dependentInputValue }, other);
1835
+ return Input ? (jsxRuntime.jsx(Input, __assign({}, inputProps))) : (jsxRuntime.jsx(InputWithController, __assign({}, inputProps)));
1836
+ };
1837
+
1655
1838
  exports.AutocompleteOption = AutocompleteOption;
1656
1839
  exports.Avatar = Avatar;
1657
1840
  exports.ButtonSelect = ButtonSelect;
@@ -1662,6 +1845,7 @@ exports.CalendarStandardContainer = CalendarStandardContainer;
1662
1845
  exports.CalendarStandardHeader = CalendarStandardHeader;
1663
1846
  exports.CheckboxGroupWithTitle = CheckboxGroupWithTitle;
1664
1847
  exports.CheckboxWithController = CheckboxWithController;
1848
+ exports.DependentInput = DependentInput;
1665
1849
  exports.DesktopInputWithMonthPicker = DesktopInputWithMonthPicker;
1666
1850
  exports.DesktopMenuPanel = DesktopMenuPanel;
1667
1851
  exports.InputDropdown = InputDropdown;
@@ -1674,11 +1858,13 @@ exports.InputSelect = InputSelect;
1674
1858
  exports.InputSelectDropdown = InputSelectDropdown;
1675
1859
  exports.InputSelectWithController = InputSelectWithController;
1676
1860
  exports.InputTextAreaMobile = InputTextAreaMobile;
1861
+ exports.InputWithAddressAutocomplete = InputWithAddressAutocomplete;
1677
1862
  exports.InputWithAutocomplete = InputWithAutocomplete;
1678
1863
  exports.InputWithController = InputWithController;
1679
1864
  exports.InputWithDatePicker = InputWithDatePicker;
1680
1865
  exports.InputWithMask = InputWithMask;
1681
1866
  exports.InputWithMonthPicker = InputWithMonthPicker;
1867
+ exports.MapWrapper = MapWrapper;
1682
1868
  exports.MenuItem = MenuItem;
1683
1869
  exports.MenuPanel = MenuPanel;
1684
1870
  exports.MobileInputWithMonthPicker = MobileInputWithMonthPicker;