@kompasid/lit-web-components 0.9.38 → 0.9.40

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/demo/paywall.html CHANGED
@@ -38,6 +38,7 @@
38
38
  <script type="module">
39
39
  import { html, render } from 'lit'
40
40
  import '../dist/src/components/kompasid-paywall/KompasPaywall.js'
41
+ import '../dist/src/components/kompasid-metered-paywall/KompasMeteredPaywall.js'
41
42
 
42
43
  const type = 'reguler'
43
44
  const theme = ''
@@ -59,7 +60,7 @@
59
60
  const trackerPageDomain = 'page_domain'
60
61
  const meteredWallType = 'metered_wall_type'
61
62
  const trackerEpaperEdition = 'edition'
62
- const meteredWallBalance = 0
63
+ const meteredWallBalance = 4
63
64
  const isLogin = false
64
65
  const isWithHeader = false
65
66
  const textHeader = 'this is message for header information'
@@ -88,9 +89,8 @@
88
89
  .subscriptionStatus=${subscriptionStatus}
89
90
  .tracker_page_domain=${trackerPageDomain}
90
91
  .metered_wall_type=${meteredWallType}
91
- .subscriptionStatus=${subscriptionStatus}
92
92
  .tracker_epaper_edition=${trackerEpaperEdition}
93
- .metered_wall_balance=${meteredWallBalance}
93
+ .tracker_metered_wall_balance=${meteredWallBalance}
94
94
  .tracker_content_publisher=${trackerContentPublisher}
95
95
  .isLogin=${isLogin}
96
96
  .isWithHeader=${isWithHeader}
@@ -100,6 +100,24 @@
100
100
  .tracker_subscription_status=${trackerSubscriptionStatus}
101
101
  >
102
102
  </kompasid-paywall>
103
+
104
+ <kompasid-metered-paywall
105
+ .paywall_location=${paywallLocation}
106
+ .paywall_subscription_id=${paywallSubscriptionId}
107
+ .paywall_subscription_price=${paywallSubscriptionPrice}
108
+ .paywall_position=${paywallPosition}
109
+ .tracker_page_type=${trackerPageType}
110
+ .tracker_content_id=${trackerContentId}
111
+ .tracker_content_type=${trackerContentType}
112
+ .tracker_content_title=${trackerContentTitle}
113
+ .tracker_content_categories=${trackerContentCategories}
114
+ .tracker_user_type=${trackerUserType}
115
+ .subscriptionStatus=${subscriptionStatus}
116
+ .tracker_page_domain=${trackerPageDomain}
117
+ .tracker_metered_wall_type=${meteredWallType}
118
+ .tracker_metered_wall_balance=${meteredWallBalance}
119
+ ></kompasid-metered-paywall>
120
+ ${meteredWallBalance}
103
121
  `,
104
122
  document.body
105
123
  )
@@ -2,13 +2,11 @@ import { LitElement, nothing } from 'lit';
2
2
  export declare class KompasMeteredPaywall extends LitElement {
3
3
  static styles: import("lit").CSSResult[];
4
4
  private isLoading;
5
- private maxQuota;
6
5
  private packageData;
7
6
  /**
8
7
  * Props
9
8
  */
10
9
  /**
11
- * prop countdownArticle untuk menghandle sudah berapa artikel gratis yang user baca.
12
10
  * prop paywall_location = The location where user encounter the paywall
13
11
  * prop paywall_subscription_package = The name of the subscription package viewed by user
14
12
  * prop paywall_subscription_id = The ID of the subscription package viewed by user
@@ -23,10 +21,8 @@ export declare class KompasMeteredPaywall extends LitElement {
23
21
  * prop tracker_subscription_status = Status of their subscription
24
22
  * prop tracker_page_domain = Page Domain
25
23
  * prop tracker_metered_wall_type = The type of Metered Wall
26
- * prop tracker_epaper_edition = The edition of epaper viewed by user
27
24
  * prop tracker_metered_wall_balance = The balance of their metered wall
28
25
  */
29
- countdownArticle: number;
30
26
  paywall_location: string;
31
27
  paywall_subscription_package: string;
32
28
  paywall_subscription_id: string;
@@ -42,7 +38,7 @@ export declare class KompasMeteredPaywall extends LitElement {
42
38
  tracker_page_domain: string;
43
39
  tracker_metered_wall_type: string;
44
40
  tracker_metered_wall_balance: number;
45
- private getCountdownArticle;
41
+ private textSubscription;
46
42
  connectedCallback(): void;
47
43
  getMeteredPaywallData(): Promise<void>;
48
44
  private redirectToBerlangganan;
@@ -6,7 +6,6 @@ let KompasMeteredPaywall = class KompasMeteredPaywall extends LitElement {
6
6
  constructor() {
7
7
  super(...arguments);
8
8
  this.isLoading = true;
9
- this.maxQuota = 3;
10
9
  this.packageData = {
11
10
  subscriptionText: 'Langganan untuk akses tanpa batas',
12
11
  buttonText: 'Langganan',
@@ -16,7 +15,6 @@ let KompasMeteredPaywall = class KompasMeteredPaywall extends LitElement {
16
15
  * Props
17
16
  */
18
17
  /**
19
- * prop countdownArticle untuk menghandle sudah berapa artikel gratis yang user baca.
20
18
  * prop paywall_location = The location where user encounter the paywall
21
19
  * prop paywall_subscription_package = The name of the subscription package viewed by user
22
20
  * prop paywall_subscription_id = The ID of the subscription package viewed by user
@@ -31,10 +29,8 @@ let KompasMeteredPaywall = class KompasMeteredPaywall extends LitElement {
31
29
  * prop tracker_subscription_status = Status of their subscription
32
30
  * prop tracker_page_domain = Page Domain
33
31
  * prop tracker_metered_wall_type = The type of Metered Wall
34
- * prop tracker_epaper_edition = The edition of epaper viewed by user
35
32
  * prop tracker_metered_wall_balance = The balance of their metered wall
36
33
  */
37
- this.countdownArticle = 0;
38
34
  this.paywall_location = '';
39
35
  this.paywall_subscription_package = '';
40
36
  this.paywall_subscription_id = '';
@@ -51,25 +47,7 @@ let KompasMeteredPaywall = class KompasMeteredPaywall extends LitElement {
51
47
  this.tracker_metered_wall_type = '';
52
48
  this.tracker_metered_wall_balance = 0;
53
49
  }
54
- getCountdownArticle() {
55
- // const getCountdown = this.countdownArticle
56
- // const { maxQuota } = this
57
- // if (getCountdown > 0 && getCountdown < maxQuota) {
58
- // return html`
59
- // <p>
60
- // Anda memiliki sisa
61
- // <b>${maxQuota - getCountdown} dari ${maxQuota}</b> artikel premium
62
- // gratis bulan ini. ${this.packageData.subscriptionText}
63
- // </p>
64
- // `
65
- // }
66
- // return html`
67
- // <p>
68
- // Anda sedang membaca <b>artikel gratis terakhir bulan ini.</b> ${this
69
- // .packageData.subscriptionText}
70
- // </p>
71
- // `
72
- // Handle tanpa kuota
50
+ textSubscription() {
73
51
  return html ` <p>${this.packageData.subscriptionText}</p> `;
74
52
  }
75
53
  connectedCallback() {
@@ -117,7 +95,7 @@ let KompasMeteredPaywall = class KompasMeteredPaywall extends LitElement {
117
95
  subscription_status: this.tracker_subscription_status,
118
96
  page_domain: this.tracker_page_domain || 'Kompas.id',
119
97
  metered_wall_type: this.tracker_metered_wall_type || 'MP',
120
- metered_wall_balance: this.maxQuota - this.countdownArticle + 1,
98
+ metered_wall_balance: this.tracker_metered_wall_balance || 0,
121
99
  });
122
100
  }
123
101
  dataLayeronMeteredPaywall() {
@@ -137,7 +115,7 @@ let KompasMeteredPaywall = class KompasMeteredPaywall extends LitElement {
137
115
  subscription_status: this.tracker_subscription_status,
138
116
  page_domain: this.tracker_page_domain || 'Kompas.id',
139
117
  metered_wall_type: this.tracker_metered_wall_type || 'MP',
140
- metered_wall_balance: this.maxQuota - this.countdownArticle + 1,
118
+ metered_wall_balance: this.tracker_metered_wall_balance || 0,
141
119
  });
142
120
  }
143
121
  render() {
@@ -150,7 +128,7 @@ let KompasMeteredPaywall = class KompasMeteredPaywall extends LitElement {
150
128
  <div
151
129
  class="text-grey-600 text-sm md:text-lg self-center text-left"
152
130
  >
153
- ${this.getCountdownArticle()}
131
+ ${this.textSubscription()}
154
132
  </div>
155
133
  <div class="self-center">
156
134
  <button
@@ -198,15 +176,9 @@ KompasMeteredPaywall.styles = [
198
176
  __decorate([
199
177
  state()
200
178
  ], KompasMeteredPaywall.prototype, "isLoading", void 0);
201
- __decorate([
202
- state()
203
- ], KompasMeteredPaywall.prototype, "maxQuota", void 0);
204
179
  __decorate([
205
180
  state()
206
181
  ], KompasMeteredPaywall.prototype, "packageData", void 0);
207
- __decorate([
208
- property({ type: Number })
209
- ], KompasMeteredPaywall.prototype, "countdownArticle", void 0);
210
182
  __decorate([
211
183
  property({ type: String })
212
184
  ], KompasMeteredPaywall.prototype, "paywall_location", void 0);
@@ -256,4 +228,24 @@ KompasMeteredPaywall = __decorate([
256
228
  customElement('kompasid-metered-paywall')
257
229
  ], KompasMeteredPaywall);
258
230
  export { KompasMeteredPaywall };
231
+ // Leftover code sebelum nya
232
+ // @state() private maxQuota: number = 3
233
+ // const getCountdown = this.countdownArticle
234
+ // const { maxQuota } = this
235
+ // if (getCountdown > 0 && getCountdown < maxQuota) {
236
+ // return html`
237
+ // <p>
238
+ // Anda memiliki sisa
239
+ // <b>${maxQuota - getCountdown} dari ${maxQuota}</b> artikel premium
240
+ // gratis bulan ini. ${this.packageData.subscriptionText}
241
+ // </p>
242
+ // `
243
+ // }
244
+ // return html`
245
+ // <p>
246
+ // Anda sedang membaca <b>artikel gratis terakhir bulan ini.</b> ${this
247
+ // .packageData.subscriptionText}
248
+ // </p>
249
+ // `
250
+ // Handle tanpa kuota
259
251
  //# sourceMappingURL=KompasMeteredPaywall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KompasMeteredPaywall.js","sourceRoot":"","sources":["../../../../src/components/kompasid-metered-paywall/KompasMeteredPaywall.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement, nothing } from 'lit'\nimport { customElement, state, property } from 'lit/decorators.js'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\nimport { PackageData } from './types.js'\n\n@customElement('kompasid-metered-paywall')\nexport class KompasMeteredPaywall extends LitElement {\n static styles = [\n css`\n .text-transition {\n width: 100%;\n height: 5rem;\n }\n\n .body {\n position: sticky;\n top: 0;\n height: 100%;\n width: 100%;\n }\n\n .icon {\n height: 1rem;\n color: #48bb78;\n }\n\n .icon.lg {\n height: 1.5rem;\n }\n\n .icon.lg svg {\n height: 1.5rem;\n }\n `,\n TWStyles,\n ]\n\n @state() private isLoading: Boolean = true\n @state() private maxQuota: number = 3\n @state() private packageData: PackageData = {\n subscriptionText: 'Langganan untuk akses tanpa batas',\n buttonText: 'Langganan',\n subscriptionUrl:\n 'https://www.kompas.id/berlangganan?open_from=Metered_Paywall',\n }\n\n /**\n * Props\n */\n /**\n * prop countdownArticle untuk menghandle sudah berapa artikel gratis yang user baca.\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 ther 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_epaper_edition = The edition of epaper viewed by user\n * prop tracker_metered_wall_balance = The balance of their metered wall\n */\n @property({ type: Number }) countdownArticle = 0\n @property({ type: String }) paywall_location = ''\n @property({ type: String }) paywall_subscription_package = ''\n @property({ type: String }) paywall_subscription_id = ''\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_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\n private getCountdownArticle() {\n // const getCountdown = this.countdownArticle\n // const { maxQuota } = this\n\n // if (getCountdown > 0 && getCountdown < maxQuota) {\n // return html`\n // <p>\n // Anda memiliki sisa\n // <b>${maxQuota - getCountdown} dari ${maxQuota}</b> artikel premium\n // gratis bulan ini. ${this.packageData.subscriptionText}\n // </p>\n // `\n // }\n // return html`\n // <p>\n // Anda sedang membaca <b>artikel gratis terakhir bulan ini.</b> ${this\n // .packageData.subscriptionText}\n // </p>\n // `\n\n // Handle tanpa kuota\n return html` <p>${this.packageData.subscriptionText}</p> `\n }\n\n override connectedCallback() {\n super.connectedCallback()\n this.getMeteredPaywallData()\n this.dataLayeronMeteredPaywall()\n }\n\n async getMeteredPaywallData() {\n try {\n const response = await fetch(\n 'https://cdn-www.kompas.id/web-component/metered-paywall.json'\n )\n const json = await response.json()\n this.packageData = {\n subscriptionText: json.subscriptionText,\n buttonText: json.buttonText,\n subscriptionUrl: json.subscriptionUrl,\n }\n } catch (error) {\n throw Error('Failed to get metered paywall data')\n } finally {\n this.isLoading = false\n }\n }\n\n private redirectToBerlangganan() {\n this.dataLayeronLanggananButton()\n const { origin, pathname } = window.location\n const referrer = origin + pathname\n window.location.href = `${this.packageData.subscriptionUrl}&referrer=${referrer}`\n }\n\n private dataLayeronLanggananButton() {\n window.dataLayer.push({\n event: 'subscribe_button_clicked',\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: this.paywall_subscription_package || '',\n paywall_subscription_id: this.paywall_subscription_id || '',\n paywall_subscription_price: this.paywall_subscription_price || 0,\n paywall_position: this.paywall_position || 0,\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 user_type: this.tracker_user_type || 'R',\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 || 'MP',\n metered_wall_balance: this.maxQuota - this.countdownArticle + 1,\n })\n }\n\n private dataLayeronMeteredPaywall() {\n window.dataLayer.push({\n event: 'paywall_viewed',\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: this.paywall_subscription_package || '',\n paywall_subscription_id: this.paywall_subscription_id || '',\n paywall_subscription_price: this.paywall_subscription_price || 0,\n paywall_position: this.paywall_position || 0,\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 user_type: this.tracker_user_type || 'R',\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 || 'MP',\n metered_wall_balance: this.maxQuota - this.countdownArticle + 1,\n })\n }\n\n render() {\n return !this.isLoading\n ? html`\n <div class=\"sticky bottom-0 w-full h-full\">\n <div\n class=\"flex flex-row w-full bg-blue-100 py-4 justify-center space-x-4 px-4 lg:px-0 bottom-0\"\n >\n <div\n class=\"text-grey-600 text-sm md:text-lg self-center text-left\"\n >\n ${this.getCountdownArticle()}\n </div>\n <div class=\"self-center\">\n <button\n @click=\"${this.redirectToBerlangganan}\"\n class=\"bg-green-500 p-2 px-5 rounded-md font-bold text-grey-100 text-sm md:text-base font-sans\"\n >\n ${this.packageData.buttonText}\n </button>\n </div>\n </div>\n </div>\n `\n : nothing\n }\n}\n"]}
1
+ {"version":3,"file":"KompasMeteredPaywall.js","sourceRoot":"","sources":["../../../../src/components/kompasid-metered-paywall/KompasMeteredPaywall.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement, nothing } from 'lit'\nimport { customElement, state, property } from 'lit/decorators.js'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\nimport { PackageData } from './types.js'\n\n@customElement('kompasid-metered-paywall')\nexport class KompasMeteredPaywall extends LitElement {\n static styles = [\n css`\n .text-transition {\n width: 100%;\n height: 5rem;\n }\n\n .body {\n position: sticky;\n top: 0;\n height: 100%;\n width: 100%;\n }\n\n .icon {\n height: 1rem;\n color: #48bb78;\n }\n\n .icon.lg {\n height: 1.5rem;\n }\n\n .icon.lg svg {\n height: 1.5rem;\n }\n `,\n TWStyles,\n ]\n\n @state() private isLoading: Boolean = true\n @state() private packageData: PackageData = {\n subscriptionText: 'Langganan untuk akses tanpa batas',\n buttonText: 'Langganan',\n subscriptionUrl:\n 'https://www.kompas.id/berlangganan?open_from=Metered_Paywall',\n }\n\n /**\n * Props\n */\n /**\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 ther 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 */\n @property({ type: String }) paywall_location = ''\n @property({ type: String }) paywall_subscription_package = ''\n @property({ type: String }) paywall_subscription_id = ''\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_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\n private textSubscription() {\n return html` <p>${this.packageData.subscriptionText}</p> `\n }\n\n override connectedCallback() {\n super.connectedCallback()\n this.getMeteredPaywallData()\n this.dataLayeronMeteredPaywall()\n }\n\n async getMeteredPaywallData() {\n try {\n const response = await fetch(\n 'https://cdn-www.kompas.id/web-component/metered-paywall.json'\n )\n const json = await response.json()\n this.packageData = {\n subscriptionText: json.subscriptionText,\n buttonText: json.buttonText,\n subscriptionUrl: json.subscriptionUrl,\n }\n } catch (error) {\n throw Error('Failed to get metered paywall data')\n } finally {\n this.isLoading = false\n }\n }\n\n private redirectToBerlangganan() {\n this.dataLayeronLanggananButton()\n const { origin, pathname } = window.location\n const referrer = origin + pathname\n window.location.href = `${this.packageData.subscriptionUrl}&referrer=${referrer}`\n }\n\n private dataLayeronLanggananButton() {\n window.dataLayer.push({\n event: 'subscribe_button_clicked',\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: this.paywall_subscription_package || '',\n paywall_subscription_id: this.paywall_subscription_id || '',\n paywall_subscription_price: this.paywall_subscription_price || 0,\n paywall_position: this.paywall_position || 0,\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 user_type: this.tracker_user_type || 'R',\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 || 'MP',\n metered_wall_balance: this.tracker_metered_wall_balance || 0,\n })\n }\n\n private dataLayeronMeteredPaywall() {\n window.dataLayer.push({\n event: 'paywall_viewed',\n paywall_location: this.paywall_location || '',\n paywall_subscription_package: this.paywall_subscription_package || '',\n paywall_subscription_id: this.paywall_subscription_id || '',\n paywall_subscription_price: this.paywall_subscription_price || 0,\n paywall_position: this.paywall_position || 0,\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 user_type: this.tracker_user_type || 'R',\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 || 'MP',\n metered_wall_balance: this.tracker_metered_wall_balance || 0,\n })\n }\n\n render() {\n return !this.isLoading\n ? html`\n <div class=\"sticky bottom-0 w-full h-full\">\n <div\n class=\"flex flex-row w-full bg-blue-100 py-4 justify-center space-x-4 px-4 lg:px-0 bottom-0\"\n >\n <div\n class=\"text-grey-600 text-sm md:text-lg self-center text-left\"\n >\n ${this.textSubscription()}\n </div>\n <div class=\"self-center\">\n <button\n @click=\"${this.redirectToBerlangganan}\"\n class=\"bg-green-500 p-2 px-5 rounded-md font-bold text-grey-100 text-sm md:text-base font-sans\"\n >\n ${this.packageData.buttonText}\n </button>\n </div>\n </div>\n </div>\n `\n : nothing\n }\n}\n\n// Leftover code sebelum nya\n// @state() private maxQuota: number = 3\n// const getCountdown = this.countdownArticle\n// const { maxQuota } = this\n\n// if (getCountdown > 0 && getCountdown < maxQuota) {\n// return html`\n// <p>\n// Anda memiliki sisa\n// <b>${maxQuota - getCountdown} dari ${maxQuota}</b> artikel premium\n// gratis bulan ini. ${this.packageData.subscriptionText}\n// </p>\n// `\n// }\n// return html`\n// <p>\n// Anda sedang membaca <b>artikel gratis terakhir bulan ini.</b> ${this\n// .packageData.subscriptionText}\n// </p>\n// `\n\n// Handle tanpa kuota\n"]}
@@ -312,6 +312,8 @@ let KompasPaywall = class KompasPaywall extends LitElement {
312
312
  const variantTarget = target.variant;
313
313
  const checkVariant = variantTarget.toLowerCase() === stringVariant.toLowerCase();
314
314
  const checkTags = () => {
315
+ if (!tagsTarget.length)
316
+ return false;
315
317
  for (const item of tagsTarget) {
316
318
  if (!stringTag.toLowerCase().includes(item.toLowerCase())) {
317
319
  return false;
@@ -339,7 +341,10 @@ let KompasPaywall = class KompasPaywall extends LitElement {
339
341
  const nowDate = new Date();
340
342
  const isoDateString = publishedDate.replace(' ', 'T');
341
343
  const publishedDateObj = new Date(isoDateString);
342
- const isWithin90Days = differenceInDays(publishedDateObj, nowDate) <= -90; // differenceInDays jika tanggal telah melewati 90 hari
344
+ const isWithin90Days = jsonContextual.articleAgeTreshold
345
+ ? differenceInDays(publishedDateObj, nowDate) <
346
+ -jsonContextual.articleAgeTreshold
347
+ : false; // differenceInDays jika tanggal telah melewati 90 hari
343
348
  const hasMatchingTagsAndVariants = this.checkAllInString(jsonContextual, trackerTags, trackerVariant); // checkAllInString jika ada tag yang cocok
344
349
  return isWithin90Days || hasMatchingTagsAndVariants;
345
350
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KompasPaywall.js","sourceRoot":"","sources":["../../../../src/components/kompasid-paywall/KompasPaywall.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement, nothing } from 'lit'\nimport { property, state, customElement } from 'lit/decorators.js'\nimport { differenceInDays } from 'date-fns'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\nimport { PaywallProduct, PaywallType, Contextual } from './types.js'\nimport '../kompasid-paywall-body/KompasPaywallBody.js'\nimport '../kompasid-paywall-banner-registration/KompasPaywallBannerRegistration.js'\nimport '../kompasid-paywall-information-header/KompasPaywallInformationHeader.js'\n\n@customElement('kompasid-paywall')\nexport class KompasPaywall extends LitElement {\n static styles = [\n css`\n :host {\n font-family: 'PT Sans', sans-serif;\n }\n\n .transparent-linear {\n background-image: -webkit-gradient(\n linear,\n left top,\n left bottom,\n from(hsla(0, 0%, 100%, 0)),\n to(#fff)\n );\n background-image: linear-gradient(180deg, hsla(0, 0%, 100%, 0), #fff);\n }\n\n .transparent-linear-dark {\n background-image: -webkit-gradient(\n linear,\n left top,\n left bottom,\n from(hsla(0, 0%, 18%, 0)),\n to(#121212)\n );\n background-image: linear-gradient(180deg, hsla(0, 0%, 18%, 0), #121212);\n }\n `,\n TWStyles,\n ]\n\n /**\n * Props\n */\n /**\n * property isLogin untuk menghandle apakah user sudah login atau belum\n * property countdownArticle untuk menghandle count artikel\n * property type untuk menghandle tipe epaper\n * property isWithHeader untuk menghandle paywall information header\n * property textHeader digunakan sebagai text pada paywall information header\n * property paywallData untuk menghandle data paywall\n * property userGuid untuk menghandle user Guid\n * property subscriptionStatus untuk menghandle status subscription user\n * property swgEnable untuk menghandle swg apakah di aktifkan atau tidak\n * property paywall_location = The location where user encounter the paywall\n * property paywall_subscription_package = The name of the subscription package viewed by user\n * property paywall_subscription_id = The ID of the subscription package viewed by user\n * property paywall_subscription_price = The price of the subscriprtion package viewed by user\n * property paywall_position = The position of the subscription package viewed by user\n * property page_type = Type of the page\n * property content_id = ID of article (slug)\n * property content_type = Whether it's free article or paid article\n * property content_title = The title of article\n * property tracker_content_categories = The category of the content\n * property user_type = Type of user based on their subscription\n * property subscription_status = Status of their subscription\n * property page_domain = Page Domain\n * property metered_wall_type = The type of Metered Wall\n * property metered_wall_balance = The balance of their metered wall\n * property epaper_edition = The edition of epaper viewed by user\n * property theme = The theme of the paywall component\n */\n\n @state() private paywallData: PaywallProduct = {} as PaywallProduct\n @state() private isOpen: Boolean = true\n @state() private isLoading: Boolean = true\n\n @property({ type: Boolean }) isLogin = false\n @property({ type: Number }) countdownArticle = 0\n @property({ type: String }) type: PaywallType = 'reguler'\n @property({ type: Boolean }) isWithHeader = false\n @property({ type: String }) textHeader = ''\n @property({ type: String }) userGuid = ''\n @property({ type: String }) subscriptionStatus = ''\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\n mockResult: PaywallProduct = {\n informations: {\n title: '',\n description: [],\n register: {\n img: 'https://www.kompas.id/img/backgrounds/ilustrasi-banner-registration.png',\n title: 'Ingin Membaca Artikel Ini Secara Utuh?',\n subtitle: 'Daftar akun untuk membaca 5 artikel premium secara gratis ',\n label: 'Daftar Sekarang ',\n },\n meterred: {\n maxQuota: 5,\n label: 'Langganan',\n maxQuotaMessage: 'Akses artikel gratis Anda bulan ini sudah habis.',\n url: 'https://kompas.id/berlangganan',\n },\n cta: {\n show: true,\n text: 'Lihat Paket Lainnya',\n url: 'https://www.kompas.id/berlangganan/v2',\n },\n },\n packages: {\n title: 'Sekali bayar, tanpa perpanjang otomatis',\n memberships: [],\n swgEnable: false,\n freeTrial: {\n packageText: 'untuk 3 hari pertama',\n desktopText:\n 'Coba gratis 3 hari Kompas.id melalui aplikasi. Pindai kode QR dengan ponsel atau tablet untuk mengunduh aplikasi.',\n mobileText:\n 'Dapatkan akses gratis selama 3 hari ke konten dan fitur premium Kompas.id di aplikasi.',\n },\n swgContent: {\n introductory: {\n price: 'Rp. 10.000',\n description: 'untuk 1 bulan pertama',\n duration: '',\n },\n default: {\n price: '',\n description: 'Berlangganan lebih mudah dengan Google',\n duration: '',\n },\n },\n },\n payment: {\n desktop: [\n {\n name: 'gopay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/gopay${this.darkUrl}.svg`,\n },\n {\n name: 'ovo',\n link: `https://cdn-www.cloudfront.net/paywall-asset/ovo${this.darkUrl}.svg`,\n },\n {\n name: 'mastercard',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mastercard${this.darkUrl}.svg`,\n },\n {\n name: 'bri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bri${this.darkUrl}.svg`,\n },\n {\n name: 'bcaklikpay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca-klik-pay${this.darkUrl}.svg`,\n },\n {\n name: 'indomaret',\n link: `https://cdn-www.cloudfront.net/paywall-asset/indomaret${this.darkUrl}.svg`,\n },\n {\n name: 'jcb',\n link: `https://cdn-www.cloudfront.net/paywall-asset/jcb${this.darkUrl}.svg`,\n },\n {\n name: 'dana',\n link: `https://cdn-www.cloudfront.net/paywall-asset/dana${this.darkUrl}.svg`,\n },\n {\n name: 'visa',\n link: `https://cdn-www.cloudfront.net/paywall-asset/visa${this.darkUrl}.svg`,\n },\n {\n name: 'mandiri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mandiri${this.darkUrl}.svg`,\n },\n {\n name: 'bca',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca${this.darkUrl}.svg`,\n },\n {\n name: 'bni',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bni${this.darkUrl}.svg`,\n },\n {\n name: 'akulaku',\n link: `https://cdn-www.cloudfront.net/paywall-asset/akulaku${this.darkUrl}.svg`,\n },\n ],\n mobile: [\n {\n name: 'gopay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/gopay${this.darkUrl}.svg`,\n },\n {\n name: 'ovo',\n link: `https://cdn-www.cloudfront.net/paywall-asset/ovo${this.darkUrl}.svg`,\n },\n {\n name: 'visa',\n link: `https://cdn-www.cloudfront.net/paywall-asset/visa${this.darkUrl}.svg`,\n },\n {\n name: 'mastercard',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mastercard${this.darkUrl}.svg`,\n },\n ],\n ekstension: [\n {\n name: 'dana',\n link: `https://cdn-www.cloudfront.net/paywall-asset/dana${this.darkUrl}.svg`,\n },\n {\n name: 'mandiri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mandiri${this.darkUrl}.svg`,\n },\n {\n name: 'bri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bri${this.darkUrl}.svg`,\n },\n {\n name: 'bcaklikpay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca-klik-pay${this.darkUrl}.svg`,\n },\n {\n name: 'akulaku',\n link: `https://cdn-www.cloudfront.net/paywall-asset/akulaku${this.darkUrl}.svg`,\n },\n {\n name: 'bni',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bni${this.darkUrl}.svg`,\n },\n {\n name: 'indomaret',\n link: `https://cdn-www.cloudfront.net/paywall-asset/indomaret${this.darkUrl}.svg`,\n },\n {\n name: 'bca',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca${this.darkUrl}.svg`,\n },\n {\n name: 'jcb',\n link: `https://cdn-www.cloudfront.net/paywall-asset/jcb${this.darkUrl}.svg`,\n },\n ],\n },\n }\n\n get darkUrl() {\n return this.theme === 'dark' ? '-dark' : ''\n }\n\n override connectedCallback() {\n super.connectedCallback()\n this.getPaywallData()\n }\n\n async getPaywallData() {\n try {\n const [paywallResponse, contextualResponse] = await Promise.all([\n fetch('https://cdn-www.kompas.id/web-component/paywall.json'),\n fetch(\n 'https://cdn-www.kompas.id/web-component/contextual_paywall.json'\n ),\n ])\n const json = await paywallResponse.json()\n const isContextual = this.contextualScenario(\n await contextualResponse.json()\n )\n const listType = [\n 'reguler',\n 'audio',\n 'proMiningOutlook',\n 'proMiningArticle',\n 'epaper',\n 'custom',\n ]\n const findTypeOnTheList = listType.includes(this.type)\n const defaultType = findTypeOnTheList ? this.type : 'reguler'\n const typeContextual = isContextual ? 'typeB' : 'typeA'\n this.paywallData = {\n ...this.mockResult,\n informations: {\n ...this.mockResult.informations,\n title: json[defaultType][typeContextual]\n ? json[defaultType][typeContextual].head\n : json[defaultType].head,\n description: json[defaultType][typeContextual]\n ? json[defaultType][typeContextual].content\n : json[defaultType].content,\n cta: json[defaultType].cta,\n },\n packages: {\n ...this.mockResult.packages,\n memberships: json[defaultType][typeContextual]\n ? json[defaultType][typeContextual].memberships\n : json[defaultType].memberships,\n swgEnable: json[defaultType].swgEnable,\n freeTrial: json[defaultType].freeTrial,\n swgContent: json[defaultType].swgContent,\n },\n }\n } catch (error) {\n throw Error('Failed to get paywall data')\n } finally {\n this.isLoading = false\n }\n }\n\n /**\n * Checks if all strings in the given target tags and variant are found in the given string tag and variant.\n * @param {Contextual} target - The contextual data to be checked.\n * @param {string} stringTag - The string tag to search for.\n * @param {string} stringVariant - The string variant to search for.\n * @returns {boolean} - True if all strings are found, false otherwise.\n */\n private checkAllInString(\n target: Contextual,\n stringTag: string,\n stringVariant: string\n ) {\n const tagsTarget = target.tags\n const variantTarget = target.variant\n const checkVariant =\n variantTarget.toLowerCase() === stringVariant.toLowerCase()\n const checkTags = () => {\n for (const item of tagsTarget) {\n if (!stringTag.toLowerCase().includes(item.toLowerCase())) {\n return false\n }\n }\n return true\n }\n\n return checkVariant && checkTags()\n }\n\n /**\n * Check if the given contextual data is valid based on the following rules:\n * - The published date must be within 90 days from now\n * - The tracker tags and variant must be found in the contextual data\n * @param {Contextual} jsonContextual - The contextual data to be checked\n * @returns {boolean} - True if the contextual data is valid, false otherwise\n */\n private contextualScenario(jsonContextual: Contextual): boolean {\n if (!jsonContextual) {\n return false\n }\n\n const {\n tracker_content_published_date: publishedDate,\n tracker_content_tags: trackerTags,\n tracker_content_variant: trackerVariant,\n } = this\n\n if (!publishedDate || !trackerVariant || !trackerTags) {\n return false\n }\n\n const nowDate = new Date()\n const isoDateString = publishedDate.replace(' ', 'T')\n const publishedDateObj = new Date(isoDateString)\n\n const isWithin90Days = differenceInDays(publishedDateObj, nowDate) <= -90 // differenceInDays jika tanggal telah melewati 90 hari\n const hasMatchingTagsAndVariants = this.checkAllInString(\n jsonContextual,\n trackerTags,\n trackerVariant\n ) // checkAllInString jika ada tag yang cocok\n\n return isWithin90Days || hasMatchingTagsAndVariants\n }\n\n private transitionBox() {\n return html`\n <div\n class=\"h-20 ${this.theme === 'dark'\n ? 'transparent-linear-dark'\n : 'transparent-linear'} -mt-24 z-0 w-full\"\n ></div>\n `\n }\n\n private renderEpaperPaywallSection() {\n return html`<kompasid-paywall-body\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this.paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this.tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_metered_wall_balance=${this.tracker_metered_wall_balance}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n tracker_content_type=${this.tracker_content_type}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n ></kompasid-paywall-body>`\n }\n\n private renderRegularPaywallSection() {\n const defaultHeaderText: string =\n this.paywallData.informations.meterred.maxQuotaMessage\n if (this.isWithHeader) {\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-information-header\n text=${this.textHeader || defaultHeaderText}\n theme=${this.theme}\n ></kompasid-paywall-information-header>\n <kompasid-paywall-body\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this\n .paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_metered_wall_balance=${this\n .tracker_metered_wall_balance}\n tracker_content_type=${this.tracker_content_type}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-body\n tracker_content_type=${this.tracker_content_type}\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this.paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_metered_wall_balance=${this.tracker_metered_wall_balance}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n\n private renderAudioPaywallSection() {\n const defaultHeaderText: string =\n this.paywallData.informations.meterred.maxQuotaMessage\n if (this.isWithHeader) {\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-information-header\n text=${this.textHeader || defaultHeaderText}\n theme=${this.theme}\n ></kompasid-paywall-information-header>\n <kompasid-paywall-body\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this\n .paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_metered_wall_balance=${this\n .tracker_metered_wall_balance}\n tracker_content_type=${this.tracker_content_type}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n .togglePaywall=${() => this.togglePaywall()}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-body\n tracker_content_type=${this.tracker_content_type}\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this.paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_metered_wall_balance=${this.tracker_metered_wall_balance}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n .togglePaywall=${() => this.togglePaywall()}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n\n private selectorTypePaywall = (type: PaywallType) => {\n switch (type) {\n case 'epaper':\n case 'proMiningOutlook':\n return this.renderEpaperPaywallSection()\n case 'audio':\n return this.renderAudioPaywallSection()\n case 'proMiningArticle':\n case 'reguler':\n return this.renderRegularPaywallSection()\n default:\n return this.renderRegularPaywallSection()\n }\n }\n\n private togglePaywall() {\n this.isOpen = !this.isOpen\n }\n\n render() {\n return !this.isLoading && this.isOpen\n ? html`\n <div class=\"relative w-full\">\n ${this.selectorTypePaywall(this.type)}\n </div>\n `\n : nothing\n }\n}\n"]}
1
+ {"version":3,"file":"KompasPaywall.js","sourceRoot":"","sources":["../../../../src/components/kompasid-paywall/KompasPaywall.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement, nothing } from 'lit'\nimport { property, state, customElement } from 'lit/decorators.js'\nimport { differenceInDays } from 'date-fns'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\nimport { PaywallProduct, PaywallType, Contextual } from './types.js'\nimport '../kompasid-paywall-body/KompasPaywallBody.js'\nimport '../kompasid-paywall-banner-registration/KompasPaywallBannerRegistration.js'\nimport '../kompasid-paywall-information-header/KompasPaywallInformationHeader.js'\n\n@customElement('kompasid-paywall')\nexport class KompasPaywall extends LitElement {\n static styles = [\n css`\n :host {\n font-family: 'PT Sans', sans-serif;\n }\n\n .transparent-linear {\n background-image: -webkit-gradient(\n linear,\n left top,\n left bottom,\n from(hsla(0, 0%, 100%, 0)),\n to(#fff)\n );\n background-image: linear-gradient(180deg, hsla(0, 0%, 100%, 0), #fff);\n }\n\n .transparent-linear-dark {\n background-image: -webkit-gradient(\n linear,\n left top,\n left bottom,\n from(hsla(0, 0%, 18%, 0)),\n to(#121212)\n );\n background-image: linear-gradient(180deg, hsla(0, 0%, 18%, 0), #121212);\n }\n `,\n TWStyles,\n ]\n\n /**\n * Props\n */\n /**\n * property isLogin untuk menghandle apakah user sudah login atau belum\n * property countdownArticle untuk menghandle count artikel\n * property type untuk menghandle tipe epaper\n * property isWithHeader untuk menghandle paywall information header\n * property textHeader digunakan sebagai text pada paywall information header\n * property paywallData untuk menghandle data paywall\n * property userGuid untuk menghandle user Guid\n * property subscriptionStatus untuk menghandle status subscription user\n * property swgEnable untuk menghandle swg apakah di aktifkan atau tidak\n * property paywall_location = The location where user encounter the paywall\n * property paywall_subscription_package = The name of the subscription package viewed by user\n * property paywall_subscription_id = The ID of the subscription package viewed by user\n * property paywall_subscription_price = The price of the subscriprtion package viewed by user\n * property paywall_position = The position of the subscription package viewed by user\n * property page_type = Type of the page\n * property content_id = ID of article (slug)\n * property content_type = Whether it's free article or paid article\n * property content_title = The title of article\n * property tracker_content_categories = The category of the content\n * property user_type = Type of user based on their subscription\n * property subscription_status = Status of their subscription\n * property page_domain = Page Domain\n * property metered_wall_type = The type of Metered Wall\n * property metered_wall_balance = The balance of their metered wall\n * property epaper_edition = The edition of epaper viewed by user\n * property theme = The theme of the paywall component\n */\n\n @state() private paywallData: PaywallProduct = {} as PaywallProduct\n @state() private isOpen: Boolean = true\n @state() private isLoading: Boolean = true\n\n @property({ type: Boolean }) isLogin = false\n @property({ type: Number }) countdownArticle = 0\n @property({ type: String }) type: PaywallType = 'reguler'\n @property({ type: Boolean }) isWithHeader = false\n @property({ type: String }) textHeader = ''\n @property({ type: String }) userGuid = ''\n @property({ type: String }) subscriptionStatus = ''\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\n mockResult: PaywallProduct = {\n informations: {\n title: '',\n description: [],\n register: {\n img: 'https://www.kompas.id/img/backgrounds/ilustrasi-banner-registration.png',\n title: 'Ingin Membaca Artikel Ini Secara Utuh?',\n subtitle: 'Daftar akun untuk membaca 5 artikel premium secara gratis ',\n label: 'Daftar Sekarang ',\n },\n meterred: {\n maxQuota: 5,\n label: 'Langganan',\n maxQuotaMessage: 'Akses artikel gratis Anda bulan ini sudah habis.',\n url: 'https://kompas.id/berlangganan',\n },\n cta: {\n show: true,\n text: 'Lihat Paket Lainnya',\n url: 'https://www.kompas.id/berlangganan/v2',\n },\n },\n packages: {\n title: 'Sekali bayar, tanpa perpanjang otomatis',\n memberships: [],\n swgEnable: false,\n freeTrial: {\n packageText: 'untuk 3 hari pertama',\n desktopText:\n 'Coba gratis 3 hari Kompas.id melalui aplikasi. Pindai kode QR dengan ponsel atau tablet untuk mengunduh aplikasi.',\n mobileText:\n 'Dapatkan akses gratis selama 3 hari ke konten dan fitur premium Kompas.id di aplikasi.',\n },\n swgContent: {\n introductory: {\n price: 'Rp. 10.000',\n description: 'untuk 1 bulan pertama',\n duration: '',\n },\n default: {\n price: '',\n description: 'Berlangganan lebih mudah dengan Google',\n duration: '',\n },\n },\n },\n payment: {\n desktop: [\n {\n name: 'gopay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/gopay${this.darkUrl}.svg`,\n },\n {\n name: 'ovo',\n link: `https://cdn-www.cloudfront.net/paywall-asset/ovo${this.darkUrl}.svg`,\n },\n {\n name: 'mastercard',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mastercard${this.darkUrl}.svg`,\n },\n {\n name: 'bri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bri${this.darkUrl}.svg`,\n },\n {\n name: 'bcaklikpay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca-klik-pay${this.darkUrl}.svg`,\n },\n {\n name: 'indomaret',\n link: `https://cdn-www.cloudfront.net/paywall-asset/indomaret${this.darkUrl}.svg`,\n },\n {\n name: 'jcb',\n link: `https://cdn-www.cloudfront.net/paywall-asset/jcb${this.darkUrl}.svg`,\n },\n {\n name: 'dana',\n link: `https://cdn-www.cloudfront.net/paywall-asset/dana${this.darkUrl}.svg`,\n },\n {\n name: 'visa',\n link: `https://cdn-www.cloudfront.net/paywall-asset/visa${this.darkUrl}.svg`,\n },\n {\n name: 'mandiri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mandiri${this.darkUrl}.svg`,\n },\n {\n name: 'bca',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca${this.darkUrl}.svg`,\n },\n {\n name: 'bni',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bni${this.darkUrl}.svg`,\n },\n {\n name: 'akulaku',\n link: `https://cdn-www.cloudfront.net/paywall-asset/akulaku${this.darkUrl}.svg`,\n },\n ],\n mobile: [\n {\n name: 'gopay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/gopay${this.darkUrl}.svg`,\n },\n {\n name: 'ovo',\n link: `https://cdn-www.cloudfront.net/paywall-asset/ovo${this.darkUrl}.svg`,\n },\n {\n name: 'visa',\n link: `https://cdn-www.cloudfront.net/paywall-asset/visa${this.darkUrl}.svg`,\n },\n {\n name: 'mastercard',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mastercard${this.darkUrl}.svg`,\n },\n ],\n ekstension: [\n {\n name: 'dana',\n link: `https://cdn-www.cloudfront.net/paywall-asset/dana${this.darkUrl}.svg`,\n },\n {\n name: 'mandiri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/mandiri${this.darkUrl}.svg`,\n },\n {\n name: 'bri',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bri${this.darkUrl}.svg`,\n },\n {\n name: 'bcaklikpay',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca-klik-pay${this.darkUrl}.svg`,\n },\n {\n name: 'akulaku',\n link: `https://cdn-www.cloudfront.net/paywall-asset/akulaku${this.darkUrl}.svg`,\n },\n {\n name: 'bni',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bni${this.darkUrl}.svg`,\n },\n {\n name: 'indomaret',\n link: `https://cdn-www.cloudfront.net/paywall-asset/indomaret${this.darkUrl}.svg`,\n },\n {\n name: 'bca',\n link: `https://cdn-www.cloudfront.net/paywall-asset/bca${this.darkUrl}.svg`,\n },\n {\n name: 'jcb',\n link: `https://cdn-www.cloudfront.net/paywall-asset/jcb${this.darkUrl}.svg`,\n },\n ],\n },\n }\n\n get darkUrl() {\n return this.theme === 'dark' ? '-dark' : ''\n }\n\n override connectedCallback() {\n super.connectedCallback()\n this.getPaywallData()\n }\n\n async getPaywallData() {\n try {\n const [paywallResponse, contextualResponse] = await Promise.all([\n fetch('https://cdn-www.kompas.id/web-component/paywall.json'),\n fetch(\n 'https://cdn-www.kompas.id/web-component/contextual_paywall.json'\n ),\n ])\n const json = await paywallResponse.json()\n const isContextual = this.contextualScenario(\n await contextualResponse.json()\n )\n const listType = [\n 'reguler',\n 'audio',\n 'proMiningOutlook',\n 'proMiningArticle',\n 'epaper',\n 'custom',\n ]\n const findTypeOnTheList = listType.includes(this.type)\n const defaultType = findTypeOnTheList ? this.type : 'reguler'\n const typeContextual = isContextual ? 'typeB' : 'typeA'\n this.paywallData = {\n ...this.mockResult,\n informations: {\n ...this.mockResult.informations,\n title: json[defaultType][typeContextual]\n ? json[defaultType][typeContextual].head\n : json[defaultType].head,\n description: json[defaultType][typeContextual]\n ? json[defaultType][typeContextual].content\n : json[defaultType].content,\n cta: json[defaultType].cta,\n },\n packages: {\n ...this.mockResult.packages,\n memberships: json[defaultType][typeContextual]\n ? json[defaultType][typeContextual].memberships\n : json[defaultType].memberships,\n swgEnable: json[defaultType].swgEnable,\n freeTrial: json[defaultType].freeTrial,\n swgContent: json[defaultType].swgContent,\n },\n }\n } catch (error) {\n throw Error('Failed to get paywall data')\n } finally {\n this.isLoading = false\n }\n }\n\n /**\n * Checks if all strings in the given target tags and variant are found in the given string tag and variant.\n * @param {Contextual} target - The contextual data to be checked.\n * @param {string} stringTag - The string tag to search for.\n * @param {string} stringVariant - The string variant to search for.\n * @returns {boolean} - True if all strings are found, false otherwise.\n */\n private checkAllInString(\n target: Contextual,\n stringTag: string,\n stringVariant: string\n ) {\n const tagsTarget = target.tags\n const variantTarget = target.variant\n const checkVariant =\n variantTarget.toLowerCase() === stringVariant.toLowerCase()\n\n const checkTags = () => {\n if (!tagsTarget.length) return false\n for (const item of tagsTarget) {\n if (!stringTag.toLowerCase().includes(item.toLowerCase())) {\n return false\n }\n }\n return true\n }\n return checkVariant && checkTags()\n }\n\n /**\n * Check if the given contextual data is valid based on the following rules:\n * - The published date must be within 90 days from now\n * - The tracker tags and variant must be found in the contextual data\n * @param {Contextual} jsonContextual - The contextual data to be checked\n * @returns {boolean} - True if the contextual data is valid, false otherwise\n */\n private contextualScenario(jsonContextual: Contextual): boolean {\n if (!jsonContextual) {\n return false\n }\n\n const {\n tracker_content_published_date: publishedDate,\n tracker_content_tags: trackerTags,\n tracker_content_variant: trackerVariant,\n } = this\n\n if (!publishedDate || !trackerVariant || !trackerTags) {\n return false\n }\n\n const nowDate = new Date()\n const isoDateString = publishedDate.replace(' ', 'T')\n const publishedDateObj = new Date(isoDateString)\n\n const isWithin90Days = jsonContextual.articleAgeTreshold\n ? differenceInDays(publishedDateObj, nowDate) <\n -jsonContextual.articleAgeTreshold\n : false // differenceInDays jika tanggal telah melewati 90 hari\n const hasMatchingTagsAndVariants = this.checkAllInString(\n jsonContextual,\n trackerTags,\n trackerVariant\n ) // checkAllInString jika ada tag yang cocok\n\n return isWithin90Days || hasMatchingTagsAndVariants\n }\n\n private transitionBox() {\n return html`\n <div\n class=\"h-20 ${this.theme === 'dark'\n ? 'transparent-linear-dark'\n : 'transparent-linear'} -mt-24 z-0 w-full\"\n ></div>\n `\n }\n\n private renderEpaperPaywallSection() {\n return html`<kompasid-paywall-body\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this.paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this.tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_metered_wall_balance=${this.tracker_metered_wall_balance}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n tracker_content_type=${this.tracker_content_type}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n ></kompasid-paywall-body>`\n }\n\n private renderRegularPaywallSection() {\n const defaultHeaderText: string =\n this.paywallData.informations.meterred.maxQuotaMessage\n if (this.isWithHeader) {\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-information-header\n text=${this.textHeader || defaultHeaderText}\n theme=${this.theme}\n ></kompasid-paywall-information-header>\n <kompasid-paywall-body\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this\n .paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_metered_wall_balance=${this\n .tracker_metered_wall_balance}\n tracker_content_type=${this.tracker_content_type}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-body\n tracker_content_type=${this.tracker_content_type}\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this.paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_metered_wall_balance=${this.tracker_metered_wall_balance}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n\n private renderAudioPaywallSection() {\n const defaultHeaderText: string =\n this.paywallData.informations.meterred.maxQuotaMessage\n if (this.isWithHeader) {\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-information-header\n text=${this.textHeader || defaultHeaderText}\n theme=${this.theme}\n ></kompasid-paywall-information-header>\n <kompasid-paywall-body\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this\n .paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_metered_wall_balance=${this\n .tracker_metered_wall_balance}\n tracker_content_type=${this.tracker_content_type}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n .togglePaywall=${() => this.togglePaywall()}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n return html`\n <div>\n ${this.transitionBox()}\n <div\n class=\"flex flex-col ${this.theme === 'dark'\n ? 'bg-dark-5'\n : 'bg-white'} items-center justify-center mx-4 md:mx-0\"\n >\n <div class=\"flex flex-col w-full max-w-screen-md my-5\">\n <kompasid-paywall-body\n tracker_content_type=${this.tracker_content_type}\n paywall_location=${this.paywall_location}\n paywall_subscription_package=${this.paywall_subscription_package}\n paywall_subscription_id=${this.paywall_subscription_id}\n paywall_subscription_price=${this.paywall_subscription_price}\n paywall_position=${this.paywall_position}\n tracker_page_type=${this.tracker_page_type}\n tracker_content_id=${this.tracker_content_id}\n tracker_content_title=${this.tracker_content_title}\n tracker_content_categories=${this.tracker_content_categories}\n tracker_content_tags=${this.tracker_content_tags}\n tracker_content_published_date=${this\n .tracker_content_published_date}\n tracker_content_variant=${this.tracker_content_variant}\n tracker_user_type=${this.tracker_user_type}\n tracker_subscription_status=${this.tracker_subscription_status}\n tracker_epaper_edition=${this.tracker_epaper_edition}\n tracker_page_domain=${this.tracker_page_domain}\n tracker_metered_wall_type=${this.tracker_metered_wall_type}\n tracker_metered_wall_balance=${this.tracker_metered_wall_balance}\n tracker_content_publisher=${this.tracker_content_publisher}\n ?swgEnable=${this.swgEnable}\n ?isLogin=${this.isLogin}\n type=${this.type}\n countdownArticle=${this.countdownArticle}\n .paywallData=${this.paywallData}\n subscriptionStatus=${this.subscriptionStatus}\n userGuid=${this.userGuid}\n theme=${this.theme}\n .togglePaywall=${() => this.togglePaywall()}\n ></kompasid-paywall-body>\n </div>\n </div>\n </div>\n `\n }\n\n private selectorTypePaywall = (type: PaywallType) => {\n switch (type) {\n case 'epaper':\n case 'proMiningOutlook':\n return this.renderEpaperPaywallSection()\n case 'audio':\n return this.renderAudioPaywallSection()\n case 'proMiningArticle':\n case 'reguler':\n return this.renderRegularPaywallSection()\n default:\n return this.renderRegularPaywallSection()\n }\n }\n\n private togglePaywall() {\n this.isOpen = !this.isOpen\n }\n\n render() {\n return !this.isLoading && this.isOpen\n ? html`\n <div class=\"relative w-full\">\n ${this.selectorTypePaywall(this.type)}\n </div>\n `\n : nothing\n }\n}\n"]}
@@ -82,4 +82,5 @@ export type PaywallType = 'proMiningArticle' | 'proMiningOutlook' | 'epaper' | '
82
82
  export interface Contextual {
83
83
  variant: string;
84
84
  tags: string[];
85
+ articleAgeTreshold: number;
85
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/kompasid-paywall/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface Product {\n title: string\n percentage: number\n price: number\n discountPrice: number\n savingPrice: number\n periode: string\n isHighlight: boolean\n url: string\n package: string\n subscriptionId: string\n position: number\n}\nexport interface Metered {\n maxQuota: number\n label: string\n maxQuotaMessage: string\n url: string\n}\nexport interface PaymentImage {\n name: string\n link: string\n}\nexport interface Registration {\n img: string\n title: string\n subtitle: string\n label: string\n}\nexport interface Informations {\n title: string\n description: Array<string>\n register: {\n img: string\n title: string\n subtitle: string\n label: string\n }\n}\nexport interface FreeTrial {\n packageText: string\n desktopText: string\n mobileText: string\n}\nexport interface SwgContentData {\n duration: string\n price: string\n description: string\n}\n\nexport interface SwgContent {\n introductory: SwgContentData\n default: SwgContentData\n}\n\nexport interface Packages {\n title: string\n memberships: Array<Product>\n swgEnable: boolean\n freeTrial: FreeTrial\n swgContent: SwgContent\n}\n\nexport interface ctaPaywall {\n show: boolean\n text: string\n url: string\n}\n\nexport interface PaywallProduct {\n informations: {\n title: string\n description: Array<string>\n register: Registration\n meterred: Metered\n cta: ctaPaywall\n }\n packages: Packages\n payment: {\n desktop: Array<PaymentImage>\n mobile: Array<PaymentImage>\n ekstension: Array<PaymentImage>\n }\n}\nexport type PaywallType =\n | 'proMiningArticle'\n | 'proMiningOutlook'\n | 'epaper'\n | 'reguler'\n | 'audio'\n | 'custom'\n\nexport interface Contextual {\n variant: string\n tags: string[]\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/kompasid-paywall/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface Product {\n title: string\n percentage: number\n price: number\n discountPrice: number\n savingPrice: number\n periode: string\n isHighlight: boolean\n url: string\n package: string\n subscriptionId: string\n position: number\n}\nexport interface Metered {\n maxQuota: number\n label: string\n maxQuotaMessage: string\n url: string\n}\nexport interface PaymentImage {\n name: string\n link: string\n}\nexport interface Registration {\n img: string\n title: string\n subtitle: string\n label: string\n}\nexport interface Informations {\n title: string\n description: Array<string>\n register: {\n img: string\n title: string\n subtitle: string\n label: string\n }\n}\nexport interface FreeTrial {\n packageText: string\n desktopText: string\n mobileText: string\n}\nexport interface SwgContentData {\n duration: string\n price: string\n description: string\n}\n\nexport interface SwgContent {\n introductory: SwgContentData\n default: SwgContentData\n}\n\nexport interface Packages {\n title: string\n memberships: Array<Product>\n swgEnable: boolean\n freeTrial: FreeTrial\n swgContent: SwgContent\n}\n\nexport interface ctaPaywall {\n show: boolean\n text: string\n url: string\n}\n\nexport interface PaywallProduct {\n informations: {\n title: string\n description: Array<string>\n register: Registration\n meterred: Metered\n cta: ctaPaywall\n }\n packages: Packages\n payment: {\n desktop: Array<PaymentImage>\n mobile: Array<PaymentImage>\n ekstension: Array<PaymentImage>\n }\n}\nexport type PaywallType =\n | 'proMiningArticle'\n | 'proMiningOutlook'\n | 'epaper'\n | 'reguler'\n | 'audio'\n | 'custom'\n\nexport interface Contextual {\n variant: string\n tags: string[]\n articleAgeTreshold: number\n}\n"]}