@salla.sa/twilight-components 2.14.221 → 2.14.222
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/cjs/{app-globals-CURclN4K.js → app-globals-DPedpk8u.js} +3 -3
- package/dist/cjs/{app-globals-CURclN4K.js.map → app-globals-DPedpk8u.js.map} +1 -1
- package/dist/cjs/{index-1TYwVkJb.js → index-BDn6fH9S.js} +4 -4
- package/dist/cjs/{index-1TYwVkJb.js.map → index-BDn6fH9S.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/salla-accordion-body.cjs.entry.js +1 -1
- package/dist/cjs/salla-accordion-head.cjs.entry.js +1 -1
- package/dist/cjs/salla-accordion.cjs.entry.js +1 -1
- package/dist/cjs/salla-add-product-button_51.cjs.entry.js +1 -1
- package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
- package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
- package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
- package/dist/cjs/salla-booking-field_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-item-offers.cjs.entry.js +1 -1
- package/dist/cjs/salla-conditional-offer.cjs.entry.js +16 -5
- package/dist/cjs/salla-conditional-offer.cjs.entry.js.map +1 -1
- package/dist/cjs/salla-conditional-offer.entry.cjs.js.map +1 -1
- package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-installment.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-program.cjs.entry.js +1 -1
- package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
- package/dist/cjs/salla-notification-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
- package/dist/cjs/salla-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
- package/dist/cjs/salla-orders.cjs.entry.js +1 -1
- package/dist/cjs/salla-payments.cjs.entry.js +1 -1
- package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
- package/dist/cjs/salla-product-options.cjs.entry.js +1 -1
- package/dist/cjs/salla-review-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-reviews-page.cjs.entry.js +1 -1
- package/dist/cjs/salla-reviews.cjs.entry.js +1 -1
- package/dist/cjs/salla-social.cjs.entry.js +1 -1
- package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/salla-verify.cjs.entry.js +1 -1
- package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
- package/dist/cjs/twilight.cjs.js +2 -2
- package/dist/collection/components/salla-conditional-offer/salla-conditional-offer.js +15 -4
- package/dist/collection/components/salla-conditional-offer/salla-conditional-offer.js.map +1 -1
- package/dist/components/index.js +2 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/salla-conditional-offer.js +15 -4
- package/dist/components/salla-conditional-offer.js.map +1 -1
- package/dist/esm/{app-globals-CIvCwBrC.js → app-globals-wLakfxcp.js} +3 -3
- package/dist/esm/{app-globals-CIvCwBrC.js.map → app-globals-wLakfxcp.js.map} +1 -1
- package/dist/esm/{index-DJeJWTdD.js → index-Dj2SrCy0.js} +4 -4
- package/dist/esm/{index-DJeJWTdD.js.map → index-Dj2SrCy0.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/salla-accordion-body.entry.js +1 -1
- package/dist/esm/salla-accordion-head.entry.js +1 -1
- package/dist/esm/salla-accordion.entry.js +1 -1
- package/dist/esm/salla-add-product-button_51.entry.js +1 -1
- package/dist/esm/salla-advertisement.entry.js +1 -1
- package/dist/esm/salla-app-install-alert.entry.js +1 -1
- package/dist/esm/salla-apps-icons.entry.js +1 -1
- package/dist/esm/salla-booking-field_2.entry.js +1 -1
- package/dist/esm/salla-cart-item-offers.entry.js +1 -1
- package/dist/esm/salla-conditional-offer.entry.js +16 -5
- package/dist/esm/salla-conditional-offer.entry.js.map +1 -1
- package/dist/esm/salla-contacts.entry.js +1 -1
- package/dist/esm/salla-filters-widget.entry.js +1 -1
- package/dist/esm/salla-filters.entry.js +1 -1
- package/dist/esm/salla-installment.entry.js +1 -1
- package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
- package/dist/esm/salla-loyalty-program.entry.js +1 -1
- package/dist/esm/salla-metadata.entry.js +1 -1
- package/dist/esm/salla-notification-item.entry.js +1 -1
- package/dist/esm/salla-notifications.entry.js +1 -1
- package/dist/esm/salla-offer.entry.js +1 -1
- package/dist/esm/salla-order-summary.entry.js +1 -1
- package/dist/esm/salla-orders.entry.js +1 -1
- package/dist/esm/salla-payments.entry.js +1 -1
- package/dist/esm/salla-price-range.entry.js +1 -1
- package/dist/esm/salla-product-options.entry.js +1 -1
- package/dist/esm/salla-review-card.entry.js +1 -1
- package/dist/esm/salla-reviews-page.entry.js +1 -1
- package/dist/esm/salla-reviews.entry.js +1 -1
- package/dist/esm/salla-social.entry.js +1 -1
- package/dist/esm/salla-tiered-offer.entry.js +1 -1
- package/dist/esm/salla-tooltip.entry.js +1 -1
- package/dist/esm/salla-verify.entry.js +1 -1
- package/dist/esm/salla-wallet.entry.js +1 -1
- package/dist/esm/twilight.js +3 -3
- package/dist/esm-es5/{app-globals-CIvCwBrC.js → app-globals-wLakfxcp.js} +2 -2
- package/dist/esm-es5/{app-globals-CIvCwBrC.js.map → app-globals-wLakfxcp.js.map} +1 -1
- package/dist/esm-es5/{index-DJeJWTdD.js → index-Dj2SrCy0.js} +3 -3
- package/dist/esm-es5/{index-DJeJWTdD.js.map → index-Dj2SrCy0.js.map} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/salla-accordion-body.entry.js +1 -1
- package/dist/esm-es5/salla-accordion-head.entry.js +1 -1
- package/dist/esm-es5/salla-accordion.entry.js +1 -1
- package/dist/esm-es5/salla-add-product-button_51.entry.js +4 -4
- package/dist/esm-es5/salla-advertisement.entry.js +1 -1
- package/dist/esm-es5/salla-app-install-alert.entry.js +1 -1
- package/dist/esm-es5/salla-apps-icons.entry.js +1 -1
- package/dist/esm-es5/salla-booking-field_2.entry.js +1 -1
- package/dist/esm-es5/salla-cart-item-offers.entry.js +1 -1
- package/dist/esm-es5/salla-conditional-offer.entry.js +1 -1
- package/dist/esm-es5/salla-conditional-offer.entry.js.map +1 -1
- package/dist/esm-es5/salla-contacts.entry.js +1 -1
- package/dist/esm-es5/salla-filters-widget.entry.js +2 -2
- package/dist/esm-es5/salla-filters.entry.js +1 -1
- package/dist/esm-es5/salla-installment.entry.js +1 -1
- package/dist/esm-es5/salla-loyalty-prize-item.entry.js +1 -1
- package/dist/esm-es5/salla-loyalty-program.entry.js +2 -2
- package/dist/esm-es5/salla-metadata.entry.js +1 -1
- package/dist/esm-es5/salla-notification-item.entry.js +1 -1
- package/dist/esm-es5/salla-notifications.entry.js +1 -1
- package/dist/esm-es5/salla-offer.entry.js +1 -1
- package/dist/esm-es5/salla-order-summary.entry.js +1 -1
- package/dist/esm-es5/salla-orders.entry.js +2 -2
- package/dist/esm-es5/salla-payments.entry.js +1 -1
- package/dist/esm-es5/salla-price-range.entry.js +1 -1
- package/dist/esm-es5/salla-product-options.entry.js +1 -1
- package/dist/esm-es5/salla-review-card.entry.js +1 -1
- package/dist/esm-es5/salla-reviews-page.entry.js +1 -1
- package/dist/esm-es5/salla-reviews.entry.js +1 -1
- package/dist/esm-es5/salla-social.entry.js +1 -1
- package/dist/esm-es5/salla-tiered-offer.entry.js +1 -1
- package/dist/esm-es5/salla-tooltip.entry.js +1 -1
- package/dist/esm-es5/salla-verify.entry.js +1 -1
- package/dist/esm-es5/salla-wallet.entry.js +1 -1
- package/dist/esm-es5/twilight.js +1 -1
- package/dist/twilight/{p-4719adfd.entry.js → p-00ce3e65.entry.js} +2 -2
- package/dist/twilight/{p-60550d95.system.entry.js → p-02cc2225.system.entry.js} +2 -2
- package/dist/twilight/{p-8d241400.system.entry.js → p-0b16f452.system.entry.js} +2 -2
- package/dist/twilight/{p-d0db93be.entry.js → p-109136fc.entry.js} +2 -2
- package/dist/twilight/{p-eb847afb.system.entry.js → p-12adb702.system.entry.js} +2 -2
- package/dist/twilight/{p-2ecd9c73.entry.js → p-16dfee33.entry.js} +2 -2
- package/dist/twilight/{p-018db6d5.entry.js → p-18537486.entry.js} +2 -2
- package/dist/twilight/{p-96c0dbe6.system.entry.js → p-1cbc4329.system.entry.js} +2 -2
- package/dist/twilight/{p-2e1838fc.entry.js → p-1cf1344e.entry.js} +2 -2
- package/dist/twilight/{p-1c1baf96.system.entry.js → p-1d6100c4.system.entry.js} +2 -2
- package/dist/twilight/{p-2411b6cb.system.entry.js → p-29567106.system.entry.js} +2 -2
- package/dist/twilight/{p-fd20f996.entry.js → p-315c5fd3.entry.js} +2 -2
- package/dist/twilight/{p-5a3e638f.entry.js → p-337fca82.entry.js} +2 -2
- package/dist/twilight/{p-611a0591.system.entry.js → p-3b02f780.system.entry.js} +2 -2
- package/dist/twilight/{p-D4Rc_kre.js → p-4drPVtGP.js} +2 -2
- package/dist/twilight/{p-D4Rc_kre.js.map → p-4drPVtGP.js.map} +1 -1
- package/dist/twilight/{p-594c82e8.entry.js → p-5394cdeb.entry.js} +2 -2
- package/dist/twilight/{p-a8541cb2.system.entry.js → p-55306475.system.entry.js} +2 -2
- package/dist/twilight/{p-cba454b7.entry.js → p-59763129.entry.js} +2 -2
- package/dist/twilight/{p-bec1f4a2.system.entry.js → p-5cd7ff6d.system.entry.js} +2 -2
- package/dist/twilight/{p-bdef02e0.entry.js → p-5e1f0ddf.entry.js} +2 -2
- package/dist/twilight/p-618eb3f2.system.entry.js +5 -0
- package/dist/twilight/p-618eb3f2.system.entry.js.map +1 -0
- package/dist/twilight/{p-f5364a4e.entry.js → p-67b54ac4.entry.js} +2 -2
- package/dist/twilight/p-67ebf87e.system.entry.js +5 -0
- package/dist/twilight/{p-e9e4a641.entry.js → p-688dd765.entry.js} +7 -7
- package/dist/twilight/{p-e45781c5.system.entry.js → p-6ec767ac.system.entry.js} +3 -3
- package/dist/twilight/{p-0bd54dae.entry.js → p-70e74f3c.entry.js} +2 -2
- package/dist/twilight/{p-01ab98b8.system.entry.js → p-7236a037.system.entry.js} +2 -2
- package/dist/twilight/{p-0213d2ff.system.entry.js → p-7436f972.system.entry.js} +2 -2
- package/dist/twilight/{p-a52f5483.entry.js → p-74647582.entry.js} +2 -2
- package/dist/twilight/{p-DJO9K4n7.system.js.map → p-78vq_YNh.system.js.map} +1 -1
- package/dist/twilight/{p-8f504c22.entry.js → p-8162a820.entry.js} +2 -2
- package/dist/twilight/p-864f1430.system.entry.js +5 -0
- package/dist/twilight/{p-137b9ced.system.entry.js → p-865fc401.system.entry.js} +2 -2
- package/dist/twilight/{p-2943fae2.system.entry.js → p-87206bd7.system.entry.js} +2 -2
- package/dist/twilight/p-8c08dafb.entry.js +5 -0
- package/dist/twilight/{p-a4376ad7.system.entry.js → p-8ce2a142.system.entry.js} +2 -2
- package/dist/twilight/{p-ab9a81e5.system.entry.js → p-8d28bf6e.system.entry.js} +2 -2
- package/dist/twilight/{p-8b0b63d3.system.entry.js → p-97337c52.system.entry.js} +2 -2
- package/dist/twilight/{p-ddfc02db.entry.js → p-9e54e404.entry.js} +2 -2
- package/dist/twilight/{p-BQW3a64v.system.js.map → p-B-EmhPha.system.js.map} +1 -1
- package/dist/twilight/{p-Vh3TFQnV.system.js.map → p-B6apPCKk.system.js.map} +1 -1
- package/dist/twilight/{p-CW5Y_Ilm.system.js.map → p-BC5TR2o4.system.js.map} +1 -1
- package/dist/twilight/{p-DanADfyI.system.js.map → p-BFLzwSRe.system.js.map} +1 -1
- package/dist/twilight/{p-B78CJAeo.system.js.map → p-BIlNLy1w.system.js.map} +1 -1
- package/dist/twilight/{p-rHIfLORZ.system.js.map → p-B_H7JnAQ.system.js.map} +1 -1
- package/dist/twilight/{p-CS3lHUTW.system.js.map → p-BfizdcIv.system.js.map} +1 -1
- package/dist/twilight/{p-BbGRMLwX.system.js.map → p-BgVK0PPB.system.js.map} +1 -1
- package/dist/twilight/{p-Dtkyz9uf.system.js → p-BtfcvLWi.system.js} +2 -2
- package/dist/twilight/{p-Dtkyz9uf.system.js.map → p-BtfcvLWi.system.js.map} +1 -1
- package/dist/twilight/{p-Cv-fXCMq.system.js.map → p-BxPxFmIf.system.js.map} +1 -1
- package/dist/twilight/{p-BEAZDb3Z.system.js.map → p-C6Mc-nga.system.js.map} +1 -1
- package/dist/twilight/{p-D8gfPwyY.system.js.map → p-CAhB5SXO.system.js.map} +1 -1
- package/dist/twilight/{p-BmpTR30a.system.js.map → p-CD5EBKFr.system.js.map} +1 -1
- package/dist/twilight/{p-D_GDndNn.system.js.map → p-CDPN9ikP.system.js.map} +1 -1
- package/dist/twilight/{p-urL630v4.system.js.map → p-CE_xhQMS.system.js.map} +1 -1
- package/dist/twilight/{p-3_GHqNLe.system.js.map → p-CIzZIur3.system.js.map} +1 -1
- package/dist/twilight/{p-t_BLXxaT.system.js → p-CaVNqQXu.system.js} +2 -2
- package/dist/twilight/{p-t_BLXxaT.system.js.map → p-CaVNqQXu.system.js.map} +1 -1
- package/dist/twilight/{p-CW_Wih48.system.js.map → p-CfNLozg0.system.js.map} +1 -1
- package/dist/twilight/{p-BYmyEppC.system.js.map → p-ClaSC-3N.system.js.map} +1 -1
- package/dist/twilight/{p-eyvPNcBM.system.js.map → p-Cm8GjH45.system.js.map} +1 -1
- package/dist/twilight/{p-DuXM8liP.system.js.map → p-CpJOChwF.system.js.map} +1 -1
- package/dist/twilight/{p-DYXzVtwh.system.js.map → p-CsweHiBJ.system.js.map} +1 -1
- package/dist/twilight/{p-dKVQW-4Z.system.js.map → p-CtiUKful.system.js.map} +1 -1
- package/dist/twilight/{p-C1YpO4ps.system.js.map → p-D0vXKNzE.system.js.map} +1 -1
- package/dist/twilight/{p-BiWj3BdY.system.js.map → p-D6fGvShW.system.js.map} +1 -1
- package/dist/twilight/{p-DDxbK6va.system.js.map → p-DInbMpRZ.system.js.map} +1 -1
- package/dist/twilight/{p-DlFxCb4V.system.js.map → p-DRUO4ntA.system.js.map} +1 -1
- package/dist/twilight/{p-DJeJWTdD.js → p-Dj2SrCy0.js} +3 -3
- package/dist/twilight/{p-DJeJWTdD.js.map → p-Dj2SrCy0.js.map} +1 -1
- package/dist/twilight/{p-1xnr2J3b.system.js → p-DvJ_tnSw.system.js} +3 -3
- package/dist/twilight/{p-1xnr2J3b.system.js.map → p-DvJ_tnSw.system.js.map} +1 -1
- package/dist/twilight/{p-BwBcvX6V.system.js.map → p-DvQIv_6Y.system.js.map} +1 -1
- package/dist/twilight/{p-3iOHI_bZ.system.js.map → p-Dx2JzDoP.system.js.map} +1 -1
- package/dist/twilight/{p-B0iUa0dk.system.js.map → p-Dzal8dOY.system.js.map} +1 -1
- package/dist/twilight/p-FGWU4ai_.system.js.map +1 -0
- package/dist/twilight/{p-DvaxAP4E.system.js.map → p-LondrlGD.system.js.map} +1 -1
- package/dist/twilight/{p-DF0wZDI-.system.js.map → p-Q2yReOd3.system.js.map} +1 -1
- package/dist/twilight/{p-V-F3jS9L.system.js.map → p-WlDhq-4G.system.js.map} +1 -1
- package/dist/twilight/{p-1bc7d70c.system.entry.js → p-a20b6984.system.entry.js} +2 -2
- package/dist/twilight/{p-fe4d5abb.system.entry.js → p-a439d5c1.system.entry.js} +2 -2
- package/dist/twilight/{p-9c6d592b.entry.js → p-a531e0e4.entry.js} +2 -2
- package/dist/twilight/{p-e09dbe92.system.entry.js → p-acaa2f80.system.entry.js} +2 -2
- package/dist/twilight/{p-e490de2f.system.entry.js → p-ae7962ba.system.entry.js} +2 -2
- package/dist/twilight/{p-14bce2e7.system.entry.js → p-b167e712.system.entry.js} +2 -2
- package/dist/twilight/{p-84aaa78d.entry.js → p-b42c8720.entry.js} +2 -2
- package/dist/twilight/{p-65f8266c.system.entry.js → p-b477f55b.system.entry.js} +2 -2
- package/dist/twilight/{p-f26aa117.entry.js → p-bc918d89.entry.js} +2 -2
- package/dist/twilight/{p-8d171391.entry.js → p-c3adc5d9.entry.js} +2 -2
- package/dist/twilight/{p-f6e14858.system.entry.js → p-c842f73f.system.entry.js} +2 -2
- package/dist/twilight/{p-125e8e09.system.entry.js → p-c8cea269.system.entry.js} +2 -2
- package/dist/twilight/{p-7dc53e3e.entry.js → p-d37bad6f.entry.js} +2 -2
- package/dist/twilight/{p-62372bb6.entry.js → p-d85581c6.entry.js} +2 -2
- package/dist/twilight/{p-5222370a.system.entry.js → p-d8d9cdcd.system.entry.js} +2 -2
- package/dist/twilight/{p-d78f9304.system.entry.js → p-de891990.system.entry.js} +2 -2
- package/dist/twilight/{p-11542446.entry.js → p-def552bd.entry.js} +2 -2
- package/dist/twilight/{p-c62d7968.system.entry.js → p-e4f73083.system.entry.js} +2 -2
- package/dist/twilight/{p-aae55c3c.entry.js → p-e5872e75.entry.js} +2 -2
- package/dist/twilight/{p-b734e69f.entry.js → p-ed4c7158.entry.js} +2 -2
- package/dist/twilight/{p-df86fa35.entry.js → p-ee443b00.entry.js} +2 -2
- package/dist/twilight/{p-64346d4f.system.entry.js → p-f1f3d74e.system.entry.js} +2 -2
- package/dist/twilight/{p-345e7510.entry.js → p-f3b8551c.entry.js} +2 -2
- package/dist/twilight/{p-1e32544e.entry.js → p-f41e7eed.entry.js} +2 -2
- package/dist/twilight/{p-5f22ded8.entry.js → p-f4918259.entry.js} +2 -2
- package/dist/twilight/p-f594b721.entry.js +5 -0
- package/dist/twilight/p-f594b721.entry.js.map +1 -0
- package/dist/twilight/{p-f8f0dd3d.entry.js → p-f9d8f20d.entry.js} +2 -2
- package/dist/twilight/{p-b311d422.entry.js → p-fb59e3b5.entry.js} +2 -2
- package/dist/twilight/{p-8b9cdaa8.system.entry.js → p-ffb9ab7b.system.entry.js} +2 -2
- package/dist/twilight/{p-Cny8cSf0.system.js.map → p-jlCh1xBh.system.js.map} +1 -1
- package/dist/twilight/salla-conditional-offer.entry.esm.js.map +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/twilight/twilight.js +1 -1
- package/package.json +5 -5
- package/dist/twilight/p-0530fecd.entry.js +0 -5
- package/dist/twilight/p-0a564fe6.system.entry.js +0 -5
- package/dist/twilight/p-0a564fe6.system.entry.js.map +0 -1
- package/dist/twilight/p-1196a23a.entry.js +0 -5
- package/dist/twilight/p-1196a23a.entry.js.map +0 -1
- package/dist/twilight/p-512dbfd8.system.entry.js +0 -5
- package/dist/twilight/p-56329c93.system.entry.js +0 -5
- package/dist/twilight/p-DygvAhI4.system.js.map +0 -1
- /package/dist/twilight/{p-4719adfd.entry.js.map → p-00ce3e65.entry.js.map} +0 -0
- /package/dist/twilight/{p-60550d95.system.entry.js.map → p-02cc2225.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-8d241400.system.entry.js.map → p-0b16f452.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-d0db93be.entry.js.map → p-109136fc.entry.js.map} +0 -0
- /package/dist/twilight/{p-eb847afb.system.entry.js.map → p-12adb702.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-2ecd9c73.entry.js.map → p-16dfee33.entry.js.map} +0 -0
- /package/dist/twilight/{p-018db6d5.entry.js.map → p-18537486.entry.js.map} +0 -0
- /package/dist/twilight/{p-96c0dbe6.system.entry.js.map → p-1cbc4329.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-2e1838fc.entry.js.map → p-1cf1344e.entry.js.map} +0 -0
- /package/dist/twilight/{p-1c1baf96.system.entry.js.map → p-1d6100c4.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-2411b6cb.system.entry.js.map → p-29567106.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-fd20f996.entry.js.map → p-315c5fd3.entry.js.map} +0 -0
- /package/dist/twilight/{p-5a3e638f.entry.js.map → p-337fca82.entry.js.map} +0 -0
- /package/dist/twilight/{p-611a0591.system.entry.js.map → p-3b02f780.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-594c82e8.entry.js.map → p-5394cdeb.entry.js.map} +0 -0
- /package/dist/twilight/{p-a8541cb2.system.entry.js.map → p-55306475.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-cba454b7.entry.js.map → p-59763129.entry.js.map} +0 -0
- /package/dist/twilight/{p-bec1f4a2.system.entry.js.map → p-5cd7ff6d.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-bdef02e0.entry.js.map → p-5e1f0ddf.entry.js.map} +0 -0
- /package/dist/twilight/{p-f5364a4e.entry.js.map → p-67b54ac4.entry.js.map} +0 -0
- /package/dist/twilight/{p-56329c93.system.entry.js.map → p-67ebf87e.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-e9e4a641.entry.js.map → p-688dd765.entry.js.map} +0 -0
- /package/dist/twilight/{p-e45781c5.system.entry.js.map → p-6ec767ac.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-0bd54dae.entry.js.map → p-70e74f3c.entry.js.map} +0 -0
- /package/dist/twilight/{p-01ab98b8.system.entry.js.map → p-7236a037.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-0213d2ff.system.entry.js.map → p-7436f972.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-a52f5483.entry.js.map → p-74647582.entry.js.map} +0 -0
- /package/dist/twilight/{p-8f504c22.entry.js.map → p-8162a820.entry.js.map} +0 -0
- /package/dist/twilight/{p-512dbfd8.system.entry.js.map → p-864f1430.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-137b9ced.system.entry.js.map → p-865fc401.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-2943fae2.system.entry.js.map → p-87206bd7.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-0530fecd.entry.js.map → p-8c08dafb.entry.js.map} +0 -0
- /package/dist/twilight/{p-a4376ad7.system.entry.js.map → p-8ce2a142.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-ab9a81e5.system.entry.js.map → p-8d28bf6e.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-8b0b63d3.system.entry.js.map → p-97337c52.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-ddfc02db.entry.js.map → p-9e54e404.entry.js.map} +0 -0
- /package/dist/twilight/{p-1bc7d70c.system.entry.js.map → p-a20b6984.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-fe4d5abb.system.entry.js.map → p-a439d5c1.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-9c6d592b.entry.js.map → p-a531e0e4.entry.js.map} +0 -0
- /package/dist/twilight/{p-e09dbe92.system.entry.js.map → p-acaa2f80.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-e490de2f.system.entry.js.map → p-ae7962ba.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-14bce2e7.system.entry.js.map → p-b167e712.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-84aaa78d.entry.js.map → p-b42c8720.entry.js.map} +0 -0
- /package/dist/twilight/{p-65f8266c.system.entry.js.map → p-b477f55b.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-f26aa117.entry.js.map → p-bc918d89.entry.js.map} +0 -0
- /package/dist/twilight/{p-8d171391.entry.js.map → p-c3adc5d9.entry.js.map} +0 -0
- /package/dist/twilight/{p-f6e14858.system.entry.js.map → p-c842f73f.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-125e8e09.system.entry.js.map → p-c8cea269.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-7dc53e3e.entry.js.map → p-d37bad6f.entry.js.map} +0 -0
- /package/dist/twilight/{p-62372bb6.entry.js.map → p-d85581c6.entry.js.map} +0 -0
- /package/dist/twilight/{p-5222370a.system.entry.js.map → p-d8d9cdcd.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-d78f9304.system.entry.js.map → p-de891990.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-11542446.entry.js.map → p-def552bd.entry.js.map} +0 -0
- /package/dist/twilight/{p-c62d7968.system.entry.js.map → p-e4f73083.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-aae55c3c.entry.js.map → p-e5872e75.entry.js.map} +0 -0
- /package/dist/twilight/{p-b734e69f.entry.js.map → p-ed4c7158.entry.js.map} +0 -0
- /package/dist/twilight/{p-df86fa35.entry.js.map → p-ee443b00.entry.js.map} +0 -0
- /package/dist/twilight/{p-64346d4f.system.entry.js.map → p-f1f3d74e.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-345e7510.entry.js.map → p-f3b8551c.entry.js.map} +0 -0
- /package/dist/twilight/{p-1e32544e.entry.js.map → p-f41e7eed.entry.js.map} +0 -0
- /package/dist/twilight/{p-5f22ded8.entry.js.map → p-f4918259.entry.js.map} +0 -0
- /package/dist/twilight/{p-f8f0dd3d.entry.js.map → p-f9d8f20d.entry.js.map} +0 -0
- /package/dist/twilight/{p-b311d422.entry.js.map → p-fb59e3b5.entry.js.map} +0 -0
- /package/dist/twilight/{p-8b9cdaa8.system.entry.js.map → p-ffb9ab7b.system.entry.js.map} +0 -0
|
@@ -7,7 +7,7 @@ export class SallaConditionalOffer {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
this.offer = null;
|
|
9
9
|
this.products = {};
|
|
10
|
-
this.isLoading =
|
|
10
|
+
this.isLoading = false;
|
|
11
11
|
this.canRender = true;
|
|
12
12
|
}
|
|
13
13
|
componentWillLoad() {
|
|
@@ -19,14 +19,23 @@ export class SallaConditionalOffer {
|
|
|
19
19
|
})
|
|
20
20
|
.then(() => salla.api.cart.offers())
|
|
21
21
|
.then(({ data }) => {
|
|
22
|
-
//it's okay if there is an exception here, all thens will be skipped, and will catch the error,
|
|
23
22
|
this.offer = data.find(offer => offer.type === "conditional");
|
|
24
23
|
if (!this.offer) {
|
|
25
|
-
|
|
24
|
+
this.canRender = false;
|
|
25
|
+
return;
|
|
26
26
|
}
|
|
27
|
+
this.isLoading = true;
|
|
27
28
|
this.offer.details.discounts.unshift(({ value: 0, min_spend: 0 }));
|
|
28
29
|
return this.updateInitialOfferValue();
|
|
29
|
-
}).then(() =>
|
|
30
|
+
}).then(() => {
|
|
31
|
+
if (!this.offer)
|
|
32
|
+
return;
|
|
33
|
+
return this.getProducts();
|
|
34
|
+
}).then(() => {
|
|
35
|
+
if (!this.offer)
|
|
36
|
+
return;
|
|
37
|
+
salla.event.on("cart::updated", (updatedCart) => this.updateOfferValues(updatedCart));
|
|
38
|
+
})
|
|
30
39
|
.catch(error => {
|
|
31
40
|
this.canRender = false;
|
|
32
41
|
salla.logger.warn('salla-conditional-offer:: ', error);
|
|
@@ -112,6 +121,8 @@ export class SallaConditionalOffer {
|
|
|
112
121
|
return null;
|
|
113
122
|
if (this.isLoading)
|
|
114
123
|
return this.getLoadingSkeletonView();
|
|
124
|
+
if (!this.offer)
|
|
125
|
+
return null;
|
|
115
126
|
return h(Host, { class: "s-conditional-offer-container" }, h("div", { class: "s-conditional-offer-title-wrapper" }, h("div", { class: "s-conditional-offer-title" }, this.offer.title), this.offer.description ? h("div", { class: "s-conditional-offer-subtitle" }, this.offer.description, " ", h("i", { class: "sicon-information" })) : null), h("div", { class: "s-conditional-offer-progress-container" }, this.offer.details.discounts.map((discount, index) => (h("div", { class: { "flex-1": index > 0 }, key: discount.min_spend }, this.getCheckPointView(discount, index))))));
|
|
116
127
|
}
|
|
117
128
|
static get is() { return "salla-conditional-offer"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salla-conditional-offer.js","sourceRoot":"","sources":["../../../src/components/salla-conditional-offer/salla-conditional-offer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, State, h } from \"@stencil/core\";\nimport {\n type Discount,\n DiscountType,\n type Offer,\n OfferType,\n type UpdatedCart,\n} from \"./interfaces\";\nimport type { Product } from \"@salla.sa/twilight/types/common\";\n\n@Component({\n tag: \"salla-conditional-offer\",\n styleUrl: \"salla-conditional-offer.scss\",\n})\nexport class SallaConditionalOffer {\n\n @State() offer: Offer = null;\n @State() products: Record<string, Pick<Product, 'image' | 'url'>> = {}\n @State() isLoading = true\n @State() canRender = true\n\n componentWillLoad() {\n salla.onReady().then(() => {\n if (!salla.config.get('store.features')?.includes('conditional-offer') || (salla.storage.get(\"cart\") !== '' && !salla.storage.get(\"cart\")?.summary?.count)) {\n throw new Error('feature or cart object does not existed');\n }\n })\n .then(() => salla.api.cart.offers())\n .then(({ data }: { data: Offer[] }) => {\n //it's okay if there is an exception here, all thens will be skipped, and will catch the error,\n this.offer = data.find(offer => offer.type === \"conditional\")\n\n if (!this.offer) {\n throw new Error('No conditional offer has been activated in the merchant dashboard');\n }\n\n this.offer.details.discounts.unshift(({ value: 0, min_spend: 0 }))\n return this.updateInitialOfferValue()\n }).then(() => this.getProducts()).then(() => salla.event.on(\"cart::updated\", (updatedCart: UpdatedCart) => this.updateOfferValues(updatedCart)))\n .catch(error => {\n this.canRender = false\n salla.logger.warn('salla-conditional-offer:: ', error)\n }).finally(() => {\n this.isLoading = false\n })\n\n }\n\n private getProducts() {\n const freeProductIDs = this.offer.details.discounts.filter(({ type }) => type === DiscountType.FREE_PRODUCT).map(({ value }) => value)\n if (freeProductIDs.length > 0) {\n return salla.product.fetch({ source: 'selected', source_value: freeProductIDs }).then(({ data }: { data: Array<Product> }) => {\n data.forEach(({ id, url, image }) => {\n this.products[id] = { url, image }\n })\n })\n }\n }\n\n private updateInitialOfferValue() {\n return salla.api.cart.details().then(({ data: { cart } }: { data: { cart: UpdatedCart } }) => this.updateOfferValues(cart))\n }\n\n private updateOfferValues({ items, sub_total }: UpdatedCart) {\n const current_value = this.offer.details.based_on === OfferType.PRODUCT_COUNT ? items.reduce((count: number, { quantity }) => count + quantity, 0,) : sub_total\n //we need to assign the offer object a new reference to trigger re-rendering\n this.offer = {\n ...this.offer, details: {\n ...this.offer?.details, current_value,\n }\n }\n return this.offer\n }\n\n private getCheckpointContent(discount: Discount) {\n\n if (discount.type === DiscountType.PERCENTAGE) return `${discount.value}%`\n\n if (discount.type === DiscountType.FIXED) return salla.money(discount.value)\n\n if (discount.type !== DiscountType.FREE_PRODUCT) {\n salla.logger.error(`salla-conditional-offer:: unexpected type (${discount.type})!`);\n return \"\";\n }\n\n const productItem = this.products[discount.value]\n\n if (!productItem) {\n salla.logger.error(`salla-conditional-offer:: there is no product with id (${discount.value})!`);\n return \"\";\n }\n\n return <a class=\"s-conditional-offer-product-link\" href={productItem.url} >\n <img\n class=\"s-conditional-offer-checkpoint-image-content\"\n loading=\"lazy\"\n decoding=\"async\"\n alt={productItem?.image?.alt || \"\"}\n src={productItem?.image?.url} />\n </a>\n }\n\n private getOfferType(discount: Discount): string {\n const basedOn = this.offer.details?.based_on;\n if (basedOn === OfferType.PRODUCT_COUNT) return salla.lang.choice(\"blocks.header.products_count\", discount.min_spend);\n if (basedOn === OfferType.PRODUCT_PURCHASE) return salla.money(discount.min_spend);\n\n salla.logger.warn(`salla-conditional-offer:: Unexpected offer detail's based_on value: ${basedOn}`);\n return `${discount.min_spend}`;\n }\n\n private clamp(value: number, min: number, max: number) {\n return Math.max(min, Math.min(value, max));\n }\n\n private mapValueRanges(value: number, initialMinRange: number, initialMaxRange: number, newMinRange: number, newMaxRange: number) {\n\n const newRange = ((value - initialMinRange) * (newMaxRange - newMinRange)) / (initialMaxRange - initialMinRange) + newMinRange;\n\n if (newRange === Number.POSITIVE_INFINITY) return 100\n\n if (newRange === Number.NEGATIVE_INFINITY) return 0\n\n return this.clamp(newRange, 0, 100)\n }\n\n private getCheckPointView(discount: Discount, index: number) {\n const checkpointIndex = this.offer.details.discounts.findIndex(({ min_spend }) => min_spend === discount.min_spend);\n const previousCheckpointValue = this.offer.details.discounts[checkpointIndex - 1]?.min_spend ?? 0;\n const progressPercentage = this.mapValueRanges(this.offer.details.current_value, previousCheckpointValue, discount.min_spend, 0, 100);\n const isActive = discount.min_spend <= this.offer.details.current_value;\n\n return (\n <div class=\"s-conditional-offer-checkpoint-container\">\n {index > 0 ? [\n <div key=\"progress-line\" class=\"s-conditional-offer-progress-line-container\">\n <div class=\"s-conditional-offer-progress-line-inactive\" />\n <div class=\"s-conditional-offer-progress-line-active\" style={{ width: `${progressPercentage}%` }} />\n </div>,\n <div key=\"checkpoint\" class={`s-conditional-offer-checkpoint ${isActive ? \"s-conditional-offer-active-checkpoint\" : \"\"}`} >\n <div class={`s-conditional-offer-item-avatar-content ${isActive ? \"active\" : \"\"}`} innerHTML={this.products && this.getCheckpointContent(discount)}>\n </div>\n <div class={`s-conditional-offer-checkpoint-label ${isActive ? \"active\" : \"\"}`} innerHTML={this.getOfferType(discount)} />\n\n </div>\n ] :\n <div key=\"label\" class={{ \"s-conditional-offer-checkpoint-label\": true, \"first-checkpoint\": index === 0, active: isActive }} innerHTML={this.getOfferType(discount)} />\n }\n </div>\n );\n }\n\n private getLoadingSkeletonView() {\n return <Host class=\"s-conditional-offer-container\" >\n <div class=\"s-conditional-offer-skeleton-inner-container\">\n <div class=\"s-conditional-offer-skeleton-subtitle\">\n <salla-skeleton height=\"16px\" width=\"30%\" />\n </div>\n\n <div class=\"s-conditional-offer-skeleton-subtitle\">\n <salla-skeleton height=\"16px\" width=\"35%\" />\n </div>\n <div class=\"s-conditional-offer-skeleton-checkpoints-wrapper\">\n {Array(3).fill(null).map(() => (\n [<salla-skeleton key=\"checkpoint-line\" height=\"8px\" />,\n <div key=\"checkpoint\">\n <salla-skeleton height=\"60px\" width=\"60px\" type=\"circle\" />\n </div>]\n ))}\n </div>\n\n </div>\n </Host>\n }\n\n render() {\n if (!this.canRender) return null\n if (this.isLoading) return this.getLoadingSkeletonView()\n\n return <Host class=\"s-conditional-offer-container\">\n <div class=\"s-conditional-offer-title-wrapper\">\n <div class=\"s-conditional-offer-title\">{this.offer.title}</div>\n {this.offer.description ? <div class=\"s-conditional-offer-subtitle\">\n {this.offer.description} <i class=\"sicon-information\" />\n </div> : null}\n </div>\n <div class=\"s-conditional-offer-progress-container\">\n {this.offer.details.discounts.map((discount, index) => (\n <div class={{ \"flex-1\": index > 0 }} key={discount.min_spend}>\n {this.getCheckPointView(discount, index)}\n </div>\n ))}\n </div>\n </Host>\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"salla-conditional-offer.js","sourceRoot":"","sources":["../../../src/components/salla-conditional-offer/salla-conditional-offer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, State, h } from \"@stencil/core\";\nimport {\n type Discount,\n DiscountType,\n type Offer,\n OfferType,\n type UpdatedCart,\n} from \"./interfaces\";\nimport type { Product } from \"@salla.sa/twilight/types/common\";\n\n@Component({\n tag: \"salla-conditional-offer\",\n styleUrl: \"salla-conditional-offer.scss\",\n})\nexport class SallaConditionalOffer {\n\n @State() offer: Offer = null;\n @State() products: Record<string, Pick<Product, 'image' | 'url'>> = {}\n @State() isLoading = false\n @State() canRender = true\n\n componentWillLoad() {\n salla.onReady().then(() => {\n if (!salla.config.get('store.features')?.includes('conditional-offer') || (salla.storage.get(\"cart\") !== '' && !salla.storage.get(\"cart\")?.summary?.count)) {\n throw new Error('feature or cart object does not existed');\n }\n })\n .then(() => salla.api.cart.offers())\n .then(({ data }: { data: Offer[] }) => {\n this.offer = data.find(offer => offer.type === \"conditional\")\n\n if (!this.offer) {\n this.canRender = false\n return;\n }\n\n this.isLoading = true\n this.offer.details.discounts.unshift(({ value: 0, min_spend: 0 }))\n return this.updateInitialOfferValue()\n }).then(() => {\n if (!this.offer) return;\n return this.getProducts()\n }).then(() => {\n if (!this.offer) return;\n salla.event.on(\"cart::updated\", (updatedCart: UpdatedCart) => this.updateOfferValues(updatedCart))\n })\n .catch(error => {\n this.canRender = false\n salla.logger.warn('salla-conditional-offer:: ', error)\n }).finally(() => {\n this.isLoading = false\n })\n\n }\n\n private getProducts() {\n const freeProductIDs = this.offer.details.discounts.filter(({ type }) => type === DiscountType.FREE_PRODUCT).map(({ value }) => value)\n if (freeProductIDs.length > 0) {\n return salla.product.fetch({ source: 'selected', source_value: freeProductIDs }).then(({ data }: { data: Array<Product> }) => {\n data.forEach(({ id, url, image }) => {\n this.products[id] = { url, image }\n })\n })\n }\n }\n\n private updateInitialOfferValue() {\n return salla.api.cart.details().then(({ data: { cart } }: { data: { cart: UpdatedCart } }) => this.updateOfferValues(cart))\n }\n\n private updateOfferValues({ items, sub_total }: UpdatedCart) {\n const current_value = this.offer.details.based_on === OfferType.PRODUCT_COUNT ? items.reduce((count: number, { quantity }) => count + quantity, 0,) : sub_total\n //we need to assign the offer object a new reference to trigger re-rendering\n this.offer = {\n ...this.offer, details: {\n ...this.offer?.details, current_value,\n }\n }\n return this.offer\n }\n\n private getCheckpointContent(discount: Discount) {\n\n if (discount.type === DiscountType.PERCENTAGE) return `${discount.value}%`\n\n if (discount.type === DiscountType.FIXED) return salla.money(discount.value)\n\n if (discount.type !== DiscountType.FREE_PRODUCT) {\n salla.logger.error(`salla-conditional-offer:: unexpected type (${discount.type})!`);\n return \"\";\n }\n\n const productItem = this.products[discount.value]\n\n if (!productItem) {\n salla.logger.error(`salla-conditional-offer:: there is no product with id (${discount.value})!`);\n return \"\";\n }\n\n return <a class=\"s-conditional-offer-product-link\" href={productItem.url} >\n <img\n class=\"s-conditional-offer-checkpoint-image-content\"\n loading=\"lazy\"\n decoding=\"async\"\n alt={productItem?.image?.alt || \"\"}\n src={productItem?.image?.url} />\n </a>\n }\n\n private getOfferType(discount: Discount): string {\n const basedOn = this.offer.details?.based_on;\n if (basedOn === OfferType.PRODUCT_COUNT) return salla.lang.choice(\"blocks.header.products_count\", discount.min_spend);\n if (basedOn === OfferType.PRODUCT_PURCHASE) return salla.money(discount.min_spend);\n\n salla.logger.warn(`salla-conditional-offer:: Unexpected offer detail's based_on value: ${basedOn}`);\n return `${discount.min_spend}`;\n }\n\n private clamp(value: number, min: number, max: number) {\n return Math.max(min, Math.min(value, max));\n }\n\n private mapValueRanges(value: number, initialMinRange: number, initialMaxRange: number, newMinRange: number, newMaxRange: number) {\n\n const newRange = ((value - initialMinRange) * (newMaxRange - newMinRange)) / (initialMaxRange - initialMinRange) + newMinRange;\n\n if (newRange === Number.POSITIVE_INFINITY) return 100\n\n if (newRange === Number.NEGATIVE_INFINITY) return 0\n\n return this.clamp(newRange, 0, 100)\n }\n\n private getCheckPointView(discount: Discount, index: number) {\n const checkpointIndex = this.offer.details.discounts.findIndex(({ min_spend }) => min_spend === discount.min_spend);\n const previousCheckpointValue = this.offer.details.discounts[checkpointIndex - 1]?.min_spend ?? 0;\n const progressPercentage = this.mapValueRanges(this.offer.details.current_value, previousCheckpointValue, discount.min_spend, 0, 100);\n const isActive = discount.min_spend <= this.offer.details.current_value;\n\n return (\n <div class=\"s-conditional-offer-checkpoint-container\">\n {index > 0 ? [\n <div key=\"progress-line\" class=\"s-conditional-offer-progress-line-container\">\n <div class=\"s-conditional-offer-progress-line-inactive\" />\n <div class=\"s-conditional-offer-progress-line-active\" style={{ width: `${progressPercentage}%` }} />\n </div>,\n <div key=\"checkpoint\" class={`s-conditional-offer-checkpoint ${isActive ? \"s-conditional-offer-active-checkpoint\" : \"\"}`} >\n <div class={`s-conditional-offer-item-avatar-content ${isActive ? \"active\" : \"\"}`} innerHTML={this.products && this.getCheckpointContent(discount)}>\n </div>\n <div class={`s-conditional-offer-checkpoint-label ${isActive ? \"active\" : \"\"}`} innerHTML={this.getOfferType(discount)} />\n\n </div>\n ] :\n <div key=\"label\" class={{ \"s-conditional-offer-checkpoint-label\": true, \"first-checkpoint\": index === 0, active: isActive }} innerHTML={this.getOfferType(discount)} />\n }\n </div>\n );\n }\n\n private getLoadingSkeletonView() {\n return <Host class=\"s-conditional-offer-container\" >\n <div class=\"s-conditional-offer-skeleton-inner-container\">\n <div class=\"s-conditional-offer-skeleton-subtitle\">\n <salla-skeleton height=\"16px\" width=\"30%\" />\n </div>\n\n <div class=\"s-conditional-offer-skeleton-subtitle\">\n <salla-skeleton height=\"16px\" width=\"35%\" />\n </div>\n <div class=\"s-conditional-offer-skeleton-checkpoints-wrapper\">\n {Array(3).fill(null).map(() => (\n [<salla-skeleton key=\"checkpoint-line\" height=\"8px\" />,\n <div key=\"checkpoint\">\n <salla-skeleton height=\"60px\" width=\"60px\" type=\"circle\" />\n </div>]\n ))}\n </div>\n\n </div>\n </Host>\n }\n\n render() {\n if (!this.canRender) return null\n if (this.isLoading) return this.getLoadingSkeletonView()\n if (!this.offer) return null\n\n return <Host class=\"s-conditional-offer-container\">\n <div class=\"s-conditional-offer-title-wrapper\">\n <div class=\"s-conditional-offer-title\">{this.offer.title}</div>\n {this.offer.description ? <div class=\"s-conditional-offer-subtitle\">\n {this.offer.description} <i class=\"sicon-information\" />\n </div> : null}\n </div>\n <div class=\"s-conditional-offer-progress-container\">\n {this.offer.details.discounts.map((discount, index) => (\n <div class={{ \"flex-1\": index > 0 }} key={discount.min_spend}>\n {this.getCheckPointView(discount, index)}\n </div>\n ))}\n </div>\n </Host>\n }\n}\n"]}
|