@ctlyst.id/utils 1.3.7 → 2.0.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.
- package/dist/index.d.mts +141 -0
- package/dist/index.d.ts +141 -0
- package/dist/index.js +682 -1
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +570 -2014
- package/dist/index.mjs.map +1 -0
- package/package.json +18 -23
- package/dist/types/dom.d.ts +0 -7
- package/dist/types/hooks/index.d.ts +0 -11
- package/dist/types/hooks/use-callback-ref/index.d.ts +0 -1
- package/dist/types/hooks/use-callback-ref/use-callback-ref.d.ts +0 -3
- package/dist/types/hooks/use-clipboard/index.d.ts +0 -2
- package/dist/types/hooks/use-clipboard/use-clipboard.d.ts +0 -15
- package/dist/types/hooks/use-debounce/index.d.ts +0 -2
- package/dist/types/hooks/use-debounce/use-debounce.d.ts +0 -6
- package/dist/types/hooks/use-dimensions/index.d.ts +0 -2
- package/dist/types/hooks/use-dimensions/use-dimensions.d.ts +0 -5
- package/dist/types/hooks/use-disclosure/index.d.ts +0 -2
- package/dist/types/hooks/use-disclosure/use-disclosure.d.ts +0 -18
- package/dist/types/hooks/use-media-query/index.d.ts +0 -2
- package/dist/types/hooks/use-media-query/use-media-query.d.ts +0 -6
- package/dist/types/hooks/use-number-formatter/index.d.ts +0 -2
- package/dist/types/hooks/use-number-formatter/use-number-formatter.d.ts +0 -9
- package/dist/types/hooks/use-online-status/index.d.ts +0 -1
- package/dist/types/hooks/use-online-status/use-online-status.d.ts +0 -5
- package/dist/types/hooks/use-outside-click/index.d.ts +0 -2
- package/dist/types/hooks/use-outside-click/use-outside-click.d.ts +0 -8
- package/dist/types/hooks/use-safe-layout-effect/index.d.ts +0 -1
- package/dist/types/hooks/use-safe-layout-effect/use-safe-layout-effect.d.ts +0 -3
- package/dist/types/hooks/use-voucher-tnc/get-applies-to.d.ts +0 -2
- package/dist/types/hooks/use-voucher-tnc/get-bank-bin.d.ts +0 -2
- package/dist/types/hooks/use-voucher-tnc/get-period.d.ts +0 -2
- package/dist/types/hooks/use-voucher-tnc/get-usage-limit.d.ts +0 -2
- package/dist/types/hooks/use-voucher-tnc/index.d.ts +0 -2
- package/dist/types/hooks/use-voucher-tnc/use-voucher-method-terms.d.ts +0 -2
- package/dist/types/hooks/use-voucher-tnc/use-voucher-tnc.d.ts +0 -3
- package/dist/types/hooks/use-voucher-tnc/use-voucher-tnc.types.d.ts +0 -56
- package/dist/types/index.d.ts +0 -2
package/dist/index.js
CHANGED
|
@@ -1 +1,682 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react"),me=a=>a!=null&&typeof a=="object"&&"nodeType"in a&&a.nodeType===Node.ELEMENT_NODE,re=a=>me(a)?a.ownerDocument??document:document,G=(a,e)=>{var n;const t=a.target;return a.button>0||t&&!re(t).contains(t)?!1:!((n=e.current)!=null&&n.contains(t))},fe=()=>!!(typeof window<"u"&&window.document&&window.document.createElement),he=fe(),ke=(a,e=[])=>{const t=g.useRef(a);return g.useEffect(()=>{t.current=a}),g.useCallback((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},e)},K=ke;function De(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Te=function(){var a=document.getSelection();if(!a.rangeCount)return function(){};for(var e=document.activeElement,t=[],n=0;n<a.rangeCount;n++)t.push(a.getRangeAt(n));switch(e.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":e.blur();break;default:e=null;break}return a.removeAllRanges(),function(){a.type==="Caret"&&a.removeAllRanges(),a.rangeCount||t.forEach(function(r){a.addRange(r)}),e&&e.focus()}},Ce=Te,ie={"text/plain":"Text","text/html":"Url",default:"Text"},Pe="Copy to clipboard: #{key}, Enter";function Se(a){var e=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return a.replace(/#{\s*key\s*}/g,e)}function Ee(a,e){var t,n,r,i,o,u,s=!1;e||(e={}),t=e.debug||!1;try{r=Ce(),i=document.createRange(),o=document.getSelection(),u=document.createElement("span"),u.textContent=a,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",function(c){if(c.stopPropagation(),e.format)if(c.preventDefault(),typeof c.clipboardData>"u"){t&&console.warn("unable to use e.clipboardData"),t&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var l=ie[e.format]||ie.default;window.clipboardData.setData(l,a)}else c.clipboardData.clearData(),c.clipboardData.setData(e.format,a);e.onCopy&&(c.preventDefault(),e.onCopy(c.clipboardData))}),document.body.appendChild(u),i.selectNodeContents(u),o.addRange(i);var d=document.execCommand("copy");if(!d)throw new Error("copy command was unsuccessful");s=!0}catch(c){t&&console.error("unable to copy using execCommand: ",c),t&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",a),e.onCopy&&e.onCopy(window.clipboardData),s=!0}catch(l){t&&console.error("unable to copy using clipboardData: ",l),t&&console.error("falling back to prompt"),n=Se("message"in e?e.message:Pe),window.prompt(n,a)}}finally{o&&(typeof o.removeRange=="function"?o.removeRange(i):o.removeAllRanges()),u&&document.body.removeChild(u),r()}return s}var Oe=Ee;const xe=De(Oe),$e=({value:a="",optionsOrTimeout:e={}}={})=>{const[t,n]=g.useState(!1),[r,i]=g.useState(a);g.useEffect(()=>i(a),[a]);const{timeout:o=1500,...u}=typeof e=="number"?{timeout:e}:e,s=g.useCallback(()=>{const d=xe(r,u);n(d)},[r,u]);return g.useEffect(()=>{let d=null;return t&&(d=window.setTimeout(()=>{n(!1)},o)),()=>{d&&window.clearTimeout(d)}},[o,t]),{value:r,setValue:i,onCopy:s,hasCopied:t}},We=$e,Ne=({value:a,delay:e=500})=>{const[t,n]=g.useState(a);return g.useEffect(()=>{const r=setTimeout(()=>n(a),e||500);return()=>{clearTimeout(r)}},[JSON.stringify(a),e]),t},Ue=Ne;var Ye=process.env.NODE_ENV==="production",ae="Invariant failed";function oe(a,e){if(!a){if(Ye)throw new Error(ae);var t=typeof e=="function"?e():e,n=t?"".concat(ae,": ").concat(t):ae;throw new Error(n)}}var X=function(e){var t=e.top,n=e.right,r=e.bottom,i=e.left,o=n-i,u=r-t,s={top:t,right:n,bottom:r,left:i,width:o,height:u,x:i,y:t,center:{x:(n+i)/2,y:(r+t)/2}};return s},_e=function(e,t){return{top:e.top-t.top,left:e.left-t.left,bottom:e.bottom+t.bottom,right:e.right+t.right}},ue=function(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}},ne={top:0,right:0,bottom:0,left:0},Le=function(e){var t=e.borderBox,n=e.margin,r=n===void 0?ne:n,i=e.border,o=i===void 0?ne:i,u=e.padding,s=u===void 0?ne:u,d=X(_e(t,r)),c=X(ue(t,o)),l=X(ue(c,s));return{marginBox:d,borderBox:X(t),paddingBox:c,contentBox:l,margin:r,border:o,padding:s}},C=function(e){var t=e.slice(0,-2),n=e.slice(-2);if(n!=="px")return 0;var r=Number(t);return isNaN(r)&&(process.env.NODE_ENV!=="production"?oe(!1,"Could not parse value [raw: "+e+", without suffix: "+t+"]"):oe(!1)),r},Fe=function(e,t){var n={top:C(t.marginTop),right:C(t.marginRight),bottom:C(t.marginBottom),left:C(t.marginLeft)},r={top:C(t.paddingTop),right:C(t.paddingRight),bottom:C(t.paddingBottom),left:C(t.paddingLeft)},i={top:C(t.borderTopWidth),right:C(t.borderRightWidth),bottom:C(t.borderBottomWidth),left:C(t.borderLeftWidth)};return Le({borderBox:e,margin:n,padding:r,border:i})},Re=function(e){var t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return Fe(t,n)};const Be=he?g.useLayoutEffect:g.useEffect,ge=Be,je=(a,e)=>{const[t,n]=g.useState(null),r=g.useRef();return ge(()=>{const i=()=>{const o=a.current;o&&(r.current=requestAnimationFrame(()=>{const u=Re(o);n(u)}))};return i(),e&&(window.addEventListener("resize",i),window.addEventListener("scroll",i)),()=>{e&&(window.removeEventListener("resize",i),window.removeEventListener("scroll",i)),r.current&&cancelAnimationFrame(r.current)}},[e]),t},Ae=je,Ie=({onClose:a,onOpen:e,isOpen:t,defaultIsOpen:n,id:r}={})=>{const[i,o]=g.useState(n||!1),u=t!==void 0?t:i,s=t!==void 0,d=g.useId(),c=r??`disclosure-${d}`,l=K(e),f=K(a),m=g.useCallback(()=>{s||o(!1),f==null||f()},[s,f]),v=g.useCallback(()=>{s||o(!0),l==null||l()},[s,l]),M=g.useCallback(()=>{u?m():v()},[u,v,m]);return{onClose:m,onOpen:v,onToggle:M,getButtonProps:({onClick:T,...P}={})=>({...P,"aria-expanded":u,"aria-controls":c,onClick(O){T==null||T(O),M()}}),getDisclosureProps:({...T}={})=>({...T,hidden:!u,id:c}),isOpen:u}},Ve=Ie,He=(a,e={})=>{const{ssr:t=!0,fallback:n}=e,r=Array.isArray(a)?a:[a];let i=Array.isArray(n)?n:[n];i=i.filter(s=>s!=null);const[o,u]=g.useState(()=>r.map((s,d)=>({media:s,matches:t?!!i[d]:window.matchMedia(s).matches})));return g.useEffect(()=>{const s=window;u(r.map(l=>({media:l,matches:s.matchMedia(l).matches})));const d=r.map(l=>s.matchMedia(l)),c=l=>{u(f=>f.slice().map(m=>m.media===l.media?{...m,matches:l.matches}:m))};return d.forEach(l=>{l.addEventListener("change",c)}),()=>{d.forEach(l=>{l.removeEventListener("change",c)})}},[window]),o.map(s=>s.matches)},qe=He,Qe=({value:a,thousandSeparator:e=".",decimalLength:t,decimalSeparator:n=",",prefix:r=""})=>{const o=(u=>{const s=u.toString().split("."),d=s[0].replace(/\B(?=(\d{3})+(?!\d))/g,e);let c="";return t!==void 0?s.length>1&&t>0?c=n+s[1].padEnd(t,"0").slice(0,t):t>0&&(c=n+"0".repeat(t)):s.length>1&&(c=n+s[1]),d+c})(a);return o.charAt(0)==="-"?o.replace(/^-/g,`-${r}`):`${r}${o}`},V=Qe,Xe=()=>{const[a,e]=g.useState(navigator.onLine);return g.useEffect(()=>{const t=()=>e(navigator.onLine);return window.addEventListener("online",t),window.addEventListener("offline",t),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",t)}},[]),{isOnline:a,isOffline:!a}},Ge=Xe,Ke=({enabled:a=!0,ref:e,handler:t})=>{const n=K(t),i=g.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}).current;g.useEffect(()=>{if(!a)return;const o=c=>{G(c,e)&&(i.isPointerDown=!0)},u=c=>{if(i.ignoreEmulatedMouseEvents){i.ignoreEmulatedMouseEvents=!1;return}i.isPointerDown&&t&&G(c,e)&&(i.isPointerDown=!1,n(c))},s=c=>{i.ignoreEmulatedMouseEvents=!0,t&&i.isPointerDown&&G(c,e)&&(i.isPointerDown=!1,n(c))},d=re(e.current);return d.addEventListener("mousedown",o,!0),d.addEventListener("mouseup",u,!0),d.addEventListener("touchstart",o,!0),d.addEventListener("touchend",s,!0),()=>{d.removeEventListener("mousedown",o,!0),d.removeEventListener("mouseup",u,!0),d.removeEventListener("touchstart",o,!0),d.removeEventListener("touchend",s,!0)}},[t,e,n,i,a])},Je=Ke;var y=(a=>(a.product="Product",a.order="Order",a.gift="Gift",a.freeShipping="Free Shipping",a.freeInsurance="Free Insurance",a.bundling="Bundling",a.payment="Payment",a))(y||{}),J=(a=>(a.percentage="percentage",a.amount="amount",a))(J||{});function ze(a){let e="";const{type:t,eligibilityType:n,payment:r}=a,i=a.collections??[],o=a.brands??[];if(t===y.product)i.length>0?e=`Voucher hanya berlaku untuk produk tertentu dari collection ${i.map(u=>u.name).join(", ")}.`:o.length>0?e=`Voucher hanya berlaku untuk produk tertentu dari brand ${o.map(u=>u.name).join(", ")}.`:n==="selected_products"&&(e="Hanya berlaku untuk produk tertentu.");else if(t===y.payment){const{bankName:u,paymentMethod:s,creditBinGroup:d,debitBinGroup:c}=r||{},l=(s||[]).some(b=>(b||"").includes("(Full Payment)")),f=(s||[]).some(b=>(b||"").includes("(Cicilan 3x)")),m=(s||[]).some(b=>(b||"").includes("(Cicilan 6x)")),v=(s||[]).some(b=>(b||"").includes("(Cicilan 12x)")),M=(s||[]).some(b=>(b||"").includes("(Cicilan 18x)")),p=f||m||v||M,w=l||p,P=[...(s||[]).some(b=>(b||"").includes("Debit Card"))&&(c||[]).length>0?["Kartu Debit"]:[],...w&&(d||[]).length>0?["Kartu Kredit"]:[]];let O="";if(w){const b=[...l?["sistem pembayaran penuh"]:[],...p?["sistem cicilan"]:[]],S=[...f?["3"]:[],...m?["6"]:[],...v?["12"]:[],...M?["18"]:[]];let x=S.join(" dan ");if(S.length>2){const E=S.join(", "),Y=E.lastIndexOf(","),_=E.slice(0,Y),A=E.slice(Y+1,E.length);x=[_,A].join(", dan")}O=["dengan",b.join(" dan "),...p?[`(${x} bulan)`]:[]].join(" ")}P.length>0&&(e=`${["Voucher berlaku untuk pembayaran menggunakan",P.join(" dan "),u,O].filter(b=>(b||"").length>0).join(" ")}.`)}return e}function Ze(a){const{bankName:e,creditBinGroup:t,debitBinGroup:n}=a,r=(t||[]).join(", "),i=(n||[]).join(", ");return[...e&&r?[`Voucher berlaku untuk Kartu Kredit ${e} dengan 6-digit Bank Identification Number (BIN): ${r}.`]:[],...e&&i?[`Voucher berlaku untuk Kartu Debit ${e} dengan 6-digit Bank Identification Number (BIN): ${i}.`]:[]]}function z(a){"@babel/helpers - typeof";return z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z(a)}function j(a){if(a===null||a===!0||a===!1)return NaN;var e=Number(a);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function k(a,e){if(e.length<a)throw new TypeError(a+" argument"+(a>1?"s":"")+" required, but only "+e.length+" present")}function U(a){k(1,arguments);var e=Object.prototype.toString.call(a);return a instanceof Date||z(a)==="object"&&e==="[object Date]"?new Date(a.getTime()):typeof a=="number"||e==="[object Number]"?new Date(a):((typeof a=="string"||e==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function et(a,e){k(2,arguments);var t=U(a).getTime(),n=j(e);return new Date(t+n)}var tt={};function te(){return tt}function at(a){var e=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return e.setUTCFullYear(a.getFullYear()),a.getTime()-e.getTime()}function nt(a){return k(1,arguments),a instanceof Date||z(a)==="object"&&Object.prototype.toString.call(a)==="[object Date]"}function rt(a){if(k(1,arguments),!nt(a)&&typeof a!="number")return!1;var e=U(a);return!isNaN(Number(e))}function it(a,e){k(2,arguments);var t=j(e);return et(a,-t)}var ot=864e5;function ut(a){k(1,arguments);var e=U(a),t=e.getTime();e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0);var n=e.getTime(),r=t-n;return Math.floor(r/ot)+1}function Z(a){k(1,arguments);var e=1,t=U(a),n=t.getUTCDay(),r=(n<e?7:0)+n-e;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function ve(a){k(1,arguments);var e=U(a),t=e.getUTCFullYear(),n=new Date(0);n.setUTCFullYear(t+1,0,4),n.setUTCHours(0,0,0,0);var r=Z(n),i=new Date(0);i.setUTCFullYear(t,0,4),i.setUTCHours(0,0,0,0);var o=Z(i);return e.getTime()>=r.getTime()?t+1:e.getTime()>=o.getTime()?t:t-1}function st(a){k(1,arguments);var e=ve(a),t=new Date(0);t.setUTCFullYear(e,0,4),t.setUTCHours(0,0,0,0);var n=Z(t);return n}var dt=6048e5;function lt(a){k(1,arguments);var e=U(a),t=Z(e).getTime()-st(e).getTime();return Math.round(t/dt)+1}function ee(a,e){var t,n,r,i,o,u,s,d;k(1,arguments);var c=te(),l=j((t=(n=(r=(i=e==null?void 0:e.weekStartsOn)!==null&&i!==void 0?i:e==null||(o=e.locale)===null||o===void 0||(u=o.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&r!==void 0?r:c.weekStartsOn)!==null&&n!==void 0?n:(s=c.locale)===null||s===void 0||(d=s.options)===null||d===void 0?void 0:d.weekStartsOn)!==null&&t!==void 0?t:0);if(!(l>=0&&l<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var f=U(a),m=f.getUTCDay(),v=(m<l?7:0)+m-l;return f.setUTCDate(f.getUTCDate()-v),f.setUTCHours(0,0,0,0),f}function be(a,e){var t,n,r,i,o,u,s,d;k(1,arguments);var c=U(a),l=c.getUTCFullYear(),f=te(),m=j((t=(n=(r=(i=e==null?void 0:e.firstWeekContainsDate)!==null&&i!==void 0?i:e==null||(o=e.locale)===null||o===void 0||(u=o.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:f.firstWeekContainsDate)!==null&&n!==void 0?n:(s=f.locale)===null||s===void 0||(d=s.options)===null||d===void 0?void 0:d.firstWeekContainsDate)!==null&&t!==void 0?t:1);if(!(m>=1&&m<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var v=new Date(0);v.setUTCFullYear(l+1,0,m),v.setUTCHours(0,0,0,0);var M=ee(v,e),p=new Date(0);p.setUTCFullYear(l,0,m),p.setUTCHours(0,0,0,0);var w=ee(p,e);return c.getTime()>=M.getTime()?l+1:c.getTime()>=w.getTime()?l:l-1}function ct(a,e){var t,n,r,i,o,u,s,d;k(1,arguments);var c=te(),l=j((t=(n=(r=(i=e==null?void 0:e.firstWeekContainsDate)!==null&&i!==void 0?i:e==null||(o=e.locale)===null||o===void 0||(u=o.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:c.firstWeekContainsDate)!==null&&n!==void 0?n:(s=c.locale)===null||s===void 0||(d=s.options)===null||d===void 0?void 0:d.firstWeekContainsDate)!==null&&t!==void 0?t:1),f=be(a,e),m=new Date(0);m.setUTCFullYear(f,0,l),m.setUTCHours(0,0,0,0);var v=ee(m,e);return v}var mt=6048e5;function ft(a,e){k(1,arguments);var t=U(a),n=ee(t,e).getTime()-ct(t,e).getTime();return Math.round(n/mt)+1}function h(a,e){for(var t=a<0?"-":"",n=Math.abs(a).toString();n.length<e;)n="0"+n;return t+n}var ht={y:function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return h(t==="yy"?r%100:r,t.length)},M:function(e,t){var n=e.getUTCMonth();return t==="M"?String(n+1):h(n+1,2)},d:function(e,t){return h(e.getUTCDate(),t.length)},a:function(e,t){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h:function(e,t){return h(e.getUTCHours()%12||12,t.length)},H:function(e,t){return h(e.getUTCHours(),t.length)},m:function(e,t){return h(e.getUTCMinutes(),t.length)},s:function(e,t){return h(e.getUTCSeconds(),t.length)},S:function(e,t){var n=t.length,r=e.getUTCMilliseconds(),i=Math.floor(r*Math.pow(10,n-3));return h(i,t.length)}};const F=ht;var I={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},gt={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){var r=e.getUTCFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return F.y(e,t)},Y:function(e,t,n,r){var i=be(e,r),o=i>0?i:1-i;if(t==="YY"){var u=o%100;return h(u,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):h(o,t.length)},R:function(e,t){var n=ve(e);return h(n,t.length)},u:function(e,t){var n=e.getUTCFullYear();return h(n,t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return h(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return h(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return F.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return h(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var i=ft(e,r);return t==="wo"?n.ordinalNumber(i,{unit:"week"}):h(i,t.length)},I:function(e,t,n){var r=lt(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):h(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):F.d(e,t)},D:function(e,t,n){var r=ut(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):h(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var i=e.getUTCDay(),o=(i-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return h(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});case"eeee":default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var i=e.getUTCDay(),o=(i-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return h(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});case"cccc":default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),i=r===0?7:r;switch(t){case"i":return String(i);case"ii":return h(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours(),i=r/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r=e.getUTCHours(),i;switch(r===12?i=I.noon:r===0?i=I.midnight:i=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r=e.getUTCHours(),i;switch(r>=17?i=I.evening:r>=12?i=I.afternoon:r>=4?i=I.morning:i=I.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){var r=e.getUTCHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return F.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):F.H(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):h(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):h(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):F.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):F.s(e,t)},S:function(e,t){return F.S(e,t)},X:function(e,t,n,r){var i=r._originalDate||e,o=i.getTimezoneOffset();if(o===0)return"Z";switch(t){case"X":return de(o);case"XXXX":case"XX":return B(o);case"XXXXX":case"XXX":default:return B(o,":")}},x:function(e,t,n,r){var i=r._originalDate||e,o=i.getTimezoneOffset();switch(t){case"x":return de(o);case"xxxx":case"xx":return B(o);case"xxxxx":case"xxx":default:return B(o,":")}},O:function(e,t,n,r){var i=r._originalDate||e,o=i.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+se(o,":");case"OOOO":default:return"GMT"+B(o,":")}},z:function(e,t,n,r){var i=r._originalDate||e,o=i.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+se(o,":");case"zzzz":default:return"GMT"+B(o,":")}},t:function(e,t,n,r){var i=r._originalDate||e,o=Math.floor(i.getTime()/1e3);return h(o,t.length)},T:function(e,t,n,r){var i=r._originalDate||e,o=i.getTime();return h(o,t.length)}};function se(a,e){var t=a>0?"-":"+",n=Math.abs(a),r=Math.floor(n/60),i=n%60;if(i===0)return t+String(r);var o=e||"";return t+String(r)+o+h(i,2)}function de(a,e){if(a%60===0){var t=a>0?"-":"+";return t+h(Math.abs(a)/60,2)}return B(a,e)}function B(a,e){var t=e||"",n=a>0?"-":"+",r=Math.abs(a),i=h(Math.floor(r/60),2),o=h(r%60,2);return n+i+t+o}const vt=gt;var le=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},pe=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},bt=function(e,t){var n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return le(e,t);var o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",le(r,t)).replace("{{time}}",pe(i,t))},pt={p:pe,P:bt};const wt=pt;var yt=["D","DD"],Mt=["YY","YYYY"];function kt(a){return yt.indexOf(a)!==-1}function Dt(a){return Mt.indexOf(a)!==-1}function ce(a,e,t){if(a==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(e,"`) for formatting years to the input `").concat(t,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(a==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(e,"`) for formatting years to the input `").concat(t,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(a==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(e,"`) for formatting days of the month to the input `").concat(t,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(a==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(e,"`) for formatting days of the month to the input `").concat(t,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var Tt={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Ct=function(e,t,n){var r,i=Tt[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};const Pt=Ct;function H(a){return function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.width?String(e.width):a.defaultWidth,n=a.formats[t]||a.formats[a.defaultWidth];return n}}var St={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Et={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Ot={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},xt={date:H({formats:St,defaultWidth:"full"}),time:H({formats:Et,defaultWidth:"full"}),dateTime:H({formats:Ot,defaultWidth:"full"})};const $t=xt;var Wt={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Nt=function(e,t,n,r){return Wt[e]};const Ut=Nt;function W(a){return function(e,t){var n=t!=null&&t.context?String(t.context):"standalone",r;if(n==="formatting"&&a.formattingValues){var i=a.defaultFormattingWidth||a.defaultWidth,o=t!=null&&t.width?String(t.width):i;r=a.formattingValues[o]||a.formattingValues[i]}else{var u=a.defaultWidth,s=t!=null&&t.width?String(t.width):a.defaultWidth;r=a.values[s]||a.values[u]}var d=a.argumentCallback?a.argumentCallback(e):e;return r[d]}}var Yt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},_t={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Lt={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Ft={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Rt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Bt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},jt=function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},At={ordinalNumber:jt,era:W({values:Yt,defaultWidth:"wide"}),quarter:W({values:_t,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:W({values:Lt,defaultWidth:"wide"}),day:W({values:Ft,defaultWidth:"wide"}),dayPeriod:W({values:Rt,defaultWidth:"wide",formattingValues:Bt,defaultFormattingWidth:"wide"})};const It=At;function N(a){return function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.width,r=n&&a.matchPatterns[n]||a.matchPatterns[a.defaultMatchWidth],i=e.match(r);if(!i)return null;var o=i[0],u=n&&a.parsePatterns[n]||a.parsePatterns[a.defaultParseWidth],s=Array.isArray(u)?Ht(u,function(l){return l.test(o)}):Vt(u,function(l){return l.test(o)}),d;d=a.valueCallback?a.valueCallback(s):s,d=t.valueCallback?t.valueCallback(d):d;var c=e.slice(o.length);return{value:d,rest:c}}}function Vt(a,e){for(var t in a)if(a.hasOwnProperty(t)&&e(a[t]))return t}function Ht(a,e){for(var t=0;t<a.length;t++)if(e(a[t]))return t}function we(a){return function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.match(a.matchPattern);if(!n)return null;var r=n[0],i=e.match(a.parsePattern);if(!i)return null;var o=a.valueCallback?a.valueCallback(i[0]):i[0];o=t.valueCallback?t.valueCallback(o):o;var u=e.slice(r.length);return{value:o,rest:u}}}var qt=/^(\d+)(th|st|nd|rd)?/i,Qt=/\d+/i,Xt={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Gt={any:[/^b/i,/^(a|c)/i]},Kt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Jt={any:[/1/i,/2/i,/3/i,/4/i]},zt={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Zt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},ea={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},ta={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},aa={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},na={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},ra={ordinalNumber:we({matchPattern:qt,parsePattern:Qt,valueCallback:function(e){return parseInt(e,10)}}),era:N({matchPatterns:Xt,defaultMatchWidth:"wide",parsePatterns:Gt,defaultParseWidth:"any"}),quarter:N({matchPatterns:Kt,defaultMatchWidth:"wide",parsePatterns:Jt,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:N({matchPatterns:zt,defaultMatchWidth:"wide",parsePatterns:Zt,defaultParseWidth:"any"}),day:N({matchPatterns:ea,defaultMatchWidth:"wide",parsePatterns:ta,defaultParseWidth:"any"}),dayPeriod:N({matchPatterns:aa,defaultMatchWidth:"any",parsePatterns:na,defaultParseWidth:"any"})};const ia=ra;var oa={code:"en-US",formatDistance:Pt,formatLong:$t,formatRelative:Ut,localize:It,match:ia,options:{weekStartsOn:0,firstWeekContainsDate:1}};const ua=oa;var sa=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,da=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,la=/^'([^]*?)'?$/,ca=/''/g,ma=/[a-zA-Z]/;function $(a,e,t){var n,r,i,o,u,s,d,c,l,f,m,v,M,p,w,T,P,O;k(2,arguments);var b=String(e),S=te(),x=(n=(r=t==null?void 0:t.locale)!==null&&r!==void 0?r:S.locale)!==null&&n!==void 0?n:ua,E=j((i=(o=(u=(s=t==null?void 0:t.firstWeekContainsDate)!==null&&s!==void 0?s:t==null||(d=t.locale)===null||d===void 0||(c=d.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&u!==void 0?u:S.firstWeekContainsDate)!==null&&o!==void 0?o:(l=S.locale)===null||l===void 0||(f=l.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&i!==void 0?i:1);if(!(E>=1&&E<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var Y=j((m=(v=(M=(p=t==null?void 0:t.weekStartsOn)!==null&&p!==void 0?p:t==null||(w=t.locale)===null||w===void 0||(T=w.options)===null||T===void 0?void 0:T.weekStartsOn)!==null&&M!==void 0?M:S.weekStartsOn)!==null&&v!==void 0?v:(P=S.locale)===null||P===void 0||(O=P.options)===null||O===void 0?void 0:O.weekStartsOn)!==null&&m!==void 0?m:0);if(!(Y>=0&&Y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!x.localize)throw new RangeError("locale must contain localize property");if(!x.formatLong)throw new RangeError("locale must contain formatLong property");var _=U(a);if(!rt(_))throw new RangeError("Invalid time value");var A=at(_),q=it(_,A),ye={firstWeekContainsDate:E,weekStartsOn:Y,locale:x,_originalDate:_},Me=b.match(da).map(function(D){var L=D[0];if(L==="p"||L==="P"){var Q=wt[L];return Q(D,x.formatLong)}return D}).join("").match(sa).map(function(D){if(D==="''")return"'";var L=D[0];if(L==="'")return fa(D);var Q=vt[L];if(Q)return!(t!=null&&t.useAdditionalWeekYearTokens)&&Dt(D)&&ce(D,e,String(a)),!(t!=null&&t.useAdditionalDayOfYearTokens)&&kt(D)&&ce(D,e,String(a)),Q(q,D,x.localize,ye);if(L.match(ma))throw new RangeError("Format string contains an unescaped latin alphabet character `"+L+"`");return D}).join("");return Me}function fa(a){var e=a.match(la);return e?e[1].replace(ca,"'"):a}var ha={lessThanXSeconds:{one:"kurang dari 1 detik",other:"kurang dari {{count}} detik"},xSeconds:{one:"1 detik",other:"{{count}} detik"},halfAMinute:"setengah menit",lessThanXMinutes:{one:"kurang dari 1 menit",other:"kurang dari {{count}} menit"},xMinutes:{one:"1 menit",other:"{{count}} menit"},aboutXHours:{one:"sekitar 1 jam",other:"sekitar {{count}} jam"},xHours:{one:"1 jam",other:"{{count}} jam"},xDays:{one:"1 hari",other:"{{count}} hari"},aboutXWeeks:{one:"sekitar 1 minggu",other:"sekitar {{count}} minggu"},xWeeks:{one:"1 minggu",other:"{{count}} minggu"},aboutXMonths:{one:"sekitar 1 bulan",other:"sekitar {{count}} bulan"},xMonths:{one:"1 bulan",other:"{{count}} bulan"},aboutXYears:{one:"sekitar 1 tahun",other:"sekitar {{count}} tahun"},xYears:{one:"1 tahun",other:"{{count}} tahun"},overXYears:{one:"lebih dari 1 tahun",other:"lebih dari {{count}} tahun"},almostXYears:{one:"hampir 1 tahun",other:"hampir {{count}} tahun"}},ga=function(e,t,n){var r,i=ha[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"dalam waktu "+r:r+" yang lalu":r};const va=ga;var ba={full:"EEEE, d MMMM yyyy",long:"d MMMM yyyy",medium:"d MMM yyyy",short:"d/M/yyyy"},pa={full:"HH.mm.ss",long:"HH.mm.ss",medium:"HH.mm",short:"HH.mm"},wa={full:"{{date}} 'pukul' {{time}}",long:"{{date}} 'pukul' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ya={date:H({formats:ba,defaultWidth:"full"}),time:H({formats:pa,defaultWidth:"full"}),dateTime:H({formats:wa,defaultWidth:"full"})};const Ma=ya;var ka={lastWeek:"eeee 'lalu pukul' p",yesterday:"'Kemarin pukul' p",today:"'Hari ini pukul' p",tomorrow:"'Besok pukul' p",nextWeek:"eeee 'pukul' p",other:"P"},Da=function(e,t,n,r){return ka[e]};const Ta=Da;var Ca={narrow:["SM","M"],abbreviated:["SM","M"],wide:["Sebelum Masehi","Masehi"]},Pa={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["Kuartal ke-1","Kuartal ke-2","Kuartal ke-3","Kuartal ke-4"]},Sa={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agt","Sep","Okt","Nov","Des"],wide:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]},Ea={narrow:["M","S","S","R","K","J","S"],short:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],abbreviated:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],wide:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},Oa={narrow:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},abbreviated:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},wide:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"}},xa={narrow:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},abbreviated:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"},wide:{am:"AM",pm:"PM",midnight:"tengah malam",noon:"tengah hari",morning:"pagi",afternoon:"siang",evening:"sore",night:"malam"}},$a=function(e,t){var n=Number(e);return"ke-"+n},Wa={ordinalNumber:$a,era:W({values:Ca,defaultWidth:"wide"}),quarter:W({values:Pa,defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:W({values:Sa,defaultWidth:"wide"}),day:W({values:Ea,defaultWidth:"wide"}),dayPeriod:W({values:Oa,defaultWidth:"wide",formattingValues:xa,defaultFormattingWidth:"wide"})};const Na=Wa;var Ua=/^ke-(\d+)?/i,Ya=/\d+/i,_a={narrow:/^(sm|m)/i,abbreviated:/^(s\.?\s?m\.?|s\.?\s?e\.?\s?u\.?|m\.?|e\.?\s?u\.?)/i,wide:/^(sebelum masehi|sebelum era umum|masehi|era umum)/i},La={any:[/^s/i,/^(m|e)/i]},Fa={narrow:/^[1234]/i,abbreviated:/^K-?\s[1234]/i,wide:/^Kuartal ke-?\s?[1234]/i},Ra={any:[/1/i,/2/i,/3/i,/4/i]},Ba={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|mei|jun|jul|agt|sep|okt|nov|des)/i,wide:/^(januari|februari|maret|april|mei|juni|juli|agustus|september|oktober|november|desember)/i},ja={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^ma/i,/^ap/i,/^me/i,/^jun/i,/^jul/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},Aa={narrow:/^[srkjm]/i,short:/^(min|sen|sel|rab|kam|jum|sab)/i,abbreviated:/^(min|sen|sel|rab|kam|jum|sab)/i,wide:/^(minggu|senin|selasa|rabu|kamis|jumat|sabtu)/i},Ia={narrow:[/^m/i,/^s/i,/^s/i,/^r/i,/^k/i,/^j/i,/^s/i],any:[/^m/i,/^sen/i,/^sel/i,/^r/i,/^k/i,/^j/i,/^sa/i]},Va={narrow:/^(a|p|tengah m|tengah h|(di(\swaktu)?) (pagi|siang|sore|malam))/i,any:/^([ap]\.?\s?m\.?|tengah malam|tengah hari|(di(\swaktu)?) (pagi|siang|sore|malam))/i},Ha={any:{am:/^a/i,pm:/^pm/i,midnight:/^tengah m/i,noon:/^tengah h/i,morning:/pagi/i,afternoon:/siang/i,evening:/sore/i,night:/malam/i}},qa={ordinalNumber:we({matchPattern:Ua,parsePattern:Ya,valueCallback:function(e){return parseInt(e,10)}}),era:N({matchPatterns:_a,defaultMatchWidth:"wide",parsePatterns:La,defaultParseWidth:"any"}),quarter:N({matchPatterns:Fa,defaultMatchWidth:"wide",parsePatterns:Ra,defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:N({matchPatterns:Ba,defaultMatchWidth:"wide",parsePatterns:ja,defaultParseWidth:"any"}),day:N({matchPatterns:Aa,defaultMatchWidth:"wide",parsePatterns:Ia,defaultParseWidth:"any"}),dayPeriod:N({matchPatterns:Va,defaultMatchWidth:"any",parsePatterns:Ha,defaultParseWidth:"any"})};const Qa=qa;var Xa={code:"id",formatDistance:va,formatLong:Ma,formatRelative:Ta,localize:Na,match:Qa,options:{weekStartsOn:1,firstWeekContainsDate:1}};const R=Xa;function Ga(a){let e="";const{dateStart:t,dateEnd:n}=a;if(t&&n){const r=$(new Date(t),"yyyy-MM-dd HH:mm"),i=$(new Date(n),"yyyy-MM-dd HH:mm"),o=r.split(" "),u=o[0].split("-"),s=u[0],d=u[1],c=i.split(" "),l=c[0].split("-"),f=l[0],m=l[1];o[0]===c[0]?e=`Voucher hanya berlaku di tanggal ${$(new Date(t),"d MMM yyyy",{locale:R})}.`:s!==f?e=`Voucher berlaku dari ${$(new Date(t),"d MMM yyyy",{locale:R})} - ${$(new Date(n),"d MMM yyyy",{locale:R})}.`:s===f&&(d===m?e=`Voucher berlaku dari ${$(new Date(t),"d",{locale:R})} - ${$(new Date(n),"d MMM yyyy",{locale:R})}.`:e=`Voucher berlaku dari ${$(new Date(t),"d MMM",{locale:R})} - ${$(new Date(n),"d MMM yyyy",{locale:R})}.`)}else t&&(e=`Voucher berlaku dari ${$(new Date(t),"d MMM yyyy",{locale:R})}.`);return e}function Ka(a){const{isOneTimeUsage:e,isOneTimeUsagePerCard:t}=a;if(!e&&!t)return"";let n="";return e&&(n="Voucher hanya dapat digunakan 1x per member selama masa berlaku."),t&&(n="Voucher hanya dapat digunakan 1x per kartu selama masa berlaku."),e&&t&&(n="Voucher hanya dapat digunakan 1x transaksi untuk 1 kartu dan 1 member selama masa berlaku."),n}function Ja(a){let e="";const{type:t,discountType:n,discountValue:r,isCheckedMaxFee:i,maxDiscountAmount:o,transactionTerms:u,termsMinTotalAmount:s,termsMinQty:d,limitFee:c}=a,l=w=>typeof w=="number"?w:Number.isNaN(Number(w))?0:Number(w),f=V({value:l(o),prefix:"Rp"}),m=V({value:l(r),prefix:"Rp"}),v=V({value:l(c),prefix:"Rp"}),M=V({value:l(s),prefix:"Rp"}),p=V({value:l(d)});switch(t===y.product||t===y.order||t===y.gift||t===y.payment?n===J.percentage&&t!==y.gift?(e=`Diskon ${r||0}%`,i&&(e+=` (hingga ${f})`)):n===J.amount&&t!==y.gift?e=`Potongan ${m}`:e=`Potongan ${v}`:t===y.freeShipping?(e="Shipping fee ditanggung oleh voilà.id",i&&(e+=` (hingga ${v})`)):t===y.freeInsurance&&(e="Insurance fee ditanggung oleh voilà.id",i&&(e+=` (hingga ${v})`)),u){case 0:e+=" tanpa minimum pembelian.";break;case 1:e+=` dengan min. pembelian ${M}.`;break;case 2:e+=` dengan min. pembelian ${d?p:0} item.`;break;default:e+=""}return e}const za=a=>{if(a){const e=[],{dateEnd:t,dateStart:n,type:r,discountType:i,discountValue:o,isCheckedMaxFee:u,maxDiscountAmount:s,transactionTerms:d,termsMinTotalAmount:c,termsMinQty:l,limitFee:f,collections:m,brands:v,eligibilityType:M,isOneTimeUsage:p,quota:w,isOneTimeUsagePerCard:T,payment:P,isGiftCard:O}=a,{bankName:b="",creditBinGroup:S=[],debitBinGroup:x=[]}=P||{},E=Ga({dateStart:n,dateEnd:t}),Y=ze({type:r,collections:m,brands:v,eligibilityType:M,payment:P}),_=Ja({type:r,discountType:i,discountValue:o,isCheckedMaxFee:u,maxDiscountAmount:s,transactionTerms:d,termsMinTotalAmount:c,termsMinQty:l,limitFee:f}),A=Ka({isOneTimeUsage:p,isOneTimeUsagePerCard:T}),q=Ze({bankName:b,creditBinGroup:S,debitBinGroup:x});return E&&e.push(E),_&&e.push(_),Y&&e.push(Y),A&&e.push(A),w>0&&e.push("Kuota voucher terbatas."),(q||[]).length>0&&e.push(...q),(r===y.order||r===y.payment||r===y.freeInsurance||r===y.gift&&!O)&&e.push("Hanya berlaku untuk produk tertentu."),e}return[]},Za=za;exports.DiscountType=J;exports.VoucherType=y;exports.canUseDOM=fe;exports.getOwnerDocument=re;exports.isBrowser=he;exports.isElement=me;exports.isValidEvent=G;exports.useCallbackRef=K;exports.useClipboard=We;exports.useDebounce=Ue;exports.useDimensions=Ae;exports.useDisclosure=Ve;exports.useMediaQuery=qe;exports.useNumberFormatter=V;exports.useOnlineStatus=Ge;exports.useOutsideClick=Je;exports.useSafeLayoutEffect=ge;exports.useVoucherTnc=Za;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
DiscountType: () => DiscountType,
|
|
34
|
+
VoucherType: () => VoucherType,
|
|
35
|
+
canUseDOM: () => canUseDOM,
|
|
36
|
+
getOwnerDocument: () => getOwnerDocument,
|
|
37
|
+
isBrowser: () => isBrowser,
|
|
38
|
+
isElement: () => isElement,
|
|
39
|
+
isValidEvent: () => isValidEvent,
|
|
40
|
+
useCallbackRef: () => use_callback_ref_default,
|
|
41
|
+
useClipboard: () => use_clipboard_default,
|
|
42
|
+
useDebounce: () => use_debounce_default,
|
|
43
|
+
useDimensions: () => use_dimensions_default,
|
|
44
|
+
useDisclosure: () => use_disclosure_default,
|
|
45
|
+
useMediaQuery: () => use_media_query_default,
|
|
46
|
+
useNumberFormatter: () => use_number_formatter_default,
|
|
47
|
+
useOnlineStatus: () => use_online_status_default,
|
|
48
|
+
useOutsideClick: () => use_outside_click_default,
|
|
49
|
+
useSafeLayoutEffect: () => use_safe_layout_effect_default,
|
|
50
|
+
useVoucherTnc: () => use_voucher_tnc_default
|
|
51
|
+
});
|
|
52
|
+
module.exports = __toCommonJS(index_exports);
|
|
53
|
+
|
|
54
|
+
// src/dom.ts
|
|
55
|
+
var isElement = (el) => {
|
|
56
|
+
return el != null && typeof el === "object" && "nodeType" in el && el.nodeType === Node.ELEMENT_NODE;
|
|
57
|
+
};
|
|
58
|
+
var getOwnerDocument = (node) => {
|
|
59
|
+
var _a;
|
|
60
|
+
return isElement(node) ? (_a = node.ownerDocument) != null ? _a : document : document;
|
|
61
|
+
};
|
|
62
|
+
var isValidEvent = (event, ref) => {
|
|
63
|
+
var _a;
|
|
64
|
+
const target = event.target;
|
|
65
|
+
if (event.button > 0) return false;
|
|
66
|
+
if (target) {
|
|
67
|
+
const doc = getOwnerDocument(target);
|
|
68
|
+
if (!doc.contains(target)) return false;
|
|
69
|
+
}
|
|
70
|
+
return !((_a = ref.current) == null ? void 0 : _a.contains(target));
|
|
71
|
+
};
|
|
72
|
+
var canUseDOM = () => {
|
|
73
|
+
return !!(typeof window !== "undefined" && window.document && window.document.createElement);
|
|
74
|
+
};
|
|
75
|
+
var isBrowser = canUseDOM();
|
|
76
|
+
|
|
77
|
+
// src/hooks/use-callback-ref/use-callback-ref.ts
|
|
78
|
+
var import_react = require("react");
|
|
79
|
+
var useCallbackRef = (callback, deps = []) => {
|
|
80
|
+
const callbackRef = (0, import_react.useRef)(callback);
|
|
81
|
+
(0, import_react.useEffect)(() => {
|
|
82
|
+
callbackRef.current = callback;
|
|
83
|
+
});
|
|
84
|
+
return (0, import_react.useCallback)((...args) => {
|
|
85
|
+
var _a;
|
|
86
|
+
return (_a = callbackRef.current) == null ? void 0 : _a.call(callbackRef, ...args);
|
|
87
|
+
}, deps);
|
|
88
|
+
};
|
|
89
|
+
var use_callback_ref_default = useCallbackRef;
|
|
90
|
+
|
|
91
|
+
// src/hooks/use-clipboard/use-clipboard.ts
|
|
92
|
+
var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
|
|
93
|
+
var import_react2 = require("react");
|
|
94
|
+
var useClipboard = ({ value = "", optionsOrTimeout = {} } = {}) => {
|
|
95
|
+
const [hasCopied, setHasCopied] = (0, import_react2.useState)(false);
|
|
96
|
+
const [valueState, setValueState] = (0, import_react2.useState)(value);
|
|
97
|
+
(0, import_react2.useEffect)(() => setValueState(value), [value]);
|
|
98
|
+
const { timeout = 1500, ...copyOptions } = typeof optionsOrTimeout === "number" ? { timeout: optionsOrTimeout } : optionsOrTimeout;
|
|
99
|
+
const onCopy = (0, import_react2.useCallback)(() => {
|
|
100
|
+
const didCopy = (0, import_copy_to_clipboard.default)(valueState, copyOptions);
|
|
101
|
+
setHasCopied(didCopy);
|
|
102
|
+
}, [valueState, copyOptions]);
|
|
103
|
+
(0, import_react2.useEffect)(() => {
|
|
104
|
+
let timeoutId = null;
|
|
105
|
+
if (hasCopied) {
|
|
106
|
+
timeoutId = window.setTimeout(() => {
|
|
107
|
+
setHasCopied(false);
|
|
108
|
+
}, timeout);
|
|
109
|
+
}
|
|
110
|
+
return () => {
|
|
111
|
+
if (timeoutId) {
|
|
112
|
+
window.clearTimeout(timeoutId);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}, [timeout, hasCopied]);
|
|
116
|
+
return {
|
|
117
|
+
value: valueState,
|
|
118
|
+
setValue: setValueState,
|
|
119
|
+
onCopy,
|
|
120
|
+
hasCopied
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
var use_clipboard_default = useClipboard;
|
|
124
|
+
|
|
125
|
+
// src/hooks/use-debounce/use-debounce.ts
|
|
126
|
+
var import_react3 = require("react");
|
|
127
|
+
var useDebounce = ({ value, delay = 500 }) => {
|
|
128
|
+
const [debouncedValue, setDebouncedValue] = (0, import_react3.useState)(value);
|
|
129
|
+
(0, import_react3.useEffect)(() => {
|
|
130
|
+
const timer = setTimeout(() => setDebouncedValue(value), delay || 500);
|
|
131
|
+
return () => {
|
|
132
|
+
clearTimeout(timer);
|
|
133
|
+
};
|
|
134
|
+
}, [JSON.stringify(value), delay]);
|
|
135
|
+
return debouncedValue;
|
|
136
|
+
};
|
|
137
|
+
var use_debounce_default = useDebounce;
|
|
138
|
+
|
|
139
|
+
// src/hooks/use-dimensions/use-dimensions.ts
|
|
140
|
+
var import_css_box_model = require("css-box-model");
|
|
141
|
+
var import_react5 = require("react");
|
|
142
|
+
|
|
143
|
+
// src/hooks/use-safe-layout-effect/use-safe-layout-effect.ts
|
|
144
|
+
var import_react4 = require("react");
|
|
145
|
+
var useSafeLayoutEffect = isBrowser ? import_react4.useLayoutEffect : import_react4.useEffect;
|
|
146
|
+
var use_safe_layout_effect_default = useSafeLayoutEffect;
|
|
147
|
+
|
|
148
|
+
// src/hooks/use-dimensions/use-dimensions.ts
|
|
149
|
+
var useDimensions = (ref, observe) => {
|
|
150
|
+
const [dimensions, setDimensions] = (0, import_react5.useState)(null);
|
|
151
|
+
const rafId = (0, import_react5.useRef)();
|
|
152
|
+
use_safe_layout_effect_default(() => {
|
|
153
|
+
const measure = () => {
|
|
154
|
+
const node = ref.current;
|
|
155
|
+
if (!node) return;
|
|
156
|
+
rafId.current = requestAnimationFrame(() => {
|
|
157
|
+
const boxModel = (0, import_css_box_model.getBox)(node);
|
|
158
|
+
setDimensions(boxModel);
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
measure();
|
|
162
|
+
if (observe) {
|
|
163
|
+
window.addEventListener("resize", measure);
|
|
164
|
+
window.addEventListener("scroll", measure);
|
|
165
|
+
}
|
|
166
|
+
return () => {
|
|
167
|
+
if (observe) {
|
|
168
|
+
window.removeEventListener("resize", measure);
|
|
169
|
+
window.removeEventListener("scroll", measure);
|
|
170
|
+
}
|
|
171
|
+
if (rafId.current) {
|
|
172
|
+
cancelAnimationFrame(rafId.current);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}, [observe]);
|
|
176
|
+
return dimensions;
|
|
177
|
+
};
|
|
178
|
+
var use_dimensions_default = useDimensions;
|
|
179
|
+
|
|
180
|
+
// src/hooks/use-disclosure/use-disclosure.ts
|
|
181
|
+
var import_react6 = require("react");
|
|
182
|
+
var useDisclosure = ({
|
|
183
|
+
onClose: onCloseProp,
|
|
184
|
+
onOpen: onOpenProp,
|
|
185
|
+
isOpen: isOpenProp,
|
|
186
|
+
defaultIsOpen: defaultIsOpenProp,
|
|
187
|
+
id: idProp
|
|
188
|
+
} = {}) => {
|
|
189
|
+
const [isOpenState, setIsOpenState] = (0, import_react6.useState)(defaultIsOpenProp || false);
|
|
190
|
+
const isOpen = isOpenProp !== void 0 ? isOpenProp : isOpenState;
|
|
191
|
+
const isControlled = isOpenProp !== void 0;
|
|
192
|
+
const uid = (0, import_react6.useId)();
|
|
193
|
+
const id2 = idProp != null ? idProp : `disclosure-${uid}`;
|
|
194
|
+
const handleOpen = use_callback_ref_default(onOpenProp);
|
|
195
|
+
const handleClose = use_callback_ref_default(onCloseProp);
|
|
196
|
+
const onClose = (0, import_react6.useCallback)(() => {
|
|
197
|
+
if (!isControlled) {
|
|
198
|
+
setIsOpenState(false);
|
|
199
|
+
}
|
|
200
|
+
handleClose == null ? void 0 : handleClose();
|
|
201
|
+
}, [isControlled, handleClose]);
|
|
202
|
+
const onOpen = (0, import_react6.useCallback)(() => {
|
|
203
|
+
if (!isControlled) {
|
|
204
|
+
setIsOpenState(true);
|
|
205
|
+
}
|
|
206
|
+
handleOpen == null ? void 0 : handleOpen();
|
|
207
|
+
}, [isControlled, handleOpen]);
|
|
208
|
+
const onToggle = (0, import_react6.useCallback)(() => {
|
|
209
|
+
if (isOpen) {
|
|
210
|
+
onClose();
|
|
211
|
+
} else {
|
|
212
|
+
onOpen();
|
|
213
|
+
}
|
|
214
|
+
}, [isOpen, onOpen, onClose]);
|
|
215
|
+
const getButtonProps = ({ onClick, ...rest } = {}) => {
|
|
216
|
+
return {
|
|
217
|
+
...rest,
|
|
218
|
+
"aria-expanded": isOpen,
|
|
219
|
+
"aria-controls": id2,
|
|
220
|
+
onClick(event) {
|
|
221
|
+
onClick == null ? void 0 : onClick(event);
|
|
222
|
+
onToggle();
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
const getDisclosureProps = ({ ...rest } = {}) => {
|
|
227
|
+
return {
|
|
228
|
+
...rest,
|
|
229
|
+
hidden: !isOpen,
|
|
230
|
+
id: id2
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
return {
|
|
234
|
+
onClose,
|
|
235
|
+
onOpen,
|
|
236
|
+
onToggle,
|
|
237
|
+
getButtonProps,
|
|
238
|
+
getDisclosureProps,
|
|
239
|
+
isOpen
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
var use_disclosure_default = useDisclosure;
|
|
243
|
+
|
|
244
|
+
// src/hooks/use-media-query/use-media-query.ts
|
|
245
|
+
var import_react7 = require("react");
|
|
246
|
+
var useMediaQuery = (query, options = {}) => {
|
|
247
|
+
const { ssr = true, fallback } = options;
|
|
248
|
+
const queries = Array.isArray(query) ? query : [query];
|
|
249
|
+
let fallbackValues = Array.isArray(fallback) ? fallback : [fallback];
|
|
250
|
+
fallbackValues = fallbackValues.filter((v) => v != null);
|
|
251
|
+
const [value, setValue] = (0, import_react7.useState)(() => {
|
|
252
|
+
return queries.map((data, index) => ({
|
|
253
|
+
media: data,
|
|
254
|
+
matches: ssr ? !!fallbackValues[index] : window.matchMedia(data).matches
|
|
255
|
+
}));
|
|
256
|
+
});
|
|
257
|
+
(0, import_react7.useEffect)(() => {
|
|
258
|
+
const win = window;
|
|
259
|
+
setValue(
|
|
260
|
+
queries.map((data) => ({
|
|
261
|
+
media: data,
|
|
262
|
+
matches: win.matchMedia(data).matches
|
|
263
|
+
}))
|
|
264
|
+
);
|
|
265
|
+
const mql = queries.map((data) => win.matchMedia(data));
|
|
266
|
+
const handler = (evt) => {
|
|
267
|
+
setValue((prev) => {
|
|
268
|
+
return prev.slice().map((item) => {
|
|
269
|
+
if (item.media === evt.media) return { ...item, matches: evt.matches };
|
|
270
|
+
return item;
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
};
|
|
274
|
+
mql.forEach((data) => {
|
|
275
|
+
data.addEventListener("change", handler);
|
|
276
|
+
});
|
|
277
|
+
return () => {
|
|
278
|
+
mql.forEach((data) => {
|
|
279
|
+
data.removeEventListener("change", handler);
|
|
280
|
+
});
|
|
281
|
+
};
|
|
282
|
+
}, [window]);
|
|
283
|
+
return value.map((item) => item.matches);
|
|
284
|
+
};
|
|
285
|
+
var use_media_query_default = useMediaQuery;
|
|
286
|
+
|
|
287
|
+
// src/hooks/use-number-formatter/use-number-formatter.ts
|
|
288
|
+
var useNumberFormatter = ({
|
|
289
|
+
value,
|
|
290
|
+
thousandSeparator = ".",
|
|
291
|
+
decimalLength,
|
|
292
|
+
decimalSeparator = ",",
|
|
293
|
+
prefix = ""
|
|
294
|
+
}) => {
|
|
295
|
+
const formatNumber = (number) => {
|
|
296
|
+
const parts = number.toString().split(".");
|
|
297
|
+
const integerPart = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousandSeparator);
|
|
298
|
+
let decimalPart = "";
|
|
299
|
+
if (decimalLength !== void 0) {
|
|
300
|
+
if (parts.length > 1 && decimalLength > 0) {
|
|
301
|
+
decimalPart = decimalSeparator + parts[1].padEnd(decimalLength, "0").slice(0, decimalLength);
|
|
302
|
+
} else if (decimalLength > 0) {
|
|
303
|
+
decimalPart = decimalSeparator + "0".repeat(decimalLength);
|
|
304
|
+
}
|
|
305
|
+
} else if (parts.length > 1) {
|
|
306
|
+
decimalPart = decimalSeparator + parts[1];
|
|
307
|
+
}
|
|
308
|
+
return integerPart + decimalPart;
|
|
309
|
+
};
|
|
310
|
+
const formattedValue = formatNumber(value);
|
|
311
|
+
if (formattedValue.charAt(0) === `-`) {
|
|
312
|
+
return formattedValue.replace(/^-/g, `-${prefix}`);
|
|
313
|
+
}
|
|
314
|
+
return `${prefix}${formattedValue}`;
|
|
315
|
+
};
|
|
316
|
+
var use_number_formatter_default = useNumberFormatter;
|
|
317
|
+
|
|
318
|
+
// src/hooks/use-online-status/use-online-status.ts
|
|
319
|
+
var import_react8 = require("react");
|
|
320
|
+
var useOnlineStatus = () => {
|
|
321
|
+
const [isOnline, setIsOnline] = (0, import_react8.useState)(navigator.onLine);
|
|
322
|
+
(0, import_react8.useEffect)(() => {
|
|
323
|
+
const handleEvent = () => setIsOnline(navigator.onLine);
|
|
324
|
+
window.addEventListener("online", handleEvent);
|
|
325
|
+
window.addEventListener("offline", handleEvent);
|
|
326
|
+
return () => {
|
|
327
|
+
window.removeEventListener("online", handleEvent);
|
|
328
|
+
window.removeEventListener("offline", handleEvent);
|
|
329
|
+
};
|
|
330
|
+
}, []);
|
|
331
|
+
return { isOnline, isOffline: !isOnline };
|
|
332
|
+
};
|
|
333
|
+
var use_online_status_default = useOnlineStatus;
|
|
334
|
+
|
|
335
|
+
// src/hooks/use-outside-click/use-outside-click.ts
|
|
336
|
+
var import_react9 = require("react");
|
|
337
|
+
var useOutsideClick = ({ enabled = true, ref, handler }) => {
|
|
338
|
+
const savedHandler = use_callback_ref_default(handler);
|
|
339
|
+
const stateRef = (0, import_react9.useRef)({
|
|
340
|
+
isPointerDown: false,
|
|
341
|
+
ignoreEmulatedMouseEvents: false
|
|
342
|
+
});
|
|
343
|
+
const state = stateRef.current;
|
|
344
|
+
(0, import_react9.useEffect)(() => {
|
|
345
|
+
if (!enabled) return void 0;
|
|
346
|
+
const onPointerDown = (e) => {
|
|
347
|
+
if (isValidEvent(e, ref)) {
|
|
348
|
+
state.isPointerDown = true;
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
const onMouseUp = (event) => {
|
|
352
|
+
if (state.ignoreEmulatedMouseEvents) {
|
|
353
|
+
state.ignoreEmulatedMouseEvents = false;
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
if (state.isPointerDown && handler && isValidEvent(event, ref)) {
|
|
357
|
+
state.isPointerDown = false;
|
|
358
|
+
savedHandler(event);
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
const onTouchEnd = (event) => {
|
|
362
|
+
state.ignoreEmulatedMouseEvents = true;
|
|
363
|
+
if (handler && state.isPointerDown && isValidEvent(event, ref)) {
|
|
364
|
+
state.isPointerDown = false;
|
|
365
|
+
savedHandler(event);
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
const doc = getOwnerDocument(ref.current);
|
|
369
|
+
doc.addEventListener("mousedown", onPointerDown, true);
|
|
370
|
+
doc.addEventListener("mouseup", onMouseUp, true);
|
|
371
|
+
doc.addEventListener("touchstart", onPointerDown, true);
|
|
372
|
+
doc.addEventListener("touchend", onTouchEnd, true);
|
|
373
|
+
return () => {
|
|
374
|
+
doc.removeEventListener("mousedown", onPointerDown, true);
|
|
375
|
+
doc.removeEventListener("mouseup", onMouseUp, true);
|
|
376
|
+
doc.removeEventListener("touchstart", onPointerDown, true);
|
|
377
|
+
doc.removeEventListener("touchend", onTouchEnd, true);
|
|
378
|
+
};
|
|
379
|
+
}, [handler, ref, savedHandler, state, enabled]);
|
|
380
|
+
};
|
|
381
|
+
var use_outside_click_default = useOutsideClick;
|
|
382
|
+
|
|
383
|
+
// src/hooks/use-voucher-tnc/use-voucher-tnc.types.ts
|
|
384
|
+
var VoucherType = /* @__PURE__ */ ((VoucherType2) => {
|
|
385
|
+
VoucherType2["product"] = "Product";
|
|
386
|
+
VoucherType2["order"] = "Order";
|
|
387
|
+
VoucherType2["gift"] = "Gift";
|
|
388
|
+
VoucherType2["freeShipping"] = "Free Shipping";
|
|
389
|
+
VoucherType2["freeInsurance"] = "Free Insurance";
|
|
390
|
+
VoucherType2["bundling"] = "Bundling";
|
|
391
|
+
VoucherType2["payment"] = "Payment";
|
|
392
|
+
return VoucherType2;
|
|
393
|
+
})(VoucherType || {});
|
|
394
|
+
var DiscountType = /* @__PURE__ */ ((DiscountType2) => {
|
|
395
|
+
DiscountType2["percentage"] = "percentage";
|
|
396
|
+
DiscountType2["amount"] = "amount";
|
|
397
|
+
return DiscountType2;
|
|
398
|
+
})(DiscountType || {});
|
|
399
|
+
|
|
400
|
+
// src/hooks/use-voucher-tnc/get-applies-to.ts
|
|
401
|
+
function getAppliesTo(args) {
|
|
402
|
+
var _a, _b;
|
|
403
|
+
let appliesTo = "";
|
|
404
|
+
const { type, eligibilityType, payment } = args;
|
|
405
|
+
const collections = (_a = args.collections) != null ? _a : [];
|
|
406
|
+
const brands = (_b = args.brands) != null ? _b : [];
|
|
407
|
+
if (type === "Product" /* product */) {
|
|
408
|
+
if (collections.length > 0) {
|
|
409
|
+
appliesTo = `Voucher hanya berlaku untuk produk tertentu dari collection ${collections.map((value) => value.name).join(", ")}.`;
|
|
410
|
+
} else if (brands.length > 0) {
|
|
411
|
+
appliesTo = `Voucher hanya berlaku untuk produk tertentu dari brand ${brands.map((value) => value.name).join(", ")}.`;
|
|
412
|
+
} else if (eligibilityType === "selected_products") {
|
|
413
|
+
appliesTo = `Hanya berlaku untuk produk tertentu.`;
|
|
414
|
+
}
|
|
415
|
+
} else if (type === "Payment" /* payment */) {
|
|
416
|
+
const { bankName, paymentMethod, creditBinGroup, debitBinGroup } = payment || {};
|
|
417
|
+
const isFullPayment = (paymentMethod || []).some((pay) => (pay || "").includes("(Full Payment)"));
|
|
418
|
+
const isInstallment3 = (paymentMethod || []).some((pay) => (pay || "").includes("(Cicilan 3x)"));
|
|
419
|
+
const isInstallment6 = (paymentMethod || []).some((pay) => (pay || "").includes("(Cicilan 6x)"));
|
|
420
|
+
const isInstallment12 = (paymentMethod || []).some((pay) => (pay || "").includes("(Cicilan 12x)"));
|
|
421
|
+
const isInstallment18 = (paymentMethod || []).some((pay) => (pay || "").includes("(Cicilan 18x)"));
|
|
422
|
+
const isInstallment = isInstallment3 || isInstallment6 || isInstallment12 || isInstallment18;
|
|
423
|
+
const isCredit = isFullPayment || isInstallment;
|
|
424
|
+
const isDebit = (paymentMethod || []).some((pay) => (pay || "").includes("Debit Card"));
|
|
425
|
+
const debitAndCredit = [
|
|
426
|
+
...isDebit && (debitBinGroup || []).length > 0 ? ["Kartu Debit"] : [],
|
|
427
|
+
...isCredit && (creditBinGroup || []).length > 0 ? ["Kartu Kredit"] : []
|
|
428
|
+
];
|
|
429
|
+
let txtCreditSystem = "";
|
|
430
|
+
if (isCredit) {
|
|
431
|
+
const creditSystem = [
|
|
432
|
+
...isFullPayment ? ["sistem pembayaran penuh"] : [],
|
|
433
|
+
...isInstallment ? ["sistem cicilan"] : []
|
|
434
|
+
];
|
|
435
|
+
const installments = [
|
|
436
|
+
...isInstallment3 ? ["3"] : [],
|
|
437
|
+
...isInstallment6 ? ["6"] : [],
|
|
438
|
+
...isInstallment12 ? ["12"] : [],
|
|
439
|
+
...isInstallment18 ? ["18"] : []
|
|
440
|
+
];
|
|
441
|
+
let replacedStrInstallment = installments.join(" dan ");
|
|
442
|
+
if (installments.length > 2) {
|
|
443
|
+
const strInstallment = installments.join(", ");
|
|
444
|
+
const lastCharIndex = strInstallment.lastIndexOf(",");
|
|
445
|
+
const left = strInstallment.slice(0, lastCharIndex);
|
|
446
|
+
const right = strInstallment.slice(lastCharIndex + 1, strInstallment.length);
|
|
447
|
+
replacedStrInstallment = [left, right].join(", dan");
|
|
448
|
+
}
|
|
449
|
+
txtCreditSystem = [
|
|
450
|
+
"dengan",
|
|
451
|
+
creditSystem.join(" dan "),
|
|
452
|
+
...isInstallment ? [`(${replacedStrInstallment} bulan)`] : []
|
|
453
|
+
].join(" ");
|
|
454
|
+
}
|
|
455
|
+
if (debitAndCredit.length > 0) {
|
|
456
|
+
appliesTo = `${[
|
|
457
|
+
"Voucher berlaku untuk pembayaran menggunakan",
|
|
458
|
+
debitAndCredit.join(" dan "),
|
|
459
|
+
bankName,
|
|
460
|
+
txtCreditSystem
|
|
461
|
+
].filter((txt) => (txt || "").length > 0).join(" ")}.`;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return appliesTo;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
// src/hooks/use-voucher-tnc/get-bank-bin.ts
|
|
468
|
+
function getBankBin(args) {
|
|
469
|
+
const { bankName, creditBinGroup, debitBinGroup } = args;
|
|
470
|
+
const txtCreditBin = (creditBinGroup || []).join(", ");
|
|
471
|
+
const txtDebitBin = (debitBinGroup || []).join(", ");
|
|
472
|
+
return [
|
|
473
|
+
...bankName && txtCreditBin ? [`Voucher berlaku untuk Kartu Kredit ${bankName} dengan Bank Identification Number (BIN): ${txtCreditBin}.`] : [],
|
|
474
|
+
...bankName && txtDebitBin ? [`Voucher berlaku untuk Kartu Debit ${bankName} dengan Bank Identification Number (BIN): ${txtDebitBin}.`] : []
|
|
475
|
+
];
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
// src/hooks/use-voucher-tnc/get-period.ts
|
|
479
|
+
var import_date_fns = require("date-fns");
|
|
480
|
+
var import_locale = require("date-fns/locale");
|
|
481
|
+
function getPeriodText(args) {
|
|
482
|
+
let period = "";
|
|
483
|
+
const { dateStart, dateEnd } = args;
|
|
484
|
+
if (dateStart && dateEnd) {
|
|
485
|
+
const dateStartFormatter = (0, import_date_fns.format)(new Date(dateStart), "yyyy-MM-dd HH:mm");
|
|
486
|
+
const dateEndFormatter = (0, import_date_fns.format)(new Date(dateEnd), "yyyy-MM-dd HH:mm");
|
|
487
|
+
const dateStartSplitTime = dateStartFormatter.split(" ");
|
|
488
|
+
const dateStartSplit = dateStartSplitTime[0].split("-");
|
|
489
|
+
const dateStartYear = dateStartSplit[0];
|
|
490
|
+
const dateStartMonth = dateStartSplit[1];
|
|
491
|
+
const dateEndSplitTime = dateEndFormatter.split(" ");
|
|
492
|
+
const dateEndSplit = dateEndSplitTime[0].split("-");
|
|
493
|
+
const dateEndYear = dateEndSplit[0];
|
|
494
|
+
const dateEndMonth = dateEndSplit[1];
|
|
495
|
+
if (dateStartSplitTime[0] === dateEndSplitTime[0]) {
|
|
496
|
+
period = `Voucher hanya berlaku di tanggal ${(0, import_date_fns.format)(new Date(dateStart), "d MMM yyyy", { locale: import_locale.id })}.`;
|
|
497
|
+
} else if (dateStartYear !== dateEndYear) {
|
|
498
|
+
period = `Voucher berlaku dari ${(0, import_date_fns.format)(new Date(dateStart), "d MMM yyyy", { locale: import_locale.id })} - ${(0, import_date_fns.format)(
|
|
499
|
+
new Date(dateEnd),
|
|
500
|
+
"d MMM yyyy",
|
|
501
|
+
{ locale: import_locale.id }
|
|
502
|
+
)}.`;
|
|
503
|
+
} else if (dateStartYear === dateEndYear) {
|
|
504
|
+
if (dateStartMonth === dateEndMonth) {
|
|
505
|
+
period = `Voucher berlaku dari ${(0, import_date_fns.format)(new Date(dateStart), "d", { locale: import_locale.id })} - ${(0, import_date_fns.format)(
|
|
506
|
+
new Date(dateEnd),
|
|
507
|
+
"d MMM yyyy",
|
|
508
|
+
{
|
|
509
|
+
locale: import_locale.id
|
|
510
|
+
}
|
|
511
|
+
)}.`;
|
|
512
|
+
} else {
|
|
513
|
+
period = `Voucher berlaku dari ${(0, import_date_fns.format)(new Date(dateStart), "d MMM", { locale: import_locale.id })} - ${(0, import_date_fns.format)(
|
|
514
|
+
new Date(dateEnd),
|
|
515
|
+
"d MMM yyyy",
|
|
516
|
+
{ locale: import_locale.id }
|
|
517
|
+
)}.`;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
} else if (dateStart) {
|
|
521
|
+
period = `Voucher berlaku dari ${(0, import_date_fns.format)(new Date(dateStart), "d MMM yyyy", { locale: import_locale.id })}.`;
|
|
522
|
+
}
|
|
523
|
+
return period;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
// src/hooks/use-voucher-tnc/get-usage-limit.ts
|
|
527
|
+
function getVoucherUsageLimit(args) {
|
|
528
|
+
const { isOneTimeUsage, isOneTimeUsagePerCard } = args;
|
|
529
|
+
if (!isOneTimeUsage && !isOneTimeUsagePerCard) {
|
|
530
|
+
return "";
|
|
531
|
+
}
|
|
532
|
+
let usageLimit = "";
|
|
533
|
+
if (isOneTimeUsage) {
|
|
534
|
+
usageLimit = "Voucher hanya dapat digunakan 1x per member selama masa berlaku.";
|
|
535
|
+
}
|
|
536
|
+
if (isOneTimeUsagePerCard) {
|
|
537
|
+
usageLimit = "Voucher hanya dapat digunakan 1x per kartu selama masa berlaku.";
|
|
538
|
+
}
|
|
539
|
+
if (isOneTimeUsage && isOneTimeUsagePerCard) {
|
|
540
|
+
usageLimit = "Voucher hanya dapat digunakan 1x transaksi untuk 1 kartu dan 1 member selama masa berlaku.";
|
|
541
|
+
}
|
|
542
|
+
return usageLimit;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
// src/hooks/use-voucher-tnc/use-voucher-method-terms.ts
|
|
546
|
+
function useVoucherMethodTerms(args) {
|
|
547
|
+
let methodTerm = "";
|
|
548
|
+
const {
|
|
549
|
+
type,
|
|
550
|
+
discountType,
|
|
551
|
+
discountValue,
|
|
552
|
+
isCheckedMaxFee,
|
|
553
|
+
maxDiscountAmount,
|
|
554
|
+
transactionTerms,
|
|
555
|
+
termsMinTotalAmount,
|
|
556
|
+
termsMinQty,
|
|
557
|
+
limitFee
|
|
558
|
+
} = args;
|
|
559
|
+
const safeNumber = (val) => {
|
|
560
|
+
if (typeof val === "number") return val;
|
|
561
|
+
return !Number.isNaN(Number(val)) ? Number(val) : 0;
|
|
562
|
+
};
|
|
563
|
+
const formattedMaxDiscount = use_number_formatter_default({ value: safeNumber(maxDiscountAmount), prefix: "Rp" });
|
|
564
|
+
const formattedDiscountVal = use_number_formatter_default({ value: safeNumber(discountValue), prefix: "Rp" });
|
|
565
|
+
const formattedLimitFee = use_number_formatter_default({ value: safeNumber(limitFee), prefix: "Rp" });
|
|
566
|
+
const formattedMinTotalAmount = use_number_formatter_default({ value: safeNumber(termsMinTotalAmount), prefix: "Rp" });
|
|
567
|
+
const formattedMinTotalQty = use_number_formatter_default({ value: safeNumber(termsMinQty) });
|
|
568
|
+
if (type === "Product" /* product */ || type === "Order" /* order */ || type === "Gift" /* gift */ || type === "Payment" /* payment */) {
|
|
569
|
+
if (discountType === "percentage" /* percentage */ && type !== "Gift" /* gift */) {
|
|
570
|
+
methodTerm = `Diskon ${discountValue || 0}%`;
|
|
571
|
+
if (isCheckedMaxFee) {
|
|
572
|
+
methodTerm += ` (hingga ${formattedMaxDiscount})`;
|
|
573
|
+
}
|
|
574
|
+
} else if (discountType === "amount" /* amount */ && type !== "Gift" /* gift */) {
|
|
575
|
+
methodTerm = `Potongan ${formattedDiscountVal}`;
|
|
576
|
+
} else {
|
|
577
|
+
methodTerm = `Potongan ${formattedLimitFee}`;
|
|
578
|
+
}
|
|
579
|
+
} else if (type === "Free Shipping" /* freeShipping */) {
|
|
580
|
+
methodTerm = "Shipping fee ditanggung oleh voil\xE0.id";
|
|
581
|
+
if (isCheckedMaxFee) {
|
|
582
|
+
methodTerm += ` (hingga ${formattedLimitFee})`;
|
|
583
|
+
}
|
|
584
|
+
} else if (type === "Free Insurance" /* freeInsurance */) {
|
|
585
|
+
methodTerm = "Insurance fee ditanggung oleh voil\xE0.id";
|
|
586
|
+
if (isCheckedMaxFee) {
|
|
587
|
+
methodTerm += ` (hingga ${formattedLimitFee})`;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
switch (transactionTerms) {
|
|
591
|
+
case 0:
|
|
592
|
+
methodTerm += " tanpa minimum pembelian.";
|
|
593
|
+
break;
|
|
594
|
+
case 1:
|
|
595
|
+
methodTerm += ` dengan min. pembelian ${formattedMinTotalAmount}.`;
|
|
596
|
+
break;
|
|
597
|
+
case 2:
|
|
598
|
+
methodTerm += ` dengan min. pembelian ${termsMinQty ? formattedMinTotalQty : 0} item.`;
|
|
599
|
+
break;
|
|
600
|
+
default:
|
|
601
|
+
methodTerm += "";
|
|
602
|
+
}
|
|
603
|
+
return methodTerm;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
// src/hooks/use-voucher-tnc/use-voucher-tnc.ts
|
|
607
|
+
var useVoucherTnc = (props) => {
|
|
608
|
+
if (props) {
|
|
609
|
+
const terms = [];
|
|
610
|
+
const {
|
|
611
|
+
dateEnd,
|
|
612
|
+
dateStart,
|
|
613
|
+
type,
|
|
614
|
+
discountType,
|
|
615
|
+
discountValue,
|
|
616
|
+
isCheckedMaxFee,
|
|
617
|
+
maxDiscountAmount,
|
|
618
|
+
transactionTerms,
|
|
619
|
+
termsMinTotalAmount,
|
|
620
|
+
termsMinQty,
|
|
621
|
+
limitFee,
|
|
622
|
+
collections,
|
|
623
|
+
brands,
|
|
624
|
+
eligibilityType,
|
|
625
|
+
isOneTimeUsage,
|
|
626
|
+
quota,
|
|
627
|
+
isOneTimeUsagePerCard,
|
|
628
|
+
payment,
|
|
629
|
+
isGiftCard
|
|
630
|
+
} = props;
|
|
631
|
+
const { bankName = "", creditBinGroup = [], debitBinGroup = [] } = payment || {};
|
|
632
|
+
const period = getPeriodText({ dateStart, dateEnd });
|
|
633
|
+
const appliesTo = getAppliesTo({ type, collections, brands, eligibilityType, payment });
|
|
634
|
+
const methodTerms = useVoucherMethodTerms({
|
|
635
|
+
type,
|
|
636
|
+
discountType,
|
|
637
|
+
discountValue,
|
|
638
|
+
isCheckedMaxFee,
|
|
639
|
+
maxDiscountAmount,
|
|
640
|
+
transactionTerms,
|
|
641
|
+
termsMinTotalAmount,
|
|
642
|
+
termsMinQty,
|
|
643
|
+
limitFee
|
|
644
|
+
});
|
|
645
|
+
const usageLimit = getVoucherUsageLimit({ isOneTimeUsage, isOneTimeUsagePerCard });
|
|
646
|
+
const bankBin = getBankBin({ bankName, creditBinGroup, debitBinGroup });
|
|
647
|
+
if (period) terms.push(period);
|
|
648
|
+
if (methodTerms) terms.push(methodTerms);
|
|
649
|
+
if (appliesTo) terms.push(appliesTo);
|
|
650
|
+
if (usageLimit) terms.push(usageLimit);
|
|
651
|
+
if (quota > 0) terms.push("Kuota voucher terbatas.");
|
|
652
|
+
if ((bankBin || []).length > 0) terms.push(...bankBin);
|
|
653
|
+
if (type === "Order" /* order */ || type === "Payment" /* payment */ || type === "Free Insurance" /* freeInsurance */ || type === "Gift" /* gift */ && !isGiftCard) {
|
|
654
|
+
terms.push("Hanya berlaku untuk produk tertentu.");
|
|
655
|
+
}
|
|
656
|
+
return terms;
|
|
657
|
+
}
|
|
658
|
+
return [];
|
|
659
|
+
};
|
|
660
|
+
var use_voucher_tnc_default = useVoucherTnc;
|
|
661
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
662
|
+
0 && (module.exports = {
|
|
663
|
+
DiscountType,
|
|
664
|
+
VoucherType,
|
|
665
|
+
canUseDOM,
|
|
666
|
+
getOwnerDocument,
|
|
667
|
+
isBrowser,
|
|
668
|
+
isElement,
|
|
669
|
+
isValidEvent,
|
|
670
|
+
useCallbackRef,
|
|
671
|
+
useClipboard,
|
|
672
|
+
useDebounce,
|
|
673
|
+
useDimensions,
|
|
674
|
+
useDisclosure,
|
|
675
|
+
useMediaQuery,
|
|
676
|
+
useNumberFormatter,
|
|
677
|
+
useOnlineStatus,
|
|
678
|
+
useOutsideClick,
|
|
679
|
+
useSafeLayoutEffect,
|
|
680
|
+
useVoucherTnc
|
|
681
|
+
});
|
|
682
|
+
//# sourceMappingURL=index.js.map
|