@updevs/components 1.0.0-alpha.1 → 1.0.0-alpha.100
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/README.md +1 -24
- package/assets/styles/_bootstrap-components.scss +55 -0
- package/assets/styles/_bootstrap-config.scss +7 -0
- package/assets/styles/_bootstrap-override.scss +78 -0
- package/assets/styles/_config.scss +9 -0
- package/assets/styles/_core.scss +80 -0
- package/assets/styles/_debug.scss +49 -0
- package/assets/styles/_mixins.scss +2 -0
- package/assets/styles/_props.scss +91 -0
- package/assets/styles/_seven-columns.scss +73 -0
- package/assets/styles/_updevs.scss +25 -0
- package/assets/styles/_utilities-marketing.scss +209 -0
- package/assets/styles/_utilities.scss +133 -0
- package/assets/styles/_variables-dark.scss +19 -0
- package/assets/styles/_variables.scss +1003 -0
- package/assets/styles/fonts/_webfonts.scss +15 -0
- package/assets/styles/helpers/_index.scss +143 -0
- package/assets/styles/layout/_animations.scss +62 -0
- package/assets/styles/layout/_core.scss +62 -0
- package/assets/styles/layout/_dark.scss +77 -0
- package/assets/styles/layout/_footer.scss +12 -0
- package/assets/styles/layout/_navbar.scss +392 -0
- package/assets/styles/layout/_page.scss +170 -0
- package/assets/styles/layout/_root.scss +64 -0
- package/assets/styles/marketing/_browser.scss +67 -0
- package/assets/styles/marketing/_core.scss +8 -0
- package/assets/styles/marketing/_filters.scss +0 -0
- package/assets/styles/marketing/_hero.scss +70 -0
- package/assets/styles/marketing/_pricing.scss +111 -0
- package/assets/styles/marketing/_sections.scss +124 -0
- package/assets/styles/marketing/_shape.scss +31 -0
- package/assets/styles/mixins/_functions.scss +96 -0
- package/assets/styles/mixins/_mixins.scss +68 -0
- package/assets/styles/ui/_accordion.scss +178 -0
- package/assets/styles/ui/_alerts.scss +101 -0
- package/assets/styles/ui/_avatars.scss +145 -0
- package/assets/styles/ui/_badges.scss +113 -0
- package/assets/styles/ui/_breadcrumbs.scss +50 -0
- package/assets/styles/ui/_button-group.scss +16 -0
- package/assets/styles/ui/_buttons.scss +261 -0
- package/assets/styles/ui/_calendars.scss +104 -0
- package/assets/styles/ui/_cards.scss +595 -0
- package/assets/styles/ui/_carousel.scss +68 -0
- package/assets/styles/ui/_charts.scss +61 -0
- package/assets/styles/ui/_chat.scss +38 -0
- package/assets/styles/ui/_chips.scss +0 -0
- package/assets/styles/ui/_close.scss +60 -0
- package/assets/styles/ui/_datagrid.scss +17 -0
- package/assets/styles/ui/_dropdowns.scss +120 -0
- package/assets/styles/ui/_empty.scss +60 -0
- package/assets/styles/ui/_flags.scss +31 -0
- package/assets/styles/ui/_forms.scss +250 -0
- package/assets/styles/ui/_grid.scss +115 -0
- package/assets/styles/ui/_icons.scss +72 -0
- package/assets/styles/ui/_images.scss +19 -0
- package/assets/styles/ui/_legend.scss +12 -0
- package/assets/styles/ui/_lists.scss +123 -0
- package/assets/styles/ui/_loaders.scss +72 -0
- package/assets/styles/ui/_login.scss +3 -0
- package/assets/styles/ui/_markdown.scss +53 -0
- package/assets/styles/ui/_modals.scss +67 -0
- package/assets/styles/ui/_nav.scss +106 -0
- package/assets/styles/ui/_offcanvas.scss +17 -0
- package/assets/styles/ui/_pagination.scss +58 -0
- package/assets/styles/ui/_payments.scss +28 -0
- package/assets/styles/ui/_placeholder.scss +9 -0
- package/assets/styles/ui/_popovers.scss +2 -0
- package/assets/styles/ui/_progress.scss +107 -0
- package/assets/styles/ui/_ribbons.scss +157 -0
- package/assets/styles/ui/_segmented.scss +101 -0
- package/assets/styles/ui/_signature.scss +15 -0
- package/assets/styles/ui/_social.scss +52 -0
- package/assets/styles/ui/_stars.scss +13 -0
- package/assets/styles/ui/_status.scss +163 -0
- package/assets/styles/ui/_steps.scss +156 -0
- package/assets/styles/ui/_switch-icon.scss +211 -0
- package/assets/styles/ui/_tables.scss +176 -0
- package/assets/styles/ui/_tags.scss +57 -0
- package/assets/styles/ui/_timeline.scss +61 -0
- package/assets/styles/ui/_toasts.scss +18 -0
- package/assets/styles/ui/_toolbar.scss +10 -0
- package/assets/styles/ui/_tracking.scss +29 -0
- package/assets/styles/ui/_type.scss +330 -0
- package/assets/styles/ui/forms/_form-check.scss +91 -0
- package/assets/styles/ui/forms/_form-colorinput.scss +54 -0
- package/assets/styles/ui/forms/_form-custom.scss +28 -0
- package/assets/styles/ui/forms/_form-icon.scss +35 -0
- package/assets/styles/ui/forms/_form-imagecheck.scss +105 -0
- package/assets/styles/ui/forms/_form-selectgroup.scss +153 -0
- package/assets/styles/ui/forms/_validation.scss +13 -0
- package/assets/styles/ui/typo/_hr.scss +76 -0
- package/assets/styles/utils/_background.scss +15 -0
- package/assets/styles/utils/_colors.scss +101 -0
- package/assets/styles/utils/_opacity.scss +7 -0
- package/assets/styles/utils/_scroll.scss +45 -0
- package/assets/styles/utils/_shadow.scss +17 -0
- package/assets/styles/utils/_sizing.scss +10 -0
- package/assets/styles/utils/_text.scss +14 -0
- package/assets/styles/vendor/_apexcharts.scss +52 -0
- package/assets/styles/vendor/_coloris.scss +72 -0
- package/assets/styles/vendor/_dropzone.scss +27 -0
- package/assets/styles/vendor/_fslightbox.scss +13 -0
- package/assets/styles/vendor/_jsvectormap.scss +47 -0
- package/assets/styles/vendor/_litepicker.scss +69 -0
- package/assets/styles/vendor/_nouislider.scss +49 -0
- package/assets/styles/vendor/_plyr.scss +3 -0
- package/assets/styles/vendor/_stars-rating.scss +22 -0
- package/assets/styles/vendor/_tom-select.scss +81 -0
- package/assets/styles/vendor/_turbo.scss +3 -0
- package/assets/styles/vendor/_typed.scss +4 -0
- package/assets/styles/vendor/_wysiwyg.scss +46 -0
- package/fesm2022/updevs-components-badge.mjs +89 -0
- package/fesm2022/updevs-components-badge.mjs.map +1 -0
- package/fesm2022/updevs-components-button.mjs +193 -0
- package/fesm2022/updevs-components-button.mjs.map +1 -0
- package/fesm2022/updevs-components-calendar.mjs +582 -0
- package/fesm2022/updevs-components-calendar.mjs.map +1 -0
- package/fesm2022/updevs-components-card.mjs +242 -0
- package/fesm2022/updevs-components-card.mjs.map +1 -0
- package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
- package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
- package/fesm2022/updevs-components-dropdown.mjs +247 -0
- package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-abstractions.mjs +106 -0
- package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-checkbox.mjs +99 -0
- package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-date-picker.mjs +175 -0
- package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-file-upload.mjs +272 -0
- package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-input.mjs +281 -0
- package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-radio.mjs +98 -0
- package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-select.mjs +600 -0
- package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-textarea.mjs +79 -0
- package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
- package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
- package/fesm2022/updevs-components-form.mjs +562 -0
- package/fesm2022/updevs-components-form.mjs.map +1 -0
- package/fesm2022/updevs-components-layout.mjs +1054 -0
- package/fesm2022/updevs-components-layout.mjs.map +1 -0
- package/fesm2022/updevs-components-link.mjs +79 -0
- package/fesm2022/updevs-components-link.mjs.map +1 -0
- package/fesm2022/updevs-components-list.mjs +215 -0
- package/fesm2022/updevs-components-list.mjs.map +1 -0
- package/fesm2022/updevs-components-modal.mjs +505 -0
- package/fesm2022/updevs-components-modal.mjs.map +1 -0
- package/fesm2022/updevs-components-paginator.mjs +160 -0
- package/fesm2022/updevs-components-paginator.mjs.map +1 -0
- package/fesm2022/updevs-components-popover.mjs +215 -0
- package/fesm2022/updevs-components-popover.mjs.map +1 -0
- package/fesm2022/updevs-components-pricing.mjs +130 -0
- package/fesm2022/updevs-components-pricing.mjs.map +1 -0
- package/fesm2022/updevs-components-table.mjs +2060 -0
- package/fesm2022/updevs-components-table.mjs.map +1 -0
- package/fesm2022/updevs-components.mjs +33 -0
- package/fesm2022/updevs-components.mjs.map +1 -0
- package/package.json +127 -14
- package/types/updevs-components-badge.d.ts +44 -0
- package/types/updevs-components-button.d.ts +75 -0
- package/types/updevs-components-calendar.d.ts +175 -0
- package/types/updevs-components-card.d.ts +92 -0
- package/types/updevs-components-drag-and-drop.d.ts +74 -0
- package/types/updevs-components-dropdown.d.ts +124 -0
- package/types/updevs-components-form-controls-abstractions.d.ts +49 -0
- package/types/updevs-components-form-controls-checkbox.d.ts +33 -0
- package/types/updevs-components-form-controls-date-picker.d.ts +80 -0
- package/types/updevs-components-form-controls-file-upload.d.ts +69 -0
- package/types/updevs-components-form-controls-input.d.ts +95 -0
- package/types/updevs-components-form-controls-radio.d.ts +32 -0
- package/types/updevs-components-form-controls-select.d.ts +200 -0
- package/types/updevs-components-form-controls-textarea.d.ts +31 -0
- package/types/updevs-components-form-controls-time-picker.d.ts +164 -0
- package/types/updevs-components-form.d.ts +356 -0
- package/types/updevs-components-layout.d.ts +490 -0
- package/types/updevs-components-link.d.ts +34 -0
- package/types/updevs-components-list.d.ts +107 -0
- package/types/updevs-components-modal.d.ts +155 -0
- package/types/updevs-components-paginator.d.ts +58 -0
- package/types/updevs-components-popover.d.ts +63 -0
- package/types/updevs-components-pricing.d.ts +91 -0
- package/types/updevs-components-table.d.ts +619 -0
- package/types/updevs-components.d.ts +44 -0
- package/CHANGELOG.md +0 -8
- package/ng-package.json +0 -7
- package/src/lib/components.component.spec.ts +0 -23
- package/src/lib/components.component.ts +0 -14
- package/src/lib/components.module.ts +0 -17
- package/src/lib/components.service.spec.ts +0 -16
- package/src/lib/components.service.ts +0 -9
- package/src/public-api.ts +0 -7
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, output, inject, ChangeDetectionStrategy, Component, computed, NgModule } from '@angular/core';
|
|
3
|
+
import { TextService } from '@updevs/sdk';
|
|
4
|
+
import * as i1 from '@angular/common';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import * as i2 from '@updevs/components/card';
|
|
7
|
+
import { UpdCardModule } from '@updevs/components/card';
|
|
8
|
+
import * as i3 from '@updevs/icons';
|
|
9
|
+
import { UpdIconsModule } from '@updevs/icons';
|
|
10
|
+
import * as i4 from '@updevs/components/button';
|
|
11
|
+
import { UpdButtonModule } from '@updevs/components/button';
|
|
12
|
+
import * as i5 from '@updevs/components/badge';
|
|
13
|
+
import { UpdBadgeModule } from '@updevs/components/badge';
|
|
14
|
+
import * as i6 from '@updevs/components/popover';
|
|
15
|
+
import { UpdPopoverModule } from '@updevs/components/popover';
|
|
16
|
+
|
|
17
|
+
class PricingCardsComponent {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
20
|
+
this.items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
21
|
+
this.selected = output();
|
|
22
|
+
this.textService = inject(TextService);
|
|
23
|
+
}
|
|
24
|
+
selectOption(item) {
|
|
25
|
+
this.selected.emit(item);
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: PricingCardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: PricingCardsComponent, isStandalone: false, selector: "upd-pricing-cards", inputs: { isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: "<div class=\"row row-cards\">\n @for (item of items(); track item.id) {\n <div class=\"col-lg col-sm-6\">\n <upd-card [ribbonBackground]=\"!!item.ribbonIcon ? item.highlightColor : undefined\" [ribbonIcon]=\"item.ribbonIcon\"\n [ribbonStyle]=\"item.ribbonStyle || 'top'\" [statusBackground]=\"item.highlightColor\" [useLightHeader]=\"true\">\n <ng-template updCardHeader>\n <div class=\"text-uppercase text-secondary fw-bold\">{{ item.title }}</div>\n <div [class.me-6]=\"!!item.ribbonIcon\" class=\"ms-auto d-flex gap-1\">\n @for (tag of item.tags; track tag.text.text) {\n <upd-badge [bgColor]=\"tag.backgroundColor\" [text]=\"tag.text\"></upd-badge>\n }\n </div>\n </ng-template>\n\n <div class=\"d-flex flex-column h-100\">\n <div>\n <div class=\"display-5 fw-bold mb-3\" [class.text-center]=\"item.isPriceCentered\" [innerHTML]=\"item.price\"></div>\n\n @if ((item.groupedFeatures?.length || 0) > 0) {\n @for (group of item.groupedFeatures; track group.name) {\n <div class=\"bg-surface-tertiary\">\n <span class=\"subheader\">{{ group.name }}</span>\n </div>\n <ng-container [ngTemplateOutlet]=\"featuresTpl\"\n [ngTemplateOutletContext]=\"{features: group.features}\"></ng-container>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"featuresTpl\"\n [ngTemplateOutletContext]=\"{features: item.features}\"></ng-container>\n }\n </div>\n\n <div class=\"flex-grow-1\"></div>\n\n @if (!!item.description) {\n <div class=\"text-secondary mb-3\" [class.text-center]=\"item.isPriceCentered\"\n [innerHTML]=\"item.description\"></div>\n }\n\n <div class=\"text-center mt-4\">\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </div>\n </div>\n </upd-card>\n </div>\n }\n</div>\n\n<ng-template #featuresTpl let-features=\"features\">\n <ul class=\"list-unstyled lh-lg\">\n @for (feature of features; track feature.text) {\n <li [class.fw-bold]=\"feature.isHighlighted\">\n @if (feature.isIncluded) {\n <upd-icon tablerIcon=\"check\" tablerIconWeight=\"bold\" colorClass=\"text-success\"></upd-icon>\n } @else {\n <upd-icon tablerIcon=\"minus\" tablerIconWeight=\"bold\" colorClass=\"text-secondary\"></upd-icon>\n }\n\n <span class=\"ms-2\" [innerHTML]=\"feature.text\" [class.text-secondary]=\"!feature.isIncluded\"></span>\n\n @if (!!feature.extraInfo) {\n <span [updPopover]=\"feature.extraInfo\" [updPopoverActAsTooltip]=\"true\">\n <upd-icon tablerIcon=\"info-circle\" />\n </span>\n }\n </li>\n }\n </ul>\n</ng-template>\n", styles: [":host{display:flex}.row-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));width:100%}.col-lg{display:flex;flex-direction:column;height:100%;width:100%}upd-card{display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CardComponent, selector: "upd-card", inputs: ["wrapperClasses", "title", "subtitle", "hoverEffect", "state", "type", "imagePosition", "bgColor", "stampIcon", "stampBackground", "statusBackground", "statusPosition", "ribbonBackground", "ribbonStyle", "ribbonIcon", "ribbonText", "rotate", "removeBorder", "useLightHeader", "showHeader", "isFooterTransparent", "footerText", "showProgressBar", "progress", "actions"] }, { kind: "directive", type: i2.CardHeaderDirective, selector: "ng-template[updCardHeader]" }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i5.BadgeComponent, selector: "upd-badge", inputs: ["config", "bgColor", "textColor", "text", "isOutline", "isPill", "isNotification", "isBlinking", "customClasses"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: PricingCardsComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ standalone: false, selector: 'upd-pricing-cards', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row row-cards\">\n @for (item of items(); track item.id) {\n <div class=\"col-lg col-sm-6\">\n <upd-card [ribbonBackground]=\"!!item.ribbonIcon ? item.highlightColor : undefined\" [ribbonIcon]=\"item.ribbonIcon\"\n [ribbonStyle]=\"item.ribbonStyle || 'top'\" [statusBackground]=\"item.highlightColor\" [useLightHeader]=\"true\">\n <ng-template updCardHeader>\n <div class=\"text-uppercase text-secondary fw-bold\">{{ item.title }}</div>\n <div [class.me-6]=\"!!item.ribbonIcon\" class=\"ms-auto d-flex gap-1\">\n @for (tag of item.tags; track tag.text.text) {\n <upd-badge [bgColor]=\"tag.backgroundColor\" [text]=\"tag.text\"></upd-badge>\n }\n </div>\n </ng-template>\n\n <div class=\"d-flex flex-column h-100\">\n <div>\n <div class=\"display-5 fw-bold mb-3\" [class.text-center]=\"item.isPriceCentered\" [innerHTML]=\"item.price\"></div>\n\n @if ((item.groupedFeatures?.length || 0) > 0) {\n @for (group of item.groupedFeatures; track group.name) {\n <div class=\"bg-surface-tertiary\">\n <span class=\"subheader\">{{ group.name }}</span>\n </div>\n <ng-container [ngTemplateOutlet]=\"featuresTpl\"\n [ngTemplateOutletContext]=\"{features: group.features}\"></ng-container>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"featuresTpl\"\n [ngTemplateOutletContext]=\"{features: item.features}\"></ng-container>\n }\n </div>\n\n <div class=\"flex-grow-1\"></div>\n\n @if (!!item.description) {\n <div class=\"text-secondary mb-3\" [class.text-center]=\"item.isPriceCentered\"\n [innerHTML]=\"item.description\"></div>\n }\n\n <div class=\"text-center mt-4\">\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </div>\n </div>\n </upd-card>\n </div>\n }\n</div>\n\n<ng-template #featuresTpl let-features=\"features\">\n <ul class=\"list-unstyled lh-lg\">\n @for (feature of features; track feature.text) {\n <li [class.fw-bold]=\"feature.isHighlighted\">\n @if (feature.isIncluded) {\n <upd-icon tablerIcon=\"check\" tablerIconWeight=\"bold\" colorClass=\"text-success\"></upd-icon>\n } @else {\n <upd-icon tablerIcon=\"minus\" tablerIconWeight=\"bold\" colorClass=\"text-secondary\"></upd-icon>\n }\n\n <span class=\"ms-2\" [innerHTML]=\"feature.text\" [class.text-secondary]=\"!feature.isIncluded\"></span>\n\n @if (!!feature.extraInfo) {\n <span [updPopover]=\"feature.extraInfo\" [updPopoverActAsTooltip]=\"true\">\n <upd-icon tablerIcon=\"info-circle\" />\n </span>\n }\n </li>\n }\n </ul>\n</ng-template>\n", styles: [":host{display:flex}.row-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));width:100%}.col-lg{display:flex;flex-direction:column;height:100%;width:100%}upd-card{display:flex;flex-direction:column;height:100%}\n"] }]
|
|
33
|
+
}], propDecorators: { isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
|
|
34
|
+
|
|
35
|
+
class PricingTableComponent {
|
|
36
|
+
constructor() {
|
|
37
|
+
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
38
|
+
this.shouldRemoveCardStyle = input(false, ...(ngDevMode ? [{ debugName: "shouldRemoveCardStyle" }] : []));
|
|
39
|
+
this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
|
|
40
|
+
this.description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : []));
|
|
41
|
+
this.items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
42
|
+
this.selected = output();
|
|
43
|
+
this.tableBodyRows = computed(() => {
|
|
44
|
+
const plans = this.items();
|
|
45
|
+
if (!plans || plans.length === 0) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const displayRows = [];
|
|
49
|
+
const featureTemplate = plans[0].groupedFeatures || [];
|
|
50
|
+
for (const group of featureTemplate) {
|
|
51
|
+
displayRows.push({ isHeader: true, name: group.name });
|
|
52
|
+
for (const feature of group.features) {
|
|
53
|
+
displayRows.push({
|
|
54
|
+
isHeader: false,
|
|
55
|
+
text: feature.text,
|
|
56
|
+
extraInfo: feature.extraInfo,
|
|
57
|
+
cells: plans.map(plan => {
|
|
58
|
+
const planFeature = this.findFeature(plan, group.name, feature.text);
|
|
59
|
+
return {
|
|
60
|
+
isIncluded: !!planFeature?.isIncluded,
|
|
61
|
+
itemDescription: planFeature?.itemDescription
|
|
62
|
+
};
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return displayRows;
|
|
68
|
+
}, ...(ngDevMode ? [{ debugName: "tableBodyRows" }] : []));
|
|
69
|
+
this.textService = inject(TextService);
|
|
70
|
+
}
|
|
71
|
+
selectOption(item) {
|
|
72
|
+
this.selected.emit(item);
|
|
73
|
+
}
|
|
74
|
+
findFeature(item, groupName, featureText) {
|
|
75
|
+
const group = item.groupedFeatures?.find(g => g.name === groupName);
|
|
76
|
+
return group?.features.find(f => f.text === featureText);
|
|
77
|
+
}
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: PricingTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: PricingTableComponent, isStandalone: false, selector: "upd-pricing-table", inputs: { isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, shouldRemoveCardStyle: { classPropertyName: "shouldRemoveCardStyle", publicName: "shouldRemoveCardStyle", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: "<div [class.card]=\"!shouldRemoveCardStyle()\">\n <div class=\"table-responsive\">\n <table class=\"table table-vcenter table-bordered table-nowrap card-table\">\n <thead>\n <tr>\n <td class=\"w-50\">\n @if (!!title() || !!description()) {\n @if (!!title()) {\n <h2 [innerHTML]=\"title()\"></h2>\n }\n\n @if (!!description()) {\n <div class=\"text-secondary text-wrap\" [innerHTML]=\"description()\"></div>\n }\n }\n </td>\n @for (item of items(); track item.id) {\n <td class=\"text-center\">\n <div class=\"text-uppercase text-secondary font-weight-medium\" [innerHTML]=\"item.title\"></div>\n <div class=\"display-6 fw-bold my-3\" [innerHTML]=\"item.price\"></div>\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </td>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of tableBodyRows(); track row.isHeader ? row.name : row.text) {\n @if (row.isHeader) {\n <tr class=\"bg-surface-tertiary\">\n <th [attr.colspan]=\"items().length + 1\" class=\"subheader\" [innerHTML]=\"row.name\"></th>\n </tr>\n } @else {\n <tr>\n <td>\n <span [innerHTML]=\"row.text\"></span>\n @if (!!row.extraInfo) {\n <span [updPopover]=\"row.extraInfo\" [updPopoverActAsTooltip]=\"true\">\n <upd-icon tablerIcon=\"info-circle\" />\n </span>\n }\n </td>\n @for (cell of row.cells; track $index) {\n <td class=\"text-center\">\n @if (!cell.itemDescription) {\n <upd-icon [tablerIcon]=\"cell.isIncluded ? 'check' : 'minus'\" tablerIconWeight=\"bold\"\n [colorClass]=\"cell.isIncluded ? 'text-success' : 'text-secondary'\">\n </upd-icon>\n } @else {\n <span [innerHTML]=\"cell.itemDescription\" [class.text-secondary]=\"!cell.isIncluded\"></span>\n }\n </td>\n }\n </tr>\n }\n }\n </tbody>\n <tfoot>\n <tr>\n <td></td>\n @for (item of items(); track item.id) {\n <td>\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </td>\n }\n </tr>\n </tfoot>\n </table>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
|
+
}
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: PricingTableComponent, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{ standalone: false, selector: 'upd-pricing-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class.card]=\"!shouldRemoveCardStyle()\">\n <div class=\"table-responsive\">\n <table class=\"table table-vcenter table-bordered table-nowrap card-table\">\n <thead>\n <tr>\n <td class=\"w-50\">\n @if (!!title() || !!description()) {\n @if (!!title()) {\n <h2 [innerHTML]=\"title()\"></h2>\n }\n\n @if (!!description()) {\n <div class=\"text-secondary text-wrap\" [innerHTML]=\"description()\"></div>\n }\n }\n </td>\n @for (item of items(); track item.id) {\n <td class=\"text-center\">\n <div class=\"text-uppercase text-secondary font-weight-medium\" [innerHTML]=\"item.title\"></div>\n <div class=\"display-6 fw-bold my-3\" [innerHTML]=\"item.price\"></div>\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </td>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of tableBodyRows(); track row.isHeader ? row.name : row.text) {\n @if (row.isHeader) {\n <tr class=\"bg-surface-tertiary\">\n <th [attr.colspan]=\"items().length + 1\" class=\"subheader\" [innerHTML]=\"row.name\"></th>\n </tr>\n } @else {\n <tr>\n <td>\n <span [innerHTML]=\"row.text\"></span>\n @if (!!row.extraInfo) {\n <span [updPopover]=\"row.extraInfo\" [updPopoverActAsTooltip]=\"true\">\n <upd-icon tablerIcon=\"info-circle\" />\n </span>\n }\n </td>\n @for (cell of row.cells; track $index) {\n <td class=\"text-center\">\n @if (!cell.itemDescription) {\n <upd-icon [tablerIcon]=\"cell.isIncluded ? 'check' : 'minus'\" tablerIconWeight=\"bold\"\n [colorClass]=\"cell.isIncluded ? 'text-success' : 'text-secondary'\">\n </upd-icon>\n } @else {\n <span [innerHTML]=\"cell.itemDescription\" [class.text-secondary]=\"!cell.isIncluded\"></span>\n }\n </td>\n }\n </tr>\n }\n }\n </tbody>\n <tfoot>\n <tr>\n <td></td>\n @for (item of items(); track item.id) {\n <td>\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </td>\n }\n </tr>\n </tfoot>\n </table>\n </div>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
84
|
+
}], propDecorators: { isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], shouldRemoveCardStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "shouldRemoveCardStyle", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
|
|
85
|
+
|
|
86
|
+
class UpdPricingModule {
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: UpdPricingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
88
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.4", ngImport: i0, type: UpdPricingModule, declarations: [PricingCardsComponent,
|
|
89
|
+
PricingTableComponent], imports: [CommonModule,
|
|
90
|
+
UpdCardModule,
|
|
91
|
+
UpdIconsModule,
|
|
92
|
+
UpdButtonModule,
|
|
93
|
+
UpdBadgeModule,
|
|
94
|
+
UpdPopoverModule], exports: [PricingCardsComponent,
|
|
95
|
+
PricingTableComponent] }); }
|
|
96
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: UpdPricingModule, imports: [CommonModule,
|
|
97
|
+
UpdCardModule,
|
|
98
|
+
UpdIconsModule,
|
|
99
|
+
UpdButtonModule,
|
|
100
|
+
UpdBadgeModule,
|
|
101
|
+
UpdPopoverModule] }); }
|
|
102
|
+
}
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: UpdPricingModule, decorators: [{
|
|
104
|
+
type: NgModule,
|
|
105
|
+
args: [{
|
|
106
|
+
imports: [
|
|
107
|
+
CommonModule,
|
|
108
|
+
UpdCardModule,
|
|
109
|
+
UpdIconsModule,
|
|
110
|
+
UpdButtonModule,
|
|
111
|
+
UpdBadgeModule,
|
|
112
|
+
UpdPopoverModule
|
|
113
|
+
],
|
|
114
|
+
declarations: [
|
|
115
|
+
PricingCardsComponent,
|
|
116
|
+
PricingTableComponent
|
|
117
|
+
],
|
|
118
|
+
exports: [
|
|
119
|
+
PricingCardsComponent,
|
|
120
|
+
PricingTableComponent
|
|
121
|
+
]
|
|
122
|
+
}]
|
|
123
|
+
}] });
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Generated bundle index. Do not edit.
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
export { PricingCardsComponent, PricingTableComponent, UpdPricingModule };
|
|
130
|
+
//# sourceMappingURL=updevs-components-pricing.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updevs-components-pricing.mjs","sources":["../../../../libs/components/pricing/src/pricing-cards/pricing-cards.component.ts","../../../../libs/components/pricing/src/pricing-cards/pricing-cards.component.html","../../../../libs/components/pricing/src/pricing-table/pricing-table.component.ts","../../../../libs/components/pricing/src/pricing-table/pricing-table.component.html","../../../../libs/components/pricing/src/upd-pricing.module.ts","../../../../libs/components/pricing/src/updevs-components-pricing.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core';\nimport { TextService } from '@updevs/sdk';\n\nimport { PriceItemModel } from '../models/price-item.model';\n\n@Component({\n standalone: false,\n selector: 'upd-pricing-cards',\n templateUrl: './pricing-cards.component.html',\n styleUrl: './pricing-cards.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PricingCardsComponent {\n readonly isLoading = input<boolean>(false);\n readonly items = input.required<PriceItemModel[]>();\n readonly selected = output<PriceItemModel>();\n\n readonly textService = inject(TextService);\n\n selectOption(item: PriceItemModel): void {\n this.selected.emit(item);\n }\n}\n","<div class=\"row row-cards\">\n @for (item of items(); track item.id) {\n <div class=\"col-lg col-sm-6\">\n <upd-card [ribbonBackground]=\"!!item.ribbonIcon ? item.highlightColor : undefined\" [ribbonIcon]=\"item.ribbonIcon\"\n [ribbonStyle]=\"item.ribbonStyle || 'top'\" [statusBackground]=\"item.highlightColor\" [useLightHeader]=\"true\">\n <ng-template updCardHeader>\n <div class=\"text-uppercase text-secondary fw-bold\">{{ item.title }}</div>\n <div [class.me-6]=\"!!item.ribbonIcon\" class=\"ms-auto d-flex gap-1\">\n @for (tag of item.tags; track tag.text.text) {\n <upd-badge [bgColor]=\"tag.backgroundColor\" [text]=\"tag.text\"></upd-badge>\n }\n </div>\n </ng-template>\n\n <div class=\"d-flex flex-column h-100\">\n <div>\n <div class=\"display-5 fw-bold mb-3\" [class.text-center]=\"item.isPriceCentered\" [innerHTML]=\"item.price\"></div>\n\n @if ((item.groupedFeatures?.length || 0) > 0) {\n @for (group of item.groupedFeatures; track group.name) {\n <div class=\"bg-surface-tertiary\">\n <span class=\"subheader\">{{ group.name }}</span>\n </div>\n <ng-container [ngTemplateOutlet]=\"featuresTpl\"\n [ngTemplateOutletContext]=\"{features: group.features}\"></ng-container>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"featuresTpl\"\n [ngTemplateOutletContext]=\"{features: item.features}\"></ng-container>\n }\n </div>\n\n <div class=\"flex-grow-1\"></div>\n\n @if (!!item.description) {\n <div class=\"text-secondary mb-3\" [class.text-center]=\"item.isPriceCentered\"\n [innerHTML]=\"item.description\"></div>\n }\n\n <div class=\"text-center mt-4\">\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </div>\n </div>\n </upd-card>\n </div>\n }\n</div>\n\n<ng-template #featuresTpl let-features=\"features\">\n <ul class=\"list-unstyled lh-lg\">\n @for (feature of features; track feature.text) {\n <li [class.fw-bold]=\"feature.isHighlighted\">\n @if (feature.isIncluded) {\n <upd-icon tablerIcon=\"check\" tablerIconWeight=\"bold\" colorClass=\"text-success\"></upd-icon>\n } @else {\n <upd-icon tablerIcon=\"minus\" tablerIconWeight=\"bold\" colorClass=\"text-secondary\"></upd-icon>\n }\n\n <span class=\"ms-2\" [innerHTML]=\"feature.text\" [class.text-secondary]=\"!feature.isIncluded\"></span>\n\n @if (!!feature.extraInfo) {\n <span [updPopover]=\"feature.extraInfo\" [updPopoverActAsTooltip]=\"true\">\n <upd-icon tablerIcon=\"info-circle\" />\n </span>\n }\n </li>\n }\n </ul>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { TextService } from '@updevs/sdk';\n\nimport { PriceItemModel } from '../models/price-item.model';\n\ntype DisplayRow =\n | { isHeader: true; name: string }\n | { isHeader: false; text: string; extraInfo?: string; cells: { isIncluded: boolean; itemDescription?: string }[] };\n\n@Component({\n standalone: false,\n selector: 'upd-pricing-table',\n templateUrl: './pricing-table.component.html',\n styleUrl: './pricing-table.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PricingTableComponent {\n readonly isLoading = input<boolean>(false);\n readonly shouldRemoveCardStyle = input<boolean>(false);\n readonly title = input<string>();\n readonly description = input<string>();\n readonly items = input.required<PriceItemModel[]>();\n readonly selected = output<PriceItemModel>();\n\n readonly tableBodyRows = computed<DisplayRow[]>(() => {\n const plans = this.items();\n\n if (!plans || plans.length === 0) {\n return [];\n }\n\n const displayRows: DisplayRow[] = [];\n const featureTemplate = plans[0].groupedFeatures || [];\n\n for (const group of featureTemplate) {\n displayRows.push({ isHeader: true, name: group.name });\n\n for (const feature of group.features) {\n displayRows.push({\n isHeader: false,\n text: feature.text,\n extraInfo: feature.extraInfo,\n cells: plans.map(plan => {\n const planFeature = this.findFeature(plan, group.name, feature.text);\n return {\n isIncluded: !!planFeature?.isIncluded,\n itemDescription: planFeature?.itemDescription\n };\n })\n });\n }\n }\n\n return displayRows;\n });\n readonly textService = inject(TextService);\n\n selectOption(item: PriceItemModel): void {\n this.selected.emit(item);\n }\n\n private findFeature(item: PriceItemModel, groupName: string, featureText: string) {\n const group = item.groupedFeatures?.find(g => g.name === groupName);\n return group?.features.find(f => f.text === featureText);\n }\n}\n","<div [class.card]=\"!shouldRemoveCardStyle()\">\n <div class=\"table-responsive\">\n <table class=\"table table-vcenter table-bordered table-nowrap card-table\">\n <thead>\n <tr>\n <td class=\"w-50\">\n @if (!!title() || !!description()) {\n @if (!!title()) {\n <h2 [innerHTML]=\"title()\"></h2>\n }\n\n @if (!!description()) {\n <div class=\"text-secondary text-wrap\" [innerHTML]=\"description()\"></div>\n }\n }\n </td>\n @for (item of items(); track item.id) {\n <td class=\"text-center\">\n <div class=\"text-uppercase text-secondary font-weight-medium\" [innerHTML]=\"item.title\"></div>\n <div class=\"display-6 fw-bold my-3\" [innerHTML]=\"item.price\"></div>\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </td>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of tableBodyRows(); track row.isHeader ? row.name : row.text) {\n @if (row.isHeader) {\n <tr class=\"bg-surface-tertiary\">\n <th [attr.colspan]=\"items().length + 1\" class=\"subheader\" [innerHTML]=\"row.name\"></th>\n </tr>\n } @else {\n <tr>\n <td>\n <span [innerHTML]=\"row.text\"></span>\n @if (!!row.extraInfo) {\n <span [updPopover]=\"row.extraInfo\" [updPopoverActAsTooltip]=\"true\">\n <upd-icon tablerIcon=\"info-circle\" />\n </span>\n }\n </td>\n @for (cell of row.cells; track $index) {\n <td class=\"text-center\">\n @if (!cell.itemDescription) {\n <upd-icon [tablerIcon]=\"cell.isIncluded ? 'check' : 'minus'\" tablerIconWeight=\"bold\"\n [colorClass]=\"cell.isIncluded ? 'text-success' : 'text-secondary'\">\n </upd-icon>\n } @else {\n <span [innerHTML]=\"cell.itemDescription\" [class.text-secondary]=\"!cell.isIncluded\"></span>\n }\n </td>\n }\n </tr>\n }\n }\n </tbody>\n <tfoot>\n <tr>\n <td></td>\n @for (item of items(); track item.id) {\n <td>\n <upd-button (clicked)=\"selectOption(item)\" customClasses=\"w-100\" [isLoading]=\"isLoading()\"\n [colorStyle]=\"!!item.highlightColor ? item.highlightColor : undefined\" [isDisabled]=\"!!item.currentText\">\n {{ textService.getText(!!item.currentText ? item.currentText : item.chooseThisText) }}\n </upd-button>\n </td>\n }\n </tr>\n </tfoot>\n </table>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdCardModule } from '@updevs/components/card';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { UpdBadgeModule } from '@updevs/components/badge';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { PricingCardsComponent } from './pricing-cards/pricing-cards.component';\nimport { PricingTableComponent } from './pricing-table/pricing-table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdCardModule,\n UpdIconsModule,\n UpdButtonModule,\n UpdBadgeModule,\n UpdPopoverModule\n ],\n declarations: [\n PricingCardsComponent,\n PricingTableComponent\n ],\n exports: [\n PricingCardsComponent,\n PricingTableComponent\n ]\n})\nexport class UpdPricingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
|