@acorex/components 22.4.12 → 22.4.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-comment.mjs +771 -73
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +15 -4
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +15 -2
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-text-editor.mjs +28 -9
- package/fesm2022/acorex-components-text-editor.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-comment.d.ts +291 -31
- package/types/acorex-components-drawer.d.ts +2 -2
- package/types/acorex-components-lookup.d.ts +2 -0
- package/types/acorex-components-text-editor.d.ts +15 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-comment.mjs","sources":["../../../../packages/components/comment/src/lib/comment-container/comment-container.component.ts","../../../../packages/components/comment/src/lib/comment-item/comment-item.component.ts","../../../../packages/components/comment/src/lib/comment-item/comment-item.component.html","../../../../packages/components/comment/src/lib/comment-tools/comment-date/comment-date.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-like/comment-like.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-like/comment-like.component.html","../../../../packages/components/comment/src/lib/comment-tools/comment-menu-options/comment-menu-options.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-reply-more/comment-reply-more.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-reply-text/comment-reply-text.component.ts","../../../../packages/components/comment/src/lib/comment-view/comment-view.component.ts","../../../../packages/components/comment/src/lib/comment.module.ts","../../../../packages/components/comment/src/acorex-components-comment.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Component, DOCUMENT, inject, PLATFORM_ID, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for displaying and managing comments.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-container',\n template: '<ng-content />',\n styles: `\n ax-comment-container {\n display: block;\n width: 100%;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXCommentContainerComponent }],\n})\nexport class AXCommentContainerComponent {\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n /**\n * Scrolls to a specific comment reply by its ID and highlights it temporarily.\n *\n * @param id - The ID of the comment reply to scroll to\n */\n scrollToReply(id: string) {\n if (!isPlatformBrowser(this.platformID)) return;\n\n const el = this.document.querySelector(`ax-comment-item[id=\"${id}\"]`) as HTMLElement;\n if (!el) return;\n\n el.scrollIntoView({ behavior: 'smooth', block: 'center' });\n el.classList.add('ax-state-highlight');\n setTimeout(() => el.classList.remove('ax-state-highlight'), 1500);\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXAvatarComponent } from '@acorex/components/avatar';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { afterNextRender, Component, contentChild, input, model, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component that represents an individual comment item in the comment system.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-item',\n templateUrl: './comment-item.component.html',\n styleUrl: './comment-item.component.css',\n encapsulation: ViewEncapsulation.None,\n\n imports: [AXTranslatorPipe, AsyncPipe],\n providers: [{ provide: AXComponent, useExisting: AXCommentItemComponent }],\n})\nexport class AXCommentItemComponent {\n protected avatar = contentChild(AXAvatarComponent);\n\n readonly replyCount = input<number>();\n\n /** Two-way bindable state controlling whether nested replies are visible. */\n readonly repliesExpanded = model(false);\n\n constructor() {\n afterNextRender(() => {\n this.avatar()?.size?.set(40);\n });\n }\n\n toggleReplies() {\n this.repliesExpanded.update((v) => !v);\n }\n\n showReplies() {\n this.repliesExpanded.set(true);\n }\n\n hideReplies() {\n this.repliesExpanded.set(false);\n }\n}\n","<div class=\"ax-comment-header\">\n <div class=\"ax-comment-header-start\">\n <ng-content select=\"ax-avatar\" />\n <div class=\"ax-comment-header-content\">\n <ng-content select=\"ax-title\" />\n <ng-content select=\"ax-comment-date\" />\n </div>\n </div>\n <ng-content select=\"ax-comment-menu-options\" />\n</div>\n\n<div class=\"ax-comment-body\">\n <ng-content select=\"ax-content\" />\n <div class=\"ax-comment-actions\">\n <ng-content select=\"ax-comment-like\" />\n <ng-content select=\"ax-comment-reply-text\" />\n </div>\n</div>\n\n@if (replyCount()) {\n <div class=\"ax-comment-replies\">\n <span class=\"ax-comment-replies-toggle\" (click)=\"toggleReplies()\">\n {{ (repliesExpanded() ? '@acorex:comment.hide' : '@acorex:comment.view') | translate | async }}\n {{ replyCount() }}\n {{ (replyCount() > 1 ? '@acorex:comment.replies' : '@acorex:comment.reply') | translate | async }}\n </span>\n @if (repliesExpanded()) {\n <div class=\"ax-comment-replies-content\">\n <ng-content select=\"ax-comment-item\" />\n <ng-content select=\"ax-comment-reply-more\" />\n </div>\n }\n </div>\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying date on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-date',\n template: '<ng-content />',\n styleUrl: './comment-date.component.css',\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXCommentDateComponent }],\n})\nexport class AXCommentDateComponent {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { Component, model, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying and managing likes on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-like',\n templateUrl: './comment-like.component.html',\n styleUrl: './comment-like.component.css',\n encapsulation: ViewEncapsulation.None,\n\n imports: [AXDecoratorIconComponent, AXDecoratorGenericComponent],\n providers: [{ provide: AXComponent, useExisting: AXCommentLikeComponent }],\n})\nexport class AXCommentLikeComponent {\n like = model.required<boolean>();\n\n protected toggleLike() {\n this.like.update((prev) => !prev);\n }\n}\n","<div class=\"ax-comment-like-container\" [class.ax-state-liked]=\"like()\" (click)=\"toggleLike()\">\n <ax-icon class=\"ax-icon ax-icon-heart\"></ax-icon>\n <ax-text><ng-content /></ax-text>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying and managing menu options on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-menu-options',\n template: '<ng-content />',\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXMenuOptionsComponent }],\n})\nexport class AXMenuOptionsComponent {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying \"show more replies\" action on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-reply-more',\n template: '<ax-text><ng-content /></ax-text>',\n encapsulation: ViewEncapsulation.None,\n\n imports: [AXDecoratorGenericComponent],\n providers: [{ provide: AXComponent, useExisting: AXCommentReplyMoreComponent }],\n})\nexport class AXCommentReplyMoreComponent {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying the reply action text on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-reply-text',\n template: `<ax-text>{{ '@acorex:comment.reply' | translate | async }}</ax-text>`,\n encapsulation: ViewEncapsulation.None,\n\n imports: [AXDecoratorGenericComponent, AXTranslatorPipe, AsyncPipe],\n providers: [{ provide: AXComponent, useExisting: AXCommentReplyTextComponent }],\n})\nexport class AXCommentReplyTextComponent {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for viewing comments with their details.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-view',\n template: '<ng-content select=\"ax-comment-item\" />',\n styles: `\n ax-comment-view {\n display: block;\n margin-block-end: 1rem;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXCommentViewComponent }],\n})\nexport class AXCommentViewComponent {}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTextAreaModule } from '@acorex/components/text-area';\nimport { AXWysiwygModule } from '@acorex/components/wysiwyg';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { NgModule } from '@angular/core';\nimport { AXCommentContainerComponent } from './comment-container/comment-container.component';\nimport { AXCommentItemComponent } from './comment-item/comment-item.component';\nimport { AXCommentDateComponent } from './comment-tools/comment-date/comment-date.component';\nimport { AXCommentLikeComponent } from './comment-tools/comment-like/comment-like.component';\nimport { AXMenuOptionsComponent } from './comment-tools/comment-menu-options/comment-menu-options.component';\nimport { AXCommentReplyMoreComponent } from './comment-tools/comment-reply-more/comment-reply-more.component';\nimport { AXCommentReplyTextComponent } from './comment-tools/comment-reply-text/comment-reply-text.component';\nimport { AXCommentViewComponent } from './comment-view/comment-view.component';\n\nconst COMPONENTS = [\n AXCommentViewComponent,\n AXCommentContainerComponent,\n AXCommentItemComponent,\n AXCommentLikeComponent,\n AXMenuOptionsComponent,\n AXCommentReplyTextComponent,\n AXCommentDateComponent,\n AXCommentReplyMoreComponent,\n];\n\nconst MODULES = [AXDecoratorModule, AXWysiwygModule, AXButtonModule, AXTextAreaModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class AXCommentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-comment.mjs","sources":["../../../../packages/components/comment/src/lib/comment-container/comment-container.component.ts","../../../../packages/components/comment/src/lib/comment-item-template.directive.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-date/comment-date.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-like/comment-like.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-like/comment-like.component.html","../../../../packages/components/comment/src/lib/comment-tools/comment-reply-text/comment-reply-text.component.ts","../../../../packages/components/comment/src/lib/comment-item/comment-item.component.ts","../../../../packages/components/comment/src/lib/comment-item/comment-item.component.html","../../../../packages/components/comment/src/lib/comment-tools/comment-menu-options/comment-menu-options.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-reply/comment-reply.component.ts","../../../../packages/components/comment/src/lib/comment-tools/comment-reply-more/comment-reply-more.component.ts","../../../../packages/components/comment/src/lib/comment-view/comment-view.component.ts","../../../../packages/components/comment/src/lib/comment-view/comment-view.component.html","../../../../packages/components/comment/src/lib/comment.module.ts","../../../../packages/components/comment/src/acorex-components-comment.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n DOCUMENT,\n inject,\n PLATFORM_ID,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * A container component for displaying and managing comments.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-container',\n template: `\n <ng-content select=\"ax-header\" />\n <ng-content />\n <ng-content select=\"ax-footer\" />\n `,\n styleUrl: './comment-container.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXCommentContainerComponent }],\n host: {\n '[class.ax-has-header]': '!!projectedHeader()',\n '[class.ax-has-footer]': '!!projectedFooter()',\n },\n})\nexport class AXCommentContainerComponent {\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n protected readonly projectedHeader = contentChild('ax-header');\n protected readonly projectedFooter = contentChild('ax-footer');\n\n /**\n * Scrolls to a specific comment reply by its ID and highlights it temporarily.\n *\n * @param id - The ID of the comment reply to scroll to\n */\n scrollToReply(id: string) {\n if (!isPlatformBrowser(this.platformID)) return;\n\n const key = String(id);\n const el =\n (this.document.querySelector(`ax-comment-item[id=\"${key}\"]`) as HTMLElement | null) ??\n (this.document.querySelector(`ax-comment-item[id=\"comment-${key}\"]`) as HTMLElement | null);\n if (!el) return;\n\n el.scrollIntoView({ behavior: 'smooth', block: 'center' });\n el.classList.add('ax-state-highlight');\n setTimeout(() => el.classList.remove('ax-state-highlight'), 1500);\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { AXCommentItemTemplateContext } from './comment.types';\n\n/**\n * Marks an `ng-template` as a custom comment item renderer.\n * When omitted, `ax-comment-view` uses the built-in layout.\n * Like and reply stay in the item actions row either way.\n *\n * @example\n * ```html\n * <ax-comment-view [datasource]=\"comments\">\n * <ng-template axCommentItem let-item>\n * <ax-avatar [color]=\"item.color\" look=\"twotone\" shape=\"rounded\">\n * <ax-text>{{ item.initials }}</ax-text>\n * </ax-avatar>\n * <ax-title>{{ item.author }}</ax-title>\n * <ax-content>{{ item.content }}</ax-content>\n * </ng-template>\n * </ax-comment-view>\n * ```\n */\n@Directive({\n selector: 'ng-template[axCommentItem]',\n})\nexport class AXCommentItemTemplateDirective {\n constructor(readonly template: TemplateRef<AXCommentItemTemplateContext>) {}\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying date on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-date',\n template: '<ng-content />',\n styleUrl: './comment-date.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXCommentDateComponent }],\n})\nexport class AXCommentDateComponent {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, model, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying and managing likes on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-like',\n templateUrl: './comment-like.component.html',\n styleUrl: './comment-like.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXDecoratorIconComponent, AXDecoratorGenericComponent],\n providers: [{ provide: AXComponent, useExisting: AXCommentLikeComponent }],\n})\nexport class AXCommentLikeComponent {\n like = model.required<boolean>();\n\n protected toggleLike() {\n this.like.update((prev) => !prev);\n }\n}\n","<button\n type=\"button\"\n class=\"ax-comment-like-button\"\n [class.ax-state-liked]=\"like()\"\n [attr.aria-pressed]=\"like()\"\n (click)=\"toggleLike()\"\n>\n <ax-icon [icon]=\"like() ? 'ax-icon ax-icon-solid ax-icon-heart' : 'ax-icon ax-icon-heart'\"></ax-icon>\n <ax-text><ng-content /></ax-text>\n</button>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying the reply action on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-reply-text',\n template: `\n <button type=\"button\" class=\"ax-comment-reply-button\">\n <ax-icon icon=\"ax-icon ax-icon-arrow-turn-left\"></ax-icon>\n <ax-text>{{ '@acorex:comment.reply' | translate | async }}</ax-text>\n </button>\n `,\n styleUrl: './comment-reply-text.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXDecoratorGenericComponent, AXDecoratorIconComponent, AXTranslatorPipe, AsyncPipe],\n providers: [{ provide: AXComponent, useExisting: AXCommentReplyTextComponent }],\n})\nexport class AXCommentReplyTextComponent {}\n","import { AXComponent, AXItemClickEvent, AXStyleColorType } from '@acorex/cdk/common';\nimport { AXAvatarComponent } from '@acorex/components/avatar';\nimport { AXBadgeComponent } from '@acorex/components/badge';\nimport {\n AXButtonItemComponent,\n AXButtonItemListComponent,\n type AXButtonItemListItem,\n} from '@acorex/components/button';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXDropdownButtonComponent } from '@acorex/components/dropdown-button';\nimport { AXImageComponent } from '@acorex/components/image';\nimport type { AXMenuItem } from '@acorex/components/menu';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n input,\n model,\n output,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXCommentDateComponent } from '../comment-tools/comment-date/comment-date.component';\nimport { AXCommentLikeComponent } from '../comment-tools/comment-like/comment-like.component';\nimport { AXCommentReplyTextComponent } from '../comment-tools/comment-reply-text/comment-reply-text.component';\nimport { AXCommentItem, AXCommentItemTemplateContext } from '../comment.types';\n\n/**\n * A component that represents an individual comment item in the comment system.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-item',\n templateUrl: './comment-item.component.html',\n styleUrl: './comment-item.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXTranslatorPipe,\n AsyncPipe,\n AXDecoratorIconComponent,\n AXDecoratorGenericComponent,\n NgTemplateOutlet,\n AXAvatarComponent,\n AXBadgeComponent,\n AXImageComponent,\n AXCommentDateComponent,\n AXCommentLikeComponent,\n AXCommentReplyTextComponent,\n AXDropdownButtonComponent,\n AXButtonItemListComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXCommentItemComponent }],\n host: {\n '[class.ax-comment-item-reply]': 'isReply',\n '[class.ax-comment-item-custom]': '!!itemTemplate()',\n },\n})\nexport class AXCommentItemComponent {\n private readonly parentComment = inject(AXCommentItemComponent, { optional: true, skipSelf: true });\n\n protected readonly isReply = this.parentComment != null;\n\n private readonly projectedAvatar = contentChild(AXAvatarComponent);\n private readonly viewAvatar = viewChild(AXAvatarComponent);\n\n /** Data item used by `ax-comment-view`. When set, the default layout is rendered internally. */\n readonly item = input<AXCommentItem | null>(null);\n\n readonly replyCount = input<number>();\n\n /** Two-way bindable state controlling whether nested replies are visible. */\n readonly repliesExpanded = model(false);\n\n /** Whether replies for this item are currently being loaded. */\n readonly loading = input(false);\n\n /**\n * Custom renderer for the item body. When omitted, the default layout\n * (or projected slots) is used.\n */\n readonly itemTemplate = input<TemplateRef<AXCommentItemTemplateContext> | null>(null);\n\n /** Context passed to `itemTemplate`. */\n readonly itemContext = input<AXCommentItemTemplateContext | null>(null);\n\n readonly likeChange = output<boolean>();\n readonly replyClick = output<Event>();\n readonly actionClick = output<AXMenuItem>();\n\n protected readonly avatarSize = 48;\n\n protected readonly showDefaultDataLayout = computed(() => !!this.item() && !this.itemTemplate());\n protected readonly useProjectedSlots = computed(() => !this.item() && !this.itemTemplate());\n protected readonly itemActions = computed(() => this.item()?.actions ?? []);\n protected readonly showOverflowMenu = computed(\n () => this.showDefaultDataLayout() && this.itemActions().length > 0,\n );\n protected readonly overflowItems = computed(() => this.toButtonItems(this.itemActions()));\n\n constructor() {\n afterNextRender(() => {\n if (this.itemTemplate()) return;\n (this.projectedAvatar() ?? this.viewAvatar())?.size?.set(this.avatarSize);\n });\n }\n\n protected getColor(data: AXCommentItem): AXStyleColorType {\n return data.color ?? 'default';\n }\n\n protected getInitials(data: AXCommentItem): string {\n if (data.initials) return data.initials;\n return (data.author || '')\n .split(/\\s+/)\n .filter(Boolean)\n .map((part) => part[0])\n .join('')\n .slice(0, 2)\n .toUpperCase();\n }\n\n protected handleLike(liked: boolean) {\n this.likeChange.emit(liked);\n }\n\n protected handleReply(event: Event) {\n this.replyClick.emit(event);\n }\n\n protected handleOverflowClick(event: AXItemClickEvent<AXButtonItemComponent>) {\n const action =\n this.findAction(this.itemActions(), event.name) ?? {\n text: event.item?.text ?? event.name ?? '',\n name: event.name,\n data: event.data,\n };\n this.actionClick.emit(action);\n }\n\n private toButtonItems(items: AXMenuItem[]): AXButtonItemListItem[] {\n return items.map((item) => ({\n name: item.name ?? item.text,\n text: item.text,\n icon: item.icon ?? '',\n color: item.color,\n disabled: item.disabled,\n divided: item.break,\n items: item.items?.length ? this.toButtonItems(item.items) : undefined,\n }));\n }\n\n private findAction(items: AXMenuItem[], name?: string): AXMenuItem | undefined {\n if (name == null) return undefined;\n for (const item of items) {\n if ((item.name ?? item.text) === name) return item;\n const nested = item.items?.length ? this.findAction(item.items, name) : undefined;\n if (nested) return nested;\n }\n return undefined;\n }\n\n /**\n * Toggles the collapse state of the comment replies section.\n */\n toggleReplies() {\n this.repliesExpanded.update((v) => !v);\n }\n\n /**\n * Expands the nested replies section.\n */\n showReplies() {\n this.repliesExpanded.set(true);\n }\n\n /**\n * Collapses the nested replies section.\n */\n hideReplies() {\n this.repliesExpanded.set(false);\n }\n}\n","<div class=\"ax-comment-layout\">\n @if (showDefaultDataLayout()) {\n @if (item(); as data) {\n <ax-avatar [color]=\"getColor(data)\" [size]=\"avatarSize\" look=\"twotone\" shape=\"rounded\">\n @if (data.avatar) {\n <ax-image [src]=\"data.avatar\"></ax-image>\n } @else {\n <ax-text>{{ getInitials(data) }}</ax-text>\n }\n </ax-avatar>\n }\n }\n <ng-content select=\"ax-avatar\" />\n\n <div class=\"ax-comment-main\">\n @if (itemTemplate(); as tpl) {\n <div class=\"ax-comment-custom-body\">\n <ng-container [ngTemplateOutlet]=\"tpl\" [ngTemplateOutletContext]=\"itemContext()\" />\n </div>\n } @else if (showDefaultDataLayout()) {\n @if (item(); as data) {\n <div class=\"ax-comment-header\">\n <div class=\"ax-comment-header-meta\">\n <ax-title>{{ data.author }}</ax-title>\n @if (data.isYou) {\n <ax-badge\n class=\"ax-sm ax-pill ax-comment-you-badge\"\n look=\"twotone\"\n color=\"primary\"\n [text]=\"('@acorex:comment.you' | translate | async) ?? 'You'\"\n ></ax-badge>\n }\n @if (data.date) {\n <ax-comment-date>{{ data.date }}</ax-comment-date>\n }\n </div>\n @if (showOverflowMenu()) {\n <ax-dropdown-button\n class=\"ax-sm ax-comment-menu-trigger\"\n mode=\"dropdown\"\n look=\"blank\"\n [iconOnly]=\"true\"\n text=\"More\"\n >\n <ax-prefix>\n <ax-icon icon=\"ax-icon ax-icon-more-horizontal\"></ax-icon>\n </ax-prefix>\n <ax-button-item-list [items]=\"overflowItems()\" (onItemClick)=\"handleOverflowClick($event)\">\n </ax-button-item-list>\n </ax-dropdown-button>\n }\n </div>\n <div class=\"ax-comment-body\">\n <ax-content>\n <div [innerHTML]=\"data.content\"></div>\n </ax-content>\n </div>\n }\n }\n\n <div class=\"ax-comment-default\" [hidden]=\"!useProjectedSlots()\">\n <div class=\"ax-comment-header\">\n <div class=\"ax-comment-header-meta\">\n <ng-content select=\"ax-title\" />\n <ng-content select=\"ax-subtitle\" />\n <ng-content select=\"ax-badge\" />\n <ng-content select=\"ax-comment-date\" />\n </div>\n <ng-content select=\"ax-comment-menu-options\" />\n </div>\n <div class=\"ax-comment-body\">\n <ng-content select=\"ax-content\" />\n </div>\n </div>\n\n <div class=\"ax-comment-actions\">\n @if (item(); as data) {\n <ax-comment-like [like]=\"!!data.liked\" (likeChange)=\"handleLike($event)\">\n {{ data.likes ?? 0 }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"handleReply($event)\"></ax-comment-reply-text>\n }\n <ng-content select=\"ax-comment-like\" />\n <ng-content select=\"ax-comment-reply-text\" />\n @if (replyCount()) {\n <button\n type=\"button\"\n class=\"ax-comment-replies-toggle\"\n [attr.aria-expanded]=\"repliesExpanded()\"\n [attr.aria-busy]=\"loading()\"\n [disabled]=\"loading()\"\n (click)=\"toggleReplies()\"\n >\n <ax-icon\n [icon]=\"\n loading()\n ? 'ax-icon ax-icon-reload'\n : repliesExpanded()\n ? 'ax-icon ax-icon-chevron-up'\n : 'ax-icon ax-icon-chevron-down'\n \"\n [class.ax-comment-loading-icon]=\"loading()\"\n ></ax-icon>\n <span>\n {{ replyCount() }}\n {{ ((replyCount() ?? 0) > 1 ? '@acorex:comment.replies' : '@acorex:comment.reply') | translate | async }}\n </span>\n </button>\n }\n </div>\n\n <div class=\"ax-comment-replies\" [hidden]=\"!(replyCount() && repliesExpanded())\">\n @if (loading()) {\n <div class=\"ax-comment-replies-loading\">\n <ax-icon icon=\"ax-icon ax-icon-reload\" class=\"ax-comment-loading-icon\"></ax-icon>\n </div>\n }\n <ng-content select=\"ax-comment-item\" />\n <ng-content select=\"ax-comment-reply-more\" />\n <ng-content />\n </div>\n </div>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying and managing menu options on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-menu-options',\n template: '<ng-content />',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXMenuOptionsComponent }],\n})\nexport class AXMenuOptionsComponent {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n DOCUMENT,\n inject,\n input,\n output,\n PLATFORM_ID,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXCommentItem } from '../../comment.types';\n\n/**\n * Composer chrome shown while writing a reply. Projects the editor below a\n * compact reply-context bar; hide the bar by leaving `item` empty.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-reply',\n template: `\n @if (item(); as target) {\n <div class=\"ax-comment-reply-banner\">\n <button type=\"button\" class=\"ax-comment-reply-target\" (click)=\"revealTarget()\">\n <ax-icon\n class=\"ax-comment-reply-lead-icon\"\n icon=\"ax-icon ax-icon-arrow-turn-left\"\n aria-hidden=\"true\"\n ></ax-icon>\n <span class=\"ax-comment-reply-copy\">\n <span class=\"ax-comment-reply-label\">\n {{ '@acorex:comment.replying-to' | translate | async }}\n <span class=\"ax-comment-reply-author\">\n @if (target.isYou) {\n {{ '@acorex:comment.you' | translate | async }}\n } @else {\n {{ target.author }}\n }\n </span>\n </span>\n @if (preview(); as excerpt) {\n <span class=\"ax-comment-reply-preview\" [title]=\"excerpt\">{{ excerpt }}</span>\n }\n </span>\n </button>\n <button\n type=\"button\"\n class=\"ax-comment-reply-close\"\n [attr.aria-label]=\"'@acorex:common.general.close' | translate | async\"\n (click)=\"close()\"\n >\n <ax-icon icon=\"ax-icon ax-icon-close\" aria-hidden=\"true\"></ax-icon>\n </button>\n </div>\n }\n <div class=\"ax-comment-reply-composer\">\n <ng-content />\n </div>\n `,\n styleUrl: './comment-reply.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXDecoratorIconComponent, AXTranslatorPipe, AsyncPipe],\n providers: [{ provide: AXComponent, useExisting: AXCommentReplyComponent }],\n host: {\n class: 'ax-comment-reply',\n '[class.ax-comment-reply-open]': '!!item()',\n },\n})\nexport class AXCommentReplyComponent {\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private highlightTimer: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n this.destroyRef.onDestroy(() => {\n if (this.highlightTimer) clearTimeout(this.highlightTimer);\n });\n }\n\n /** Comment currently being replied to. When null, only the projected composer is shown. */\n readonly item = input<AXCommentItem | null>(null);\n\n /** Emitted when the close control on the reply banner is clicked. */\n readonly onClose = output<void>();\n\n /** Emitted when the banner is clicked to jump to the target comment. */\n readonly onTargetClick = output<string>();\n\n protected readonly preview = computed(() => this.toPreview(this.item()?.content));\n\n protected close() {\n this.onClose.emit();\n }\n\n protected revealTarget() {\n const item = this.item();\n if (!item) return;\n const id = String(item.id);\n this.onTargetClick.emit(id);\n this.scrollToComment(id);\n }\n\n private scrollToComment(id: string) {\n if (!isPlatformBrowser(this.platformId)) return;\n const el =\n (this.document.querySelector(`ax-comment-item[id=\"${id}\"]`) as HTMLElement | null) ??\n (this.document.querySelector(`ax-comment-item[id=\"comment-${id}\"]`) as HTMLElement | null);\n if (!el) return;\n\n el.scrollIntoView({ behavior: 'smooth', block: 'center' });\n el.classList.add('ax-state-highlight');\n if (this.highlightTimer) clearTimeout(this.highlightTimer);\n this.highlightTimer = setTimeout(() => {\n el.classList.remove('ax-state-highlight');\n this.highlightTimer = null;\n }, 1500);\n }\n\n private toPreview(content?: string): string {\n return String(content ?? '')\n .replace(/<[^>]+>/g, ' ')\n .replace(/ | /gi, ' ')\n .replace(/&/gi, '&')\n .replace(/</gi, '<')\n .replace(/>/gi, '>')\n .replace(/"/gi, '\"')\n .replace(/'|'/gi, \"'\")\n .replace(/\\s+/g, ' ')\n .trim();\n }\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component for displaying \"show more replies\" action on a comment.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-reply-more',\n template: '<ax-text><ng-content /></ax-text>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXDecoratorGenericComponent],\n providers: [{ provide: AXComponent, useExisting: AXCommentReplyMoreComponent }],\n})\nexport class AXCommentReplyMoreComponent {}\n","import { AXComponent } from '@acorex/cdk/common';\nimport type { AXMenuItem } from '@acorex/components/menu';\nimport { AXSkeletonComponent } from '@acorex/components/skeleton';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n computed,\n contentChild,\n effect,\n input,\n model,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXCommentItemTemplateDirective } from '../comment-item-template.directive';\nimport { AXCommentItemComponent } from '../comment-item/comment-item.component';\nimport {\n AXCommentCallback,\n AXCommentDataSource,\n AXCommentItem,\n AXCommentItemTemplateContext,\n AXCommentActionEvent,\n AXCommentLikeChangeEvent,\n AXCommentRepliesToggleEvent,\n AXCommentReplyEvent,\n} from '../comment.types';\n\n/**\n * Renders a comment thread from a datasource (array or lazy callback).\n * Provide `itemTemplate` or `<ng-template axCommentItem>` to customize item UI;\n * otherwise the built-in layout is used.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-comment-view',\n templateUrl: './comment-view.component.html',\n styleUrl: './comment-view.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, AXCommentItemComponent, AXSkeletonComponent],\n providers: [{ provide: AXComponent, useExisting: AXCommentViewComponent }],\n})\nexport class AXCommentViewComponent {\n /** Comment data — a static array or a lazy-loading function. */\n readonly datasource = model<AXCommentDataSource | null>(null);\n\n /**\n * Custom item template. When omitted, the default comment layout is used.\n * You can also project `<ng-template axCommentItem>`.\n */\n readonly itemTemplate = input<TemplateRef<AXCommentItemTemplateContext>>();\n\n readonly onReply = output<AXCommentReplyEvent>();\n readonly onLikeChange = output<AXCommentLikeChangeEvent>();\n readonly onRepliesToggle = output<AXCommentRepliesToggleEvent>();\n readonly onAction = output<AXCommentActionEvent>();\n\n private readonly projectedItemTemplate = contentChild(AXCommentItemTemplateDirective);\n\n protected readonly items = signal<AXCommentItem[]>([]);\n private readonly loadingIds = signal<Set<string>>(new Set());\n private readonly _isLoading = signal(false);\n readonly isLoading = this._isLoading.asReadonly();\n\n private loadGeneration = 0;\n private syncingFromDatasource = false;\n\n private readonly isLazyDataSource = computed(() => typeof this.datasource() === 'function');\n\n protected readonly hasDatasource = computed(() => this.datasource() != null);\n\n protected readonly resolvedTemplate = computed(\n () => this.itemTemplate() ?? this.projectedItemTemplate()?.template ?? null,\n );\n\n constructor() {\n effect(() => {\n const ds = this.datasource();\n if (this.syncingFromDatasource) return;\n untracked(() => void this.applyDatasource(ds));\n });\n }\n\n /**\n * Reloads root comments from the datasource.\n *\n * @returns Promise that resolves when the reload is complete.\n */\n async reloadData(): Promise<void> {\n await this.applyDatasource(this.datasource());\n }\n\n /**\n * Appends a comment to the current root list.\n *\n * @param item - The comment to append.\n * @returns void\n */\n appendItem(item: AXCommentItem): void {\n this.items.update((list) => [...list, item]);\n }\n\n /**\n * Appends a reply under a loaded comment and expands that thread.\n *\n * @param parentId - The parent comment id.\n * @param item - The reply to append.\n * @returns Promise that resolves when any needed lazy load and the append are complete.\n */\n async appendReply(parentId: string, item: AXCommentItem): Promise<void> {\n const parent = this.findItem(parentId);\n if (!parent) return;\n if (this.canLazyLoad(parent)) {\n await this.loadReplies(parent);\n }\n parent.replies = [...(parent.replies ?? []), item];\n parent.replyCount = parent.replies.length;\n parent.repliesExpanded = true;\n this.refreshItems();\n }\n\n /**\n * Finds a comment by id in the loaded tree.\n *\n * @param id - The comment id.\n * @returns The matching item, or null if it is not loaded.\n */\n findItem(id: string): AXCommentItem | null {\n return this.findInTree(this.items(), id);\n }\n\n /**\n * Removes a comment from the loaded tree. Nested replies are removed with it.\n *\n * @param id - The comment id.\n * @returns True when the comment was found and removed.\n */\n removeItem(id: string): boolean {\n const key = String(id);\n const roots = this.items();\n if (roots.some((item) => this.getId(item) === key)) {\n this.items.set(roots.filter((item) => this.getId(item) !== key));\n this.refreshItems();\n return true;\n }\n const parent = this.findParent(roots, key);\n if (!parent?.replies?.length) return false;\n const before = parent.replies.length;\n parent.replies = parent.replies.filter((child) => this.getId(child) !== key);\n const removed = before - parent.replies.length;\n if (!removed) return false;\n parent.replyCount = Math.max(0, (parent.replyCount ?? before) - removed);\n this.refreshItems();\n return true;\n }\n\n /**\n * Patches a loaded comment in place.\n *\n * @param id - The comment id.\n * @param patch - Fields to merge onto the existing item. The original id is kept.\n * @returns The updated item, or null if it is not loaded.\n */\n updateItem(id: string, patch: Partial<AXCommentItem>): AXCommentItem | null {\n const key = String(id);\n let updated: AXCommentItem | null = null;\n\n const apply = (items: AXCommentItem[]): AXCommentItem[] | null => {\n const index = items.findIndex((item) => this.getId(item) === key);\n if (index >= 0) {\n const current = items[index];\n if (!current) return null;\n const nextItem: AXCommentItem = { ...current, ...patch, id: current.id };\n updated = nextItem;\n const next = items.slice();\n next[index] = nextItem;\n return next;\n }\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (!item.replies?.length) continue;\n const replies = apply(item.replies);\n if (!replies) continue;\n const next = items.slice();\n next[i] = { ...item, replies };\n return next;\n }\n return null;\n };\n\n const next = apply(this.items());\n if (!next || !updated) return null;\n this.items.set(next);\n this.refreshItems();\n return updated;\n }\n\n /**\n * Expands or collapses replies for a comment, loading them when needed.\n *\n * @param id - The comment id.\n * @param expanded - Whether replies should be visible.\n * @returns Promise that resolves when expansion and any lazy load are complete.\n */\n async setExpanded(id: string, expanded: boolean): Promise<void> {\n const item = this.findItem(id);\n if (!item) return;\n await this.setItemExpanded(item, expanded);\n }\n\n protected getId(item: AXCommentItem): string {\n return String(item.id);\n }\n\n protected getReplies(item: AXCommentItem): AXCommentItem[] {\n return item.replies ?? [];\n }\n\n protected getReplyCount(item: AXCommentItem): number {\n return item.replyCount ?? item.replies?.length ?? 0;\n }\n\n protected isExpanded(item: AXCommentItem): boolean {\n return !!item.repliesExpanded;\n }\n\n protected isItemLoading(item: AXCommentItem): boolean {\n return this.loadingIds().has(this.getId(item));\n }\n\n protected getTemplateContext(item: AXCommentItem, level: number): AXCommentItemTemplateContext {\n return {\n $implicit: item,\n item,\n level,\n repliesExpanded: this.isExpanded(item),\n replyCount: this.getReplyCount(item),\n loading: this.isItemLoading(item),\n liked: !!item.liked,\n likes: item.likes ?? 0,\n toggleReplies: () => void this.setItemExpanded(item, !this.isExpanded(item)),\n toggleLike: () => this.toggleLike(item),\n reply: (event?: Event) => this.replyTo(item, event),\n };\n }\n\n protected async onRepliesExpandedChange(item: AXCommentItem, expanded: boolean): Promise<void> {\n await this.setItemExpanded(item, expanded);\n }\n\n protected toggleLike(item: AXCommentItem, liked = !item.liked): void {\n const next = liked;\n const current = !!item.liked;\n if (next === current) {\n this.refreshItems();\n return;\n }\n item.liked = next;\n item.likes = Math.max(0, (item.likes ?? 0) + (next ? 1 : -1));\n this.refreshItems();\n this.onLikeChange.emit({\n component: this,\n item,\n liked: next,\n likes: item.likes ?? 0,\n isUserInteraction: true,\n });\n }\n\n protected replyTo(item: AXCommentItem, event?: Event): void {\n this.onReply.emit({\n component: this,\n item,\n nativeEvent: event,\n isUserInteraction: true,\n });\n }\n\n protected emitAction(item: AXCommentItem, action: AXMenuItem): void {\n this.onAction.emit({\n component: this,\n item,\n action,\n isUserInteraction: true,\n });\n }\n\n private async applyDatasource(ds: AXCommentDataSource | null): Promise<void> {\n if (ds == null) {\n this.items.set([]);\n this._isLoading.set(false);\n return;\n }\n\n if (Array.isArray(ds)) {\n this.items.set(ds);\n return;\n }\n\n await this.loadRootItems(ds);\n }\n\n private async loadRootItems(loadFn: AXCommentCallback): Promise<void> {\n const generation = ++this.loadGeneration;\n this._isLoading.set(true);\n try {\n const result = loadFn();\n const roots = result instanceof Promise ? await result : result;\n if (generation !== this.loadGeneration) return;\n this.items.set(roots);\n await this.hydrateExpanded(roots);\n } catch {\n if (generation !== this.loadGeneration) return;\n this.items.set([]);\n } finally {\n if (generation === this.loadGeneration) {\n this._isLoading.set(false);\n }\n }\n }\n\n private async hydrateExpanded(items: AXCommentItem[]): Promise<void> {\n for (const item of items) {\n if (item.repliesExpanded && this.canLazyLoad(item)) {\n await this.loadReplies(item);\n }\n const replies = this.getReplies(item);\n if (replies.length) {\n await this.hydrateExpanded(replies);\n }\n }\n }\n\n private canLazyLoad(item: AXCommentItem): boolean {\n return this.isLazyDataSource() && this.getReplyCount(item) > 0 && this.getReplies(item).length === 0;\n }\n\n private async setItemExpanded(item: AXCommentItem, expanded: boolean): Promise<void> {\n item.repliesExpanded = expanded;\n if (expanded && this.canLazyLoad(item)) {\n await this.loadReplies(item);\n }\n this.refreshItems();\n this.onRepliesToggle.emit({\n component: this,\n item,\n expanded,\n isUserInteraction: true,\n });\n }\n\n private async loadReplies(item: AXCommentItem): Promise<void> {\n const ds = this.datasource();\n if (typeof ds !== 'function') return;\n\n const id = this.getId(item);\n if (this.loadingIds().has(id) || this.getReplies(item).length > 0) return;\n\n this.loadingIds.update((set) => new Set(set).add(id));\n this.refreshItems();\n\n try {\n const result = ds(id);\n const replies = result instanceof Promise ? await result : result;\n item.replies = replies;\n item.replyCount = replies.length;\n } catch {\n item.replyCount = 0;\n } finally {\n this.loadingIds.update((set) => {\n const next = new Set(set);\n next.delete(id);\n return next;\n });\n this.refreshItems();\n }\n }\n\n private refreshItems(): void {\n const current = this.items();\n this.items.set([...current]);\n\n const ds = this.datasource();\n if (Array.isArray(ds)) {\n this.syncingFromDatasource = true;\n this.datasource.set([...current]);\n queueMicrotask(() => {\n this.syncingFromDatasource = false;\n });\n }\n }\n\n private findInTree(items: AXCommentItem[], id: string): AXCommentItem | null {\n for (const item of items) {\n if (this.getId(item) === id) return item;\n const found = this.findInTree(this.getReplies(item), id);\n if (found) return found;\n }\n return null;\n }\n\n private findParent(items: AXCommentItem[], id: string): AXCommentItem | null {\n for (const item of items) {\n const replies = this.getReplies(item);\n if (replies.some((child) => this.getId(child) === id)) return item;\n const nested = this.findParent(replies, id);\n if (nested) return nested;\n }\n return null;\n }\n}\n","@if (hasDatasource()) {\n @if (isLoading()) {\n <div class=\"ax-comment-view-skeleton\">\n @for (row of [1, 2, 3]; track row) {\n <div class=\"ax-comment-skeleton-row\">\n <ax-skeleton class=\"ax-comment-skeleton-avatar\"></ax-skeleton>\n <div class=\"ax-comment-skeleton-main\">\n <ax-skeleton class=\"ax-comment-skeleton-title\"></ax-skeleton>\n <ax-skeleton class=\"ax-comment-skeleton-body\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"itemsTpl\"\n [ngTemplateOutletContext]=\"{ items: items(), level: 0 }\"\n ></ng-container>\n }\n} @else {\n <ng-content select=\"ax-comment-item\" />\n}\n\n<ng-template #itemsTpl let-items=\"items\" let-level=\"level\">\n @for (item of items; track getId(item)) {\n <ax-comment-item\n [attr.id]=\"'comment-' + getId(item)\"\n [item]=\"item\"\n [replyCount]=\"getReplyCount(item)\"\n [repliesExpanded]=\"isExpanded(item)\"\n [loading]=\"isItemLoading(item)\"\n [itemTemplate]=\"resolvedTemplate()\"\n [itemContext]=\"resolvedTemplate() ? getTemplateContext(item, level) : null\"\n (repliesExpandedChange)=\"onRepliesExpandedChange(item, $event)\"\n (likeChange)=\"toggleLike(item, $event)\"\n (replyClick)=\"replyTo(item, $event)\"\n (actionClick)=\"emitAction(item, $event)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"itemsTpl\"\n [ngTemplateOutletContext]=\"{ items: getReplies(item), level: level + 1 }\"\n ></ng-container>\n </ax-comment-item>\n }\n</ng-template>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTextAreaModule } from '@acorex/components/text-area';\nimport { AXWysiwygModule } from '@acorex/components/wysiwyg';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { NgModule } from '@angular/core';\nimport { AXCommentContainerComponent } from './comment-container/comment-container.component';\nimport { AXCommentItemTemplateDirective } from './comment-item-template.directive';\nimport { AXCommentItemComponent } from './comment-item/comment-item.component';\nimport { AXCommentDateComponent } from './comment-tools/comment-date/comment-date.component';\nimport { AXCommentLikeComponent } from './comment-tools/comment-like/comment-like.component';\nimport { AXMenuOptionsComponent } from './comment-tools/comment-menu-options/comment-menu-options.component';\nimport { AXCommentReplyComponent } from './comment-tools/comment-reply/comment-reply.component';\nimport { AXCommentReplyMoreComponent } from './comment-tools/comment-reply-more/comment-reply-more.component';\nimport { AXCommentReplyTextComponent } from './comment-tools/comment-reply-text/comment-reply-text.component';\nimport { AXCommentViewComponent } from './comment-view/comment-view.component';\n\nconst COMPONENTS = [\n AXCommentViewComponent,\n AXCommentContainerComponent,\n AXCommentItemComponent,\n AXCommentLikeComponent,\n AXMenuOptionsComponent,\n AXCommentReplyComponent,\n AXCommentReplyTextComponent,\n AXCommentDateComponent,\n AXCommentReplyMoreComponent,\n AXCommentItemTemplateDirective,\n];\n\nconst MODULES = [\n AXDecoratorModule,\n AXWysiwygModule,\n AXBadgeModule,\n AXButtonModule,\n AXTextAreaModule,\n AXTranslationModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class AXCommentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { MXBaseComponent, AXComponent, AXClosableComponent } from '@acorex/cdk/c
|
|
|
2
2
|
import * as i1 from '@acorex/cdk/drawer';
|
|
3
3
|
import { AXDrawerContainerDirective, AXDrawerItemDirective } from '@acorex/cdk/drawer';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { afterNextRender, ViewEncapsulation, Component, input, output, inject, effect, NgModule } from '@angular/core';
|
|
5
|
+
import { afterNextRender, ViewEncapsulation, Component, input, model, output, inject, effect, untracked, NgModule } from '@angular/core';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* A container component that organizes and positions drawer components.
|
|
@@ -47,7 +47,7 @@ class AXDrawerComponent extends MXBaseComponent {
|
|
|
47
47
|
...(ngDevMode ? [{ debugName: "closeOnBackdropClick" }] : /* istanbul ignore next */ []));
|
|
48
48
|
this.backdropClass = input('bg-black/45', /* @ts-ignore */
|
|
49
49
|
...(ngDevMode ? [{ debugName: "backdropClass" }] : /* istanbul ignore next */ []));
|
|
50
|
-
this.collapsed =
|
|
50
|
+
this.collapsed = model(true, /* @ts-ignore */
|
|
51
51
|
...(ngDevMode ? [{ debugName: "collapsed" }] : /* istanbul ignore next */ []));
|
|
52
52
|
this.singleOpenMode = input(true, /* @ts-ignore */
|
|
53
53
|
...(ngDevMode ? [{ debugName: "singleOpenMode" }] : /* istanbul ignore next */ []));
|
|
@@ -65,6 +65,15 @@ class AXDrawerComponent extends MXBaseComponent {
|
|
|
65
65
|
this.drawerItem.singleOpenMode.set(this.singleOpenMode());
|
|
66
66
|
}, /* @ts-ignore */
|
|
67
67
|
...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
68
|
+
/** Keep parent `[(collapsed)]` in sync when `open()` / `close()` / `toggle()` run. */
|
|
69
|
+
this.#syncCollapsedFromDirective = effect(() => {
|
|
70
|
+
const fromDirective = this.drawerItem.collapsed();
|
|
71
|
+
const fromModel = this.collapsed();
|
|
72
|
+
if (fromDirective !== fromModel) {
|
|
73
|
+
untracked(() => this.collapsed.set(fromDirective));
|
|
74
|
+
}
|
|
75
|
+
}, /* @ts-ignore */
|
|
76
|
+
...(ngDevMode ? [{ debugName: "#syncCollapsedFromDirective" }] : /* istanbul ignore next */ []));
|
|
68
77
|
this.#init = afterNextRender(() => {
|
|
69
78
|
this.drawerItem.onBackdropClick.subscribe((event) => {
|
|
70
79
|
this.onBackdropClick.emit({ nativeEvent: event, component: this });
|
|
@@ -75,6 +84,8 @@ class AXDrawerComponent extends MXBaseComponent {
|
|
|
75
84
|
});
|
|
76
85
|
}
|
|
77
86
|
#eff;
|
|
87
|
+
/** Keep parent `[(collapsed)]` in sync when `open()` / `close()` / `toggle()` run. */
|
|
88
|
+
#syncCollapsedFromDirective;
|
|
78
89
|
#init;
|
|
79
90
|
/**
|
|
80
91
|
* Toggles the drawer state between open and closed.
|
|
@@ -101,7 +112,7 @@ class AXDrawerComponent extends MXBaseComponent {
|
|
|
101
112
|
this.drawerItem.show();
|
|
102
113
|
}
|
|
103
114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDrawerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AXDrawerComponent, isStandalone: true, selector: "ax-drawer", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, singleOpenMode: { classPropertyName: "singleOpenMode", publicName: "singleOpenMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBackdropClick: "onBackdropClick", collapsedStateChanged: "collapsedStateChanged" }, providers: [
|
|
115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AXDrawerComponent, isStandalone: true, selector: "ax-drawer", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, singleOpenMode: { classPropertyName: "singleOpenMode", publicName: "singleOpenMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange", onBackdropClick: "onBackdropClick", collapsedStateChanged: "collapsedStateChanged" }, providers: [
|
|
105
116
|
{ provide: AXComponent, useExisting: AXDrawerComponent },
|
|
106
117
|
{ provide: AXClosableComponent, useExisting: AXDrawerComponent },
|
|
107
118
|
], usesInheritance: true, hostDirectives: [{ directive: i1.AXDrawerItemDirective }], ngImport: i0, template: `
|
|
@@ -118,7 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
118
129
|
{ provide: AXComponent, useExisting: AXDrawerComponent },
|
|
119
130
|
{ provide: AXClosableComponent, useExisting: AXDrawerComponent },
|
|
120
131
|
], hostDirectives: [AXDrawerItemDirective], styles: ["@layer components{ax-drawer{--ax-comp-drawer-shadow-rest: 0 0 #0000;--ax-comp-drawer-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-drawer-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-drawer-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-drawer-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-drawer-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-drawer-filter-rest: var(--ax-sys-filter-surface);--ax-comp-drawer-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-drawer-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);box-shadow:var(--ax-comp-drawer-contrast-inner-border-rest),var(--ax-comp-drawer-inner-border-rest),var(--ax-comp-drawer-highlight-rest),var(--ax-comp-drawer-shadow-rest);background-image:linear-gradient(var(--ax-comp-drawer-contrast-surface-overlay-rest),var(--ax-comp-drawer-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-drawer-surface-overlay-rest),var(--ax-comp-drawer-surface-overlay-rest)),var(--ax-comp-drawer-background-image-rest);filter:var(--ax-comp-drawer-filter-rest);backdrop-filter:var(--ax-comp-drawer-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-drawer-backdrop-filter-rest)}ax-drawer>ax-content{height:100%;width:100%;flex:1}:is(.ax-appearance-depth,.ax-appearance-translucent) ax-drawer{--ax-comp-drawer-shadow-rest: var(--ax-sys-effect-modal)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
121
|
-
}], propDecorators: { location: [{ type: i0.Input, args: [{ isSignal: true, alias: "location", required: false }] }], showBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBackdrop", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], transition: [{ type: i0.Input, args: [{ isSignal: true, alias: "transition", required: false }] }], closeOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdropClick", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }], singleOpenMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "singleOpenMode", required: false }] }], onBackdropClick: [{ type: i0.Output, args: ["onBackdropClick"] }], collapsedStateChanged: [{ type: i0.Output, args: ["collapsedStateChanged"] }] } });
|
|
132
|
+
}], propDecorators: { location: [{ type: i0.Input, args: [{ isSignal: true, alias: "location", required: false }] }], showBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBackdrop", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], transition: [{ type: i0.Input, args: [{ isSignal: true, alias: "transition", required: false }] }], closeOnBackdropClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdropClick", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }, { type: i0.Output, args: ["collapsedChange"] }], singleOpenMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "singleOpenMode", required: false }] }], onBackdropClick: [{ type: i0.Output, args: ["onBackdropClick"] }], collapsedStateChanged: [{ type: i0.Output, args: ["collapsedStateChanged"] }] } });
|
|
122
133
|
|
|
123
134
|
const COMPONENT = [AXDrawerComponent, AXDrawerContainerComponent];
|
|
124
135
|
class AXDrawerModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-drawer.mjs","sources":["../../../../packages/components/drawer/src/lib/drawer-container/drawer-container.component.ts","../../../../packages/components/drawer/src/lib/drawer-item/drawer.component.ts","../../../../packages/components/drawer/src/lib/drawer.module.ts","../../../../packages/components/drawer/src/acorex-components-drawer.ts"],"sourcesContent":["import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDrawerContainerDirective } from '@acorex/cdk/drawer';\nimport { afterNextRender, Component, ViewEncapsulation } from '@angular/core';\nimport { AXDrawerComponent } from '../drawer-item/drawer.component';\n\n/**\n * A container component that organizes and positions drawer components.\n * @category component\n */\n@Component({\n selector: 'ax-drawer-container',\n template: `\n <ng-content select=\"ax-drawer\"> </ng-content>\n <ng-content select=\"ax-content\"> </ng-content>\n `,\n styleUrl: './drawer-container.component.css',\n\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXDrawerContainerComponent }],\n hostDirectives: [AXDrawerContainerDirective],\n})\nexport class AXDrawerContainerComponent extends MXBaseComponent {\n #init = afterNextRender(() => {\n const host = this.getHostElement();\n Array.from(host.querySelectorAll(`ax-drawer`)).map((c) => c['__axContext__'] as AXDrawerComponent);\n });\n}\n","import { AXClickEvent, AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDrawerItemDirective, AXDrawerLocation, AXDrawerMode } from '@acorex/cdk/drawer';\nimport { afterNextRender, Component, effect, inject, input, output, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component that represents a drawer with header and content sections.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-drawer',\n template: `\n <ng-content select=\"ax-header\"></ng-content>\n <ng-content select=\"ax-content\"></ng-content>\n `,\n styleUrl: './drawer.component.css',\n\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXDrawerComponent },\n { provide: AXClosableComponent, useExisting: AXDrawerComponent },\n ],\n hostDirectives: [AXDrawerItemDirective],\n})\nexport class AXDrawerComponent extends MXBaseComponent {\n readonly location = input<AXDrawerLocation>('start');\n readonly showBackdrop = input(true);\n readonly mode = input<AXDrawerMode>('overlay');\n readonly transition = input<number>(100);\n readonly closeOnBackdropClick = input(true);\n readonly backdropClass = input('bg-black/45');\n readonly collapsed = input(true);\n readonly singleOpenMode = input(true);\n onBackdropClick = output<AXClickEvent>();\n collapsedStateChanged = output<boolean>();\n private drawerItem = inject(AXDrawerItemDirective);\n\n #eff = effect(() => {\n this.drawerItem.mode.set(this.mode());\n this.drawerItem.transition.set(this.transition());\n this.drawerItem.backdropClass.set(this.backdropClass());\n this.drawerItem.closeOnBackdropClick.set(this.closeOnBackdropClick());\n this.drawerItem.location.set(this.location());\n this.drawerItem.backDrop.set(this.showBackdrop());\n this.drawerItem.collapsed.set(this.collapsed());\n this.drawerItem.singleOpenMode.set(this.singleOpenMode());\n });\n\n #init = afterNextRender(() => {\n this.drawerItem.onBackdropClick.subscribe((event) => {\n this.onBackdropClick.emit({ nativeEvent: event, component: this });\n });\n this.drawerItem.collapseStateChanged.subscribe((event) => {\n this.collapsedStateChanged.emit(event);\n });\n });\n\n /**\n * Toggles the drawer state between open and closed.\n *\n * @returns void - No return value. The drawer state is toggled.\n */\n toggle() {\n this.drawerItem.toggle();\n }\n\n /**\n * Closes the drawer.\n *\n * @returns void - No return value. The drawer is collapsed.\n */\n close() {\n this.drawerItem.hide();\n }\n\n /**\n * Opens the drawer.\n *\n * @returns void - No return value. The drawer is expanded.\n */\n open() {\n this.drawerItem.show();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXDrawerContainerComponent } from './drawer-container/drawer-container.component';\nimport { AXDrawerComponent } from './drawer-item/drawer.component';\n\nconst COMPONENT = [AXDrawerComponent, AXDrawerContainerComponent];\n\n@NgModule({\n imports: [...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDrawerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-drawer.mjs","sources":["../../../../packages/components/drawer/src/lib/drawer-container/drawer-container.component.ts","../../../../packages/components/drawer/src/lib/drawer-item/drawer.component.ts","../../../../packages/components/drawer/src/lib/drawer.module.ts","../../../../packages/components/drawer/src/acorex-components-drawer.ts"],"sourcesContent":["import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDrawerContainerDirective } from '@acorex/cdk/drawer';\nimport { afterNextRender, Component, ViewEncapsulation } from '@angular/core';\nimport { AXDrawerComponent } from '../drawer-item/drawer.component';\n\n/**\n * A container component that organizes and positions drawer components.\n * @category component\n */\n@Component({\n selector: 'ax-drawer-container',\n template: `\n <ng-content select=\"ax-drawer\"> </ng-content>\n <ng-content select=\"ax-content\"> </ng-content>\n `,\n styleUrl: './drawer-container.component.css',\n\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXDrawerContainerComponent }],\n hostDirectives: [AXDrawerContainerDirective],\n})\nexport class AXDrawerContainerComponent extends MXBaseComponent {\n #init = afterNextRender(() => {\n const host = this.getHostElement();\n Array.from(host.querySelectorAll(`ax-drawer`)).map((c) => c['__axContext__'] as AXDrawerComponent);\n });\n}\n","import { AXClickEvent, AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDrawerItemDirective, AXDrawerLocation, AXDrawerMode } from '@acorex/cdk/drawer';\nimport {\n afterNextRender,\n Component,\n effect,\n inject,\n input,\n model,\n output,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * A component that represents a drawer with header and content sections.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-drawer',\n template: `\n <ng-content select=\"ax-header\"></ng-content>\n <ng-content select=\"ax-content\"></ng-content>\n `,\n styleUrl: './drawer.component.css',\n\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXDrawerComponent },\n { provide: AXClosableComponent, useExisting: AXDrawerComponent },\n ],\n hostDirectives: [AXDrawerItemDirective],\n})\nexport class AXDrawerComponent extends MXBaseComponent {\n readonly location = input<AXDrawerLocation>('start');\n readonly showBackdrop = input(true);\n readonly mode = input<AXDrawerMode>('overlay');\n readonly transition = input<number>(100);\n readonly closeOnBackdropClick = input(true);\n readonly backdropClass = input('bg-black/45');\n readonly collapsed = model(true);\n readonly singleOpenMode = input(true);\n onBackdropClick = output<AXClickEvent>();\n collapsedStateChanged = output<boolean>();\n private drawerItem = inject(AXDrawerItemDirective);\n\n #eff = effect(() => {\n this.drawerItem.mode.set(this.mode());\n this.drawerItem.transition.set(this.transition());\n this.drawerItem.backdropClass.set(this.backdropClass());\n this.drawerItem.closeOnBackdropClick.set(this.closeOnBackdropClick());\n this.drawerItem.location.set(this.location());\n this.drawerItem.backDrop.set(this.showBackdrop());\n this.drawerItem.collapsed.set(this.collapsed());\n this.drawerItem.singleOpenMode.set(this.singleOpenMode());\n });\n\n /** Keep parent `[(collapsed)]` in sync when `open()` / `close()` / `toggle()` run. */\n #syncCollapsedFromDirective = effect(() => {\n const fromDirective = this.drawerItem.collapsed();\n const fromModel = this.collapsed();\n if (fromDirective !== fromModel) {\n untracked(() => this.collapsed.set(fromDirective));\n }\n });\n\n #init = afterNextRender(() => {\n this.drawerItem.onBackdropClick.subscribe((event) => {\n this.onBackdropClick.emit({ nativeEvent: event, component: this });\n });\n this.drawerItem.collapseStateChanged.subscribe((event) => {\n this.collapsedStateChanged.emit(event);\n });\n });\n\n /**\n * Toggles the drawer state between open and closed.\n *\n * @returns void - No return value. The drawer state is toggled.\n */\n toggle() {\n this.drawerItem.toggle();\n }\n\n /**\n * Closes the drawer.\n *\n * @returns void - No return value. The drawer is collapsed.\n */\n close() {\n this.drawerItem.hide();\n }\n\n /**\n * Opens the drawer.\n *\n * @returns void - No return value. The drawer is expanded.\n */\n open() {\n this.drawerItem.show();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXDrawerContainerComponent } from './drawer-container/drawer-container.component';\nimport { AXDrawerComponent } from './drawer-item/drawer.component';\n\nconst COMPONENT = [AXDrawerComponent, AXDrawerContainerComponent];\n\n@NgModule({\n imports: [...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDrawerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|