@cute-widgets/base 20.0.3 → 20.0.5
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/CHANGELOG.md +31 -4
- package/abstract/index.d.ts +13 -4
- package/button/index.d.ts +47 -24
- package/button-toggle/index.d.ts +8 -4
- package/card/index.d.ts +9 -6
- package/collapse/index.d.ts +49 -48
- package/core/directives/index.d.ts +1 -31
- package/core/index.d.ts +41 -28
- package/core/interfaces/index.d.ts +1 -1
- package/core/layout/index.d.ts +40 -27
- package/core/nav/index.d.ts +1 -2
- package/dialog/index.d.ts +81 -57
- package/expansion/index.d.ts +5 -18
- package/fesm2022/cute-widgets-base-abstract.mjs +13 -8
- package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-button-toggle.mjs +36 -29
- package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-button.mjs +169 -104
- package/fesm2022/cute-widgets-base-button.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-card.mjs +46 -29
- package/fesm2022/cute-widgets-base-card.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-chips.mjs +6 -18
- package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-collapse.mjs +114 -126
- package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-directives.mjs +4 -72
- package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-interfaces.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-layout.mjs +76 -40
- package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-nav.mjs +1 -2
- package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-theming.mjs +1 -1
- package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core.mjs +77 -41
- package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-dialog.mjs +152 -117
- package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-expansion.mjs +19 -13
- package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-list.mjs +2 -2
- package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-menu.mjs +5 -27
- package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-navbar.mjs +88 -42
- package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-paginator.mjs +13 -11
- package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-radio.mjs +1 -2
- package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-select.mjs +2 -2
- package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-sidenav.mjs +31 -30
- package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-snack-bar.mjs +2 -2
- package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-sort.mjs +60 -257
- package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-table.mjs +6 -3
- package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-tabs.mjs +86 -61
- package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
- package/fesm2022/cute-widgets-base.mjs +3 -1
- package/fesm2022/cute-widgets-base.mjs.map +1 -1
- package/navbar/index.d.ts +30 -9
- package/package.json +6 -5
- package/paginator/index.d.ts +6 -17
- package/radio/index.d.ts +0 -1
- package/sidenav/index.d.ts +1 -2
- package/sort/index.d.ts +22 -135
- package/table/index.d.ts +8 -8
- package/tabs/index.d.ts +35 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cute-widgets-base-button.mjs","sources":["../../../../projects/cute-widgets/base/button/src/button-base.directive.ts","../../../../projects/cute-widgets/base/button/src/button.component.ts","../../../../projects/cute-widgets/base/button/src/button.component.html","../../../../projects/cute-widgets/base/button/src/button-group.directive.ts","../../../../projects/cute-widgets/base/button/src/button-toolbar.directive.ts","../../../../projects/cute-widgets/base/button/src/button.module.ts","../../../../projects/cute-widgets/base/button/cute-widgets-base-button.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n Directive,\r\n inject,\r\n Input,\r\n NgZone,\r\n HostBinding,\r\n InjectionToken,\r\n ContentChildren,\r\n QueryList,\r\n booleanAttribute, DoCheck,\r\n} from \"@angular/core\";\r\nimport {CuteFocusableControl} from \"@cute-widgets/base/abstract\";\r\nimport {CuteIcon} from \"@cute-widgets/base/icon\";\r\nimport {RelativeSize7, ThemeColor} from \"@cute-widgets/base/core\";\r\nimport {Ripple, RippleManager, RippleOptions} from \"@cute-widgets/base/core/ripple\";\r\nimport {fromEvent, Subject} from \"rxjs\";\r\nimport {takeUntil} from \"rxjs/operators\";\r\nimport {toColorCssClass, toThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/** Button's appearance style */\r\nexport type CuteButtonStyle =\r\n \"base-button\"\r\n |\"flat-button\"\r\n |\"outline-button\"\r\n |\"raised-button\"\r\n |\"pill-button\"\r\n |\"circle-button\"\r\n |\"close-button\"\r\n |\"icon-button\"\r\n |\"fab-button\"\r\n /** Appearance styles for Angular Material compatibility */\r\n |\"text\"\r\n |\"filled\"\r\n |\"elevated\"\r\n |\"outlined\"\r\n |\"tonal\";\r\n\r\n\r\n/** Object that can be used to configure the default options for the button component. */\r\nexport interface CuteButtonConfig {\r\n /** Whether disabled buttons should be interactive. */\r\n disabledInteractive?: boolean;\r\n\r\n /** Default palette color to apply to buttons. */\r\n color?: ThemeColor;\r\n}\r\n\r\n/** Injection token that can be used to provide the default options the button component. */\r\nexport const CUTE_BUTTON_CONFIG = new InjectionToken<CuteButtonConfig>('CUTE_BUTTON_CONFIG');\r\n\r\n/**\r\n * Injection token that can be used to reference instances of `CuteButtonBase`.\r\n * It serves as an alternative token to the actual `CuteButtonBase` class, which\r\n * could cause unnecessary retention of the class and its component metadata.\r\n */\r\nexport const CUTE_BUTTON_BASE = new InjectionToken<CuteButtonBase>(\r\n 'CuteButtonBase'\r\n);\r\n\r\n\r\n@Directive({\r\n host: {\r\n class: 'btn',\r\n '[style.--bs-focus-ring-color]': 'color? \"rgba(var(\"+bsColorVarName+\"), var(--bs-focus-ring-opacity))\" : \"var(--bs-border-color-translucent)\"',\r\n '(keydown)': '_haltDisabledEvents($event)',\r\n }\r\n})\r\nexport abstract class CuteButtonBase extends CuteFocusableControl implements DoCheck {\r\n\r\n private _cleanupClick: (() => void) | undefined;\r\n private _destroyed$ = new Subject<void>()\r\n\r\n protected readonly _ripple: Ripple;\r\n protected readonly _ngZone: NgZone = inject(NgZone);\r\n protected readonly _isAnchor: boolean = false;\r\n\r\n @ContentChildren(CuteIcon) private _icons: QueryList<CuteIcon> | undefined;\r\n\r\n /** Button's appearance style in the following format: `{style}-button` */\r\n @Input(\"cuteButton\") //, transform: (v: any): ButtonStyle=>{return !v ? \"base-button\" : v}})\r\n get inputButtonStyle(): CuteButtonStyle {return this._inputButtonStyle;}\r\n set inputButtonStyle(value: CuteButtonStyle | undefined | \"\") {\r\n this._inputButtonStyle = value || \"base-button\";\r\n\r\n // Transform Angular Material's style\r\n switch (this._inputButtonStyle) {\r\n case \"text\": this._inputButtonStyle = \"base-button\"; break;\r\n case \"elevated\": this._inputButtonStyle = \"raised-button\"; break;\r\n case \"outlined\": this._inputButtonStyle = \"outline-button\"; break;\r\n case \"filled\": this._inputButtonStyle = \"flat-button\"; break;\r\n case \"tonal\": this._inputButtonStyle = \"flat-button\"; break;\r\n }\r\n\r\n const dashPos = this._inputButtonStyle.lastIndexOf(\"-\");\r\n if (dashPos >= 0) {\r\n // Format: {style}-button\r\n this._buttonStyle = this._inputButtonStyle.substring(0, dashPos).trim().toLowerCase() || \"base\";\r\n } else {\r\n this._buttonStyle = this._inputButtonStyle;\r\n }\r\n }\r\n private _inputButtonStyle: CuteButtonStyle = \"base-button\";\r\n private _buttonStyle: string = \"base\";\r\n\r\n /** Relative size of the Button */\r\n @Input() magnitude: RelativeSize7 | undefined;\r\n\r\n /** Whether to disable text wrapping */\r\n @Input() nowrap: boolean = false;\r\n\r\n /** Whether to disable the ripple effect on button clicking */\r\n @Input()\r\n get disableRipple(): boolean {return this._ripple.disabled}\r\n set disableRipple(value: boolean) { this._ripple.disabled = value; }\r\n\r\n /** `aria-disabled` value of the button. */\r\n @Input({transform: booleanAttribute, alias: 'aria-disabled'})\r\n ariaDisabled: boolean | undefined;\r\n\r\n /** Whether to show the collapse/expand indicator based on the `aria-expanded` current value. */\r\n @Input({transform: booleanAttribute})\r\n withAriaExpandedIndicator: boolean = false;\r\n\r\n /**\r\n * Natively disabled buttons prevent focus and any pointer events from reaching the button.\r\n * In some scenarios, this might not be desirable, because it can prevent users from finding out\r\n * why the button is disabled (e.g., via tooltip).\r\n *\r\n * Enabling this input will change the button so that it is styled to be disabled and will be\r\n * marked as `aria-disabled`, but it will allow the button to receive events and focus.\r\n *\r\n * Note that by enabling this, you need to set the `tabindex` yourself if the button isn't\r\n * meant to be tabbable, and you have to prevent the button action (e.g., form submissions).\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabledInteractive(): boolean | undefined {return this._disabledInteractive;}\r\n set disabledInteractive(value: boolean | undefined) {this._disabledInteractive = value;}\r\n private _disabledInteractive: boolean | undefined;\r\n\r\n /** Label text that applied for visually hidden button */\r\n @Input()\r\n visuallyHiddenLabel: string | undefined;\r\n\r\n @HostBinding(\"class\")\r\n protected get classNames(): string {\r\n let classes = \"cute-\"+this._inputButtonStyle; // e.g. `cute-outline-button`\r\n if (this.color) {\r\n classes += [\"base\",\"close\",\"icon\"].indexOf(this.buttonStyle)==-1\r\n ? \" btn-\"+(this.buttonStyle==\"outline\" ? \"outline-\" : \"\") + toThemeColor(this.color)\r\n : this.buttonStyle==\"base\"\r\n ? (\" \" + (this.color==\"link\" ? \"btn-link\" : toColorCssClass(this.color)))\r\n : \"\";\r\n }\r\n return classes;\r\n }\r\n\r\n /** Focus shadow color for `close-button` */\r\n @HostBinding(\"style.--bs-btn-close-focus-shadow\")\r\n protected get _closeButtonShadowColor(): string {\r\n return (this.color && this.buttonStyle == \"close\") ? \"0 0 0 0.25rem rgba(var(--bs-\"+this.color+\"-rgb), 0.25)\" : \"\";\r\n }\r\n\r\n @HostBinding(\"class.cute-btn-xxl\")\r\n protected get buttonLargestBinding(): boolean {return this.magnitude == \"largest\"}\r\n @HostBinding(\"class.cute-btn-xl\")\r\n protected get buttonLargerBinding(): boolean {return this.magnitude == \"larger\"}\r\n @HostBinding(\"class.btn-lg\")\r\n protected get buttonLargeBinding(): boolean {return this.magnitude == \"large\"}\r\n @HostBinding(\"class.btn-sm\")\r\n protected get buttonSmallBinding(): boolean {return this.magnitude == \"small\"}\r\n @HostBinding(\"class.cute-btn-xs\")\r\n protected get buttonSmallerBinding(): boolean {return this.magnitude == \"smaller\"}\r\n @HostBinding(\"class.cute-btn-xxs\")\r\n protected get buttonSmallestBinding(): boolean {return this.magnitude == \"smallest\"}\r\n\r\n @HostBinding(\"style.--cute-icon-button-color-rgb\")\r\n protected get iconButtonColorBinding(): string {\r\n return this.buttonStyle==\"icon\" ? \"var(\"+(this.color ? this.bsColorVarName : \"--bs-body-color-rgb\")+\")\" : \"\";\r\n }\r\n @HostBinding(\"style.--cute-base-button-color-rgb\")\r\n protected get baseButtonColorBinding(): string {\r\n return this.buttonStyle==\"base\" ? \"var(\"+(this.color ? this.bsColorVarName : \"--bs-body-color-rgb\")+\")\" : \"\";\r\n }\r\n\r\n /** Returns button style name. */\r\n get buttonStyle(): string {\r\n return this._buttonStyle;\r\n }\r\n\r\n protected get bsColorVarName(): string {\r\n if (this.color) {\r\n if (this.color==\"link\") {\r\n return `--bs-${this.color}-color-rgb`;\r\n }\r\n return `--bs-${this.color}-rgb`;\r\n }\r\n return \"\";\r\n }\r\n\r\n protected constructor(...args: unknown[]);\r\n protected constructor() {\r\n super();\r\n const config = inject(CUTE_BUTTON_CONFIG, {optional: true});\r\n this.disabledInteractive = config?.disabledInteractive ?? false;\r\n this._ripple = RippleManager.getInstance(this._nativeElement);\r\n\r\n this._isAnchor = (this._nativeElement.tagName == \"A\");\r\n }\r\n\r\n protected override generateId(): string {\r\n return \"\"; // `cute-button-${++nextUniqueId}`;\r\n }\r\n\r\n protected _getTabIndex() {\r\n if (this._isAnchor) {\r\n return this.disabled && !this.disabledInteractive ? -1 : this.tabIndex;\r\n }\r\n return this.tabIndex;\r\n }\r\n\r\n private _setupAsAnchor() {\r\n this._cleanupClick = this._ngZone.runOutsideAngular(() =>\r\n this._renderer.listen(this._nativeElement, 'click', (event: Event) => {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }),\r\n );\r\n }\r\n\r\n protected override setDisabledState(newState: boolean): boolean {\r\n if (this._isAnchor) {\r\n if (newState) {\r\n this._savedTabIndex = this.tabIndex;\r\n this.tabIndex = -1;\r\n } else {\r\n this.tabIndex = this._savedTabIndex;\r\n }\r\n }\r\n return super.setDisabledState(newState);\r\n }\r\n private _savedTabIndex: number|undefined;\r\n\r\n protected _getAriaDisabled() {\r\n if (this.ariaDisabled != null) {\r\n return this.ariaDisabled;\r\n }\r\n if (this._isAnchor) {\r\n return this.disabled || null;\r\n }\r\n return this.disabled && this.disabledInteractive ? true : null;\r\n }\r\n\r\n protected _getDisabledAttribute() {\r\n //return this.disabledInteractive || !this.disabled ? null : true;\r\n return this.disabled ? true : null;\r\n }\r\n\r\n protected _haltDisabledEvents (event: Event): void {\r\n // A disabled button shouldn't apply any actions\r\n if (this.disabled && (this.disabledInteractive || this._isAnchor)) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n };\r\n\r\n /** Whether to apply a `focus-ring` css-class to the button when it focused via keyboard interaction */\r\n protected get displayFocusRing(): boolean {\r\n return this.buttonStyle == \"base\" && this.hasClass(\"cdk-keyboard-focused\");\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n\r\n [\"mousedown\", \"mouseup\", \"click\"].forEach((type) => {\r\n fromEvent<MouseEvent>(this._nativeElement, type, { capture: true })\r\n .pipe(takeUntil(this._destroyed$))\r\n .subscribe((ev)=> this._onMouseEvent(ev));\r\n });\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n if (this._icons && this.buttonStyle == \"icon\") {\r\n this._icons.forEach(icon => {icon.defaultColor = this.color;});\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n\r\n // Some internal tests depend on the timing of this,\r\n // otherwise we could bind it in the constructor.\r\n if (this._isAnchor) {\r\n this._setupAsAnchor();\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n // This line was added due to \"Expression Changed After Checked...\" error raised if we place it in the @HostBinding\r\n this.toggleClass(\"focus-ring\", this.displayFocusRing);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._cleanupClick?.();\r\n this._ripple.stop();\r\n this._destroyed$.next();\r\n this._destroyed$.complete();\r\n }\r\n\r\n /** mouse events handler */\r\n private _onMouseEvent(event: MouseEvent) {\r\n\r\n this._haltDisabledEvents(event);\r\n\r\n if (!event.defaultPrevented && event.type == \"mousedown\") {\r\n this._launchRipple(event);\r\n }\r\n }\r\n\r\n private _launchRipple(event: MouseEvent): void {\r\n if (this._ripple && !this._ripple.disabled) {\r\n const options: RippleOptions = {};\r\n if (this.buttonStyle == \"icon\") {\r\n options.centered = true;\r\n options.color = \"rgba(var(--cute-icon-button-color), 0.25)\";\r\n }\r\n this._ripple.launch(event, options);\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {CuteButtonBase, CUTE_BUTTON_BASE} from \"./button-base.directive\";\r\nimport {toThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n@Component({\r\n selector: `button[cuteButton],\r\n button[cute-button],\r\n a[cuteButton],\r\n a[cute-button],\r\n `,\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n exportAs: \"cuteButton\",\r\n imports: [CommonModule],\r\n host: {\r\n 'class': 'cute-button',\r\n '[class.cute-anchor]': '_isAnchor',\r\n '[class.btn-close]': 'buttonStyle == \"close\"',\r\n '[class.rounded-pill]': 'buttonStyle==\"pill\"',\r\n '[class.rounded-circle]': 'buttonStyle==\"circle\"',\r\n '[class.raised]': 'buttonStyle==\"raised\" && !disabled',\r\n '[class.icon-link]': 'toThemeColor(color)==\"link\"',\r\n '[class.cute-button-expandable]': 'withAriaExpandedIndicator',\r\n //'[class.focus-ring]': 'buttonStyle==\"base\" && hasClass(\"cdk-keyboard-focused\")', // See: CuteButtonBase.ngDoCheck()\r\n '[class.nowrap]': 'nowrap',\r\n '[class.disabled]': '(_isAnchor || buttonStyle==\"icon\" || disabledInteractive) && disabled',\r\n '[class.cute-button-disabled-interactive]': 'disabledInteractive',\r\n '[class.cute-unthemed]': '!color',\r\n '[attr.tabindex]': '_getTabIndex()', //'disabled ? -1 : tabIndex',\r\n '[attr.disabled]': '_getDisabledAttribute()',\r\n '[attr.aria-disabled]': '_getAriaDisabled()',\r\n '[attr.id]': 'id || null',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n },\r\n providers: [\r\n { provide: CUTE_BUTTON_BASE, useExisting: CuteButton }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteButton extends CuteButtonBase {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected readonly toThemeColor = toThemeColor;\r\n}\r\n","<!--\r\n For capturing HTML-elements such as <i class..> or <img src=\"\"...> and others\r\n we need apply [cuteButtonIcon] attribute to them.\r\n-->\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons:not([iconPositionEnd]),\r\n .bi:not([iconPositionEnd]),\r\n cute-icon:not([iconPositionEnd]),\r\n cute-avatar:not([iconPositionEnd]),\r\n [cuteButtonIcon]:not([iconPositionEnd])\">\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-button-label\">\r\n <ng-content>\r\n @if(visuallyHiddenLabel) {\r\n <span class=\"visually-hidden\"> {{visuallyHiddenLabel}} </span>\r\n }\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons[iconPositionEnd],\r\n .bi:[iconPositionEnd],\r\n cute-icon[iconPositionEnd],\r\n cute-avatar:[iconPositionEnd],\r\n [cuteButtonIcon][iconPositionEnd]\">\r\n </ng-content>\r\n</span>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n booleanAttribute,\r\n ContentChildren,\r\n Directive,\r\n HostBinding,\r\n Input,\r\n QueryList\r\n} from \"@angular/core\";\r\nimport {CuteFocusableControl} from \"@cute-widgets/base/abstract\";\r\nimport {RelativeSize5} from \"@cute-widgets/base/core/types\";\r\nimport {CUTE_BUTTON_BASE, CuteButtonBase, CuteButtonStyle} from \"./button-base.directive\";\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\n\r\n// Counter used to generate unique IDs.\r\nlet uniqueIdCounter = 0;\r\n\r\n/**\r\n * Group a series of buttons together on a single line or stack them in a vertical column.\r\n */\r\n@Directive({\r\n selector: \"cute-button-group\",\r\n exportAs: \"cuteButtonGroup\",\r\n host: {\r\n 'role': 'group',\r\n 'class': 'cute-button-group',\r\n '[class]': '\"btn-group\" +(vertical?\"-vertical\":\"\")',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n '[attr.aria-labelledby]': 'ariaLabelledby || null',\r\n '[attr.aria-describedby]': 'ariaDescribedby || null',\r\n '[id]': 'id || null'\r\n },\r\n standalone: true\r\n})\r\nexport class CuteButtonGroup extends CuteFocusableControl {\r\n\r\n /** Whether to place the nested buttons in the vertical direction. */\r\n @Input({transform: booleanAttribute}) vertical: boolean = false;\r\n\r\n /** The relative size of the buttons group. */\r\n @Input() magnitude: RelativeSize5 | undefined;\r\n\r\n /** Default style for the content buttons */\r\n @Input() buttonStyle: CuteButtonStyle | undefined;\r\n\r\n @HostBinding(\"class.cute-btn-group-xl\")\r\n protected get buttonLargerBinding(): boolean {return this.magnitude == \"larger\"}\r\n @HostBinding(\"class.btn-group-lg\")\r\n protected get buttonLargeBinding(): boolean {return this.magnitude == \"large\"}\r\n @HostBinding(\"class.cute-btn-group-xs\")\r\n protected get buttonSmallerBinding(): boolean {return this.magnitude == \"smaller\"}\r\n @HostBinding(\"class.btn-group-sm\")\r\n protected get buttonSmallBinding(): boolean {return this.magnitude == \"small\"}\r\n\r\n /** Child buttons. */\r\n @ContentChildren(CUTE_BUTTON_BASE, {descendants: true})\r\n _buttons: QueryList<CuteButtonBase> | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `button-group-${++uniqueIdCounter}`;\r\n }\r\n\r\n protected override setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean {\r\n let res = super.setDisabledState(newState, emitEvent);\r\n if (res && this._buttons) {\r\n this._buttons.forEach(btn => {\r\n btn.disabled = coerceBooleanProperty(newState);\r\n });\r\n }\r\n return res;\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n this._buttons?.forEach(b => {\r\n b.defaultColor = this.color ?? \"primary\";\r\n b.disabled = this.disabled;\r\n if (b.buttonStyle == \"base\") {\r\n b.inputButtonStyle = this.buttonStyle ?? \"flat-button\";\r\n }\r\n });\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n Directive,\r\n Input, numberAttribute,\r\n} from \"@angular/core\";\r\nimport {CuteFocusableControl} from \"@cute-widgets/base/abstract\";\r\nimport {RelativeSize5} from \"@cute-widgets/base/core/types\";\r\n\r\n// Counter used to generate unique IDs.\r\nlet uniqueIdCounter = 0;\r\n\r\n@Directive({\r\n selector: \"cute-button-toolbar\",\r\n exportAs: \"cuteButtonToolbar\",\r\n host: {\r\n 'role': 'toolbar',\r\n 'class': 'btn-toolbar',\r\n '[class]': '\"gap-\"+gap',\r\n '[attr.gap]': 'null',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n '[attr.aria-labelledby]': 'ariaLabelledby || null',\r\n '[attr.aria-describedby]': 'ariaDescribedby || null',\r\n '[id]': 'id || null'\r\n },\r\n standalone: true\r\n})\r\nexport class CuteButtonToolbar extends CuteFocusableControl {\r\n\r\n //@Input({transform: booleanAttribute}) vertical: boolean = false;\r\n\r\n private _gap:number = 0;\r\n\r\n /** The gutter between buttons */\r\n @Input({transform: numberAttribute})\r\n get gap(): number {return this._gap;}\r\n set gap(value: number) {\r\n const MAX_GAP= 5;\r\n value = Math.round(value);\r\n if (value >= 0 && value <= MAX_GAP) {\r\n this._gap = value;\r\n } else if (value > MAX_GAP) {\r\n this._gap = MAX_GAP;\r\n } else {\r\n this._gap = 0;\r\n }\r\n }\r\n\r\n @Input() magnitude: RelativeSize5 | undefined;\r\n\r\n /** Child buttons. */\r\n //@ContentChildren(CUTE_BUTTON_BASE, {descendants: true})\r\n //_buttons: QueryList<ButtonBase> | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `button-toolbar-${++uniqueIdCounter}`;\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteButton} from \"./button.component\";\r\nimport {CuteButtonGroup} from \"./button-group.directive\";\r\nimport {CuteButtonToolbar} from \"./button-toolbar.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteButton,\r\n CuteButtonGroup,\r\n CuteButtonToolbar,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteButtonModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uniqueIdCounter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cute-widgets-base-button.mjs","sources":["../../../../projects/cute-widgets/base/button/src/button-group.directive.ts","../../../../projects/cute-widgets/base/button/src/button-base.directive.ts","../../../../projects/cute-widgets/base/button/src/button.component.ts","../../../../projects/cute-widgets/base/button/src/button.component.html","../../../../projects/cute-widgets/base/button/src/button-toolbar.directive.ts","../../../../projects/cute-widgets/base/button/src/button.module.ts","../../../../projects/cute-widgets/base/button/cute-widgets-base-button.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n booleanAttribute,\r\n ContentChildren,\r\n Directive, EventEmitter,\r\n HostBinding, InjectionToken,\r\n Input, Output,\r\n QueryList\r\n} from \"@angular/core\";\r\nimport {CuteFocusableControl} from \"@cute-widgets/base/abstract\";\r\nimport {RelativeSize5} from \"@cute-widgets/base/core/types\";\r\nimport {CUTE_BUTTON_BASE, CuteButtonBase, CuteButtonStyle} from \"./button-base.directive\";\r\nimport {BooleanInput, coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\n\r\n// Counter used to generate unique IDs.\r\nlet uniqueIdCounter = 0;\r\n\r\n/**\r\n * Injection token that can be used to reference instances of `CuteButtonGroup`.\r\n * It serves as an alternative token to the actual `CuteButtonGroup` class which\r\n * could cause unnecessary retention of the class and its component metadata.\r\n */\r\nexport const CUTE_BUTTON_GROUP = new InjectionToken<CuteButtonGroup>(\r\n 'CuteButtonGroup',\r\n);\r\n\r\n\r\n/**\r\n * Group a series of buttons together on a single line or stack them in a vertical column.\r\n */\r\n@Directive({\r\n selector: \"cute-button-group\",\r\n exportAs: \"cuteButtonGroup\",\r\n host: {\r\n 'role': 'group',\r\n 'class': 'cute-button-group',\r\n '[class]': '\"btn-group\" +(vertical?\"-vertical\":\"\")',\r\n '[class.disabled]': 'disabled',\r\n '[attr.aria-disabled]': 'disabled',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n '[attr.aria-labelledby]': 'ariaLabelledby || null',\r\n '[attr.aria-describedby]': 'ariaDescribedby || null',\r\n '[attr.tabindex]': '-1',\r\n '[id]': 'id || null'\r\n },\r\n providers: [{provide: CUTE_BUTTON_GROUP, useExisting: CuteButtonGroup}],\r\n standalone: true\r\n})\r\nexport class CuteButtonGroup extends CuteFocusableControl {\r\n\r\n /** Whether to place the nested buttons in the vertical direction. */\r\n @Input({transform: booleanAttribute}) vertical: boolean = false;\r\n\r\n /** The relative size of the buttons group. */\r\n @Input() magnitude: RelativeSize5 | undefined;\r\n\r\n /** Default style for the content buttons */\r\n @Input() buttonStyle: CuteButtonStyle | undefined;\r\n\r\n @HostBinding(\"class.cute-btn-group-xl\")\r\n protected get buttonLargerBinding(): boolean {return this.magnitude == \"larger\"}\r\n @HostBinding(\"class.btn-group-lg\")\r\n protected get buttonLargeBinding(): boolean {return this.magnitude == \"large\"}\r\n @HostBinding(\"class.cute-btn-group-xs\")\r\n protected get buttonSmallerBinding(): boolean {return this.magnitude == \"smaller\"}\r\n @HostBinding(\"class.btn-group-sm\")\r\n protected get buttonSmallBinding(): boolean {return this.magnitude == \"small\"}\r\n\r\n /** Child buttons. */\r\n @ContentChildren(CUTE_BUTTON_BASE, {descendants: true})\r\n _buttons: QueryList<CuteButtonBase> | undefined;\r\n\r\n /** Raised when the disabled state of a component group changes. */\r\n @Output() disabledChange = new EventEmitter<boolean>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `button-group-${++uniqueIdCounter}`;\r\n }\r\n\r\n // Buttons that have `disabled` states before the group is disabled as a whole. Uses to restore `disabled` states\r\n // when the group's state will be enabled again.\r\n // CuteButtonToggleGroup, as an ancestor, uses this algo too.\r\n #disablesCache = new Set<CuteButtonBase>();\r\n\r\n protected override setDisabledState(newState: BooleanInput, emitEvent?: boolean): boolean {\r\n let res = super.setDisabledState(newState, emitEvent);\r\n if (res && this._buttons) {\r\n const isDisabled = coerceBooleanProperty(newState);\r\n if (isDisabled) {\r\n this._buttons.forEach(btn => {\r\n if (btn.disabled) {\r\n this.#disablesCache.add(btn);\r\n }\r\n btn.disabled = isDisabled;\r\n });\r\n } else {\r\n this._buttons.forEach(btn => {\r\n if (!this.#disablesCache.has(btn)) {\r\n btn.disabled = false;\r\n }\r\n });\r\n this.#disablesCache.clear();\r\n }\r\n\r\n this._markButtonsForCheck();\r\n\r\n this.disabledChange.emit(isDisabled);\r\n }\r\n return res;\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n this._buttons?.forEach(b => {\r\n b.defaultColor = this.color ?? \"primary\";\r\n\r\n if (this.disabled) {\r\n b.disabled = this.disabled;\r\n }\r\n\r\n if (b.buttonStyle == \"base\") {\r\n b.inputButtonStyle = this.buttonStyle ?? \"flat-button\";\r\n }\r\n });\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n\r\n this.#disablesCache.clear();\r\n }\r\n\r\n /** Marks all the child button toggles to be checked. */\r\n protected _markButtonsForCheck() {\r\n this._buttons?.forEach(btn => btn.markForCheck());\r\n }\r\n\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n Directive,\r\n inject,\r\n Input,\r\n NgZone,\r\n HostBinding,\r\n InjectionToken,\r\n ContentChildren,\r\n QueryList,\r\n booleanAttribute, DoCheck,\r\n} from \"@angular/core\";\r\nimport {CuteFocusableControl} from \"@cute-widgets/base/abstract\";\r\nimport {CuteIcon} from \"@cute-widgets/base/icon\";\r\nimport {RelativeSize7, ThemeColor} from \"@cute-widgets/base/core\";\r\nimport {Ripple, RippleManager, RippleOptions} from \"@cute-widgets/base/core/ripple\";\r\nimport {fromEvent, Subject} from \"rxjs\";\r\nimport {takeUntil} from \"rxjs/operators\";\r\nimport {toColorCssClass, toThemeColor} from \"@cute-widgets/base/core\";\r\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\r\nimport {CUTE_BUTTON_GROUP} from './button-group.directive';\r\n\r\n/** Button's appearance style */\r\nexport type CuteButtonStyle =\r\n \"base-button\"\r\n |\"flat-button\"\r\n |\"outline-button\"\r\n |\"raised-button\"\r\n |\"pill-button\"\r\n |\"circle-button\"\r\n |\"close-button\"\r\n |\"icon-button\"\r\n |\"fab-button\"\r\n /** Appearance styles for Angular Material compatibility */\r\n |\"text\"\r\n |\"filled\"\r\n |\"elevated\"\r\n |\"outlined\"\r\n |\"tonal\";\r\n\r\n\r\n/** Object that can be used to configure the default options for the button component. */\r\nexport interface CuteButtonConfig {\r\n /** Whether disabled buttons should be interactive. */\r\n disabledInteractive?: boolean;\r\n\r\n /** Default palette color to apply to buttons. */\r\n color?: ThemeColor;\r\n\r\n /** Whether to enable text wrapping. */\r\n wrapText?: boolean;\r\n}\r\n\r\n/** Injection token that can be used to provide the default options the button component. */\r\nexport const CUTE_BUTTON_CONFIG = new InjectionToken<CuteButtonConfig>('CUTE_BUTTON_CONFIG');\r\n\r\n/**\r\n * Injection token that can be used to reference instances of `CuteButtonBase`.\r\n * It serves as an alternative token to the actual `CuteButtonBase` class, which\r\n * could cause unnecessary retention of the class and its component metadata.\r\n */\r\nexport const CUTE_BUTTON_BASE = new InjectionToken<CuteButtonBase>(\r\n 'CuteButtonBase'\r\n);\r\n\r\n\r\n@Directive({\r\n host: {\r\n class: 'btn',\r\n '[attr.magnitude]': 'magnitude',\r\n '[style.--bs-focus-ring-color]': 'color? \"rgba(var(\"+bsColorVarName+\"), var(--bs-focus-ring-opacity))\" : \"var(--bs-border-color-translucent)\"',\r\n '(keydown)': '_haltDisabledEvents($event)',\r\n }\r\n})\r\nexport abstract class CuteButtonBase extends CuteFocusableControl implements DoCheck {\r\n\r\n private _cleanupClick: (() => void) | undefined;\r\n private _destroyed$ = new Subject<void>()\r\n\r\n protected readonly _ripple: Ripple;\r\n protected readonly _ngZone: NgZone = inject(NgZone);\r\n protected readonly _group = inject(CUTE_BUTTON_GROUP, {optional: true, host: true});\r\n protected readonly _isAnchor: boolean = false;\r\n\r\n @ContentChildren(CuteIcon) private _icons: QueryList<CuteIcon> | undefined;\r\n\r\n /** Button's appearance style in the following format: `{style}-button`. */\r\n @Input(\"cuteButton\") //, transform: (v: any): ButtonStyle=>{return !v ? \"base-button\" : v}})\r\n get inputButtonStyle(): CuteButtonStyle {return this._inputButtonStyle;}\r\n set inputButtonStyle(value: CuteButtonStyle | undefined | \"\") {\r\n this._inputButtonStyle = value || \"base-button\";\r\n\r\n // Transform Angular Material's style\r\n switch (this._inputButtonStyle) {\r\n case \"text\": this._inputButtonStyle = \"base-button\"; break;\r\n case \"elevated\": this._inputButtonStyle = \"raised-button\"; break;\r\n case \"outlined\": this._inputButtonStyle = \"outline-button\"; break;\r\n case \"filled\": this._inputButtonStyle = \"flat-button\"; break;\r\n case \"tonal\": this._inputButtonStyle = \"flat-button\"; break;\r\n }\r\n\r\n const dashPos = this._inputButtonStyle.lastIndexOf(\"-\");\r\n if (dashPos >= 0) {\r\n // Format: {style}-button\r\n this._buttonStyle = this._inputButtonStyle.substring(0, dashPos).trim().toLowerCase() || \"base\";\r\n } else {\r\n this._buttonStyle = this._inputButtonStyle;\r\n }\r\n }\r\n private _inputButtonStyle: CuteButtonStyle = \"base-button\";\r\n private _buttonStyle: string = \"base\";\r\n\r\n /** Relative size of the Button. */\r\n @Input() magnitude: RelativeSize7 | undefined;\r\n\r\n /** Whether to enable text wrapping. */\r\n @Input({transform: booleanAttribute})\r\n wrapText: boolean = false;\r\n\r\n /** Whether to disable the ripple effect on button clicking. */\r\n @Input()\r\n get disableRipple(): boolean {return this._ripple.disabled}\r\n set disableRipple(value: boolean) { this._ripple.disabled = value; }\r\n\r\n /** `aria-disabled` value of the button. */\r\n @Input({transform: booleanAttribute, alias: 'aria-disabled'})\r\n ariaDisabled: boolean | undefined;\r\n\r\n /** Whether to show the collapse/expand indicator based on the `aria-expanded` current value. */\r\n @Input({transform: booleanAttribute})\r\n withAriaExpandedIndicator: boolean = false;\r\n\r\n /**\r\n * Natively disabled buttons prevent focus and any pointer events from reaching the button.\r\n * In some scenarios, this might not be desirable, because it can prevent users from finding out\r\n * why the button is disabled (e.g., via tooltip).\r\n *\r\n * Enabling this input will change the button so that it is styled to be disabled and will be\r\n * marked as `aria-disabled`, but it will allow the button to receive events and focus.\r\n *\r\n * Note that by enabling this, you need to set the `tabindex` yourself if the button isn't\r\n * meant to be tabbable, and you have to prevent the button action (e.g., form submissions).\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabledInteractive(): boolean | undefined {return this._disabledInteractive;}\r\n set disabledInteractive(value: boolean | undefined) {this._disabledInteractive = value;}\r\n private _disabledInteractive: boolean | undefined;\r\n\r\n /** Label text that applied for visually hidden button */\r\n @Input()\r\n visuallyHiddenLabel: string | undefined;\r\n\r\n @HostBinding(\"class\")\r\n protected get classNames(): string {\r\n let classes = \"cute-\"+this._inputButtonStyle; // e.g. `cute-outline-button`\r\n if (this.color) {\r\n classes += [\"base\",\"close\",\"icon\"].indexOf(this.buttonStyle)==-1\r\n ? \" btn-\"+(this.buttonStyle==\"outline\" ? \"outline-\" : \"\") + toThemeColor(this.color)\r\n : this.buttonStyle==\"base\"\r\n ? (\" \" + (this.color==\"link\" ? \"btn-link\" : toColorCssClass(this.color)))\r\n : \"\";\r\n }\r\n return classes;\r\n }\r\n\r\n /** Focus shadow color for `close-button` */\r\n @HostBinding(\"style.--bs-btn-close-focus-shadow\")\r\n protected get _closeButtonShadowColor(): string {\r\n return (this.color && this.buttonStyle == \"close\") ? \"0 0 0 0.25rem rgba(var(--bs-\"+this.color+\"-rgb), 0.25)\" : \"\";\r\n }\r\n\r\n @HostBinding(\"class.cute-btn-xxl\")\r\n protected get buttonLargestBinding(): boolean {return this.magnitude == \"largest\"}\r\n @HostBinding(\"class.cute-btn-xl\")\r\n protected get buttonLargerBinding(): boolean {return this.magnitude == \"larger\"}\r\n @HostBinding(\"class.btn-lg\")\r\n protected get buttonLargeBinding(): boolean {return this.magnitude == \"large\"}\r\n @HostBinding(\"class.btn-sm\")\r\n protected get buttonSmallBinding(): boolean {return this.magnitude == \"small\"}\r\n @HostBinding(\"class.cute-btn-xs\")\r\n protected get buttonSmallerBinding(): boolean {return this.magnitude == \"smaller\"}\r\n @HostBinding(\"class.cute-btn-xxs\")\r\n protected get buttonSmallestBinding(): boolean {return this.magnitude == \"smallest\"}\r\n\r\n @HostBinding(\"style.--cute-icon-button-color-rgb\")\r\n protected get iconButtonColorBinding(): string {\r\n return this.buttonStyle==\"icon\" ? \"var(\"+(this.color ? this.bsColorVarName : \"--bs-body-color-rgb\")+\")\" : \"\";\r\n }\r\n @HostBinding(\"style.--cute-base-button-color-rgb\")\r\n protected get baseButtonColorBinding(): string {\r\n return this.buttonStyle==\"base\" ? \"var(\"+(this.color ? this.bsColorVarName : \"--bs-body-color-rgb\")+\")\" : \"\";\r\n }\r\n\r\n /** Returns button style name. */\r\n get buttonStyle(): string {\r\n return this._buttonStyle;\r\n }\r\n\r\n protected get bsColorVarName(): string {\r\n if (this.color) {\r\n if (this.color==\"link\") {\r\n return `--bs-${this.color}-color-rgb`;\r\n }\r\n return `--bs-${this.color}-rgb`;\r\n }\r\n return \"\";\r\n }\r\n\r\n protected constructor(...args: unknown[]);\r\n protected constructor() {\r\n super();\r\n const config = inject(CUTE_BUTTON_CONFIG, {optional: true});\r\n this.disabledInteractive = config?.disabledInteractive ?? false;\r\n this.wrapText = config?.wrapText ?? false;\r\n this._ripple = RippleManager.getInstance(this._nativeElement);\r\n\r\n this._isAnchor = (this._nativeElement.tagName == \"A\");\r\n }\r\n\r\n protected override generateId(): string {\r\n return \"\"; // `cute-button-${++nextUniqueId}`;\r\n }\r\n\r\n protected _getTabIndex() {\r\n if (this._isAnchor) {\r\n return this.disabled && !this.disabledInteractive ? -1 : this.tabIndex;\r\n }\r\n return this.tabIndex;\r\n }\r\n\r\n private _setupAsAnchor() {\r\n this._cleanupClick = this._ngZone.runOutsideAngular(() =>\r\n this._renderer.listen(this._nativeElement, 'click', (event: Event) => {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }),\r\n );\r\n }\r\n\r\n protected override setDisabledState(newState: BooleanInput): boolean {\r\n if (this._isAnchor) {\r\n const isDisabled = coerceBooleanProperty(newState);\r\n if (isDisabled) {\r\n this._savedTabIndex = this.tabIndex;\r\n this.tabIndex = -1;\r\n } else {\r\n this.tabIndex = this._savedTabIndex;\r\n }\r\n }\r\n return super.setDisabledState(newState);\r\n }\r\n private _savedTabIndex: number|undefined;\r\n\r\n protected _getAriaDisabled() {\r\n if (this.ariaDisabled != null) {\r\n return this.ariaDisabled;\r\n }\r\n if (this._isAnchor) {\r\n return this.disabled || null;\r\n }\r\n return this.disabled && this.disabledInteractive ? true : null;\r\n }\r\n\r\n protected _getDisabledAttribute() {\r\n //return this.disabledInteractive || !this.disabled ? null : true;\r\n return this.disabled ? true : null;\r\n }\r\n\r\n protected _haltDisabledEvents (event: Event): void {\r\n // A disabled button shouldn't apply any actions\r\n if (this.disabled && (this.disabledInteractive || this._isAnchor)) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n };\r\n\r\n /** Whether to apply a `focus-ring` css-class to the button when it focused via keyboard interaction */\r\n protected get displayFocusRing(): boolean {\r\n return this.buttonStyle == \"base\" && this.hasClass(\"cdk-keyboard-focused\");\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n\r\n if (this._group) {\r\n this.defaultColor = this._group.color;\r\n }\r\n\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n\r\n [\"mousedown\", \"mouseup\", \"click\"].forEach((type) => {\r\n fromEvent<MouseEvent>(this._nativeElement, type, { capture: true })\r\n .pipe(takeUntil(this._destroyed$))\r\n .subscribe((ev)=> this._onMouseEvent(ev));\r\n });\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n if (this._icons && this.buttonStyle == \"icon\") {\r\n this._icons.forEach(icon => {icon.defaultColor = this.color;});\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n\r\n // Some internal tests depend on the timing of this,\r\n // otherwise we could bind it in the constructor.\r\n if (this._isAnchor) {\r\n this._setupAsAnchor();\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n // This line was added due to \"Expression Changed After Checked...\" error raised if we place it in the @HostBinding\r\n this.toggleClass(\"focus-ring\", this.displayFocusRing);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._cleanupClick?.();\r\n this._ripple.stop();\r\n this._destroyed$.next();\r\n this._destroyed$.complete();\r\n }\r\n\r\n /** mouse events handler */\r\n private _onMouseEvent(event: MouseEvent) {\r\n\r\n this._haltDisabledEvents(event);\r\n\r\n if (!event.defaultPrevented && event.type == \"mousedown\") {\r\n this._launchRipple(event);\r\n }\r\n }\r\n\r\n private _launchRipple(event: MouseEvent): void {\r\n if (this._ripple && !this._ripple.disabled) {\r\n const options: RippleOptions = {};\r\n if (this.buttonStyle == \"icon\") {\r\n options.centered = true;\r\n options.color = \"rgba(var(--cute-icon-button-color), 0.25)\";\r\n }\r\n this._ripple.launch(event, options);\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {CuteButtonBase, CUTE_BUTTON_BASE} from \"./button-base.directive\";\r\nimport {toThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n@Component({\r\n selector: `button[cuteButton],\r\n button[cute-button],\r\n a[cuteButton],\r\n a[cute-button],\r\n `,\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n exportAs: \"cuteButton\",\r\n imports: [CommonModule],\r\n host: {\r\n 'class': 'cute-button',\r\n '[class.cute-anchor]': '_isAnchor',\r\n '[class.btn-close]': 'buttonStyle == \"close\"',\r\n '[class.rounded-pill]': 'buttonStyle==\"pill\"',\r\n '[class.rounded-circle]': 'buttonStyle==\"circle\"',\r\n '[class.raised]': 'buttonStyle==\"raised\" && !disabled',\r\n '[class.icon-link]': 'toThemeColor(color)==\"link\"',\r\n '[class.cute-button-expandable]': 'withAriaExpandedIndicator',\r\n //'[class.focus-ring]': 'buttonStyle==\"base\" && hasClass(\"cdk-keyboard-focused\")', // See: CuteButtonBase.ngDoCheck()\r\n '[class.disabled]': '(_isAnchor || buttonStyle==\"icon\" || disabledInteractive) && disabled',\r\n '[class.cute-button-disabled-interactive]': 'disabledInteractive',\r\n '[class.cute-unthemed]': '!color',\r\n '[attr.tabindex]': '_getTabIndex()', //'disabled ? -1 : tabIndex',\r\n '[attr.disabled]': '_getDisabledAttribute()',\r\n '[attr.aria-disabled]': '_getAriaDisabled()',\r\n '[attr.id]': 'id || null',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n },\r\n providers: [\r\n { provide: CUTE_BUTTON_BASE, useExisting: CuteButton }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteButton extends CuteButtonBase {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected readonly toThemeColor = toThemeColor;\r\n}\r\n","<!--\r\n For capturing HTML-elements such as <i class..> or <img src=\"\"...> and others\r\n we need apply [cuteButtonIcon] attribute to them.\r\n-->\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons:not([iconPositionEnd]),\r\n .bi:not([iconPositionEnd]),\r\n cute-icon:not([iconPositionEnd]),\r\n cute-avatar:not([iconPositionEnd]),\r\n [cuteButtonIcon]:not([iconPositionEnd])\">\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-button-label\" [class.cute-button-label__nowrap]=\"!wrapText\">\r\n <ng-content>\r\n @if(visuallyHiddenLabel) {\r\n <span class=\"visually-hidden\"> {{visuallyHiddenLabel}} </span>\r\n }\r\n </ng-content>\r\n</span>\r\n\r\n<span class=\"cute-icon-wrapper\">\r\n <ng-content select=\".material-icons[iconPositionEnd],\r\n .bi:[iconPositionEnd],\r\n cute-icon[iconPositionEnd],\r\n cute-avatar:[iconPositionEnd],\r\n [cuteButtonIcon][iconPositionEnd]\">\r\n </ng-content>\r\n</span>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n Directive, InjectionToken,\r\n Input, numberAttribute,\r\n} from \"@angular/core\";\r\nimport {CuteFocusableControl} from \"@cute-widgets/base/abstract\";\r\nimport {RelativeSize5} from \"@cute-widgets/base/core/types\";\r\n\r\n// Counter used to generate unique IDs.\r\nlet uniqueIdCounter = 0;\r\n\r\n/**\r\n * Injection token that can be used to reference instances of `CuteButtonToolbar`.\r\n * It serves as an alternative token to the actual `CuteButtonToolbar` class which\r\n * could cause unnecessary retention of the class and its component metadata.\r\n */\r\nexport const CUTE_BUTTON_TOOLBAR = new InjectionToken<CuteButtonToolbar>(\r\n 'CuteButtonToolbar',\r\n);\r\n\r\n\r\n/**\r\n * Combines sets of button groups into button toolbars for more complex components.\r\n */\r\n@Directive({\r\n selector: \"cute-button-toolbar\",\r\n exportAs: \"cuteButtonToolbar\",\r\n host: {\r\n 'class': 'cute-button-toolbar btn-toolbar',\r\n '[class]': '\"gap-\"+gap',\r\n '[attr.gap]': 'null',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n '[attr.aria-labelledby]': 'ariaLabelledby || null',\r\n '[attr.aria-describedby]': 'ariaDescribedby || null',\r\n '[id]': 'id || null',\r\n 'role': 'toolbar',\r\n },\r\n providers: [{provide: CUTE_BUTTON_TOOLBAR, useExisting: CuteButtonToolbar}],\r\n standalone: true\r\n})\r\nexport class CuteButtonToolbar extends CuteFocusableControl {\r\n\r\n //@Input({transform: booleanAttribute}) vertical: boolean = false;\r\n\r\n private _gap:number = 0;\r\n\r\n /** The gutter between button groups. */\r\n @Input({transform: numberAttribute})\r\n get gap(): number {return this._gap;}\r\n set gap(value: number) {\r\n const MAX_GAP= 5;\r\n value = Math.round(value);\r\n if (value >= 0 && value <= MAX_GAP) {\r\n this._gap = value;\r\n } else if (value > MAX_GAP) {\r\n this._gap = MAX_GAP;\r\n } else {\r\n this._gap = 0;\r\n }\r\n }\r\n\r\n @Input() magnitude: RelativeSize5 | undefined;\r\n\r\n /** Child buttons. */\r\n //@ContentChildren(CUTE_BUTTON_BASE, {descendants: true})\r\n //_buttons: QueryList<ButtonBase> | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `button-toolbar-${++uniqueIdCounter}`;\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteButton} from \"./button.component\";\r\nimport {CuteButtonGroup} from \"./button-group.directive\";\r\nimport {CuteButtonToolbar} from \"./button-toolbar.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteButton,\r\n CuteButtonGroup,\r\n CuteButtonToolbar,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteButtonModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uniqueIdCounter"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, SecurityContext, inject,
|
|
2
|
+
import { Directive, SecurityContext, inject, contentChild, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, HostAttributeToken, isDevMode, NgModule } from '@angular/core';
|
|
3
3
|
import { CuteLayoutControl } from '@cute-widgets/base/abstract';
|
|
4
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
@@ -98,12 +98,16 @@ class CuteCard extends CuteLayoutControl {
|
|
|
98
98
|
constructor() {
|
|
99
99
|
super();
|
|
100
100
|
this._sanitizer = inject(DomSanitizer);
|
|
101
|
+
/** `CuteCardHeader` element if it was defined in the `CuteCard` template. */
|
|
102
|
+
this._header = contentChild(CuteCardHeader, ...(ngDevMode ? [{ debugName: "_header", descendants: false }] : [{ descendants: false }]));
|
|
103
|
+
/** `CuteCardFooter` element if it was defined in the `CuteCard` template. */
|
|
104
|
+
this._footer = contentChild(CuteCardFooter, ...(ngDevMode ? [{ debugName: "_footer", descendants: false }] : [{ descendants: false }]));
|
|
101
105
|
}
|
|
102
106
|
generateId() {
|
|
103
107
|
return `cute-card-${++nextId}`;
|
|
104
108
|
}
|
|
105
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.15", type: CuteCard, isStandalone: true, selector: "cute-card", inputs: { backgroundImage: "backgroundImage" }, host: { properties: { "class.cute-card-with-background-image": "backgroundImage", "attr.backgroundImage": "null" }, classAttribute: "cute-card card" }, queries: [{ propertyName: "_header", first: true, predicate: CuteCardHeader, isSignal: true }, { propertyName: "_footer", first: true, predicate: CuteCardFooter, isSignal: true }], exportAs: ["cuteCard"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"cute-card-header\"></ng-content>\r\n<ng-content select=\"[cute-card-top-image]\"></ng-content>\r\n<ng-content></ng-content>\r\n<ng-content select=\"[cute-card-bottom-image]\"></ng-content>\r\n<ng-content select=\"cute-card-footer\"></ng-content>\r\n", styles: [".cute-card{--cute-card-image-height: auto;padding:0;overflow:hidden;background-repeat:no-repeat;background-position:center center;background-size:cover}.cute-card .cute-card-image{height:var(--cute-card-image-height);object-fit:cover}.cute-card .cute-card-image.img-fluid{height:auto}.cute-card.cute-thematic-widget .list-group-item{opacity:.65}.cute-card.cute-card-with-background-image,.cute-card .card-img-overlay{background-color:transparent!important}.cute-card.cute-card-with-background-image .list-group,.cute-card .card-img-overlay .list-group{--bs-bg-opacity: .25}.cute-card.cute-card-with-background-image .list-group-item,.cute-card .card-img-overlay .list-group-item{opacity:.65}.cute-card .cute-card-avatar{border-radius:50%}.cute-card .cute-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;width:100%;min-height:52px;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x)}.cute-card .cute-card-footer{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
107
111
|
}
|
|
108
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCard, decorators: [{
|
|
109
113
|
type: Component,
|
|
@@ -111,16 +115,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
111
115
|
'class': 'cute-card card',
|
|
112
116
|
'[class.cute-card-with-background-image]': 'backgroundImage',
|
|
113
117
|
'[attr.backgroundImage]': 'null',
|
|
114
|
-
}, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"cute-card-header\"></ng-content>\r\n<ng-content select=\"
|
|
118
|
+
}, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"cute-card-header\"></ng-content>\r\n<ng-content select=\"[cute-card-top-image]\"></ng-content>\r\n<ng-content></ng-content>\r\n<ng-content select=\"[cute-card-bottom-image]\"></ng-content>\r\n<ng-content select=\"cute-card-footer\"></ng-content>\r\n", styles: [".cute-card{--cute-card-image-height: auto;padding:0;overflow:hidden;background-repeat:no-repeat;background-position:center center;background-size:cover}.cute-card .cute-card-image{height:var(--cute-card-image-height);object-fit:cover}.cute-card .cute-card-image.img-fluid{height:auto}.cute-card.cute-thematic-widget .list-group-item{opacity:.65}.cute-card.cute-card-with-background-image,.cute-card .card-img-overlay{background-color:transparent!important}.cute-card.cute-card-with-background-image .list-group,.cute-card .card-img-overlay .list-group{--bs-bg-opacity: .25}.cute-card.cute-card-with-background-image .list-group-item,.cute-card .card-img-overlay .list-group-item{opacity:.65}.cute-card .cute-card-avatar{border-radius:50%}.cute-card .cute-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;width:100%;min-height:52px;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x)}.cute-card .cute-card-footer{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}\n"] }]
|
|
115
119
|
}], ctorParameters: () => [], propDecorators: { backgroundImage: [{
|
|
116
120
|
type: Input
|
|
117
|
-
}], _header: [{
|
|
118
|
-
type: ContentChild,
|
|
119
|
-
args: [CuteCardHeader, { descendants: false }]
|
|
120
|
-
}], _footer: [{
|
|
121
|
-
type: ContentChild,
|
|
122
|
-
args: [CuteCardFooter, { descendants: false }]
|
|
123
|
-
}] } });
|
|
121
|
+
}], _header: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CuteCardHeader), { ...{ descendants: false }, isSignal: true }] }], _footer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CuteCardFooter), { ...{ descendants: false }, isSignal: true }] }] } });
|
|
124
122
|
|
|
125
123
|
/**
|
|
126
124
|
* @license Apache-2.0
|
|
@@ -176,12 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
176
174
|
* `CuteCardImage` provides no behaviors, instead serving as a purely visual treatment.
|
|
177
175
|
*/
|
|
178
176
|
class CuteCardImage {
|
|
179
|
-
|
|
180
|
-
this.card = inject(CuteCard);
|
|
181
|
-
/** Image position in the card layout */
|
|
182
|
-
this.position = "top";
|
|
183
|
-
}
|
|
184
|
-
/** Image height in pixels */
|
|
177
|
+
/** The intrinsic height of the image, in pixels. */
|
|
185
178
|
get height() { return this._height; }
|
|
186
179
|
set height(value) {
|
|
187
180
|
if (typeof value === "string") {
|
|
@@ -191,26 +184,50 @@ class CuteCardImage {
|
|
|
191
184
|
}
|
|
192
185
|
this._height = value;
|
|
193
186
|
}
|
|
187
|
+
constructor() {
|
|
188
|
+
this.card = inject(CuteCard);
|
|
189
|
+
/** Image position in the card layout */
|
|
190
|
+
this._position = "top";
|
|
191
|
+
let attribs = [];
|
|
192
|
+
attribs[0] = inject(new HostAttributeToken("cute-card-top-image"), { optional: true });
|
|
193
|
+
attribs[1] = inject(new HostAttributeToken("cute-card-bottom-image"), { optional: true });
|
|
194
|
+
attribs[2] = inject(new HostAttributeToken("cute-card-fluid-image"), { optional: true });
|
|
195
|
+
if (attribs.filter(v => v != null).length > 1 && isDevMode()) {
|
|
196
|
+
throw new Error("Only one attribute with name 'cute-card-*-image' should be applied.");
|
|
197
|
+
}
|
|
198
|
+
// We take into account the first value only
|
|
199
|
+
const attrInd = attribs.findIndex(v => v != null);
|
|
200
|
+
switch (attrInd) {
|
|
201
|
+
case 0:
|
|
202
|
+
this._position = "top";
|
|
203
|
+
break;
|
|
204
|
+
case 1:
|
|
205
|
+
this._position = "bottom";
|
|
206
|
+
break;
|
|
207
|
+
case 2:
|
|
208
|
+
this._position = "fluid";
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
this.card.markForCheck();
|
|
212
|
+
}
|
|
194
213
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCardImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
195
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteCardImage, isStandalone: true, selector: "[cute-card-image], [
|
|
214
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteCardImage, isStandalone: true, selector: "[cute-card-image], [cute-card-top-image], [cute-card-bottom-image], [cute-card-fluid-image]", inputs: { height: "height" }, host: { properties: { "class": "'card-img'+(_position=='top'||_position=='bottom' ? '-'+_position : '')", "class.img-fluid": "_position==\"fluid\"", "attr.height": "height", "style.border-radius": "_position=='top' && card?._header() ? 0 : (_position=='bottom' && card?._footer() ? 0 : undefined)", "style.--cute-card-image-height": "height>=0 ? height+\"px\" : undefined" }, classAttribute: "cute-card-image" }, ngImport: i0 }); }
|
|
196
215
|
}
|
|
197
216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCardImage, decorators: [{
|
|
198
217
|
type: Directive,
|
|
199
218
|
args: [{
|
|
200
|
-
selector: '[cute-card-image], [
|
|
219
|
+
selector: '[cute-card-image], [cute-card-top-image], [cute-card-bottom-image], [cute-card-fluid-image]',
|
|
201
220
|
host: {
|
|
202
221
|
'class': 'cute-card-image',
|
|
203
|
-
'[class]': "'card-img'+(
|
|
204
|
-
|
|
205
|
-
'[
|
|
206
|
-
'[style.border-radius]': "
|
|
222
|
+
'[class]': "'card-img'+(_position=='top'||_position=='bottom' ? '-'+_position : '')",
|
|
223
|
+
'[class.img-fluid]': '_position=="fluid"',
|
|
224
|
+
'[attr.height]': 'height',
|
|
225
|
+
'[style.border-radius]': "_position=='top' && card?._header() ? 0 : (_position=='bottom' && card?._footer() ? 0 : undefined)",
|
|
207
226
|
'[style.--cute-card-image-height]': 'height>=0 ? height+"px" : undefined'
|
|
208
227
|
},
|
|
209
228
|
standalone: true,
|
|
210
229
|
}]
|
|
211
|
-
}], propDecorators: {
|
|
212
|
-
type: Input
|
|
213
|
-
}], height: [{
|
|
230
|
+
}], ctorParameters: () => [], propDecorators: { height: [{
|
|
214
231
|
type: Input
|
|
215
232
|
}] } });
|
|
216
233
|
|
|
@@ -234,14 +251,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
234
251
|
*/
|
|
235
252
|
class CuteCardBody {
|
|
236
253
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCardBody, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
237
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CuteCardBody, isStandalone: true, selector: "cute-card-body, cute-card-content", inputs: { color: "color" }, host: { properties: { "class": "color ? \"text-\"+color : \"\"" }, classAttribute: "cute-card-body card-body" }, exportAs: ["cuteCardBody"], ngImport: i0, template: "<ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n</ng-content>\r\n<div class=\"card-text
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CuteCardBody, isStandalone: true, selector: "cute-card-body, cute-card-content", inputs: { color: "color" }, host: { properties: { "class": "color ? \"text-\"+color : \"\"" }, classAttribute: "cute-card-body card-body" }, exportAs: ["cuteCardBody"], ngImport: i0, template: "<div class=\"cute-card-title__wrapper\">\r\n <ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n </ng-content>\r\n</div>\r\n<div class=\"card-text\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-card-body{display:flex;flex-direction:column;position:relative;gap:.5rem}.cute-card-body .cute-card-title__wrapper:empty{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
238
255
|
}
|
|
239
256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCardBody, decorators: [{
|
|
240
257
|
type: Component,
|
|
241
258
|
args: [{ selector: 'cute-card-body, cute-card-content', exportAs: 'cuteCardBody', host: {
|
|
242
259
|
'class': 'cute-card-body card-body',
|
|
243
260
|
'[class]': 'color ? "text-"+color : ""',
|
|
244
|
-
}, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n</ng-content>\r\n<div class=\"card-text
|
|
261
|
+
}, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cute-card-title__wrapper\">\r\n <ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n </ng-content>\r\n</div>\r\n<div class=\"card-text\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-card-body{display:flex;flex-direction:column;position:relative;gap:.5rem}.cute-card-body .cute-card-title__wrapper:empty{display:none}\n"] }]
|
|
245
262
|
}], propDecorators: { color: [{
|
|
246
263
|
type: Input
|
|
247
264
|
}] } });
|
|
@@ -371,14 +388,14 @@ class CuteCardSubtitle {
|
|
|
371
388
|
this.color = "secondary";
|
|
372
389
|
}
|
|
373
390
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCardSubtitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
374
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteCardSubtitle, isStandalone: true, selector: "cute-card-subtitle, [cute-card-subtitle], [cuteCardSubtitle]", inputs: { color: "color" }, host: { properties: { "class": "color ? \"text-\"+color : \"\"" }, classAttribute: "cute-card-subtitle card-subtitle
|
|
391
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: CuteCardSubtitle, isStandalone: true, selector: "cute-card-subtitle, [cute-card-subtitle], [cuteCardSubtitle]", inputs: { color: "color" }, host: { properties: { "class": "color ? \"text-\"+color : \"\"" }, classAttribute: "cute-card-subtitle card-subtitle" }, ngImport: i0 }); }
|
|
375
392
|
}
|
|
376
393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CuteCardSubtitle, decorators: [{
|
|
377
394
|
type: Directive,
|
|
378
395
|
args: [{
|
|
379
396
|
selector: `cute-card-subtitle, [cute-card-subtitle], [cuteCardSubtitle]`,
|
|
380
397
|
host: {
|
|
381
|
-
'class': 'cute-card-subtitle card-subtitle
|
|
398
|
+
'class': 'cute-card-subtitle card-subtitle',
|
|
382
399
|
'[class]': 'color ? "text-"+color : ""',
|
|
383
400
|
},
|
|
384
401
|
standalone: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cute-widgets-base-card.mjs","sources":["../../../../projects/cute-widgets/base/card/src/card-header.directive.ts","../../../../projects/cute-widgets/base/card/src/card-footer.directive.ts","../../../../projects/cute-widgets/base/card/src/card.component.ts","../../../../projects/cute-widgets/base/card/src/card.component.html","../../../../projects/cute-widgets/base/card/src/card-avatar.directive.ts","../../../../projects/cute-widgets/base/card/src/card-image.directive.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.html","../../../../projects/cute-widgets/base/card/src/card-actions.directive.ts","../../../../projects/cute-widgets/base/card/src/card-group.component.ts","../../../../projects/cute-widgets/base/card/src/card-title.directive.ts","../../../../projects/cute-widgets/base/card/src/card-subtitle.directive.ts","../../../../projects/cute-widgets/base/card/src/card-overlay.directive.ts","../../../../projects/cute-widgets/base/card/src/card.module.ts","../../../../projects/cute-widgets/base/card/cute-widgets-base-card.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Header region of a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as `<cute-card-footer>`;\r\n * any custom header block element may be used in its place.\r\n *\r\n * `CuteCardHeader` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-header',\r\n host: {'class': 'cute-card-header card-header'},\r\n standalone: true\r\n})\r\nexport class CuteCardHeader {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Footer area a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom footer block element may be used in its place.\r\n *\r\n * CuteCardFooter provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-footer',\r\n host: {'class': 'cute-card-footer card-footer text-body-secondary'},\r\n standalone: true\r\n})\r\nexport class CuteCardFooter {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n inject,\r\n Input,\r\n SecurityContext,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\n\r\nlet nextId: number = -1;\r\n\r\n/**\r\n * A flexible and extensible content container with multiple variants and options.\r\n */\r\n@Component({\r\n selector: 'cute-card',\r\n templateUrl: './card.component.html',\r\n styleUrl: './card.component.scss',\r\n exportAs: 'cuteCard',\r\n host: {\r\n 'class': 'cute-card card',\r\n '[class.cute-card-with-background-image]': 'backgroundImage',\r\n '[attr.backgroundImage]': 'null',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCard extends CuteLayoutControl {\r\n private _sanitizer = inject(DomSanitizer);\r\n\r\n @Input()\r\n get backgroundImage(): string | undefined {return this._backgroundImage;}\r\n set backgroundImage(value: string | undefined) {\r\n if (value) {\r\n this._backgroundImage = this._sanitizer.sanitize(SecurityContext.URL, value) ?? undefined;\r\n if (this._backgroundImage) {\r\n this._nativeElement.style.backgroundImage = `url('${this._backgroundImage.trim()}')`;\r\n }\r\n } else {\r\n this._nativeElement.style.backgroundImage = \"none\";\r\n this._backgroundImage = undefined;\r\n }\r\n }\r\n private _backgroundImage: string | undefined;\r\n\r\n /** `CuteCardHeader` element if it was defined in the `CuteCard` template. */\r\n @ContentChild(CuteCardHeader, {descendants: false}) readonly _header: CuteCardHeader | undefined;\r\n /** `CuteCardFooter` element if it was defined in the `CuteCard` template. */\r\n @ContentChild(CuteCardFooter, {descendants: false}) readonly _footer: CuteCardFooter | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-card-${++nextId}`;\r\n }\r\n\r\n}\r\n","<ng-content select=\"cute-card-header\"></ng-content>\r\n<ng-content select=\"img[position=top], [role=img][position=top]\"></ng-content>\r\n<ng-content></ng-content>\r\n<ng-content select=\"img[position=bottom], [role=img][position=bottom]\"></ng-content>\r\n<ng-content select=\"cute-card-footer\"></ng-content>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Avatar image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`; any custom media element may be used in its place.\r\n *\r\n * CuteCardAvatar provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-avatar], [cuteCardAvatar]',\r\n host: {'class': 'cute-card-avatar card-avatar shadow'},\r\n standalone: true,\r\n})\r\nexport class CuteCardAvatar {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, inject, Input} from \"@angular/core\";\r\nimport {CuteCard} from \"./card.component\";\r\n\r\n/**\r\n * Primary image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-body>`; any custom media element may be used in its place.\r\n *\r\n * `CuteCardImage` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-image], [cuteCardImage]',\r\n host: {\r\n 'class': 'cute-card-image',\r\n '[class]': \"'card-img'+(position=='top'||position=='bottom' ? '-'+position : '')\",\r\n //'[class.cute-card-image-cover]': 'position==\"cover\"',\r\n '[class.img-fluid]': 'position==\"fluid\"',\r\n '[style.border-radius]': \"position=='top' && card?._header ? 0 : (position=='bottom' && card?._footer ? 0 : undefined)\",\r\n '[style.--cute-card-image-height]': 'height>=0 ? height+\"px\" : undefined'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardImage {\r\n protected card= inject(CuteCard);\r\n\r\n /** Image position in the card layout */\r\n @Input() position: \"top\"|\"bottom\"|\"fluid\" = \"top\";\r\n\r\n /** Image height in pixels */\r\n @Input()\r\n get height(): number|undefined {return this._height;}\r\n set height(value: number|string|undefined) {\r\n if (typeof value===\"string\") {\r\n value = parseInt(value);\r\n if (isNaN(value)) value = undefined;\r\n }\r\n this._height = value;\r\n }\r\n private _height: number | undefined;\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Content of a card, intended for use within `<cute-card>`. This component is an optional\r\n * convenience for use with other convenience elements, such as `<cute-card-title>`; any custom\r\n * content block element may be used in its place.\r\n *\r\n * CuteCardContent provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Component({\r\n selector: 'cute-card-body, cute-card-content',\r\n templateUrl: './card-body.component.html',\r\n styleUrls: ['./card-body.component.scss'],\r\n exportAs: 'cuteCardBody',\r\n host: {\r\n 'class': 'cute-card-body card-body',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCardBody {\r\n /** Card body text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","<ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n</ng-content>\r\n<div class=\"card-text mt-2\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ContentAlignment} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Bottom area of a card that contains action buttons, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom action block element may be used in its place.\r\n *\r\n * `CuteCardActions` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-actions, [cute-card-actions], [cuteCardActions]',\r\n exportAs: 'cuteCardActions',\r\n host: {\r\n 'class': 'cute-card-actions card-actions',\r\n '[class]': \"'justify-content-'+align\",\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardActions {\r\n /** Position of the actions inside the card. */\r\n @Input() align: ContentAlignment = \"start\";\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Component} from \"@angular/core\";\r\n\r\n/**\r\n * Use _card groups_ to render cards as a single, attached element with equal width and height columns.\r\n * When using card groups with footers, their content will automatically line up.\r\n */\r\n@Component({\r\n selector: 'cute-card-group',\r\n exportAs: 'cuteCardGroup',\r\n template: '<ng-content></ng-content>',\r\n styles: [`\r\n :host { display: block; }\r\n `],\r\n host: {\r\n 'class': 'cute-card-group card-group'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardGroup /* extends ... */ {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Title of a card, intended for use within `<cute-card-body>`. This component is an optional\r\n * convenience for one variety of card titles; any custom title element may be used in its place.\r\n *\r\n * CuteCardTitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-title, [cute-card-title], [cuteCardTitle]`,\r\n host: {\r\n 'class': 'cute-card-title card-title',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardTitle {\r\n /** Title text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Subtitle of a card, intended for use within `<cute-card-body>` beneath a `<cute-card-title>`. This\r\n * component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`.\r\n *\r\n * CuteCardSubtitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-subtitle, [cute-card-subtitle], [cuteCardSubtitle]`,\r\n host: {\r\n 'class': 'cute-card-subtitle card-subtitle mb-2',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardSubtitle {\r\n /** Subtitle text color */\r\n @Input() color: ThemeColor = \"secondary\";\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Turn an image into a card background and overlay the card’s text.\r\n */\r\n@Directive({\r\n selector: 'cute-card-overlay',\r\n exportAs: 'cuteCardOverlay',\r\n host: {\r\n 'class': 'card-img-overlay d-flex flex-column'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardOverlay /* extends ... */ {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {NgModule, Type} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteCard} from \"./card.component\";\r\nimport {CuteCardTitle} from \"./card-title.directive\";\r\nimport {CuteCardSubtitle} from \"./card-subtitle.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardActions} from \"./card-actions.directive\";\r\nimport {CuteCardBody} from \"./card-body.component\";\r\nimport {CuteCardImage} from \"./card-image.directive\";\r\nimport {CuteCardAvatar} from \"./card-avatar.directive\";\r\nimport {CuteCardGroup} from \"./card-group.component\";\r\nimport {CuteCardOverlay} from \"./card-overlay.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCard,\r\n CuteCardTitle,\r\n CuteCardSubtitle,\r\n CuteCardFooter,\r\n CuteCardHeader,\r\n CuteCardActions,\r\n CuteCardBody,\r\n CuteCardOverlay,\r\n CuteCardImage,\r\n CuteCardAvatar,\r\n CuteCardGroup,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: [TYPES],\r\n declarations: [],\r\n})\r\nexport class CuteCardModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cute-widgets-base-card.mjs","sources":["../../../../projects/cute-widgets/base/card/src/card-header.directive.ts","../../../../projects/cute-widgets/base/card/src/card-footer.directive.ts","../../../../projects/cute-widgets/base/card/src/card.component.ts","../../../../projects/cute-widgets/base/card/src/card.component.html","../../../../projects/cute-widgets/base/card/src/card-avatar.directive.ts","../../../../projects/cute-widgets/base/card/src/card-image.directive.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.ts","../../../../projects/cute-widgets/base/card/src/card-body.component.html","../../../../projects/cute-widgets/base/card/src/card-actions.directive.ts","../../../../projects/cute-widgets/base/card/src/card-group.component.ts","../../../../projects/cute-widgets/base/card/src/card-title.directive.ts","../../../../projects/cute-widgets/base/card/src/card-subtitle.directive.ts","../../../../projects/cute-widgets/base/card/src/card-overlay.directive.ts","../../../../projects/cute-widgets/base/card/src/card.module.ts","../../../../projects/cute-widgets/base/card/cute-widgets-base-card.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Header region of a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as `<cute-card-footer>`;\r\n * any custom header block element may be used in its place.\r\n *\r\n * `CuteCardHeader` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-header',\r\n host: {'class': 'cute-card-header card-header'},\r\n standalone: true\r\n})\r\nexport class CuteCardHeader {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Footer area a card, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom footer block element may be used in its place.\r\n *\r\n * CuteCardFooter provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-footer',\r\n host: {'class': 'cute-card-footer card-footer text-body-secondary'},\r\n standalone: true\r\n})\r\nexport class CuteCardFooter {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, contentChild,\r\n ContentChild,\r\n inject,\r\n Input,\r\n SecurityContext,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {DomSanitizer} from \"@angular/platform-browser\";\r\n\r\nlet nextId: number = -1;\r\n\r\n/**\r\n * A flexible and extensible content container with multiple variants and options.\r\n */\r\n@Component({\r\n selector: 'cute-card',\r\n templateUrl: './card.component.html',\r\n styleUrl: './card.component.scss',\r\n exportAs: 'cuteCard',\r\n host: {\r\n 'class': 'cute-card card',\r\n '[class.cute-card-with-background-image]': 'backgroundImage',\r\n '[attr.backgroundImage]': 'null',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCard extends CuteLayoutControl {\r\n private _sanitizer = inject(DomSanitizer);\r\n\r\n @Input()\r\n get backgroundImage(): string | undefined {return this._backgroundImage;}\r\n set backgroundImage(value: string | undefined) {\r\n if (value) {\r\n this._backgroundImage = this._sanitizer.sanitize(SecurityContext.URL, value) ?? undefined;\r\n if (this._backgroundImage) {\r\n this._nativeElement.style.backgroundImage = `url('${this._backgroundImage.trim()}')`;\r\n }\r\n } else {\r\n this._nativeElement.style.backgroundImage = \"none\";\r\n this._backgroundImage = undefined;\r\n }\r\n }\r\n private _backgroundImage: string | undefined;\r\n\r\n /** `CuteCardHeader` element if it was defined in the `CuteCard` template. */\r\n readonly _header = contentChild(CuteCardHeader, {descendants: false});\r\n\r\n /** `CuteCardFooter` element if it was defined in the `CuteCard` template. */\r\n readonly _footer = contentChild(CuteCardFooter, {descendants: false});\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-card-${++nextId}`;\r\n }\r\n\r\n}\r\n","<ng-content select=\"cute-card-header\"></ng-content>\r\n<ng-content select=\"[cute-card-top-image]\"></ng-content>\r\n<ng-content></ng-content>\r\n<ng-content select=\"[cute-card-bottom-image]\"></ng-content>\r\n<ng-content select=\"cute-card-footer\"></ng-content>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Avatar image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`; any custom media element may be used in its place.\r\n *\r\n * CuteCardAvatar provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-avatar], [cuteCardAvatar]',\r\n host: {'class': 'cute-card-avatar card-avatar shadow'},\r\n standalone: true,\r\n})\r\nexport class CuteCardAvatar {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {ChangeDetectorRef, Directive, HostAttributeToken, inject, input, Input, isDevMode} from \"@angular/core\";\r\nimport {CuteCard} from \"./card.component\";\r\n\r\nexport type CuteCardImagePosition = \"top\"|\"bottom\"|\"fluid\";\r\n\r\n/**\r\n * Primary image content for a card, intended for use within `<cute-card>`. Can be applied to\r\n * any media element, such as `<img>` or `<picture>`.\r\n *\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-body>`; any custom media element may be used in its place.\r\n *\r\n * `CuteCardImage` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: '[cute-card-image], [cute-card-top-image], [cute-card-bottom-image], [cute-card-fluid-image]',\r\n host: {\r\n 'class': 'cute-card-image',\r\n '[class]': \"'card-img'+(_position=='top'||_position=='bottom' ? '-'+_position : '')\",\r\n '[class.img-fluid]': '_position==\"fluid\"',\r\n '[attr.height]': 'height',\r\n '[style.border-radius]': \"_position=='top' && card?._header() ? 0 : (_position=='bottom' && card?._footer() ? 0 : undefined)\",\r\n '[style.--cute-card-image-height]': 'height>=0 ? height+\"px\" : undefined'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardImage {\r\n protected card= inject(CuteCard);\r\n\r\n /** Image position in the card layout */\r\n protected readonly _position: CuteCardImagePosition = \"top\";\r\n\r\n /** The intrinsic height of the image, in pixels. */\r\n @Input()\r\n get height(): number|undefined {return this._height;}\r\n set height(value: number|string|undefined) {\r\n if (typeof value===\"string\") {\r\n value = parseInt(value);\r\n if (isNaN(value)) value = undefined;\r\n }\r\n this._height = value;\r\n }\r\n private _height: number | undefined;\r\n\r\n constructor() {\r\n let attribs: (string|null)[] = [];\r\n attribs[0] = inject(new HostAttributeToken(\"cute-card-top-image\"), {optional: true});\r\n attribs[1] = inject(new HostAttributeToken(\"cute-card-bottom-image\"), {optional: true});\r\n attribs[2] = inject(new HostAttributeToken(\"cute-card-fluid-image\"), {optional: true});\r\n\r\n if (attribs.filter(v => v != null).length > 1 && isDevMode()) {\r\n throw new Error(\"Only one attribute with name 'cute-card-*-image' should be applied.\")\r\n }\r\n\r\n // We take into account the first value only\r\n const attrInd = attribs.findIndex(v => v != null);\r\n switch (attrInd) {\r\n case 0: this._position = \"top\"; break;\r\n case 1: this._position = \"bottom\"; break;\r\n case 2: this._position = \"fluid\"; break;\r\n }\r\n this.card.markForCheck();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Content of a card, intended for use within `<cute-card>`. This component is an optional\r\n * convenience for use with other convenience elements, such as `<cute-card-title>`; any custom\r\n * content block element may be used in its place.\r\n *\r\n * CuteCardContent provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Component({\r\n selector: 'cute-card-body, cute-card-content',\r\n templateUrl: './card-body.component.html',\r\n styleUrls: ['./card-body.component.scss'],\r\n exportAs: 'cuteCardBody',\r\n host: {\r\n 'class': 'cute-card-body card-body',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CuteCardBody {\r\n /** Card body text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","<div class=\"cute-card-title__wrapper\">\r\n <ng-content select=\"cute-card-title, cute-card-subtitle,\r\n [cute-card-title], [cute-card-subtitle],\r\n [cuteCardTitle], [cuteCardSubtitle]\">\r\n </ng-content>\r\n</div>\r\n<div class=\"card-text\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ContentAlignment} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Bottom area of a card that contains action buttons, intended for use within `<cute-card>`.\r\n * This component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-content>`; any custom action block element may be used in its place.\r\n *\r\n * `CuteCardActions` provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: 'cute-card-actions, [cute-card-actions], [cuteCardActions]',\r\n exportAs: 'cuteCardActions',\r\n host: {\r\n 'class': 'cute-card-actions card-actions',\r\n '[class]': \"'justify-content-'+align\",\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardActions {\r\n /** Position of the actions inside the card. */\r\n @Input() align: ContentAlignment = \"start\";\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Component} from \"@angular/core\";\r\n\r\n/**\r\n * Use _card groups_ to render cards as a single, attached element with equal width and height columns.\r\n * When using card groups with footers, their content will automatically line up.\r\n */\r\n@Component({\r\n selector: 'cute-card-group',\r\n exportAs: 'cuteCardGroup',\r\n template: '<ng-content></ng-content>',\r\n styles: [`\r\n :host { display: block; }\r\n `],\r\n host: {\r\n 'class': 'cute-card-group card-group'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardGroup /* extends ... */ {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Title of a card, intended for use within `<cute-card-body>`. This component is an optional\r\n * convenience for one variety of card titles; any custom title element may be used in its place.\r\n *\r\n * CuteCardTitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-title, [cute-card-title], [cuteCardTitle]`,\r\n host: {\r\n 'class': 'cute-card-title card-title',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardTitle {\r\n /** Title text color */\r\n @Input() color: ThemeColor | undefined;\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, Input} from \"@angular/core\";\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Subtitle of a card, intended for use within `<cute-card-body>` beneath a `<cute-card-title>`. This\r\n * component is an optional convenience for use with other convenience elements, such as\r\n * `<cute-card-title>`.\r\n *\r\n * CuteCardSubtitle provides no behaviors, instead serving as a purely visual treatment.\r\n */\r\n@Directive({\r\n selector: `cute-card-subtitle, [cute-card-subtitle], [cuteCardSubtitle]`,\r\n host: {\r\n 'class': 'cute-card-subtitle card-subtitle',\r\n '[class]': 'color ? \"text-\"+color : \"\"',\r\n },\r\n standalone: true\r\n})\r\nexport class CuteCardSubtitle {\r\n /** Subtitle text color */\r\n @Input() color: ThemeColor = \"secondary\";\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Turn an image into a card background and overlay the card’s text.\r\n */\r\n@Directive({\r\n selector: 'cute-card-overlay',\r\n exportAs: 'cuteCardOverlay',\r\n host: {\r\n 'class': 'card-img-overlay d-flex flex-column'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCardOverlay /* extends ... */ {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {NgModule, Type} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteCard} from \"./card.component\";\r\nimport {CuteCardTitle} from \"./card-title.directive\";\r\nimport {CuteCardSubtitle} from \"./card-subtitle.directive\";\r\nimport {CuteCardFooter} from \"./card-footer.directive\";\r\nimport {CuteCardHeader} from \"./card-header.directive\";\r\nimport {CuteCardActions} from \"./card-actions.directive\";\r\nimport {CuteCardBody} from \"./card-body.component\";\r\nimport {CuteCardImage} from \"./card-image.directive\";\r\nimport {CuteCardAvatar} from \"./card-avatar.directive\";\r\nimport {CuteCardGroup} from \"./card-group.component\";\r\nimport {CuteCardOverlay} from \"./card-overlay.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteCard,\r\n CuteCardTitle,\r\n CuteCardSubtitle,\r\n CuteCardFooter,\r\n CuteCardHeader,\r\n CuteCardActions,\r\n CuteCardBody,\r\n CuteCardOverlay,\r\n CuteCardImage,\r\n CuteCardAvatar,\r\n CuteCardGroup,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: [TYPES],\r\n declarations: [],\r\n})\r\nexport class CuteCardModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|