@kompasid/lit-web-components 0.9.52 → 0.9.54
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/header.html +36 -3
- package/dist/src/components/kompasid-grace-period/KompasGracePeriod.d.ts +12 -1
- package/dist/src/components/kompasid-grace-period/KompasGracePeriod.js +144 -55
- package/dist/src/components/kompasid-grace-period/KompasGracePeriod.js.map +1 -1
- package/dist/src/components/kompasid-header-account/types.d.ts +6 -0
- package/dist/src/components/kompasid-header-account/types.js.map +1 -1
- package/dist/src/components/kompasid-header-account-profile/KompasHeaderAccountProfile.d.ts +1 -0
- package/dist/src/components/kompasid-header-account-profile/KompasHeaderAccountProfile.js +30 -3
- package/dist/src/components/kompasid-header-account-profile/KompasHeaderAccountProfile.js.map +1 -1
- package/dist/tailwind/tailwind.js +12 -10
- package/dist/tailwind/tailwind.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/kompasid-grace-period/KompasGracePeriod.ts +159 -59
- package/src/components/kompasid-grace-period/readme.md +5 -2
- package/src/components/kompasid-header-account/readme.md +18 -3
- package/src/components/kompasid-header-account/types.ts +7 -2
- package/src/components/kompasid-header-account-profile/KompasHeaderAccountProfile.ts +32 -3
- package/tailwind/tailwind.css +12 -10
- package/tailwind/tailwind.ts +12 -10
|
@@ -36,6 +36,9 @@ export class KompasGracePeriod extends LitElement {
|
|
|
36
36
|
* property isColumn = changes how the component looks on different screen sizes
|
|
37
37
|
* property isShowButton = shows or hides a subscription button
|
|
38
38
|
* property isEpaper = is paywall opened in epaper page
|
|
39
|
+
* property memberhsip_channel_id = the ID of the subscription package by platform
|
|
40
|
+
* property payment_method = the payment method used by user
|
|
41
|
+
* property offering = the offering product
|
|
39
42
|
* property paywall_location = the location where user encounter the paywall
|
|
40
43
|
* property paywall_subscription_package = the name of the subscription package viewed by user
|
|
41
44
|
* property paywall_subscription_id = the ID of the subscription package viewed by user
|
|
@@ -55,13 +58,16 @@ export class KompasGracePeriod extends LitElement {
|
|
|
55
58
|
*/
|
|
56
59
|
|
|
57
60
|
@property({ type: Number }) totalGracePeriod = 0
|
|
61
|
+
@property({ type: Number }) memberhsip_channel_id = 0 // [2 5 8] itu autorenewal
|
|
62
|
+
@property({ type: String }) payment_method = '' // xendit_shopeepay, midtrans_gopay, xendit_ovo , midtrans_cc
|
|
63
|
+
@property({ type: String }) offering = '' // Q1 ... Q5, [Q5 default]
|
|
58
64
|
@property({ type: Boolean }) isColumn = false
|
|
59
65
|
@property({ type: Boolean }) isShowButton = true
|
|
60
66
|
@property({ type: Boolean }) isEpaper = false
|
|
61
67
|
@property({ type: Boolean }) isBackgroundOnContentOnly = false
|
|
62
68
|
@property({ type: String }) source = 'article'
|
|
63
69
|
@property({ type: String }) paywall_location = ''
|
|
64
|
-
@property({ type: String }) paywall_subscription_package = ''
|
|
70
|
+
@property({ type: String }) paywall_subscription_package = '' // kdp, kompas-one, kdp-koran
|
|
65
71
|
@property({ type: Number }) paywall_subscription_id = 0
|
|
66
72
|
@property({ type: Number }) paywall_subscription_price = 0
|
|
67
73
|
@property({ type: Number }) paywall_position = 0
|
|
@@ -84,6 +90,9 @@ export class KompasGracePeriod extends LitElement {
|
|
|
84
90
|
@state() private subscriptionPage = 'https://www.kompas.id/berlangganan'
|
|
85
91
|
@state() private checkoutPage = 'https://checkoutv2.kompas.id'
|
|
86
92
|
@state() private tempTextEachDay = []
|
|
93
|
+
@state() private basketSize: { [key: string]: string } = {}
|
|
94
|
+
@state() private messages: { [key: string]: string } = {}
|
|
95
|
+
@state() private templateCheckout: string = ''
|
|
87
96
|
@state() private tempButtonA: {
|
|
88
97
|
url: string
|
|
89
98
|
text: string
|
|
@@ -99,19 +108,75 @@ export class KompasGracePeriod extends LitElement {
|
|
|
99
108
|
text: '',
|
|
100
109
|
}
|
|
101
110
|
|
|
111
|
+
private isAutoRenewal() {
|
|
112
|
+
const { memberhsip_channel_id: checkAutoRenewal } = this
|
|
113
|
+
if (
|
|
114
|
+
checkAutoRenewal === 2 ||
|
|
115
|
+
checkAutoRenewal === 5 ||
|
|
116
|
+
checkAutoRenewal === 8
|
|
117
|
+
) {
|
|
118
|
+
return true
|
|
119
|
+
}
|
|
120
|
+
return false
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private isWallet() {
|
|
124
|
+
const {
|
|
125
|
+
payment_method: paymentMethod,
|
|
126
|
+
memberhsip_channel_id: checkAutoRenewal,
|
|
127
|
+
} = this
|
|
128
|
+
const isMobile = checkAutoRenewal === 5 || checkAutoRenewal === 2
|
|
129
|
+
if (paymentMethod.includes('cc')) {
|
|
130
|
+
return false
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (isMobile) {
|
|
134
|
+
return false
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return true
|
|
138
|
+
}
|
|
139
|
+
|
|
102
140
|
private getCountdownGracePeriod() {
|
|
103
|
-
const {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
141
|
+
const { messages, memberhsip_channel_id: checkAutoRenewal } = this
|
|
142
|
+
|
|
143
|
+
if (!this.isAutoRenewal()) {
|
|
144
|
+
return messages.default
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// 8=Autorenewal
|
|
148
|
+
// 5=Apple
|
|
149
|
+
// 2=Google
|
|
150
|
+
const isRenewal =
|
|
151
|
+
checkAutoRenewal === 8 || checkAutoRenewal === 5 || checkAutoRenewal === 2
|
|
152
|
+
const isMobile = checkAutoRenewal === 5 || checkAutoRenewal === 2
|
|
153
|
+
if (!isRenewal) {
|
|
154
|
+
return messages.default
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (isMobile) {
|
|
158
|
+
return messages.default
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// if string contains cc
|
|
162
|
+
if (this.payment_method.includes('cc')) {
|
|
163
|
+
return messages.credit_card
|
|
164
|
+
}
|
|
165
|
+
return messages.ewallet
|
|
166
|
+
|
|
167
|
+
// Comment old
|
|
168
|
+
// const { totalGracePeriod } = this
|
|
169
|
+
// const { maxGracePeriod } = this
|
|
170
|
+
// return html`
|
|
171
|
+
// <p
|
|
172
|
+
// class="message-gp"
|
|
173
|
+
// .innerHTML=${this.tempTextEachDay[
|
|
174
|
+
// totalGracePeriod > maxGracePeriod
|
|
175
|
+
// ? maxGracePeriod - 1
|
|
176
|
+
// : totalGracePeriod - 1 // template maksimal 7 hari
|
|
177
|
+
// ]}
|
|
178
|
+
// ></p>
|
|
179
|
+
// `
|
|
115
180
|
// comment old html
|
|
116
181
|
// if (totalGracePeriod === 7) {
|
|
117
182
|
// return html`
|
|
@@ -151,27 +216,56 @@ export class KompasGracePeriod extends LitElement {
|
|
|
151
216
|
)
|
|
152
217
|
}
|
|
153
218
|
|
|
154
|
-
private
|
|
155
|
-
|
|
156
|
-
this.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const urlComputed = url || `${this.subscriptionPage}?open_from=Grace_Period`
|
|
219
|
+
private redirectCekSaldo(): void {
|
|
220
|
+
// this.dataLayeronPerbaruiLanggananButton()
|
|
221
|
+
// this.sendGtmEvent('subscribe_button_clicked', true)
|
|
222
|
+
const urlComputed =
|
|
223
|
+
'https://kb.kompas.id/baca/berlangganan-kompas-id/langganan-kompas-id/mengapa-perpanjangan-pembaruan-langganan-otomatis-melalui-e-wallet-belum-berhasil/'
|
|
160
224
|
window.open(urlComputed)
|
|
161
225
|
}
|
|
162
226
|
|
|
163
227
|
private redirectToCheckout(): void {
|
|
164
|
-
const {
|
|
165
|
-
|
|
166
|
-
|
|
228
|
+
const {
|
|
229
|
+
paywall_subscription_package: paywallSubscriptionPackage,
|
|
230
|
+
paywall_subscription_id: paywallSubscriptionId,
|
|
231
|
+
basketSize,
|
|
232
|
+
templateCheckout,
|
|
233
|
+
offering,
|
|
234
|
+
} = this
|
|
235
|
+
const tempOffering = offering || 'Q5'
|
|
236
|
+
const tempPackageSlug = paywallSubscriptionPackage.toLowerCase()
|
|
167
237
|
|
|
238
|
+
this.dataLayeronPerbaruiLanggananButton()
|
|
168
239
|
this.sendGtmEvent('subscribe_button_clicked')
|
|
169
240
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
241
|
+
if (!paywallSubscriptionId) {
|
|
242
|
+
window.open(basketSize[tempOffering])
|
|
243
|
+
return
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
if (tempPackageSlug.includes('kdp') && !tempPackageSlug.includes('koran')) {
|
|
247
|
+
window.open(basketSize[tempOffering])
|
|
248
|
+
} else {
|
|
249
|
+
window.open(
|
|
250
|
+
templateCheckout.replace(
|
|
251
|
+
'_productid_',
|
|
252
|
+
paywallSubscriptionId.toString()
|
|
253
|
+
)
|
|
254
|
+
)
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// comment old
|
|
258
|
+
// const { url = '' } = this.tempButtonA
|
|
259
|
+
// this.dataLayeronPerbaruiLanggananButton()
|
|
260
|
+
// const originHost: string = encodeURIComponent(window.location.href)
|
|
261
|
+
|
|
262
|
+
// this.sendGtmEvent('subscribe_button_clicked')
|
|
263
|
+
|
|
264
|
+
// const defaultPath =
|
|
265
|
+
// url ||
|
|
266
|
+
// `${this.checkoutPage}/v2/kdp?productId=${this.paywall_subscription_id}&autorenewal=1`
|
|
173
267
|
|
|
174
|
-
window.open(`${defaultPath}&referrer=${originHost}&source=${this.source}`)
|
|
268
|
+
// window.open(`${defaultPath}&referrer=${originHost}&source=${this.source}`)
|
|
175
269
|
}
|
|
176
270
|
|
|
177
271
|
private getGtmParams(
|
|
@@ -251,56 +345,52 @@ export class KompasGracePeriod extends LitElement {
|
|
|
251
345
|
|
|
252
346
|
const { text: textA = '' } = this.tempButtonA
|
|
253
347
|
|
|
254
|
-
const { text: textB = '' } = this.tempButtonB
|
|
348
|
+
// const { text: textB = '' } = this.tempButtonB
|
|
255
349
|
|
|
256
350
|
const wrapperColumnClass = isColumn
|
|
257
351
|
? 'rounded-lg'
|
|
258
|
-
: 'md:flex-row lg:px-8
|
|
259
|
-
const buttonColumnClass = isColumn
|
|
260
|
-
? ''
|
|
261
|
-
: 'md:w-1/2 justify-end md:flex-row pt-4 md:pt-0'
|
|
352
|
+
: 'md:flex-row lg:px-8 px-4 py-4'
|
|
353
|
+
const buttonColumnClass = isColumn ? '' : 'justify-end md:flex-row'
|
|
262
354
|
const otherBtnColumnClass = isColumn ? '' : 'md:w-auto'
|
|
263
355
|
const wrapperBgClass = !isBackgroundOnContentOnly ? 'p-4' : ''
|
|
264
356
|
const contentBgClass = isBackgroundOnContentOnly
|
|
265
|
-
? 'bg-orange-100 p-4 rounded-lg
|
|
357
|
+
? 'bg-orange-100 p-4 rounded-lg'
|
|
266
358
|
: ''
|
|
267
359
|
|
|
268
360
|
return html`
|
|
269
361
|
<div
|
|
270
|
-
class="bottom-0 mx-auto flex w-full max-w-7xl flex-col justify-end ${wrapperColumnClass} ${wrapperBgClass}"
|
|
362
|
+
class="bottom-0 mx-auto flex gap-4 w-full max-w-7xl flex-col justify-end ${wrapperColumnClass} ${wrapperBgClass}"
|
|
271
363
|
>
|
|
272
364
|
<div
|
|
273
|
-
class="self-center text-left text-sm text-grey-600 md:text-base ${contentBgClass}"
|
|
365
|
+
class="self-center w-full text-left text-sm text-grey-600 md:text-base ${contentBgClass}"
|
|
274
366
|
>
|
|
275
367
|
${this.getCountdownGracePeriod()}
|
|
276
368
|
</div>
|
|
277
369
|
${this.isShowButton
|
|
278
370
|
? html`
|
|
279
371
|
<div
|
|
280
|
-
class="flex
|
|
372
|
+
class="flex grow items-center flex-wrap shrink-0 gap-2 ${buttonColumnClass}"
|
|
281
373
|
>
|
|
282
|
-
<
|
|
283
|
-
@click=${this.redirectToCheckout}
|
|
284
|
-
class="w-full rounded-md bg-brand-1 p-2 px-5 text-sm font-bold text-grey-100 md:w-auto md:text-base"
|
|
285
|
-
>
|
|
286
|
-
${textA || 'Perbarui Langganan'}
|
|
287
|
-
</button>
|
|
288
|
-
<div class="md:block hidden">
|
|
289
|
-
<button
|
|
290
|
-
@click=${this.redirectToBerlangganan}
|
|
291
|
-
class="bg-transparent w-full rounded-md border border-brand-1 p-1.5 px-5 text-sm font-bold text-brand-1 md:text-base ${otherBtnColumnClass}"
|
|
292
|
-
>
|
|
293
|
-
${textB || 'Paket Lainnya'}
|
|
294
|
-
</button>
|
|
295
|
-
</div>
|
|
296
|
-
<div class="md:hidden block">
|
|
374
|
+
<div class="max-h-10 flex flex-grow md:w-auto">
|
|
297
375
|
<button
|
|
298
|
-
@click=${this.
|
|
299
|
-
class="
|
|
376
|
+
@click=${this.redirectToCheckout}
|
|
377
|
+
class="w-full rounded-md bg-brand-1 p-2 px-5 text-sm justify-center items-center font-bold text-grey-100 md:text-base"
|
|
300
378
|
>
|
|
301
|
-
${
|
|
379
|
+
${textA || 'Perbarui Langganan'}
|
|
302
380
|
</button>
|
|
303
381
|
</div>
|
|
382
|
+
${this.isWallet()
|
|
383
|
+
? html`
|
|
384
|
+
<div class="w-full md:w-auto flex flex-grow max-h-10">
|
|
385
|
+
<button
|
|
386
|
+
@click=${this.redirectCekSaldo}
|
|
387
|
+
class="bg-transparent w-full rounded-md border border-brand-1 p-1.5 px-5 text-sm font-bold text-brand-1 md:text-base ${otherBtnColumnClass}"
|
|
388
|
+
>
|
|
389
|
+
Cara Isi Saldo
|
|
390
|
+
</button>
|
|
391
|
+
</div>
|
|
392
|
+
`
|
|
393
|
+
: nothing}
|
|
304
394
|
</div>
|
|
305
395
|
`
|
|
306
396
|
: nothing}
|
|
@@ -309,13 +399,23 @@ export class KompasGracePeriod extends LitElement {
|
|
|
309
399
|
}
|
|
310
400
|
|
|
311
401
|
override async connectedCallback() {
|
|
402
|
+
// New API
|
|
403
|
+
const endpointNew =
|
|
404
|
+
'https://cdn-www.kompas.id/web-component/grace-period-offering.json'
|
|
405
|
+
const responseNew = await fetch(endpointNew)
|
|
406
|
+
const resultNew = await responseNew.json()
|
|
407
|
+
this.basketSize = resultNew.basket_size_kdp
|
|
408
|
+
this.messages = resultNew.payment_method_messages
|
|
409
|
+
this.templateCheckout = resultNew.template_checkout_url
|
|
410
|
+
|
|
411
|
+
// comment old
|
|
312
412
|
// Constructing the URL with parameters
|
|
313
|
-
const endpoint = `https://cdn-www.kompas.id/web-component/grace-period-paywall.json`
|
|
314
|
-
const response = await fetch(endpoint)
|
|
315
|
-
const result = await response.json()
|
|
316
|
-
this.tempTextEachDay = result.message
|
|
317
|
-
this.tempButtonA = result.buttonA
|
|
318
|
-
this.tempButtonB = result.buttonB
|
|
413
|
+
// const endpoint = `https://cdn-www.kompas.id/web-component/grace-period-paywall.json`
|
|
414
|
+
// const response = await fetch(endpoint)
|
|
415
|
+
// const result = await response.json()
|
|
416
|
+
// this.tempTextEachDay = result.message
|
|
417
|
+
// this.tempButtonA = result.buttonA
|
|
418
|
+
// this.tempButtonB = result.buttonB
|
|
319
419
|
|
|
320
420
|
super.connectedCallback()
|
|
321
421
|
|
|
@@ -11,10 +11,13 @@ Ini adalah redesign komponen _grace period_ yang digunakan pada [kompas.id](http
|
|
|
11
11
|
| `isEpaper` | `is-epaper` | | `boolean` | `false` |
|
|
12
12
|
| `isShowButton` | `is-show-button` | | `boolean` | `false` |
|
|
13
13
|
| `subscriptionId` | `subscription-id` | | `string` | `false` |
|
|
14
|
+
| `memberhsip_channel_id` | `memberhsip_channel_id` | | `number` | `0` |
|
|
15
|
+
| `payment_method` | `payment_method` | | `string` | `''` |
|
|
16
|
+
| `offering` | `offering` | | `string` | `''` |
|
|
17
|
+
| `paywall_subscription_id` | `paywall_subscription_id` |used scenario GP| `number` | `0` |
|
|
18
|
+
| `paywall_subscription_package` | `paywall_subscription_package` |used scenario GP| `string` | `''` |
|
|
14
19
|
| `paywall_location` | `paywall_location` | | `string` | `''` |
|
|
15
20
|
| `paywall_position` | `paywall_position` | | `number` | `0` |
|
|
16
|
-
| `paywall_subscription_id` | `paywall_subscription_id` | | `number` | `0` |
|
|
17
|
-
| `paywall_subscription_package` | `paywall_subscription_package` | | `string` | `''` |
|
|
18
21
|
| `paywall_subscription_price` | `paywall_subscription_price` | | `number` | `0` |
|
|
19
22
|
| `tracker_content_categories` | `tracker_content_categories` | | `string` | `''` |
|
|
20
23
|
| `tracker_content_id` | `tracker_content_id` | | `string` | `''` |
|
|
@@ -22,6 +22,15 @@ Ini adalah komponen _header account_ yang akan di implementasi pada header
|
|
|
22
22
|
| `totalGracePeriod` | `totalGracePeriod` | Number of grace period days calculated from the **end date of the last grace period record**. The grace period lasts **7 days**, counted from day 1 to day 7 (last day). | `number` | `0` | yes |
|
|
23
23
|
| `isGracePeriod` | `isGracePeriod` | Boolean flag indicating whether the user is currently in a grace period. Set to `true` if the grace period array is not empty. **However**, if both active membership and grace period arrays are not empty, this value must be `false`. | `boolean` | `false` | yes |
|
|
24
24
|
| `isMembership` | `isMembership` | Boolean flag indicating whether the user has an active membership. Set to `true` if the active membership array is not empty. | `boolean` | `false` | yes |
|
|
25
|
+
| `detailPackageUser` | `detailPackageUser` | Object to use detail grace period user | `object` | `{}` | yes |
|
|
26
|
+
|
|
27
|
+
## Properties Detail Package User (detailPackageUser)
|
|
28
|
+
Property ini di peruntukan untuk mendetilkan skenario graceperiod yang akan di tampilkan, bila object ini kosong maka akan menggunakan flow default
|
|
29
|
+
| Property | Attribute | Description | Type | Default | Required |
|
|
30
|
+
| ------------------------------ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | -------------- | -------- |
|
|
31
|
+
| `offering` | `paywall_location` | | `string` | `''` | yes |
|
|
32
|
+
| `payment_method` | `paywall_location` | | `string` | `''` | yes |
|
|
33
|
+
| `memberhsip_channel_id` | `paywall_location` | | `number` | `0` | yes |
|
|
25
34
|
|
|
26
35
|
## Properties Grace Period Default
|
|
27
36
|
Property dapat dilihat di [Readme Grace Period](https://github.com/pt-kompas-media-nusantara/lit-web-component/tree/master/src/components/kompasid-grace-period).
|
|
@@ -30,8 +39,8 @@ Pemakaian kalo memang tidak ada perubahan, lebih baik tidak digunakan atau di ko
|
|
|
30
39
|
| Property | Attribute | Description | Type | Default | Required |
|
|
31
40
|
| ------------------------------ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | -------------- | -------- |
|
|
32
41
|
| `paywall_location` | `paywall_location` | | `string` | `''` | no |
|
|
33
|
-
| `paywall_subscription_package` | `paywall_subscription_package` |
|
|
34
|
-
| `paywall_subscription_id` | `paywall_subscription_id` |
|
|
42
|
+
| `paywall_subscription_package` | `paywall_subscription_package` |Used for graceperiod | `string` | `''` | yes |
|
|
43
|
+
| `paywall_subscription_id` | `paywall_subscription_id` |Used for graceperiod | `number` | `0` | yes |
|
|
35
44
|
| `paywall_subscription_price` | `paywall_subscription_price` | | `number` | `0` | no |
|
|
36
45
|
| `paywall_position` | `paywall_position` | | `number` | `0` | no |
|
|
37
46
|
| `tracker_page_type` | `tracker_page_type` | | `string` | `''` | no |
|
|
@@ -65,6 +74,7 @@ API Last Order = "https://api.kompas.cloud/order/api/v1/product/latest"
|
|
|
65
74
|
subscriptionUrl="https://www.kompas.id/berlangganan"
|
|
66
75
|
read_later_url="https://www.kompas.id/bacananti"
|
|
67
76
|
:paywall_subscription_id="98888"
|
|
77
|
+
paywall_subscription_package="kdp"
|
|
68
78
|
theme="primary"
|
|
69
79
|
:userData="userData"
|
|
70
80
|
/>
|
|
@@ -77,8 +87,13 @@ API Last Order = "https://api.kompas.cloud/order/api/v1/product/latest"
|
|
|
77
87
|
totalGracePeriod: 0
|
|
78
88
|
isGracePeriod: false
|
|
79
89
|
isMembership: false
|
|
90
|
+
detailPackageUser: {
|
|
91
|
+
memberhsip_channel_id: 0
|
|
92
|
+
payment_method: ''
|
|
93
|
+
offering: ''
|
|
94
|
+
}
|
|
80
95
|
}
|
|
81
96
|
```
|
|
82
97
|
|
|
83
|
-
Update
|
|
98
|
+
Update 05 06 2026 - Penggunaan yang sudah berjalan di tim terkait
|
|
84
99
|
_Terbikin oleh tim front-end kompas.id_
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
export interface detailPackage {
|
|
2
|
+
offering: string
|
|
3
|
+
payment_method: string
|
|
4
|
+
memberhsip_channel_id: number
|
|
5
|
+
}
|
|
6
|
+
|
|
1
7
|
export interface User {
|
|
2
8
|
userName: string
|
|
3
9
|
expired: string
|
|
4
10
|
totalGracePeriod: number
|
|
5
11
|
isGracePeriod: boolean
|
|
6
12
|
isMembership: boolean
|
|
7
|
-
|
|
8
|
-
// activeInfo: string // ga kepake dua data ini
|
|
13
|
+
detailPackageUser: detailPackage
|
|
9
14
|
}
|
|
@@ -12,6 +12,13 @@ import '../kompasid-grace-period/KompasGracePeriod.js'
|
|
|
12
12
|
export class KompasHeaderAccountProfile extends LitElement {
|
|
13
13
|
static styles = [
|
|
14
14
|
css`
|
|
15
|
+
.multi-line-truncate {
|
|
16
|
+
display: -webkit-box;
|
|
17
|
+
-webkit-box-orient: vertical;
|
|
18
|
+
-webkit-line-clamp: 1; /* Number of lines to show */
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
15
22
|
.header-account--membership-icon {
|
|
16
23
|
position: absolute;
|
|
17
24
|
bottom: -2px;
|
|
@@ -70,6 +77,23 @@ export class KompasHeaderAccountProfile extends LitElement {
|
|
|
70
77
|
return format(new Date(date), 'dd MMM yyyy', { locale: id })
|
|
71
78
|
}
|
|
72
79
|
|
|
80
|
+
private handleDetailGracePeriod() {
|
|
81
|
+
const { userData } = this
|
|
82
|
+
if (userData.detailPackageUser) {
|
|
83
|
+
return {
|
|
84
|
+
memberhsip_channel_id:
|
|
85
|
+
userData.detailPackageUser.memberhsip_channel_id || 0,
|
|
86
|
+
payment_method: userData.detailPackageUser.payment_method || '',
|
|
87
|
+
offering: userData.detailPackageUser.offering || '',
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
memberhsip_channel_id: 0,
|
|
92
|
+
payment_method: '',
|
|
93
|
+
offering: '',
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
73
97
|
private renderSkeletonLoading() {
|
|
74
98
|
return html`
|
|
75
99
|
<div>
|
|
@@ -206,14 +230,14 @@ export class KompasHeaderAccountProfile extends LitElement {
|
|
|
206
230
|
* Kompeni Element
|
|
207
231
|
*/
|
|
208
232
|
const kompeniTemplate = () => html` <div
|
|
209
|
-
class="flex relative group bg-[#FFF8D6] text-yellow-700 gap-1 p-2 mt-2 rounded items-center justify-center text-xs
|
|
233
|
+
class="flex relative group bg-[#FFF8D6] text-yellow-700 gap-1 p-2 mt-2 rounded items-center justify-center text-xs font-sans leading-none w-full"
|
|
210
234
|
>
|
|
211
235
|
<div class="w-5 h-5 flex items-center justify-center flex-shrink-0">
|
|
212
236
|
${unsafeSVG(getFontAwesomeIcon('fa', 'building-circle-check', 13, 10))}
|
|
213
237
|
</div>
|
|
214
|
-
<p class="truncate">${this.company_name}</p>
|
|
238
|
+
<p class="break-all multi-line-truncate w-full">${this.company_name}</p>
|
|
215
239
|
<div
|
|
216
|
-
class="absolute px-2 top-full -right-[5%] w-max max-w-[300px] mt-1 hidden group-hover:block"
|
|
240
|
+
class="absolute px-2 top-full -right-[5%] w-max max-w-[300px] mt-1 hidden group-hover:block z-10"
|
|
217
241
|
>
|
|
218
242
|
<div
|
|
219
243
|
class="bg-grey-600 text-white text-sm font-sans p-4 rounded-lg relative leading-5"
|
|
@@ -279,6 +303,11 @@ export class KompasHeaderAccountProfile extends LitElement {
|
|
|
279
303
|
? html` <div class="mt-4 kompasid-grace-period">
|
|
280
304
|
<kompasid-grace-period
|
|
281
305
|
totalGracePeriod=${this.userData.totalGracePeriod}
|
|
306
|
+
offering="${this.handleDetailGracePeriod().offering}"
|
|
307
|
+
memberhsip_channel_id="${this.handleDetailGracePeriod()
|
|
308
|
+
.memberhsip_channel_id}"
|
|
309
|
+
payment_method="${this.handleDetailGracePeriod()
|
|
310
|
+
.payment_method}"
|
|
282
311
|
isColumn="true"
|
|
283
312
|
isShowButton="true"
|
|
284
313
|
isBackgroundOnContentOnly="true"
|
package/tailwind/tailwind.css
CHANGED
|
@@ -972,6 +972,10 @@ video {
|
|
|
972
972
|
height: 100vh;
|
|
973
973
|
}
|
|
974
974
|
|
|
975
|
+
.max-h-10 {
|
|
976
|
+
max-height: 2.5rem;
|
|
977
|
+
}
|
|
978
|
+
|
|
975
979
|
.max-h-40 {
|
|
976
980
|
max-height: 10rem;
|
|
977
981
|
}
|
|
@@ -1155,10 +1159,6 @@ video {
|
|
|
1155
1159
|
max-width: 1200px;
|
|
1156
1160
|
}
|
|
1157
1161
|
|
|
1158
|
-
.max-w-\[190px\] {
|
|
1159
|
-
max-width: 190px;
|
|
1160
|
-
}
|
|
1161
|
-
|
|
1162
1162
|
.max-w-\[214px\] {
|
|
1163
1163
|
max-width: 214px;
|
|
1164
1164
|
}
|
|
@@ -1211,6 +1211,10 @@ video {
|
|
|
1211
1211
|
flex-grow: 1;
|
|
1212
1212
|
}
|
|
1213
1213
|
|
|
1214
|
+
.grow {
|
|
1215
|
+
flex-grow: 1;
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1214
1218
|
.rotate-180 {
|
|
1215
1219
|
--tw-rotate: 180deg;
|
|
1216
1220
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
@@ -1457,6 +1461,10 @@ video {
|
|
|
1457
1461
|
overflow-wrap: break-word;
|
|
1458
1462
|
}
|
|
1459
1463
|
|
|
1464
|
+
.break-all {
|
|
1465
|
+
word-break: break-all;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1460
1468
|
.rounded {
|
|
1461
1469
|
border-radius: 0.25rem;
|
|
1462
1470
|
}
|
|
@@ -2563,12 +2571,6 @@ video {
|
|
|
2563
2571
|
gap: 2rem;
|
|
2564
2572
|
}
|
|
2565
2573
|
|
|
2566
|
-
.md\:space-x-4 > :not([hidden]) ~ :not([hidden]) {
|
|
2567
|
-
--tw-space-x-reverse: 0;
|
|
2568
|
-
margin-right: calc(1rem * var(--tw-space-x-reverse));
|
|
2569
|
-
margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
|
|
2570
|
-
}
|
|
2571
|
-
|
|
2572
2574
|
.md\:space-x-5 > :not([hidden]) ~ :not([hidden]) {
|
|
2573
2575
|
--tw-space-x-reverse: 0;
|
|
2574
2576
|
margin-right: calc(1.25rem * var(--tw-space-x-reverse));
|
package/tailwind/tailwind.ts
CHANGED
|
@@ -979,6 +979,10 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
979
979
|
height: 100vh;
|
|
980
980
|
}
|
|
981
981
|
|
|
982
|
+
.max-h-10 {
|
|
983
|
+
max-height: 2.5rem;
|
|
984
|
+
}
|
|
985
|
+
|
|
982
986
|
.max-h-40 {
|
|
983
987
|
max-height: 10rem;
|
|
984
988
|
}
|
|
@@ -1162,10 +1166,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1162
1166
|
max-width: 1200px;
|
|
1163
1167
|
}
|
|
1164
1168
|
|
|
1165
|
-
.max-w-\\[190px\\] {
|
|
1166
|
-
max-width: 190px;
|
|
1167
|
-
}
|
|
1168
|
-
|
|
1169
1169
|
.max-w-\\[214px\\] {
|
|
1170
1170
|
max-width: 214px;
|
|
1171
1171
|
}
|
|
@@ -1218,6 +1218,10 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1218
1218
|
flex-grow: 1;
|
|
1219
1219
|
}
|
|
1220
1220
|
|
|
1221
|
+
.grow {
|
|
1222
|
+
flex-grow: 1;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1221
1225
|
.rotate-180 {
|
|
1222
1226
|
--tw-rotate: 180deg;
|
|
1223
1227
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y))
|
|
@@ -1468,6 +1472,10 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1468
1472
|
overflow-wrap: break-word;
|
|
1469
1473
|
}
|
|
1470
1474
|
|
|
1475
|
+
.break-all {
|
|
1476
|
+
word-break: break-all;
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1471
1479
|
.rounded {
|
|
1472
1480
|
border-radius: 0.25rem;
|
|
1473
1481
|
}
|
|
@@ -2586,12 +2594,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2586
2594
|
gap: 2rem;
|
|
2587
2595
|
}
|
|
2588
2596
|
|
|
2589
|
-
.md\\:space-x-4 > :not([hidden]) ~ :not([hidden]) {
|
|
2590
|
-
--tw-space-x-reverse: 0;
|
|
2591
|
-
margin-right: calc(1rem * var(--tw-space-x-reverse));
|
|
2592
|
-
margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
|
|
2593
|
-
}
|
|
2594
|
-
|
|
2595
2597
|
.md\\:space-x-5 > :not([hidden]) ~ :not([hidden]) {
|
|
2596
2598
|
--tw-space-x-reverse: 0;
|
|
2597
2599
|
margin-right: calc(1.25rem * var(--tw-space-x-reverse));
|