allaw-ui 0.0.334 → 0.0.336

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,9 @@
1
+ import React from "react";
2
+ export type FilterButtonPrimaryProps = {
3
+ onClick: any;
4
+ zIndex?: string;
5
+ children: any;
6
+ props?: any;
7
+ };
8
+ declare function FilterButtonPrimary({ onClick, zIndex, children, ...props }: FilterButtonPrimaryProps | any): React.JSX.Element;
9
+ export default FilterButtonPrimary;
@@ -0,0 +1,46 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React from "react";
24
+ function FilterButtonPrimary(_a) {
25
+ var onClick = _a.onClick, _b = _a.zIndex, zIndex = _b === void 0 ? "100" : _b, children = _a.children, props = __rest(_a, ["onClick", "zIndex", "children"]);
26
+ return (React.createElement("button", __assign({ style: {
27
+ fontWeight: "600",
28
+ backgroundColor: "var(--primary-light-grey, #F4F7FB)",
29
+ padding: "10px",
30
+ borderRadius: "5px",
31
+ fontSize: "14px",
32
+ textWrap: "nowrap",
33
+ border: "1px solid var(--primary-venom-grey, #E6EDF5)",
34
+ position: "sticky",
35
+ color: "#000",
36
+ display: "flex",
37
+ cursor: "pointer",
38
+ flexDirection: "row",
39
+ gap: "0.5rem",
40
+ alignItems: "center",
41
+ zIndex: zIndex,
42
+ }, onClick: function () { return onClick && onClick(); } }, props),
43
+ React.createElement("i", { className: "allaw-icon-filter", style: { fontSize: "14px", color: "#25BEEB" } }),
44
+ children));
45
+ }
46
+ export default FilterButtonPrimary;
@@ -46,9 +46,9 @@ var OAuthProviderButton = function (_a) {
46
46
  }
47
47
  };
48
48
  var updateLabel = function () {
49
- var _a;
50
- var _b = getLabels(), labels = _b.labels, shortLabels = _b.shortLabels;
51
- var maxWidth = ((_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0;
49
+ var _a, _b;
50
+ var _c = getLabels(), labels = _c.labels, shortLabels = _c.shortLabels;
51
+ var maxWidth = (_b = (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) !== null && _b !== void 0 ? _b : 0;
52
52
  var thresholdWidth = getThresholdWidth(size);
53
53
  var newLabel = maxWidth < thresholdWidth
54
54
  ? shortLabels[provider]
@@ -68,6 +68,12 @@ var OAuthProviderButton = function (_a) {
68
68
  }
69
69
  };
70
70
  }, [provider, type, size]);
71
+ // Force an update after the first render to ensure the correct label is set
72
+ useEffect(function () {
73
+ if (buttonRef.current) {
74
+ updateLabel();
75
+ }
76
+ }, []);
71
77
  var renderIcon = function () {
72
78
  var iconSizes = {
73
79
  google: size * 0.8,
@@ -1,4 +1,5 @@
1
1
  export { default as FavoriteToggle } from "./FavoriteToggle";
2
+ export { default as FilterButtonPrimary } from "./FilterButtonPrimary";
2
3
  export { default as FilterButton } from "./FilterButton";
3
4
  export { default as GhostButton } from "./GhostButton";
4
5
  export { default as IconButton } from "./IconButton";
@@ -18,3 +19,4 @@ export type { SecondaryButtonProps } from "./SecondaryButton";
18
19
  export type { TabNavigationProps } from "./TabNavigation";
19
20
  export type { TertiaryButtonProps } from "./TertiaryButton";
20
21
  export type { OAuthProviderButtonProps } from "./OAuthProviderButton";
22
+ export type { FilterButtonPrimaryProps } from "./FilterButtonPrimary";
@@ -1,4 +1,5 @@
1
1
  export { default as FavoriteToggle } from "./FavoriteToggle";
2
+ export { default as FilterButtonPrimary } from "./FilterButtonPrimary";
2
3
  export { default as FilterButton } from "./FilterButton";
3
4
  export { default as GhostButton } from "./GhostButton";
4
5
  export { default as IconButton } from "./IconButton";
@@ -0,0 +1,80 @@
1
+ .backdrop {
2
+ position: absolute;
3
+ top: 0;
4
+ left: 0;
5
+ height: 100vh;
6
+ width: 100vw;
7
+ background: linear-gradient(180deg, rgba(26, 50, 56, 0.00) 0%, rgba(2, 9, 11, 0.45) 100%);
8
+ z-index: 1000;
9
+ }
10
+
11
+ .baseFilter {
12
+ position: relative;
13
+ width: fit-content;
14
+ }
15
+
16
+ .options {
17
+ position: absolute;
18
+ top: 120%;
19
+ left: 0;
20
+ width: fit-content;
21
+ border: 0.5px solid #ddd;
22
+ border-radius: 4px;
23
+ background-color: #ffffff;
24
+ box-shadow: rgba(9, 30, 66, 0.15) 0px 8px 12px 0px;
25
+ z-index: 2000;
26
+ padding: 0.4rem 0rem;
27
+ }
28
+
29
+ .item {
30
+ background: none;
31
+ border: none;
32
+ display: flex;
33
+ flex-direction: row;
34
+ align-items: center;
35
+ gap: 0.75rem;
36
+ padding: 0.5rem 1rem;
37
+ cursor: pointer;
38
+ border-left: 2px solid #FFF;
39
+ width: 100%;
40
+ color: #0000
41
+ }
42
+
43
+ .round {
44
+
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ border: 1px solid #D1DCE7;
49
+ border-radius: 3rem;
50
+ padding: 2px;
51
+ }
52
+
53
+ .selected {
54
+ background-color: #25BEEB;
55
+ min-width: 0.6rem;
56
+ min-height: 0.6rem;
57
+ border-radius: 1rem;
58
+ display: block;
59
+ }
60
+
61
+ .notSelected {
62
+ background-color: #FFF;
63
+ min-width: 0.6rem;
64
+ min-height: 0.6rem;
65
+ border-radius: 1rem;
66
+ display: block;
67
+ }
68
+
69
+ .item > span {
70
+ text-wrap: nowrap;
71
+ font-family: var(--font-open-sans);
72
+ font-size: 14px;
73
+ font-weight: 500;
74
+ color: #000;
75
+ }
76
+
77
+ .item:hover {
78
+ background-color: #EFF2F5;
79
+ border-left: 2px solid #25BEEB;
80
+ }
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import "./Basefiler.css";
3
+ export type FilterProps = {
4
+ tooltipContent: string;
5
+ tooltipId: string;
6
+ showIcon: boolean;
7
+ defaultSelectedValues?: string[];
8
+ filterData: {
9
+ value: string;
10
+ name: string;
11
+ }[];
12
+ setFilters: any;
13
+ multiselect?: boolean;
14
+ iconName?: string;
15
+ children?: any;
16
+ props?: any;
17
+ required?: boolean;
18
+ showNumIndic?: boolean;
19
+ isStatusTag?: boolean;
20
+ };
21
+ declare function BaseFilter({ tooltipContent, tooltipId, showNumIndic, required, isStatusTag, defaultSelectedValues, filterData, multiselect, setFilters, showIcon, iconName, children, ...props }: FilterProps): React.JSX.Element;
22
+ export default BaseFilter;
@@ -0,0 +1,87 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ import React, { useState } from "react";
33
+ import "./Basefiler.css";
34
+ import { AppointementStatusTag } from "../tags";
35
+ import { FilterButtonPrimary } from "../buttons";
36
+ function BaseFilter(_a) {
37
+ var tooltipContent = _a.tooltipContent, tooltipId = _a.tooltipId, _b = _a.showNumIndic, showNumIndic = _b === void 0 ? true : _b, _c = _a.required, required = _c === void 0 ? true : _c, isStatusTag = _a.isStatusTag, defaultSelectedValues = _a.defaultSelectedValues, filterData = _a.filterData, _d = _a.multiselect, multiselect = _d === void 0 ? false : _d, setFilters = _a.setFilters, showIcon = _a.showIcon, iconName = _a.iconName, children = _a.children, props = __rest(_a, ["tooltipContent", "tooltipId", "showNumIndic", "required", "isStatusTag", "defaultSelectedValues", "filterData", "multiselect", "setFilters", "showIcon", "iconName", "children"]);
38
+ var _e = useState(false), isOpen = _e[0], setIsOpen = _e[1];
39
+ var _f = useState(defaultSelectedValues ? defaultSelectedValues : []), selectedValues = _f[0], setSelectedValues = _f[1];
40
+ var handleButtonTap = function () {
41
+ isOpen ? handleClose() : setIsOpen(true);
42
+ };
43
+ var selectItem = function (value) {
44
+ if (multiselect) {
45
+ if (selectedValues &&
46
+ selectedValues.length > 0 &&
47
+ selectedValues.includes(value)) {
48
+ if (required && selectedValues.length == 1) {
49
+ return;
50
+ }
51
+ setSelectedValues(function (prevItems) {
52
+ return prevItems.filter(function (item) { return item !== value; });
53
+ });
54
+ }
55
+ else {
56
+ setSelectedValues(function (prevItems) { return __spreadArray(__spreadArray([], prevItems, true), [value], false); });
57
+ }
58
+ }
59
+ else {
60
+ setSelectedValues(value);
61
+ handleClose([value]);
62
+ }
63
+ };
64
+ var handleClose = function (values) {
65
+ setFilters(values ? values : selectedValues);
66
+ setIsOpen(false);
67
+ };
68
+ var Item = function (_a) {
69
+ var name = _a.name, value = _a.value;
70
+ return (React.createElement("button", { className: "item", onClick: function () { return selectItem(value); } },
71
+ React.createElement("div", { className: "round" },
72
+ React.createElement("div", { className: (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(value))
73
+ ? "selected"
74
+ : "notSelected" })),
75
+ isStatusTag ? (React.createElement(AppointementStatusTag, { status: value })) : (React.createElement("span", null, name))));
76
+ };
77
+ return (React.createElement(React.Fragment, null,
78
+ React.createElement("div", __assign({ className: "baseFilter" }, props),
79
+ React.createElement(FilterButtonPrimary, { onClick: function () { return handleButtonTap(); }, zIndex: isOpen ? "2000" : "+1" },
80
+ children,
81
+ React.createElement("p", { style: { color: "#25BEEB", fontWeight: "600" } }, showNumIndic && "(".concat(selectedValues.length, ")"))),
82
+ isOpen && (React.createElement("div", { className: "options" }, filterData &&
83
+ (filterData === null || filterData === void 0 ? void 0 : filterData.length) > 0 &&
84
+ filterData.map(function (item, idx) { return (React.createElement(Item, { name: item === null || item === void 0 ? void 0 : item.name, value: item === null || item === void 0 ? void 0 : item.value, key: idx })); })))),
85
+ isOpen && (React.createElement("div", { className: "backdrop", onClick: function () { return handleClose(); } }))));
86
+ }
87
+ export default BaseFilter;
@@ -0,0 +1,2 @@
1
+ export { default } from "./Filter";
2
+ export type { FilterProps } from "./Filter";
@@ -0,0 +1 @@
1
+ export { default } from "./Filter";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allaw-ui",
3
- "version": "0.0.334",
3
+ "version": "0.0.336",
4
4
  "description": "Composants UI pour l'application Allaw",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",