@kompasid/lit-web-components 0.9.50 → 0.9.51
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/src/components/kompasid-paywall-body/KompasPaywallBody.js +5 -5
- package/dist/src/components/kompasid-paywall-body/KompasPaywallBody.js.map +1 -1
- package/dist/src/components/kompasid-paywall-modal-register/KompasPaywallModalRegister.js +12 -15
- package/dist/src/components/kompasid-paywall-modal-register/KompasPaywallModalRegister.js.map +1 -1
- package/dist/src/components/kompasid-widget-recirculations-default/KompasWidgetRecirculationsDefault.js +2 -2
- package/dist/src/components/kompasid-widget-recirculations-default/KompasWidgetRecirculationsDefault.js.map +1 -1
- package/dist/tailwind/tailwind.js +25 -9
- package/dist/tailwind/tailwind.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/kompasid-paywall-body/KompasPaywallBody.ts +5 -5
- package/src/components/kompasid-paywall-modal-register/KompasPaywallModalRegister.ts +12 -15
- package/src/components/kompasid-widget-recirculations-default/KompasWidgetRecirculationsDefault.ts +2 -2
- package/tailwind/tailwind.css +25 -9
- package/tailwind/tailwind.ts +25 -9
|
@@ -539,7 +539,7 @@ let KompasIdPaywallBody = class KompasIdPaywallBody extends LitElement {
|
|
|
539
539
|
else {
|
|
540
540
|
buttonContent = nothing;
|
|
541
541
|
}
|
|
542
|
-
const headerClass = `text-
|
|
542
|
+
const headerClass = `text-lg flex justify-center self-center md:block md:text-xl ${buttonTextColorClass} text-center font-lora font-bold tracking-normal max-w-xs sm:max-w-lg md:w-full md:max-w-[492px]`;
|
|
543
543
|
return html `
|
|
544
544
|
<div class="flex w-full items-start justify-center relative md:px-10">
|
|
545
545
|
${buttonContent}
|
|
@@ -583,7 +583,7 @@ let KompasIdPaywallBody = class KompasIdPaywallBody extends LitElement {
|
|
|
583
583
|
${unsafeSVG(getFontAwesomeIcon('fas', 'check', 16, 16))}
|
|
584
584
|
</div>
|
|
585
585
|
<h6
|
|
586
|
-
class="text-sm md:text-base ml-
|
|
586
|
+
class="text-sm md:text-base ml-2 ${buttonTextColorClass}"
|
|
587
587
|
>
|
|
588
588
|
${item}
|
|
589
589
|
</h6>
|
|
@@ -698,7 +698,7 @@ let KompasIdPaywallBody = class KompasIdPaywallBody extends LitElement {
|
|
|
698
698
|
}
|
|
699
699
|
renderPackage(product, isHighlight, isButtonSolid) {
|
|
700
700
|
const { isDark } = this;
|
|
701
|
-
const containerClass = `
|
|
701
|
+
const containerClass = `p-4 gap-2 flex flex-wrap items-center justify-between rounded-lg md:mx-0 w-full max-w-xs md:max-w-sm md:w-3/5 min-h-[68px]
|
|
702
702
|
${isDark ? ' bg-grey-600' : ' bg-white'}
|
|
703
703
|
${isHighlight ? 'outline-yellow-400 outline-2 outline mt-2' : ''} relative`;
|
|
704
704
|
const textColorClass = isDark ? 'text-dark-7' : 'text-grey-600';
|
|
@@ -724,7 +724,7 @@ let KompasIdPaywallBody = class KompasIdPaywallBody extends LitElement {
|
|
|
724
724
|
else {
|
|
725
725
|
buttonTextColor = 'text-green-500';
|
|
726
726
|
}
|
|
727
|
-
const buttonTextClass = `text-
|
|
727
|
+
const buttonTextClass = `text-sm font-bold py-2 px-4 ${buttonTextColor}`;
|
|
728
728
|
return html `
|
|
729
729
|
<div class="${containerClass}">
|
|
730
730
|
<div class="flex flex-col gap-1">
|
|
@@ -864,7 +864,7 @@ let KompasIdPaywallBody = class KompasIdPaywallBody extends LitElement {
|
|
|
864
864
|
@click=${this.customerServiceClicked}
|
|
865
865
|
class="font-bold underline"
|
|
866
866
|
>
|
|
867
|
-
Layanan Pelanggan
|
|
867
|
+
Layanan Pelanggan
|
|
868
868
|
</button>
|
|
869
869
|
</div>
|
|
870
870
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KompasPaywallBody.js","sourceRoot":"","sources":["../../../../src/components/kompasid-paywall-body/KompasPaywallBody.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-return-assign */\n\nimport { html, css, LitElement, nothing } from 'lit'\nimport { property, state, customElement } from 'lit/decorators.js'\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\nimport {\n PaywallProduct,\n Product,\n Packages,\n PaymentImage,\n PaywallType,\n} from '../kompasid-paywall/types.js'\nimport { getFontAwesomeIcon } from '../../utils/fontawesome-setup.js'\nimport { deviceType } from '../../utils/deviceType.js'\nimport { formatRupiah } from '../../utils/formatRupiah.js'\nimport { addGoogleFonts } from '../../utils/googleFont.js'\nimport { redirectToLogin } from '../../utils/cta.js'\nimport { customFetch } from '../../utils/customFetch.js'\nimport { getCookie } from '../../utils/getCookies.js'\nimport { getLoginGuest } from '../../utils/api/getLoginGuest.js'\nimport '../kompasid-paywall-modal-register/KompasPaywallModalRegister.js'\n\n@customElement('kompasid-paywall-body')\nexport class KompasIdPaywallBody extends LitElement {\n static styles = [\n css`\n .wrapper-body {\n display: flex;\n flex-direction: column;\n justify-items: center;\n align-items: center;\n }\n\n .z-index-max {\n z-index: 999999;\n }\n\n .font-lora {\n font-family: 'Lora', 'Georgia', 'serif';\n }\n `,\n TWStyles,\n ]\n\n /**\n * Props\n */\n /**\n * prop slug untuk menghandle slug\n * prop isLogin untuk menghandle apakah user sudah login atau belum\n * prop type untuk menghandle tipe epaper\n * prop paywallData untuk menghandle data paywall\n * prop userGuid untuk menghandle user Guid\n * prop subscriptionStatus untuk menghandle status subscription user\n * prop countdownArticle untuk menghandle count artikel\n * prop swgEnable untuk menghandle swg apakah di aktifkan atau tidak\n * prop paywall_location = The location where user encounter the paywall\n * prop paywall_subscription_package = The name of the subscription package viewed by user\n * prop paywall_subscription_id = The ID of the subscription package viewed by user\n * prop paywall_subscription_price = The price of the subscriprtion package viewed by user\n * prop paywall_position = The position of the subscription package viewed by user\n * prop tracker_page_type = Type of the page\n * prop tracker_content_id = ID of article (slug)\n * prop tracker_content_type = Whether it's free article or paid article\n * prop tracker_content_title = The title of article\n * prop tracker_content_categories = The category of the content\n * prop tracker_user_type = Type of user based on their subscription\n * prop tracker_subscription_status = Status of their subscription\n * prop tracker_page_domain = Page Domain\n * prop tracker_metered_wall_type = The type of Metered Wall\n * prop tracker_metered_wall_balance = The balance of their metered wall\n * prop tracker_metered_wall_balance = The edition of epaper viewed by user\n * prop theme = The theme of the paywall component\n */\n\n @property({ type: String }) slug = ''\n @property({ type: Boolean }) isLogin = false\n @property({ type: String }) type: PaywallType = 'reguler'\n @property({ type: Object }) paywallData: PaywallProduct | undefined =\n undefined\n @property({ type: String }) userGuid = ''\n @property({ type: String }) subscriptionStatus = ''\n @property({ type: Number }) countdownArticle = 0\n @property({ type: Boolean }) swgEnable = false\n @property({ type: String }) paywall_location = ''\n @property({ type: String }) paywall_subscription_package = ''\n @property({ type: Number }) paywall_subscription_id = 0\n @property({ type: Number }) paywall_subscription_price = 0\n @property({ type: Number }) paywall_position = 0\n @property({ type: String }) tracker_page_type = ''\n @property({ type: String }) tracker_content_id = ''\n @property({ type: String }) tracker_content_title = ''\n @property({ type: String }) tracker_content_categories = ''\n @property({ type: String }) tracker_content_type = ''\n @property({ type: String }) tracker_content_tags = ''\n @property({ type: String }) tracker_content_published_date = ''\n @property({ type: String }) tracker_content_variant = ''\n @property({ type: String }) tracker_user_type = ''\n @property({ type: String }) tracker_subscription_status = ''\n @property({ type: String }) tracker_page_domain = ''\n @property({ type: String }) tracker_metered_wall_type = ''\n @property({ type: Number }) tracker_metered_wall_balance = 0\n @property({ type: String }) tracker_epaper_edition = ''\n @property({ type: String }) tracker_content_publisher = ''\n @property({ type: String }) theme = ''\n @property() togglePaywall = () => {}\n\n /**\n * State\n */\n\n @state() private isExtensionsOpened = false\n @state() private kompasAkunHost = 'https://akun.kompas.id'\n @state() private kompasApigenHost = 'https://apigen.kompas.id'\n @state() private kompasApiWcmHost = 'https://apiwcm.kompas.id'\n @state() private kompasLoginHost = 'https://account.kompas.id/login'\n @state() private kompasApiSubsHost = 'https://apisubs.kompas.id'\n @state() private epaperHost = 'https://epaper.kompas.id'\n @state() private swgPublisherName = 'Harian Kompas'\n @state() private swgPublisherId = 'kompas.id'\n @state() private swgProductId = 'kompas.id:kompas_digital_premium'\n @state() private errorFlag = 0\n @state() private accessToken = ''\n @state() private refreshToken = ''\n @state() private domain = 'id'\n\n _packages!: Packages\n buttonElement!: HTMLButtonElement\n targetElement!: HTMLElement\n\n /**\n * Getter\n */\n\n get loginUrl() {\n return `${this.kompasLoginHost}?next=${encodeURIComponent(\n this.epaperHost + window.location.pathname\n )}&loc=hard_paywall`\n }\n\n get isDark() {\n return this.theme === 'dark'\n }\n\n get isEntitledForIntroductoryPrice(): boolean {\n return !this.isLogin || this.tracker_subscription_status === 'IA'\n }\n\n get packages(): Packages {\n return this._packages\n }\n\n /**\n * Logic Function\n */\n\n private redirectToCheckout(\n url: string,\n name: string,\n id: string,\n price: number,\n position: number\n ): void {\n this.sendDataLayeronButtonBuyPackage(name, id, price, position)\n const originHost: string = encodeURIComponent(window.location.href)\n let source: string\n\n switch (this.type) {\n case 'epaper':\n case 'proMiningOutlook':\n source = 'epaper'\n break\n case 'audio':\n source = 'news_audio'\n break\n case 'proMiningArticle':\n default:\n source = 'article'\n }\n\n const directUrlCheckout: string = `${url}${originHost}&source=${source}`\n window.open(directUrlCheckout)\n }\n\n private redirectToPrevUrl(): void {\n window.history.back()\n }\n\n private redirectToSubscriber(): void {\n this.sendDataLayer()\n const getCtaUrl = this.paywallData?.informations?.cta\n ? this.paywallData?.informations?.cta.url\n : ''\n // TODO: Hendy\n // Bisa jadi ini nanti open from nya beda, untuk sekarang biarkan dulu, note 25 08 2025 (tolong tanya ke PM bersangkutan)\n const openFrom = `${this.type === 'epaper' ? 'ePaper' : 'Hard'}_Paywall`\n window.open(`${getCtaUrl}?open_from=${openFrom}`)\n }\n\n private redirectToHelpdesk(): void {\n this.sendDataLayeronHelpDesk()\n window.open(\n 'https://api.whatsapp.com/send/?phone=6281290050800&text=Halo,%20saya%20perlu%20informasi%20mengenai%20kompas.id'\n )\n }\n\n private handleClickOutside() {\n if (this.targetElement?.classList.contains('wrapper-body')) {\n this.togglePaywall()\n }\n\n if (this.targetElement?.id === 'freeTrialPopup') {\n this.closeFreeTrialPopup()\n }\n }\n\n private parsePrice(price: string): number {\n const lowerCasePrice = price.toLowerCase()\n\n if (lowerCasePrice.startsWith('rp')) {\n return parseFloat(price.replace(/[^0-9,]/g, ''))\n }\n\n return parseFloat(price.replace(/[^0-9.]/g, ''))\n }\n\n private async getRegisterToken(path: string, payload: any): Promise<string> {\n return fetch(`${this.kompasApigenHost}/v1/user/register/token/${path}`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'content-type': 'application/json',\n },\n })\n .then(response => response.json())\n .then((data: any) => data.result.token)\n .catch(error => {\n throw error\n })\n }\n\n private async getUserToken(path: string, payload: any): Promise<string> {\n return fetch(`${this.kompasApigenHost}/v1/user/token/${path}`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'content-type': 'application/json',\n },\n })\n .then(response => response.json())\n .then((data: any) => data.result.token)\n .catch(error => {\n throw error\n })\n }\n\n private async getSubscriptionToken(\n path: string,\n payload: any\n ): Promise<string> {\n return fetch(`${this.kompasAkunHost}/api/subscription/login/${path}`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'content-type': 'application/json',\n },\n })\n .then(response => response.json())\n .then((data: any) => {\n this.errorFlag = 0\n return data.access_token\n })\n .catch(async error => {\n const errorCode = error.response.status\n if (errorCode === 500 && this.errorFlag < 5) {\n // eslint-disable-next-line no-plusplus\n this.errorFlag++\n setTimeout(async () => {\n await this.getSubscriptionToken(path, payload)\n }, 2000)\n } else {\n this.errorFlag = 0\n throw error\n }\n })\n }\n\n private async createSwG(payload: any) {\n const headersData: any = {\n 'content-type': 'application/json',\n Authorization: `Bearer ${this.accessToken}`,\n }\n\n const options = {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: headersData,\n }\n\n await customFetch(\n `${this.kompasApiSubsHost}/membership/swg`,\n this.refreshToken,\n this.accessToken,\n this.domain,\n { ...options }\n )\n .then(response => response.json())\n .catch(error => {\n throw error\n })\n }\n\n private subscribeWithGoogleButton(): any {\n // @ts-ignore\n // eslint-disable-next-line no-restricted-globals\n ;(self.SWG = self.SWG || []).push((subscriptions: any) => {\n // set entitlement\n subscriptions.setOnEntitlementsResponse(() => {\n // subscriptions attach button\n subscriptions.attachButton(\n this.buttonElement,\n { theme: 'light', lang: 'en' },\n async () => {\n subscriptions.showOffers({ isClosable: true })\n subscriptions.setOnLoginRequest(() => {\n window.location.href = this.loginUrl\n })\n const offers = await subscriptions.getOffers()\n subscriptions.setOnFlowStarted((callback: any) => {\n if (callback.flow === 'showOffers') {\n window.dataLayer.push(this.swgPackageViewedDataLayer(offers))\n } else if (callback.flow === 'subscribe') {\n const selectedOfferSkuId = callback.data.skuId\n const selectedOffer = offers.find(\n (offer: any) => offer.skuId === selectedOfferSkuId\n )\n window.dataLayer.push(\n this.swgSubscribeButtonClicked(\n selectedOffer,\n offers.indexOf(selectedOffer)\n )\n )\n }\n })\n subscriptions.setOnPaymentResponse(async (paymentResponse: any) => {\n const response = await paymentResponse\n const raw = JSON.parse(response.purchaseData.raw)\n const { productId, purchaseToken, packageName } = raw\n const { email } = response.userData.data\n const swgMembershipChannelId = 2\n const payload = {\n email,\n purchase_token: purchaseToken,\n product_id: productId,\n package_name: packageName,\n membershipChannelId: swgMembershipChannelId,\n }\n\n await this.createSwG(payload)\n response.complete().then(() => {\n window.location.href = this.loginUrl\n })\n })\n }\n )\n })\n })\n }\n\n private jsonScript() {\n const jsonData = {\n '@context': 'https://schema.org',\n '@type': ['WebSite', 'WebPage'],\n isAccessibleForFree: false,\n url: this.epaperHost + window.location.pathname,\n name: this.swgPublisherName,\n hasPart: {\n '@type': 'WebPageElement',\n },\n isPartOf: {\n '@type': ['CreativeWork', 'Product'],\n name: this.swgPublisherId,\n productID: this.swgProductId,\n },\n }\n const str = JSON.stringify(jsonData)\n const jsonScript = document.createElement('script')\n jsonScript.type = 'application/ld+json'\n jsonScript.text = str\n jsonScript.defer = true\n const jsonHead = document.querySelector('head')\n if (jsonHead) {\n jsonHead.appendChild(jsonScript)\n }\n }\n\n constructor() {\n super()\n this.handleClickOutside = this.handleClickOutside.bind(this)\n }\n\n protected createRenderRoot() {\n const root = super.createRenderRoot()\n root.addEventListener(\n 'click',\n (e: Event) => (this.targetElement = e.target as HTMLElement)\n )\n return root\n }\n\n override async connectedCallback() {\n this._packages = this.paywallData?.packages ?? ({} as Packages)\n\n super.connectedCallback()\n this.sendDataLayeronPaywallBody()\n await this.updateComplete\n this.accessToken = getCookie('kompas._token')\n this.refreshToken = getCookie('kompas._token_refresh')\n\n await getLoginGuest().then(data => {\n this.accessToken = this.accessToken || data.accessToken\n this.refreshToken = this.refreshToken || data.refreshToken\n })\n\n if (this.packages.swgEnable) {\n this.jsonScript()\n const appendSWGButton = () => {\n this.buttonElement = this.shadowRoot?.getElementById(\n 'subscribe-with-google'\n ) as HTMLButtonElement\n if (this.buttonElement) {\n const head = document.querySelector('head')\n const script = document.createElement('script')\n script.src = 'https://news.google.com/swg/js/v1/swg.js'\n script.defer = true\n script.onload = this.subscribeWithGoogleButton()\n\n if (head) {\n head.appendChild(script)\n }\n }\n }\n setTimeout(appendSWGButton, 500)\n }\n addGoogleFonts(['pt-sans', 'lora'])\n document.addEventListener('click', this.handleClickOutside)\n }\n\n override async disconnectedCallback() {\n super.disconnectedCallback()\n document.removeEventListener('click', this.handleClickOutside)\n }\n\n private otherPackagesClicked() {\n this.sendDataLayerOtherPackagesClicked()\n this.redirectToSubscriber()\n }\n\n private customerServiceClicked() {\n this.sendDataLayerCustomerServiceClicked()\n this.redirectToHelpdesk()\n }\n\n /**\n * Data Layer\n */\n\n private buildGtmParams(\n event: string,\n impressions: Record<string, any>[],\n index: number = 0\n ) {\n const gtmParams: Record<string, any> = {\n event,\n impressions: impressions.map((impression, i) => ({\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: impression.package,\n paywall_subscription_id: impression.subscription_id,\n paywall_subscription_price: this.parsePrice(impression.price),\n paywall_position: index + i + 1,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'HP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n content_tags: this.tracker_content_tags || '',\n content_published_date: this.tracker_content_published_date || '',\n content_variant: this.tracker_content_variant || '',\n variant: this.paywallData?.informations?.typeVariant || '',\n ...(this.type === 'epaper' || this.type === 'proMiningOutlook'\n ? { epaper_edition: this.tracker_epaper_edition }\n : {\n page_type: this.tracker_page_type,\n content_id: this.tracker_content_id,\n content_title: this.tracker_content_title,\n content_categories: this.tracker_content_categories,\n content_type: this.tracker_content_type,\n content_publisher: this.tracker_content_publisher,\n }),\n })),\n }\n\n return gtmParams\n }\n\n private generalPaywallDataLayer(event: string): Record<string, any> {\n const packages = this.paywallData?.packages ?? ({} as Packages)\n\n const impressions = packages.memberships.map(membership => ({\n package: membership.package,\n subscription_id: membership.subscriptionId,\n price: membership.price.toString(),\n }))\n\n return this.buildGtmParams(event, impressions)\n }\n\n private sendDataLayer(): void {\n window.dataLayer.push({\n event: 'halamanBerlanggananClick',\n subscriptionStatus: '',\n GUID: '',\n interface: deviceType(),\n })\n }\n\n private sendDataLayeronHelpDesk(): void {\n window.dataLayer.push({\n event: 'helpOfferClick',\n userType: this.subscriptionStatus,\n GUID: this.userGuid,\n interface: deviceType(),\n })\n }\n\n private sendDataLayeronButtonBuyPackage(\n name: string,\n id: string,\n price: number,\n position: number\n ): void {\n const gtmParams: Record<string, any> = {\n event: 'subscribe_button_clicked',\n paywall_location: this.paywall_location,\n paywall_subscription_package: name,\n paywall_subscription_id: id,\n paywall_subscription_price: price,\n paywall_position: position,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'HP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n content_tags: this.tracker_content_tags || '',\n content_published_date: this.tracker_content_published_date || '',\n content_variant: this.tracker_content_variant || '',\n variant: this.paywallData?.informations?.typeVariant || '',\n }\n\n if (this.type !== 'epaper') {\n gtmParams.content_title = this.tracker_content_title\n gtmParams.content_id = this.tracker_content_id\n gtmParams.content_categories = this.tracker_content_categories\n gtmParams.content_type = this.tracker_content_type\n gtmParams.content_publisher = this.tracker_content_publisher\n gtmParams.page_type = this.tracker_page_type\n } else {\n gtmParams.epaper_edition = this.tracker_epaper_edition\n }\n\n window.dataLayer.push(gtmParams)\n }\n\n private sendDataLayeronPaywallBody(): void {\n const gtmParams = this.generalPaywallDataLayer('paywall_viewed')\n window.dataLayer.push(gtmParams)\n }\n\n private sendDataLayerOtherPackagesClicked(): void {\n const gtmParams = this.generalPaywallDataLayer('other_packages_clicked')\n window.dataLayer.push(gtmParams)\n }\n\n private sendDataLayerCustomerServiceClicked(): void {\n const gtmParams = this.generalPaywallDataLayer('customer_service_clicked')\n window.dataLayer.push(gtmParams)\n }\n\n private swgPackageViewedDataLayer(data: any): Record<string, any> {\n const impressions = data.map(\n (item: {\n title: string\n skuId: string\n price: string\n introductoryPrice: string\n }) => ({\n package: item.title,\n subscription_id: item.skuId,\n price: item.introductoryPrice || item.price,\n })\n )\n\n return this.buildGtmParams('subscription_package_viewed', impressions)\n }\n\n private swgSubscribeButtonClicked(item: any, index: number) {\n const gtmParams: any = {\n event: 'subscribe_button_clicked',\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: item.title,\n paywall_subscription_id: item.skuId,\n paywall_subscription_price: this.parsePrice(\n item.introductoryPrice || item.price\n ),\n paywall_position: index + 1,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'HP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n }\n\n if (this.type === 'epaper') {\n gtmParams.epaper_edition = this.tracker_epaper_edition\n } else {\n gtmParams.page_type = this.tracker_page_type\n gtmParams.content_id = this.tracker_content_id\n gtmParams.content_title = this.tracker_content_title\n gtmParams.content_categories = this.tracker_content_categories\n gtmParams.content_type = this.tracker_content_type\n }\n\n return gtmParams\n }\n\n /**\n * Component\n */\n\n private headerSection(type: PaywallType, title: string) {\n let buttonContent\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorDefault = isPro ? 'text-grey-600' : 'text-blue-600'\n const textColorClass = this.isDark ? 'text-blue-300' : textColorDefault\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n const isPrevHistoryExist = window.history.length > 1\n\n if (type === 'epaper' && isPrevHistoryExist) {\n buttonContent = html` <button\n @click=${this.redirectToPrevUrl}\n class=\"absolute left-2.5 -top-1.5 hidden md:flex w-10 h-10 justify-center items-center ${textColorClass}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'arrow-left', 20, 20))}\n </button>`\n } else if (type === 'proMiningOutlook' && isPrevHistoryExist) {\n buttonContent = html` <button\n @click=${this.redirectToPrevUrl}\n class=\"absolute left-2.5 -top-1.5 hidden md:flex w-10 h-10 justify-center items-center ${textColorClass}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'arrow-left', 20, 20))}\n </button>`\n } else if (type === 'audio') {\n buttonContent = html` <button\n @click=${this.togglePaywall}\n class=\"absolute left-2.5 -top-1.5 hidden md:flex w-10 h-10 justify-center items-center ${textColorClass}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'xmark', 28, 28))}\n </button>`\n } else {\n buttonContent = nothing\n }\n\n const headerClass = `text-base flex justify-center self-center md:block md:text-xl ${buttonTextColorClass} text-center font-lora font-bold tracking-normal max-w-xs sm:max-w-lg md:w-full md:max-w-[492px]`\n\n return html`\n <div class=\"flex w-full items-start justify-center relative md:px-10\">\n ${buttonContent}\n <h4 class=${headerClass}>${title}</h4>\n </div>\n `\n }\n\n private excerptSection(excerpt: string) {\n return excerpt\n ? html` <p\n class=\"text-sm md:text-base ${this.isDark\n ? 'text-white'\n : 'text-grey-600'} font-sans mt-2 md:mt-4 max-w-[492px] text-center\"\n >\n ${excerpt}\n </p>`\n : nothing\n }\n\n private descriptionSection(data: Array<string>) {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorClass = this.isDark ? 'text-green-400' : 'text-green-500'\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n const borderColorDefault = isPro ? 'border-grey-300' : 'border-blue-200'\n const borderColorClass = this.isDark ? 'border-white' : borderColorDefault\n\n return data.length\n ? html`<div\n class=\"md:max-w-[492px] flex flex-col items-center px-0 lg:px-4 py-4 lg:py-5 w-full border-b border-t ${borderColorClass} mt-4 lg:mt-5\"\n >\n <div>\n <div\n class=\"text-sm md:text-base font-bold font-sans ${buttonTextColorClass} w-full text-left leading-tight md:leading-5\"\n >\n Keuntungan Eksklusif yang Anda Dapatkan:\n </div>\n <div class=\"flex flex-col mt-2 md:mt-3 gap-2 text-left\">\n ${data.map(\n item =>\n html`\n <div class=\"flex items-center text-left\">\n <div\n class=\"${textColorClass} h-4 w-4 md:h-5 md:w-5 flex items-center justify-center\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'check', 16, 16))}\n </div>\n <h6\n class=\"text-sm md:text-base ml-1 md:ml-2 ${buttonTextColorClass}\"\n >\n ${item}\n </h6>\n </div>\n `\n )}\n </div>\n </div>\n </div>`\n : nothing\n }\n\n private ctaPackages() {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorDefault = isPro ? 'text-grey-600' : 'text-blue-600'\n const textColorClass = this.isDark ? 'text-blue-300' : textColorDefault\n const getCtaText = this.paywallData?.informations?.cta\n ? this.paywallData?.informations?.cta.text\n : ''\n const showCta = this.paywallData?.informations?.cta\n ? this.paywallData?.informations?.cta.show\n : false\n\n return showCta\n ? html` <div class=\"flex justify-center mt-2 md:mt-3\">\n <button\n @click=${this.otherPackagesClicked}\n class=\"text-sm md:text-base font-bold underline ${textColorClass}\"\n >\n ${getCtaText}\n </button>\n </div>`\n : nothing\n }\n\n private epaperRegistrationSection() {\n const textColorClass = this.isDark ? 'text-blue-300' : 'text-blue-600'\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n\n return html`\n <div class=\"mt-4 lg:mt-5\">\n <span class=\"${buttonTextColorClass}\">Sudah berlangganan?</span>\n <button\n @click=${() =>\n redirectToLogin({\n loc: 'hard_paywall',\n next: this.epaperHost + window.location.pathname,\n })}\n class=\"text-sm md:text-base font-bold underline ${textColorClass}\"\n >\n Masuk\n </button>\n </div>\n `\n }\n\n private regulerRegistrationSection() {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorDefault = isPro ? 'text-grey-600' : 'text-blue-600'\n const textColorClass = this.isDark ? 'text-blue-300' : textColorDefault\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n\n return html`\n <div\n class=\"flex flex-col items-center justify-center text-sm md:text-base mt-4 lg:mt-5\"\n >\n <div>\n <span class=\"${buttonTextColorClass}\">Sudah berlangganan?</span>\n <button\n @click=${() => redirectToLogin({ loc: 'hard_paywall' })}\n class=\"font-bold underline ${textColorClass}\"\n >\n Masuk\n </button>\n </div>\n </div>\n `\n }\n\n private registrationSection(type: PaywallType) {\n return type === 'epaper'\n ? this.epaperRegistrationSection()\n : this.regulerRegistrationSection()\n }\n\n private paymentMobileExtension(data: Array<PaymentImage>) {\n return html`\n <div\n class=\"w-full max-w-xs mb-1 ml-8 md:hidden absolute px-4 ${this.isDark\n ? '-bottom-6'\n : 'bottom-0'}\"\n >\n <div\n class=\"w-full rounded p-3 max-w-xs ${this.isDark\n ? 'bg-dark-6 border-dark-6'\n : 'bg-white border-white'}\"\n >\n <svg\n class=\"right-0 h-4 mr-10 -mt-7 z-0 transform rotate-180 absolute ${this\n .isDark\n ? 'text-dark-6 border-dark-6'\n : 'text-white border-white '}\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 255 255\"\n >\n <polygon class=\"fill-current\" points=\"0,0 127.5,127.5 255,0\" />\n </svg>\n <div\n class=\"grid place-items-center items-center grid-flow-row grid-cols-5 grid-rows-2 gap-y-4\"\n >\n ${data.map(\n item =>\n html`<img\n class=\"object-cover\"\n src=${item.link}\n alt=\"${item.name}-logo-payment\"\n />`\n )}\n </div>\n </div>\n </div>\n `\n }\n\n private renderPackage(\n product: Product,\n isHighlight: boolean,\n isButtonSolid: boolean\n ) {\n const { isDark } = this\n\n const containerClass = `px-4 py-4 flex flex-wrap items-center justify-between rounded-lg md:mx-0 w-full max-w-xs md:max-w-sm md:w-3/5 min-h-[68px]\n ${isDark ? ' bg-grey-600' : ' bg-white'}\n ${\n isHighlight ? 'outline-yellow-400 outline-2 outline mt-2' : ''\n } relative`\n const textColorClass = isDark ? 'text-dark-7' : 'text-grey-600'\n\n let buttonBgColorClass = ''\n if (isButtonSolid) {\n buttonBgColorClass = isDark\n ? 'bg-green-300 border border-green-400'\n : 'bg-green-500'\n } else {\n buttonBgColorClass = isDark\n ? ' border border-green-500 text-green-300'\n : ' border border-green-500 bg-white text-green-500'\n }\n\n const buttonClass = `h-8 rounded ${buttonBgColorClass} flex items-center`\n\n let buttonTextColor = ''\n if (isButtonSolid) {\n buttonTextColor = isDark ? ' text-black' : ' text-white'\n } else if (isDark) {\n buttonTextColor = 'text-green-300'\n } else {\n buttonTextColor = 'text-green-500'\n }\n const buttonTextClass = `text-xs md:text-sm font-bold py-2 px-4 ${buttonTextColor}`\n return html`\n <div class=\"${containerClass}\">\n <div class=\"flex flex-col gap-1\">\n <span\n class=\"${product.labelPackage\n ? 'block text-grey-500 text-xs font-sans leading-none'\n : 'hidden'}\"\n >${product.labelPackage}</span\n >\n <div class=\"flex items-baseline\">\n <h5 class=\"text-base font-bold text-orange-400 leading-none\">\n ${formatRupiah(product.price)}\n </h5>\n <h6 class=\"text-xs font-bold pl-1 ${textColorClass} leading-none\">\n / ${product.periode}\n </h6>\n </div>\n ${product.priceSlice || product.saveLabel\n ? html`\n <div class=\"flex flex-row gap-2\">\n ${product.priceSlice\n ? html`\n <div class=\"flex items-center text-xs font-sans\">\n <span\n class=\"${isDark\n ? 'text-white'\n : 'text-grey-400'} line-through leading-none\"\n >${formatRupiah(product.priceSlice)}</span\n >\n </div>\n `\n : nothing}\n ${product.saveLabel\n ? html`\n <div\n class=\"flex font-bold items-center text-xs font-sans bg-red-100 rounded p-1\"\n >\n <span class=\"text-red-500 leading-none\"\n >${product.saveLabel}</span\n >\n </div>\n `\n : nothing}\n </div>\n `\n : nothing}\n </div>\n <button\n class=\"${buttonClass}\"\n @click=${() =>\n this.redirectToCheckout(\n product.url,\n product.package,\n product.subscriptionId,\n product.price,\n product.position\n )}\n >\n <h6 class=\"${buttonTextClass}\">Langganan</h6>\n </button>\n ${isHighlight\n ? html`\n <div class=\"absolute -top-2 left-4\">\n <div\n class=\"rounded bg-yellow-300 px-2 h-4 items-center text-xs leading-none flex\"\n >\n <b class=\"text-grey-600\">Harga Terbaik</b>\n </div>\n </div>\n `\n : nothing}\n </div>\n `\n }\n\n private packagesSection(data: Packages) {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n return html`\n <div\n class=\"flex flex-col w-full items-center gap-2 md:gap-3 mt-4 md:mt-5\"\n >\n ${data.memberships.map(item =>\n this.renderPackage(item, item.isHighlight, item.isButtonSolid)\n )}\n ${this.freeTrialPackageSection()} ${this.freeTrialPopUp()}\n ${this.packages.swgEnable ? this.swgPackageSection() : nothing}\n ${isPro\n ? html`\n <kompasid-paywall-modal-register\n class=\"w-full max-w-xs md:max-w-sm\"\n >\n </kompasid-paywall-modal-register>\n `\n : nothing}\n </div>\n `\n }\n\n // private packagesSection(data: Packages) {\n // return html`\n // <div class=\"flex flex-col w-full items-center mt-8 md:mt-2 px-4\">\n // ${data.memberships.map(item =>\n // item.isHighlight\n // ? this.primaryPackages(item)\n // : this.secondaryPackages(item)\n // )}\n // ${this.freeTrialPackageSection()} ${this.freeTrialPopUp()}\n // ${this.packages.swgEnable ? this.swgPackageSection() : nothing}\n // </div>\n // `\n // }\n\n private topNavigator(type: PaywallType) {\n let icon: string\n let buttonText: string\n let clickAction: Function\n\n if (type === 'audio') {\n icon = getFontAwesomeIcon('fas', 'xmark', 12, 12)\n buttonText = 'Tutup'\n clickAction = this.togglePaywall.bind(this)\n } else {\n icon = getFontAwesomeIcon('fas', 'arrow-left', 10, 10)\n buttonText = 'Kembali'\n clickAction = this.redirectToPrevUrl.bind(this)\n }\n\n return html`\n <div class=\"flex md:hidden w-full\">\n <button\n @click=${clickAction}\n class=\"text-xs md:text-lg font-sans font-bold text-white flex flex-row h-8 px-4 items-center gap-1\"\n >\n <div\n class=\"icon-lg icon-white w-4 h-4 items-center justify-center flex\"\n >\n ${unsafeSVG(icon)}\n </div>\n <span> ${buttonText} </span>\n </button>\n </div>\n `\n }\n\n private helpDesk() {\n const textColorClass = this.isDark ? 'text-dark-7' : 'text-white'\n\n return html`\n <div class=\"self-center text-xs md:text-sm ${textColorClass}\">\n Butuh bantuan? Hubungi\n <button\n @click=${this.customerServiceClicked}\n class=\"font-bold underline\"\n >\n Layanan Pelanggan.\n </button>\n </div>\n `\n }\n\n private userAction() {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const isAudio = this.type === 'audio'\n const paddingClass = isAudio ? 'md:py-3.5' : 'md:py-6'\n const backgroundDefault = isPro ? 'bg-grey-500' : 'bg-blue-600'\n const backgroundClass = this.isDark ? 'bg-dark-4' : backgroundDefault\n\n return html`\n <div\n class=\"flex py-5 px-8 w-full justify-evenly rounded-b-xl mt-5 relative ${paddingClass} md:mt-7 ${backgroundClass}\"\n >\n ${this.helpDesk()}\n </div>\n `\n }\n\n private introductoryPrice() {\n const textColorClass = this.isDark ? 'text-dark-7' : 'text-grey-600'\n return html` <div\n class=\"flex md:flex-col gap-1 items-center md:items-start md:w-1/2 md:justify-center\"\n >\n <div class=\"flex items-center gap-1 shrink-0\">\n <h5 class=\"text-base font-bold text-orange-400 leading-none\">\n ${this.packages.swgContent.introductory.price}\n </h5>\n ${this.packages.swgContent.introductory.duration\n ? html`\n <h6 class=\"text-xs font-bold ${textColorClass} leading-none\">\n ${this.packages.swgContent.introductory.duration}\n </h6>\n `\n : nothing}\n </div>\n <p class=\"text-xs flex ${textColorClass} leading-none\">\n ${this.packages.swgContent.introductory.description}\n </p>\n </div>`\n }\n\n private swgRegonText() {\n const textColorClass = this.isDark ? 'text-dark-7' : 'text-grey-600'\n return html`<p class=\"text-xs leading-4 md:max-w-[137px] ${textColorClass}\">\n ${this.packages.swgContent.default.description}\n </p>`\n }\n\n private swgPackageSection() {\n const { isDark } = this\n\n const containerClass = `flex flex-col md:flex-row gap-1 justify-center md:justify-between items-center px-4 rounded-lg md:mx-0 w-full min-h-[76px] md:min-h-[68px] max-w-xs md:max-w-sm md:w-3/5 ${\n isDark ? ' bg-grey-600' : ' bg-white'\n }`\n\n const buttonClass = `border space-x-2 justify-center border-grey-400 rounded-md px-[22px] md:px-6 shadow-sm flex h-max flex-row flex-nowrap py-[5.6px] md:py-1.5 items-center${\n isDark ? ' bg-grey-600' : ' bg-white border-grey-100'\n }`\n\n const textColorClass = isDark ? 'text-dark-7' : 'text-grey-500'\n\n const googleImageSrc = isDark\n ? 'https://cdn-www.kompas.id/paywall-asset/google-white.png'\n : 'https://cdn-www.kompas.id/paywall-asset/google.png'\n\n return html`\n <div class=\"${containerClass}\">\n ${this.isEntitledForIntroductoryPrice\n ? this.introductoryPrice()\n : this.swgRegonText()}\n <div class=\"md:w-1/2\">\n <button class=\"${buttonClass}\" id=\"subscribe-with-google\">\n <p\n class=\"text-[11px] md:text-xs whitespace-nowrap w-full ${textColorClass}\"\n >\n Subscribe with\n </p>\n <img\n class=\"object-scale-down h-[17px] md:h-5\"\n src=${googleImageSrc}\n alt=\"subscribe with google\"\n />\n </button>\n </div>\n </div>\n `\n }\n\n private openFreeTrialPopup() {\n const popup = this.shadowRoot?.getElementById('freeTrialPopup')\n popup?.classList.remove('hidden')\n }\n\n private closeFreeTrialPopup() {\n const popup = this.shadowRoot?.getElementById('freeTrialPopup')\n popup?.classList.add('hidden')\n }\n\n private freeTrialPopUp() {\n const { isDark } = this\n\n const googlePlayBadgeSrc = isDark\n ? 'https://cdn-www.kompas.id/web-component/Button_Download%20Google%20Play_Dark%20Mode.svg'\n : 'https://cdn-www.kompas.id/web-component/Button_Download%20Google%20Play_Light%20Mode.svg'\n\n const appStoreBadgeSrc = isDark\n ? 'https://cdn-www.kompas.id/web-component/Button_Download%20App%20Store_Dark%20Mode.svg'\n : 'https://cdn-www.kompas.id/web-component/Button_Download%20App%20Store_Light%20Mode.svg'\n\n return html`\n <div\n id=\"freeTrialPopup\"\n class=\"fixed w-full h-full inset-0 flex justify-center items-center z-50 bg-black bg-opacity-75 hidden\"\n >\n <div\n class=\"rounded w-11/12 sm:w-3/4 md:w-1/2 lg:w-1/3 2xl:w-1/4 p-6 text-center ${isDark\n ? 'bg-dark-4'\n : 'bg-white'}\"\n >\n <div class=\"w-full flex justify-end px-2\">\n <button\n @click=${this.closeFreeTrialPopup}\n class=\"w-8 h-8 pl-4 ${isDark ? 'text-grey-300' : 'text-grey-400'}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'xmark', 24, 24))}\n </button>\n </div>\n <div class=\"w-full flex justify-center\">\n <div class=\"w-3/4 lg:w-1/2\">\n <img\n src=\"https://cdn-www.kompas.id/web-component/kompas-free-trial.png\"\n alt=\"Free Trial\"\n />\n </div>\n </div>\n <p\n class=\"font-bold text-lg mt-4 ${isDark\n ? 'text-white'\n : 'text-grey-600'}\"\n >\n Coba Gratis Kompas.id di Aplikasi\n </p>\n <div\n class=\"hidden lg:block lg:flex flex rounded mt-4 px-8 py-4 items-center ${isDark\n ? 'bg-dark-3 border border-dark-9'\n : 'bg-white border border-grey-300'}\"\n >\n <div class=\"w-1/3 flex mr-6\">\n <img\n src=\"https://cdn-www.kompas.id/web-component/free-trial-qr-code.png\"\n alt=\"QR Code Deep Link\"\n />\n </div>\n <div\n class=\"w-2/3 text-base text-left ${isDark\n ? 'text-dark-7'\n : 'text-grey-600'}\"\n >\n ${this.packages.freeTrial?.desktopText}\n </div>\n </div>\n <div\n class=\"text-base text-center lg:hidden px-2 md:px-8 ${isDark\n ? 'text-dark-7'\n : 'text-grey-600'}\"\n >\n ${this.packages.freeTrial?.mobileText}\n </div>\n <div class=\"lg:flex flex justify-center mt-4 hidden lg:block gap-4\">\n <a\n href=\"https://play.google.com/store/apps/details?id=id.kompas.app\"\n target=\"_blank\"\n ><img src=\"${googlePlayBadgeSrc}\" alt=\"Google Play Badge\"\n /></a>\n <a\n href=\"https://apps.apple.com/id/app/kompas-id/id1242195037?l=id\"\n target=\"_blank\"\n ><img src=\"${appStoreBadgeSrc}\" alt=\"iOS App Store Badge\"\n /></a>\n </div>\n <button\n onclick=\"window.open('https://app.komp.as/langganan', '_blank')\"\n class=\"h-12 rounded-md mt-4 flex w-full items-center justify-center lg:hidden ${isDark\n ? 'bg-green-300'\n : 'bg-green-500'}\"\n >\n <h6 class=\"font-bold p-4 ${isDark ? 'text-dark-5' : 'text-white'}\">\n Unduh Sekarang\n </h6>\n </button>\n </div>\n </div>\n `\n }\n\n private freeTrialPackageSection() {\n if (this.packages.freeTrial) {\n return html`\n <div\n class=\"flex flex-wrap items-center justify-between py-3 px-4 rounded-lg md:mx-0 w-full h-[68px] max-w-xs md:max-w-sm md:w-3/5 mt-3 md:mt-4 ${this\n .isDark\n ? 'bg-grey-600'\n : 'bg-white'}\"\n >\n <div class=\"flex flex-col\">\n <div class=\"flex items-center\">\n <h5 class=\"text-base md:text-lg font-bold text-orange-400\">\n ${formatRupiah(0)}\n </h5>\n </div>\n <div class=\"flex items-center\">\n <p\n class=\"text-xs ${this.isDark ? 'text-dark-7' : 'text-grey-600'}\"\n >\n ${this.packages.freeTrial?.packageText}\n </p>\n </div>\n </div>\n <button\n @click=${this.openFreeTrialPopup}\n class=\"h-8 border border-green-500 rounded ${!this.isDark &&\n 'bg-white'}\"\n >\n <h6\n class=\"text-xs md:text-sm font-bold px-4 ${this.isDark\n ? 'text-green-300'\n : 'text-green-500'}\"\n >\n Coba Gratis\n </h6>\n </button>\n </div>\n `\n }\n return nothing\n }\n\n /**\n * Render Statement\n */\n\n render() {\n const isEpaper = this.type === 'epaper' || this.type === 'proMiningOutlook'\n const isAudio = this.type === 'audio'\n const { isDark } = this\n const { isLogin } = this\n\n const wrapperBodyClass = `wrapper-body\n ${isEpaper ? 'bg-transparent mx-2' : ''}\n ${\n isAudio\n ? 'fixed w-full h-full inset-0 flex justify-center items-center z-index-max bg-black bg-opacity-75 px-4 md:px-0'\n : ''\n }`\n .trim()\n .replace(/\\s+/g, ' ')\n\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n\n const backgroundDefault = isPro ? 'bg-grey-100' : 'bg-blue-100'\n const backgroundClass = isDark ? 'bg-dark-3' : backgroundDefault\n\n const containerClass = `flex w-full flex-col items-center justify-center rounded-xl md:pt-8 pt-6 relative ${backgroundClass}`\n\n // const borderClass = isDark ? 'border-dark-8' : 'border-blue-200'\n\n return html`\n <div class=\"${wrapperBodyClass}\">\n <div\n class=\"flex flex-col justify-center items-center w-full max-w-screen-sm my-5 relative\"\n >\n ${isEpaper || isAudio ? this.topNavigator(this.type) : nothing}\n <div class=\"${containerClass}\">\n <div class=\"px-6 md:px-0 items-center flex flex-col w-full\">\n ${this.headerSection(\n this.type,\n this.paywallData?.informations?.title ?? ''\n )}\n ${this.excerptSection(\n this.paywallData?.informations?.excerpt ?? ''\n )}\n ${this.packagesSection(\n this.paywallData?.packages ?? ({} as Packages)\n )}\n ${this.ctaPackages()}\n ${this.descriptionSection(\n this.paywallData?.informations?.description ?? []\n )}\n </div>\n ${!isLogin\n ? html` ${this.registrationSection(this.type)} `\n : nothing}\n ${this.userAction()}\n </div>\n ${this.isExtensionsOpened\n ? this.paymentMobileExtension(\n this.paywallData?.payment?.ekstension ?? []\n )\n : nothing}\n </div>\n </div>\n `\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"KompasPaywallBody.js","sourceRoot":"","sources":["../../../../src/components/kompasid-paywall-body/KompasPaywallBody.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-return-assign */\n\nimport { html, css, LitElement, nothing } from 'lit'\nimport { property, state, customElement } from 'lit/decorators.js'\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\nimport {\n PaywallProduct,\n Product,\n Packages,\n PaymentImage,\n PaywallType,\n} from '../kompasid-paywall/types.js'\nimport { getFontAwesomeIcon } from '../../utils/fontawesome-setup.js'\nimport { deviceType } from '../../utils/deviceType.js'\nimport { formatRupiah } from '../../utils/formatRupiah.js'\nimport { addGoogleFonts } from '../../utils/googleFont.js'\nimport { redirectToLogin } from '../../utils/cta.js'\nimport { customFetch } from '../../utils/customFetch.js'\nimport { getCookie } from '../../utils/getCookies.js'\nimport { getLoginGuest } from '../../utils/api/getLoginGuest.js'\nimport '../kompasid-paywall-modal-register/KompasPaywallModalRegister.js'\n\n@customElement('kompasid-paywall-body')\nexport class KompasIdPaywallBody extends LitElement {\n static styles = [\n css`\n .wrapper-body {\n display: flex;\n flex-direction: column;\n justify-items: center;\n align-items: center;\n }\n\n .z-index-max {\n z-index: 999999;\n }\n\n .font-lora {\n font-family: 'Lora', 'Georgia', 'serif';\n }\n `,\n TWStyles,\n ]\n\n /**\n * Props\n */\n /**\n * prop slug untuk menghandle slug\n * prop isLogin untuk menghandle apakah user sudah login atau belum\n * prop type untuk menghandle tipe epaper\n * prop paywallData untuk menghandle data paywall\n * prop userGuid untuk menghandle user Guid\n * prop subscriptionStatus untuk menghandle status subscription user\n * prop countdownArticle untuk menghandle count artikel\n * prop swgEnable untuk menghandle swg apakah di aktifkan atau tidak\n * prop paywall_location = The location where user encounter the paywall\n * prop paywall_subscription_package = The name of the subscription package viewed by user\n * prop paywall_subscription_id = The ID of the subscription package viewed by user\n * prop paywall_subscription_price = The price of the subscriprtion package viewed by user\n * prop paywall_position = The position of the subscription package viewed by user\n * prop tracker_page_type = Type of the page\n * prop tracker_content_id = ID of article (slug)\n * prop tracker_content_type = Whether it's free article or paid article\n * prop tracker_content_title = The title of article\n * prop tracker_content_categories = The category of the content\n * prop tracker_user_type = Type of user based on their subscription\n * prop tracker_subscription_status = Status of their subscription\n * prop tracker_page_domain = Page Domain\n * prop tracker_metered_wall_type = The type of Metered Wall\n * prop tracker_metered_wall_balance = The balance of their metered wall\n * prop tracker_metered_wall_balance = The edition of epaper viewed by user\n * prop theme = The theme of the paywall component\n */\n\n @property({ type: String }) slug = ''\n @property({ type: Boolean }) isLogin = false\n @property({ type: String }) type: PaywallType = 'reguler'\n @property({ type: Object }) paywallData: PaywallProduct | undefined =\n undefined\n @property({ type: String }) userGuid = ''\n @property({ type: String }) subscriptionStatus = ''\n @property({ type: Number }) countdownArticle = 0\n @property({ type: Boolean }) swgEnable = false\n @property({ type: String }) paywall_location = ''\n @property({ type: String }) paywall_subscription_package = ''\n @property({ type: Number }) paywall_subscription_id = 0\n @property({ type: Number }) paywall_subscription_price = 0\n @property({ type: Number }) paywall_position = 0\n @property({ type: String }) tracker_page_type = ''\n @property({ type: String }) tracker_content_id = ''\n @property({ type: String }) tracker_content_title = ''\n @property({ type: String }) tracker_content_categories = ''\n @property({ type: String }) tracker_content_type = ''\n @property({ type: String }) tracker_content_tags = ''\n @property({ type: String }) tracker_content_published_date = ''\n @property({ type: String }) tracker_content_variant = ''\n @property({ type: String }) tracker_user_type = ''\n @property({ type: String }) tracker_subscription_status = ''\n @property({ type: String }) tracker_page_domain = ''\n @property({ type: String }) tracker_metered_wall_type = ''\n @property({ type: Number }) tracker_metered_wall_balance = 0\n @property({ type: String }) tracker_epaper_edition = ''\n @property({ type: String }) tracker_content_publisher = ''\n @property({ type: String }) theme = ''\n @property() togglePaywall = () => {}\n\n /**\n * State\n */\n\n @state() private isExtensionsOpened = false\n @state() private kompasAkunHost = 'https://akun.kompas.id'\n @state() private kompasApigenHost = 'https://apigen.kompas.id'\n @state() private kompasApiWcmHost = 'https://apiwcm.kompas.id'\n @state() private kompasLoginHost = 'https://account.kompas.id/login'\n @state() private kompasApiSubsHost = 'https://apisubs.kompas.id'\n @state() private epaperHost = 'https://epaper.kompas.id'\n @state() private swgPublisherName = 'Harian Kompas'\n @state() private swgPublisherId = 'kompas.id'\n @state() private swgProductId = 'kompas.id:kompas_digital_premium'\n @state() private errorFlag = 0\n @state() private accessToken = ''\n @state() private refreshToken = ''\n @state() private domain = 'id'\n\n _packages!: Packages\n buttonElement!: HTMLButtonElement\n targetElement!: HTMLElement\n\n /**\n * Getter\n */\n\n get loginUrl() {\n return `${this.kompasLoginHost}?next=${encodeURIComponent(\n this.epaperHost + window.location.pathname\n )}&loc=hard_paywall`\n }\n\n get isDark() {\n return this.theme === 'dark'\n }\n\n get isEntitledForIntroductoryPrice(): boolean {\n return !this.isLogin || this.tracker_subscription_status === 'IA'\n }\n\n get packages(): Packages {\n return this._packages\n }\n\n /**\n * Logic Function\n */\n\n private redirectToCheckout(\n url: string,\n name: string,\n id: string,\n price: number,\n position: number\n ): void {\n this.sendDataLayeronButtonBuyPackage(name, id, price, position)\n const originHost: string = encodeURIComponent(window.location.href)\n let source: string\n\n switch (this.type) {\n case 'epaper':\n case 'proMiningOutlook':\n source = 'epaper'\n break\n case 'audio':\n source = 'news_audio'\n break\n case 'proMiningArticle':\n default:\n source = 'article'\n }\n\n const directUrlCheckout: string = `${url}${originHost}&source=${source}`\n window.open(directUrlCheckout)\n }\n\n private redirectToPrevUrl(): void {\n window.history.back()\n }\n\n private redirectToSubscriber(): void {\n this.sendDataLayer()\n const getCtaUrl = this.paywallData?.informations?.cta\n ? this.paywallData?.informations?.cta.url\n : ''\n // TODO: Hendy\n // Bisa jadi ini nanti open from nya beda, untuk sekarang biarkan dulu, note 25 08 2025 (tolong tanya ke PM bersangkutan)\n const openFrom = `${this.type === 'epaper' ? 'ePaper' : 'Hard'}_Paywall`\n window.open(`${getCtaUrl}?open_from=${openFrom}`)\n }\n\n private redirectToHelpdesk(): void {\n this.sendDataLayeronHelpDesk()\n window.open(\n 'https://api.whatsapp.com/send/?phone=6281290050800&text=Halo,%20saya%20perlu%20informasi%20mengenai%20kompas.id'\n )\n }\n\n private handleClickOutside() {\n if (this.targetElement?.classList.contains('wrapper-body')) {\n this.togglePaywall()\n }\n\n if (this.targetElement?.id === 'freeTrialPopup') {\n this.closeFreeTrialPopup()\n }\n }\n\n private parsePrice(price: string): number {\n const lowerCasePrice = price.toLowerCase()\n\n if (lowerCasePrice.startsWith('rp')) {\n return parseFloat(price.replace(/[^0-9,]/g, ''))\n }\n\n return parseFloat(price.replace(/[^0-9.]/g, ''))\n }\n\n private async getRegisterToken(path: string, payload: any): Promise<string> {\n return fetch(`${this.kompasApigenHost}/v1/user/register/token/${path}`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'content-type': 'application/json',\n },\n })\n .then(response => response.json())\n .then((data: any) => data.result.token)\n .catch(error => {\n throw error\n })\n }\n\n private async getUserToken(path: string, payload: any): Promise<string> {\n return fetch(`${this.kompasApigenHost}/v1/user/token/${path}`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'content-type': 'application/json',\n },\n })\n .then(response => response.json())\n .then((data: any) => data.result.token)\n .catch(error => {\n throw error\n })\n }\n\n private async getSubscriptionToken(\n path: string,\n payload: any\n ): Promise<string> {\n return fetch(`${this.kompasAkunHost}/api/subscription/login/${path}`, {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: {\n 'content-type': 'application/json',\n },\n })\n .then(response => response.json())\n .then((data: any) => {\n this.errorFlag = 0\n return data.access_token\n })\n .catch(async error => {\n const errorCode = error.response.status\n if (errorCode === 500 && this.errorFlag < 5) {\n // eslint-disable-next-line no-plusplus\n this.errorFlag++\n setTimeout(async () => {\n await this.getSubscriptionToken(path, payload)\n }, 2000)\n } else {\n this.errorFlag = 0\n throw error\n }\n })\n }\n\n private async createSwG(payload: any) {\n const headersData: any = {\n 'content-type': 'application/json',\n Authorization: `Bearer ${this.accessToken}`,\n }\n\n const options = {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: headersData,\n }\n\n await customFetch(\n `${this.kompasApiSubsHost}/membership/swg`,\n this.refreshToken,\n this.accessToken,\n this.domain,\n { ...options }\n )\n .then(response => response.json())\n .catch(error => {\n throw error\n })\n }\n\n private subscribeWithGoogleButton(): any {\n // @ts-ignore\n // eslint-disable-next-line no-restricted-globals\n ;(self.SWG = self.SWG || []).push((subscriptions: any) => {\n // set entitlement\n subscriptions.setOnEntitlementsResponse(() => {\n // subscriptions attach button\n subscriptions.attachButton(\n this.buttonElement,\n { theme: 'light', lang: 'en' },\n async () => {\n subscriptions.showOffers({ isClosable: true })\n subscriptions.setOnLoginRequest(() => {\n window.location.href = this.loginUrl\n })\n const offers = await subscriptions.getOffers()\n subscriptions.setOnFlowStarted((callback: any) => {\n if (callback.flow === 'showOffers') {\n window.dataLayer.push(this.swgPackageViewedDataLayer(offers))\n } else if (callback.flow === 'subscribe') {\n const selectedOfferSkuId = callback.data.skuId\n const selectedOffer = offers.find(\n (offer: any) => offer.skuId === selectedOfferSkuId\n )\n window.dataLayer.push(\n this.swgSubscribeButtonClicked(\n selectedOffer,\n offers.indexOf(selectedOffer)\n )\n )\n }\n })\n subscriptions.setOnPaymentResponse(async (paymentResponse: any) => {\n const response = await paymentResponse\n const raw = JSON.parse(response.purchaseData.raw)\n const { productId, purchaseToken, packageName } = raw\n const { email } = response.userData.data\n const swgMembershipChannelId = 2\n const payload = {\n email,\n purchase_token: purchaseToken,\n product_id: productId,\n package_name: packageName,\n membershipChannelId: swgMembershipChannelId,\n }\n\n await this.createSwG(payload)\n response.complete().then(() => {\n window.location.href = this.loginUrl\n })\n })\n }\n )\n })\n })\n }\n\n private jsonScript() {\n const jsonData = {\n '@context': 'https://schema.org',\n '@type': ['WebSite', 'WebPage'],\n isAccessibleForFree: false,\n url: this.epaperHost + window.location.pathname,\n name: this.swgPublisherName,\n hasPart: {\n '@type': 'WebPageElement',\n },\n isPartOf: {\n '@type': ['CreativeWork', 'Product'],\n name: this.swgPublisherId,\n productID: this.swgProductId,\n },\n }\n const str = JSON.stringify(jsonData)\n const jsonScript = document.createElement('script')\n jsonScript.type = 'application/ld+json'\n jsonScript.text = str\n jsonScript.defer = true\n const jsonHead = document.querySelector('head')\n if (jsonHead) {\n jsonHead.appendChild(jsonScript)\n }\n }\n\n constructor() {\n super()\n this.handleClickOutside = this.handleClickOutside.bind(this)\n }\n\n protected createRenderRoot() {\n const root = super.createRenderRoot()\n root.addEventListener(\n 'click',\n (e: Event) => (this.targetElement = e.target as HTMLElement)\n )\n return root\n }\n\n override async connectedCallback() {\n this._packages = this.paywallData?.packages ?? ({} as Packages)\n\n super.connectedCallback()\n this.sendDataLayeronPaywallBody()\n await this.updateComplete\n this.accessToken = getCookie('kompas._token')\n this.refreshToken = getCookie('kompas._token_refresh')\n\n await getLoginGuest().then(data => {\n this.accessToken = this.accessToken || data.accessToken\n this.refreshToken = this.refreshToken || data.refreshToken\n })\n\n if (this.packages.swgEnable) {\n this.jsonScript()\n const appendSWGButton = () => {\n this.buttonElement = this.shadowRoot?.getElementById(\n 'subscribe-with-google'\n ) as HTMLButtonElement\n if (this.buttonElement) {\n const head = document.querySelector('head')\n const script = document.createElement('script')\n script.src = 'https://news.google.com/swg/js/v1/swg.js'\n script.defer = true\n script.onload = this.subscribeWithGoogleButton()\n\n if (head) {\n head.appendChild(script)\n }\n }\n }\n setTimeout(appendSWGButton, 500)\n }\n addGoogleFonts(['pt-sans', 'lora'])\n document.addEventListener('click', this.handleClickOutside)\n }\n\n override async disconnectedCallback() {\n super.disconnectedCallback()\n document.removeEventListener('click', this.handleClickOutside)\n }\n\n private otherPackagesClicked() {\n this.sendDataLayerOtherPackagesClicked()\n this.redirectToSubscriber()\n }\n\n private customerServiceClicked() {\n this.sendDataLayerCustomerServiceClicked()\n this.redirectToHelpdesk()\n }\n\n /**\n * Data Layer\n */\n\n private buildGtmParams(\n event: string,\n impressions: Record<string, any>[],\n index: number = 0\n ) {\n const gtmParams: Record<string, any> = {\n event,\n impressions: impressions.map((impression, i) => ({\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: impression.package,\n paywall_subscription_id: impression.subscription_id,\n paywall_subscription_price: this.parsePrice(impression.price),\n paywall_position: index + i + 1,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'HP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n content_tags: this.tracker_content_tags || '',\n content_published_date: this.tracker_content_published_date || '',\n content_variant: this.tracker_content_variant || '',\n variant: this.paywallData?.informations?.typeVariant || '',\n ...(this.type === 'epaper' || this.type === 'proMiningOutlook'\n ? { epaper_edition: this.tracker_epaper_edition }\n : {\n page_type: this.tracker_page_type,\n content_id: this.tracker_content_id,\n content_title: this.tracker_content_title,\n content_categories: this.tracker_content_categories,\n content_type: this.tracker_content_type,\n content_publisher: this.tracker_content_publisher,\n }),\n })),\n }\n\n return gtmParams\n }\n\n private generalPaywallDataLayer(event: string): Record<string, any> {\n const packages = this.paywallData?.packages ?? ({} as Packages)\n\n const impressions = packages.memberships.map(membership => ({\n package: membership.package,\n subscription_id: membership.subscriptionId,\n price: membership.price.toString(),\n }))\n\n return this.buildGtmParams(event, impressions)\n }\n\n private sendDataLayer(): void {\n window.dataLayer.push({\n event: 'halamanBerlanggananClick',\n subscriptionStatus: '',\n GUID: '',\n interface: deviceType(),\n })\n }\n\n private sendDataLayeronHelpDesk(): void {\n window.dataLayer.push({\n event: 'helpOfferClick',\n userType: this.subscriptionStatus,\n GUID: this.userGuid,\n interface: deviceType(),\n })\n }\n\n private sendDataLayeronButtonBuyPackage(\n name: string,\n id: string,\n price: number,\n position: number\n ): void {\n const gtmParams: Record<string, any> = {\n event: 'subscribe_button_clicked',\n paywall_location: this.paywall_location,\n paywall_subscription_package: name,\n paywall_subscription_id: id,\n paywall_subscription_price: price,\n paywall_position: position,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'HP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n content_tags: this.tracker_content_tags || '',\n content_published_date: this.tracker_content_published_date || '',\n content_variant: this.tracker_content_variant || '',\n variant: this.paywallData?.informations?.typeVariant || '',\n }\n\n if (this.type !== 'epaper') {\n gtmParams.content_title = this.tracker_content_title\n gtmParams.content_id = this.tracker_content_id\n gtmParams.content_categories = this.tracker_content_categories\n gtmParams.content_type = this.tracker_content_type\n gtmParams.content_publisher = this.tracker_content_publisher\n gtmParams.page_type = this.tracker_page_type\n } else {\n gtmParams.epaper_edition = this.tracker_epaper_edition\n }\n\n window.dataLayer.push(gtmParams)\n }\n\n private sendDataLayeronPaywallBody(): void {\n const gtmParams = this.generalPaywallDataLayer('paywall_viewed')\n window.dataLayer.push(gtmParams)\n }\n\n private sendDataLayerOtherPackagesClicked(): void {\n const gtmParams = this.generalPaywallDataLayer('other_packages_clicked')\n window.dataLayer.push(gtmParams)\n }\n\n private sendDataLayerCustomerServiceClicked(): void {\n const gtmParams = this.generalPaywallDataLayer('customer_service_clicked')\n window.dataLayer.push(gtmParams)\n }\n\n private swgPackageViewedDataLayer(data: any): Record<string, any> {\n const impressions = data.map(\n (item: {\n title: string\n skuId: string\n price: string\n introductoryPrice: string\n }) => ({\n package: item.title,\n subscription_id: item.skuId,\n price: item.introductoryPrice || item.price,\n })\n )\n\n return this.buildGtmParams('subscription_package_viewed', impressions)\n }\n\n private swgSubscribeButtonClicked(item: any, index: number) {\n const gtmParams: any = {\n event: 'subscribe_button_clicked',\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: item.title,\n paywall_subscription_id: item.skuId,\n paywall_subscription_price: this.parsePrice(\n item.introductoryPrice || item.price\n ),\n paywall_position: index + 1,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'HP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n }\n\n if (this.type === 'epaper') {\n gtmParams.epaper_edition = this.tracker_epaper_edition\n } else {\n gtmParams.page_type = this.tracker_page_type\n gtmParams.content_id = this.tracker_content_id\n gtmParams.content_title = this.tracker_content_title\n gtmParams.content_categories = this.tracker_content_categories\n gtmParams.content_type = this.tracker_content_type\n }\n\n return gtmParams\n }\n\n /**\n * Component\n */\n\n private headerSection(type: PaywallType, title: string) {\n let buttonContent\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorDefault = isPro ? 'text-grey-600' : 'text-blue-600'\n const textColorClass = this.isDark ? 'text-blue-300' : textColorDefault\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n const isPrevHistoryExist = window.history.length > 1\n\n if (type === 'epaper' && isPrevHistoryExist) {\n buttonContent = html` <button\n @click=${this.redirectToPrevUrl}\n class=\"absolute left-2.5 -top-1.5 hidden md:flex w-10 h-10 justify-center items-center ${textColorClass}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'arrow-left', 20, 20))}\n </button>`\n } else if (type === 'proMiningOutlook' && isPrevHistoryExist) {\n buttonContent = html` <button\n @click=${this.redirectToPrevUrl}\n class=\"absolute left-2.5 -top-1.5 hidden md:flex w-10 h-10 justify-center items-center ${textColorClass}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'arrow-left', 20, 20))}\n </button>`\n } else if (type === 'audio') {\n buttonContent = html` <button\n @click=${this.togglePaywall}\n class=\"absolute left-2.5 -top-1.5 hidden md:flex w-10 h-10 justify-center items-center ${textColorClass}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'xmark', 28, 28))}\n </button>`\n } else {\n buttonContent = nothing\n }\n\n const headerClass = `text-lg flex justify-center self-center md:block md:text-xl ${buttonTextColorClass} text-center font-lora font-bold tracking-normal max-w-xs sm:max-w-lg md:w-full md:max-w-[492px]`\n\n return html`\n <div class=\"flex w-full items-start justify-center relative md:px-10\">\n ${buttonContent}\n <h4 class=${headerClass}>${title}</h4>\n </div>\n `\n }\n\n private excerptSection(excerpt: string) {\n return excerpt\n ? html` <p\n class=\"text-sm md:text-base ${this.isDark\n ? 'text-white'\n : 'text-grey-600'} font-sans mt-2 md:mt-4 max-w-[492px] text-center\"\n >\n ${excerpt}\n </p>`\n : nothing\n }\n\n private descriptionSection(data: Array<string>) {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorClass = this.isDark ? 'text-green-400' : 'text-green-500'\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n const borderColorDefault = isPro ? 'border-grey-300' : 'border-blue-200'\n const borderColorClass = this.isDark ? 'border-white' : borderColorDefault\n\n return data.length\n ? html`<div\n class=\"md:max-w-[492px] flex flex-col items-center px-0 lg:px-4 py-4 lg:py-5 w-full border-b border-t ${borderColorClass} mt-4 lg:mt-5\"\n >\n <div>\n <div\n class=\"text-sm md:text-base font-bold font-sans ${buttonTextColorClass} w-full text-left leading-tight md:leading-5\"\n >\n Keuntungan Eksklusif yang Anda Dapatkan:\n </div>\n <div class=\"flex flex-col mt-2 md:mt-3 gap-2 text-left\">\n ${data.map(\n item =>\n html`\n <div class=\"flex items-center text-left\">\n <div\n class=\"${textColorClass} h-4 w-4 md:h-5 md:w-5 flex items-center justify-center\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'check', 16, 16))}\n </div>\n <h6\n class=\"text-sm md:text-base ml-2 ${buttonTextColorClass}\"\n >\n ${item}\n </h6>\n </div>\n `\n )}\n </div>\n </div>\n </div>`\n : nothing\n }\n\n private ctaPackages() {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorDefault = isPro ? 'text-grey-600' : 'text-blue-600'\n const textColorClass = this.isDark ? 'text-blue-300' : textColorDefault\n const getCtaText = this.paywallData?.informations?.cta\n ? this.paywallData?.informations?.cta.text\n : ''\n const showCta = this.paywallData?.informations?.cta\n ? this.paywallData?.informations?.cta.show\n : false\n\n return showCta\n ? html` <div class=\"flex justify-center mt-2 md:mt-3\">\n <button\n @click=${this.otherPackagesClicked}\n class=\"text-sm md:text-base font-bold underline ${textColorClass}\"\n >\n ${getCtaText}\n </button>\n </div>`\n : nothing\n }\n\n private epaperRegistrationSection() {\n const textColorClass = this.isDark ? 'text-blue-300' : 'text-blue-600'\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n\n return html`\n <div class=\"mt-4 lg:mt-5\">\n <span class=\"${buttonTextColorClass}\">Sudah berlangganan?</span>\n <button\n @click=${() =>\n redirectToLogin({\n loc: 'hard_paywall',\n next: this.epaperHost + window.location.pathname,\n })}\n class=\"text-sm md:text-base font-bold underline ${textColorClass}\"\n >\n Masuk\n </button>\n </div>\n `\n }\n\n private regulerRegistrationSection() {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const textColorDefault = isPro ? 'text-grey-600' : 'text-blue-600'\n const textColorClass = this.isDark ? 'text-blue-300' : textColorDefault\n const buttonTextColorClass = this.isDark ? 'text-white' : 'text-grey-600'\n\n return html`\n <div\n class=\"flex flex-col items-center justify-center text-sm md:text-base mt-4 lg:mt-5\"\n >\n <div>\n <span class=\"${buttonTextColorClass}\">Sudah berlangganan?</span>\n <button\n @click=${() => redirectToLogin({ loc: 'hard_paywall' })}\n class=\"font-bold underline ${textColorClass}\"\n >\n Masuk\n </button>\n </div>\n </div>\n `\n }\n\n private registrationSection(type: PaywallType) {\n return type === 'epaper'\n ? this.epaperRegistrationSection()\n : this.regulerRegistrationSection()\n }\n\n private paymentMobileExtension(data: Array<PaymentImage>) {\n return html`\n <div\n class=\"w-full max-w-xs mb-1 ml-8 md:hidden absolute px-4 ${this.isDark\n ? '-bottom-6'\n : 'bottom-0'}\"\n >\n <div\n class=\"w-full rounded p-3 max-w-xs ${this.isDark\n ? 'bg-dark-6 border-dark-6'\n : 'bg-white border-white'}\"\n >\n <svg\n class=\"right-0 h-4 mr-10 -mt-7 z-0 transform rotate-180 absolute ${this\n .isDark\n ? 'text-dark-6 border-dark-6'\n : 'text-white border-white '}\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 255 255\"\n >\n <polygon class=\"fill-current\" points=\"0,0 127.5,127.5 255,0\" />\n </svg>\n <div\n class=\"grid place-items-center items-center grid-flow-row grid-cols-5 grid-rows-2 gap-y-4\"\n >\n ${data.map(\n item =>\n html`<img\n class=\"object-cover\"\n src=${item.link}\n alt=\"${item.name}-logo-payment\"\n />`\n )}\n </div>\n </div>\n </div>\n `\n }\n\n private renderPackage(\n product: Product,\n isHighlight: boolean,\n isButtonSolid: boolean\n ) {\n const { isDark } = this\n\n const containerClass = `p-4 gap-2 flex flex-wrap items-center justify-between rounded-lg md:mx-0 w-full max-w-xs md:max-w-sm md:w-3/5 min-h-[68px]\n ${isDark ? ' bg-grey-600' : ' bg-white'}\n ${\n isHighlight ? 'outline-yellow-400 outline-2 outline mt-2' : ''\n } relative`\n const textColorClass = isDark ? 'text-dark-7' : 'text-grey-600'\n\n let buttonBgColorClass = ''\n if (isButtonSolid) {\n buttonBgColorClass = isDark\n ? 'bg-green-300 border border-green-400'\n : 'bg-green-500'\n } else {\n buttonBgColorClass = isDark\n ? ' border border-green-500 text-green-300'\n : ' border border-green-500 bg-white text-green-500'\n }\n\n const buttonClass = `h-8 rounded ${buttonBgColorClass} flex items-center`\n\n let buttonTextColor = ''\n if (isButtonSolid) {\n buttonTextColor = isDark ? ' text-black' : ' text-white'\n } else if (isDark) {\n buttonTextColor = 'text-green-300'\n } else {\n buttonTextColor = 'text-green-500'\n }\n const buttonTextClass = `text-sm font-bold py-2 px-4 ${buttonTextColor}`\n return html`\n <div class=\"${containerClass}\">\n <div class=\"flex flex-col gap-1\">\n <span\n class=\"${product.labelPackage\n ? 'block text-grey-500 text-xs font-sans leading-none'\n : 'hidden'}\"\n >${product.labelPackage}</span\n >\n <div class=\"flex items-baseline\">\n <h5 class=\"text-base font-bold text-orange-400 leading-none\">\n ${formatRupiah(product.price)}\n </h5>\n <h6 class=\"text-xs font-bold pl-1 ${textColorClass} leading-none\">\n / ${product.periode}\n </h6>\n </div>\n ${product.priceSlice || product.saveLabel\n ? html`\n <div class=\"flex flex-row gap-2\">\n ${product.priceSlice\n ? html`\n <div class=\"flex items-center text-xs font-sans\">\n <span\n class=\"${isDark\n ? 'text-white'\n : 'text-grey-400'} line-through leading-none\"\n >${formatRupiah(product.priceSlice)}</span\n >\n </div>\n `\n : nothing}\n ${product.saveLabel\n ? html`\n <div\n class=\"flex font-bold items-center text-xs font-sans bg-red-100 rounded p-1\"\n >\n <span class=\"text-red-500 leading-none\"\n >${product.saveLabel}</span\n >\n </div>\n `\n : nothing}\n </div>\n `\n : nothing}\n </div>\n <button\n class=\"${buttonClass}\"\n @click=${() =>\n this.redirectToCheckout(\n product.url,\n product.package,\n product.subscriptionId,\n product.price,\n product.position\n )}\n >\n <h6 class=\"${buttonTextClass}\">Langganan</h6>\n </button>\n ${isHighlight\n ? html`\n <div class=\"absolute -top-2 left-4\">\n <div\n class=\"rounded bg-yellow-300 px-2 h-4 items-center text-xs leading-none flex\"\n >\n <b class=\"text-grey-600\">Harga Terbaik</b>\n </div>\n </div>\n `\n : nothing}\n </div>\n `\n }\n\n private packagesSection(data: Packages) {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n return html`\n <div\n class=\"flex flex-col w-full items-center gap-2 md:gap-3 mt-4 md:mt-5\"\n >\n ${data.memberships.map(item =>\n this.renderPackage(item, item.isHighlight, item.isButtonSolid)\n )}\n ${this.freeTrialPackageSection()} ${this.freeTrialPopUp()}\n ${this.packages.swgEnable ? this.swgPackageSection() : nothing}\n ${isPro\n ? html`\n <kompasid-paywall-modal-register\n class=\"w-full max-w-xs md:max-w-sm\"\n >\n </kompasid-paywall-modal-register>\n `\n : nothing}\n </div>\n `\n }\n\n // private packagesSection(data: Packages) {\n // return html`\n // <div class=\"flex flex-col w-full items-center mt-8 md:mt-2 px-4\">\n // ${data.memberships.map(item =>\n // item.isHighlight\n // ? this.primaryPackages(item)\n // : this.secondaryPackages(item)\n // )}\n // ${this.freeTrialPackageSection()} ${this.freeTrialPopUp()}\n // ${this.packages.swgEnable ? this.swgPackageSection() : nothing}\n // </div>\n // `\n // }\n\n private topNavigator(type: PaywallType) {\n let icon: string\n let buttonText: string\n let clickAction: Function\n\n if (type === 'audio') {\n icon = getFontAwesomeIcon('fas', 'xmark', 12, 12)\n buttonText = 'Tutup'\n clickAction = this.togglePaywall.bind(this)\n } else {\n icon = getFontAwesomeIcon('fas', 'arrow-left', 10, 10)\n buttonText = 'Kembali'\n clickAction = this.redirectToPrevUrl.bind(this)\n }\n\n return html`\n <div class=\"flex md:hidden w-full\">\n <button\n @click=${clickAction}\n class=\"text-xs md:text-lg font-sans font-bold text-white flex flex-row h-8 px-4 items-center gap-1\"\n >\n <div\n class=\"icon-lg icon-white w-4 h-4 items-center justify-center flex\"\n >\n ${unsafeSVG(icon)}\n </div>\n <span> ${buttonText} </span>\n </button>\n </div>\n `\n }\n\n private helpDesk() {\n const textColorClass = this.isDark ? 'text-dark-7' : 'text-white'\n\n return html`\n <div class=\"self-center text-xs md:text-sm ${textColorClass}\">\n Butuh bantuan? Hubungi\n <button\n @click=${this.customerServiceClicked}\n class=\"font-bold underline\"\n >\n Layanan Pelanggan\n </button>\n </div>\n `\n }\n\n private userAction() {\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n const isAudio = this.type === 'audio'\n const paddingClass = isAudio ? 'md:py-3.5' : 'md:py-6'\n const backgroundDefault = isPro ? 'bg-grey-500' : 'bg-blue-600'\n const backgroundClass = this.isDark ? 'bg-dark-4' : backgroundDefault\n\n return html`\n <div\n class=\"flex py-5 px-8 w-full justify-evenly rounded-b-xl mt-5 relative ${paddingClass} md:mt-7 ${backgroundClass}\"\n >\n ${this.helpDesk()}\n </div>\n `\n }\n\n private introductoryPrice() {\n const textColorClass = this.isDark ? 'text-dark-7' : 'text-grey-600'\n return html` <div\n class=\"flex md:flex-col gap-1 items-center md:items-start md:w-1/2 md:justify-center\"\n >\n <div class=\"flex items-center gap-1 shrink-0\">\n <h5 class=\"text-base font-bold text-orange-400 leading-none\">\n ${this.packages.swgContent.introductory.price}\n </h5>\n ${this.packages.swgContent.introductory.duration\n ? html`\n <h6 class=\"text-xs font-bold ${textColorClass} leading-none\">\n ${this.packages.swgContent.introductory.duration}\n </h6>\n `\n : nothing}\n </div>\n <p class=\"text-xs flex ${textColorClass} leading-none\">\n ${this.packages.swgContent.introductory.description}\n </p>\n </div>`\n }\n\n private swgRegonText() {\n const textColorClass = this.isDark ? 'text-dark-7' : 'text-grey-600'\n return html`<p class=\"text-xs leading-4 md:max-w-[137px] ${textColorClass}\">\n ${this.packages.swgContent.default.description}\n </p>`\n }\n\n private swgPackageSection() {\n const { isDark } = this\n\n const containerClass = `flex flex-col md:flex-row gap-1 justify-center md:justify-between items-center px-4 rounded-lg md:mx-0 w-full min-h-[76px] md:min-h-[68px] max-w-xs md:max-w-sm md:w-3/5 ${\n isDark ? ' bg-grey-600' : ' bg-white'\n }`\n\n const buttonClass = `border space-x-2 justify-center border-grey-400 rounded-md px-[22px] md:px-6 shadow-sm flex h-max flex-row flex-nowrap py-[5.6px] md:py-1.5 items-center${\n isDark ? ' bg-grey-600' : ' bg-white border-grey-100'\n }`\n\n const textColorClass = isDark ? 'text-dark-7' : 'text-grey-500'\n\n const googleImageSrc = isDark\n ? 'https://cdn-www.kompas.id/paywall-asset/google-white.png'\n : 'https://cdn-www.kompas.id/paywall-asset/google.png'\n\n return html`\n <div class=\"${containerClass}\">\n ${this.isEntitledForIntroductoryPrice\n ? this.introductoryPrice()\n : this.swgRegonText()}\n <div class=\"md:w-1/2\">\n <button class=\"${buttonClass}\" id=\"subscribe-with-google\">\n <p\n class=\"text-[11px] md:text-xs whitespace-nowrap w-full ${textColorClass}\"\n >\n Subscribe with\n </p>\n <img\n class=\"object-scale-down h-[17px] md:h-5\"\n src=${googleImageSrc}\n alt=\"subscribe with google\"\n />\n </button>\n </div>\n </div>\n `\n }\n\n private openFreeTrialPopup() {\n const popup = this.shadowRoot?.getElementById('freeTrialPopup')\n popup?.classList.remove('hidden')\n }\n\n private closeFreeTrialPopup() {\n const popup = this.shadowRoot?.getElementById('freeTrialPopup')\n popup?.classList.add('hidden')\n }\n\n private freeTrialPopUp() {\n const { isDark } = this\n\n const googlePlayBadgeSrc = isDark\n ? 'https://cdn-www.kompas.id/web-component/Button_Download%20Google%20Play_Dark%20Mode.svg'\n : 'https://cdn-www.kompas.id/web-component/Button_Download%20Google%20Play_Light%20Mode.svg'\n\n const appStoreBadgeSrc = isDark\n ? 'https://cdn-www.kompas.id/web-component/Button_Download%20App%20Store_Dark%20Mode.svg'\n : 'https://cdn-www.kompas.id/web-component/Button_Download%20App%20Store_Light%20Mode.svg'\n\n return html`\n <div\n id=\"freeTrialPopup\"\n class=\"fixed w-full h-full inset-0 flex justify-center items-center z-50 bg-black bg-opacity-75 hidden\"\n >\n <div\n class=\"rounded w-11/12 sm:w-3/4 md:w-1/2 lg:w-1/3 2xl:w-1/4 p-6 text-center ${isDark\n ? 'bg-dark-4'\n : 'bg-white'}\"\n >\n <div class=\"w-full flex justify-end px-2\">\n <button\n @click=${this.closeFreeTrialPopup}\n class=\"w-8 h-8 pl-4 ${isDark ? 'text-grey-300' : 'text-grey-400'}\"\n >\n ${unsafeSVG(getFontAwesomeIcon('fas', 'xmark', 24, 24))}\n </button>\n </div>\n <div class=\"w-full flex justify-center\">\n <div class=\"w-3/4 lg:w-1/2\">\n <img\n src=\"https://cdn-www.kompas.id/web-component/kompas-free-trial.png\"\n alt=\"Free Trial\"\n />\n </div>\n </div>\n <p\n class=\"font-bold text-lg mt-4 ${isDark\n ? 'text-white'\n : 'text-grey-600'}\"\n >\n Coba Gratis Kompas.id di Aplikasi\n </p>\n <div\n class=\"hidden lg:block lg:flex flex rounded mt-4 px-8 py-4 items-center ${isDark\n ? 'bg-dark-3 border border-dark-9'\n : 'bg-white border border-grey-300'}\"\n >\n <div class=\"w-1/3 flex mr-6\">\n <img\n src=\"https://cdn-www.kompas.id/web-component/free-trial-qr-code.png\"\n alt=\"QR Code Deep Link\"\n />\n </div>\n <div\n class=\"w-2/3 text-base text-left ${isDark\n ? 'text-dark-7'\n : 'text-grey-600'}\"\n >\n ${this.packages.freeTrial?.desktopText}\n </div>\n </div>\n <div\n class=\"text-base text-center lg:hidden px-2 md:px-8 ${isDark\n ? 'text-dark-7'\n : 'text-grey-600'}\"\n >\n ${this.packages.freeTrial?.mobileText}\n </div>\n <div class=\"lg:flex flex justify-center mt-4 hidden lg:block gap-4\">\n <a\n href=\"https://play.google.com/store/apps/details?id=id.kompas.app\"\n target=\"_blank\"\n ><img src=\"${googlePlayBadgeSrc}\" alt=\"Google Play Badge\"\n /></a>\n <a\n href=\"https://apps.apple.com/id/app/kompas-id/id1242195037?l=id\"\n target=\"_blank\"\n ><img src=\"${appStoreBadgeSrc}\" alt=\"iOS App Store Badge\"\n /></a>\n </div>\n <button\n onclick=\"window.open('https://app.komp.as/langganan', '_blank')\"\n class=\"h-12 rounded-md mt-4 flex w-full items-center justify-center lg:hidden ${isDark\n ? 'bg-green-300'\n : 'bg-green-500'}\"\n >\n <h6 class=\"font-bold p-4 ${isDark ? 'text-dark-5' : 'text-white'}\">\n Unduh Sekarang\n </h6>\n </button>\n </div>\n </div>\n `\n }\n\n private freeTrialPackageSection() {\n if (this.packages.freeTrial) {\n return html`\n <div\n class=\"flex flex-wrap items-center justify-between py-3 px-4 rounded-lg md:mx-0 w-full h-[68px] max-w-xs md:max-w-sm md:w-3/5 mt-3 md:mt-4 ${this\n .isDark\n ? 'bg-grey-600'\n : 'bg-white'}\"\n >\n <div class=\"flex flex-col\">\n <div class=\"flex items-center\">\n <h5 class=\"text-base md:text-lg font-bold text-orange-400\">\n ${formatRupiah(0)}\n </h5>\n </div>\n <div class=\"flex items-center\">\n <p\n class=\"text-xs ${this.isDark ? 'text-dark-7' : 'text-grey-600'}\"\n >\n ${this.packages.freeTrial?.packageText}\n </p>\n </div>\n </div>\n <button\n @click=${this.openFreeTrialPopup}\n class=\"h-8 border border-green-500 rounded ${!this.isDark &&\n 'bg-white'}\"\n >\n <h6\n class=\"text-xs md:text-sm font-bold px-4 ${this.isDark\n ? 'text-green-300'\n : 'text-green-500'}\"\n >\n Coba Gratis\n </h6>\n </button>\n </div>\n `\n }\n return nothing\n }\n\n /**\n * Render Statement\n */\n\n render() {\n const isEpaper = this.type === 'epaper' || this.type === 'proMiningOutlook'\n const isAudio = this.type === 'audio'\n const { isDark } = this\n const { isLogin } = this\n\n const wrapperBodyClass = `wrapper-body\n ${isEpaper ? 'bg-transparent mx-2' : ''}\n ${\n isAudio\n ? 'fixed w-full h-full inset-0 flex justify-center items-center z-index-max bg-black bg-opacity-75 px-4 md:px-0'\n : ''\n }`\n .trim()\n .replace(/\\s+/g, ' ')\n\n const isPro =\n this.type === 'proMiningArticle' || this.type === 'proMiningOutlook'\n\n const backgroundDefault = isPro ? 'bg-grey-100' : 'bg-blue-100'\n const backgroundClass = isDark ? 'bg-dark-3' : backgroundDefault\n\n const containerClass = `flex w-full flex-col items-center justify-center rounded-xl md:pt-8 pt-6 relative ${backgroundClass}`\n\n // const borderClass = isDark ? 'border-dark-8' : 'border-blue-200'\n\n return html`\n <div class=\"${wrapperBodyClass}\">\n <div\n class=\"flex flex-col justify-center items-center w-full max-w-screen-sm my-5 relative\"\n >\n ${isEpaper || isAudio ? this.topNavigator(this.type) : nothing}\n <div class=\"${containerClass}\">\n <div class=\"px-6 md:px-0 items-center flex flex-col w-full\">\n ${this.headerSection(\n this.type,\n this.paywallData?.informations?.title ?? ''\n )}\n ${this.excerptSection(\n this.paywallData?.informations?.excerpt ?? ''\n )}\n ${this.packagesSection(\n this.paywallData?.packages ?? ({} as Packages)\n )}\n ${this.ctaPackages()}\n ${this.descriptionSection(\n this.paywallData?.informations?.description ?? []\n )}\n </div>\n ${!isLogin\n ? html` ${this.registrationSection(this.type)} `\n : nothing}\n ${this.userAction()}\n </div>\n ${this.isExtensionsOpened\n ? this.paymentMobileExtension(\n this.paywallData?.payment?.ekstension ?? []\n )\n : nothing}\n </div>\n </div>\n `\n }\n}\n"]}
|
|
@@ -63,7 +63,7 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
63
63
|
name="nameUser"
|
|
64
64
|
type="text"
|
|
65
65
|
placeholder=""
|
|
66
|
-
class="p-2 bg-grey-
|
|
66
|
+
class="p-2 bg-grey-600 rounded border border-grey-500"
|
|
67
67
|
.value="${this.formData.nameUser}"
|
|
68
68
|
@input="${this.handleInput}"
|
|
69
69
|
@blur="${this.handleBlur}"
|
|
@@ -94,7 +94,7 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
94
94
|
name="email"
|
|
95
95
|
type="email"
|
|
96
96
|
placeholder=""
|
|
97
|
-
class="p-2 bg-grey-
|
|
97
|
+
class="p-2 bg-grey-600 rounded border border-grey-500"
|
|
98
98
|
.value="${this.formData.email}"
|
|
99
99
|
@input="${this.handleInput}"
|
|
100
100
|
@blur="${this.handleBlur}"
|
|
@@ -125,7 +125,7 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
125
125
|
name="nomor"
|
|
126
126
|
type="tel"
|
|
127
127
|
placeholder=""
|
|
128
|
-
class="p-2 bg-grey-
|
|
128
|
+
class="p-2 bg-grey-600 rounded border border-grey-500"
|
|
129
129
|
.value="${this.formData.nomor}"
|
|
130
130
|
@input="${this.handleInput}"
|
|
131
131
|
@blur="${this.handleBlur}"
|
|
@@ -155,7 +155,7 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
155
155
|
name="nameCompany"
|
|
156
156
|
type="text"
|
|
157
157
|
placeholder=""
|
|
158
|
-
class="p-2 bg-grey-
|
|
158
|
+
class="p-2 bg-grey-600 rounded border border-grey-500"
|
|
159
159
|
.value="${this.formData.nameCompany}"
|
|
160
160
|
@input="${this.handleInput}"
|
|
161
161
|
@blur="${this.handleBlur}"
|
|
@@ -325,7 +325,7 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
325
325
|
render() {
|
|
326
326
|
return this.showModalRegister
|
|
327
327
|
? html `<div
|
|
328
|
-
class="
|
|
328
|
+
class="p-4 gap-2 font-sans flex flex-wrap items-center justify-between rounded-lg md:mx-0 w-full min-h-[68px] bg-white relative"
|
|
329
329
|
>
|
|
330
330
|
<div class="flex flex-col gap-1">
|
|
331
331
|
<span class="text-xs leading-tight text-grey-500">
|
|
@@ -343,7 +343,7 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
343
343
|
? 'bg-green-500 text-white'
|
|
344
344
|
: 'bg-white border border-green-500 text-green-500'} flex items-center"
|
|
345
345
|
>
|
|
346
|
-
<h6 class="text-
|
|
346
|
+
<h6 class="text-sm font-bold py-2 px-4">
|
|
347
347
|
${this.dataModalRegister.card.textButton}
|
|
348
348
|
</h6>
|
|
349
349
|
</button>
|
|
@@ -357,12 +357,12 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
357
357
|
@keydown=${() => this.closeModal()}
|
|
358
358
|
>
|
|
359
359
|
<div
|
|
360
|
-
class="modal-content max-w-7xl w-full flex flex-col lg:flex-row max-h-full overflow-auto"
|
|
360
|
+
class="modal-content max-w-7xl w-full flex flex-col lg:flex-row max-h-full overflow-auto lg:overflow-hidden"
|
|
361
361
|
@click="${(e) => e.stopPropagation()}"
|
|
362
362
|
@keydown=${(e) => e.stopPropagation()}
|
|
363
363
|
>
|
|
364
364
|
<button class="close-button" @click="${this.closeModal}">
|
|
365
|
-
${unsafeSVG(getFontAwesomeIcon('fa', 'times',
|
|
365
|
+
${unsafeSVG(getFontAwesomeIcon('fa', 'times', 32, 32))}
|
|
366
366
|
</button>
|
|
367
367
|
<div
|
|
368
368
|
class="bg-grey-600 lg:max-w-[515px] w-full p-4 md:p-16 justify-between items-center flex flex-col relative"
|
|
@@ -434,22 +434,22 @@ let KompasPaywallModalRegister = class KompasPaywallModalRegister extends LitEle
|
|
|
434
434
|
Butuh bantuan? Hubungi
|
|
435
435
|
<button
|
|
436
436
|
@click=${this.customerServiceClicked}
|
|
437
|
-
class="font-bold underline"
|
|
437
|
+
class="font-bold underline text-white"
|
|
438
438
|
>
|
|
439
439
|
${this.dataModalRegister.modal.registerPopUp.hotline
|
|
440
440
|
.text}
|
|
441
441
|
</button>
|
|
442
442
|
</div>
|
|
443
443
|
</div>
|
|
444
|
-
<div class="w-full h-full">
|
|
444
|
+
<div class="w-full h-full lg:overflow-auto">
|
|
445
445
|
${this.templateForm()}
|
|
446
446
|
<div
|
|
447
|
-
class="block lg:hidden text-grey-300 py-5 bg-grey-600 w-full text-center"
|
|
447
|
+
class="block lg:hidden text-grey-300 py-5 bg-grey-600 w-full text-center text-xs"
|
|
448
448
|
>
|
|
449
449
|
Butuh bantuan? Hubungi
|
|
450
450
|
<button
|
|
451
451
|
@click=${this.customerServiceClicked}
|
|
452
|
-
class="font-bold underline"
|
|
452
|
+
class="font-bold underline text-white"
|
|
453
453
|
>
|
|
454
454
|
${this.dataModalRegister.modal.registerPopUp.hotline
|
|
455
455
|
.text}
|
|
@@ -524,15 +524,12 @@ KompasPaywallModalRegister.styles = [
|
|
|
524
524
|
height: 100%;
|
|
525
525
|
background-color: rgba(0, 0, 0, 0.5);
|
|
526
526
|
display: flex;
|
|
527
|
-
justify-content: center;
|
|
528
|
-
align-items: center;
|
|
529
527
|
z-index: 1000;
|
|
530
528
|
}
|
|
531
529
|
|
|
532
530
|
.modal-content {
|
|
533
531
|
background-color: #222222;
|
|
534
532
|
border-radius: 12px;
|
|
535
|
-
overflow: hidden;
|
|
536
533
|
position: relative;
|
|
537
534
|
}
|
|
538
535
|
|