@salla.sa/twilight 2.14.402 → 2.14.404
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/@salla.sa/twilight.min.js +1 -1
- package/dist/@salla.sa/twilight.min.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/types/api/index.d.ts +1 -0
- package/types/api/loyalty.d.ts +10 -1
- package/types/event/loyalty.d.ts +5 -1
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/lib/init-static-sections.js"],"sourcesContent":["//todo:: remove all the usages of the document, we need it to be SSR friendly\nexport default class InitStaticSections {\n constructor() {\n Salla.event.on('twilight::before.ready', () => this.renderAll());\n }\n async renderAll() {\n // Register auto-mount first so hook listeners are attached before any await.\n // On first visit or after \"Clear site data\", component scripts may load before\n // lang/config settle; registering here ensures mount runs when the hook is ready.\n Salla.hooks.renderAutoComponents([\n { hook: 'product:single.description', tag: 'salla-delivery-promise', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'product:single.form.end', tag: 'salla-fulfillment-methods', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'body:end', tag: 'salla-cookies-bar', canRender: () => Salla.config.get('store.features')?.includes('website-cookies') },\n { hook: 'body:end', tag: 'salla-bullet-delivery', canRender: () => Salla.config.get('store.features')?.includes('bullet-delivery-v2') && Salla.config.get('store.settings.bullet_delivery.enabled') === true },\n ]);\n\n await Salla.lang.onLoaded();\n this.renderAppInstall();\n this.renderEdit();\n this.applyContentCopyright();\n this.renderTemplateStore();\n\n if (!Salla.helpers.isIframe()) {\n this.renderMaintenance();\n this.renderThemePreview();\n }\n }\n\n\n\n renderMaintenance() {\n if (!Salla.config.get('maintenance')) {\n return;\n }\n\n document.body.classList.add('has-maintenance-bar');\n if (document.querySelector('salla-maintenance-alert')) {\n Salla.logger.warn('salla-maintenance-alert element Existed before!');\n return;\n }\n\n document.body.prepend(document.createElement('salla-maintenance-alert'));\n }\n\n renderTemplateStore() {\n if (!Salla.config.get('store.template')) {\n return;\n }\n\n document.body.classList.add('has-bottom-alert');\n if (document.querySelector('salla-bottom-alert')) {\n Salla.logger.warn('salla-bottom-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-bottom-alert'));\n }\n\n renderAppInstall() {\n if (!Salla.config.get('store.app_install_prompt') || !Salla.config.get('store.apps') || Salla.storage.get('app_install_prompt_disabled') || Salla.config.isMobileApp()) {\n return;\n }\n\n document.body.classList.add('has-app-install-alert');\n if (document.querySelector('salla-app-install-alert')) {\n Salla.logger.warn('salla-app-install-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-app-install-alert'));\n }\n renderThemePreview() {\n if (Salla.config.get('theme.mode') !== 'preview') {\n return;\n }\n document.body.classList.add('has-preview-bar');\n if (document.querySelector('#s-theme_preview_bar')) {\n Salla.logger.warn('#s-theme_preview_bar element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-theme_preview_bar';\n alertElement.setAttribute('style', 'display: flex; justify-content: space-between; text-align: center; background-color: #232323; color: #fff; padding: 10px; font-size: 0.875rem; line-height: 1.25rem; position: relative;');\n alertElement.innerHTML = `\n <div style=\"display:flex; align-items:center;\">\n <img width=\"32\" src=\"https://cdn.salla.network/images/logo/logo-light.svg\">\n <span style=\"margin:0 10px;\">${Salla.lang.get('blocks.header.preview_mode')}: <span style=\"background:rgba(255,255,255,0.25);border-radius:15px; padding:2px 15px 4px\">${Salla.config.get('theme.name')}</span></span>\n </div>\n <a href=\"${Salla.url.get('preview_theme/cancel/preview')}\" style=\"line-height:32px; width:32px;\"><i class=\"sicon-cancel\"></i></a>\n `;\n document.body.prepend(alertElement);\n }\n\n /**\n * @deprecated\n */\n renderEdit() {\n let edit = Salla.config.get('edit');\n if (!edit) {\n return;\n }\n if (document.querySelector('#s-edit-alert')) {\n Salla.logger.warn('#s-edit-alert element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-edit-alert';\n alertElement.innerHTML = `\n <a href=\"${edit}\" style=\"display:block; background-color:${Salla.config.get('theme.color.primary', '#5cd5c4')}; color:${Salla.config.get('theme.color.reverse', '#fff')}; padding: 10px; text-align:center; font-size: 0.875rem; line-height: 1.25rem;\">\n <i class=\"sicon-edit\"></i> \n ${Salla.lang.get('pages.products.quick_edit')}\n </a>\n `;\n document.body.prepend(alertElement);\n }\n\n applyContentCopyright() {\n if (!Salla.config.get('store.settings.content_copyright')) {\n return;\n }\n\n // Helper to check if element is an input\n const isInputElement = (element) => {\n if (!element) return false;\n const tagName = element.tagName?.toLowerCase();\n return tagName === 'input' || tagName === 'textarea';\n };\n\n // Common event prevention (excluding inputs)\n const preventEvents = ['contextmenu', 'selectstart', 'copy'];\n preventEvents.forEach((event) => {\n document.addEventListener(event, (e) => {\n if (!isInputElement(e.target)) {\n e.preventDefault();\n }\n });\n });\n\n // Prevent common dev tools shortcuts\n document.addEventListener('keydown', (e) => {\n const key = e.key.toLowerCase();\n const blockedCombos = (\n key === 'f12' ||\n (e.ctrlKey && e.shiftKey && ['i', 'j', 'c'].includes(key)) ||\n (e.ctrlKey && key === 'u')\n );\n if (blockedCombos) {\n e.preventDefault();\n e.stopPropagation();\n }\n });\n\n // Inject protection styles (excluding inputs)\n const style = document.createElement('style');\n style.textContent = `\n body {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n input, textarea {\n -webkit-touch-callout: auto;\n -webkit-user-select: auto;\n -moz-user-select: auto;\n -ms-user-select: auto;\n user-select: auto;\n }\n img {\n pointer-events: none;\n -webkit-user-drag: none;\n }\n `;\n document.head.appendChild(style);\n }\n}"],"names":["InitStaticSections","constructor","Salla","event","on","this","renderAll","hooks","renderAutoComponents","hook","tag","canRender","url","is_page","config","get","includes","_Salla$config$get","_Salla$config$get2","lang","onLoaded","renderAppInstall","renderEdit","applyContentCopyright","renderTemplateStore","helpers","isIframe","renderMaintenance","renderThemePreview","document","body","classList","add","querySelector","logger","warn","prepend","createElement","append","storage","isMobileApp","alertElement","id","setAttribute","innerHTML","edit","forEach","addEventListener","e","element","_element$tagName","tagName","toLowerCase","isInputElement","target","preventDefault","key","ctrlKey","shiftKey","stopPropagation","style","textContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/lib/init-static-sections.js"],"sourcesContent":["//todo:: remove all the usages of the document, we need it to be SSR friendly\nexport default class InitStaticSections {\n constructor() {\n Salla.event.on('twilight::before.ready', () => this.renderAll());\n }\n async renderAll() {\n // Register auto-mount first so hook listeners are attached before any await.\n // On first visit or after \"Clear site data\", component scripts may load before\n // lang/config settle; registering here ensures mount runs when the hook is ready.\n Salla.hooks.renderAutoComponents([\n { hook: 'product:single.description', tag: 'salla-delivery-promise', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'product:single.description', tag: 'salla-loyalty-banner', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('loyalty-system'))},\n { hook: 'product:single.form.end', tag: 'salla-fulfillment-methods', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'body:end', tag: 'salla-cookies-bar', canRender: () => Salla.config.get('store.features')?.includes('website-cookies') },\n { hook: 'body:end', tag: 'salla-bullet-delivery', canRender: () => Salla.config.get('store.features')?.includes('bullet-delivery-v2') && Salla.config.get('store.settings.bullet_delivery.enabled') === true },\n ]);\n\n await Salla.lang.onLoaded();\n this.renderAppInstall();\n this.renderEdit();\n this.applyContentCopyright();\n this.renderTemplateStore();\n\n if (!Salla.helpers.isIframe()) {\n this.renderMaintenance();\n this.renderThemePreview();\n }\n }\n\n\n\n renderMaintenance() {\n if (!Salla.config.get('maintenance')) {\n return;\n }\n\n document.body.classList.add('has-maintenance-bar');\n if (document.querySelector('salla-maintenance-alert')) {\n Salla.logger.warn('salla-maintenance-alert element Existed before!');\n return;\n }\n\n document.body.prepend(document.createElement('salla-maintenance-alert'));\n }\n\n renderTemplateStore() {\n if (!Salla.config.get('store.template')) {\n return;\n }\n\n document.body.classList.add('has-bottom-alert');\n if (document.querySelector('salla-bottom-alert')) {\n Salla.logger.warn('salla-bottom-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-bottom-alert'));\n }\n\n renderAppInstall() {\n if (!Salla.config.get('store.app_install_prompt') || !Salla.config.get('store.apps') || Salla.storage.get('app_install_prompt_disabled') || Salla.config.isMobileApp()) {\n return;\n }\n\n document.body.classList.add('has-app-install-alert');\n if (document.querySelector('salla-app-install-alert')) {\n Salla.logger.warn('salla-app-install-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-app-install-alert'));\n }\n renderThemePreview() {\n if (Salla.config.get('theme.mode') !== 'preview') {\n return;\n }\n document.body.classList.add('has-preview-bar');\n if (document.querySelector('#s-theme_preview_bar')) {\n Salla.logger.warn('#s-theme_preview_bar element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-theme_preview_bar';\n alertElement.setAttribute('style', 'display: flex; justify-content: space-between; text-align: center; background-color: #232323; color: #fff; padding: 10px; font-size: 0.875rem; line-height: 1.25rem; position: relative;');\n alertElement.innerHTML = `\n <div style=\"display:flex; align-items:center;\">\n <img width=\"32\" src=\"https://cdn.salla.network/images/logo/logo-light.svg\">\n <span style=\"margin:0 10px;\">${Salla.lang.get('blocks.header.preview_mode')}: <span style=\"background:rgba(255,255,255,0.25);border-radius:15px; padding:2px 15px 4px\">${Salla.config.get('theme.name')}</span></span>\n </div>\n <a href=\"${Salla.url.get('preview_theme/cancel/preview')}\" style=\"line-height:32px; width:32px;\"><i class=\"sicon-cancel\"></i></a>\n `;\n document.body.prepend(alertElement);\n }\n\n /**\n * @deprecated\n */\n renderEdit() {\n let edit = Salla.config.get('edit');\n if (!edit) {\n return;\n }\n if (document.querySelector('#s-edit-alert')) {\n Salla.logger.warn('#s-edit-alert element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-edit-alert';\n alertElement.innerHTML = `\n <a href=\"${edit}\" style=\"display:block; background-color:${Salla.config.get('theme.color.primary', '#5cd5c4')}; color:${Salla.config.get('theme.color.reverse', '#fff')}; padding: 10px; text-align:center; font-size: 0.875rem; line-height: 1.25rem;\">\n <i class=\"sicon-edit\"></i> \n ${Salla.lang.get('pages.products.quick_edit')}\n </a>\n `;\n document.body.prepend(alertElement);\n }\n\n applyContentCopyright() {\n if (!Salla.config.get('store.settings.content_copyright')) {\n return;\n }\n\n // Helper to check if element is an input\n const isInputElement = (element) => {\n if (!element) return false;\n const tagName = element.tagName?.toLowerCase();\n return tagName === 'input' || tagName === 'textarea';\n };\n\n // Common event prevention (excluding inputs)\n const preventEvents = ['contextmenu', 'selectstart', 'copy'];\n preventEvents.forEach((event) => {\n document.addEventListener(event, (e) => {\n if (!isInputElement(e.target)) {\n e.preventDefault();\n }\n });\n });\n\n // Prevent common dev tools shortcuts\n document.addEventListener('keydown', (e) => {\n const key = e.key.toLowerCase();\n const blockedCombos = (\n key === 'f12' ||\n (e.ctrlKey && e.shiftKey && ['i', 'j', 'c'].includes(key)) ||\n (e.ctrlKey && key === 'u')\n );\n if (blockedCombos) {\n e.preventDefault();\n e.stopPropagation();\n }\n });\n\n // Inject protection styles (excluding inputs)\n const style = document.createElement('style');\n style.textContent = `\n body {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n input, textarea {\n -webkit-touch-callout: auto;\n -webkit-user-select: auto;\n -moz-user-select: auto;\n -ms-user-select: auto;\n user-select: auto;\n }\n img {\n pointer-events: none;\n -webkit-user-drag: none;\n }\n `;\n document.head.appendChild(style);\n }\n}"],"names":["InitStaticSections","constructor","Salla","event","on","this","renderAll","hooks","renderAutoComponents","hook","tag","canRender","url","is_page","config","get","includes","_Salla$config$get","_Salla$config$get2","lang","onLoaded","renderAppInstall","renderEdit","applyContentCopyright","renderTemplateStore","helpers","isIframe","renderMaintenance","renderThemePreview","document","body","classList","add","querySelector","logger","warn","prepend","createElement","append","storage","isMobileApp","alertElement","id","setAttribute","innerHTML","edit","forEach","addEventListener","e","element","_element$tagName","tagName","toLowerCase","isInputElement","target","preventDefault","key","ctrlKey","shiftKey","stopPropagation","style","textContent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salla.sa/twilight",
|
|
3
|
-
"version": "2.14.
|
|
3
|
+
"version": "2.14.404",
|
|
4
4
|
"description": "Salla Theme Toolkit, Webcomponents, Events, Requests, Utils",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"homepage": "https://salla.dev",
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@jitsu/js": "^1.10.0",
|
|
37
|
-
"@salla.sa/base": "2.14.
|
|
37
|
+
"@salla.sa/base": "2.14.404",
|
|
38
38
|
"axios": "^1.6.7",
|
|
39
39
|
"infinite-scroll": "^4.0.1",
|
|
40
40
|
"jwt-decode": "^4.0.0",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"peerDependencies": {
|
|
71
71
|
"webpack": "^4 || ^5"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "17357c81ec6fdec7107fd1d97e0e6d2459afc393"
|
|
74
74
|
}
|
package/types/api/index.d.ts
CHANGED
package/types/api/loyalty.d.ts
CHANGED
|
@@ -212,6 +212,10 @@ export interface PrizeObject {
|
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
|
|
215
|
+
export interface UserLoyaltyPoint {
|
|
216
|
+
points: number | null
|
|
217
|
+
}
|
|
218
|
+
|
|
215
219
|
export namespace LoyaltyApiResponse {
|
|
216
220
|
|
|
217
221
|
export interface program extends SuccessResponse {
|
|
@@ -222,11 +226,16 @@ export namespace LoyaltyApiResponse {
|
|
|
222
226
|
export interface point extends SuccessResponse {
|
|
223
227
|
data: ExchangePoint
|
|
224
228
|
}
|
|
229
|
+
|
|
230
|
+
export interface userPoints extends SuccessResponse {
|
|
231
|
+
data: UserLoyaltyPoint
|
|
232
|
+
}
|
|
225
233
|
}
|
|
226
234
|
|
|
227
235
|
|
|
228
236
|
export default interface LoyaltyApi {
|
|
229
237
|
getProgram: () => Promise<LoyaltyApiResponse.program>
|
|
230
|
-
exchange: (prize_id: number | PrizeObject, cart_id?: number) => Promise<LoyaltyApiResponse.point>
|
|
238
|
+
exchange: (prize_id: number | PrizeObject, cart_id?: number, selected_product_id?: number | null) => Promise<LoyaltyApiResponse.point>
|
|
231
239
|
reset: (cart_id?: number) => Promise<SuccessResponse>
|
|
240
|
+
getPoints: () => Promise<LoyaltyApiResponse.userPoints>
|
|
232
241
|
}
|
package/types/event/loyalty.d.ts
CHANGED
|
@@ -10,5 +10,9 @@ export default interface LoyaltyEvent {
|
|
|
10
10
|
onExchangeFailed: RequestErrorEvent;
|
|
11
11
|
// Reset Exchange
|
|
12
12
|
onResetSucceeded: (callback: (response: SuccessResponse) => void) => void;
|
|
13
|
-
onResetFailed: RequestErrorEvent
|
|
13
|
+
onResetFailed: RequestErrorEvent;
|
|
14
|
+
|
|
15
|
+
// User Loyalty Points
|
|
16
|
+
onLoyaltyPointsFetched: (callback: (response: LoyaltyApiResponse.userPoints) => void) => void;
|
|
17
|
+
onLoyaltyPointsNotFetched: RequestErrorEvent;
|
|
14
18
|
}
|