@salla.sa/twilight-components 2.14.164 → 2.14.165
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-B0FX8nrF.js → app-globals-CLKa7CxZ.js} +3 -3
- package/dist/cjs/{app-globals-B0FX8nrF.js.map → app-globals-CLKa7CxZ.js.map} +1 -1
- package/dist/cjs/{index-BQogR_9w.js → index-DwI-asuB.js} +4 -4
- package/dist/cjs/index-DwI-asuB.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/salla-add-product-button_49.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 +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-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-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/components/index.js +2 -2
- package/dist/components/index.js.map +1 -1
- package/dist/esm/{app-globals-IYG3dX-R.js → app-globals-BEpO9R3l.js} +3 -3
- package/dist/esm/{app-globals-IYG3dX-R.js.map → app-globals-BEpO9R3l.js.map} +1 -1
- package/dist/esm/{index-BFfNxHPV.js → index-J7qEULJ3.js} +4 -4
- package/dist/esm/index-J7qEULJ3.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/salla-add-product-button_49.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 +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-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-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-IYG3dX-R.js → app-globals-BEpO9R3l.js} +2 -2
- package/dist/esm-es5/{app-globals-IYG3dX-R.js.map → app-globals-BEpO9R3l.js.map} +1 -1
- package/dist/esm-es5/{index-BFfNxHPV.js → index-J7qEULJ3.js} +3 -3
- package/dist/esm-es5/index-J7qEULJ3.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/salla-add-product-button_49.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-contacts.entry.js +1 -1
- package/dist/esm-es5/salla-filters-widget.entry.js +1 -1
- 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-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 +1 -1
- 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-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-2f7a8fd5.system.entry.js → p-06b0e8a2.system.entry.js} +2 -2
- package/dist/twilight/{p-d9e539ba.system.entry.js → p-085e9df1.system.entry.js} +2 -2
- package/dist/twilight/{p-8128a6af.system.entry.js → p-0a32cc75.system.entry.js} +2 -2
- package/dist/twilight/{p-35130be1.entry.js → p-11e9d88e.entry.js} +2 -2
- package/dist/twilight/{p-bced4dd5.system.entry.js → p-132bdb8f.system.entry.js} +2 -2
- package/dist/twilight/{p-489c4e43.system.entry.js → p-1a2823ab.system.entry.js} +2 -2
- package/dist/twilight/{p-d30e3efe.entry.js → p-1a72da5e.entry.js} +2 -2
- package/dist/twilight/{p-15ac73d8.entry.js → p-1eb39a14.entry.js} +2 -2
- package/dist/twilight/{p-594e29ef.system.entry.js → p-294c65f5.system.entry.js} +2 -2
- package/dist/twilight/{p-112a3593.entry.js → p-2acdaacb.entry.js} +2 -2
- package/dist/twilight/{p-feb47683.system.entry.js → p-31173585.system.entry.js} +2 -2
- package/dist/twilight/{p-0a352565.entry.js → p-3207c8af.entry.js} +2 -2
- package/dist/twilight/{p-37904a9d.system.entry.js → p-34b659b8.system.entry.js} +2 -2
- package/dist/twilight/{p-70db2fda.system.entry.js → p-3a2a5a42.system.entry.js} +2 -2
- package/dist/twilight/{p-66f5c6cb.entry.js → p-3bec12f2.entry.js} +2 -2
- package/dist/twilight/{p-94338a6a.entry.js → p-3fc1e9c7.entry.js} +2 -2
- package/dist/twilight/{p-77aa48a9.entry.js → p-5168f09e.entry.js} +2 -2
- package/dist/twilight/{p-a4335e96.entry.js → p-52da4b80.entry.js} +2 -2
- package/dist/twilight/{p-07be7362.entry.js → p-5acb00e9.entry.js} +2 -2
- package/dist/twilight/{p-679bcc4c.entry.js → p-5c2dd4e1.entry.js} +2 -2
- package/dist/twilight/{p-fIRBYbgk.system.js → p-5qHOiOEG.system.js} +2 -2
- package/dist/twilight/{p-fIRBYbgk.system.js.map → p-5qHOiOEG.system.js.map} +1 -1
- package/dist/twilight/{p-e803e9c9.system.entry.js → p-621aac4b.system.entry.js} +2 -2
- package/dist/twilight/{p-f047dc2e.system.entry.js → p-64b972d6.system.entry.js} +2 -2
- package/dist/twilight/{p-28d837ee.entry.js → p-64e7ca31.entry.js} +2 -2
- package/dist/twilight/{p-87eef8f5.system.entry.js → p-6d3f3ed2.system.entry.js} +2 -2
- package/dist/twilight/{p-fde43494.system.entry.js → p-6edbf189.system.entry.js} +2 -2
- package/dist/twilight/{p-B4QYa22q.system.js.map → p-6s6OLvTX.system.js.map} +1 -1
- package/dist/twilight/{p-0df2ce1c.entry.js → p-73d4057c.entry.js} +2 -2
- package/dist/twilight/{p-a57e5439.system.entry.js → p-780b5680.system.entry.js} +2 -2
- package/dist/twilight/{p-fe73d1f4.entry.js → p-82a852e2.entry.js} +2 -2
- package/dist/twilight/{p-780e11a1.entry.js → p-8b2a752d.entry.js} +2 -2
- package/dist/twilight/{p-801b8cf5.entry.js → p-8e27602f.entry.js} +2 -2
- package/dist/twilight/{p-f1f76cad.entry.js → p-9a6cff9b.entry.js} +2 -2
- package/dist/twilight/{p-BmBnW84t.system.js.map → p-B3rGe_Hy.system.js.map} +1 -1
- package/dist/twilight/{p-DeLChKCk.system.js.map → p-BPyD0Crl.system.js.map} +1 -1
- package/dist/twilight/{p-DD-NUH5O.system.js.map → p-BU3cD5wy.system.js.map} +1 -1
- package/dist/twilight/{p-UtROhnoT.system.js.map → p-BUAKEoUt.system.js.map} +1 -1
- package/dist/twilight/{p-CerWahQp.system.js.map → p-BYFZi_tY.system.js.map} +1 -1
- package/dist/twilight/{p-CV1L1K1F.js → p-Bc9mP0Tj.js} +2 -2
- package/dist/twilight/{p-CV1L1K1F.js.map → p-Bc9mP0Tj.js.map} +1 -1
- package/dist/twilight/{p-t7kMTbsj.system.js.map → p-Bi4sZblK.system.js.map} +1 -1
- package/dist/twilight/{p-Cbt3VvMx.system.js.map → p-Bj9dDUF7.system.js.map} +1 -1
- package/dist/twilight/{p-BC573MOT.system.js.map → p-CHCjS-hz.system.js.map} +1 -1
- package/dist/twilight/{p-B8TjwvAx.system.js.map → p-CHgtzste.system.js.map} +1 -1
- package/dist/twilight/{p-DyiYfLs6.system.js.map → p-CIHC34It.system.js.map} +1 -1
- package/dist/twilight/{p-8lfy7oMG.system.js.map → p-CM0EfxV2.system.js.map} +1 -1
- package/dist/twilight/{p-LTc0kKzI.system.js.map → p-C_1hB8Jw.system.js.map} +1 -1
- package/dist/twilight/{p-Dz_hUkbF.system.js → p-CedhiSw6.system.js} +2 -2
- package/dist/twilight/{p-Dz_hUkbF.system.js.map → p-CedhiSw6.system.js.map} +1 -1
- package/dist/twilight/{p-B8H8Zffc.system.js.map → p-D7zFhKev.system.js.map} +1 -1
- package/dist/twilight/{p-Bx-N-s4Y.system.js.map → p-DCUj41Mt.system.js.map} +1 -1
- package/dist/twilight/{p-CSzSey6x.system.js.map → p-DHW_modQ.system.js.map} +1 -1
- package/dist/twilight/{p-BEq2XgoL.system.js.map → p-DJiizJ4b.system.js.map} +1 -1
- package/dist/twilight/{p-Bco_IRd2.system.js.map → p-DV89BlHK.system.js.map} +1 -1
- package/dist/twilight/{p-C6uUYgzy.system.js.map → p-DZBSYZ_d.system.js.map} +1 -1
- package/dist/twilight/{p-Cb1UIzZb.system.js → p-D_SLvvpC.system.js} +3 -3
- package/dist/twilight/p-D_SLvvpC.system.js.map +1 -0
- package/dist/twilight/{p-DW6tScyV.system.js.map → p-Dcd-LDR-.system.js.map} +1 -1
- package/dist/twilight/{p-CJdQn5Cx.system.js.map → p-Diwt86HM.system.js.map} +1 -1
- package/dist/twilight/{p-C5EBG2Xg.system.js.map → p-Dm_LtWrx.system.js.map} +1 -1
- package/dist/twilight/{p-DGrVZP6D.system.js.map → p-DoNnqGCA.system.js.map} +1 -1
- package/dist/twilight/{p-D06Xx0Te.system.js.map → p-DsQCMe-l.system.js.map} +1 -1
- package/dist/twilight/{p-BFfNxHPV.js → p-J7qEULJ3.js} +3 -3
- package/dist/twilight/p-J7qEULJ3.js.map +1 -0
- package/dist/twilight/{p-nlqrWEsa.system.js.map → p-O4oN54iK.system.js.map} +1 -1
- package/dist/twilight/{p-73c55156.entry.js → p-a01e293f.entry.js} +2 -2
- package/dist/twilight/{p-bef3244d.entry.js → p-a3687a63.entry.js} +2 -2
- package/dist/twilight/{p-e0f20b16.system.entry.js → p-a477a2e9.system.entry.js} +2 -2
- package/dist/twilight/{p-60e44e99.system.entry.js → p-a8df268a.system.entry.js} +2 -2
- package/dist/twilight/{p-03eeed12.entry.js → p-ad217e73.entry.js} +2 -2
- package/dist/twilight/{p-f2fb025f.system.entry.js → p-b37f2115.system.entry.js} +2 -2
- package/dist/twilight/{p-283e5d2a.system.entry.js → p-b4d7d84c.system.entry.js} +2 -2
- package/dist/twilight/{p-325e8a3e.entry.js → p-bc8ab410.entry.js} +2 -2
- package/dist/twilight/{p-2ce0a07a.entry.js → p-c0834115.entry.js} +2 -2
- package/dist/twilight/{p-2c742cef.system.entry.js → p-c44a640c.system.entry.js} +2 -2
- package/dist/twilight/{p-acd4ad3d.entry.js → p-c67dc90e.entry.js} +2 -2
- package/dist/twilight/{p-b45186d2.entry.js → p-c6a68b34.entry.js} +7 -7
- package/dist/twilight/{p-34e55241.system.entry.js → p-caedd7b1.system.entry.js} +2 -2
- package/dist/twilight/{p-6f789c6a.system.entry.js → p-d7f28b04.system.entry.js} +2 -2
- package/dist/twilight/{p-a6ab5583.entry.js → p-dab1d726.entry.js} +2 -2
- package/dist/twilight/{p-3fc226d0.entry.js → p-db0e816c.entry.js} +2 -2
- package/dist/twilight/{p-f14d4763.entry.js → p-dc401a12.entry.js} +2 -2
- package/dist/twilight/{p-c8fa97ee.system.entry.js → p-de71b833.system.entry.js} +2 -2
- package/dist/twilight/{p-1fe13a36.system.entry.js → p-de943b4a.system.entry.js} +2 -2
- package/dist/twilight/{p-9900d67e.entry.js → p-e4c31868.entry.js} +2 -2
- package/dist/twilight/{p-cf17e7f5.system.entry.js → p-ef420f46.system.entry.js} +2 -2
- package/dist/twilight/{p-0bfcfa47.system.entry.js → p-f3c2a247.system.entry.js} +2 -2
- package/dist/twilight/{p-18cad003.system.entry.js → p-f61f99af.system.entry.js} +2 -2
- package/dist/twilight/{p-ea2a8ec3.system.entry.js → p-fbd83058.system.entry.js} +2 -2
- package/dist/twilight/{p-652c3a18.system.entry.js → p-fe494a9f.system.entry.js} +2 -2
- package/dist/twilight/{p-CCj5pPN3.system.js.map → p-h7cV22mx.system.js.map} +1 -1
- package/dist/twilight/{p-DHMPrdpB.system.js.map → p-hv0AIHfN.system.js.map} +1 -1
- package/dist/twilight/{p-wVh4stgZ.system.js.map → p-xrI_N8qW.system.js.map} +1 -1
- package/dist/twilight/{p-DQ6WGq9O.system.js.map → p-xsz6hPFN.system.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/cjs/index-BQogR_9w.js.map +0 -1
- package/dist/esm/index-BFfNxHPV.js.map +0 -1
- package/dist/esm-es5/index-BFfNxHPV.js.map +0 -1
- package/dist/twilight/p-BFfNxHPV.js.map +0 -1
- package/dist/twilight/p-Cb1UIzZb.system.js.map +0 -1
- /package/dist/twilight/{p-2f7a8fd5.system.entry.js.map → p-06b0e8a2.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-d9e539ba.system.entry.js.map → p-085e9df1.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-8128a6af.system.entry.js.map → p-0a32cc75.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-35130be1.entry.js.map → p-11e9d88e.entry.js.map} +0 -0
- /package/dist/twilight/{p-bced4dd5.system.entry.js.map → p-132bdb8f.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-489c4e43.system.entry.js.map → p-1a2823ab.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-d30e3efe.entry.js.map → p-1a72da5e.entry.js.map} +0 -0
- /package/dist/twilight/{p-15ac73d8.entry.js.map → p-1eb39a14.entry.js.map} +0 -0
- /package/dist/twilight/{p-594e29ef.system.entry.js.map → p-294c65f5.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-112a3593.entry.js.map → p-2acdaacb.entry.js.map} +0 -0
- /package/dist/twilight/{p-feb47683.system.entry.js.map → p-31173585.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-0a352565.entry.js.map → p-3207c8af.entry.js.map} +0 -0
- /package/dist/twilight/{p-37904a9d.system.entry.js.map → p-34b659b8.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-70db2fda.system.entry.js.map → p-3a2a5a42.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-66f5c6cb.entry.js.map → p-3bec12f2.entry.js.map} +0 -0
- /package/dist/twilight/{p-94338a6a.entry.js.map → p-3fc1e9c7.entry.js.map} +0 -0
- /package/dist/twilight/{p-77aa48a9.entry.js.map → p-5168f09e.entry.js.map} +0 -0
- /package/dist/twilight/{p-a4335e96.entry.js.map → p-52da4b80.entry.js.map} +0 -0
- /package/dist/twilight/{p-07be7362.entry.js.map → p-5acb00e9.entry.js.map} +0 -0
- /package/dist/twilight/{p-679bcc4c.entry.js.map → p-5c2dd4e1.entry.js.map} +0 -0
- /package/dist/twilight/{p-e803e9c9.system.entry.js.map → p-621aac4b.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-f047dc2e.system.entry.js.map → p-64b972d6.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-28d837ee.entry.js.map → p-64e7ca31.entry.js.map} +0 -0
- /package/dist/twilight/{p-87eef8f5.system.entry.js.map → p-6d3f3ed2.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-fde43494.system.entry.js.map → p-6edbf189.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-0df2ce1c.entry.js.map → p-73d4057c.entry.js.map} +0 -0
- /package/dist/twilight/{p-a57e5439.system.entry.js.map → p-780b5680.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-fe73d1f4.entry.js.map → p-82a852e2.entry.js.map} +0 -0
- /package/dist/twilight/{p-780e11a1.entry.js.map → p-8b2a752d.entry.js.map} +0 -0
- /package/dist/twilight/{p-801b8cf5.entry.js.map → p-8e27602f.entry.js.map} +0 -0
- /package/dist/twilight/{p-f1f76cad.entry.js.map → p-9a6cff9b.entry.js.map} +0 -0
- /package/dist/twilight/{p-73c55156.entry.js.map → p-a01e293f.entry.js.map} +0 -0
- /package/dist/twilight/{p-bef3244d.entry.js.map → p-a3687a63.entry.js.map} +0 -0
- /package/dist/twilight/{p-e0f20b16.system.entry.js.map → p-a477a2e9.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-60e44e99.system.entry.js.map → p-a8df268a.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-03eeed12.entry.js.map → p-ad217e73.entry.js.map} +0 -0
- /package/dist/twilight/{p-f2fb025f.system.entry.js.map → p-b37f2115.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-283e5d2a.system.entry.js.map → p-b4d7d84c.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-325e8a3e.entry.js.map → p-bc8ab410.entry.js.map} +0 -0
- /package/dist/twilight/{p-2ce0a07a.entry.js.map → p-c0834115.entry.js.map} +0 -0
- /package/dist/twilight/{p-2c742cef.system.entry.js.map → p-c44a640c.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-acd4ad3d.entry.js.map → p-c67dc90e.entry.js.map} +0 -0
- /package/dist/twilight/{p-b45186d2.entry.js.map → p-c6a68b34.entry.js.map} +0 -0
- /package/dist/twilight/{p-34e55241.system.entry.js.map → p-caedd7b1.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-6f789c6a.system.entry.js.map → p-d7f28b04.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-a6ab5583.entry.js.map → p-dab1d726.entry.js.map} +0 -0
- /package/dist/twilight/{p-3fc226d0.entry.js.map → p-db0e816c.entry.js.map} +0 -0
- /package/dist/twilight/{p-f14d4763.entry.js.map → p-dc401a12.entry.js.map} +0 -0
- /package/dist/twilight/{p-c8fa97ee.system.entry.js.map → p-de71b833.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-1fe13a36.system.entry.js.map → p-de943b4a.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-9900d67e.entry.js.map → p-e4c31868.entry.js.map} +0 -0
- /package/dist/twilight/{p-cf17e7f5.system.entry.js.map → p-ef420f46.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-0bfcfa47.system.entry.js.map → p-f3c2a247.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-18cad003.system.entry.js.map → p-f61f99af.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-ea2a8ec3.system.entry.js.map → p-fbd83058.system.entry.js.map} +0 -0
- /package/dist/twilight/{p-652c3a18.system.entry.js.map → p-fe494a9f.system.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p-DW6tScyV.system.js","sources":["src/components/salla-cart-item-offers/salla-cart-item-offers.scss?tag=salla-cart-item-offers","src/components/salla-cart-item-offers/salla-cart-item-offers.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Prop, State, h } from '@stencil/core';\nimport SpecialDiscountIcon from '../../assets/svg/special-discount.svg';\nimport GiftIcon from '../../assets/svg/gift.svg';\nimport TagMoneyIcon from '../../assets/svg/tag-money.svg';\nimport FireIcon from '../../assets/svg/fire.svg';\nimport DiscountCouponIcon from '../../assets/svg/discount-coupon.svg';\nimport ArrowDownIcon from '../../assets/svg/keyboard_arrow_down.svg';\n\n@Component({\n tag: 'salla-cart-item-offers',\n styleUrl: 'salla-cart-item-offers.scss',\n})\nexport class SallaCartItemOffers {\n /**\n * The quantity of the cart item\n */\n @Prop() quantity!: number;\n /**\n * JSON string containing the offers associated with the cart item\n */\n @Prop() offers!: string;\n /**\n * The unique identifier of the cart item\n */\n @Prop() itemId!: number;\n /**\n * The original price of the product in the cart\n */\n @Prop() productPrice!: number;\n\n @State() internalQuantity!: number;\n @State() internalOffers: any[] = [];\n @State() internalProductPrice!: number;\n @State() showAll: boolean = false;\n // Translations\n @State() freeLabel: string = '';\n @State() receivedOffer: string = '';\n @State() discountAmountLabel: string = '';\n @State() showMoreOffers: string = '';\n\n\n private readonly icons: Record<string, string> = {\n DiscountCouponIcon,\n GiftIcon,\n FireIcon,\n SpecialDiscountIcon,\n TagMoneyIcon,\n };\n\n private visibleOffersCount = 3;\n\n async componentWillLoad() {\n await Salla.onReady();\n await salla.lang.onLoaded(() => {\n this.freeLabel = salla.lang.get('common.elements.freeExclam');\n this.receivedOffer = salla.lang.get('pages.cart.received_offer');\n this.discountAmountLabel = salla.lang.get('pages.cart.discount_amount');\n this.showMoreOffers = salla.lang.get('pages.cart.show_more_offers');\n });\n this.internalQuantity = this.quantity;\n this.internalOffers = this.parseOffers(this.offers);\n this.internalProductPrice = this.productPrice;\n }\n\n componentDidLoad() {\n salla.event.on('cart::item.updated', (event) => this.handleCartItemUpdated(event));\n }\n\n private parseOffers(offers: string): any[] {\n try {\n return JSON.parse(offers || '[]');\n } catch (e) {\n console.error('Failed to parse offers', e);\n return [];\n }\n }\n\n private handleCartItemUpdated = (event) => {\n const updatedItem = event.data.cart.items.find((item) => item.id === this.itemId);\n if (updatedItem.id === this.itemId) {\n this.internalQuantity = updatedItem.quantity;\n this.internalOffers = updatedItem.detailed_offers || [];\n this.internalProductPrice = updatedItem.product_price;\n }\n };\n\n private get visibleOffers() {\n return this.internalOffers.slice(0, this.visibleOffersCount);\n }\n\n private get hiddenOffers() {\n return this.internalOffers.slice(this.visibleOffersCount);\n }\n\n private toggleShowAll = () => {\n this.showAll = !this.showAll;\n };\n\n private getPaidQty(quantity: number, offer: any) {\n return quantity - offer.free_quantity;\n }\n\n private renderOffer(quantity: number, offer: any) {\n const paidQty = this.getPaidQty(quantity, offer);\n\n return (\n <div class=\"s-cart-item-offers-box\">\n {offer.free_quantity > 0 && paidQty > 0 && (\n <div class=\"s-cart-item-offers-paid-free\">\n <div class=\"s-cart-item-offers-line\">\n {salla.helpers.number(paidQty)} × <span innerHTML={salla.money(this.internalProductPrice)}></span>\n </div>\n <div class=\"s-cart-item-offers-line\">\n {salla.helpers.number(offer.free_quantity)} × \n <span class=\"s-cart-item-offers-regular-price\" innerHTML={salla.money(this.internalProductPrice)}></span>\n <span class=\"s-cart-item-offers-free-label\">{this.freeLabel}</span>\n </div>\n </div>\n )}\n\n <div class=\"s-cart-item-offers-details\">\n <span class={`s-cart-item-offers-icon`} innerHTML={this.icons[offer.discount_icon] || ''}></span>\n <div>\n <p class=\"s-cart-item-offers-title\">\n {this.receivedOffer.replace(':offer', offer.offer_name)}\n </p>\n <p class=\"s-cart-item-offers-discount\">\n <span innerHTML={this.discountAmountLabel.replace(':amount', salla.money(offer.discount_amount.toFixed(2)))}></span>\n </p>\n </div>\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.internalOffers?.length) {\n return null;\n }\n\n return (\n <div class=\"s-cart-item-offers-container\" id={`offers_list_${this.itemId}`}>\n {this.visibleOffers.map((offer) => this.renderOffer(this.internalQuantity, offer))}\n\n {this.internalOffers?.length > this.visibleOffersCount && (\n <div class=\"s-cart-item-offers-show-more\">\n <button\n class=\"s-cart-item-offers-show-more-btn\"\n onClick={this.toggleShowAll}\n type=\"button\">\n <span class=\"s-cart-item-offers-show-more-label\">\n +{this.hiddenOffers.length} {this.showMoreOffers}\n <span\n innerHTML={ArrowDownIcon}\n class={{\n 's-cart-item-offers-arrow-icon': true,\n 's-cart-item-offers-arrow-open': this.showAll,\n }}\n ></span>\n </span>\n </button>\n </div>\n )}\n\n {this.showAll && (\n <div class=\"s-cart-item-offers-collapsed\" id={`offers_${this.itemId}`}>\n {this.hiddenOffers.map((offer) => this.renderOffer(this.internalQuantity, offer))}\n </div>\n )}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"p-Dcd-LDR-.system.js","sources":["src/components/salla-cart-item-offers/salla-cart-item-offers.scss?tag=salla-cart-item-offers","src/components/salla-cart-item-offers/salla-cart-item-offers.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Prop, State, h } from '@stencil/core';\nimport SpecialDiscountIcon from '../../assets/svg/special-discount.svg';\nimport GiftIcon from '../../assets/svg/gift.svg';\nimport TagMoneyIcon from '../../assets/svg/tag-money.svg';\nimport FireIcon from '../../assets/svg/fire.svg';\nimport DiscountCouponIcon from '../../assets/svg/discount-coupon.svg';\nimport ArrowDownIcon from '../../assets/svg/keyboard_arrow_down.svg';\n\n@Component({\n tag: 'salla-cart-item-offers',\n styleUrl: 'salla-cart-item-offers.scss',\n})\nexport class SallaCartItemOffers {\n /**\n * The quantity of the cart item\n */\n @Prop() quantity!: number;\n /**\n * JSON string containing the offers associated with the cart item\n */\n @Prop() offers!: string;\n /**\n * The unique identifier of the cart item\n */\n @Prop() itemId!: number;\n /**\n * The original price of the product in the cart\n */\n @Prop() productPrice!: number;\n\n @State() internalQuantity!: number;\n @State() internalOffers: any[] = [];\n @State() internalProductPrice!: number;\n @State() showAll: boolean = false;\n // Translations\n @State() freeLabel: string = '';\n @State() receivedOffer: string = '';\n @State() discountAmountLabel: string = '';\n @State() showMoreOffers: string = '';\n\n\n private readonly icons: Record<string, string> = {\n DiscountCouponIcon,\n GiftIcon,\n FireIcon,\n SpecialDiscountIcon,\n TagMoneyIcon,\n };\n\n private visibleOffersCount = 3;\n\n async componentWillLoad() {\n await Salla.onReady();\n await salla.lang.onLoaded(() => {\n this.freeLabel = salla.lang.get('common.elements.freeExclam');\n this.receivedOffer = salla.lang.get('pages.cart.received_offer');\n this.discountAmountLabel = salla.lang.get('pages.cart.discount_amount');\n this.showMoreOffers = salla.lang.get('pages.cart.show_more_offers');\n });\n this.internalQuantity = this.quantity;\n this.internalOffers = this.parseOffers(this.offers);\n this.internalProductPrice = this.productPrice;\n }\n\n componentDidLoad() {\n salla.event.on('cart::item.updated', (event) => this.handleCartItemUpdated(event));\n }\n\n private parseOffers(offers: string): any[] {\n try {\n return JSON.parse(offers || '[]');\n } catch (e) {\n console.error('Failed to parse offers', e);\n return [];\n }\n }\n\n private handleCartItemUpdated = (event) => {\n const updatedItem = event.data.cart.items.find((item) => item.id === this.itemId);\n if (updatedItem.id === this.itemId) {\n this.internalQuantity = updatedItem.quantity;\n this.internalOffers = updatedItem.detailed_offers || [];\n this.internalProductPrice = updatedItem.product_price;\n }\n };\n\n private get visibleOffers() {\n return this.internalOffers.slice(0, this.visibleOffersCount);\n }\n\n private get hiddenOffers() {\n return this.internalOffers.slice(this.visibleOffersCount);\n }\n\n private toggleShowAll = () => {\n this.showAll = !this.showAll;\n };\n\n private getPaidQty(quantity: number, offer: any) {\n return quantity - offer.free_quantity;\n }\n\n private renderOffer(quantity: number, offer: any) {\n const paidQty = this.getPaidQty(quantity, offer);\n\n return (\n <div class=\"s-cart-item-offers-box\">\n {offer.free_quantity > 0 && paidQty > 0 && (\n <div class=\"s-cart-item-offers-paid-free\">\n <div class=\"s-cart-item-offers-line\">\n {salla.helpers.number(paidQty)} × <span innerHTML={salla.money(this.internalProductPrice)}></span>\n </div>\n <div class=\"s-cart-item-offers-line\">\n {salla.helpers.number(offer.free_quantity)} × \n <span class=\"s-cart-item-offers-regular-price\" innerHTML={salla.money(this.internalProductPrice)}></span>\n <span class=\"s-cart-item-offers-free-label\">{this.freeLabel}</span>\n </div>\n </div>\n )}\n\n <div class=\"s-cart-item-offers-details\">\n <span class={`s-cart-item-offers-icon`} innerHTML={this.icons[offer.discount_icon] || ''}></span>\n <div>\n <p class=\"s-cart-item-offers-title\">\n {this.receivedOffer.replace(':offer', offer.offer_name)}\n </p>\n <p class=\"s-cart-item-offers-discount\">\n <span innerHTML={this.discountAmountLabel.replace(':amount', salla.money(offer.discount_amount.toFixed(2)))}></span>\n </p>\n </div>\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.internalOffers?.length) {\n return null;\n }\n\n return (\n <div class=\"s-cart-item-offers-container\" id={`offers_list_${this.itemId}`}>\n {this.visibleOffers.map((offer) => this.renderOffer(this.internalQuantity, offer))}\n\n {this.internalOffers?.length > this.visibleOffersCount && (\n <div class=\"s-cart-item-offers-show-more\">\n <button\n class=\"s-cart-item-offers-show-more-btn\"\n onClick={this.toggleShowAll}\n type=\"button\">\n <span class=\"s-cart-item-offers-show-more-label\">\n +{this.hiddenOffers.length} {this.showMoreOffers}\n <span\n innerHTML={ArrowDownIcon}\n class={{\n 's-cart-item-offers-arrow-icon': true,\n 's-cart-item-offers-arrow-open': this.showAll,\n }}\n ></span>\n </span>\n </button>\n </div>\n )}\n\n {this.showAll && (\n <div class=\"s-cart-item-offers-collapsed\" id={`offers_${this.itemId}`}>\n {this.hiddenOffers.map((offer) => this.renderOffer(this.internalQuantity, offer))}\n </div>\n )}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p-CJdQn5Cx.system.js","sources":["src/components/salla-conditional-offer/interfaces.ts","src/components/salla-conditional-offer/salla-conditional-offer.scss?tag=salla-conditional-offer","src/components/salla-conditional-offer/salla-conditional-offer.tsx"],"sourcesContent":["import type { Product } from \"@salla.sa/twilight/types/common\";\n\nexport enum DiscountType {\n PERCENTAGE = \"percentage\",\n FIXED = \"fixed\",\n FREE_PRODUCT = \"free_product\",\n}\n\nexport enum OfferType {\n PRODUCT_COUNT = \"products_count\",\n PRODUCT_PURCHASE = \"order_amount\",\n}\n\nexport interface Discount {\n type?: DiscountType;\n value?: number;\n min_spend?: number;\n max_discount?: number;\n}\n\nexport interface OfferDetails {\n based_on?: OfferType;\n ends_at?: number;\n start_value?: number;\n end_value?: number;\n current_value?: number;\n discounts?: Discount[];\n}\n\nexport interface Offer {\n id?: number;\n type?: string;\n title?: string;\n description?: string;\n details?: OfferDetails | null;\n}\n\n\nexport interface ProductDetail {\n id?: number;\n sku?: string;\n name?: string;\n description?: string;\n url?: string;\n promotion_title?: null;\n subtitle?: null;\n type?: string;\n status?: string;\n price?: number;\n base_currency_price?: BaseCurrencyPrice;\n sale_price?: number;\n regular_price?: number;\n starting_price?: null;\n quantity?: null;\n max_quantity?: number;\n discount_ends?: null;\n is_taxable?: boolean;\n has_read_more?: boolean;\n can_add_note?: boolean;\n can_show_remained_quantity?: boolean;\n can_upload_file?: boolean;\n has_custom_form?: boolean;\n has_metadata?: boolean;\n is_on_sale?: boolean;\n is_hidden_quantity?: boolean;\n is_available?: boolean;\n is_out_of_stock?: boolean;\n is_require_shipping?: boolean;\n weight?: null;\n calories?: null;\n image?: Image;\n currency?: string;\n}\n\nexport interface BaseCurrencyPrice {\n currency?: string;\n amount?: number;\n}\n\nexport interface Image {\n url?: string;\n alt?: string;\n}\n\nexport interface UpdatedCart {\n items: Array<Product>;\n total: number;\n}\n",":host {\n display: block;\n}","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, total }: UpdatedCart) {\n const current_value = this.offer.details.based_on === OfferType.PRODUCT_COUNT ? items.reduce((count: number, { quantity }) => count + quantity, 0,) : 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"],"names":[],"mappings":";;;;;;;;;;;;;;YAEA,IAAY,YAIX;YAJD,CAAA,UAAY,YAAY,EAAA;YACpB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;YACzB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe;YACf,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;YACjC,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA;YAED,IAAY,SAGX;YAHD,CAAA,UAAY,SAAS,EAAA;YACjB,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;YAChC,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,cAAiC;YACrC,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA;;YCXD,MAAM,wBAAwB,GAAG,sBAAsB;;kBCc1C,qBAAqB,sCAAA,MAAA;YAJlC,IAAA,WAAA,CAAA,OAAA,EAAA;;YAMa,QAAA,IAAK,CAAA,KAAA,GAAU,IAAI;YACnB,QAAA,IAAQ,CAAA,QAAA,GAAmD,EAAE;YAC7D,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI;YAChB,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI;YAgL5B;gBA9KG,iBAAiB,GAAA;YACb,QAAA,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;;wBACtB,IAAI,EAAC,CAAA,EAAA,GAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,0CAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,OAAO,0CAAE,KAAK,CAAA,CAAC,EAAE;YACxJ,gBAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;;YAElE,SAAC;YACI,aAAA,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;YAClC,aAAA,IAAI,CAAC,CAAC,EAAE,IAAI,EAAqB,KAAI;;YAElC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;YAE7D,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,gBAAA,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;;wBAGxF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;YAClE,YAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE;YACzC,SAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,WAAwB,KAAK,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;yBAC9I,KAAK,CAAC,KAAK,IAAG;YACX,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;wBACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC;YAC1D,SAAC,CAAC,CAAC,OAAO,CAAC,MAAK;YACZ,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YAC1B,SAAC,CAAC;;gBAIF,WAAW,GAAA;YACf,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;YACtI,QAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAA4B,KAAI;YACzH,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAI;gCAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YACtC,iBAAC,CAAC;YACN,aAAC,CAAC;;;gBAIF,uBAAuB,GAAA;YAC3B,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAmC,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;YAGvH,IAAA,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAe,EAAA;;YACnD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAE,GAAG,KAAK;;YAE3J,QAAA,IAAI,CAAC,KAAK,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACH,IAAI,CAAC,KAAK,KAAE,OAAO,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACf,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,OAAO,CAAE,EAAA,EAAA,aAAa,MAE5C;oBACD,OAAO,IAAI,CAAC,KAAK;;YAGb,IAAA,oBAAoB,CAAC,QAAkB,EAAA;;YAE3C,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU;YAAE,YAAA,OAAO,CAAG,EAAA,QAAQ,CAAC,KAAK,GAAG;YAE1E,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK;wBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAE5E,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,EAAE;wBAC7C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAA8C,2CAAA,EAAA,QAAQ,CAAC,IAAI,CAAI,EAAA,CAAA,CAAC;YACnF,YAAA,OAAO,EAAE;;oBAGb,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAEjD,IAAI,CAAC,WAAW,EAAE;wBACd,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAA0D,uDAAA,EAAA,QAAQ,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;YAChG,YAAA,OAAO,EAAE;;YAGb,QAAA,OAAO,CAAA,CAAA,GAAA,EAAA,EAAG,KAAK,EAAC,kCAAkC,EAAC,IAAI,EAAE,WAAW,CAAC,GAAG,EAAA,EACpE,CAAA,CAAA,KAAA,EAAA,EACI,KAAK,EAAC,8CAA8C,EACpD,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,OAAO,EAChB,GAAG,EAAE,CAAA,MAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,MAAA,GAAA,MAAA,GAAA,WAAW,CAAE,KAAK,0CAAE,GAAG,KAAI,EAAE,EAClC,GAAG,EAAE,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,KAAK,0CAAE,GAAG,EAAA,CAAI,CACpC;;YAGA,IAAA,YAAY,CAAC,QAAkB,EAAA;;YACnC,QAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ;YAC5C,QAAA,IAAI,OAAO,KAAK,SAAS,CAAC,aAAa;YAAE,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,8BAA8B,EAAE,QAAQ,CAAC,SAAS,CAAC;YACrH,QAAA,IAAI,OAAO,KAAK,SAAS,CAAC,gBAAgB;wBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAElF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAuE,oEAAA,EAAA,OAAO,CAAE,CAAA,CAAC;YACnG,QAAA,OAAO,CAAG,EAAA,QAAQ,CAAC,SAAS,EAAE;;YAG1B,IAAA,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;YACjD,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;;gBAGtC,cAAc,CAAC,KAAa,EAAE,eAAuB,EAAE,eAAuB,EAAE,WAAmB,EAAE,WAAmB,EAAA;oBAE5H,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,eAAe,KAAK,WAAW,GAAG,WAAW,CAAC,KAAK,eAAe,GAAG,eAAe,CAAC,GAAG,WAAW;YAE9H,QAAA,IAAI,QAAQ,KAAK,MAAM,CAAC,iBAAiB;YAAE,YAAA,OAAO,GAAG;YAErD,QAAA,IAAI,QAAQ,KAAK,MAAM,CAAC,iBAAiB;YAAE,YAAA,OAAO,CAAC;oBAEnD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC;;gBAG/B,iBAAiB,CAAC,QAAkB,EAAE,KAAa,EAAA;;oBACvD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC;oBACnH,MAAM,uBAAuB,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC,0CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;oBACjG,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,uBAAuB,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC;YACrI,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa;YAEvE,QAAA,QACI,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,0CAA0C,EAChD,EAAA,KAAK,GAAG,CAAC,GAAG;wBACT,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAC,eAAe,EAAC,KAAK,EAAC,6CAA6C,EAAA,EACxE,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4CAA4C,EAAG,CAAA,EAC1D,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,0CAA0C,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAG,EAAA,kBAAkB,GAAG,EAAE,GAAI,CAClG;YACN,YAAA,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAC,YAAY,EAAC,KAAK,EAAE,CAAA,+BAAA,EAAkC,QAAQ,GAAG,uCAAuC,GAAG,EAAE,CAAE,CAAA,EAAA,EACpH,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,CAAA,wCAAA,EAA2C,QAAQ,GAAG,QAAQ,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAC5I,CAAA,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,CAAA,qCAAA,EAAwC,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAE,CAAA,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAA,CAAI;YAGjI,SAAA;YACG,YAAA,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,sCAAsC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAI,CAAA,CAEzK;;gBAIN,sBAAsB,GAAA;YAC1B,QAAA,OAAO,CAAC,CAAA,IAAI,EAAC,EAAA,KAAK,EAAC,+BAA+B,EAAA,EAC9C,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,8CAA8C,EAAA,EACrD,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uCAAuC,EAAA,EAC9C,CAAgB,CAAA,gBAAA,EAAA,EAAA,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAG,CAC1C,EAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uCAAuC,EAAA,EAC9C,CAAgB,CAAA,gBAAA,EAAA,EAAA,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,GAAG,CAC1C,EACN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,kDAAkD,EAAA,EACxD,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OACrB,CAAC,CAAgB,CAAA,gBAAA,EAAA,EAAA,GAAG,EAAC,iBAAiB,EAAC,MAAM,EAAC,KAAK,EAAG,CAAA,EACtD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAC,YAAY,EAAA,EACjB,CAAA,CAAA,gBAAA,EAAA,EAAgB,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAA,CAAG,CACzD,CAAC,CACV,CAAC,CACA,CAEJ,CACH;;gBAGX,MAAM,GAAA;oBACF,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,YAAA,OAAO,IAAI;oBAChC,IAAI,IAAI,CAAC,SAAS;YAAE,YAAA,OAAO,IAAI,CAAC,sBAAsB,EAAE;YAExD,QAAA,OAAO,CAAC,CAAA,IAAI,EAAC,EAAA,KAAK,EAAC,+BAA+B,EAAA,EAC9C,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,mCAAmC,EAAA,EAC1C,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,2BAA2B,EAAA,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAO,EAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,8BAA8B,EAAA,EAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,OAAE,CAAG,CAAA,GAAA,EAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,CAAG,CACtD,GAAG,IAAI,CACX,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,wCAAwC,EAC9C,EAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,MAC9C,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,SAAS,EACvD,EAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CACtC,CACT,CAAC,CACA,CACH;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"p-Diwt86HM.system.js","sources":["src/components/salla-conditional-offer/interfaces.ts","src/components/salla-conditional-offer/salla-conditional-offer.scss?tag=salla-conditional-offer","src/components/salla-conditional-offer/salla-conditional-offer.tsx"],"sourcesContent":["import type { Product } from \"@salla.sa/twilight/types/common\";\n\nexport enum DiscountType {\n PERCENTAGE = \"percentage\",\n FIXED = \"fixed\",\n FREE_PRODUCT = \"free_product\",\n}\n\nexport enum OfferType {\n PRODUCT_COUNT = \"products_count\",\n PRODUCT_PURCHASE = \"order_amount\",\n}\n\nexport interface Discount {\n type?: DiscountType;\n value?: number;\n min_spend?: number;\n max_discount?: number;\n}\n\nexport interface OfferDetails {\n based_on?: OfferType;\n ends_at?: number;\n start_value?: number;\n end_value?: number;\n current_value?: number;\n discounts?: Discount[];\n}\n\nexport interface Offer {\n id?: number;\n type?: string;\n title?: string;\n description?: string;\n details?: OfferDetails | null;\n}\n\n\nexport interface ProductDetail {\n id?: number;\n sku?: string;\n name?: string;\n description?: string;\n url?: string;\n promotion_title?: null;\n subtitle?: null;\n type?: string;\n status?: string;\n price?: number;\n base_currency_price?: BaseCurrencyPrice;\n sale_price?: number;\n regular_price?: number;\n starting_price?: null;\n quantity?: null;\n max_quantity?: number;\n discount_ends?: null;\n is_taxable?: boolean;\n has_read_more?: boolean;\n can_add_note?: boolean;\n can_show_remained_quantity?: boolean;\n can_upload_file?: boolean;\n has_custom_form?: boolean;\n has_metadata?: boolean;\n is_on_sale?: boolean;\n is_hidden_quantity?: boolean;\n is_available?: boolean;\n is_out_of_stock?: boolean;\n is_require_shipping?: boolean;\n weight?: null;\n calories?: null;\n image?: Image;\n currency?: string;\n}\n\nexport interface BaseCurrencyPrice {\n currency?: string;\n amount?: number;\n}\n\nexport interface Image {\n url?: string;\n alt?: string;\n}\n\nexport interface UpdatedCart {\n items: Array<Product>;\n total: number;\n}\n",":host {\n display: block;\n}","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, total }: UpdatedCart) {\n const current_value = this.offer.details.based_on === OfferType.PRODUCT_COUNT ? items.reduce((count: number, { quantity }) => count + quantity, 0,) : 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"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p-C5EBG2Xg.system.js","sources":["src/components/salla-filters/salla-filters.scss?tag=salla-filters","src/components/salla-filters/salla-filters.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.s-rating-stars-small {\n line-height: 12px;\n}\n.s-filters-radio{\n background-image: none !important;\n}","import { Component, Element, h, Event, EventEmitter, Host, Method, Prop, State } from '@stencil/core';\nimport { Filter, FilterOptionTypes } from \"./interfaces\";\nimport Helper from '../../Helpers/Helper';\n@Component({\n tag: 'salla-filters',\n styleUrl: 'salla-filters.scss',\n})\nexport class SallaFilters {\n\n constructor() {\n salla.event.on('filters::hidden', () => this.host.style.display = 'none');\n\n salla.lang.onLoaded(() => {\n this.apply = salla.lang.get('pages.checkout.apply');\n this.reset = salla.lang.get('pages.categories.filters_reset');\n });\n\n salla.event.on('filters::fetched', ({ filters }) => {\n this.host.style.display = '';\n let freshFilterData: any = {};\n this.filters = filters\n .map((filter: Filter) => {\n filter.label = {\n category_id: salla.lang.get('common.titles.categories'),\n brand_id: salla.lang.get('common.titles.brands'),\n rating: salla.lang.get('pages.categories.filter_rating'),\n price: salla.lang.get('pages.categories.filter_price'),\n }[filter.key] || filter.label;\n // filter.type = FilterOptionTypes.VALUES;\n if (filter.key == 'rating') {\n filter.type = FilterOptionTypes.VALUES;\n //@ts-ignore\n let { max, min } = filter.values;\n //@ts-ignore\n filter.values = [5, 4, 3, 2, 1].filter(stars => stars >= min || stars <= max)\n }\n if (this.filtersData.variants && filter.type == FilterOptionTypes.VARIANTS) {\n freshFilterData.variants = this.filtersData.variants;\n }\n if (this.filtersData[filter.key] && filter.type !== FilterOptionTypes.VARIANTS) {\n freshFilterData[filter.key] = this.filtersData[filter.key];\n }\n let searchParams = new URLSearchParams(window.location.search);\n let hasFilters = false;\n for (let key of searchParams.keys()) {\n if (key.includes('filters')) {\n hasFilters = true;\n break; // No need to continue checking once a match is found\n }\n }\n if (salla.config.get('page.slug') == \"product.index\" && Object.keys(freshFilterData).length == 0 && !hasFilters) {\n // Append the current category to the url if there are no pre-selected filters\n let currentUrl = window.location.href;\n let filterValue = salla.config.get('page.id');\n let separator = currentUrl.indexOf('?') !== -1 ? '&' : '?';\n let newUrl = currentUrl + separator + 'filters[category_id]=' + filterValue;\n freshFilterData.category_id = filterValue;\n window.history.pushState({ path: newUrl }, '', newUrl);\n }\n return filter;\n });\n this.filtersData = freshFilterData;\n this.host.childNodes.forEach(async (widget: HTMLSallaFiltersWidgetElement) => widget.setWidgetHeight && await widget.setWidgetHeight())\n });\n }\n\n async componentWillLoad() {\n try {\n const searchParams = new URLSearchParams(window.location.search);\n this.filtersData = await Helper.extractFiltersFromUrl(searchParams);\n } catch (e) {\n console.warn('failed to get filters from URL', e.message);\n }\n }\n\n\n @Element() host: HTMLElement;\n\n /**\n * Array of filter options\n */\n @Prop({ reflect: true, mutable: true }) filters?: Filter[];\n\n private isReady = false;//to avoid triggering the changed event\n\n @State() isSidebarOpen: boolean;\n @State() filtersData: object | any = {}\n @State() apply: string;\n @State() reset: string;\n\n /**\n * Custom event fired when the selected filters are changed.\n */\n @Event() changed: EventEmitter;\n\n /**\n * Method to get filter data.\n */\n @Method()\n async getFilters() {\n return this.filtersData;\n }\n\n /**\n * Apply filter action.\n */\n @Method()\n async applyFilters() {\n if (!this.isReady) {\n return;\n }\n let hasFilters = Object.keys(this.filtersData).length > 0;\n setTimeout(() => {\n if (hasFilters) {\n let url = new URL(window.location.href);\n for (const [key] of url.searchParams.entries()) {\n if (key.startsWith(\"filters\")) {\n url.searchParams.delete(key);\n }\n }\n let encodedFilterValues = this.encodeFilters(this.filtersData)\n let sanitizedFilterValues = url.search.split(\"&\").filter(item => !item.includes('filters')).join(\"&\")\n if (sanitizedFilterValues) {\n url.search = url.search.split(\"&filters\")[0] + \"&\" + encodedFilterValues\n } else {\n url.search = `?${encodedFilterValues}`\n }\n window.history.pushState({}, '', url.href);\n }\n else {\n let url = new URL(window.location.href);\n url.searchParams?.delete('filters');\n window.history.pushState({}, '', url.toString());\n }\n salla.event.emit('salla-filters::changed', this.filtersData);\n this.changed.emit(this.filtersData);\n }, 300);\n }\n\n\n private encodeFilters(filters, parentKey = 'filters') {\n const encodedFilters = [];\n\n for (const key in filters) {\n if (Object.prototype.hasOwnProperty.call(filters, key)) {\n const value = filters[key];\n\n const fullKey = parentKey ? `${parentKey}[${key}]` : key;\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n encodedFilters.push(`${fullKey}[${i}]=${value[i]}`)\n }\n }\n else if (typeof value === 'object' && value !== null) {\n encodedFilters.push(this.encodeFilters(value, fullKey));\n } else {\n // const encodedKey = encodeURIComponent(fullKey);\n // const encodedValue = encodeURIComponent(value);\n let result = `${fullKey}=${value}`\n encodedFilters.push(result);\n }\n }\n }\n return encodedFilters.join('&');\n };\n\n /**\n * Reset selected filters.\n */\n @Method()\n async resetFilters() {\n this.removeFiltersQueryParams()\n this.filtersData = {};\n this.host.childNodes.forEach((widget: HTMLSallaFiltersWidgetElement) => widget.reset && widget.reset())\n salla.event.emit('salla-filters::reset');\n return this.applyFilters();\n }\n\n private removeFiltersQueryParams() {\n const searchParams = new URLSearchParams(window.location.search);\n\n const newUrl = Array.from(searchParams.keys())\n .filter(key => !key.startsWith('filters['))\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(searchParams.get(key))}`)\n .join('&');\n\n const finalUrl = newUrl ? `${window.location.pathname}?${newUrl}` : window.location.pathname;\n window.history.pushState({}, '', finalUrl);\n }\n\n /**\n * @param {{target:HTMLInputElement}} event\n * @param option\n * @param value\n * @private\n */\n private handleOptionChange(event, option: Filter, value) {\n if (option.type === FilterOptionTypes.RANGE) {\n this.filtersData[option.key] = value;\n\n }\n let isChecked = event.target.checked;\n\n if (option.type === FilterOptionTypes.VARIANTS) {\n this.filtersData.variants = this.filtersData.variants || {};\n isChecked && (this.filtersData.variants[option.key] = value);\n isChecked || (delete this.filtersData.variants[option.key]);\n }\n\n else if (event.target.type == \"radio\") {\n isChecked && (this.filtersData[option.key] = value);\n isChecked || (delete this.filtersData[option.key]);\n }\n\n //it's checkbox\n // add if condition to avoid error when the filter is not existed in the filtersData\n else if (event.target.type == \"checkbox\") {\n this.filtersData[option.key] = this.filtersData[option.key] || [];\n if (isChecked) {\n this.filtersData[option.key].push(value);\n\n }\n this.filtersData[option.key] = this.filtersData[option.key].filter(val => val != value);\n }\n this.applyFilters();\n }\n\n\n\n render() {\n return <Host>\n {this.filters?.map(option => <salla-filters-widget\n option={option}\n filtersData={this.filtersData}\n onChanged={({ detail: { event, option, value } }) => {\n this.handleOptionChange(event, option, value)\n }} />)}\n\n {this.filters?.length ? <div class=\"s-filters-footer\">\n {/* <salla-button color='primary' onClick={() => this.applyFilters()}>{this.apply}</salla-button> */}\n <salla-button color='gray' fill='outline' onClick={() => this.resetFilters()}>{this.reset}</salla-button>\n </div> : ''}\n </Host>;\n }\n\n componentDidLoad() {\n this.isReady = true;\n }\n}\n\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"p-Dm_LtWrx.system.js","sources":["src/components/salla-filters/salla-filters.scss?tag=salla-filters","src/components/salla-filters/salla-filters.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.s-rating-stars-small {\n line-height: 12px;\n}\n.s-filters-radio{\n background-image: none !important;\n}","import { Component, Element, h, Event, EventEmitter, Host, Method, Prop, State } from '@stencil/core';\nimport { Filter, FilterOptionTypes } from \"./interfaces\";\nimport Helper from '../../Helpers/Helper';\n@Component({\n tag: 'salla-filters',\n styleUrl: 'salla-filters.scss',\n})\nexport class SallaFilters {\n\n constructor() {\n salla.event.on('filters::hidden', () => this.host.style.display = 'none');\n\n salla.lang.onLoaded(() => {\n this.apply = salla.lang.get('pages.checkout.apply');\n this.reset = salla.lang.get('pages.categories.filters_reset');\n });\n\n salla.event.on('filters::fetched', ({ filters }) => {\n this.host.style.display = '';\n let freshFilterData: any = {};\n this.filters = filters\n .map((filter: Filter) => {\n filter.label = {\n category_id: salla.lang.get('common.titles.categories'),\n brand_id: salla.lang.get('common.titles.brands'),\n rating: salla.lang.get('pages.categories.filter_rating'),\n price: salla.lang.get('pages.categories.filter_price'),\n }[filter.key] || filter.label;\n // filter.type = FilterOptionTypes.VALUES;\n if (filter.key == 'rating') {\n filter.type = FilterOptionTypes.VALUES;\n //@ts-ignore\n let { max, min } = filter.values;\n //@ts-ignore\n filter.values = [5, 4, 3, 2, 1].filter(stars => stars >= min || stars <= max)\n }\n if (this.filtersData.variants && filter.type == FilterOptionTypes.VARIANTS) {\n freshFilterData.variants = this.filtersData.variants;\n }\n if (this.filtersData[filter.key] && filter.type !== FilterOptionTypes.VARIANTS) {\n freshFilterData[filter.key] = this.filtersData[filter.key];\n }\n let searchParams = new URLSearchParams(window.location.search);\n let hasFilters = false;\n for (let key of searchParams.keys()) {\n if (key.includes('filters')) {\n hasFilters = true;\n break; // No need to continue checking once a match is found\n }\n }\n if (salla.config.get('page.slug') == \"product.index\" && Object.keys(freshFilterData).length == 0 && !hasFilters) {\n // Append the current category to the url if there are no pre-selected filters\n let currentUrl = window.location.href;\n let filterValue = salla.config.get('page.id');\n let separator = currentUrl.indexOf('?') !== -1 ? '&' : '?';\n let newUrl = currentUrl + separator + 'filters[category_id]=' + filterValue;\n freshFilterData.category_id = filterValue;\n window.history.pushState({ path: newUrl }, '', newUrl);\n }\n return filter;\n });\n this.filtersData = freshFilterData;\n this.host.childNodes.forEach(async (widget: HTMLSallaFiltersWidgetElement) => widget.setWidgetHeight && await widget.setWidgetHeight())\n });\n }\n\n async componentWillLoad() {\n try {\n const searchParams = new URLSearchParams(window.location.search);\n this.filtersData = await Helper.extractFiltersFromUrl(searchParams);\n } catch (e) {\n console.warn('failed to get filters from URL', e.message);\n }\n }\n\n\n @Element() host: HTMLElement;\n\n /**\n * Array of filter options\n */\n @Prop({ reflect: true, mutable: true }) filters?: Filter[];\n\n private isReady = false;//to avoid triggering the changed event\n\n @State() isSidebarOpen: boolean;\n @State() filtersData: object | any = {}\n @State() apply: string;\n @State() reset: string;\n\n /**\n * Custom event fired when the selected filters are changed.\n */\n @Event() changed: EventEmitter;\n\n /**\n * Method to get filter data.\n */\n @Method()\n async getFilters() {\n return this.filtersData;\n }\n\n /**\n * Apply filter action.\n */\n @Method()\n async applyFilters() {\n if (!this.isReady) {\n return;\n }\n let hasFilters = Object.keys(this.filtersData).length > 0;\n setTimeout(() => {\n if (hasFilters) {\n let url = new URL(window.location.href);\n for (const [key] of url.searchParams.entries()) {\n if (key.startsWith(\"filters\")) {\n url.searchParams.delete(key);\n }\n }\n let encodedFilterValues = this.encodeFilters(this.filtersData)\n let sanitizedFilterValues = url.search.split(\"&\").filter(item => !item.includes('filters')).join(\"&\")\n if (sanitizedFilterValues) {\n url.search = url.search.split(\"&filters\")[0] + \"&\" + encodedFilterValues\n } else {\n url.search = `?${encodedFilterValues}`\n }\n window.history.pushState({}, '', url.href);\n }\n else {\n let url = new URL(window.location.href);\n url.searchParams?.delete('filters');\n window.history.pushState({}, '', url.toString());\n }\n salla.event.emit('salla-filters::changed', this.filtersData);\n this.changed.emit(this.filtersData);\n }, 300);\n }\n\n\n private encodeFilters(filters, parentKey = 'filters') {\n const encodedFilters = [];\n\n for (const key in filters) {\n if (Object.prototype.hasOwnProperty.call(filters, key)) {\n const value = filters[key];\n\n const fullKey = parentKey ? `${parentKey}[${key}]` : key;\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n encodedFilters.push(`${fullKey}[${i}]=${value[i]}`)\n }\n }\n else if (typeof value === 'object' && value !== null) {\n encodedFilters.push(this.encodeFilters(value, fullKey));\n } else {\n // const encodedKey = encodeURIComponent(fullKey);\n // const encodedValue = encodeURIComponent(value);\n let result = `${fullKey}=${value}`\n encodedFilters.push(result);\n }\n }\n }\n return encodedFilters.join('&');\n };\n\n /**\n * Reset selected filters.\n */\n @Method()\n async resetFilters() {\n this.removeFiltersQueryParams()\n this.filtersData = {};\n this.host.childNodes.forEach((widget: HTMLSallaFiltersWidgetElement) => widget.reset && widget.reset())\n salla.event.emit('salla-filters::reset');\n return this.applyFilters();\n }\n\n private removeFiltersQueryParams() {\n const searchParams = new URLSearchParams(window.location.search);\n\n const newUrl = Array.from(searchParams.keys())\n .filter(key => !key.startsWith('filters['))\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(searchParams.get(key))}`)\n .join('&');\n\n const finalUrl = newUrl ? `${window.location.pathname}?${newUrl}` : window.location.pathname;\n window.history.pushState({}, '', finalUrl);\n }\n\n /**\n * @param {{target:HTMLInputElement}} event\n * @param option\n * @param value\n * @private\n */\n private handleOptionChange(event, option: Filter, value) {\n if (option.type === FilterOptionTypes.RANGE) {\n this.filtersData[option.key] = value;\n\n }\n let isChecked = event.target.checked;\n\n if (option.type === FilterOptionTypes.VARIANTS) {\n this.filtersData.variants = this.filtersData.variants || {};\n isChecked && (this.filtersData.variants[option.key] = value);\n isChecked || (delete this.filtersData.variants[option.key]);\n }\n\n else if (event.target.type == \"radio\") {\n isChecked && (this.filtersData[option.key] = value);\n isChecked || (delete this.filtersData[option.key]);\n }\n\n //it's checkbox\n // add if condition to avoid error when the filter is not existed in the filtersData\n else if (event.target.type == \"checkbox\") {\n this.filtersData[option.key] = this.filtersData[option.key] || [];\n if (isChecked) {\n this.filtersData[option.key].push(value);\n\n }\n this.filtersData[option.key] = this.filtersData[option.key].filter(val => val != value);\n }\n this.applyFilters();\n }\n\n\n\n render() {\n return <Host>\n {this.filters?.map(option => <salla-filters-widget\n option={option}\n filtersData={this.filtersData}\n onChanged={({ detail: { event, option, value } }) => {\n this.handleOptionChange(event, option, value)\n }} />)}\n\n {this.filters?.length ? <div class=\"s-filters-footer\">\n {/* <salla-button color='primary' onClick={() => this.applyFilters()}>{this.apply}</salla-button> */}\n <salla-button color='gray' fill='outline' onClick={() => this.resetFilters()}>{this.reset}</salla-button>\n </div> : ''}\n </Host>;\n }\n\n componentDidLoad() {\n this.isReady = true;\n }\n}\n\n"],"names":[],"mappings":"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"}
|