react-core-ts 1.0.7 → 1.0.8

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.
@@ -0,0 +1,155 @@
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
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ var react_1 = __importStar(require("react"));
41
+ var react_dom_1 = __importDefault(require("react-dom"));
42
+ var ExpandableToolTip = function (_a) {
43
+ var title = _a.title, children = _a.children, enabled = _a.enabled;
44
+ var _b = (0, react_1.useState)("bottom-position"), dropdownPosition = _b[0], setDropdownPosition = _b[1];
45
+ var dropRef = (0, react_1.useRef)(null);
46
+ var menuButtonRef = (0, react_1.useRef)(null);
47
+ var _c = (0, react_1.useState)(false), visible = _c[0], setVisible = _c[1];
48
+ var _d = (0, react_1.useState)({
49
+ top: 0,
50
+ left: 0,
51
+ width: 0,
52
+ }), tooltipStyle = _d[0], setTooltipStyle = _d[1];
53
+ var adjustDropdownPosition = function () {
54
+ var _a;
55
+ if (menuButtonRef.current) {
56
+ var inputBoxRect = (_a = menuButtonRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
57
+ var viewportHeight = window.innerHeight;
58
+ var spaceAbove = inputBoxRect.top;
59
+ var spaceBelow = viewportHeight - inputBoxRect.bottom;
60
+ if (spaceAbove > spaceBelow) {
61
+ if (spaceAbove > 90 && spaceBelow < 120) {
62
+ return "top-position";
63
+ }
64
+ else {
65
+ return "bottom-position";
66
+ }
67
+ }
68
+ else {
69
+ var diff = spaceBelow - spaceAbove;
70
+ if (spaceAbove > 90 && spaceBelow > 90 && diff < 90) {
71
+ return "top-position";
72
+ }
73
+ else {
74
+ return "bottom-position";
75
+ }
76
+ }
77
+ }
78
+ };
79
+ var handleMouseEnter = function (e) {
80
+ var _a;
81
+ if (menuButtonRef.current) {
82
+ var dropPosition = adjustDropdownPosition();
83
+ setDropdownPosition(dropPosition);
84
+ var rect = e.target.getBoundingClientRect();
85
+ var top_1 = rect.bottom + window.scrollY;
86
+ var left = rect.left + window.scrollX;
87
+ var height = rect.height;
88
+ var width = (_a = dropRef === null || dropRef === void 0 ? void 0 : dropRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth;
89
+ if (dropPosition === "bottom-position") {
90
+ top_1 = top_1 + height / 2 - 5;
91
+ }
92
+ else {
93
+ top_1 = top_1 - height * 2 + 15;
94
+ }
95
+ setTooltipStyle({
96
+ top: top_1,
97
+ left: left,
98
+ width: width,
99
+ });
100
+ setVisible(true);
101
+ }
102
+ };
103
+ var handleMouseLeave = function () {
104
+ setVisible(false);
105
+ };
106
+ (0, react_1.useLayoutEffect)(function () {
107
+ var updateTooltipPosition = function () {
108
+ if (dropRef.current && visible && tooltipStyle) {
109
+ var tooltipHeight_1 = dropRef.current.offsetHeight;
110
+ var tooltipWidth_1 = dropRef.current.offsetWidth;
111
+ var boxWidth_1 = menuButtonRef.current.offsetWidth;
112
+ setTooltipStyle(function (prevStyle) { return (__assign(__assign({}, prevStyle), { left: prevStyle.left + boxWidth_1 / 2 - tooltipWidth_1 / 2 < 0
113
+ ? 20
114
+ : prevStyle.left + boxWidth_1 / 2 - tooltipWidth_1 / 2, width: tooltipWidth_1, top: dropdownPosition === "bottom-position"
115
+ ? prevStyle.top
116
+ : prevStyle.top - tooltipHeight_1 })); });
117
+ }
118
+ };
119
+ if (visible) {
120
+ updateTooltipPosition();
121
+ }
122
+ window.addEventListener("resize", updateTooltipPosition);
123
+ return function () {
124
+ window.removeEventListener("resize", updateTooltipPosition);
125
+ };
126
+ }, [visible, dropdownPosition]);
127
+ (0, react_1.useEffect)(function () {
128
+ var handleClickOutside = function (event) {
129
+ if (dropRef.current && !dropRef.current.contains(event.target)) {
130
+ setVisible(false);
131
+ }
132
+ };
133
+ document.addEventListener("mousedown", handleClickOutside);
134
+ return function () {
135
+ document.removeEventListener("mousedown", handleClickOutside);
136
+ };
137
+ }, []);
138
+ return (react_1.default.createElement(react_1.default.Fragment, null,
139
+ react_1.default.createElement("div", { onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, ref: menuButtonRef, style: { display: "flex" } },
140
+ children,
141
+ visible &&
142
+ enabled &&
143
+ tooltipStyle &&
144
+ react_dom_1.default.createPortal(react_1.default.createElement("span", { ref: function (node) { return (dropRef.current = node); }, className: "tooltiptext ".concat(dropdownPosition == "bottom-position" ? "down" : "up"), style: {
145
+ top: tooltipStyle.top,
146
+ left: tooltipStyle.left,
147
+ opacity: 1,
148
+ width: tooltipStyle.width,
149
+ minWidth: "60px",
150
+ maxWidth: "200px",
151
+ visibility: "visible",
152
+ } }, title), document.body))));
153
+ };
154
+ exports.default = ExpandableToolTip;
155
+ //# sourceMappingURL=expandableTootltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expandableTootltip.js","sourceRoot":"","sources":["../../src/utilities/expandableTootltip.tsx"],"names":[],"mappings":"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"}
package/docs/App.tsx CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
 
3
- import AutoComplete from '../src/AutoComplete';
3
+ import {AutoComplete, ExpandableAutoComplete} from '../src/index';
4
4
 
5
5
  import '../src/styles/global.css';
6
6
 
@@ -207,6 +207,36 @@ export default function App() {
207
207
  onChange={(e) => console.log(e, 'onchange')}
208
208
  />
209
209
  </div>
210
+
211
+ <div className="autocomplete-section">
212
+ <h2>Expandable Auto Suggestion</h2>
213
+ <p>
214
+ As you type, suggestions will appear based on your input, aiding
215
+ in quicker and potentially more accurate data entry. This mode
216
+ supports both listed and non-listed input, providing flexibility
217
+ in user input while still offering assistance.
218
+ </p>
219
+ </div>
220
+ <div style={{ width: 300 }}>
221
+ <ExpandableAutoComplete
222
+ label="Auto Suggestion"
223
+ name="sample"
224
+ type="auto_suggestion"
225
+ // async
226
+ desc="name"
227
+ isMultiple
228
+ expandable={true}
229
+ descId="id"
230
+ paginationEnabled={false}
231
+ initialLoad={true}
232
+ itemCount={5}
233
+ // nextBlock={nexBlock}
234
+ placeholder="Auto Suggestion"
235
+ selectedItems={[{ name: 'test', id: '1' }]}
236
+ getData={getData}
237
+ onChange={(e) => console.log(e, 'onchange')}
238
+ />
239
+ </div>
210
240
  </div>
211
241
  </div>
212
242
  </React.Fragment>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-core-ts",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "React Components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",