ekm-ui 0.4.26 → 0.4.28

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.
@@ -10,7 +10,8 @@ Browserslist: caniuse-lite is outdated. Please run:
10
10
  npx update-browserslist-db@latest
11
11
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
12
12
  DTS Build start
13
- DTS ⚡️ Build success in 66665ms
13
+ "HiArchive", "HiCurrencyDollar", "HiInbox", "HiLogout", "HiOutlineTicket", "HiShoppingBag", "HiUserCircle", "HiUsers" and "HiViewGrid" are imported from external module "react-icons/hi" but never used in "dist/chunk-XXP5K6Y4.js".
14
+ DTS ⚡️ Build success in 70066ms
14
15
  DTS dist/index.d.ts 3.59 KB
15
16
  DTS dist/footer-heart-icon.d.ts 70.00 B
16
17
  DTS dist/accordion.d.ts 2.25 KB
@@ -87,31 +88,30 @@ Browserslist: caniuse-lite is outdated. Please run:
87
88
  DTS dist/featurePageComponents/mini-feature-block.d.ts 254.00 B
88
89
  DTS dist/file-picker/file-listing.d.ts 992.00 B
89
90
  DTS dist/product-picker/product-listing.d.ts 890.00 B
90
- "HiArchive", "HiCurrencyDollar", "HiInbox", "HiLogout", "HiOutlineTicket", "HiShoppingBag", "HiUserCircle", "HiUsers" and "HiViewGrid" are imported from external module "react-icons/hi" but never used in "dist/chunk-XXP5K6Y4.js".
91
- ESM dist/product-picker/product-modal.css 123.58 KB
92
- ESM dist/file-picker/file-picker.css 123.58 KB
93
- ESM dist/layout/layout.css 123.57 KB
94
- ESM dist/country-picker/country-modal.css 123.58 KB
95
91
  ESM dist/stacked-list-item.css 123.58 KB
96
92
  ESM dist/table-result-block.css 123.58 KB
97
93
  ESM dist/index.css 123.57 KB
98
94
  ESM dist/card-payment-block.css 123.58 KB
99
95
  ESM dist/drag-and-drop.css 123.58 KB
100
- ESM dist/product-picker/product-modal.css.map 175.52 KB
101
- ESM dist/file-picker/file-picker.css.map 175.52 KB
102
- ESM dist/layout/layout.css.map 175.52 KB
103
- ESM dist/country-picker/country-modal.css.map 175.52 KB
96
+ ESM dist/product-picker/product-modal.css 123.58 KB
97
+ ESM dist/file-picker/file-picker.css 123.58 KB
98
+ ESM dist/layout/layout.css 123.57 KB
99
+ ESM dist/country-picker/country-modal.css 123.58 KB
104
100
  ESM dist/stacked-list-item.css.map 175.52 KB
105
101
  ESM dist/table-result-block.css.map 175.52 KB
106
102
  ESM dist/index.css.map 175.52 KB
107
103
  ESM dist/card-payment-block.css.map 175.52 KB
108
104
  ESM dist/drag-and-drop.css.map 175.52 KB
105
+ ESM dist/product-picker/product-modal.css.map 175.52 KB
106
+ ESM dist/file-picker/file-picker.css.map 175.52 KB
107
+ ESM dist/layout/layout.css.map 175.52 KB
108
+ ESM dist/country-picker/country-modal.css.map 175.52 KB
109
109
  ESM dist/chunk-Z4LPO673.js 1.34 KB
110
110
  ESM dist/sort/sort.js 176.00 B
111
111
  ESM dist/table-header/table-header.js 284.00 B
112
112
  ESM dist/toast/index.js 189.00 B
113
- ESM dist/nbui/nbui-container.js 165.00 B
114
113
  ESM dist/tooltip/tooltip.js 182.00 B
114
+ ESM dist/nbui/nbui-container.js 165.00 B
115
115
  ESM dist/nbui/nbui-footer.js 159.00 B
116
116
  ESM dist/nbui/nbui-page-layout.js 261.00 B
117
117
  ESM dist/pagination/pagination.js 157.00 B
@@ -122,13 +122,13 @@ Browserslist: caniuse-lite is outdated. Please run:
122
122
  ESM dist/nbui/nbui-card-form.js 165.00 B
123
123
  ESM dist/nbui/nbui-card-image.js 167.00 B
124
124
  ESM dist/nbui/nbui-card-lg.js 164.00 B
125
- ESM dist/nbui/nbui-card-paragraphs.js 177.00 B
126
125
  ESM dist/nbui/nbui-card-paragraphs-lg.js 186.00 B
126
+ ESM dist/nbui/nbui-card-paragraphs.js 177.00 B
127
127
  ESM dist/nbui/nbui-card-sm.js 164.00 B
128
128
  ESM dist/nbui/nbui-card-table.js 167.00 B
129
129
  ESM dist/nbui/nbui-card.js 155.00 B
130
- ESM dist/feature-cards/staff-pick-card.js 165.00 B
131
130
  ESM dist/feature-cards/feature-card.js 253.00 B
131
+ ESM dist/feature-cards/staff-pick-card.js 165.00 B
132
132
  ESM dist/featurePageComponents/feature-page-group.js 171.00 B
133
133
  ESM dist/featurePageComponents/mini-feature-block.js 738.00 B
134
134
  ESM dist/file-picker/file-listing.js 218.00 B
@@ -164,8 +164,8 @@ Browserslist: caniuse-lite is outdated. Please run:
164
164
  ESM dist/ekm-logo.js 150.00 B
165
165
  ESM dist/fixed-alert.js 246.00 B
166
166
  ESM dist/footer-heart-icon.js 56.43 KB
167
- ESM dist/image-thumbnail.js 164.00 B
168
167
  ESM dist/form-row.js 180.00 B
168
+ ESM dist/image-thumbnail.js 164.00 B
169
169
  ESM dist/index.js 3.83 KB
170
170
  ESM dist/card-payment-block.js 2.13 KB
171
171
  ESM dist/card.js 173.00 B
@@ -174,16 +174,16 @@ Browserslist: caniuse-lite is outdated. Please run:
174
174
  ESM dist/dashboard-notification.js 238.00 B
175
175
  ESM dist/date-range-picker.js 347.00 B
176
176
  ESM dist/drag-and-drop.js 2.12 KB
177
- ESM dist/chunk-JB5PNJCD.js 29.10 KB
177
+ ESM dist/chunk-ZJIHNQR7.js 29.10 KB
178
178
  ESM dist/chunk-52VBZOHL.js 2.06 KB
179
+ ESM dist/chunk-HE5X7TRV.js 75.66 KB
179
180
  ESM dist/chunk-YZ2YZSNQ.js 2.37 KB
180
181
  ESM dist/chunk-THOZT55U.js 2.51 KB
181
- ESM dist/chunk-HE5X7TRV.js 75.66 KB
182
182
  ESM dist/chunk-7Q6OMA2A.js 782.00 B
183
183
  ESM dist/chunk-GVNUAH45.js 347.00 B
184
184
  ESM dist/chunk-Y2TFSCAU.js 790.00 B
185
185
  ESM dist/chunk-KRMPO53Y.js 6.72 KB
186
- ESM dist/chunk-JTV6HMWW.js 4.44 KB
186
+ ESM dist/chunk-PZAUAV7G.js 4.47 KB
187
187
  ESM dist/chunk-7XYO4SF6.js 3.59 KB
188
188
  ESM dist/chunk-HVNLAQA6.js 1.81 KB
189
189
  ESM dist/chunk-LWTESXND.js 1.57 KB
@@ -255,8 +255,8 @@ Browserslist: caniuse-lite is outdated. Please run:
255
255
  ESM dist/sort/sort.js.map 51.00 B
256
256
  ESM dist/table-header/table-header.js.map 51.00 B
257
257
  ESM dist/toast/index.js.map 51.00 B
258
- ESM dist/nbui/nbui-container.js.map 51.00 B
259
258
  ESM dist/tooltip/tooltip.js.map 51.00 B
259
+ ESM dist/nbui/nbui-container.js.map 51.00 B
260
260
  ESM dist/nbui/nbui-footer.js.map 51.00 B
261
261
  ESM dist/nbui/nbui-page-layout.js.map 51.00 B
262
262
  ESM dist/pagination/pagination.js.map 51.00 B
@@ -267,13 +267,13 @@ Browserslist: caniuse-lite is outdated. Please run:
267
267
  ESM dist/nbui/nbui-card-form.js.map 51.00 B
268
268
  ESM dist/nbui/nbui-card-image.js.map 51.00 B
269
269
  ESM dist/nbui/nbui-card-lg.js.map 51.00 B
270
- ESM dist/nbui/nbui-card-paragraphs.js.map 51.00 B
271
270
  ESM dist/nbui/nbui-card-paragraphs-lg.js.map 51.00 B
271
+ ESM dist/nbui/nbui-card-paragraphs.js.map 51.00 B
272
272
  ESM dist/nbui/nbui-card-sm.js.map 51.00 B
273
273
  ESM dist/nbui/nbui-card-table.js.map 51.00 B
274
274
  ESM dist/nbui/nbui-card.js.map 51.00 B
275
- ESM dist/feature-cards/staff-pick-card.js.map 51.00 B
276
275
  ESM dist/feature-cards/feature-card.js.map 51.00 B
276
+ ESM dist/feature-cards/staff-pick-card.js.map 51.00 B
277
277
  ESM dist/featurePageComponents/feature-page-group.js.map 51.00 B
278
278
  ESM dist/featurePageComponents/mini-feature-block.js.map 1.54 KB
279
279
  ESM dist/file-picker/file-listing.js.map 51.00 B
@@ -309,8 +309,8 @@ Browserslist: caniuse-lite is outdated. Please run:
309
309
  ESM dist/ekm-logo.js.map 51.00 B
310
310
  ESM dist/fixed-alert.js.map 51.00 B
311
311
  ESM dist/footer-heart-icon.js.map 57.05 KB
312
- ESM dist/image-thumbnail.js.map 51.00 B
313
312
  ESM dist/form-row.js.map 51.00 B
313
+ ESM dist/image-thumbnail.js.map 51.00 B
314
314
  ESM dist/index.js.map 51.00 B
315
315
  ESM dist/card-payment-block.js.map 51.00 B
316
316
  ESM dist/card.js.map 51.00 B
@@ -319,7 +319,7 @@ Browserslist: caniuse-lite is outdated. Please run:
319
319
  ESM dist/dashboard-notification.js.map 51.00 B
320
320
  ESM dist/date-range-picker.js.map 51.00 B
321
321
  ESM dist/drag-and-drop.js.map 51.00 B
322
- ESM dist/chunk-JB5PNJCD.js.map 81.10 KB
322
+ ESM dist/chunk-ZJIHNQR7.js.map 81.10 KB
323
323
  ESM dist/chunk-52VBZOHL.js.map 4.67 KB
324
324
  ESM dist/chunk-YZ2YZSNQ.js.map 5.68 KB
325
325
  ESM dist/chunk-THOZT55U.js.map 5.31 KB
@@ -327,7 +327,7 @@ Browserslist: caniuse-lite is outdated. Please run:
327
327
  ESM dist/chunk-GVNUAH45.js.map 525.00 B
328
328
  ESM dist/chunk-Y2TFSCAU.js.map 1.85 KB
329
329
  ESM dist/chunk-KRMPO53Y.js.map 14.11 KB
330
- ESM dist/chunk-JTV6HMWW.js.map 9.93 KB
330
+ ESM dist/chunk-PZAUAV7G.js.map 10.07 KB
331
331
  ESM dist/chunk-7XYO4SF6.js.map 10.15 KB
332
332
  ESM dist/chunk-HVNLAQA6.js.map 5.19 KB
333
333
  ESM dist/chunk-LWTESXND.js.map 2.48 KB
@@ -396,4 +396,4 @@ Browserslist: caniuse-lite is outdated. Please run:
396
396
  ESM dist/chunk-TJMI4DH2.js.map 117.04 KB
397
397
  ESM dist/chunk-6LHL364H.js.map 62.53 KB
398
398
  ESM dist/chunk-HE5X7TRV.js.map 711.41 KB
399
- ESM ⚡️ Build success in 74395ms
399
+ ESM ⚡️ Build success in 74258ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # ekm-ui
2
2
 
3
+ ## 0.4.28
4
+
5
+ ### Patch Changes
6
+
7
+ - fb90ae08: Fix product picker spinner
8
+
3
9
  ## 0.4.26
4
10
 
5
11
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- export { h as CardPaymentBlock } from './chunk-JB5PNJCD.js';
1
+ export { h as CardPaymentBlock } from './chunk-ZJIHNQR7.js';
2
2
  import './chunk-52VBZOHL.js';
3
3
  import './chunk-HE5X7TRV.js';
4
4
  import './chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import './chunk-7Q6OMA2A.js';
7
7
  import './chunk-GVNUAH45.js';
8
8
  import './chunk-Y2TFSCAU.js';
9
9
  import './chunk-KRMPO53Y.js';
10
- import './chunk-JTV6HMWW.js';
10
+ import './chunk-PZAUAV7G.js';
11
11
  import './chunk-7XYO4SF6.js';
12
12
  import './chunk-HVNLAQA6.js';
13
13
  import './chunk-LWTESXND.js';
@@ -0,0 +1,12 @@
1
+ import { a as a$1 } from './chunk-ANU7OAPA.js';
2
+ import { a } from './chunk-6LHL364H.js';
3
+ import { e } from './chunk-Z4LPO673.js';
4
+ import x from 'pluralize';
5
+ import { useRef, useState, useEffect } from 'react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var s=e(a(),1);function h(e){var o,l;return `${((o=window.resourceSettings)==null?void 0:o.imageBasePath)||""}${e}?v=${((l=window.resourceSettings)==null?void 0:l.version)||""}`}function P({products:e,isMore:o,selected:l,page:f,pages:g,callback:c}){let a=useRef(),[d,m]=useState(!1);useEffect(()=>{let r=document.querySelector("#product-list");return r&&!r.hasAttribute("scroll")&&a.current.addEventListener("scroll",n),a.current!=null&&(a.current.scrollTop=0),()=>{let i=document.querySelector("#product-list");i&&i.hasAttribute("scroll")&&a.current.removeEventListener("scroll",n);}},[]),useEffect(()=>{d&&m(!1);},[e]);let n=()=>{if(!o)return;let r=a.current.scrollHeight-a.current.offsetHeight,i=Math.floor(a.current.scrollTop);(i==r||i+2==r||i-2==r)&&(m(!0),c({type:"FETCH_DATA",payload:!0}));},y=r=>{c({type:"SELECTION",payload:r});};return jsxs("div",{id:"product-list",ref:a,className:"h-[500px] overflow-y-auto rounded-md border",children:[(e||[]).map(r=>jsx(p,{product:r,selected:l.has(r.ProductId),callback:y},`product-row-${r.ProductId}`)),o&&f<g&&d&&jsx(k,{})]})}function p({product:e,selected:o,callback:l}){var g,c,a,d,m;let f=n=>{l(e.ProductId);};return jsxs("div",{className:`mb-1 mt-1 flex items-center pb-4 pt-4 ${o&&"bg-blue-50"} cursor-pointer justify-between border-b border-gray-100 st-productRow`,onClick:f,children:[jsxs("div",{className:"ml-3 flex items-center",children:[jsx("div",{className:"flex-shrink-0",children:jsx(a$1,{id:`cb-prod-${e.ProductId}`,name:e.Name,checked:o,onChange:()=>{}})}),jsx("div",{className:"ml-4 st-image",children:e.ImagePath&&e.ImageName!=="[URL-DownloadRequested]"?jsx("img",{className:"h-10 w-10 rounded-sm",src:e.ImagePath,alt:e.Name,onError:n=>{n.target.onerror=null,n.target.src=`${h("/admin/Content/images/no-image-discount.png")}`;}}):jsx("img",{src:h("/admin/Content/images/no-image-discount.png"),alt:e.Name,className:"h-10 w-10 rounded-sm"})}),jsxs("div",{className:"ml-4",children:[jsx("div",{className:" font-medium text-gray-900 st-name",children:e.Name}),((g=e.Categories)==null?void 0:g.length)>0?jsx("div",{className:"text-xs text-gray-500 st-category",children:`${e.CategoryName} & ${x("other",e.Categories.length,!0)}`}):jsx("div",{className:"text-xs text-gray-500 st-category",children:e.CategoryName})]})]}),jsx("div",{className:"ml-4 flex-shrink-0 st-price",children:jsx("span",{className:"mr-3 text-sm text-gray-500",children:`${(a=(c=globalThis.globalSettings)==null?void 0:c.CurrencySymbol)!=null?a:"\xA3"}${e.Price.toFixed((m=(d=globalThis.globalSettings)==null?void 0:d.CurrencyExponent)!=null?m:2)}`})})]})}P.propTypes={products:s.default.array,isMore:s.default.bool,selected:s.default.instanceOf(Set),page:s.default.number,pages:s.default.number,callback:s.default.func};p.propTypes={product:s.default.object,selected:s.default.bool,callback:s.default.func};function k(){return jsx("div",{className:"mb-1 mt-1 flex justify-center pb-4 pt-4",children:jsx("div",{role:"status",children:jsxs("svg",{"aria-hidden":"true",className:"inline-block h-8 w-8 animate-spin fill-gray-600 text-gray-200 dark:fill-gray-300 dark:text-gray-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),jsx("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})]})})})}
9
+
10
+ export { P as a };
11
+ //# sourceMappingURL=out.js.map
12
+ //# sourceMappingURL=chunk-PZAUAV7G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/product-picker/product-listing.tsx"],"names":["import_prop_types","pluralize","useEffect","useRef","useState","jsx","jsxs","BuildImageUrl","imageUrl","_a","_b","Listing","products","isMore","selected","page","pages","callback","scrollRef","showLoader","setShowLoader","element","handleScroll","offset","scroll","handleProductSelection","id","p","ProductRow","InfiniteLoader","product","_c","_d","_e","e","Checkbox","PropTypes"],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport pluralize from \"pluralize\";\nimport PropTypes from \"prop-types\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Checkbox } from \"../checkbox\";\n// FOR USE WITH THE PRODUCT PICKER COMPONENT - ONLY\n\nfunction BuildImageUrl(imageUrl) {\n return `${window.resourceSettings?.imageBasePath || ''}${imageUrl}?v=${window.resourceSettings?.version || ''}`;\n}\n\nexport function Listing({\n products,\n isMore,\n selected,\n page,\n pages,\n callback,\n}) {\n const scrollRef = useRef();\n const [showLoader, setShowLoader] = useState(false);\n\n useEffect(() => {\n const element = document.querySelector(\"#product-list\");\n if (element && !element.hasAttribute(\"scroll\"))\n scrollRef.current.addEventListener(\"scroll\", handleScroll);\n if (scrollRef.current != null) scrollRef.current.scrollTop = 0;\n return () => {\n const element = document.querySelector(\"#product-list\");\n if (element && element.hasAttribute(\"scroll\"))\n scrollRef.current.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n\n useEffect(() => {\n if(showLoader) setShowLoader(false)\n }, [products])\n\n const handleScroll = () => {\n if (!isMore) return;\n const offset =\n scrollRef.current.scrollHeight - scrollRef.current.offsetHeight;\n const scroll = Math.floor(scrollRef.current.scrollTop);\n // the '-2 & +2' is used as a buffer, otherwise '==' positioning of the scroll becomes too accurate.\n if (scroll == offset || scroll + 2 == offset || scroll - 2 == offset) {\n setShowLoader(true);\n callback({ type: \"FETCH_DATA\", payload: true });\n }\n };\n\n const handleProductSelection = (id) => {\n callback({ type: \"SELECTION\", payload: id });\n };\n\n return (\n <div\n id=\"product-list\"\n ref={scrollRef}\n className={`h-[500px] overflow-y-auto rounded-md border`}\n >\n {(products || []).map((p) => {\n return (\n <ProductRow\n key={`product-row-${p.ProductId}`}\n product={p}\n selected={selected.has(p.ProductId)}\n callback={handleProductSelection}\n />\n );\n })}\n {isMore && page < pages && showLoader && <InfiniteLoader />}\n </div>\n );\n}\n\nfunction ProductRow({ product, selected, callback }) {\n const handleProductSelection = (e) => {\n callback(product.ProductId);\n };\n return (\n <div\n className={`mb-1 mt-1 flex items-center pb-4 pt-4 ${\n selected && \"bg-blue-50\"\n } cursor-pointer justify-between border-b border-gray-100 st-productRow`}\n onClick={handleProductSelection}\n >\n <div className=\"ml-3 flex items-center\">\n <div className=\"flex-shrink-0\">\n <Checkbox\n id={`cb-prod-${product.ProductId}`}\n name={product.Name}\n checked={selected}\n onChange={() => {}}\n />\n </div>\n <div className=\"ml-4 st-image\">\n {product.ImagePath && product.ImageName !== \"[URL-DownloadRequested]\" ? (\n <img\n className=\"h-10 w-10 rounded-sm\"\n src={product.ImagePath}\n alt={product.Name}\n onError={(e) => {\n e.target.onerror = null;\n e.target.src = `${BuildImageUrl(\n \"/admin/Content/images/no-image-discount.png\"\n )}`;\n }}\n />\n ) : (\n <img\n src={BuildImageUrl(\"/admin/Content/images/no-image-discount.png\")}\n alt={product.Name}\n className=\"h-10 w-10 rounded-sm\"\n />\n )}\n </div>\n <div className=\"ml-4\">\n <div className=\" font-medium text-gray-900 st-name\">{product.Name}</div>\n {product.Categories?.length > 0 ? (\n <div className=\"text-xs text-gray-500 st-category\">{`${\n product.CategoryName\n } & ${pluralize(\"other\", product.Categories.length, true)}`}</div>\n ) : (\n <div className=\"text-xs text-gray-500 st-category\">{product.CategoryName}</div>\n )}\n </div>\n </div>\n <div className=\"ml-4 flex-shrink-0 st-price\">\n <span className=\"mr-3 text-sm text-gray-500\">{`${\n globalThis.globalSettings?.CurrencySymbol ?? '£'\n }${product.Price.toFixed(\n globalThis.globalSettings?.CurrencyExponent ?? 2\n )}`}</span>\n </div>\n </div>\n );\n}\n\nListing.propTypes = {\n /** Array of products to list */\n products: PropTypes.array,\n /** Boolean to indicate if there are more products to load */\n isMore: PropTypes.bool,\n /** Set of selected ids */\n selected: PropTypes.instanceOf(Set),\n /** Current page */\n page: PropTypes.number,\n /** Total number of pages */\n pages: PropTypes.number,\n /** Callback function to handle events */\n callback: PropTypes.func,\n};\n\nProductRow.propTypes = {\n /** Product object to display */\n product: PropTypes.object,\n /** Boolean to indicate if the file is selected */\n selected: PropTypes.bool,\n /** Callback function to handle events */\n callback: PropTypes.func,\n};\n\nfunction InfiniteLoader() {\n return (\n <div className=\"mb-1 mt-1 flex justify-center pb-4 pt-4\">\n <div role=\"status\">\n <svg\n aria-hidden=\"true\"\n className=\"inline-block h-8 w-8 animate-spin fill-gray-600 text-gray-200 dark:fill-gray-300 dark:text-gray-600\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\n </div>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { a as a$i } from './chunk-JTV6HMWW.js';
1
+ import { a as a$i } from './chunk-PZAUAV7G.js';
2
2
  import { a as a$f } from './chunk-7XYO4SF6.js';
3
3
  import { a as a$9, b as b$1 } from './chunk-HVNLAQA6.js';
4
4
  import { a as a$j } from './chunk-U26NV6PE.js';
@@ -33,4 +33,4 @@ function Je({cardPayment:r,enablePayPal:e}){return jsxs(a$4,{className:"border-0
33
33
 
34
34
  export { lr as a, Cr as b, se as c, He as d, K as e, Ue as f, sr as g, Je as h };
35
35
  //# sourceMappingURL=out.js.map
36
- //# sourceMappingURL=chunk-JB5PNJCD.js.map
36
+ //# sourceMappingURL=chunk-ZJIHNQR7.js.map
@@ -1,4 +1,4 @@
1
- export { g as CountryPicker } from '../chunk-JB5PNJCD.js';
1
+ export { g as CountryPicker } from '../chunk-ZJIHNQR7.js';
2
2
  import '../chunk-52VBZOHL.js';
3
3
  import '../chunk-HE5X7TRV.js';
4
4
  import '../chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import '../chunk-7Q6OMA2A.js';
7
7
  import '../chunk-GVNUAH45.js';
8
8
  import '../chunk-Y2TFSCAU.js';
9
9
  import '../chunk-KRMPO53Y.js';
10
- import '../chunk-JTV6HMWW.js';
10
+ import '../chunk-PZAUAV7G.js';
11
11
  import '../chunk-7XYO4SF6.js';
12
12
  import '../chunk-HVNLAQA6.js';
13
13
  import '../chunk-LWTESXND.js';
@@ -1,4 +1,4 @@
1
- export { c as DragAndDrop } from './chunk-JB5PNJCD.js';
1
+ export { c as DragAndDrop } from './chunk-ZJIHNQR7.js';
2
2
  import './chunk-52VBZOHL.js';
3
3
  import './chunk-HE5X7TRV.js';
4
4
  import './chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import './chunk-7Q6OMA2A.js';
7
7
  import './chunk-GVNUAH45.js';
8
8
  import './chunk-Y2TFSCAU.js';
9
9
  import './chunk-KRMPO53Y.js';
10
- import './chunk-JTV6HMWW.js';
10
+ import './chunk-PZAUAV7G.js';
11
11
  import './chunk-7XYO4SF6.js';
12
12
  import './chunk-HVNLAQA6.js';
13
13
  import './chunk-LWTESXND.js';
@@ -1,4 +1,4 @@
1
- export { d as FilePicker } from '../chunk-JB5PNJCD.js';
1
+ export { d as FilePicker } from '../chunk-ZJIHNQR7.js';
2
2
  import '../chunk-52VBZOHL.js';
3
3
  import '../chunk-HE5X7TRV.js';
4
4
  import '../chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import '../chunk-7Q6OMA2A.js';
7
7
  import '../chunk-GVNUAH45.js';
8
8
  import '../chunk-Y2TFSCAU.js';
9
9
  import '../chunk-KRMPO53Y.js';
10
- import '../chunk-JTV6HMWW.js';
10
+ import '../chunk-PZAUAV7G.js';
11
11
  import '../chunk-7XYO4SF6.js';
12
12
  import '../chunk-HVNLAQA6.js';
13
13
  import '../chunk-LWTESXND.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { h as CardPaymentBlock, g as CountryPicker, c as DragAndDrop, d as FilePicker, b as Layout, f as ProductPicker, a as StackedListItem, e as TableResultBlock } from './chunk-JB5PNJCD.js';
1
+ export { h as CardPaymentBlock, g as CountryPicker, c as DragAndDrop, d as FilePicker, b as Layout, f as ProductPicker, a as StackedListItem, e as TableResultBlock } from './chunk-ZJIHNQR7.js';
2
2
  export { a as Sort } from './chunk-52VBZOHL.js';
3
3
  export { a as TableHeader } from './chunk-HE5X7TRV.js';
4
4
  export { b as ToastProvider, c as useToast } from './chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ export { a as NBUI_Container } from './chunk-7Q6OMA2A.js';
7
7
  export { a as NBUI_Footer } from './chunk-GVNUAH45.js';
8
8
  export { a as NBUI_Page_Layout } from './chunk-Y2TFSCAU.js';
9
9
  export { a as Pagination } from './chunk-KRMPO53Y.js';
10
- import './chunk-JTV6HMWW.js';
10
+ import './chunk-PZAUAV7G.js';
11
11
  export { a as Search } from './chunk-7XYO4SF6.js';
12
12
  export { b as Sidebar } from './chunk-HVNLAQA6.js';
13
13
  export { a as NBUI_Card_Form } from './chunk-LWTESXND.js';
@@ -1,4 +1,4 @@
1
- export { b as Layout } from '../chunk-JB5PNJCD.js';
1
+ export { b as Layout } from '../chunk-ZJIHNQR7.js';
2
2
  import '../chunk-52VBZOHL.js';
3
3
  import '../chunk-HE5X7TRV.js';
4
4
  import '../chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import '../chunk-7Q6OMA2A.js';
7
7
  import '../chunk-GVNUAH45.js';
8
8
  import '../chunk-Y2TFSCAU.js';
9
9
  import '../chunk-KRMPO53Y.js';
10
- import '../chunk-JTV6HMWW.js';
10
+ import '../chunk-PZAUAV7G.js';
11
11
  import '../chunk-7XYO4SF6.js';
12
12
  import '../chunk-HVNLAQA6.js';
13
13
  import '../chunk-LWTESXND.js';
@@ -1,4 +1,4 @@
1
- export { a as Listing } from '../chunk-JTV6HMWW.js';
1
+ export { a as Listing } from '../chunk-PZAUAV7G.js';
2
2
  import '../chunk-ANU7OAPA.js';
3
3
  import '../chunk-TJMI4DH2.js';
4
4
  import '../chunk-6LHL364H.js';
@@ -1,4 +1,4 @@
1
- export { f as ProductPicker } from '../chunk-JB5PNJCD.js';
1
+ export { f as ProductPicker } from '../chunk-ZJIHNQR7.js';
2
2
  import '../chunk-52VBZOHL.js';
3
3
  import '../chunk-HE5X7TRV.js';
4
4
  import '../chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import '../chunk-7Q6OMA2A.js';
7
7
  import '../chunk-GVNUAH45.js';
8
8
  import '../chunk-Y2TFSCAU.js';
9
9
  import '../chunk-KRMPO53Y.js';
10
- import '../chunk-JTV6HMWW.js';
10
+ import '../chunk-PZAUAV7G.js';
11
11
  import '../chunk-7XYO4SF6.js';
12
12
  import '../chunk-HVNLAQA6.js';
13
13
  import '../chunk-LWTESXND.js';
@@ -1,4 +1,4 @@
1
- export { a as StackedListItem } from './chunk-JB5PNJCD.js';
1
+ export { a as StackedListItem } from './chunk-ZJIHNQR7.js';
2
2
  import './chunk-52VBZOHL.js';
3
3
  import './chunk-HE5X7TRV.js';
4
4
  import './chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import './chunk-7Q6OMA2A.js';
7
7
  import './chunk-GVNUAH45.js';
8
8
  import './chunk-Y2TFSCAU.js';
9
9
  import './chunk-KRMPO53Y.js';
10
- import './chunk-JTV6HMWW.js';
10
+ import './chunk-PZAUAV7G.js';
11
11
  import './chunk-7XYO4SF6.js';
12
12
  import './chunk-HVNLAQA6.js';
13
13
  import './chunk-LWTESXND.js';
@@ -1,4 +1,4 @@
1
- export { e as TableResultBlock } from './chunk-JB5PNJCD.js';
1
+ export { e as TableResultBlock } from './chunk-ZJIHNQR7.js';
2
2
  import './chunk-52VBZOHL.js';
3
3
  import './chunk-HE5X7TRV.js';
4
4
  import './chunk-YZ2YZSNQ.js';
@@ -7,7 +7,7 @@ import './chunk-7Q6OMA2A.js';
7
7
  import './chunk-GVNUAH45.js';
8
8
  import './chunk-Y2TFSCAU.js';
9
9
  import './chunk-KRMPO53Y.js';
10
- import './chunk-JTV6HMWW.js';
10
+ import './chunk-PZAUAV7G.js';
11
11
  import './chunk-7XYO4SF6.js';
12
12
  import './chunk-HVNLAQA6.js';
13
13
  import './chunk-LWTESXND.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ekm-ui",
3
- "version": "0.4.26",
3
+ "version": "0.4.28",
4
4
  "sideEffects": [
5
5
  "**/*.css"
6
6
  ],
@@ -32,6 +32,10 @@ export function Listing({
32
32
  };
33
33
  }, []);
34
34
 
35
+ useEffect(() => {
36
+ if(showLoader) setShowLoader(false)
37
+ }, [products])
38
+
35
39
  const handleScroll = () => {
36
40
  if (!isMore) return;
37
41
  const offset =
@@ -1,12 +0,0 @@
1
- import { a as a$1 } from './chunk-ANU7OAPA.js';
2
- import { a } from './chunk-6LHL364H.js';
3
- import { e } from './chunk-Z4LPO673.js';
4
- import N from 'pluralize';
5
- import { useRef, useState, useEffect } from 'react';
6
- import { jsxs, jsx } from 'react/jsx-runtime';
7
-
8
- var o=e(a(),1);function C(e){var s,l;return `${((s=window.resourceSettings)==null?void 0:s.imageBasePath)||""}${e}?v=${((l=window.resourceSettings)==null?void 0:l.version)||""}`}function P({products:e,isMore:s,selected:l,page:f,pages:m,callback:c}){let a=useRef(),[u,g]=useState(!1);useEffect(()=>{let r=document.querySelector("#product-list");return r&&!r.hasAttribute("scroll")&&a.current.addEventListener("scroll",n),a.current!=null&&(a.current.scrollTop=0),()=>{let i=document.querySelector("#product-list");i&&i.hasAttribute("scroll")&&a.current.removeEventListener("scroll",n);}},[]);let n=()=>{if(!s)return;let r=a.current.scrollHeight-a.current.offsetHeight,i=Math.floor(a.current.scrollTop);(i==r||i+2==r||i-2==r)&&(g(!0),c({type:"FETCH_DATA",payload:!0}));},h=r=>{c({type:"SELECTION",payload:r});};return jsxs("div",{id:"product-list",ref:a,className:"h-[500px] overflow-y-auto rounded-md border",children:[(e||[]).map(r=>jsx(p,{product:r,selected:l.has(r.ProductId),callback:h},`product-row-${r.ProductId}`)),s&&f<m&&u&&jsx(k,{})]})}function p({product:e,selected:s,callback:l}){var m,c,a,u,g;let f=n=>{l(e.ProductId);};return jsxs("div",{className:`mb-1 mt-1 flex items-center pb-4 pt-4 ${s&&"bg-blue-50"} cursor-pointer justify-between border-b border-gray-100 st-productRow`,onClick:f,children:[jsxs("div",{className:"ml-3 flex items-center",children:[jsx("div",{className:"flex-shrink-0",children:jsx(a$1,{id:`cb-prod-${e.ProductId}`,name:e.Name,checked:s,onChange:()=>{}})}),jsx("div",{className:"ml-4 st-image",children:e.ImagePath&&e.ImageName!=="[URL-DownloadRequested]"?jsx("img",{className:"h-10 w-10 rounded-sm",src:e.ImagePath,alt:e.Name,onError:n=>{n.target.onerror=null,n.target.src=`${C("/admin/Content/images/no-image-discount.png")}`;}}):jsx("img",{src:C("/admin/Content/images/no-image-discount.png"),alt:e.Name,className:"h-10 w-10 rounded-sm"})}),jsxs("div",{className:"ml-4",children:[jsx("div",{className:" font-medium text-gray-900 st-name",children:e.Name}),((m=e.Categories)==null?void 0:m.length)>0?jsx("div",{className:"text-xs text-gray-500 st-category",children:`${e.CategoryName} & ${N("other",e.Categories.length,!0)}`}):jsx("div",{className:"text-xs text-gray-500 st-category",children:e.CategoryName})]})]}),jsx("div",{className:"ml-4 flex-shrink-0 st-price",children:jsx("span",{className:"mr-3 text-sm text-gray-500",children:`${(a=(c=globalThis.globalSettings)==null?void 0:c.CurrencySymbol)!=null?a:"\xA3"}${e.Price.toFixed((g=(u=globalThis.globalSettings)==null?void 0:u.CurrencyExponent)!=null?g:2)}`})})]})}P.propTypes={products:o.default.array,isMore:o.default.bool,selected:o.default.instanceOf(Set),page:o.default.number,pages:o.default.number,callback:o.default.func};p.propTypes={product:o.default.object,selected:o.default.bool,callback:o.default.func};function k(){return jsx("div",{className:"mb-1 mt-1 flex justify-center pb-4 pt-4",children:jsx("div",{role:"status",children:jsxs("svg",{"aria-hidden":"true",className:"inline-block h-8 w-8 animate-spin fill-gray-600 text-gray-200 dark:fill-gray-300 dark:text-gray-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),jsx("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})]})})})}
9
-
10
- export { P as a };
11
- //# sourceMappingURL=out.js.map
12
- //# sourceMappingURL=chunk-JTV6HMWW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/product-picker/product-listing.tsx"],"names":["import_prop_types","pluralize","useEffect","useRef","useState","jsx","jsxs","BuildImageUrl","imageUrl","_a","_b","Listing","products","isMore","selected","page","pages","callback","scrollRef","showLoader","setShowLoader","element","handleScroll","offset","scroll","handleProductSelection","id","p","ProductRow","InfiniteLoader","product","_c","_d","_e","e","Checkbox","PropTypes"],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport pluralize from \"pluralize\";\nimport PropTypes from \"prop-types\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Checkbox } from \"../checkbox\";\n// FOR USE WITH THE PRODUCT PICKER COMPONENT - ONLY\n\nfunction BuildImageUrl(imageUrl) {\n return `${window.resourceSettings?.imageBasePath || ''}${imageUrl}?v=${window.resourceSettings?.version || ''}`;\n}\n\nexport function Listing({\n products,\n isMore,\n selected,\n page,\n pages,\n callback,\n}) {\n const scrollRef = useRef();\n const [showLoader, setShowLoader] = useState(false);\n\n useEffect(() => {\n const element = document.querySelector(\"#product-list\");\n if (element && !element.hasAttribute(\"scroll\"))\n scrollRef.current.addEventListener(\"scroll\", handleScroll);\n if (scrollRef.current != null) scrollRef.current.scrollTop = 0;\n return () => {\n const element = document.querySelector(\"#product-list\");\n if (element && element.hasAttribute(\"scroll\"))\n scrollRef.current.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n\n const handleScroll = () => {\n if (!isMore) return;\n const offset =\n scrollRef.current.scrollHeight - scrollRef.current.offsetHeight;\n const scroll = Math.floor(scrollRef.current.scrollTop);\n // the '-2 & +2' is used as a buffer, otherwise '==' positioning of the scroll becomes too accurate.\n if (scroll == offset || scroll + 2 == offset || scroll - 2 == offset) {\n setShowLoader(true);\n callback({ type: \"FETCH_DATA\", payload: true });\n }\n };\n\n const handleProductSelection = (id) => {\n callback({ type: \"SELECTION\", payload: id });\n };\n\n return (\n <div\n id=\"product-list\"\n ref={scrollRef}\n className={`h-[500px] overflow-y-auto rounded-md border`}\n >\n {(products || []).map((p) => {\n return (\n <ProductRow\n key={`product-row-${p.ProductId}`}\n product={p}\n selected={selected.has(p.ProductId)}\n callback={handleProductSelection}\n />\n );\n })}\n {isMore && page < pages && showLoader && <InfiniteLoader />}\n </div>\n );\n}\n\nfunction ProductRow({ product, selected, callback }) {\n const handleProductSelection = (e) => {\n callback(product.ProductId);\n };\n return (\n <div\n className={`mb-1 mt-1 flex items-center pb-4 pt-4 ${\n selected && \"bg-blue-50\"\n } cursor-pointer justify-between border-b border-gray-100 st-productRow`}\n onClick={handleProductSelection}\n >\n <div className=\"ml-3 flex items-center\">\n <div className=\"flex-shrink-0\">\n <Checkbox\n id={`cb-prod-${product.ProductId}`}\n name={product.Name}\n checked={selected}\n onChange={() => {}}\n />\n </div>\n <div className=\"ml-4 st-image\">\n {product.ImagePath && product.ImageName !== \"[URL-DownloadRequested]\" ? (\n <img\n className=\"h-10 w-10 rounded-sm\"\n src={product.ImagePath}\n alt={product.Name}\n onError={(e) => {\n e.target.onerror = null;\n e.target.src = `${BuildImageUrl(\n \"/admin/Content/images/no-image-discount.png\"\n )}`;\n }}\n />\n ) : (\n <img\n src={BuildImageUrl(\"/admin/Content/images/no-image-discount.png\")}\n alt={product.Name}\n className=\"h-10 w-10 rounded-sm\"\n />\n )}\n </div>\n <div className=\"ml-4\">\n <div className=\" font-medium text-gray-900 st-name\">{product.Name}</div>\n {product.Categories?.length > 0 ? (\n <div className=\"text-xs text-gray-500 st-category\">{`${\n product.CategoryName\n } & ${pluralize(\"other\", product.Categories.length, true)}`}</div>\n ) : (\n <div className=\"text-xs text-gray-500 st-category\">{product.CategoryName}</div>\n )}\n </div>\n </div>\n <div className=\"ml-4 flex-shrink-0 st-price\">\n <span className=\"mr-3 text-sm text-gray-500\">{`${\n globalThis.globalSettings?.CurrencySymbol ?? '£'\n }${product.Price.toFixed(\n globalThis.globalSettings?.CurrencyExponent ?? 2\n )}`}</span>\n </div>\n </div>\n );\n}\n\nListing.propTypes = {\n /** Array of products to list */\n products: PropTypes.array,\n /** Boolean to indicate if there are more products to load */\n isMore: PropTypes.bool,\n /** Set of selected ids */\n selected: PropTypes.instanceOf(Set),\n /** Current page */\n page: PropTypes.number,\n /** Total number of pages */\n pages: PropTypes.number,\n /** Callback function to handle events */\n callback: PropTypes.func,\n};\n\nProductRow.propTypes = {\n /** Product object to display */\n product: PropTypes.object,\n /** Boolean to indicate if the file is selected */\n selected: PropTypes.bool,\n /** Callback function to handle events */\n callback: PropTypes.func,\n};\n\nfunction InfiniteLoader() {\n return (\n <div className=\"mb-1 mt-1 flex justify-center pb-4 pt-4\">\n <div role=\"status\">\n <svg\n aria-hidden=\"true\"\n className=\"inline-block h-8 w-8 animate-spin fill-gray-600 text-gray-200 dark:fill-gray-300 dark:text-gray-600\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\n </div>\n );\n}\n"]}