@proprioo/salatim 18.1.4 → 18.2.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 (41) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/forms/src/userForm/UserForm.d.ts +3 -0
  3. package/lib/forms/src/userForm/UserForm.js +3 -2
  4. package/lib/forms/src/userForm/UserForm.js.map +1 -1
  5. package/lib/hooks/index.d.ts +2 -0
  6. package/lib/hooks/index.js +11 -0
  7. package/lib/hooks/index.js.map +1 -0
  8. package/lib/hooks/useDebounce/useDebounce.d.ts +2 -0
  9. package/lib/hooks/useDebounce/useDebounce.js +27 -0
  10. package/lib/hooks/useDebounce/useDebounce.js.map +1 -0
  11. package/lib/hooks/useDebounce/useDebounce.test.d.ts +1 -0
  12. package/lib/hooks/useDebounce/useDebounce.test.js +29 -0
  13. package/lib/hooks/useDebounce/useDebounce.test.js.map +1 -0
  14. package/lib/hooks/useEmailSuggestion/useEmailSuggestion.d.ts +6 -0
  15. package/lib/hooks/useEmailSuggestion/useEmailSuggestion.js +84 -0
  16. package/lib/hooks/useEmailSuggestion/useEmailSuggestion.js.map +1 -0
  17. package/lib/hooks/useEmailSuggestion/useEmailSuggestion.test.d.ts +1 -0
  18. package/lib/hooks/useEmailSuggestion/useEmailSuggestion.test.js +73 -0
  19. package/lib/hooks/useEmailSuggestion/useEmailSuggestion.test.js.map +1 -0
  20. package/lib/index.d.ts +1 -0
  21. package/lib/index.js +1 -1
  22. package/lib/index.js.map +1 -1
  23. package/lib/ui/index.d.ts +2 -0
  24. package/lib/ui/index.js +4 -2
  25. package/lib/ui/index.js.map +1 -1
  26. package/lib/ui/src/emailInput/EmailInput.d.ts +3 -0
  27. package/lib/ui/src/emailInput/EmailInput.interfaces.d.ts +12 -0
  28. package/lib/ui/src/emailInput/EmailInput.interfaces.js +3 -0
  29. package/lib/ui/src/emailInput/EmailInput.interfaces.js.map +1 -0
  30. package/lib/ui/src/emailInput/EmailInput.js +118 -0
  31. package/lib/ui/src/emailInput/EmailInput.js.map +1 -0
  32. package/lib/ui/src/emailInput/EmailInput.stories.d.ts +1 -0
  33. package/lib/ui/src/emailInput/EmailInput.stories.js +44 -0
  34. package/lib/ui/src/emailInput/EmailInput.stories.js.map +1 -0
  35. package/lib/ui/src/emailInput/EmailInput.styles.d.ts +2 -0
  36. package/lib/ui/src/emailInput/EmailInput.styles.js +16 -0
  37. package/lib/ui/src/emailInput/EmailInput.styles.js.map +1 -0
  38. package/lib/ui/src/emailInput/EmailInput.test.d.ts +1 -0
  39. package/lib/ui/src/emailInput/EmailInput.test.js +215 -0
  40. package/lib/ui/src/emailInput/EmailInput.test.js.map +1 -0
  41. package/package.json +4 -1
package/lib/ui/index.d.ts CHANGED
@@ -18,6 +18,8 @@ export { default as Card, CardProps } from './src/card/Card';
18
18
  export { ButtonAppearance, ButtonColors, ButtonProps, ButtonSizes, IconPosition } from './src/button/Button.interfaces';
19
19
  export { default as Checkbox } from './src/checkbox/Checkbox';
20
20
  export { default as DateInput, isValidDate } from './src/dateInput/DateInput';
21
+ export { default as EmailInput } from './src/emailInput/EmailInput';
22
+ export { EmailInputProps, EmailInputI18nLabelProps } from './src/emailInput/EmailInput.interfaces';
21
23
  export { default as Fieldset, FieldsetProps } from './src/fieldset/Fieldset';
22
24
  export { default as GmapsAutocomplete, GmapsAutocompleteProps } from './src/gmapsAutoComplete/GmapsAutocomplete';
23
25
  export { default as GmapsGeocode, GmapsGeocodeProps } from './src/gmapsGeocode/GmapsGeocode';
package/lib/ui/index.js CHANGED
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TagColorsTypes = exports.TagAppearance = exports.Subtitle = exports.Option = exports.Toggle = exports.titles = exports.H6 = exports.H5 = exports.H4 = exports.H3 = exports.H2 = exports.H1 = exports.Radio = exports.NumberInput = exports.Loader = exports.InputLoading = exports.InputColors = exports.Input = exports.InputType = exports.Logo = exports.PanelOrientation = exports.PanelColorsTypes = exports.Panel = exports.useModal = exports.GmapsGeocode = exports.GmapsAutocomplete = exports.Fieldset = exports.isValidDate = exports.DateInput = exports.Checkbox = exports.IconPosition = exports.ButtonSizes = exports.ButtonColors = exports.ButtonAppearance = exports.Card = exports.BlockIcon = exports.ButtonRadioGroup = exports.Button = exports.Burger = exports.Block = exports.Autocomplete = exports.AgentCard = exports.AgentBanner = exports.AccordionPanel = exports.AccordionHeader = exports.AccordionItem = exports.Accordion = exports.AccordionItemColors = exports.geocodeByAddress = exports.PlacesAutocomplete = void 0;
7
- exports.ShowMoreTextToggleButton = exports.fontStyleOptions = exports.ShowMoreTextToggle = exports.Select = exports.Tooltip = exports.Textarea = exports.TagBase = exports.Tag = void 0;
6
+ exports.TagAppearance = exports.Subtitle = exports.Option = exports.Toggle = exports.titles = exports.H6 = exports.H5 = exports.H4 = exports.H3 = exports.H2 = exports.H1 = exports.Radio = exports.NumberInput = exports.Loader = exports.InputLoading = exports.InputColors = exports.Input = exports.InputType = exports.Logo = exports.PanelOrientation = exports.PanelColorsTypes = exports.Panel = exports.useModal = exports.GmapsGeocode = exports.GmapsAutocomplete = exports.Fieldset = exports.EmailInput = exports.isValidDate = exports.DateInput = exports.Checkbox = exports.IconPosition = exports.ButtonSizes = exports.ButtonColors = exports.ButtonAppearance = exports.Card = exports.BlockIcon = exports.ButtonRadioGroup = exports.Button = exports.Burger = exports.Block = exports.Autocomplete = exports.AgentCard = exports.AgentBanner = exports.AccordionPanel = exports.AccordionHeader = exports.AccordionItem = exports.Accordion = exports.AccordionItemColors = exports.geocodeByAddress = exports.PlacesAutocomplete = void 0;
7
+ exports.ShowMoreTextToggleButton = exports.fontStyleOptions = exports.ShowMoreTextToggle = exports.Select = exports.Tooltip = exports.Textarea = exports.TagBase = exports.Tag = exports.TagColorsTypes = void 0;
8
8
  var react_places_autocomplete_1 = require("react-places-autocomplete");
9
9
  Object.defineProperty(exports, "PlacesAutocomplete", { enumerable: true, get: function () { return __importDefault(react_places_autocomplete_1).default; } });
10
10
  Object.defineProperty(exports, "geocodeByAddress", { enumerable: true, get: function () { return react_places_autocomplete_1.geocodeByAddress; } });
@@ -46,6 +46,8 @@ Object.defineProperty(exports, "Checkbox", { enumerable: true, get: function ()
46
46
  var DateInput_1 = require("./src/dateInput/DateInput");
47
47
  Object.defineProperty(exports, "DateInput", { enumerable: true, get: function () { return __importDefault(DateInput_1).default; } });
48
48
  Object.defineProperty(exports, "isValidDate", { enumerable: true, get: function () { return DateInput_1.isValidDate; } });
49
+ var EmailInput_1 = require("./src/emailInput/EmailInput");
50
+ Object.defineProperty(exports, "EmailInput", { enumerable: true, get: function () { return __importDefault(EmailInput_1).default; } });
49
51
  var Fieldset_1 = require("./src/fieldset/Fieldset");
50
52
  Object.defineProperty(exports, "Fieldset", { enumerable: true, get: function () { return __importDefault(Fieldset_1).default; } });
51
53
  var GmapsAutocomplete_1 = require("./src/gmapsAutoComplete/GmapsAutocomplete");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/ui/index.ts"],"names":[],"mappings":";;;;;;;AACA,uEAImC;AAHjC,gJAAA,OAAO,OAAsB;AAE7B,6HAAA,gBAAgB,OAAA;AAGlB,6EAK8C;AAF5C,2HAAA,mBAAmB,OAAA;AAGrB,uDAAiE;AAAxD,uHAAA,OAAO,OAAa;AAC7B,+DAAyE;AAAhE,+HAAA,OAAO,OAAiB;AACjC,mEAA6E;AAApE,mIAAA,OAAO,OAAmB;AACnC,iEAA2E;AAAlE,iIAAA,OAAO,OAAkB;AAClC,6DAAuE;AAA9D,2HAAA,OAAO,OAAe;AAC/B,uDAAiE;AAAxD,uHAAA,OAAO,OAAa;AAC7B,gEAA0E;AAAjE,6HAAA,OAAO,OAAgB;AAChC,2CAAiE;AAAxD,+GAAA,OAAO,OAAS;AACzB,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,8CAAwD;AAA/C,iHAAA,OAAO,OAAU;AAC1B,4EAGiD;AAF/C,qIAAA,OAAO,OAAoB;AAG7B,uDAAiE;AAAxD,uHAAA,OAAO,OAAa;AAC7B,wCAA6D;AAApD,6GAAA,OAAO,OAAQ;AACxB,oEAMwC;AALtC,qHAAA,gBAAgB,OAAA;AAChB,iHAAA,YAAY,OAAA;AAEZ,gHAAA,WAAW,OAAA;AACX,iHAAA,YAAY,OAAA;AAEd,oDAA8D;AAArD,qHAAA,OAAO,OAAY;AAC5B,uDAA8E;AAArE,uHAAA,OAAO,OAAa;AAAE,wGAAA,WAAW,OAAA;AAC1C,oDAA6E;AAApE,qHAAA,OAAO,OAAY;AAC5B,+EAGmD;AAFjD,uIAAA,OAAO,OAAqB;AAG9B,gEAGyC;AAFvC,6HAAA,OAAO,OAAgB;AAGzB,2CAI2B;AAHzB,kHAAA,OAAO,OAAY;AAIrB,2CAAqD;AAA5C,+GAAA,OAAO,OAAS;AACzB,iEAIsC;AAFpC,oHAAA,gBAAgB,OAAA;AAChB,oHAAA,gBAAgB,OAAA;AAGlB,wCAAkD;AAAzC,6GAAA,OAAO,OAAQ;AACxB,2CAA8C;AAArC,kGAAA,SAAS,OAAA;AAClB,uDAImC;AAHjC,mHAAA,OAAO,OAAS;AAIlB,+DAA4D;AAAnD,4GAAA,WAAW,OAAA;AACpB,gEAA0E;AAAjE,6HAAA,OAAO,OAAgB;AAChC,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,6DAAuE;AAA9D,2HAAA,OAAO,OAAe;AAC/B,2CAAqD;AAA5C,+GAAA,OAAO,OAAS;AACzB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,2CAA2C;AAAlC,+FAAA,MAAM,OAAA;AACf,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,oDAA6E;AAApE,qHAAA,OAAO,OAAY;AAC5B,mDAA+E;AAAtE,2GAAA,aAAa,OAAA;AAAE,4GAAA,cAAc,OAAA;AACtC,qCAA+C;AAAtC,2GAAA,OAAO,OAAO;AACvB,mDAA+C;AAAtC,qGAAA,OAAO,OAAA;AAChB,oDAA8D;AAArD,qHAAA,OAAO,OAAY;AAC5B,iDAA2D;AAAlD,mHAAA,OAAO,OAAW;AAC3B,mEAG2C;AAFzC,wHAAA,OAAO,OAAU;AAGnB,kFAGqD;AAFnD,yIAAA,OAAO,OAAsB;AAC7B,sHAAA,gBAAgB,OAAA;AAElB,gGAAwG;AAA/F,qIAAA,MAAM,OAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/ui/index.ts"],"names":[],"mappings":";;;;;;;AACA,uEAImC;AAHjC,gJAAA,OAAO,OAAsB;AAE7B,6HAAA,gBAAgB,OAAA;AAGlB,6EAK8C;AAF5C,2HAAA,mBAAmB,OAAA;AAGrB,uDAAiE;AAAxD,uHAAA,OAAO,OAAa;AAC7B,+DAAyE;AAAhE,+HAAA,OAAO,OAAiB;AACjC,mEAA6E;AAApE,mIAAA,OAAO,OAAmB;AACnC,iEAA2E;AAAlE,iIAAA,OAAO,OAAkB;AAClC,6DAAuE;AAA9D,2HAAA,OAAO,OAAe;AAC/B,uDAAiE;AAAxD,uHAAA,OAAO,OAAa;AAC7B,gEAA0E;AAAjE,6HAAA,OAAO,OAAgB;AAChC,2CAAiE;AAAxD,+GAAA,OAAO,OAAS;AACzB,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,8CAAwD;AAA/C,iHAAA,OAAO,OAAU;AAC1B,4EAGiD;AAF/C,qIAAA,OAAO,OAAoB;AAG7B,uDAAiE;AAAxD,uHAAA,OAAO,OAAa;AAC7B,wCAA6D;AAApD,6GAAA,OAAO,OAAQ;AACxB,oEAMwC;AALtC,qHAAA,gBAAgB,OAAA;AAChB,iHAAA,YAAY,OAAA;AAEZ,gHAAA,WAAW,OAAA;AACX,iHAAA,YAAY,OAAA;AAEd,oDAA8D;AAArD,qHAAA,OAAO,OAAY;AAC5B,uDAA8E;AAArE,uHAAA,OAAO,OAAa;AAAE,wGAAA,WAAW,OAAA;AAC1C,0DAAoE;AAA3D,yHAAA,OAAO,OAAc;AAK9B,oDAA6E;AAApE,qHAAA,OAAO,OAAY;AAC5B,+EAGmD;AAFjD,uIAAA,OAAO,OAAqB;AAG9B,gEAGyC;AAFvC,6HAAA,OAAO,OAAgB;AAGzB,2CAI2B;AAHzB,kHAAA,OAAO,OAAY;AAIrB,2CAAqD;AAA5C,+GAAA,OAAO,OAAS;AACzB,iEAIsC;AAFpC,oHAAA,gBAAgB,OAAA;AAChB,oHAAA,gBAAgB,OAAA;AAGlB,wCAAkD;AAAzC,6GAAA,OAAO,OAAQ;AACxB,2CAA8C;AAArC,kGAAA,SAAS,OAAA;AAClB,uDAImC;AAHjC,mHAAA,OAAO,OAAS;AAIlB,+DAA4D;AAAnD,4GAAA,WAAW,OAAA;AACpB,gEAA0E;AAAjE,6HAAA,OAAO,OAAgB;AAChC,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,6DAAuE;AAA9D,2HAAA,OAAO,OAAe;AAC/B,2CAAqD;AAA5C,+GAAA,OAAO,OAAS;AACzB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,qCAA+C;AAAtC,yGAAA,OAAO,OAAM;AACtB,2CAA2C;AAAlC,+FAAA,MAAM,OAAA;AACf,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,8CAAqE;AAA5D,iHAAA,OAAO,OAAU;AAC1B,oDAA6E;AAApE,qHAAA,OAAO,OAAY;AAC5B,mDAA+E;AAAtE,2GAAA,aAAa,OAAA;AAAE,4GAAA,cAAc,OAAA;AACtC,qCAA+C;AAAtC,2GAAA,OAAO,OAAO;AACvB,mDAA+C;AAAtC,qGAAA,OAAO,OAAA;AAChB,oDAA8D;AAArD,qHAAA,OAAO,OAAY;AAC5B,iDAA2D;AAAlD,mHAAA,OAAO,OAAW;AAC3B,mEAG2C;AAFzC,wHAAA,OAAO,OAAU;AAGnB,kFAGqD;AAFnD,yIAAA,OAAO,OAAsB;AAC7B,sHAAA,gBAAgB,OAAA;AAElB,gGAAwG;AAA/F,qIAAA,MAAM,OAA4B"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { EmailInputProps } from './EmailInput.interfaces';
3
+ export default function EmailInput({ disabled, i18nLabels, isSuggestionEnabled, onBlur, onChange, onFocus, type, value, ...restProps }: EmailInputProps): JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { InputBaseProps } from '../inputBase/InputBase';
2
+ export interface EmailInputI18nLabelProps {
3
+ yes: string;
4
+ no: string;
5
+ suggestion(email: string): string;
6
+ }
7
+ export interface EmailInputProps extends InputBaseProps {
8
+ /** Whether to enabled/disable email suggestions. */
9
+ isSuggestionEnabled?: boolean;
10
+ /** i18n translation keys */
11
+ i18nLabels?: EmailInputI18nLabelProps;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=EmailInput.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailInput.interfaces.js","sourceRoot":"","sources":["../../../../packages/ui/src/emailInput/EmailInput.interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __rest = (this && this.__rest) || function (s, e) {
33
+ var t = {};
34
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35
+ t[p] = s[p];
36
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
37
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
38
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
39
+ t[p[i]] = s[p[i]];
40
+ }
41
+ return t;
42
+ };
43
+ var __importDefault = (this && this.__importDefault) || function (mod) {
44
+ return (mod && mod.__esModule) ? mod : { "default": mod };
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ var react_1 = __importStar(require("react"));
48
+ var useEmailSuggestion_1 = __importDefault(require("../../../hooks/useEmailSuggestion/useEmailSuggestion"));
49
+ var Input_1 = require("../input/Input");
50
+ var InputBase_1 = __importDefault(require("../inputBase/InputBase"));
51
+ var EmailInput_styles_1 = require("./EmailInput.styles");
52
+ var DEFAULT_I18N_LABELS = {
53
+ yes: 'Oui',
54
+ no: 'Non',
55
+ suggestion: function (email) { return "Vouliez-vous \u00E9crire " + email + " ?"; }
56
+ };
57
+ function EmailInput(_a) {
58
+ var disabled = _a.disabled, _b = _a.i18nLabels, i18nLabels = _b === void 0 ? DEFAULT_I18N_LABELS : _b, _c = _a.isSuggestionEnabled, isSuggestionEnabled = _c === void 0 ? true : _c, onBlur = _a.onBlur, onChange = _a.onChange, onFocus = _a.onFocus, type = _a.type, value = _a.value, restProps = __rest(_a, ["disabled", "i18nLabels", "isSuggestionEnabled", "onBlur", "onChange", "onFocus", "type", "value"]);
59
+ var _d = react_1.useState(false), isFocused = _d[0], setIsFocused = _d[1];
60
+ var _e = react_1.useState(null), displayedSuggestion = _e[0], setDisplayedSuggestion = _e[1];
61
+ var suggestedEmail = useEmailSuggestion_1.default({
62
+ debounce: 0,
63
+ email: value
64
+ });
65
+ var handleChange = function (newValue) {
66
+ onChange && onChange(newValue);
67
+ };
68
+ var handleBlur = function () {
69
+ if (isFocused) {
70
+ setIsFocused(false);
71
+ }
72
+ onBlur && onBlur();
73
+ };
74
+ var handleFocus = function () {
75
+ if (!isFocused) {
76
+ setIsFocused(true);
77
+ }
78
+ onFocus && onFocus();
79
+ };
80
+ var discardSuggestion = function () {
81
+ setDisplayedSuggestion(null);
82
+ };
83
+ var applySuggestion = function () {
84
+ suggestedEmail && handleChange(suggestedEmail);
85
+ };
86
+ // This updates displayed suggestion when suggestion has changed
87
+ react_1.useEffect(function () {
88
+ if (!isSuggestionEnabled || disabled || isFocused) {
89
+ return;
90
+ }
91
+ if (suggestedEmail && displayedSuggestion !== suggestedEmail) {
92
+ setDisplayedSuggestion(suggestedEmail);
93
+ }
94
+ }, [isFocused]);
95
+ // Hide suggestion it matches current input's value
96
+ react_1.useEffect(function () {
97
+ if (value === displayedSuggestion) {
98
+ setDisplayedSuggestion(null);
99
+ }
100
+ }, [displayedSuggestion, value]);
101
+ // Clear suggestion when disabled
102
+ react_1.useEffect(function () {
103
+ if ((!isSuggestionEnabled || disabled) && displayedSuggestion) {
104
+ setDisplayedSuggestion(null);
105
+ }
106
+ }, [disabled, isSuggestionEnabled]);
107
+ return (react_1.default.createElement(react_1.Fragment, null,
108
+ react_1.default.createElement(InputBase_1.default, __assign({}, restProps, { disabled: disabled, type: Input_1.InputType.EMAIL, onBlur: handleBlur, onChange: handleChange, onFocus: handleFocus, value: value })),
109
+ displayedSuggestion && (react_1.default.createElement(EmailInput_styles_1.SuggestionLayout, { "data-test": "email-suggestion" },
110
+ i18nLabels.suggestion(displayedSuggestion),
111
+ ' ',
112
+ react_1.default.createElement(EmailInput_styles_1.Button, { onClick: applySuggestion }, i18nLabels.yes),
113
+ " -",
114
+ ' ',
115
+ react_1.default.createElement(EmailInput_styles_1.Button, { onClick: discardSuggestion }, i18nLabels.no)))));
116
+ }
117
+ exports.default = EmailInput;
118
+ //# sourceMappingURL=EmailInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailInput.js","sourceRoot":"","sources":["../../../../packages/ui/src/emailInput/EmailInput.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
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
+ var react_1 = __importDefault(require("react"));
18
+ var storybook_state_1 = require("@sambego/storybook-state");
19
+ var addon_actions_1 = require("@storybook/addon-actions");
20
+ var addon_knobs_1 = require("@storybook/addon-knobs");
21
+ var react_2 = require("@storybook/react");
22
+ var Input_1 = require("../input/Input");
23
+ var EmailInput_1 = __importDefault(require("./EmailInput"));
24
+ var onChangeAction = addon_actions_1.action('onChange');
25
+ var inputState = new storybook_state_1.Store({
26
+ value: 'value'
27
+ });
28
+ var defaultProps = {
29
+ label: 'Label',
30
+ type: Input_1.InputType.EMAIL,
31
+ disabled: false,
32
+ error: false,
33
+ onChange: onChangeAction
34
+ };
35
+ react_2.storiesOf('EmailInput', module).add('default', function () {
36
+ var disabled = addon_knobs_1.boolean('Input disabled?', false);
37
+ var isSuggestionEnabled = addon_knobs_1.boolean('Email suggestion enabled?', true);
38
+ return (react_1.default.createElement(storybook_state_1.State, { store: inputState },
39
+ react_1.default.createElement(EmailInput_1.default, __assign({}, defaultProps, { isSuggestionEnabled: isSuggestionEnabled, disabled: disabled, value: inputState.get('value'), onChange: function (value) {
40
+ inputState.set({ value: value });
41
+ onChangeAction(value);
42
+ } }))));
43
+ });
44
+ //# sourceMappingURL=EmailInput.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailInput.stories.js","sourceRoot":"","sources":["../../../../packages/ui/src/emailInput/EmailInput.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,4DAAwD;AACxD,0DAAkD;AAClD,sDAAiD;AACjD,0CAA6C;AAE7C,wCAA2C;AAC3C,4DAAsC;AAGtC,IAAM,cAAc,GAAG,sBAAM,CAAC,UAAU,CAAC,CAAC;AAE1C,IAAM,UAAU,GAAG,IAAI,uBAAK,CAAC;IAC3B,KAAK,EAAE,OAAO;CACf,CAAC,CAAC;AAEH,IAAM,YAAY,GAAoB;IACpC,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,iBAAS,CAAC,KAAK;IACrB,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,cAAc;CACzB,CAAC;AAEF,iBAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE;IAC7C,IAAM,QAAQ,GAAG,qBAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACnD,IAAM,mBAAmB,GAAG,qBAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IAEvE,OAAO,CACL,8BAAC,uBAAK,IAAC,KAAK,EAAE,UAAU;QACtB,8BAAC,oBAAU,eACL,YAAY,IAChB,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAC9B,QAAQ,EAAE,UAAA,KAAK;gBACb,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;gBAC1B,cAAc,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,IACD,CACI,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SuggestionLayout: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const Button: import("styled-components").StyledComponent<"button", any, {}, never>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.Button = exports.SuggestionLayout = void 0;
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ var __1 = require("../../..");
13
+ exports.SuggestionLayout = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n color: ", ";\n padding: 0 ", ";\n margin-top: ", ";\n"], ["\n ", "\n color: ", ";\n padding: 0 ", ";\n margin-top: ", ";\n"])), __1.paragraphs.body2, __1.colors.green.base, __1.convertPxToRem(16), __1.convertPxToRem(8));
14
+ exports.Button = styled_components_1.default.button(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border: none;\n margin: 0;\n padding: 0;\n width: auto;\n overflow: visible;\n\n background: transparent;\n\n /* inherit font & color from ancestor */\n color: ", ";\n font: inherit;\n font-weight: bold;\n text-decoration: underline;\n cursor: pointer;\n\n line-height: normal;\n\n /* Corrects font smoothing for webkit */\n -webkit-font-smoothing: inherit;\n -moz-osx-font-smoothing: inherit;\n\n -webkit-appearance: none;\n"], ["\n border: none;\n margin: 0;\n padding: 0;\n width: auto;\n overflow: visible;\n\n background: transparent;\n\n /* inherit font & color from ancestor */\n color: ", ";\n font: inherit;\n font-weight: bold;\n text-decoration: underline;\n cursor: pointer;\n\n line-height: normal;\n\n /* Corrects font smoothing for webkit */\n -webkit-font-smoothing: inherit;\n -moz-osx-font-smoothing: inherit;\n\n -webkit-appearance: none;\n"])), __1.colors.green.base);
15
+ var templateObject_1, templateObject_2;
16
+ //# sourceMappingURL=EmailInput.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailInput.styles.js","sourceRoot":"","sources":["../../../../packages/ui/src/emailInput/EmailInput.styles.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,wEAAuC;AAEvC,8BAA8D;AAEjD,QAAA,gBAAgB,GAAG,2BAAM,CAAC,GAAG,wIAAA,MACtC,EAAgB,aACT,EAAiB,kBACb,EAAkB,mBACjB,EAAiB,KAChC,KAJG,cAAU,CAAC,KAAK,EACT,UAAM,CAAC,KAAK,CAAC,IAAI,EACb,kBAAc,CAAC,EAAE,CAAC,EACjB,kBAAc,CAAC,CAAC,CAAC,EAC/B;AAEW,QAAA,MAAM,GAAG,2BAAM,CAAC,MAAM,kgBAAA,6KAUxB,EAAiB,gRAa3B,KAbU,UAAM,CAAC,KAAK,CAAC,IAAI,EAa1B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
33
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34
+ return new (P || (P = Promise))(function (resolve, reject) {
35
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
36
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
37
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
38
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
39
+ });
40
+ };
41
+ var __generator = (this && this.__generator) || function (thisArg, body) {
42
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
43
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
44
+ function verb(n) { return function (v) { return step([n, v]); }; }
45
+ function step(op) {
46
+ if (f) throw new TypeError("Generator is already executing.");
47
+ while (_) try {
48
+ 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;
49
+ if (y = 0, t) op = [op[0] & 2, t.value];
50
+ switch (op[0]) {
51
+ case 0: case 1: t = op; break;
52
+ case 4: _.label++; return { value: op[1], done: false };
53
+ case 5: _.label++; y = op[1]; op = [0]; continue;
54
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
55
+ default:
56
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
57
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
58
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
59
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
60
+ if (t[2]) _.ops.pop();
61
+ _.trys.pop(); continue;
62
+ }
63
+ op = body.call(thisArg, _);
64
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
65
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
66
+ }
67
+ };
68
+ var __rest = (this && this.__rest) || function (s, e) {
69
+ var t = {};
70
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
71
+ t[p] = s[p];
72
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
73
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
74
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
75
+ t[p[i]] = s[p[i]];
76
+ }
77
+ return t;
78
+ };
79
+ var __importDefault = (this && this.__importDefault) || function (mod) {
80
+ return (mod && mod.__esModule) ? mod : { "default": mod };
81
+ };
82
+ Object.defineProperty(exports, "__esModule", { value: true });
83
+ var react_1 = __importStar(require("react"));
84
+ var react_2 = require("@testing-library/react");
85
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
86
+ var EmailInput_1 = __importDefault(require("./EmailInput"));
87
+ var mockChange = jest.fn();
88
+ var mockOnBlur = jest.fn();
89
+ var mockOnFocus = jest.fn();
90
+ var defaultProps = {
91
+ label: 'Email address',
92
+ disabled: false,
93
+ error: false,
94
+ value: '',
95
+ dataTest: 'input',
96
+ onBlur: mockOnBlur,
97
+ onFocus: mockOnFocus,
98
+ onChange: mockChange
99
+ };
100
+ describe('EmailInput', function () {
101
+ var TestComponent = function (_a) {
102
+ var onChange = _a.onChange, value = _a.value, restProps = __rest(_a, ["onChange", "value"]);
103
+ var _b = react_1.useState(value), internalValue = _b[0], setInternalValue = _b[1];
104
+ var handleChange = function (newValue) {
105
+ setInternalValue(newValue);
106
+ onChange && onChange(newValue);
107
+ };
108
+ return (react_1.default.createElement(EmailInput_1.default, __assign({ onChange: handleChange, value: internalValue }, restProps)));
109
+ };
110
+ afterEach(function () { return jest.resetAllMocks(); });
111
+ afterAll(function () { return jest.clearAllMocks(); });
112
+ it('should render component', function () {
113
+ react_2.render(react_1.default.createElement(EmailInput_1.default, __assign({}, defaultProps)));
114
+ expect(react_2.screen.getByRole('textbox', { name: 'Email address' })).toBeInTheDocument();
115
+ expect(react_2.screen.queryByTestId('email-suggestion')).not.toBeInTheDocument();
116
+ });
117
+ it('should render suggestion on blur', function () { return __awaiter(void 0, void 0, void 0, function () {
118
+ return __generator(this, function (_a) {
119
+ switch (_a.label) {
120
+ case 0:
121
+ react_2.render(react_1.default.createElement(TestComponent, __assign({}, defaultProps)));
122
+ react_2.screen.getByRole('textbox').focus();
123
+ return [4 /*yield*/, react_2.waitFor(function () { return expect(mockOnFocus).toHaveBeenCalledTimes(1); })];
124
+ case 1:
125
+ _a.sent();
126
+ user_event_1.default.type(react_2.screen.getByRole('textbox'), 'leo@gmaul.com');
127
+ expect(react_2.screen.queryByTestId('email-suggestion')).not.toBeInTheDocument();
128
+ react_2.screen.getByRole('textbox').blur();
129
+ expect(react_2.screen.queryByTestId('email-suggestion')).not.toBeInTheDocument();
130
+ return [4 /*yield*/, react_2.waitFor(function () {
131
+ expect(mockOnBlur).toHaveBeenCalledTimes(1);
132
+ expect(react_2.screen.getByTestId('email-suggestion')).toBeInTheDocument();
133
+ expect(react_2.screen.getByTestId('email-suggestion')).toHaveTextContent(/Vouliez-vous écrire leo@gmail\.com/);
134
+ })];
135
+ case 2:
136
+ _a.sent();
137
+ return [2 /*return*/];
138
+ }
139
+ });
140
+ }); });
141
+ it('should not render suggestion when disabled', function () { return __awaiter(void 0, void 0, void 0, function () {
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0:
145
+ react_2.render(react_1.default.createElement(TestComponent, __assign({}, defaultProps, { isSuggestionEnabled: false })));
146
+ react_2.screen.getByRole('textbox').focus();
147
+ return [4 /*yield*/, react_2.waitFor(function () { return expect(mockOnFocus).toHaveBeenCalledTimes(1); })];
148
+ case 1:
149
+ _a.sent();
150
+ user_event_1.default.type(react_2.screen.getByRole('textbox'), 'leo@gmaul.com');
151
+ react_2.screen.getByRole('textbox').blur();
152
+ return [4 /*yield*/, react_2.waitFor(function () {
153
+ expect(mockOnBlur).toHaveBeenCalledTimes(1);
154
+ expect(react_2.screen.queryByTestId('email-suggestion')).not.toBeInTheDocument();
155
+ })];
156
+ case 2:
157
+ _a.sent();
158
+ return [2 /*return*/];
159
+ }
160
+ });
161
+ }); });
162
+ it('should apply suggestion', function () { return __awaiter(void 0, void 0, void 0, function () {
163
+ return __generator(this, function (_a) {
164
+ switch (_a.label) {
165
+ case 0:
166
+ react_2.render(react_1.default.createElement(TestComponent, __assign({}, defaultProps)));
167
+ react_2.screen.getByRole('textbox').focus();
168
+ user_event_1.default.type(react_2.screen.getByRole('textbox'), 'leo@gmaul.com');
169
+ react_2.screen.getByRole('textbox').blur();
170
+ return [4 /*yield*/, react_2.waitFor(function () {
171
+ expect(react_2.screen.getByRole('textbox')).toHaveValue('leo@gmaul.com');
172
+ expect(react_2.screen.getByTestId('email-suggestion')).toBeInTheDocument();
173
+ })];
174
+ case 1:
175
+ _a.sent();
176
+ user_event_1.default.click(react_2.screen.getByRole('button', { name: 'Oui' }));
177
+ return [4 /*yield*/, react_2.waitFor(function () {
178
+ expect(mockChange).toHaveBeenLastCalledWith('leo@gmail.com');
179
+ expect(react_2.screen.getByRole('textbox')).toHaveValue('leo@gmail.com');
180
+ expect(react_2.screen.queryByTestId('email-suggestion')).not.toBeInTheDocument();
181
+ })];
182
+ case 2:
183
+ _a.sent();
184
+ return [2 /*return*/];
185
+ }
186
+ });
187
+ }); });
188
+ it('should discard suggestion', function () { return __awaiter(void 0, void 0, void 0, function () {
189
+ return __generator(this, function (_a) {
190
+ switch (_a.label) {
191
+ case 0:
192
+ react_2.render(react_1.default.createElement(TestComponent, __assign({}, defaultProps)));
193
+ react_2.screen.getByRole('textbox').focus();
194
+ user_event_1.default.type(react_2.screen.getByRole('textbox'), 'leo@gmaul.com');
195
+ react_2.screen.getByRole('textbox').blur();
196
+ return [4 /*yield*/, react_2.waitFor(function () {
197
+ expect(react_2.screen.getByRole('textbox')).toHaveValue('leo@gmaul.com');
198
+ expect(react_2.screen.getByTestId('email-suggestion')).toBeInTheDocument();
199
+ })];
200
+ case 1:
201
+ _a.sent();
202
+ user_event_1.default.click(react_2.screen.getByRole('button', { name: 'Non' }));
203
+ return [4 /*yield*/, react_2.waitFor(function () {
204
+ expect(react_2.screen.queryByTestId('email-suggestion')).not.toBeInTheDocument();
205
+ expect(mockChange).toHaveBeenLastCalledWith('leo@gmaul.com');
206
+ expect(react_2.screen.getByRole('textbox')).toHaveValue('leo@gmaul.com');
207
+ })];
208
+ case 2:
209
+ _a.sent();
210
+ return [2 /*return*/];
211
+ }
212
+ });
213
+ }); });
214
+ });
215
+ //# sourceMappingURL=EmailInput.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailInput.test.js","sourceRoot":"","sources":["../../../../packages/ui/src/emailInput/EmailInput.test.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proprioo/salatim",
3
- "version": "18.1.4",
3
+ "version": "18.2.0",
4
4
  "description": "Proprioo component library",
5
5
  "keywords": [
6
6
  "components",
@@ -93,10 +93,12 @@
93
93
  "@storybook/react": "^6.1.16",
94
94
  "@testing-library/jest-dom": "^5.12.0",
95
95
  "@testing-library/react": "^11.2.7",
96
+ "@testing-library/react-hooks": "^7.0.2",
96
97
  "@testing-library/user-event": "^13.1.9",
97
98
  "@types/googlemaps": "^3.43.2",
98
99
  "@types/jest": "^26.0.20",
99
100
  "@types/jest-axe": "^3.5.1",
101
+ "@types/mailcheck": "^1.1.33",
100
102
  "@types/react": "^16.14.2",
101
103
  "@types/react-color": "^3.0.4",
102
104
  "@types/react-dates": "^21.8.1",
@@ -156,6 +158,7 @@
156
158
  },
157
159
  "dependencies": {
158
160
  "@types/yup": "^0.29.11",
161
+ "mailcheck": "^1.1.1",
159
162
  "react-id-generator": "^3.0.1",
160
163
  "yup": "^0.32.9"
161
164
  }