@eric-emg/symphiq-components 1.2.342 → 1.2.344
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 +164 -100
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +14 -14
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/styles.css +8 -0
|
@@ -86935,6 +86935,7 @@ class PlanCardComponent {
|
|
|
86935
86935
|
this.planInfo = input.required(...(ngDevMode ? [{ debugName: "planInfo" }] : []));
|
|
86936
86936
|
this.isSelected = input(false, ...(ngDevMode ? [{ debugName: "isSelected" }] : []));
|
|
86937
86937
|
this.selectedPeriodUnit = input(ChargebeeItemPricePeriodUnitEnum.YEAR, ...(ngDevMode ? [{ debugName: "selectedPeriodUnit" }] : []));
|
|
86938
|
+
this.monthlyComparisonPrice = input(undefined, ...(ngDevMode ? [{ debugName: "monthlyComparisonPrice" }] : []));
|
|
86938
86939
|
this.planSelected = output();
|
|
86939
86940
|
this.showBestValueBadge = computed(() => {
|
|
86940
86941
|
return this.planInfo().bestValue === true;
|
|
@@ -87154,11 +87155,10 @@ At the end of each month, your total AI usage is calculated and automatically bi
|
|
|
87154
87155
|
if (!this.showBestValueBadge())
|
|
87155
87156
|
return null;
|
|
87156
87157
|
const info = this.planInfo();
|
|
87157
|
-
|
|
87158
|
+
const monthlyPrice = this.monthlyComparisonPrice();
|
|
87159
|
+
if (info.periodUnit === ChargebeeItemPricePeriodUnitEnum.YEAR && monthlyPrice) {
|
|
87158
87160
|
const annualPrice = info.planItemPrice.price || 0;
|
|
87159
|
-
const
|
|
87160
|
-
const monthlyPlanPrice = monthlyPrice * 1.2;
|
|
87161
|
-
const totalMonthlyOver12 = monthlyPlanPrice * 12;
|
|
87161
|
+
const totalMonthlyOver12 = monthlyPrice * 12;
|
|
87162
87162
|
const savings = totalMonthlyOver12 - annualPrice;
|
|
87163
87163
|
if (savings > 0) {
|
|
87164
87164
|
const symbol = this.getCurrencySymbol();
|
|
@@ -87169,7 +87169,7 @@ At the end of each month, your total AI usage is calculated and automatically bi
|
|
|
87169
87169
|
return null;
|
|
87170
87170
|
}
|
|
87171
87171
|
static { this.ɵfac = function PlanCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PlanCardComponent)(); }; }
|
|
87172
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PlanCardComponent, selectors: [["symphiq-plan-card"]], inputs: { viewMode: [1, "viewMode"], planInfo: [1, "planInfo"], isSelected: [1, "isSelected"], selectedPeriodUnit: [1, "selectedPeriodUnit"] }, outputs: { planSelected: "planSelected" }, decls: 45, vars: 35, consts: [[1, "relative", "rounded-2xl", "border-2", "p-6", "transition-all", "duration-200", "cursor-pointer", "hover:scale-[1.02]", 3, "click", "ngClass"], [1, "absolute", "-top-5", "left-1/2", "flex", "flex-col", "items-center", "gap-2", "z-10"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "flex-1"], [1, "text-xl", "font-bold", "mb-2", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-2", "flex", "items-center", "gap-1", 3, "ngClass"], [1, "flex", "items-baseline", "gap-2"], [1, "text-4xl", "font-bold", 3, "ngClass"], [1, "text-base", 3, "ngClass"], [1, "text-sm", "font-bold", "mt-2", "flex", "items-center", "gap-1", 3, "ngClass"], [1, "flex-shrink-0", "ml-4"], [1, "w-6", "h-6", "rounded-full", "border-2", "flex", "items-center", "justify-center", "transition-all", "duration-200", 3, "ngClass"], [1, "w-3", "h-3", "rounded-full", 3, "ngClass"], [1, "space-y-4", 3, "ngClass"], [1, "flex", "justify-between", "items-center", "py-3", "border-b", 3, "ngClass"], [1, "flex", "items-center", "gap-2"], [1, "text-sm", "font-medium", 3, "ngClass"], ["tooltipType", "markdown", "tooltipPosition", "right", 1, "w-5", "h-5", "rounded-full", "flex", "items-center", "justify-center", 3, "libSymphiqTooltip", "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4"], ["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"], [1, "text-sm", "font-semibold", "text-right", "max-w-[60%]", 3, "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-5", "h-5", 3, "ngClass"], ["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"], [1, "flex", "justify-between", "items-center", "py-3", 3, "ngClass"], [1, "pt-4", "mt-4", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-sm", "leading-relaxed", 3, "ngClass", "innerHTML"], [1, "px-6", "py-2", "rounded-full", "text-base", "font-extrabold", "shadow-2xl", 3, "ngClass"], [1, "drop-shadow-lg"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "shadow-lg", 3, "ngClass", "savings-badge", "savings-badge-selected"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "shadow-lg", 3, "ngClass"], ["fill-rule", "evenodd", "d", "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z", "clip-rule", "evenodd"], ["fill-rule", "evenodd", "d", "M5 2a1 1 0 011 1v1h1a1 1 0 010 2H6v1a1 1 0 01-2 0V6H3a1 1 0 010-2h1V3a1 1 0 011-1zm0 10a1 1 0 011 1v1h1a1 1 0 110 2H6v1a1 1 0 11-2 0v-1H3a1 1 0 110-2h1v-1a1 1 0 011-1zM12 2a1 1 0 01.967.744L14.146 7.2 17.5 9.134a1 1 0 010 1.732l-3.354 1.935-1.18 4.455a1 1 0 01-1.933 0L9.854 12.8 6.5 10.866a1 1 0 010-1.732l3.354-1.935 1.18-4.455A1 1 0 0112 2z", "clip-rule", "evenodd"]], template: function PlanCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
87172
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PlanCardComponent, selectors: [["symphiq-plan-card"]], inputs: { viewMode: [1, "viewMode"], planInfo: [1, "planInfo"], isSelected: [1, "isSelected"], selectedPeriodUnit: [1, "selectedPeriodUnit"], monthlyComparisonPrice: [1, "monthlyComparisonPrice"] }, outputs: { planSelected: "planSelected" }, decls: 45, vars: 35, consts: [[1, "relative", "rounded-2xl", "border-2", "p-6", "transition-all", "duration-200", "cursor-pointer", "hover:scale-[1.02]", 3, "click", "ngClass"], [1, "absolute", "-top-5", "left-1/2", "flex", "flex-col", "items-center", "gap-2", "z-10"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "flex-1"], [1, "text-xl", "font-bold", "mb-2", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-2", "flex", "items-center", "gap-1", 3, "ngClass"], [1, "flex", "items-baseline", "gap-2"], [1, "text-4xl", "font-bold", 3, "ngClass"], [1, "text-base", 3, "ngClass"], [1, "text-sm", "font-bold", "mt-2", "flex", "items-center", "gap-1", 3, "ngClass"], [1, "flex-shrink-0", "ml-4"], [1, "w-6", "h-6", "rounded-full", "border-2", "flex", "items-center", "justify-center", "transition-all", "duration-200", 3, "ngClass"], [1, "w-3", "h-3", "rounded-full", 3, "ngClass"], [1, "space-y-4", 3, "ngClass"], [1, "flex", "justify-between", "items-center", "py-3", "border-b", 3, "ngClass"], [1, "flex", "items-center", "gap-2"], [1, "text-sm", "font-medium", 3, "ngClass"], ["tooltipType", "markdown", "tooltipPosition", "right", 1, "w-5", "h-5", "rounded-full", "flex", "items-center", "justify-center", 3, "libSymphiqTooltip", "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4"], ["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"], [1, "text-sm", "font-semibold", "text-right", "max-w-[60%]", 3, "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-5", "h-5", 3, "ngClass"], ["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"], [1, "flex", "justify-between", "items-center", "py-3", 3, "ngClass"], [1, "pt-4", "mt-4", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-sm", "leading-relaxed", 3, "ngClass", "innerHTML"], [1, "px-6", "py-2", "rounded-full", "text-base", "font-extrabold", "shadow-2xl", 3, "ngClass"], [1, "drop-shadow-lg"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "shadow-lg", 3, "ngClass", "savings-badge", "savings-badge-selected"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "shadow-lg", 3, "ngClass"], ["fill-rule", "evenodd", "d", "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z", "clip-rule", "evenodd"], ["fill-rule", "evenodd", "d", "M5 2a1 1 0 011 1v1h1a1 1 0 010 2H6v1a1 1 0 01-2 0V6H3a1 1 0 010-2h1V3a1 1 0 011-1zm0 10a1 1 0 011 1v1h1a1 1 0 110 2H6v1a1 1 0 11-2 0v-1H3a1 1 0 110-2h1v-1a1 1 0 011-1zM12 2a1 1 0 01.967.744L14.146 7.2 17.5 9.134a1 1 0 010 1.732l-3.354 1.935-1.18 4.455a1 1 0 01-1.933 0L9.854 12.8 6.5 10.866a1 1 0 010-1.732l3.354-1.935 1.18-4.455A1 1 0 0112 2z", "clip-rule", "evenodd"]], template: function PlanCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
87173
87173
|
i0.ɵɵelementStart(0, "div", 0);
|
|
87174
87174
|
i0.ɵɵlistener("click", function PlanCardComponent_Template_div_click_0_listener() { return ctx.handleCardClick(); });
|
|
87175
87175
|
i0.ɵɵconditionalCreate(1, PlanCardComponent_Conditional_1_Template, 5, 6, "div", 1);
|
|
@@ -87288,7 +87288,7 @@ At the end of each month, your total AI usage is calculated and automatically bi
|
|
|
87288
87288
|
i0.ɵɵproperty("ngClass", ctx.contractTermsLabelClasses());
|
|
87289
87289
|
i0.ɵɵadvance(2);
|
|
87290
87290
|
i0.ɵɵproperty("ngClass", ctx.contractTermsTextClasses())("innerHTML", ctx.getContractTerms(), i0.ɵɵsanitizeHtml);
|
|
87291
|
-
} }, dependencies: [CommonModule, i1$1.NgClass, TooltipDirective], styles: ["@keyframes _ngcontent-%COMP%_pulse-glow{0%,to{transform:translate(-50%) scale(1);box-shadow:0 0 20px #eab30899,0 0 40px #eab30866,0 0 60px #eab30833,inset 0 0 20px #ffffff4d}50%{transform:translate(-50%) scale(1.
|
|
87291
|
+
} }, dependencies: [CommonModule, i1$1.NgClass, TooltipDirective], styles: ["@keyframes _ngcontent-%COMP%_pulse-glow{0%,to{transform:translate(-50%) scale(1);box-shadow:0 0 20px #eab30899,0 0 40px #eab30866,0 0 60px #eab30833,inset 0 0 20px #ffffff4d}50%{transform:translate(-50%) scale(1.06);box-shadow:0 0 25px #eab308b3,0 0 50px #eab30880,0 0 75px #eab3084d,inset 0 0 25px #fff6}}@keyframes _ngcontent-%COMP%_pulse-glow-selected{0%,to{transform:translate(-50%) scale(1);box-shadow:0 0 20px #a855f799,0 0 40px #a855f766,0 0 60px #a855f733,inset 0 0 20px #ffffff4d}50%{transform:translate(-50%) scale(1.06);box-shadow:0 0 25px #a855f7b3,0 0 50px #a855f780,0 0 75px #a855f74d,inset 0 0 25px #fff6}}@keyframes _ngcontent-%COMP%_shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes _ngcontent-%COMP%_border-glow{0%,to{box-shadow:0 0 20px #eab30866,0 0 40px #eab30833,0 0 60px #eab3081a}50%{box-shadow:0 0 25px #eab30880,0 0 50px #eab3084d,0 0 75px #eab30826}}@keyframes _ngcontent-%COMP%_border-glow-selected{0%,to{box-shadow:0 0 20px #a855f766,0 0 40px #a855f733,0 0 60px #a855f71a}50%{box-shadow:0 0 25px #a855f780,0 0 50px #a855f74d,0 0 75px #a855f726}}.best-value-badge[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow 12s ease-in-out infinite;background:linear-gradient(135deg,#fbbf24,#f59e0b,#ec4899,#d946ef,#a855f7,#ec4899 75%,#f59e0b 85%,#fbbf24);background-size:300% 300%;animation:_ngcontent-%COMP%_pulse-glow 12s ease-in-out infinite,_ngcontent-%COMP%_shimmer 20s linear infinite;position:relative;overflow:hidden;transition:all .3s ease}.best-value-badge-selected[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow-selected 12s ease-in-out infinite,_ngcontent-%COMP%_shimmer 20s linear infinite;background:linear-gradient(135deg,#a855f7,#9333ea,#7c3aed,#8b5cf6,#9333ea,#a855f7);background-size:300% 300%}.best-value-badge[_ngcontent-%COMP%]:before{content:\"\";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:_ngcontent-%COMP%_shimmer 12s infinite}.best-value-card[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_border-glow 12s ease-in-out infinite;border-width:3px;transition:all .3s ease}.best-value-card-selected[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_border-glow-selected 12s ease-in-out infinite}.best-value-card[_ngcontent-%COMP%]:hover{transform:scale(1.02)}.savings-badge[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow 14s ease-in-out infinite}.savings-badge-selected[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow-selected 14s ease-in-out infinite}"], changeDetection: 0 }); }
|
|
87292
87292
|
}
|
|
87293
87293
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PlanCardComponent, [{
|
|
87294
87294
|
type: Component,
|
|
@@ -87407,15 +87407,15 @@ At the end of each month, your total AI usage is calculated and automatically bi
|
|
|
87407
87407
|
</div>
|
|
87408
87408
|
</div>
|
|
87409
87409
|
</div>
|
|
87410
|
-
`, styles: ["@keyframes pulse-glow{0%,to{transform:translate(-50%) scale(1);box-shadow:0 0 20px #eab30899,0 0 40px #eab30866,0 0 60px #eab30833,inset 0 0 20px #ffffff4d}50%{transform:translate(-50%) scale(1.
|
|
87411
|
-
}], 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"] }] }); })();
|
|
87412
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PlanCardComponent, { className: "PlanCardComponent", filePath: "lib/components/profile-analysis-dashboard/cards/plan-card.component.ts", lineNumber:
|
|
87410
|
+
`, styles: ["@keyframes pulse-glow{0%,to{transform:translate(-50%) scale(1);box-shadow:0 0 20px #eab30899,0 0 40px #eab30866,0 0 60px #eab30833,inset 0 0 20px #ffffff4d}50%{transform:translate(-50%) scale(1.06);box-shadow:0 0 25px #eab308b3,0 0 50px #eab30880,0 0 75px #eab3084d,inset 0 0 25px #fff6}}@keyframes pulse-glow-selected{0%,to{transform:translate(-50%) scale(1);box-shadow:0 0 20px #a855f799,0 0 40px #a855f766,0 0 60px #a855f733,inset 0 0 20px #ffffff4d}50%{transform:translate(-50%) scale(1.06);box-shadow:0 0 25px #a855f7b3,0 0 50px #a855f780,0 0 75px #a855f74d,inset 0 0 25px #fff6}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes border-glow{0%,to{box-shadow:0 0 20px #eab30866,0 0 40px #eab30833,0 0 60px #eab3081a}50%{box-shadow:0 0 25px #eab30880,0 0 50px #eab3084d,0 0 75px #eab30826}}@keyframes border-glow-selected{0%,to{box-shadow:0 0 20px #a855f766,0 0 40px #a855f733,0 0 60px #a855f71a}50%{box-shadow:0 0 25px #a855f780,0 0 50px #a855f74d,0 0 75px #a855f726}}.best-value-badge{animation:pulse-glow 12s ease-in-out infinite;background:linear-gradient(135deg,#fbbf24,#f59e0b,#ec4899,#d946ef,#a855f7,#ec4899 75%,#f59e0b 85%,#fbbf24);background-size:300% 300%;animation:pulse-glow 12s ease-in-out infinite,shimmer 20s linear infinite;position:relative;overflow:hidden;transition:all .3s ease}.best-value-badge-selected{animation:pulse-glow-selected 12s ease-in-out infinite,shimmer 20s linear infinite;background:linear-gradient(135deg,#a855f7,#9333ea,#7c3aed,#8b5cf6,#9333ea,#a855f7);background-size:300% 300%}.best-value-badge:before{content:\"\";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 12s infinite}.best-value-card{animation:border-glow 12s ease-in-out infinite;border-width:3px;transition:all .3s ease}.best-value-card-selected{animation:border-glow-selected 12s ease-in-out infinite}.best-value-card:hover{transform:scale(1.02)}.savings-badge{animation:pulse-glow 14s ease-in-out infinite}.savings-badge-selected{animation:pulse-glow-selected 14s ease-in-out infinite}\n"] }]
|
|
87411
|
+
}], 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 }] }], monthlyComparisonPrice: [{ type: i0.Input, args: [{ isSignal: true, alias: "monthlyComparisonPrice", required: false }] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }] }); })();
|
|
87412
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PlanCardComponent, { className: "PlanCardComponent", filePath: "lib/components/profile-analysis-dashboard/cards/plan-card.component.ts", lineNumber: 270 }); })();
|
|
87413
87413
|
|
|
87414
87414
|
const _forTrack0$1 = ($index, $item) => $item.planItemPrice.id;
|
|
87415
87415
|
function PlanSelectionContainerComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
87416
87416
|
i0.ɵɵelementStart(0, "div", 14);
|
|
87417
|
-
i0.ɵɵelement(1, "symphiq-indeterminate-spinner",
|
|
87418
|
-
i0.ɵɵelementStart(2, "p",
|
|
87417
|
+
i0.ɵɵelement(1, "symphiq-indeterminate-spinner", 18);
|
|
87418
|
+
i0.ɵɵelementStart(2, "p", 19);
|
|
87419
87419
|
i0.ɵɵtext(3, " Loading your plan options... ");
|
|
87420
87420
|
i0.ɵɵelementEnd()();
|
|
87421
87421
|
} if (rf & 2) {
|
|
@@ -87427,17 +87427,17 @@ function PlanSelectionContainerComponent_Conditional_19_Template(rf, ctx) { if (
|
|
|
87427
87427
|
} }
|
|
87428
87428
|
function PlanSelectionContainerComponent_Conditional_20_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
87429
87429
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
87430
|
-
i0.ɵɵelementStart(0, "symphiq-plan-card",
|
|
87430
|
+
i0.ɵɵelementStart(0, "symphiq-plan-card", 21);
|
|
87431
87431
|
i0.ɵɵlistener("planSelected", function PlanSelectionContainerComponent_Conditional_20_For_2_Template_symphiq_plan_card_planSelected_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.handlePlanSelection($event)); });
|
|
87432
87432
|
i0.ɵɵelementEnd();
|
|
87433
87433
|
} if (rf & 2) {
|
|
87434
87434
|
const plan_r3 = ctx.$implicit;
|
|
87435
87435
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
87436
|
-
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("planInfo", plan_r3)("isSelected", ctx_r0.isSelectedPlan(plan_r3))("selectedPeriodUnit", ctx_r0.selectedPeriodUnit());
|
|
87436
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("planInfo", plan_r3)("isSelected", ctx_r0.isSelectedPlan(plan_r3))("selectedPeriodUnit", ctx_r0.selectedPeriodUnit())("monthlyComparisonPrice", ctx_r0.getMonthlyComparisonPrice());
|
|
87437
87437
|
} }
|
|
87438
87438
|
function PlanSelectionContainerComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
87439
87439
|
i0.ɵɵelementStart(0, "div", 15);
|
|
87440
|
-
i0.ɵɵrepeaterCreate(1, PlanSelectionContainerComponent_Conditional_20_For_2_Template, 1,
|
|
87440
|
+
i0.ɵɵrepeaterCreate(1, PlanSelectionContainerComponent_Conditional_20_For_2_Template, 1, 5, "symphiq-plan-card", 20, _forTrack0$1);
|
|
87441
87441
|
i0.ɵɵelementEnd();
|
|
87442
87442
|
} if (rf & 2) {
|
|
87443
87443
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -87447,14 +87447,14 @@ function PlanSelectionContainerComponent_Conditional_20_Template(rf, ctx) { if (
|
|
|
87447
87447
|
function PlanSelectionContainerComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
87448
87448
|
i0.ɵɵelementStart(0, "div", 16);
|
|
87449
87449
|
i0.ɵɵnamespaceSVG();
|
|
87450
|
-
i0.ɵɵelementStart(1, "svg",
|
|
87451
|
-
i0.ɵɵelement(2, "path",
|
|
87450
|
+
i0.ɵɵelementStart(1, "svg", 22);
|
|
87451
|
+
i0.ɵɵelement(2, "path", 23);
|
|
87452
87452
|
i0.ɵɵelementEnd();
|
|
87453
87453
|
i0.ɵɵnamespaceHTML();
|
|
87454
|
-
i0.ɵɵelementStart(3, "p",
|
|
87454
|
+
i0.ɵɵelementStart(3, "p", 24);
|
|
87455
87455
|
i0.ɵɵtext(4, " No plans available ");
|
|
87456
87456
|
i0.ɵɵelementEnd();
|
|
87457
|
-
i0.ɵɵelementStart(5, "p",
|
|
87457
|
+
i0.ɵɵelementStart(5, "p", 25);
|
|
87458
87458
|
i0.ɵɵtext(6, " Please contact support if this issue persists ");
|
|
87459
87459
|
i0.ɵɵelementEnd()();
|
|
87460
87460
|
} if (rf & 2) {
|
|
@@ -87467,6 +87467,26 @@ function PlanSelectionContainerComponent_Conditional_21_Template(rf, ctx) { if (
|
|
|
87467
87467
|
i0.ɵɵadvance(2);
|
|
87468
87468
|
i0.ɵɵproperty("ngClass", ctx_r0.emptySubtextClasses());
|
|
87469
87469
|
} }
|
|
87470
|
+
function PlanSelectionContainerComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
87471
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
87472
|
+
i0.ɵɵelementStart(0, "div", 17)(1, "div", 26)(2, "div", 27)(3, "span", 28);
|
|
87473
|
+
i0.ɵɵtext(4, "Selected:");
|
|
87474
|
+
i0.ɵɵelementEnd();
|
|
87475
|
+
i0.ɵɵtext(5);
|
|
87476
|
+
i0.ɵɵelementEnd();
|
|
87477
|
+
i0.ɵɵelementStart(6, "button", 29);
|
|
87478
|
+
i0.ɵɵlistener("click", function PlanSelectionContainerComponent_Conditional_22_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleCheckout()); });
|
|
87479
|
+
i0.ɵɵtext(7, " Checkout plan ");
|
|
87480
|
+
i0.ɵɵelementEnd()()();
|
|
87481
|
+
} if (rf & 2) {
|
|
87482
|
+
let tmp_3_0;
|
|
87483
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
87484
|
+
i0.ɵɵproperty("ngClass", ctx_r0.footerClasses());
|
|
87485
|
+
i0.ɵɵadvance(2);
|
|
87486
|
+
i0.ɵɵproperty("ngClass", ctx_r0.footerTextClasses());
|
|
87487
|
+
i0.ɵɵadvance(3);
|
|
87488
|
+
i0.ɵɵtextInterpolate1(" ", (tmp_3_0 = ctx_r0.selectedPlan()) == null ? null : tmp_3_0.planItemPrice == null ? null : tmp_3_0.planItemPrice.externalName, " ");
|
|
87489
|
+
} }
|
|
87470
87490
|
class PlanSelectionContainerComponent {
|
|
87471
87491
|
constructor() {
|
|
87472
87492
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
@@ -87477,18 +87497,32 @@ class PlanSelectionContainerComponent {
|
|
|
87477
87497
|
this.periodUnitChanged = output();
|
|
87478
87498
|
this.planSelected = output();
|
|
87479
87499
|
this.editCurrency = output();
|
|
87480
|
-
this.
|
|
87500
|
+
this.checkout = output();
|
|
87501
|
+
this.selectedPlan = signal(undefined, ...(ngDevMode ? [{ debugName: "selectedPlan" }] : []));
|
|
87481
87502
|
}
|
|
87482
87503
|
handlePeriodChange(period) {
|
|
87483
|
-
this.
|
|
87504
|
+
this.selectedPlan.set(undefined);
|
|
87484
87505
|
this.periodUnitChanged.emit(period);
|
|
87485
87506
|
}
|
|
87486
87507
|
handlePlanSelection(plan) {
|
|
87487
|
-
this.
|
|
87508
|
+
this.selectedPlan.set(plan);
|
|
87488
87509
|
this.planSelected.emit(plan);
|
|
87489
87510
|
}
|
|
87511
|
+
handleCheckout() {
|
|
87512
|
+
const plan = this.selectedPlan();
|
|
87513
|
+
if (plan) {
|
|
87514
|
+
this.checkout.emit(plan.planItemPrice);
|
|
87515
|
+
}
|
|
87516
|
+
}
|
|
87490
87517
|
isSelectedPlan(plan) {
|
|
87491
|
-
return this.
|
|
87518
|
+
return this.selectedPlan()?.planItemPrice.id === plan.planItemPrice.id;
|
|
87519
|
+
}
|
|
87520
|
+
getMonthlyComparisonPrice() {
|
|
87521
|
+
const plans = this.planCardInfos();
|
|
87522
|
+
if (plans && plans.length > 1) {
|
|
87523
|
+
return plans[1].planItemPrice.price;
|
|
87524
|
+
}
|
|
87525
|
+
return undefined;
|
|
87492
87526
|
}
|
|
87493
87527
|
containerClasses() {
|
|
87494
87528
|
return this.viewMode() === ViewModeEnum.DARK
|
|
@@ -87548,8 +87582,18 @@ class PlanSelectionContainerComponent {
|
|
|
87548
87582
|
? 'text-slate-500'
|
|
87549
87583
|
: 'text-slate-500';
|
|
87550
87584
|
}
|
|
87585
|
+
footerClasses() {
|
|
87586
|
+
return this.viewMode() === ViewModeEnum.DARK
|
|
87587
|
+
? 'bg-slate-800 border-slate-700'
|
|
87588
|
+
: 'bg-white border-slate-200';
|
|
87589
|
+
}
|
|
87590
|
+
footerTextClasses() {
|
|
87591
|
+
return this.viewMode() === ViewModeEnum.DARK
|
|
87592
|
+
? 'text-slate-200'
|
|
87593
|
+
: 'text-slate-700';
|
|
87594
|
+
}
|
|
87551
87595
|
static { this.ɵfac = function PlanSelectionContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PlanSelectionContainerComponent)(); }; }
|
|
87552
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PlanSelectionContainerComponent, selectors: [["symphiq-plan-selection-container"]], inputs: { viewMode: [1, "viewMode"], selectedCurrency: [1, "selectedCurrency"], planCardInfos: [1, "planCardInfos"], isLoading: [1, "isLoading"], selectedPeriodUnit: [1, "selectedPeriodUnit"] }, outputs: { periodUnitChanged: "periodUnitChanged", planSelected: "planSelected", editCurrency: "editCurrency" }, decls:
|
|
87596
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PlanSelectionContainerComponent, selectors: [["symphiq-plan-selection-container"]], inputs: { viewMode: [1, "viewMode"], selectedCurrency: [1, "selectedCurrency"], planCardInfos: [1, "planCardInfos"], isLoading: [1, "isLoading"], selectedPeriodUnit: [1, "selectedPeriodUnit"] }, outputs: { periodUnitChanged: "periodUnitChanged", planSelected: "planSelected", editCurrency: "editCurrency", checkout: "checkout" }, decls: 23, vars: 13, consts: [[1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-6", "py-5", "border-b", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], [1, "p-2.5", "rounded-lg", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "mt-0.5", "flex", "items-center", "gap-2", 3, "ngClass"], [1, "font-semibold"], [1, "inline-flex", "items-center", "gap-1", "px-2", "py-0.5", "text-xs", "font-medium", "rounded-md", "transition-colors", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"], [1, "p-8", 3, "ngClass"], [3, "periodUnitChanged", "viewMode", "selectedPeriodUnit", "isLoading"], [1, "flex", "flex-col", "items-center", "justify-center", "space-y-6", "min-h-[500px]", "mb-32"], [1, "flex", "flex-col", "gap-8", "mb-32", "min-h-[500px]"], [1, "text-center", "py-16", 3, "ngClass"], [1, "fixed", "bottom-0", "left-0", "right-0", "px-6", "py-4", "border-t", "shadow-lg", "z-50", 3, "ngClass"], [3, "viewMode", "size"], [1, "text-base", "font-medium", 3, "ngClass"], [3, "viewMode", "planInfo", "isSelected", "selectedPeriodUnit", "monthlyComparisonPrice"], [3, "planSelected", "viewMode", "planInfo", "isSelected", "selectedPeriodUnit", "monthlyComparisonPrice"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-16", "h-16", "mx-auto", "mb-4", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-lg", "font-semibold", 3, "ngClass"], [1, "text-sm", "mt-2", 3, "ngClass"], [1, "max-w-4xl", "mx-auto", "flex", "items-center", "justify-between"], [3, "ngClass"], [1, "font-medium"], [1, "px-6", "py-3", "bg-gradient-to-r", "from-emerald-500", "to-cyan-500", "hover:from-emerald-600", "hover:to-cyan-600", "text-white", "font-semibold", "rounded-lg", "shadow-md", "transition-all", "duration-200", 3, "click"]], template: function PlanSelectionContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
87553
87597
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
|
|
87554
87598
|
i0.ɵɵnamespaceSVG();
|
|
87555
87599
|
i0.ɵɵelementStart(4, "svg", 4);
|
|
@@ -87578,6 +87622,7 @@ class PlanSelectionContainerComponent {
|
|
|
87578
87622
|
i0.ɵɵelementEnd();
|
|
87579
87623
|
i0.ɵɵconditionalCreate(19, PlanSelectionContainerComponent_Conditional_19_Template, 4, 3, "div", 14)(20, PlanSelectionContainerComponent_Conditional_20_Template, 3, 0, "div", 15)(21, PlanSelectionContainerComponent_Conditional_21_Template, 7, 4, "div", 16);
|
|
87580
87624
|
i0.ɵɵelementEnd()();
|
|
87625
|
+
i0.ɵɵconditionalCreate(22, PlanSelectionContainerComponent_Conditional_22_Template, 8, 3, "div", 17);
|
|
87581
87626
|
} if (rf & 2) {
|
|
87582
87627
|
i0.ɵɵproperty("ngClass", ctx.containerClasses());
|
|
87583
87628
|
i0.ɵɵadvance();
|
|
@@ -87598,6 +87643,8 @@ class PlanSelectionContainerComponent {
|
|
|
87598
87643
|
i0.ɵɵproperty("viewMode", ctx.viewMode())("selectedPeriodUnit", ctx.selectedPeriodUnit())("isLoading", ctx.isLoading());
|
|
87599
87644
|
i0.ɵɵadvance();
|
|
87600
87645
|
i0.ɵɵconditional(ctx.isLoading() ? 19 : ctx.planCardInfos() && ctx.planCardInfos().length > 0 ? 20 : 21);
|
|
87646
|
+
i0.ɵɵadvance(3);
|
|
87647
|
+
i0.ɵɵconditional(ctx.selectedPlan() ? 22 : -1);
|
|
87601
87648
|
} }, dependencies: [CommonModule, i1$1.NgClass, BillingPeriodToggleComponent, PlanCardComponent, IndeterminateSpinnerComponent], encapsulation: 2, changeDetection: 0 }); }
|
|
87602
87649
|
}
|
|
87603
87650
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PlanSelectionContainerComponent, [{
|
|
@@ -87607,85 +87654,102 @@ class PlanSelectionContainerComponent {
|
|
|
87607
87654
|
standalone: true,
|
|
87608
87655
|
imports: [CommonModule, BillingPeriodToggleComponent, PlanCardComponent, IndeterminateSpinnerComponent],
|
|
87609
87656
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
87610
|
-
template: `
|
|
87611
|
-
<div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
|
|
87612
|
-
<div [ngClass]="headerClasses()" class="px-6 py-5 border-b">
|
|
87613
|
-
<div class="flex items-center gap-3">
|
|
87614
|
-
<div [ngClass]="iconContainerClasses()" class="p-2.5 rounded-lg">
|
|
87615
|
-
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
87616
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"></path>
|
|
87617
|
-
</svg>
|
|
87618
|
-
</div>
|
|
87619
|
-
<div>
|
|
87620
|
-
<h2 [ngClass]="titleClasses()" class="text-xl font-bold">
|
|
87621
|
-
Choose Your Plan
|
|
87622
|
-
</h2>
|
|
87623
|
-
<p [ngClass]="subtitleClasses()" class="text-sm mt-0.5 flex items-center gap-2">
|
|
87624
|
-
Selected currency: <span class="font-semibold">{{ selectedCurrency() }}</span>
|
|
87625
|
-
<button
|
|
87626
|
-
(click)="editCurrency.emit()"
|
|
87627
|
-
[ngClass]="editButtonClasses()"
|
|
87628
|
-
class="inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-md transition-colors"
|
|
87629
|
-
>
|
|
87630
|
-
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
87631
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path>
|
|
87632
|
-
</svg>
|
|
87633
|
-
Edit
|
|
87634
|
-
</button>
|
|
87635
|
-
</p>
|
|
87636
|
-
</div>
|
|
87637
|
-
</div>
|
|
87638
|
-
</div>
|
|
87639
|
-
|
|
87640
|
-
<div [ngClass]="contentClasses()" class="p-8">
|
|
87641
|
-
<symphiq-billing-period-toggle
|
|
87642
|
-
[viewMode]="viewMode()"
|
|
87643
|
-
[selectedPeriodUnit]="selectedPeriodUnit()"
|
|
87644
|
-
[isLoading]="isLoading()"
|
|
87645
|
-
(periodUnitChanged)="handlePeriodChange($event)"
|
|
87646
|
-
/>
|
|
87647
|
-
|
|
87648
|
-
@if (isLoading()) {
|
|
87649
|
-
<div class="flex flex-col items-center justify-center space-y-6 min-h-[500px] mb-32">
|
|
87650
|
-
<symphiq-indeterminate-spinner
|
|
87651
|
-
[viewMode]="viewMode()"
|
|
87652
|
-
[size]="'large'"
|
|
87653
|
-
/>
|
|
87654
|
-
<p [ngClass]="loadingTextClasses()" class="text-base font-medium">
|
|
87655
|
-
Loading your plan options...
|
|
87656
|
-
</p>
|
|
87657
|
-
</div>
|
|
87658
|
-
} @else if (planCardInfos() && planCardInfos()!.length > 0) {
|
|
87659
|
-
<div class="flex flex-col gap-8 mb-32 min-h-[500px]">
|
|
87660
|
-
@for (plan of planCardInfos(); track plan.planItemPrice.id) {
|
|
87661
|
-
<symphiq-plan-card
|
|
87662
|
-
[viewMode]="viewMode()"
|
|
87663
|
-
[planInfo]="plan"
|
|
87664
|
-
[isSelected]="isSelectedPlan(plan)"
|
|
87665
|
-
[selectedPeriodUnit]="selectedPeriodUnit()"
|
|
87666
|
-
|
|
87667
|
-
|
|
87668
|
-
|
|
87669
|
-
|
|
87670
|
-
|
|
87671
|
-
|
|
87672
|
-
|
|
87673
|
-
|
|
87674
|
-
|
|
87675
|
-
|
|
87676
|
-
|
|
87677
|
-
|
|
87678
|
-
|
|
87679
|
-
|
|
87680
|
-
|
|
87681
|
-
|
|
87682
|
-
|
|
87683
|
-
|
|
87684
|
-
|
|
87657
|
+
template: `
|
|
87658
|
+
<div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
|
|
87659
|
+
<div [ngClass]="headerClasses()" class="px-6 py-5 border-b">
|
|
87660
|
+
<div class="flex items-center gap-3">
|
|
87661
|
+
<div [ngClass]="iconContainerClasses()" class="p-2.5 rounded-lg">
|
|
87662
|
+
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
87663
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"></path>
|
|
87664
|
+
</svg>
|
|
87665
|
+
</div>
|
|
87666
|
+
<div>
|
|
87667
|
+
<h2 [ngClass]="titleClasses()" class="text-xl font-bold">
|
|
87668
|
+
Choose Your Plan
|
|
87669
|
+
</h2>
|
|
87670
|
+
<p [ngClass]="subtitleClasses()" class="text-sm mt-0.5 flex items-center gap-2">
|
|
87671
|
+
Selected currency: <span class="font-semibold">{{ selectedCurrency() }}</span>
|
|
87672
|
+
<button
|
|
87673
|
+
(click)="editCurrency.emit()"
|
|
87674
|
+
[ngClass]="editButtonClasses()"
|
|
87675
|
+
class="inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-md transition-colors"
|
|
87676
|
+
>
|
|
87677
|
+
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
87678
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path>
|
|
87679
|
+
</svg>
|
|
87680
|
+
Edit
|
|
87681
|
+
</button>
|
|
87682
|
+
</p>
|
|
87683
|
+
</div>
|
|
87684
|
+
</div>
|
|
87685
|
+
</div>
|
|
87686
|
+
|
|
87687
|
+
<div [ngClass]="contentClasses()" class="p-8">
|
|
87688
|
+
<symphiq-billing-period-toggle
|
|
87689
|
+
[viewMode]="viewMode()"
|
|
87690
|
+
[selectedPeriodUnit]="selectedPeriodUnit()"
|
|
87691
|
+
[isLoading]="isLoading()"
|
|
87692
|
+
(periodUnitChanged)="handlePeriodChange($event)"
|
|
87693
|
+
/>
|
|
87694
|
+
|
|
87695
|
+
@if (isLoading()) {
|
|
87696
|
+
<div class="flex flex-col items-center justify-center space-y-6 min-h-[500px] mb-32">
|
|
87697
|
+
<symphiq-indeterminate-spinner
|
|
87698
|
+
[viewMode]="viewMode()"
|
|
87699
|
+
[size]="'large'"
|
|
87700
|
+
/>
|
|
87701
|
+
<p [ngClass]="loadingTextClasses()" class="text-base font-medium">
|
|
87702
|
+
Loading your plan options...
|
|
87703
|
+
</p>
|
|
87704
|
+
</div>
|
|
87705
|
+
} @else if (planCardInfos() && planCardInfos()!.length > 0) {
|
|
87706
|
+
<div class="flex flex-col gap-8 mb-32 min-h-[500px]">
|
|
87707
|
+
@for (plan of planCardInfos(); track plan.planItemPrice.id) {
|
|
87708
|
+
<symphiq-plan-card
|
|
87709
|
+
[viewMode]="viewMode()"
|
|
87710
|
+
[planInfo]="plan"
|
|
87711
|
+
[isSelected]="isSelectedPlan(plan)"
|
|
87712
|
+
[selectedPeriodUnit]="selectedPeriodUnit()"
|
|
87713
|
+
[monthlyComparisonPrice]="getMonthlyComparisonPrice()"
|
|
87714
|
+
(planSelected)="handlePlanSelection($event)"
|
|
87715
|
+
/>
|
|
87716
|
+
}
|
|
87717
|
+
</div>
|
|
87718
|
+
} @else {
|
|
87719
|
+
<div [ngClass]="emptyStateClasses()" class="text-center py-16">
|
|
87720
|
+
<svg [ngClass]="emptyIconClasses()" class="w-16 h-16 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
87721
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
|
87722
|
+
</svg>
|
|
87723
|
+
<p [ngClass]="emptyTextClasses()" class="text-lg font-semibold">
|
|
87724
|
+
No plans available
|
|
87725
|
+
</p>
|
|
87726
|
+
<p [ngClass]="emptySubtextClasses()" class="text-sm mt-2">
|
|
87727
|
+
Please contact support if this issue persists
|
|
87728
|
+
</p>
|
|
87729
|
+
</div>
|
|
87730
|
+
}
|
|
87731
|
+
</div>
|
|
87732
|
+
</div>
|
|
87733
|
+
|
|
87734
|
+
@if (selectedPlan()) {
|
|
87735
|
+
<div [ngClass]="footerClasses()" class="fixed bottom-0 left-0 right-0 px-6 py-4 border-t shadow-lg z-50">
|
|
87736
|
+
<div class="max-w-4xl mx-auto flex items-center justify-between">
|
|
87737
|
+
<div [ngClass]="footerTextClasses()">
|
|
87738
|
+
<span class="font-medium">Selected:</span> {{ selectedPlan()?.planItemPrice?.externalName }}
|
|
87739
|
+
</div>
|
|
87740
|
+
<button
|
|
87741
|
+
(click)="handleCheckout()"
|
|
87742
|
+
class="px-6 py-3 bg-gradient-to-r from-emerald-500 to-cyan-500 hover:from-emerald-600 hover:to-cyan-600 text-white font-semibold rounded-lg shadow-md transition-all duration-200"
|
|
87743
|
+
>
|
|
87744
|
+
Checkout plan
|
|
87745
|
+
</button>
|
|
87746
|
+
</div>
|
|
87747
|
+
</div>
|
|
87748
|
+
}
|
|
87685
87749
|
`
|
|
87686
87750
|
}]
|
|
87687
|
-
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], selectedCurrency: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedCurrency", required: false }] }], planCardInfos: [{ type: i0.Input, args: [{ isSignal: true, alias: "planCardInfos", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], selectedPeriodUnit: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPeriodUnit", required: false }] }], periodUnitChanged: [{ type: i0.Output, args: ["periodUnitChanged"] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }], editCurrency: [{ type: i0.Output, args: ["editCurrency"] }] }); })();
|
|
87688
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PlanSelectionContainerComponent, { className: "PlanSelectionContainerComponent", filePath: "lib/components/profile-analysis-dashboard/cards/plan-selection-container.component.ts", lineNumber:
|
|
87751
|
+
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], selectedCurrency: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedCurrency", required: false }] }], planCardInfos: [{ type: i0.Input, args: [{ isSignal: true, alias: "planCardInfos", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], selectedPeriodUnit: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPeriodUnit", required: false }] }], periodUnitChanged: [{ type: i0.Output, args: ["periodUnitChanged"] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }], editCurrency: [{ type: i0.Output, args: ["editCurrency"] }], checkout: [{ type: i0.Output, args: ["checkout"] }] }); })();
|
|
87752
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PlanSelectionContainerComponent, { className: "PlanSelectionContainerComponent", filePath: "lib/components/profile-analysis-dashboard/cards/plan-selection-container.component.ts", lineNumber: 107 }); })();
|
|
87689
87753
|
|
|
87690
87754
|
class SubscriptionValuePropositionCardComponent {
|
|
87691
87755
|
constructor() {
|