nestiq-component-library 1.1.142 → 1.1.144

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 (47) hide show
  1. package/dist/assets/images/Icon_rightArrow.svg +3 -0
  2. package/dist/assets/images/LayersIcon.svg +5 -0
  3. package/dist/assets/images/blackarrow-Right.svg +3 -0
  4. package/dist/assets/images/blckarrow-Left.svg +3 -0
  5. package/dist/assets/images/{card-arrow-left.55343410142dad3f.svg → card-arrow-left.28090aba4b4f2006.svg} +4 -4
  6. package/dist/assets/images/{card-arrow-right.60b3bf0e34c1800d.svg → card-arrow-right.c60af4cbbd49f3aa.svg} +4 -4
  7. package/dist/assets/images/chevron-left.svg +3 -0
  8. package/dist/assets/images/default-property.jpg +0 -0
  9. package/dist/assets/images/heartIcon.svg +3 -0
  10. package/dist/assets/images/icon-close-white.webp +0 -0
  11. package/dist/assets/images/icon_close 2.e41bb9a4db48e048.png +0 -0
  12. package/dist/assets/images/icon_close_2.png +0 -0
  13. package/dist/assets/images/icon_gallery.svg +4 -0
  14. package/dist/assets/images/icon_map.svg +10 -0
  15. package/dist/assets/images/icon_share_1.svg +3 -0
  16. package/dist/assets/images/{imooly.b46514ac970e6052.svg → imooly.890e3dd01ea33574.svg} +7 -7
  17. package/dist/assets/images/layer_icon.svg +5 -0
  18. package/dist/assets/images/locationIcon.0af399c78e0cdc20.svg +4 -0
  19. package/dist/assets/images/locationIcon.svg +4 -0
  20. package/dist/assets/images/locationIconBlack.svg +4 -0
  21. package/dist/assets/images/{more.ce14789c8d37e327.svg → more.1e158adc48fbb406.svg} +12 -12
  22. package/dist/assets/images/no-image-icon.png +0 -0
  23. package/dist/components/Button/Button.js +6 -0
  24. package/dist/components/ImageListPopup/ImageListPopup.js +26 -0
  25. package/dist/components/MessagePopup/ErrorPopup.d.ts +7 -0
  26. package/dist/components/Popup/Popup.js +12 -0
  27. package/dist/components/SharePopup/PopUp.d.ts +7 -0
  28. package/dist/index.es.js +34 -27
  29. package/dist/index.es.js.map +1 -1
  30. package/dist/index.js +34 -27
  31. package/dist/index.js.map +1 -1
  32. package/package.json +1 -1
  33. package/rollup.config.mjs +36 -36
  34. package/src/assets/images/card-arrow-left.svg +4 -4
  35. package/src/assets/images/card-arrow-right.svg +4 -4
  36. package/src/assets/images/imooly.svg +7 -7
  37. package/src/assets/images/more.svg +12 -12
  38. package/src/components/FloorPlanPopup/FloorPlanPopup.css +3 -3
  39. package/src/components/FloorPlanPopup/FloorPlanPopup.tsx +83 -83
  40. package/src/components/ImageListPopup/ImageListPopup.css +83 -83
  41. package/src/components/ImageListPopup/ImageListPopup.tsx +141 -141
  42. package/src/components/NewPropertyCard/NewPropertyCard.tsx +358 -358
  43. package/src/components/Popup/Popup.tsx +29 -29
  44. package/src/components/PropertyImageList/PropertyImageList.css +24 -6
  45. package/src/components/PropertyImageList/PropertyImageList.tsx +32 -25
  46. package/src/components/ToastWrapper/ToastWrapper.tsx +25 -25
  47. package/src/models/message.model.ts +7 -7
@@ -1,29 +1,29 @@
1
- import React from "react";
2
- import closeIcon from "../../assets/images/icon_close_2.png";
3
- import "./Popup.css";
4
- import "../../styles/common.css";
5
-
6
- interface PopupProps {
7
- children: React.ReactNode;
8
- onCloseClick: () => void;
9
- }
10
-
11
- const Popup: React.FC<PopupProps> = ({ onCloseClick, children }) => {
12
- return (
13
- <div className="popup-overlay">
14
- <div className="shareSection col-12 d-flex position-relative flex-column mx-auto justify-content-center col-5 col-lg-6 d-flex gap-4">
15
- <div className="end-0 top-0 position-absolute ">
16
- <img
17
- src={closeIcon}
18
- alt="close"
19
- className="closeIcon me-2"
20
- onClick={onCloseClick}
21
- />
22
- </div>
23
- {children}
24
- </div>
25
- </div>
26
- );
27
- };
28
-
29
- export default Popup;
1
+ import React from "react";
2
+ import closeIcon from "../../assets/images/icon_close_2.png";
3
+ import "./Popup.css";
4
+ import "../../styles/common.css";
5
+
6
+ interface PopupProps {
7
+ children: React.ReactNode;
8
+ onCloseClick: () => void;
9
+ }
10
+
11
+ const Popup: React.FC<PopupProps> = ({ onCloseClick, children }) => {
12
+ return (
13
+ <div className="popup-overlay">
14
+ <div className="shareSection col-12 d-flex position-relative flex-column mx-auto justify-content-center col-5 col-lg-6 d-flex gap-4">
15
+ <div className="end-0 top-0 position-absolute ">
16
+ <img
17
+ src={closeIcon}
18
+ alt="close"
19
+ className="closeIcon me-2"
20
+ onClick={onCloseClick}
21
+ />
22
+ </div>
23
+ {children}
24
+ </div>
25
+ </div>
26
+ );
27
+ };
28
+
29
+ export default Popup;
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
  .imagesArray {
43
- background-size: "cover" !important;
43
+ background-size: cover !important;
44
44
  }
45
45
  @media (max-width: 450px) {
46
46
  .Pimagelist {
@@ -67,7 +67,7 @@
67
67
  width: 58vw;
68
68
  }
69
69
  }
70
- @media (min-width: 820px) and (max-width: 850) {
70
+ @media (min-width: 820px) and (max-width: 850px) {
71
71
  .Pimagelist {
72
72
  }
73
73
  .mainImage {
@@ -75,9 +75,27 @@
75
75
  width: 58vw;
76
76
  }
77
77
  }
78
- *{
79
- -ms-overflow-style: none;
78
+
79
+ .image-thumbnail {
80
+ position: relative;
81
+ transition: opacity 0.3s ease-in-out;
82
+ height: 100%;
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+ }
87
+
88
+ .image-thumbnail img {
89
+ height: 100%;
90
+ object-fit: cover;
91
+ border-radius: 8px;
80
92
  }
81
- ::-webkit-scrollbar {
82
- display: none;
93
+
94
+ .image-thumbnail.greyed-out img {
95
+ filter: grayscale(100%) brightness(50%);
96
+ }
97
+
98
+ .image-thumbnail.selected img {
99
+ filter: none;
100
+ border: 2px solid #007bff; /* Highlight border for selected image */
83
101
  }
@@ -21,22 +21,22 @@ export default function PropertyImageList(prop: PopupProps) {
21
21
  const [isFloorPlanPopupOpen, setIsFloorPlanPopupOpen] = useState(false);
22
22
  const imageListRef = useRef<HTMLDivElement | null>(null);
23
23
 
24
- const handleArrowClickInMainImage = (direction: any) => {
25
- if (prop.pictureUrls.length === 0) return;
24
+ const handleArrowClickInMainImage = (direction: "left" | "right") => {
25
+ if (!prop.pictureUrls.length) return;
26
26
 
27
- let newIndex = currentImageIndex;
28
- if (direction === "left") {
29
- newIndex =
30
- (currentImageIndex - 1 + prop.pictureUrls.length) %
31
- prop.pictureUrls.length;
32
- } else if (direction === "right") {
33
- newIndex = (currentImageIndex + 1) % prop.pictureUrls.length;
34
- }
35
-
36
- setCurrentImageIndex(newIndex);
27
+ setCurrentImageIndex((prevIndex) => {
28
+ let newIndex;
29
+ if (direction === "left") {
30
+ newIndex =
31
+ (prevIndex - 1 + prop.pictureUrls.length) % prop.pictureUrls.length;
32
+ } else if (direction === "right") {
33
+ newIndex = (prevIndex + 1) % prop.pictureUrls.length;
34
+ }
35
+ return newIndex || 0;
36
+ });
37
37
 
38
38
  imageListRef.current!.scrollTo({
39
- left: newIndex * 150,
39
+ left: currentImageIndex * (direction === "left" ? -150 : 150),
40
40
  behavior: "smooth",
41
41
  });
42
42
  };
@@ -88,8 +88,8 @@ export default function PropertyImageList(prop: PopupProps) {
88
88
 
89
89
  {/* Image Thumbnails */}
90
90
  <div className="d-none d-md-block">
91
- <div className="mt-1 d-flex flex-row gap-1 col-12 secondList">
92
- <div className=" col-lg-6 col-6 d-flex flex-row p-1">
91
+ <div className="mt-1 d-flex flex-row gap-1 col-12 secondList">
92
+ <div className=" col-lg-6 col-6 d-flex flex-row py-0 px-1">
93
93
  <div className=" col-12 position-relative d-flex justify-content-center">
94
94
  <div
95
95
  className="col-1 h-100 d-flex position-absolute start-0"
@@ -105,18 +105,25 @@ export default function PropertyImageList(prop: PopupProps) {
105
105
  </div>
106
106
  </div>
107
107
  <div
108
- className="col-lg-10 rounded-3 h-100 d-flex flex-row gap-2 overflow-auto ms-1"
108
+ className="col-lg-10 rounded-3 h-100 d-flex flex-row gap-2 overflow-hidden"
109
109
  ref={imageListRef}
110
110
  >
111
111
  {prop.pictureUrls.length > 0 && (
112
- <div
113
- className="col-lg-5 h-100 d-flex gap-2 flex-row rounded-3"
114
- style={{ overflow: "hidden" }}
115
- >
112
+ <div className="col-lg-5 h-100 d-flex gap-2 flex-row rounded-3">
116
113
  {prop.pictureUrls.map((picture, index) => (
117
114
  <div
118
115
  key={index}
119
- className="col-lg-12 h-100 d-flex"
116
+ className={`col-lg-12 h-100 d-flex image-thumbnail ${
117
+ index === currentImageIndex
118
+ ? "selected"
119
+ : "greyed-out"
120
+ } ${
121
+ index === 0
122
+ ? "ms-1"
123
+ : index === prop.pictureUrls.length - 1
124
+ ? "me-1"
125
+ : ""
126
+ }`}
120
127
  onClick={() => {
121
128
  setCurrentImageIndex(index);
122
129
  imageListRef.current!.scrollTo({
@@ -141,7 +148,7 @@ export default function PropertyImageList(prop: PopupProps) {
141
148
  onClick={() => handleArrowClickInMainImage("right")}
142
149
  role="button"
143
150
  >
144
- <div className="col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3 ms-1">
151
+ <div className="col-lg-12 h-100 d-flex flex-column listImageButton border-0 rounded-3">
145
152
  <img
146
153
  src={iconArrowRight}
147
154
  className="arroIconColour "
@@ -155,7 +162,7 @@ export default function PropertyImageList(prop: PopupProps) {
155
162
  {/* Buttons for "Alle Fotos", "Grundriss", "Karte" */}
156
163
  <div className="col-7 col-lg-6 d-flex flex-row">
157
164
  <div
158
- className="col-lg-4 col-4 p-1"
165
+ className="col-lg-4 col-4 py-0 px-1"
159
166
  role="button"
160
167
  onClick={toggleAllPhotos}
161
168
  >
@@ -165,7 +172,7 @@ export default function PropertyImageList(prop: PopupProps) {
165
172
  </div>
166
173
  </div>
167
174
  <div
168
- className="col-lg-4 col-3 p-1"
175
+ className="col-lg-4 col-3 py-0 px-1"
169
176
  role="button"
170
177
  onClick={floorPlanClickHandler}
171
178
  >
@@ -175,7 +182,7 @@ export default function PropertyImageList(prop: PopupProps) {
175
182
  </div>
176
183
  </div>
177
184
  <div
178
- className="col-lg-4 col-3 p-1"
185
+ className="col-lg-4 col-3 py-0 px-1"
179
186
  role="button"
180
187
  onClick={() =>
181
188
  window.scrollTo({
@@ -1,25 +1,25 @@
1
- import React from "react";
2
- import { ToastContainer, toast } from "react-toastify";
3
-
4
- // Utility function to show a toast
5
- export const showToast = (
6
- message: string,
7
- type: "info" | "success" | "warning" | "error" = "info",
8
- ) => {
9
- toast(message, { type });
10
- };
11
-
12
- const ToastWrapper: React.FC = () => (
13
- <ToastContainer
14
- position="top-right"
15
- autoClose={5000}
16
- hideProgressBar={false}
17
- closeOnClick
18
- rtl={false}
19
- pauseOnFocusLoss
20
- draggable
21
- pauseOnHover
22
- />
23
- );
24
-
25
- export default ToastWrapper;
1
+ import React from "react";
2
+ import { ToastContainer, toast } from "react-toastify";
3
+
4
+ // Utility function to show a toast
5
+ export const showToast = (
6
+ message: string,
7
+ type: "info" | "success" | "warning" | "error" = "info",
8
+ ) => {
9
+ toast(message, { type });
10
+ };
11
+
12
+ const ToastWrapper: React.FC = () => (
13
+ <ToastContainer
14
+ position="top-right"
15
+ autoClose={5000}
16
+ hideProgressBar={false}
17
+ closeOnClick
18
+ rtl={false}
19
+ pauseOnFocusLoss
20
+ draggable
21
+ pauseOnHover
22
+ />
23
+ );
24
+
25
+ export default ToastWrapper;
@@ -1,7 +1,7 @@
1
- export interface MessageModel {
2
- themeId: string;
3
- subject: string;
4
- messageText: string;
5
- firstName: string;
6
- lastName: string;
7
- }
1
+ export interface MessageModel {
2
+ themeId: string;
3
+ subject: string;
4
+ messageText: string;
5
+ firstName: string;
6
+ lastName: string;
7
+ }