Meta tags:
description= Buy the best magic tricks online from one of the biggest UK magic suppliers. Get the best prices, free shipping, no quibble returns, earn loyalty points and buy from a REAL bricks and mortor shop with real staff that offer the best advice and service.;
Headings (most frequently used words):
by, playing, cards, akiba, frenzy, band, girls, and, mark, mason, the, magicbox, leather, packet, wallet, paul, gordon, edition, magic, new, club, sandwich, andrew, normansell, conseal, headache, tobias, dostal, captivate, face, christian, grace, constant, coins, tight, squeeze, white, gold, v3, joker, thief, lead, singer, guitarist, drummer, featured, penguin, let, customers, speak, for, us, stellar, brand, items, latest, products, top, brands, language, sucker, punch, revolutions, two, headed, prediction, gimmicks, online, instructions, christopher, magician, trick, up, down, pure, poison, phil, jester, all, sharpie, thru, acrobatic, sock, jeki, yoo, tan, brown, black, david, regal, locking, dollar, sized, copper, silver, triple, cobra, martin, schwartz, ancient, relics, special, card, 52, muse, predestination, gary, jones, francis, uneducated, duck, thomas, moore, guarantee, eric, stevens, newsletter,
Text of the page (most frequently used words):
price (147), const (86), sale (82), view (75), regular (72), _alconfig (68), magic (68), quick (68), document (61), and (43), loyalty (42), the (42), out (41), unit (37), sold (37), per (36), title (34), appstle (33), default (33), cart (32), function (29), playing (29), data (28), cards (28), return (27), button (27), window (26), widget_setting (25), appstle_loyalty_iframe (24), queryselector (23), classlist (22), let (22), event (22), else (21), add (21), location (19), for (19), new (18), 2026 (18), great (18), isshowwidget (17), true (16), open (16), false (16), close (15), getelementbyid (15), all (15), item (14), includes (14), content (14), show (13), icon (13), magicbox (13), try (12), error (12), indexof (12), link (12), header (12), width (12), href (11), catch (11), body (10), shop (10), typeof (10), height (10), with (10), left (10), settimeout (9), url (9), addeventlistener (9), remove (9), length (9), right (9), insertionpoint (9), tolowercase (9), display (9), num (9), contentwindow (8), widget (8), searchparams (8), wishlist (8), 100 (8), count (8), pay (8), andrew (8), easy (8), more (8), mark (8), mason (8), account (8), proxy_path_prefix (7), replace (7), some (7), get (7), insertadjacenthtml (7), hidden (7), color (7), club (7), info (7), book (7), loadappstleloyaltywidget (6), text (6), customerloyalty (6), referralredirecturl (6), origin (6), pathname (6), fetch (6), widgetjsurl (6), widgetjspath (6), widgetcssurl (6), tostring (6), log (6), page (6), preload (6), beforeend (6), have (6), ancestor (6), now (6), countelement (6), events (6), snackbar (6), transform (6), max (6), flex (6), currentpage (6), card (6), akiba (6), frenzy (6), band (6), girls (6), cases (6), widgettype (5), displayvalue (5), number (5), redirecturl (5), referralurlobj (5), then (5), json (5), widgetcsspath (5), set (5), customerid (5), update (5), console (5), customurl (5), message (5), find (5), nav (5), but (5), one (5), split (5), rounded (5), token (5), tag (5), returns (5), paul (5), trick (5), good (5), sam (5), really (5), effect (5), penguin (5), shipping (5), toggle (4), var (4), iframe (4), foreach (4), launcherdatatype (4), points (4), loyalty_widget_available_points (4), storecreditbalance (4), string (4), format (4), enablewidget (4), appstle_referral (4), handleurlchange (4), versionurl (4), apps (4), res (4), response (4), htmldecoded (4), initiateappstleloyaltypage (4), appstleloyaltypageelement (4), loaddedicatedpageasset (4), attempt (4), onsettle (4), asset (4), createelement (4), isavailablevisitshop (4), insert (4), elements (4), top (4), container (4), insertbutton (4), gropulse (4), buttonhtml (4), tagname (4), observer (4), updatewishlistcount (4), thousands (4), opacity (4), transition (4), border (4), background (4), media (4), items (4), trim (4), restrictedpages (4), allowedpages (4), btn (4), english (4), newcastle (4), online (4), customers (4), over (4), products (4), brands (4), joker (4), thief (4), wallet (4), video (4), learn (4), this (4), very (4), tricks (4), carry (4), junior (4), circle (4), downloads (4), ellusionist (4), vanishing (4), inc (4), theory (4), sponge (4), flash (4), stella (4), chris (4), togglewidget (3), launcher (3), showappstleloyaltywidget (3), 900 (3), queryselectorall (3), aliframesrc (3), pointsel (3), currentviptier (3), textcontent (3), handledeeplink (3), hash (3), search (3), referralpath (3), _self (3), lasturl (3), mutationobserver (3), observe (3), subtree (3), childlist (3), aldomobserver (3), mutation (3), version (3), executeloyaltywidget (3), err (3), dedicatedpageurl (3), normalizedcustompath (3), refresh (3), createasset (3), settled (3), settle (3), math (3), async (3), appendchild (3), executededicatedpagescript (3), widgetscriptappended (3), appendwidgetscriptonce (3), type (3), rule (3), getitem (3), element (3), rect (3), icons (3), last (3), not (3), ideal (3), header__icons (3), first (3), wrapper (3), like (3), too (3), just (3), outerboundary (3), before (3), found (3), lielement (3), domcontentloaded (3), insertattempts (3), from (3), localstorage (3), cachedtimestamp (3), use (3), old (3), snackbarindex (3), roundtype (3), amount (3), position (3), bottom (3), 24px (3), none (3), 1d4ed8 (3), 4px (3), white (3), align (3), center (3), restrictedcustomerstag (3), allowedcustomerstag (3), allowedtags (3), restrictedtags (3), contact (3), magician (3), also (3), check (3), our (3), free (3), buy (3), happy (3), quibble (3), latest (3), 338 (3), coins (3), edition (3), cobra (3), leather (3), packet (3), gordon (3), reviews (3), you (3), staff (3), love (3), tutorial (3), what (3), peek (3), your (3), coin (3), bought (3), fantastic (3), sandwich (3), normansell (3), real (3), accessories (3), html (2), write (2), loyaltybuttontitle (2), shop_labels (2), widgettitle (2), innerhtml (2), parsehtmlstringcontent (2), launcherbuttonelement (2), fmt (2), availablepoints (2), formatstorecreditamount (2), formatnumberbypointroundtype (2), appstle_show_points (2), loyaltydeeplinks (2), rewards (2), showwidget (2), widgetreferralurl (2), referralenabled (2), null (2), currentpath (2), mutations_list (2), added_node (2), disconnect (2), app (2), finally (2), storecreditmismatch (2), customerstorecreditbalance (2), com (2), updatecustomerurl (2), api (2), customer (2), method (2), post (2), decodeurl (2), parse (2), parsing (2), dedicated_page (2), dedicatedpageeventlistener (2), appstleloyaltypage (2), while (2), firstchild (2), appenddedicatedpagewidgetscript (2), script (2), rel (2), head (2), pointearnrules (2), visit_shop (2), sessionstorage (2), syncvisitstore (2), store (2), loyaltycustomstyles (2), findinsertionpoint (2), possiblecartselectors (2), aria (2), controls (2), site (2), selector (2), existing (2), keep (2), dom (2), immediately (2), any (2), existingbutton (2), insertion (2), anchor (2), itself (2), still (2), are (2), immediate (2), iscartcontainer (2), parentelement (2), loading (2), maxattempts (2), attemptinsertwithobserver (2), cachedcount (2), toastereventlistener (2), showappstleloyaltytoaster (2), msg (2), elem (2), tofixed (2), value (2), safe (2), tokenmatch (2), decimal (2), sign (2), 28px (2), index (2), radius (2), 12px (2), fixed (2), padding (2), 56px (2), ffffff (2), 40px (2), 1px (2), min (2), box (2), rgb (2), 2px (2), 100vh (2), scale (2), important (2), appstle_loyalty_widget_button_wrapper (2), gap (2), shrink (2), right_snackbar (2), mainhtmlstring (2), widgeteventlistener (2), removeappstleloyaltywidget (2), customertags (2), allowedtag (2), restrictedtag (2), blockwidgetonpages (2), homepage (2), allowwidgetonspecificpages (2), __appstle_loyalty_launcher_allowed (2), launcherallowed (2), visa (2), union (2), paypal (2), mastercard (2), maestro (2), klarna (2), wero (2), google (2), discover (2), diners (2), bancontact (2), apple (2), american (2), express (2), payment (2), methods (2), deutsch (2), language (2), 0191 (2), 9083252 (2), way (2), 10am (2), youtube (2), instagram (2), facebook (2), twitter (2), delivery (2), well (2), been (2), years (2), help (2), policy (2), newsletter (2), news (2), special (2), tight (2), squeeze (2), constant (2), drummer (2), guitarist (2), lead (2), singer (2), gold (2), school (2), demos (2), perform (2), mine (2), web (2), was (2), cylinder (2), yet (2), excellent (2), fun (2), cullen (2), contactless (2), decks (2), 247 (2), speak (2), headache (2), tobias (2), dostal (2), conseal (2), captivate (2), face (2), christian (2), grace (2), sucker (2), punch (2), revolutions (2), orders (2), neptune (2), about (2), faq (2), saturday (2), coffee (2), sessions (2), dates (2), magicians (2), secret (2), room (2), fantasma (2), fultons (2), hypielab (2), bacon (2), riffle (2), shuffle (2), handlordz (2), harry (2), potter (2), avengers (2), mechanic (2), industries (2), disney (2), dan (2), dave (2), bicycle (2), rider (2), backs (2), puppets (2), pads (2), mats (2), balls (2), tables (2), balloons (2), miracle (2), studio (2), joel (2), dickinson (2), master (2), illusions (2), peter (2), loughran (2), yigal (2), mesika (2), iarvel (2), congreave (2), presents (2), alakazam (2), rawlins (2), neo (2), craig (2), petty (2), liam (2), montier (2), kaymar (2), pitata (2), gentlemen (2), axtell (2), expressions (2), michael (2), murray (2), mickael (2), chatelain (2), future (2), tenyo (2), harris (2), tango (2), joao (2), miranda (2), tcc (2), murphys (2), dvd (2), books (2), exclusives (2), blackpool (2), levitation (2), picks (2), wallets (2), ball (2), mentalism (2), stage (2), parlour (2), childrens (2), money (2), home (2), touppercase, forceredirectdedicatedpage, showtier, showtiername, intl, numberformat, store_credits, vip_tier, refer, earn, redeem, referrals, vip, program, 200, observeurlchanges, popstate, hashchange, addednodes, olineloyalty27, myshopify, referralcustomredirecturl, startswith, refresh_appstle_loyalty_page, onload, onerror, 1000, pow, setattribute, src, css, stylesheet, 8000, 2000, dedicatedpagereferralurl, status, active, referralloyalty, referraltype, await, visit, headers, application, setitem, best, place, etc, off, canvas, bubble, header__icon, header__cart, getboundingclientrect, prefer, side, stays, resort, stores, without, recognized, rendering, even, spot, instead, losing, entirely, column, list, header__actions, into, buttons, already, exists, createbuttonhtml, point, walk, through, custom, class, must, treated, containers, checked, multiple, levels, walked, parent, classname, getattribute, outermost, isn, wrapped, beforebegin, parentnode, insertbefore, nextsibling, append, ready, readystate, otherwise, wait, fallback, fails, start, observing, asynchronously, gropulse_wishlist_count, gropulse_wishlist_count_timestamp, date, cached, less, than, minutes, parseint, after, slight, delay, prioritize, showing, listen, gropulse_wishlist_updated, export, external, gropulseupdatewishlistcount, snackbarhtml, appstle_message_for_notification, 5000, closesnackbar, pointroundtype, no_round, round_up, ceil, round_down, floor, isinteger, isfinite, shopmoneyformat, match, decimals, no_decimals, comma_separator, space_separator, apostrophe_separator, absolute, translate, 999, 19px, overflow, 300px, 400px, 516px, 100px, 1234567, shadow, 6px, calc, 120px, 80vw, screen, 800px, translatex, transparent, wrap, nowrap, 10px, auto, 8px, margin, 14px, buttonimage, 30px, loyaltywidgetstyles, appstle_message_for_showwidget, appstle_widget_showhide, refresh_appstle_loyalty_widget, show_appstle_loyalty_widget, checkforwidgetrestrictions, customerstatus, excluded, showtologgedincustomeronly, click, widgetposition, left_snackbar, opens, choosing, selection, results, full, powered, shopify, strand, house, locomotion, camperdown, industrial, estate, killingworth, upon, tyne, ne12, 5us, north, east, www, coolplayingcards, website, closed, sunday, sat, 4pm, monday, friday, 5pm, opening, hours, system, give, discount, largest, respected, shops, confidence, trading, always, advise, competitive, prices, business, subscribe, email, offers, guarantee, eric, stevens, francis, uneducated, duck, thomas, moore, predestination, gary, jones, ancient, relics, muse, triple, martin, schwartz, david, regal, locking, dollar, sized, copper, silver, black, brown, tan, brand, tips, performance, hints, questions, answered, look, effects, that, may, ever, seen, weekly, magazine, stellar, awesome, purchase, including, routines, beginners, pros, deck, nic, adcock, superb, once, little, patience, turns, quite, device, anything, spectator, either, argos, amazon, ebay, they, choose, able, tell, them, cost, ease, lucky, worth, every, penny, robert, hollis, mixed, review, rough, round, edges, plus, ithe, dubbed, haven, actually, download, disappointed, production, reading, leasy, understand, colour, photos, throughout, variety, purse, which, useful, favorite, routine, usefull, visual, highly, recommend, don, phrase, everyday, grinds, though, simple, deceptive, daily, basis, wish, couldn, anywhere, here, bargain, should, twice, using, since, its, release, only, again, damaged, other, quality, service, nick, vincent, mad, where, amazing, funny, loved, there, whole, simply, grant, johnston, impressive, prop, made, derek, suzanne, job, were, wanted, combination, numbers, test, thanks, fast, despatch, order, forcing, ricky, morgan, acrobatic, sock, jeki, yoo, blue, red, sharpie, thru, pure, poison, phil, jester, down, two, headed, prediction, gimmicks, instructions, christopher, featured, call, unused, rate, based, see, create, pause, slideshow, advice, bricks, mortar, tax, included, calculated, checkout, subtotal, faster, continue, shopping, empty, skip,
Text of the page (random words):
nt a z_ s i const token tokenmatch 1 amount tolowercase amount const decimals token includes no_decimals 0 2 let thousands decimal if token includes comma_separator thousands decimal else if token includes space_separator thousands else if token includes apostrophe_separator thousands const sign safe appstle loyalty widget close icon width 28px height 28px opacity 0 position absolute top 50 left 50 transform translate 50 50 transition opacity 0 2s appstle loyalty button bottom 24px z index 999 border radius 12px position fixed border none transition max width 1s padding 0 19px overflow hidden height 56px transform origin left max width 300px background color 1d4ed8 color ffffff appstle loyalty right right 40px appstle loyalty left left 40px appstle_loyalty_iframe width 1px min width 400px border none height 516px position fixed bottom 100px z index 1234567 box shadow 0 4px 6px 1px rgb 0 0 0 10 0 2px 4px 2px rgb 0 0 0 10 background color white border radius 12px max height calc 100vh 120px transform scale 0 important transition all 0 5s transform origin bottom right max width 80vw media screen and max width 800px appstle_loyalty_iframe left 0 height 100vh top 0 min width 100 appstle_loyalty_iframe open appstle loyalty button left 50 transform translatex 50 appstle loyalty button transition all 0 5s appstle_loyalty_iframe open transform scale 1 important appstle_loyalty_iframe open show close icon button appstle loyalty widget close icon opacity 1 appstle_loyalty_iframe open button appstle_loyalty_widget_button_wrapper color transparent appstle_loyalty_widget_button_wrapper height 100 width 100 display flex flex wrap nowrap align items center gap 10px appstle loyalty widget button text flex shrink 0 loyalty_widget_available_points display none height 100 width auto flex shrink 0 appstle_show_points loyalty_widget_available_points display flex align items center padding 0 8px margin right 14px background color 1d4ed8 color ffffff appstle_loyalty_iframe open show close icon button background color 1d4ed8 appstle_loyalty_iframe open show close icon button appstle loyalty widget button text wrapper appstle_loyalty_iframe open show close icon button loyalty_widget_available_points opacity 0 appstle_loyalty_iframe open button max width 56px loyalty widget buttonimage height 24px width 24px appstle loyalty widget button text wrapper height 100 display flex gap 4px align items center right_snackbar right 30px document queryselector body insertadjacenthtml beforeend loyaltywidgetstyles const mainhtmlstring document queryselector body insertadjacenthtml beforeend mainhtmlstring window addeventlistener message widgeteventlistener false function widgeteventlistener event if event data typeof event data indexof function event data indexof appstle_message_for_showwidget 1 else if event data typeof event data indexof function event data indexof appstle_widget_showhide 1 togglewidget else if event data typeof event data indexof function event data indexof refresh_appstle_loyalty_widget 1 _alconfig widget_setting widgettype launcher loadappstleloyaltywidget console log refresh widget else if event data typeof event data indexof function event data indexof show_appstle_loyalty_widget 1 loadappstleloyaltywidget enablewidget function removeappstleloyaltywidget document queryselector appstle loyalty button classlist add appstle loyalty hidden document queryselector appstle_loyalty_iframe classlist add appstle loyalty hidden function checkforwidgetrestrictions let isshowwidget true if _alconfig customerloyalty customerstatus excluded isshowwidget false if _alconfig customerid isshowwidget _alconfig widget_setting restrictedcustomerstag _alconfig widget_setting allowedcustomerstag if _alconfig widget_setting allowedcustomerstag length isshowwidget let allowedtags _alconfig widget_setting allowedcustomerstag split if allowedtags length 0 _alconfig customertags some tag allowedtags some allowedtag allowedtag trim tolowercase tag trim tolowercase isshowwidget false if _alconfig widget_setting restrictedcustomerstag length isshowwidget let restrictedtags _alconfig widget_setting restrictedcustomerstag split if restrictedtags length 0 _alconfig customertags some tag restrictedtags some restrictedtag restrictedtag trim tolowercase tag trim tolowercase isshowwidget false if _alconfig widget_setting blockwidgetonpages length isshowwidget let restrictedpages _alconfig widget_setting blockwidgetonpages split const currentpage window location pathname if restrictedpages length 0 if restrictedpages includes homepage currentpage isshowwidget false else if restrictedpages some page currentpage includes page isshowwidget false if _alconfig widget_setting allowwidgetonspecificpages length isshowwidget let allowedpages _alconfig widget_setting allowwidgetonspecificpages split const currentpage window location pathname if allowedpages length 0 if allowedpages includes homepage currentpage isshowwidget true else if allowedpages some page currentpage includes page isshowwidget true else isshowwidget false if _alconfig customerid _alconfig widget_setting showtologgedincustomeronly isshowwidget false window __appstle_loyalty_launcher_allowed isshowwidget if isshowwidget showappstleloyaltywidget else removeappstleloyaltywidget function enablewidget document queryselector appstle_loyalty_iframe classlist add open document queryselector appstle_loyalty_iframe classlist remove appstle loyalty hidden settimeout function document queryselector appstle_loyalty_iframe classlist toggle show close icon 900 function showappstleloyaltywidget const launcherallowed window __appstle_loyalty_launcher_allowed false document queryselector appstle_loyalty_iframe classlist remove appstle loyalty hidden const btn document queryselector appstle loyalty button if btn return if launcherallowed btn classlist remove appstle loyalty hidden else btn classlist add appstle loyalty hidden document queryselector appstle loyalty button addeventlistener click togglewidget if _alconfig widget_setting widgetposition left document getelementbyid appstle_loyalty_iframe classlist add appstle loyalty left document queryselector appstle loyalty button classlist add appstle loyalty left document getelementbyid appstle_loyalty_iframe classlist add appstle loyalty left document getelementbyid snackbar classlist add left_snackbar else document getelementbyid appstle_loyalty_iframe classlist add appstle loyalty right document queryselector appstle loyalty button classlist add appstle loyalty right document getelementbyid snackbar classlist add right_snackbar const aliframesrc function togglewidget loadappstleloyaltywidget if _alconfig widget_setting widgettype touppercase launcher _alconfig widget_setting forceredirectdedicatedpage true window open _alconfig proxy_path_prefix else document queryselector appstle_loyalty_iframe classlist toggle open showappstleloyaltywidget settimeout function document queryselector appstle_loyalty_iframe classlist toggle show close icon 900 const loadappstleloyaltywidget var iframe document queryselectorall appstle_loyalty_iframe iframe foreach function item item contentwindow _alconfig _alconfig item contentwindow document open text html replace item contentwindow document write aliframesrc item contentwindow document close const launcherdatatype _alconfig widget_setting launcherdatatype points const loyaltybuttontitle document getelementbyid loyalty widget title if _alconfig shop_labels widgettitle loyaltybuttontitle innerhtml parsehtmlstringcontent _alconfig shop_labels widgettitle function const customerloyalty widget_setting _alconfig if customerloyalty return const showtier widget_setting showtiername const launcherbuttonelement document queryselector appstle loyalty button const pointsel document queryselector loyalty_widget_available_points if pointsel return const fmt new intl numberformat const storecreditbalance 0 availablepoints 0 currentviptier customerloyalty let displayvalue if launcherdatatype store_credits displayvalue formatstorecreditamount storecreditbalance else if launcherdatatype vip_tier currentviptier displayvalue string currentviptier else const n number availablepoints 0 displayvalue fmt format formatnumberbypointroundtype n pointsel textcontent displayvalue launcherbuttonelement classlist add appstle_show_points function handledeeplink const loyaltydeeplinks appstle loyalty appstle refer appstle loyalty earn rewards appstle loyalty redeem rewards appstle loyalty referrals appstle loyalty vip program if _alconfig widget_setting showwidget loyaltydeeplinks some hash location hash includes hash return loadappstleloyaltywidget enablewidget settimeout document queryselector appstle_loyalty_iframe classlist add show close icon 900 handledeeplink const widgetreferralurl new url window location href if _alconfig referralenabled widgetreferralurl searchparams get appstle_referral _alconfig widget_setting widgettype launcher let referralredirecturl _alconfig widget_setting referralredirecturl let redirecturl referralredirecturl window location search if referralredirecturl let referralurlobj try referralurlobj new url referralredirecturl window location origin catch referralurlobj null let referralpath referralurlobj referralurlobj pathname replace referralredirecturl replace let currentpath window location pathname replace if referralpath currentpath referralpath window open redirecturl _self settimeout loadappstleloyaltywidget enablewidget 200 function observeurlchanges let lasturl location href const handleurlchange if location href lasturl handledeeplink lasturl location href new mutationobserver handleurlchange observe document body subtree true childlist true window addeventlistener popstate handleurlchange window addeventlistener hashchange handleurlchange const aldomobserver new mutationobserver function mutations_list mutations_list foreach function mutation mutation addednodes foreach function added_node if added_node id appstle_loyalty_iframe var iframe document queryselectorall appstle_loyalty_iframe iframe foreach function item item contentwindow _alconfig _alconfig item contentwindow document open text html replace item contentwindow document write aliframesrc item contentwindow document close aldomobserver disconnect aldomobserver observe document queryselector body subtree true childlist true try const versionurl location origin _alconfig proxy_path_prefix apps loyalty app loyalty version fetch versionurl then res res json then data if data const widgetjsurl new url _alconfig widgetjspath const widgetcssurl new url _alconfig widgetcsspath widgetjsurl searchparams set v data widgetcssurl searchparams set v data _alconfig widgetjspath widgetjsurl tostring _alconfig widgetcsspath widgetcssurl tostring catch finally executeloyaltywidget catch err executeloyaltywidget const storecreditmismatch _alconfig customerid _alconfig customerstorecreditbalance 0 _alconfig customerloyalty storecreditbalance 0 _alconfig customerloyalty storecreditbalance _alconfig customerstorecreditbalance if storecreditmismatch _alconfig shop olineloyalty27 myshopify com const updatecustomerurl _alconfig proxy_path_prefix apps loyalty cp api update customer try fetch updatecustomerurl method post then response if response ok catch catch err const dedicatedpageurl new url window location href const decodeurl content if typeof content string return content try const htmldecoded content replace g return json parse htmldecoded catch error console error error parsing content error return content if dedicatedpageurl searchparams get appstle_referral _alconfig widget_setting widgettype dedicated_page const customurl decodeurl _alconfig widget_setting referralcustomredirecturl if customurl const normalizedcustompath customurl startswith customurl customurl if window location pathname normalizedcustompath const redirecturl new url window location href redirecturl pathname normalizedcustompath window open redirecturl tostring _self else if dedicatedpageurl searchparams get appstle_referral _alconfig widget_setting widgettype dedicated_page window location href includes _alconfig proxy_path_prefix window open window location origin _alconfig proxy_path_prefix window location search _self const dedicatedpageeventlistener event if event data typeof event data indexof function event data indexof refresh_appstle_loyalty_page 1 initiateappstleloyaltypage console log refresh page window addeventlistener message dedicatedpageeventlistener false function initiateappstleloyaltypage if document queryselector appstleloyaltypage const appstleloyaltypageelement document getelementbyid appstleloyaltypage while appstleloyaltypageelement firstchild appstleloyaltypageelement firstchild remove if appstleloyaltypageelement const loaddedicatedpageasset createasset attempt onsettle const asset createasset let settled false const settle if settled return settled true if typeof onsettle function onsettle asset onload settle asset onerror asset remove if attempt loaddedicatedpageasset createasset attempt 1 onsettle 1000 math pow 2 attempt 1 else settle const appenddedicatedpagewidgetscript loaddedicatedpageasset const s document createelement script s setattribute src _alconfig widgetjspath s async false document body appendchild s return s 1 const executededicatedpagescript let widgetscriptappended false const appendwidgetscriptonce if widgetscriptappended return widgetscriptappended true appenddedicatedpagewidgetscript try const preload document createelement link preload rel preload preload as script preload href _alconfig widgetjspath document head appendchild preload catch e loaddedicatedpageasset const link document createelement link link type text css link rel stylesheet link href _alconfig widgetcsspath document head appendchild link return link 1 appendwidgetscriptonce settimeout appendwidgetscriptonce 8000 try const versionurl location origin _alconfig proxy_path_prefix apps loyalty app loyalty version fetch versionurl then res res json then data if data const widgetjsurl new url _alconfig widgetjspath const widgetcssurl new url _alconfig widgetcsspath widgetjsurl searchparams set v data widgetcssurl searchparams set v data _alconfig widgetjspath widgetjsurl tostring _alconfig widgetcsspath widgetcssurl tostring catch finally executededicatedpagescript catch err executededicatedpagescript else settimeout initiateappstleloyaltypage 2000 const dedicatedpagereferralurl new url window location href searchparams get appstle_referral if _alconfig widget_setting showwidget true initiateappstleloyaltypage async function const isavailablevisitshop _alconfig pointearnrules length 0 _alconfig pointearnrules find rule rule type visit_shop rule status active if _alconfig customerid isavailablevisitshop if sessionstorage getitem syncvisitstore _alconfig customerid isavailablevisitshop isavailablevisitshop id _alconfig referralenabled _alconfig referralloyalty referraltype visit_shop try const response awa...
|