@eric-emg/symphiq-components 1.2.333 → 1.2.334
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/fesm2022/symphiq-components.mjs +149 -146
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +6 -6
- package/index.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -86780,7 +86780,7 @@ class BillingPeriodToggleComponent {
|
|
|
86780
86780
|
: 'text-slate-600';
|
|
86781
86781
|
}
|
|
86782
86782
|
static { this.ɵfac = function BillingPeriodToggleComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BillingPeriodToggleComponent)(); }; }
|
|
86783
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BillingPeriodToggleComponent, selectors: [["symphiq-billing-period-toggle"]], inputs: { viewMode: [1, "viewMode"], selectedPeriodUnit: [1, "selectedPeriodUnit"], isLoading: [1, "isLoading"] }, outputs: { periodUnitChanged: "periodUnitChanged" }, decls: 15, vars: 10, consts: [[1, "flex", "flex-col", "items-center", "gap-4", "mb-8"], [1, "flex", "items-center", "gap-3"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "inline-flex", "rounded-xl", "p-1", "transition-all", "duration-200", 3, "ngClass"], ["type", "button", 1, "relative", "px-6", "py-3", "rounded-lg", "font-semibold", "text-sm", "transition-all", "duration-200", "disabled:cursor-not-allowed", 3, "click", "disabled", "ngClass"], [1, "relative", "z-10"], [1, "absolute", "inset-0", "rounded-lg", "shadow-lg", "opacity-20"], [1, "text-sm", 3, "ngClass"]], template: function BillingPeriodToggleComponent_Template(rf, ctx) { if (rf & 1) {
|
|
86783
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BillingPeriodToggleComponent, selectors: [["symphiq-billing-period-toggle"]], inputs: { viewMode: [1, "viewMode"], selectedPeriodUnit: [1, "selectedPeriodUnit"], isLoading: [1, "isLoading"] }, outputs: { periodUnitChanged: "periodUnitChanged" }, decls: 15, vars: 10, consts: [[1, "flex", "flex-col", "items-center", "gap-4", "mb-8"], [1, "flex", "items-center", "gap-3"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "inline-flex", "gap-2", "rounded-xl", "p-1.5", "transition-all", "duration-200", 3, "ngClass"], ["type", "button", 1, "relative", "px-6", "py-3", "rounded-lg", "font-semibold", "text-sm", "transition-all", "duration-200", "disabled:cursor-not-allowed", 3, "click", "disabled", "ngClass"], [1, "relative", "z-10"], [1, "absolute", "inset-0", "rounded-lg", "shadow-lg", "opacity-20"], [1, "text-sm", 3, "ngClass"]], template: function BillingPeriodToggleComponent_Template(rf, ctx) { if (rf & 1) {
|
|
86784
86784
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
86785
86785
|
i0.ɵɵnamespaceSVG();
|
|
86786
86786
|
i0.ɵɵelementStart(2, "svg", 2);
|
|
@@ -86830,41 +86830,41 @@ class BillingPeriodToggleComponent {
|
|
|
86830
86830
|
standalone: true,
|
|
86831
86831
|
imports: [CommonModule],
|
|
86832
86832
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
86833
|
-
template: `
|
|
86834
|
-
<div class="flex flex-col items-center gap-4 mb-8">
|
|
86835
|
-
<div class="flex items-center gap-3">
|
|
86836
|
-
<svg [ngClass]="iconClasses()" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
86837
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
|
86838
|
-
</svg>
|
|
86839
|
-
<div [ngClass]="toggleContainerClasses()" class="inline-flex rounded-xl p-1 transition-all duration-200">
|
|
86840
|
-
<button
|
|
86841
|
-
type="button"
|
|
86842
|
-
[disabled]="isLoading()"
|
|
86843
|
-
(click)="selectPeriod(periodUnitEnum.YEAR)"
|
|
86844
|
-
[ngClass]="getButtonClasses(periodUnitEnum.YEAR)"
|
|
86845
|
-
class="relative px-6 py-3 rounded-lg font-semibold text-sm transition-all duration-200 disabled:cursor-not-allowed">
|
|
86846
|
-
<span class="relative z-10">Annual contract</span>
|
|
86847
|
-
@if (selectedPeriodUnit() === periodUnitEnum.YEAR) {
|
|
86848
|
-
<div class="absolute inset-0 rounded-lg shadow-lg opacity-20"></div>
|
|
86849
|
-
}
|
|
86850
|
-
</button>
|
|
86851
|
-
<button
|
|
86852
|
-
type="button"
|
|
86853
|
-
[disabled]="isLoading()"
|
|
86854
|
-
(click)="selectPeriod(periodUnitEnum.MONTH)"
|
|
86855
|
-
[ngClass]="getButtonClasses(periodUnitEnum.MONTH)"
|
|
86856
|
-
class="relative px-6 py-3 rounded-lg font-semibold text-sm transition-all duration-200 disabled:cursor-not-allowed">
|
|
86857
|
-
<span class="relative z-10">Monthly contract</span>
|
|
86858
|
-
@if (selectedPeriodUnit() === periodUnitEnum.MONTH) {
|
|
86859
|
-
<div class="absolute inset-0 rounded-lg shadow-lg opacity-20"></div>
|
|
86860
|
-
}
|
|
86861
|
-
</button>
|
|
86862
|
-
</div>
|
|
86863
|
-
</div>
|
|
86864
|
-
<p [ngClass]="subtitleClasses()" class="text-sm">
|
|
86865
|
-
{{ getSubtitle() }}
|
|
86866
|
-
</p>
|
|
86867
|
-
</div>
|
|
86833
|
+
template: `
|
|
86834
|
+
<div class="flex flex-col items-center gap-4 mb-8">
|
|
86835
|
+
<div class="flex items-center gap-3">
|
|
86836
|
+
<svg [ngClass]="iconClasses()" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
86837
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
|
86838
|
+
</svg>
|
|
86839
|
+
<div [ngClass]="toggleContainerClasses()" class="inline-flex gap-2 rounded-xl p-1.5 transition-all duration-200">
|
|
86840
|
+
<button
|
|
86841
|
+
type="button"
|
|
86842
|
+
[disabled]="isLoading()"
|
|
86843
|
+
(click)="selectPeriod(periodUnitEnum.YEAR)"
|
|
86844
|
+
[ngClass]="getButtonClasses(periodUnitEnum.YEAR)"
|
|
86845
|
+
class="relative px-6 py-3 rounded-lg font-semibold text-sm transition-all duration-200 disabled:cursor-not-allowed">
|
|
86846
|
+
<span class="relative z-10">Annual contract</span>
|
|
86847
|
+
@if (selectedPeriodUnit() === periodUnitEnum.YEAR) {
|
|
86848
|
+
<div class="absolute inset-0 rounded-lg shadow-lg opacity-20"></div>
|
|
86849
|
+
}
|
|
86850
|
+
</button>
|
|
86851
|
+
<button
|
|
86852
|
+
type="button"
|
|
86853
|
+
[disabled]="isLoading()"
|
|
86854
|
+
(click)="selectPeriod(periodUnitEnum.MONTH)"
|
|
86855
|
+
[ngClass]="getButtonClasses(periodUnitEnum.MONTH)"
|
|
86856
|
+
class="relative px-6 py-3 rounded-lg font-semibold text-sm transition-all duration-200 disabled:cursor-not-allowed">
|
|
86857
|
+
<span class="relative z-10">Monthly contract</span>
|
|
86858
|
+
@if (selectedPeriodUnit() === periodUnitEnum.MONTH) {
|
|
86859
|
+
<div class="absolute inset-0 rounded-lg shadow-lg opacity-20"></div>
|
|
86860
|
+
}
|
|
86861
|
+
</button>
|
|
86862
|
+
</div>
|
|
86863
|
+
</div>
|
|
86864
|
+
<p [ngClass]="subtitleClasses()" class="text-sm">
|
|
86865
|
+
{{ getSubtitle() }}
|
|
86866
|
+
</p>
|
|
86867
|
+
</div>
|
|
86868
86868
|
`
|
|
86869
86869
|
}]
|
|
86870
86870
|
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], selectedPeriodUnit: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPeriodUnit", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], periodUnitChanged: [{ type: i0.Output, args: ["periodUnitChanged"] }] }); })();
|
|
@@ -86922,7 +86922,7 @@ class PlanCardComponent {
|
|
|
86922
86922
|
this.selectedPeriodUnit = input(ChargebeeItemPricePeriodUnitEnum.YEAR, ...(ngDevMode ? [{ debugName: "selectedPeriodUnit" }] : []));
|
|
86923
86923
|
this.planSelected = output();
|
|
86924
86924
|
this.showBestValueBadge = computed(() => {
|
|
86925
|
-
return this.planInfo().
|
|
86925
|
+
return this.planInfo().bestValue === true;
|
|
86926
86926
|
}, ...(ngDevMode ? [{ debugName: "showBestValueBadge" }] : []));
|
|
86927
86927
|
}
|
|
86928
86928
|
handleCardClick() {
|
|
@@ -86930,8 +86930,7 @@ class PlanCardComponent {
|
|
|
86930
86930
|
}
|
|
86931
86931
|
getPlanTitle() {
|
|
86932
86932
|
const info = this.planInfo();
|
|
86933
|
-
|
|
86934
|
-
return `${info.planItem.name} - ${periodLabel}`;
|
|
86933
|
+
return info.planItem.externalName || info.planItem.name || 'Plan';
|
|
86935
86934
|
}
|
|
86936
86935
|
formatPrice() {
|
|
86937
86936
|
const info = this.planInfo();
|
|
@@ -87229,112 +87228,112 @@ class PlanCardComponent {
|
|
|
87229
87228
|
standalone: true,
|
|
87230
87229
|
imports: [CommonModule],
|
|
87231
87230
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
87232
|
-
template: `
|
|
87233
|
-
<div
|
|
87234
|
-
(click)="handleCardClick()"
|
|
87235
|
-
[ngClass]="cardContainerClasses()"
|
|
87236
|
-
class="relative rounded-2xl border-2 p-6 transition-all duration-200 cursor-pointer hover:scale-[1.02]">
|
|
87237
|
-
|
|
87238
|
-
@if (showBestValueBadge()) {
|
|
87239
|
-
<div [ngClass]="badgeClasses()" class="absolute -top-3 left-1/2 transform -translate-x-1/2 px-4 py-1 rounded-full text-xs font-bold">
|
|
87240
|
-
Best value
|
|
87241
|
-
</div>
|
|
87242
|
-
}
|
|
87243
|
-
|
|
87244
|
-
<div class="flex items-start justify-between mb-6">
|
|
87245
|
-
<div class="flex-1">
|
|
87246
|
-
<h3 [ngClass]="planTitleClasses()" class="text-xl font-bold mb-2">
|
|
87247
|
-
{{ getPlanTitle() }}
|
|
87248
|
-
</h3>
|
|
87249
|
-
<div class="flex items-baseline gap-2">
|
|
87250
|
-
<span [ngClass]="priceClasses()" class="text-4xl font-bold">
|
|
87251
|
-
{{ formatPrice() }}
|
|
87252
|
-
</span>
|
|
87253
|
-
<span [ngClass]="pricePeriodClasses()" class="text-base">
|
|
87254
|
-
{{ getPricePeriod() }}
|
|
87255
|
-
</span>
|
|
87256
|
-
</div>
|
|
87257
|
-
</div>
|
|
87258
|
-
<div class="flex-shrink-0 ml-4">
|
|
87259
|
-
<div [ngClass]="radioClasses()" class="w-6 h-6 rounded-full border-2 flex items-center justify-center transition-all duration-200">
|
|
87260
|
-
@if (isSelected()) {
|
|
87261
|
-
<div [ngClass]="radioInnerClasses()" class="w-3 h-3 rounded-full"></div>
|
|
87262
|
-
}
|
|
87263
|
-
</div>
|
|
87264
|
-
</div>
|
|
87265
|
-
</div>
|
|
87266
|
-
|
|
87267
|
-
<div [ngClass]="sectionClasses()" class="space-y-4">
|
|
87268
|
-
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87269
|
-
<div class="flex items-center gap-2">
|
|
87270
|
-
<span [ngClass]="labelClasses()" class="text-sm font-medium">AI usage</span>
|
|
87271
|
-
@if (hasTooltip('aiUsage')) {
|
|
87272
|
-
<button [ngClass]="tooltipButtonClasses()" class="w-4 h-4 rounded-full flex items-center justify-center">
|
|
87273
|
-
<svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
|
|
87274
|
-
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path>
|
|
87275
|
-
</svg>
|
|
87276
|
-
</button>
|
|
87277
|
-
}
|
|
87278
|
-
</div>
|
|
87279
|
-
<span [ngClass]="valueClasses()" class="text-sm font-semibold">
|
|
87280
|
-
charged monthly based on your actual usage
|
|
87281
|
-
</span>
|
|
87282
|
-
</div>
|
|
87283
|
-
|
|
87284
|
-
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87285
|
-
<div class="flex items-center gap-2">
|
|
87286
|
-
<span [ngClass]="labelClasses()" class="text-sm font-medium">Shops</span>
|
|
87287
|
-
@if (hasTooltip('shops')) {
|
|
87288
|
-
<button [ngClass]="tooltipButtonClasses()" class="w-4 h-4 rounded-full flex items-center justify-center">
|
|
87289
|
-
<svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
|
|
87290
|
-
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path>
|
|
87291
|
-
</svg>
|
|
87292
|
-
</button>
|
|
87293
|
-
}
|
|
87294
|
-
</div>
|
|
87295
|
-
<div class="text-right">
|
|
87296
|
-
<div [ngClass]="valueClasses()" class="text-sm font-semibold">
|
|
87297
|
-
{{ getShopsQuantity() }}
|
|
87298
|
-
</div>
|
|
87299
|
-
@if (getAdditionalShopsPrice()) {
|
|
87300
|
-
<div [ngClass]="subValueClasses()" class="text-xs mt-1">
|
|
87301
|
-
{{ getAdditionalShopsPrice() }}
|
|
87302
|
-
</div>
|
|
87303
|
-
}
|
|
87304
|
-
</div>
|
|
87305
|
-
</div>
|
|
87306
|
-
|
|
87307
|
-
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87308
|
-
<span [ngClass]="labelClasses()" class="text-sm font-medium">Unlimited recommendations</span>
|
|
87309
|
-
<svg [ngClass]="checkIconClasses()" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
87310
|
-
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
|
|
87311
|
-
</svg>
|
|
87312
|
-
</div>
|
|
87313
|
-
|
|
87314
|
-
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87315
|
-
<span [ngClass]="labelClasses()" class="text-sm font-medium">Unlimited seats</span>
|
|
87316
|
-
<svg [ngClass]="checkIconClasses()" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
87317
|
-
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
|
|
87318
|
-
</svg>
|
|
87319
|
-
</div>
|
|
87320
|
-
|
|
87321
|
-
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87322
|
-
<span [ngClass]="labelClasses()" class="text-sm font-medium">Google Analytics integration</span>
|
|
87323
|
-
<svg [ngClass]="checkIconClasses()" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
87324
|
-
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
|
|
87325
|
-
</svg>
|
|
87326
|
-
</div>
|
|
87327
|
-
|
|
87328
|
-
<div [ngClass]="contractTermsClasses()" class="pt-4">
|
|
87329
|
-
<h4 [ngClass]="contractTermsLabelClasses()" class="text-xs font-semibold uppercase tracking-wider mb-2">
|
|
87330
|
-
Contract terms
|
|
87331
|
-
</h4>
|
|
87332
|
-
<p [ngClass]="contractTermsTextClasses()" class="text-sm leading-relaxed">
|
|
87333
|
-
{{ getContractTerms() }}
|
|
87334
|
-
</p>
|
|
87335
|
-
</div>
|
|
87336
|
-
</div>
|
|
87337
|
-
</div>
|
|
87231
|
+
template: `
|
|
87232
|
+
<div
|
|
87233
|
+
(click)="handleCardClick()"
|
|
87234
|
+
[ngClass]="cardContainerClasses()"
|
|
87235
|
+
class="relative rounded-2xl border-2 p-6 transition-all duration-200 cursor-pointer hover:scale-[1.02]">
|
|
87236
|
+
|
|
87237
|
+
@if (showBestValueBadge()) {
|
|
87238
|
+
<div [ngClass]="badgeClasses()" class="absolute -top-3 left-1/2 transform -translate-x-1/2 px-4 py-1 rounded-full text-xs font-bold">
|
|
87239
|
+
Best value
|
|
87240
|
+
</div>
|
|
87241
|
+
}
|
|
87242
|
+
|
|
87243
|
+
<div class="flex items-start justify-between mb-6">
|
|
87244
|
+
<div class="flex-1">
|
|
87245
|
+
<h3 [ngClass]="planTitleClasses()" class="text-xl font-bold mb-2">
|
|
87246
|
+
{{ getPlanTitle() }}
|
|
87247
|
+
</h3>
|
|
87248
|
+
<div class="flex items-baseline gap-2">
|
|
87249
|
+
<span [ngClass]="priceClasses()" class="text-4xl font-bold">
|
|
87250
|
+
{{ formatPrice() }}
|
|
87251
|
+
</span>
|
|
87252
|
+
<span [ngClass]="pricePeriodClasses()" class="text-base">
|
|
87253
|
+
{{ getPricePeriod() }}
|
|
87254
|
+
</span>
|
|
87255
|
+
</div>
|
|
87256
|
+
</div>
|
|
87257
|
+
<div class="flex-shrink-0 ml-4">
|
|
87258
|
+
<div [ngClass]="radioClasses()" class="w-6 h-6 rounded-full border-2 flex items-center justify-center transition-all duration-200">
|
|
87259
|
+
@if (isSelected()) {
|
|
87260
|
+
<div [ngClass]="radioInnerClasses()" class="w-3 h-3 rounded-full"></div>
|
|
87261
|
+
}
|
|
87262
|
+
</div>
|
|
87263
|
+
</div>
|
|
87264
|
+
</div>
|
|
87265
|
+
|
|
87266
|
+
<div [ngClass]="sectionClasses()" class="space-y-4">
|
|
87267
|
+
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87268
|
+
<div class="flex items-center gap-2">
|
|
87269
|
+
<span [ngClass]="labelClasses()" class="text-sm font-medium">AI usage</span>
|
|
87270
|
+
@if (hasTooltip('aiUsage')) {
|
|
87271
|
+
<button [ngClass]="tooltipButtonClasses()" class="w-4 h-4 rounded-full flex items-center justify-center">
|
|
87272
|
+
<svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
|
|
87273
|
+
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path>
|
|
87274
|
+
</svg>
|
|
87275
|
+
</button>
|
|
87276
|
+
}
|
|
87277
|
+
</div>
|
|
87278
|
+
<span [ngClass]="valueClasses()" class="text-sm font-semibold">
|
|
87279
|
+
charged monthly based on your actual usage
|
|
87280
|
+
</span>
|
|
87281
|
+
</div>
|
|
87282
|
+
|
|
87283
|
+
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87284
|
+
<div class="flex items-center gap-2">
|
|
87285
|
+
<span [ngClass]="labelClasses()" class="text-sm font-medium">Shops</span>
|
|
87286
|
+
@if (hasTooltip('shops')) {
|
|
87287
|
+
<button [ngClass]="tooltipButtonClasses()" class="w-4 h-4 rounded-full flex items-center justify-center">
|
|
87288
|
+
<svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
|
|
87289
|
+
<path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path>
|
|
87290
|
+
</svg>
|
|
87291
|
+
</button>
|
|
87292
|
+
}
|
|
87293
|
+
</div>
|
|
87294
|
+
<div class="text-right">
|
|
87295
|
+
<div [ngClass]="valueClasses()" class="text-sm font-semibold">
|
|
87296
|
+
{{ getShopsQuantity() }}
|
|
87297
|
+
</div>
|
|
87298
|
+
@if (getAdditionalShopsPrice()) {
|
|
87299
|
+
<div [ngClass]="subValueClasses()" class="text-xs mt-1">
|
|
87300
|
+
{{ getAdditionalShopsPrice() }}
|
|
87301
|
+
</div>
|
|
87302
|
+
}
|
|
87303
|
+
</div>
|
|
87304
|
+
</div>
|
|
87305
|
+
|
|
87306
|
+
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87307
|
+
<span [ngClass]="labelClasses()" class="text-sm font-medium">Unlimited recommendations</span>
|
|
87308
|
+
<svg [ngClass]="checkIconClasses()" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
87309
|
+
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
|
|
87310
|
+
</svg>
|
|
87311
|
+
</div>
|
|
87312
|
+
|
|
87313
|
+
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87314
|
+
<span [ngClass]="labelClasses()" class="text-sm font-medium">Unlimited seats</span>
|
|
87315
|
+
<svg [ngClass]="checkIconClasses()" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
87316
|
+
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
|
|
87317
|
+
</svg>
|
|
87318
|
+
</div>
|
|
87319
|
+
|
|
87320
|
+
<div [ngClass]="featureRowClasses()" class="flex justify-between items-center py-3 border-b">
|
|
87321
|
+
<span [ngClass]="labelClasses()" class="text-sm font-medium">Google Analytics integration</span>
|
|
87322
|
+
<svg [ngClass]="checkIconClasses()" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
87323
|
+
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
|
|
87324
|
+
</svg>
|
|
87325
|
+
</div>
|
|
87326
|
+
|
|
87327
|
+
<div [ngClass]="contractTermsClasses()" class="pt-4">
|
|
87328
|
+
<h4 [ngClass]="contractTermsLabelClasses()" class="text-xs font-semibold uppercase tracking-wider mb-2">
|
|
87329
|
+
Contract terms
|
|
87330
|
+
</h4>
|
|
87331
|
+
<p [ngClass]="contractTermsTextClasses()" class="text-sm leading-relaxed">
|
|
87332
|
+
{{ getContractTerms() }}
|
|
87333
|
+
</p>
|
|
87334
|
+
</div>
|
|
87335
|
+
</div>
|
|
87336
|
+
</div>
|
|
87338
87337
|
`
|
|
87339
87338
|
}]
|
|
87340
87339
|
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], planInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "planInfo", required: true }] }], isSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSelected", required: false }] }], selectedPeriodUnit: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPeriodUnit", required: false }] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }] }); })();
|
|
@@ -88935,7 +88934,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
88935
88934
|
this.isEditingCurrency = signal(false, ...(ngDevMode ? [{ debugName: "isEditingCurrency" }] : []));
|
|
88936
88935
|
this.editingCurrencySelection = signal(null, ...(ngDevMode ? [{ debugName: "editingCurrencySelection" }] : []));
|
|
88937
88936
|
this.selectedPeriodUnit = computed(() => {
|
|
88938
|
-
return this.account()?.
|
|
88937
|
+
return this.account()?.chargebeeItemPricePeriodUnit || ChargebeeItemPricePeriodUnitEnum.YEAR;
|
|
88939
88938
|
}, ...(ngDevMode ? [{ debugName: "selectedPeriodUnit" }] : []));
|
|
88940
88939
|
this.showPlanSelection = computed(() => {
|
|
88941
88940
|
return this.hasBillingCurrency() && this.planCardInfos() && this.planCardInfos().length > 0;
|
|
@@ -88974,7 +88973,9 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
88974
88973
|
}, ...(ngDevMode ? [{ debugName: "currencySelectionEffect" }] : []));
|
|
88975
88974
|
this.planLoadingEffect = effect(() => {
|
|
88976
88975
|
const planCardInfos = this.planCardInfos();
|
|
88976
|
+
console.log('[planLoadingEffect] triggered', { planCardInfos: planCardInfos?.length, isPlanLoading: this.isPlanLoading() });
|
|
88977
88977
|
if (planCardInfos && this.isPlanLoading()) {
|
|
88978
|
+
console.log('[planLoadingEffect] resetting isPlanLoading to false');
|
|
88978
88979
|
this.isPlanLoading.set(false);
|
|
88979
88980
|
}
|
|
88980
88981
|
}, ...(ngDevMode ? [{ debugName: "planLoadingEffect" }] : []));
|
|
@@ -89698,7 +89699,9 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
89698
89699
|
}
|
|
89699
89700
|
}
|
|
89700
89701
|
handlePeriodUnitChange(periodUnit) {
|
|
89702
|
+
console.log('[handlePeriodUnitChange] setting isPlanLoading to true', { periodUnit });
|
|
89701
89703
|
this.isPlanLoading.set(true);
|
|
89704
|
+
console.log('[handlePeriodUnitChange] isPlanLoading is now:', this.isPlanLoading());
|
|
89702
89705
|
this.periodUnitChanged.emit(periodUnit);
|
|
89703
89706
|
}
|
|
89704
89707
|
handlePlanSelection(plan) {
|