@rtsee/ngx 0.0.88 → 0.0.89

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Input, Component, ViewChild, Directive, DOCUMENT, HostListener, Inject, EventEmitter, Output, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
+ import { Injectable, Input, Component, ViewChild, Directive, DOCUMENT, HostListener, Inject, EventEmitter, Output, output, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
3
3
  import * as i2$1 from '@angular/common';
4
4
  import { NgClass, NgIf, NgForOf, SlicePipe, NgStyle, NgOptimizedImage, CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/forms';
@@ -52,6 +52,9 @@ import { RTSeeRoutesList } from '@rtsee/factory';
52
52
  import { Avatar } from 'primeng/avatar';
53
53
  import { Image } from 'primeng/image';
54
54
  import { Tooltip } from 'primeng/tooltip';
55
+ import { PanelMenu } from 'primeng/panelmenu';
56
+ import { RecursiveSelect } from '@rtsee/utilities-ui';
57
+ import { Menu } from 'primeng/menu';
55
58
  import { Password } from 'primeng/password';
56
59
  import { Checkbox } from 'primeng/checkbox';
57
60
  import { AutosizeModule } from 'ngx-autosize';
@@ -1586,6 +1589,7 @@ class JoinCallComponent {
1586
1589
  this.messageService = messageService;
1587
1590
  this.recentlyCopied = false;
1588
1591
  this.window = window;
1592
+ this.RTSeeTextLabelKeys = RTSeeTextLabelKeys;
1589
1593
  }
1590
1594
  copyClicked() {
1591
1595
  this.messageService.add({
@@ -1599,7 +1603,7 @@ class JoinCallComponent {
1599
1603
  }, 2000);
1600
1604
  }
1601
1605
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: JoinCallComponent, deps: [{ token: i1$2.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
1602
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: JoinCallComponent, isStandalone: true, selector: "rtsee-join-call", inputs: { presentation: "presentation", room: "room" }, providers: [MessageService], ngImport: i0, template: "<div class=\"rtsee-join-call\">\n <div class=\"rtsee-join-call-button\">\n <p-button label=\"Start A Call\"\n (click)=\"presentation.emitJoinRoomCallEvent()\"\n ></p-button>\n </div>\n <div class=\"rtsee-share-call-link\">\n <div class=\"rtsee-share-call-explain-section\">\n <div class=\"rtsee-share-call-explain-section-icon\">\n <span class=\"pi pi-link rtsee-link-icon\"></span>\n </div>\n <div class=\"rtsee-share-call-explain-section-text\">\n <span>Anyone can join your storytelling session using this link.</span>\n </div>\n </div>\n <div class=\"rtsee-share-call-link-section\">\n <p-toast position=\"bottom-center\" />\n <p-button [icon]=\"recentlyCopied ? 'pi pi-check' : 'pi pi-copy'\"\n severity=\"secondary\"\n class=\"rtsee-share-call-link-copy-btn\"\n [cdkCopyToClipboard]=\"window.location.origin + '?room_id=' + room.id\"\n (cdkCopyToClipboardCopied)=\"copyClicked()\"\n ></p-button>\n <p-message severity=\"info\"\n class=\"rtsee-share-call-link-text\"\n >{{ window.location.origin + '?room_id=' + room.id }}</p-message>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "component", type: Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
1606
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: JoinCallComponent, isStandalone: true, selector: "rtsee-join-call", inputs: { presentation: "presentation", room: "room" }, providers: [MessageService], ngImport: i0, template: "<div class=\"rtsee-join-call\">\n <div class=\"rtsee-join-call-button\">\n <p-button [label]=\"presentation.labels[RTSeeTextLabelKeys.START_A_CALL_BUTTON]\"\n (click)=\"presentation.emitJoinRoomCallEvent()\"\n ></p-button>\n </div>\n <div class=\"rtsee-share-call-link\">\n <div class=\"rtsee-share-call-explain-section\">\n <div class=\"rtsee-share-call-explain-section-icon\">\n <span class=\"pi pi-link rtsee-link-icon\"></span>\n </div>\n <div class=\"rtsee-share-call-explain-section-text\">\n <span>Anyone can join your storytelling session using this link.</span>\n </div>\n </div>\n <div class=\"rtsee-share-call-link-section\">\n <p-toast position=\"bottom-center\" />\n <p-button [icon]=\"recentlyCopied ? 'pi pi-check' : 'pi pi-copy'\"\n severity=\"secondary\"\n class=\"rtsee-share-call-link-copy-btn\"\n [cdkCopyToClipboard]=\"window.location.origin + '?room_id=' + room.id\"\n (cdkCopyToClipboardCopied)=\"copyClicked()\"\n ></p-button>\n <p-message severity=\"info\"\n class=\"rtsee-share-call-link-text\"\n >{{ window.location.origin + '?room_id=' + room.id }}</p-message>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "component", type: Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
1603
1607
  }
1604
1608
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: JoinCallComponent, decorators: [{
1605
1609
  type: Component,
@@ -1608,7 +1612,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1608
1612
  CdkCopyToClipboard,
1609
1613
  Message,
1610
1614
  Toast
1611
- ], providers: [MessageService], template: "<div class=\"rtsee-join-call\">\n <div class=\"rtsee-join-call-button\">\n <p-button label=\"Start A Call\"\n (click)=\"presentation.emitJoinRoomCallEvent()\"\n ></p-button>\n </div>\n <div class=\"rtsee-share-call-link\">\n <div class=\"rtsee-share-call-explain-section\">\n <div class=\"rtsee-share-call-explain-section-icon\">\n <span class=\"pi pi-link rtsee-link-icon\"></span>\n </div>\n <div class=\"rtsee-share-call-explain-section-text\">\n <span>Anyone can join your storytelling session using this link.</span>\n </div>\n </div>\n <div class=\"rtsee-share-call-link-section\">\n <p-toast position=\"bottom-center\" />\n <p-button [icon]=\"recentlyCopied ? 'pi pi-check' : 'pi pi-copy'\"\n severity=\"secondary\"\n class=\"rtsee-share-call-link-copy-btn\"\n [cdkCopyToClipboard]=\"window.location.origin + '?room_id=' + room.id\"\n (cdkCopyToClipboardCopied)=\"copyClicked()\"\n ></p-button>\n <p-message severity=\"info\"\n class=\"rtsee-share-call-link-text\"\n >{{ window.location.origin + '?room_id=' + room.id }}</p-message>\n </div>\n </div>\n</div>\n" }]
1615
+ ], providers: [MessageService], template: "<div class=\"rtsee-join-call\">\n <div class=\"rtsee-join-call-button\">\n <p-button [label]=\"presentation.labels[RTSeeTextLabelKeys.START_A_CALL_BUTTON]\"\n (click)=\"presentation.emitJoinRoomCallEvent()\"\n ></p-button>\n </div>\n <div class=\"rtsee-share-call-link\">\n <div class=\"rtsee-share-call-explain-section\">\n <div class=\"rtsee-share-call-explain-section-icon\">\n <span class=\"pi pi-link rtsee-link-icon\"></span>\n </div>\n <div class=\"rtsee-share-call-explain-section-text\">\n <span>Anyone can join your storytelling session using this link.</span>\n </div>\n </div>\n <div class=\"rtsee-share-call-link-section\">\n <p-toast position=\"bottom-center\" />\n <p-button [icon]=\"recentlyCopied ? 'pi pi-check' : 'pi pi-copy'\"\n severity=\"secondary\"\n class=\"rtsee-share-call-link-copy-btn\"\n [cdkCopyToClipboard]=\"window.location.origin + '?room_id=' + room.id\"\n (cdkCopyToClipboardCopied)=\"copyClicked()\"\n ></p-button>\n <p-message severity=\"info\"\n class=\"rtsee-share-call-link-text\"\n >{{ window.location.origin + '?room_id=' + room.id }}</p-message>\n </div>\n </div>\n</div>\n" }]
1612
1616
  }], ctorParameters: () => [{ type: i1$2.MessageService }], propDecorators: { presentation: [{
1613
1617
  type: Input
1614
1618
  }], room: [{
@@ -1620,7 +1624,7 @@ class PresentationHeaderComponent {
1620
1624
  this.RTSeeTextLabelKeys = RTSeeTextLabelKeys;
1621
1625
  }
1622
1626
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PresentationHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1623
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: PresentationHeaderComponent, isStandalone: true, selector: "rtsee-presentation-header", inputs: { presentation: "presentation" }, ngImport: i0, template: "<div class=\"rtsee-presentation-header\"\n [ngClass]=\"{\n 'rtsee-presentation-header-convertable': presentation.activeStory,\n 'rtsee-presentation-header-visible': presentation.activeStory?.headerVisible\n }\"\n>\n\n @if (presentation.activeRoom && !presentation.activeStory) {\n <div class=\"rtsee-presentation-room-block\">\n <rtsee-join-call [room]=\"presentation.activeRoom\"\n [presentation]=\"presentation\"\n ></rtsee-join-call>\n </div>\n }\n\n @if (presentation.activeStory) {\n <div class=\"rtsee-presentation-header-active-story-info\">\n <div class=\"rtsee-presentation-header-active-story-info-close\"\n (click)=\"presentation.disableActiveStory()\"\n >\n <i class=\"pi pi-arrow-left rtsee-presentation-header-active-story-info-close-icon\"></i>\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-details\">\n <p-chip [label]=\"presentation.activeStory.name\"\n [image]=\"presentation.activeStory.imageUrl\"\n class=\"rtsee-presentation-header-active-story-name\"\n alt=\"Story image\" />\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-settings\"\n (click)=\"presentation.settings.expand()\"\n >\n <i class=\"pi pi-ellipsis-h rtsee-presentation-header-active-story-info-settings-icon\"></i>\n </div>\n </div>\n }\n @if (presentation.dashboard && !presentation.activeStory && !presentation.isDashboardOpen) {\n <p-button [label]=\"presentation.labels[RTSeeTextLabelKeys.DASHBOARD_BUTTON]\"\n (click)=\"presentation.toggleDashboardState()\"\n ></p-button>\n }\n</div>\n", dependencies: [{ kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "disabled", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }, { kind: "component", type: JoinCallComponent, selector: "rtsee-join-call", inputs: ["presentation", "room"] }] }); }
1627
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: PresentationHeaderComponent, isStandalone: true, selector: "rtsee-presentation-header", inputs: { presentation: "presentation" }, ngImport: i0, template: "<header class=\"rtsee-presentation-header\"\n [ngClass]=\"{\n 'rtsee-presentation-header-convertable': presentation.activeStory,\n 'rtsee-presentation-header-visible': presentation.activeStory?.headerVisible\n }\"\n>\n @if (!presentation.activeStory) {\n <div class=\"rtsee-presentations-header-title\">\n <div class=\"rtsee-presentations-header-title-overlay\"></div>\n <div class=\"rtsee-presentations-header-title-content\">\n <h1>{{presentation.labels[RTSeeTextLabelKeys.PRESENTATION_TITLE_LABEL]}}</h1>\n <p class=\"rtsee-presentations-header-title-subtitle\">\n <span>{{presentation.labels[RTSeeTextLabelKeys.PRESENTATION_SUBTITLE_LABEL]}}</span>\n </p>\n </div>\n </div>\n }\n\n\n @if (presentation.activeRoom && !presentation.activeStory) {\n <div class=\"rtsee-presentation-room-block\">\n <rtsee-join-call [room]=\"presentation.activeRoom\"\n [presentation]=\"presentation\"\n ></rtsee-join-call>\n </div>\n }\n\n @if (presentation.activeStory) {\n <div class=\"rtsee-presentation-header-active-story-info\">\n <div class=\"rtsee-presentation-header-active-story-info-close\"\n (click)=\"presentation.disableActiveStory()\"\n >\n <i class=\"pi pi-arrow-left rtsee-presentation-header-active-story-info-close-icon\"></i>\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-details\">\n <p-chip [label]=\"presentation.activeStory.name\"\n [image]=\"presentation.activeStory.imageUrl\"\n class=\"rtsee-presentation-header-active-story-name\"\n alt=\"Story image\" />\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-settings\"\n (click)=\"presentation.settings.expand()\"\n >\n <i class=\"pi pi-ellipsis-h rtsee-presentation-header-active-story-info-settings-icon\"></i>\n </div>\n </div>\n }\n @if (presentation.dashboard && !presentation.activeStory && !presentation.isDashboardOpen) {\n <p-button [label]=\"presentation.labels[RTSeeTextLabelKeys.DASHBOARD_BUTTON]\"\n (click)=\"presentation.toggleDashboardState()\"\n ></p-button>\n }\n</header>\n", dependencies: [{ kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "disabled", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }, { kind: "component", type: JoinCallComponent, selector: "rtsee-join-call", inputs: ["presentation", "room"] }] }); }
1624
1628
  }
1625
1629
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PresentationHeaderComponent, decorators: [{
1626
1630
  type: Component,
@@ -1629,11 +1633,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
1629
1633
  NgClass,
1630
1634
  Chip,
1631
1635
  JoinCallComponent
1632
- ], standalone: true, template: "<div class=\"rtsee-presentation-header\"\n [ngClass]=\"{\n 'rtsee-presentation-header-convertable': presentation.activeStory,\n 'rtsee-presentation-header-visible': presentation.activeStory?.headerVisible\n }\"\n>\n\n @if (presentation.activeRoom && !presentation.activeStory) {\n <div class=\"rtsee-presentation-room-block\">\n <rtsee-join-call [room]=\"presentation.activeRoom\"\n [presentation]=\"presentation\"\n ></rtsee-join-call>\n </div>\n }\n\n @if (presentation.activeStory) {\n <div class=\"rtsee-presentation-header-active-story-info\">\n <div class=\"rtsee-presentation-header-active-story-info-close\"\n (click)=\"presentation.disableActiveStory()\"\n >\n <i class=\"pi pi-arrow-left rtsee-presentation-header-active-story-info-close-icon\"></i>\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-details\">\n <p-chip [label]=\"presentation.activeStory.name\"\n [image]=\"presentation.activeStory.imageUrl\"\n class=\"rtsee-presentation-header-active-story-name\"\n alt=\"Story image\" />\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-settings\"\n (click)=\"presentation.settings.expand()\"\n >\n <i class=\"pi pi-ellipsis-h rtsee-presentation-header-active-story-info-settings-icon\"></i>\n </div>\n </div>\n }\n @if (presentation.dashboard && !presentation.activeStory && !presentation.isDashboardOpen) {\n <p-button [label]=\"presentation.labels[RTSeeTextLabelKeys.DASHBOARD_BUTTON]\"\n (click)=\"presentation.toggleDashboardState()\"\n ></p-button>\n }\n</div>\n" }]
1636
+ ], standalone: true, template: "<header class=\"rtsee-presentation-header\"\n [ngClass]=\"{\n 'rtsee-presentation-header-convertable': presentation.activeStory,\n 'rtsee-presentation-header-visible': presentation.activeStory?.headerVisible\n }\"\n>\n @if (!presentation.activeStory) {\n <div class=\"rtsee-presentations-header-title\">\n <div class=\"rtsee-presentations-header-title-overlay\"></div>\n <div class=\"rtsee-presentations-header-title-content\">\n <h1>{{presentation.labels[RTSeeTextLabelKeys.PRESENTATION_TITLE_LABEL]}}</h1>\n <p class=\"rtsee-presentations-header-title-subtitle\">\n <span>{{presentation.labels[RTSeeTextLabelKeys.PRESENTATION_SUBTITLE_LABEL]}}</span>\n </p>\n </div>\n </div>\n }\n\n\n @if (presentation.activeRoom && !presentation.activeStory) {\n <div class=\"rtsee-presentation-room-block\">\n <rtsee-join-call [room]=\"presentation.activeRoom\"\n [presentation]=\"presentation\"\n ></rtsee-join-call>\n </div>\n }\n\n @if (presentation.activeStory) {\n <div class=\"rtsee-presentation-header-active-story-info\">\n <div class=\"rtsee-presentation-header-active-story-info-close\"\n (click)=\"presentation.disableActiveStory()\"\n >\n <i class=\"pi pi-arrow-left rtsee-presentation-header-active-story-info-close-icon\"></i>\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-details\">\n <p-chip [label]=\"presentation.activeStory.name\"\n [image]=\"presentation.activeStory.imageUrl\"\n class=\"rtsee-presentation-header-active-story-name\"\n alt=\"Story image\" />\n </div>\n <div class=\"rtsee-presentation-header-active-story-info-settings\"\n (click)=\"presentation.settings.expand()\"\n >\n <i class=\"pi pi-ellipsis-h rtsee-presentation-header-active-story-info-settings-icon\"></i>\n </div>\n </div>\n }\n @if (presentation.dashboard && !presentation.activeStory && !presentation.isDashboardOpen) {\n <p-button [label]=\"presentation.labels[RTSeeTextLabelKeys.DASHBOARD_BUTTON]\"\n (click)=\"presentation.toggleDashboardState()\"\n ></p-button>\n }\n</header>\n" }]
1633
1637
  }], propDecorators: { presentation: [{
1634
1638
  type: Input
1635
1639
  }] } });
1636
1640
 
1641
+ class RatingComponent {
1642
+ constructor() {
1643
+ this.stars = [];
1644
+ }
1645
+ ngOnInit() {
1646
+ this.initStars();
1647
+ }
1648
+ initStars() {
1649
+ const stars = [];
1650
+ const full = Math.floor(this.rating.value);
1651
+ const hasHalf = this.rating.value - full >= 0.25;
1652
+ for (let i = 0; i < full; i++) {
1653
+ stars.push('full');
1654
+ }
1655
+ if (hasHalf) {
1656
+ stars.push('half');
1657
+ }
1658
+ while (stars.length < this.rating.max) {
1659
+ stars.push('empty');
1660
+ }
1661
+ this.stars = stars;
1662
+ }
1663
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1664
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RatingComponent, isStandalone: true, selector: "rtsee-rating", inputs: { rating: "rating" }, ngImport: i0, template: "<div class=\"rtsee-rating\">\n @for (star of stars; track $index) {\n <span class=\"rtsee-rating-star\" [ngClass]=\"{\n 'rtsee-rating-star-full': star === 'full',\n 'rtsee-rating-star-half': star === 'half',\n 'rtsee-rating-star-empty': star === 'empty',\n }\">\u2605</span>\n }\n <span class=\"rtsee-rating-number\">{{ rating.value }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
1665
+ }
1666
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RatingComponent, decorators: [{
1667
+ type: Component,
1668
+ args: [{ selector: 'rtsee-rating', imports: [
1669
+ NgClass
1670
+ ], template: "<div class=\"rtsee-rating\">\n @for (star of stars; track $index) {\n <span class=\"rtsee-rating-star\" [ngClass]=\"{\n 'rtsee-rating-star-full': star === 'full',\n 'rtsee-rating-star-half': star === 'half',\n 'rtsee-rating-star-empty': star === 'empty',\n }\">\u2605</span>\n }\n <span class=\"rtsee-rating-number\">{{ rating.value }}</span>\n</div>\n" }]
1671
+ }], propDecorators: { rating: [{
1672
+ type: Input
1673
+ }] } });
1674
+
1637
1675
  class StoryThumbnailComponent {
1638
1676
  constructor() {
1639
1677
  this.progressPercent = 0;
@@ -1646,13 +1684,13 @@ class StoryThumbnailComponent {
1646
1684
  }
1647
1685
  }
1648
1686
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: StoryThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1649
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: StoryThumbnailComponent, isStandalone: true, selector: "rtsee-story-thumbnail", inputs: { story: "story" }, ngImport: i0, template: "<div class=\"rtsee-story-thumbnail\">\n <div class=\"rtsee-story-thumbnail-image-container\"\n [ngStyle]=\"{'background-image': 'url(' + story.imageUrl + ')'}\"\n >\n @if (story.preselectedSlideNumber) {\n <div class=\"rtsee-story-thumbnail-progress-bar-container\">\n <div class=\"rtsee-story-thumbnail-progress-bar\">\n <div class=\"rtsee-story-thumbnail-progress-bar-inner\"\n [style.width]=\"progressPercent + '%'\"\n ></div>\n </div>\n </div>\n }\n </div>\n <div class=\"rtsee-story-thumbnail-body-container\">\n <div class=\"rtsee-story-thumbnail-title-container\">\n <h4 class=\"rtsee-story-thumbnail-title\">{{story.name}}</h4>\n </div>\n @if (story.averageReadTime) {\n <div class=\"rtsee-story-thumbnail-info-container\">\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\">schedule</span>\n <span class=\"rtsee-story-thumbnail-info-read-time\">{{ Math.ceil(story.averageReadTime / 60) }} \u0445\u0432</span>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1687
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: StoryThumbnailComponent, isStandalone: true, selector: "rtsee-story-thumbnail", inputs: { story: "story" }, ngImport: i0, template: "<div class=\"rtsee-story-thumbnail\">\n <div class=\"rtsee-story-thumbnail-image-container\">\n <div class=\"rtsee-story-thumbnail-image\">\n <img [src]=\"story.imageUrl\"\n [alt]=\"story.name\"\n class=\"rtsee-story-thumbnail-image\"\n />\n </div>\n @if (story.preselectedSlideNumber) {\n <div class=\"rtsee-story-thumbnail-progress-bar-container\">\n <div class=\"rtsee-story-thumbnail-progress-bar\">\n <div class=\"rtsee-story-thumbnail-progress-bar-inner\"\n [style.width]=\"progressPercent + '%'\"\n ></div>\n </div>\n </div>\n }\n </div>\n <div class=\"rtsee-story-thumbnail-body-container\">\n <h4 class=\"rtsee-story-thumbnail-title\">{{story.name}}</h4>\n <div class=\"rtsee-story-thumbnail-body-meta\">\n <rtsee-rating [rating]=\"{max: 5, value: 3.5}\"></rtsee-rating>\n @if (story.averageReadTime) {\n <span class=\"rtsee-story-thumbnail-time-container\">\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\">schedule</span>\n <span class=\"rtsee-story-thumbnail-info-read-time\">{{ Math.ceil(story.averageReadTime / 60) }} \u0445\u0432</span>\n </span>\n <span class=\"rtsee-story-thumbnail-label-container\">{{\"7\"}}+</span>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: RatingComponent, selector: "rtsee-rating", inputs: ["rating"] }] }); }
1650
1688
  }
1651
1689
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: StoryThumbnailComponent, decorators: [{
1652
1690
  type: Component,
1653
1691
  args: [{ selector: 'rtsee-story-thumbnail', imports: [
1654
- NgStyle
1655
- ], standalone: true, template: "<div class=\"rtsee-story-thumbnail\">\n <div class=\"rtsee-story-thumbnail-image-container\"\n [ngStyle]=\"{'background-image': 'url(' + story.imageUrl + ')'}\"\n >\n @if (story.preselectedSlideNumber) {\n <div class=\"rtsee-story-thumbnail-progress-bar-container\">\n <div class=\"rtsee-story-thumbnail-progress-bar\">\n <div class=\"rtsee-story-thumbnail-progress-bar-inner\"\n [style.width]=\"progressPercent + '%'\"\n ></div>\n </div>\n </div>\n }\n </div>\n <div class=\"rtsee-story-thumbnail-body-container\">\n <div class=\"rtsee-story-thumbnail-title-container\">\n <h4 class=\"rtsee-story-thumbnail-title\">{{story.name}}</h4>\n </div>\n @if (story.averageReadTime) {\n <div class=\"rtsee-story-thumbnail-info-container\">\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\">schedule</span>\n <span class=\"rtsee-story-thumbnail-info-read-time\">{{ Math.ceil(story.averageReadTime / 60) }} \u0445\u0432</span>\n </div>\n }\n </div>\n</div>\n" }]
1692
+ RatingComponent
1693
+ ], standalone: true, template: "<div class=\"rtsee-story-thumbnail\">\n <div class=\"rtsee-story-thumbnail-image-container\">\n <div class=\"rtsee-story-thumbnail-image\">\n <img [src]=\"story.imageUrl\"\n [alt]=\"story.name\"\n class=\"rtsee-story-thumbnail-image\"\n />\n </div>\n @if (story.preselectedSlideNumber) {\n <div class=\"rtsee-story-thumbnail-progress-bar-container\">\n <div class=\"rtsee-story-thumbnail-progress-bar\">\n <div class=\"rtsee-story-thumbnail-progress-bar-inner\"\n [style.width]=\"progressPercent + '%'\"\n ></div>\n </div>\n </div>\n }\n </div>\n <div class=\"rtsee-story-thumbnail-body-container\">\n <h4 class=\"rtsee-story-thumbnail-title\">{{story.name}}</h4>\n <div class=\"rtsee-story-thumbnail-body-meta\">\n <rtsee-rating [rating]=\"{max: 5, value: 3.5}\"></rtsee-rating>\n @if (story.averageReadTime) {\n <span class=\"rtsee-story-thumbnail-time-container\">\n <span class=\"rtsee-story-thumbnail-info-time-icon material-icons-outlined\">schedule</span>\n <span class=\"rtsee-story-thumbnail-info-read-time\">{{ Math.ceil(story.averageReadTime / 60) }} \u0445\u0432</span>\n </span>\n <span class=\"rtsee-story-thumbnail-label-container\">{{\"7\"}}+</span>\n }\n </div>\n </div>\n</div>\n" }]
1656
1694
  }], propDecorators: { story: [{
1657
1695
  type: Input
1658
1696
  }] } });
@@ -2289,7 +2327,7 @@ class PresentationComponent {
2289
2327
  this.RTSeeTextLabelKeys = RTSeeTextLabelKeys;
2290
2328
  }
2291
2329
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PresentationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2292
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: PresentationComponent, isStandalone: true, selector: "rtsee-presentation", inputs: { presentation: "presentation", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-presentation\">\n <div class=\"rtsee-presentation-header-block\">\n <rtsee-presentation-header [presentation]=\"presentation\"\n ></rtsee-presentation-header>\n </div>\n\n @if (presentation.storyLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if(presentation.isDashboardOpen && presentation.dashboard) {\n <rtsee-presentations-dashboard [dashboard]=\"presentation.dashboard\"\n ></rtsee-presentations-dashboard>\n }\n\n @if (presentation.settings.isExpanded) {\n <rtsee-presentation-settings [settings]=\"presentation.settings\"\n [presentation]=\"presentation\"\n ></rtsee-presentation-settings>\n }\n\n @if (presentation.isCategoriesListVisible && !presentation.storyLoadInProgress) {\n <div class=\"rtsee-presentation-categories-list\">\n @if (presentation.categoriesLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if (presentation.activeSessionsStories.length) {\n <p class=\"rtsee-presentation-category-name\">\n <span>{{presentation.labels[RTSeeTextLabelKeys.CONTINUE_SESSIONS_LABEL]}}</span>\n </p>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of presentation.activeSessionsStories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id, story.preselectedSlideNumber || undefined)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n\n @for (category of presentation.categories; track category.id) {\n <p class=\"rtsee-presentation-category-name\">{{category.name}}</p>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of category.stories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if (presentation.activeStory && !presentation.isDashboardOpen) {\n <div class=\"rtsee-presentation-story-viewer-container\">\n <rtsee-story-player [story]=\"presentation.activeStory\"\n [settings]=\"presentation.settings\"\n ></rtsee-story-player>\n </div>\n } @else if (presentation.openedStoryDetails && !presentation.isDashboardOpen) {\n <rtsee-story-details [story]=\"presentation.openedStoryDetails\"\n [presentation]=\"presentation\"\n [messenger]=\"messenger\"\n ></rtsee-story-details>\n }\n</div>\n", dependencies: [{ kind: "component", type: PresentationHeaderComponent, selector: "rtsee-presentation-header", inputs: ["presentation"] }, { kind: "component", type: StoryThumbnailComponent, selector: "rtsee-story-thumbnail", inputs: ["story"] }, { kind: "component", type: StoryPlayerComponent, selector: "rtsee-story-player", inputs: ["story", "settings"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }, { kind: "component", type: PresentationsDashboardComponent, selector: "rtsee-presentations-dashboard", inputs: ["dashboard"] }, { kind: "component", type: PresentationSettingsComponent, selector: "rtsee-presentation-settings", inputs: ["settings", "presentation"] }, { kind: "component", type: StoryDetailsComponent, selector: "rtsee-story-details", inputs: ["story", "presentation", "messenger"] }] }); }
2330
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: PresentationComponent, isStandalone: true, selector: "rtsee-presentation", inputs: { presentation: "presentation", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-presentation\">\n <div class=\"rtsee-presentation-header-block\">\n <rtsee-presentation-header [presentation]=\"presentation\"\n ></rtsee-presentation-header>\n </div>\n\n @if (presentation.storyLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if(presentation.isDashboardOpen && presentation.dashboard) {\n <rtsee-presentations-dashboard [dashboard]=\"presentation.dashboard\"\n ></rtsee-presentations-dashboard>\n }\n\n @if (presentation.settings.isExpanded) {\n <rtsee-presentation-settings [settings]=\"presentation.settings\"\n [presentation]=\"presentation\"\n ></rtsee-presentation-settings>\n }\n\n @if (presentation.isCategoriesListVisible && !presentation.storyLoadInProgress) {\n <div class=\"rtsee-presentation-categories-list\">\n @if (presentation.categoriesLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if (presentation.activeSessionsStories.length) {\n <div class=\"rtsee-presentation-category-header\">\n <h2 class=\"rtsee-presentation-category-name\">{{presentation.labels[RTSeeTextLabelKeys.CONTINUE_SESSIONS_LABEL]}}</h2>\n </div>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of presentation.activeSessionsStories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id, story.preselectedSlideNumber || undefined)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n\n @for (category of presentation.categories; track category.id) {\n <div class=\"rtsee-presentation-category-header\">\n <h2 class=\"rtsee-presentation-category-name\">{{ category.name }}</h2>\n <span class=\"rtsee-presentation-category-description\">{{ category.description }}</span>\n </div>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of category.stories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if (presentation.activeStory && !presentation.isDashboardOpen) {\n <div class=\"rtsee-presentation-story-viewer-container\">\n <rtsee-story-player [story]=\"presentation.activeStory\"\n [settings]=\"presentation.settings\"\n ></rtsee-story-player>\n </div>\n } @else if (presentation.openedStoryDetails && !presentation.isDashboardOpen) {\n <rtsee-story-details [story]=\"presentation.openedStoryDetails\"\n [presentation]=\"presentation\"\n [messenger]=\"messenger\"\n ></rtsee-story-details>\n }\n</div>\n", dependencies: [{ kind: "component", type: PresentationHeaderComponent, selector: "rtsee-presentation-header", inputs: ["presentation"] }, { kind: "component", type: StoryThumbnailComponent, selector: "rtsee-story-thumbnail", inputs: ["story"] }, { kind: "component", type: StoryPlayerComponent, selector: "rtsee-story-player", inputs: ["story", "settings"] }, { kind: "component", type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }, { kind: "component", type: PresentationsDashboardComponent, selector: "rtsee-presentations-dashboard", inputs: ["dashboard"] }, { kind: "component", type: PresentationSettingsComponent, selector: "rtsee-presentation-settings", inputs: ["settings", "presentation"] }, { kind: "component", type: StoryDetailsComponent, selector: "rtsee-story-details", inputs: ["story", "presentation", "messenger"] }] }); }
2293
2331
  }
2294
2332
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PresentationComponent, decorators: [{
2295
2333
  type: Component,
@@ -2302,7 +2340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2302
2340
  PresentationsDashboardComponent,
2303
2341
  PresentationSettingsComponent,
2304
2342
  StoryDetailsComponent
2305
- ], standalone: true, template: "<div class=\"rtsee-presentation\">\n <div class=\"rtsee-presentation-header-block\">\n <rtsee-presentation-header [presentation]=\"presentation\"\n ></rtsee-presentation-header>\n </div>\n\n @if (presentation.storyLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if(presentation.isDashboardOpen && presentation.dashboard) {\n <rtsee-presentations-dashboard [dashboard]=\"presentation.dashboard\"\n ></rtsee-presentations-dashboard>\n }\n\n @if (presentation.settings.isExpanded) {\n <rtsee-presentation-settings [settings]=\"presentation.settings\"\n [presentation]=\"presentation\"\n ></rtsee-presentation-settings>\n }\n\n @if (presentation.isCategoriesListVisible && !presentation.storyLoadInProgress) {\n <div class=\"rtsee-presentation-categories-list\">\n @if (presentation.categoriesLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if (presentation.activeSessionsStories.length) {\n <p class=\"rtsee-presentation-category-name\">\n <span>{{presentation.labels[RTSeeTextLabelKeys.CONTINUE_SESSIONS_LABEL]}}</span>\n </p>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of presentation.activeSessionsStories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id, story.preselectedSlideNumber || undefined)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n\n @for (category of presentation.categories; track category.id) {\n <p class=\"rtsee-presentation-category-name\">{{category.name}}</p>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of category.stories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if (presentation.activeStory && !presentation.isDashboardOpen) {\n <div class=\"rtsee-presentation-story-viewer-container\">\n <rtsee-story-player [story]=\"presentation.activeStory\"\n [settings]=\"presentation.settings\"\n ></rtsee-story-player>\n </div>\n } @else if (presentation.openedStoryDetails && !presentation.isDashboardOpen) {\n <rtsee-story-details [story]=\"presentation.openedStoryDetails\"\n [presentation]=\"presentation\"\n [messenger]=\"messenger\"\n ></rtsee-story-details>\n }\n</div>\n" }]
2343
+ ], standalone: true, template: "<div class=\"rtsee-presentation\">\n <div class=\"rtsee-presentation-header-block\">\n <rtsee-presentation-header [presentation]=\"presentation\"\n ></rtsee-presentation-header>\n </div>\n\n @if (presentation.storyLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if(presentation.isDashboardOpen && presentation.dashboard) {\n <rtsee-presentations-dashboard [dashboard]=\"presentation.dashboard\"\n ></rtsee-presentations-dashboard>\n }\n\n @if (presentation.settings.isExpanded) {\n <rtsee-presentation-settings [settings]=\"presentation.settings\"\n [presentation]=\"presentation\"\n ></rtsee-presentation-settings>\n }\n\n @if (presentation.isCategoriesListVisible && !presentation.storyLoadInProgress) {\n <div class=\"rtsee-presentation-categories-list\">\n @if (presentation.categoriesLoadInProgress) {\n <rtsee-preloader [diameter]=\"15\"></rtsee-preloader>\n }\n\n @if (presentation.activeSessionsStories.length) {\n <div class=\"rtsee-presentation-category-header\">\n <h2 class=\"rtsee-presentation-category-name\">{{presentation.labels[RTSeeTextLabelKeys.CONTINUE_SESSIONS_LABEL]}}</h2>\n </div>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of presentation.activeSessionsStories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id, story.preselectedSlideNumber || undefined)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n\n @for (category of presentation.categories; track category.id) {\n <div class=\"rtsee-presentation-category-header\">\n <h2 class=\"rtsee-presentation-category-name\">{{ category.name }}</h2>\n <span class=\"rtsee-presentation-category-description\">{{ category.description }}</span>\n </div>\n <div class=\"rtsee-presentation-stories-list\">\n @for (story of category.stories; track story.id) {\n <div class=\"rtsee-presentation-story-thumbnail-container\"\n (click)=\"presentation.openStoryDetails(story.id)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n ></rtsee-story-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if (presentation.activeStory && !presentation.isDashboardOpen) {\n <div class=\"rtsee-presentation-story-viewer-container\">\n <rtsee-story-player [story]=\"presentation.activeStory\"\n [settings]=\"presentation.settings\"\n ></rtsee-story-player>\n </div>\n } @else if (presentation.openedStoryDetails && !presentation.isDashboardOpen) {\n <rtsee-story-details [story]=\"presentation.openedStoryDetails\"\n [presentation]=\"presentation\"\n [messenger]=\"messenger\"\n ></rtsee-story-details>\n }\n</div>\n" }]
2306
2344
  }], ctorParameters: () => [], propDecorators: { presentation: [{
2307
2345
  type: Input
2308
2346
  }], messenger: [{
@@ -2427,6 +2465,664 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2427
2465
  type: Input
2428
2466
  }] } });
2429
2467
 
2468
+ class RtseeTagsAccordionMenuComponent {
2469
+ constructor() {
2470
+ this.items = [];
2471
+ this.onTagClicked = output();
2472
+ }
2473
+ ngOnInit() {
2474
+ this.manageTags.loadTags()
2475
+ .then(() => {
2476
+ this.items = this.tagsToItems(this.manageTags.tags);
2477
+ console.log(this.items);
2478
+ }).catch((err) => {
2479
+ console.log(err);
2480
+ });
2481
+ }
2482
+ tagsToItems(tags) {
2483
+ return tags.map((t) => {
2484
+ return {
2485
+ label: t.name,
2486
+ icon: t.iconClassName || undefined,
2487
+ items: t.children ? this.tagsToItems(t.children) : undefined,
2488
+ isSelected: false,
2489
+ command: () => {
2490
+ this.onTagClicked.emit(t);
2491
+ }
2492
+ };
2493
+ });
2494
+ }
2495
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagsAccordionMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2496
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: RtseeTagsAccordionMenuComponent, isStandalone: true, selector: "rtsee-tags-accordion", inputs: { manageTags: "manageTags" }, outputs: { onTagClicked: "onTagClicked" }, ngImport: i0, template: "<div class=\"rtsee-tags-accordion\">\n <p-panel-menu [model]=\"items\"/>\n</div>\n", dependencies: [{ kind: "component", type: PanelMenu, selector: "p-panelMenu, p-panelmenu, p-panel-menu", inputs: ["model", "styleClass", "multiple", "transitionOptions", "id", "tabindex"] }] }); }
2497
+ }
2498
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagsAccordionMenuComponent, decorators: [{
2499
+ type: Component,
2500
+ args: [{ selector: 'rtsee-tags-accordion', imports: [
2501
+ PanelMenu
2502
+ ], template: "<div class=\"rtsee-tags-accordion\">\n <p-panel-menu [model]=\"items\"/>\n</div>\n" }]
2503
+ }], propDecorators: { manageTags: [{
2504
+ type: Input
2505
+ }] } });
2506
+
2507
+ class RecursiveSelectComponent {
2508
+ constructor() {
2509
+ this.value = undefined;
2510
+ }
2511
+ ngOnInit() {
2512
+ this.value = this.selectModel.value;
2513
+ }
2514
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RecursiveSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2515
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RecursiveSelectComponent, isStandalone: true, selector: "rtsee-recursive-select", inputs: { selectModel: "selectModel" }, ngImport: i0, template: "<div class=\"rtsee-recursive-select\">\n @for (item of selectModel.selectionHierarchy; track item.level) {\n <div class=\"rtsee-form-field-container\">\n <p-select [options]=\"item.children\"\n [(ngModel)]=\"item.selected\"\n [optionLabel]=\"'label'\"\n [placeholder]=\"selectModel.placeholderValue\"\n (onChange)=\"selectModel.onSelectionChanged(item.selected, item.level)\"\n class=\"rtsee-form-field\"\n />\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
2516
+ }
2517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RecursiveSelectComponent, decorators: [{
2518
+ type: Component,
2519
+ args: [{ selector: 'rtsee-recursive-select', imports: [
2520
+ Select,
2521
+ FormsModule
2522
+ ], template: "<div class=\"rtsee-recursive-select\">\n @for (item of selectModel.selectionHierarchy; track item.level) {\n <div class=\"rtsee-form-field-container\">\n <p-select [options]=\"item.children\"\n [(ngModel)]=\"item.selected\"\n [optionLabel]=\"'label'\"\n [placeholder]=\"selectModel.placeholderValue\"\n (onChange)=\"selectModel.onSelectionChanged(item.selected, item.level)\"\n class=\"rtsee-form-field\"\n />\n </div>\n }\n</div>\n" }]
2523
+ }], propDecorators: { selectModel: [{
2524
+ type: Input
2525
+ }] } });
2526
+
2527
+ class RtseeTagManageComponent {
2528
+ constructor(formBuilder) {
2529
+ this.formBuilder = formBuilder;
2530
+ this.tagsRecursiveSelect = null;
2531
+ this.tagForm = this.getTagForm();
2532
+ }
2533
+ ngOnInit() {
2534
+ if (!this.manageTags.activeTag) {
2535
+ this.manageTags.setBlankActiveTag();
2536
+ }
2537
+ if (!this.manageTags.activeTag) {
2538
+ throw new Error(`Active tag should be selected`);
2539
+ }
2540
+ this.presetFields(this.manageTags.activeTag);
2541
+ }
2542
+ async presetParent() {
2543
+ console.log("presetParent", this.manageTags.activeTag);
2544
+ if (!this.manageTags.activeTag) {
2545
+ return;
2546
+ }
2547
+ const selectOptions = {
2548
+ items: this.manageTags.tags,
2549
+ placeholderValue: 'Select A tag',
2550
+ getChildren: (tag) => {
2551
+ return tag.children || [];
2552
+ },
2553
+ getLabel: (tag) => {
2554
+ return tag.name;
2555
+ },
2556
+ getRemoteParent: (tag) => {
2557
+ if (!tag.parentId) {
2558
+ return Promise.resolve(null);
2559
+ }
2560
+ return this.manageTags.getTag(tag.parentId);
2561
+ }
2562
+ };
2563
+ console.log('active tag', this.manageTags.activeTag);
2564
+ if (this.manageTags.activeTag.parentId) {
2565
+ selectOptions.value = await this.manageTags.getTag(this.manageTags.activeTag.parentId);
2566
+ }
2567
+ this.tagsRecursiveSelect = new RecursiveSelect(selectOptions);
2568
+ }
2569
+ async submit() {
2570
+ if (this.tagForm.invalid || !this.manageTags.peer.rtseeAppId || !this.manageTags.activeTag) {
2571
+ console.log('Form Invalid!');
2572
+ return;
2573
+ }
2574
+ const parentId = this.tagsRecursiveSelect?.value?.id;
2575
+ const tagParams = {
2576
+ name: this.nameField.getRawValue(),
2577
+ description: this.descriptionField.getRawValue(),
2578
+ applicationId: this.manageTags.peer.rtseeAppId,
2579
+ parentId
2580
+ };
2581
+ if (this.manageTags.activeTag.id) {
2582
+ const options = {
2583
+ id: this.manageTags.activeTag.id,
2584
+ ...tagParams
2585
+ };
2586
+ await this.manageTags.updateTag(options);
2587
+ }
2588
+ else {
2589
+ await this.manageTags.createTag(tagParams);
2590
+ }
2591
+ }
2592
+ cancel() {
2593
+ console.log('Cancel');
2594
+ }
2595
+ presetFields(tag) {
2596
+ this.nameField.setValue(tag.name);
2597
+ this.descriptionField.setValue(tag.description || '');
2598
+ this.iconClassField.setValue(tag.iconClassName || '');
2599
+ console.log('preset fields');
2600
+ void this.presetParent();
2601
+ }
2602
+ getTagForm() {
2603
+ return this.formBuilder.group({
2604
+ name: this.formBuilder.control('', {
2605
+ validators: [
2606
+ Validators.required,
2607
+ Validators.minLength(3),
2608
+ Validators.maxLength(131)
2609
+ ]
2610
+ }),
2611
+ description: this.formBuilder.control('', {
2612
+ validators: [
2613
+ Validators.required,
2614
+ Validators.minLength(6),
2615
+ Validators.maxLength(244)
2616
+ ]
2617
+ }),
2618
+ iconClass: this.formBuilder.control('', {
2619
+ validators: [
2620
+ Validators.minLength(1),
2621
+ Validators.maxLength(244)
2622
+ ]
2623
+ }),
2624
+ value: this.formBuilder.control('', {
2625
+ validators: [
2626
+ Validators.minLength(1),
2627
+ Validators.maxLength(244)
2628
+ ]
2629
+ })
2630
+ });
2631
+ }
2632
+ get nameField() {
2633
+ return this.tagForm.get('name');
2634
+ }
2635
+ get descriptionField() {
2636
+ return this.tagForm.get('description');
2637
+ }
2638
+ get iconClassField() {
2639
+ return this.tagForm.get('iconClass');
2640
+ }
2641
+ get valueField() {
2642
+ return this.tagForm.get('value');
2643
+ }
2644
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagManageComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
2645
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RtseeTagManageComponent, isStandalone: true, selector: "rtsee-rtsee-tag-manage", inputs: { manageTags: "manageTags" }, ngImport: i0, template: "<div class=\"rtsee-manage-tag\">\n <div class=\"rtsee-manage-tag-info rtsee-form-container\">\n <form class=\"rtsee-tag-form rtsee-form\"\n [formGroup]=\"tagForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-story-label-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-story-label-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n @if (tagsRecursiveSelect && manageTags.activeTag) {\n <div class=\"rtsee-select-tag-container\">\n <p-divider></p-divider>\n <p>Parent Tag</p>\n <rtsee-recursive-select [selectModel]=\"tagsRecursiveSelect\"\n ></rtsee-recursive-select>\n <p-divider></p-divider>\n </div>\n }\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <textarea [formControl]=\"descriptionField\"\n id=\"rtsee-story-label-description-field\"\n class=\"rtsee-form-field\"\n rows=\"3\"\n cols=\"30\"\n pTextarea\n [class.p-invalid]=\"descriptionField.invalid && descriptionField.touched\"\n ></textarea>\n <label for=\"rtsee-story-label-description-field\">Description</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (descriptionField.hasError('required') && descriptionField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Description is required</p-message>\n }\n </div>\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-story-label-symbol-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"iconClassField\"\n [class.p-invalid]=\"iconClassField.invalid && iconClassField.touched\"\n />\n <label for=\"rtsee-story-label-symbol-field\">Symbol</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (iconClassField.hasError('required') && iconClassField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Symbol is required, pick a smile, dummy</p-message>\n }\n </div>\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageTags.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageTags.saveInProgress\"\n />\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: RecursiveSelectComponent, selector: "rtsee-recursive-select", inputs: ["selectModel"] }, { kind: "component", type: Divider, selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }] }); }
2646
+ }
2647
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagManageComponent, decorators: [{
2648
+ type: Component,
2649
+ args: [{ selector: 'rtsee-rtsee-tag-manage', imports: [
2650
+ Button,
2651
+ FloatLabel,
2652
+ FormsModule,
2653
+ InputGroup,
2654
+ InputText,
2655
+ Message,
2656
+ Textarea,
2657
+ ReactiveFormsModule,
2658
+ RecursiveSelectComponent,
2659
+ Divider
2660
+ ], template: "<div class=\"rtsee-manage-tag\">\n <div class=\"rtsee-manage-tag-info rtsee-form-container\">\n <form class=\"rtsee-tag-form rtsee-form\"\n [formGroup]=\"tagForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-story-label-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-story-label-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n @if (tagsRecursiveSelect && manageTags.activeTag) {\n <div class=\"rtsee-select-tag-container\">\n <p-divider></p-divider>\n <p>Parent Tag</p>\n <rtsee-recursive-select [selectModel]=\"tagsRecursiveSelect\"\n ></rtsee-recursive-select>\n <p-divider></p-divider>\n </div>\n }\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <textarea [formControl]=\"descriptionField\"\n id=\"rtsee-story-label-description-field\"\n class=\"rtsee-form-field\"\n rows=\"3\"\n cols=\"30\"\n pTextarea\n [class.p-invalid]=\"descriptionField.invalid && descriptionField.touched\"\n ></textarea>\n <label for=\"rtsee-story-label-description-field\">Description</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (descriptionField.hasError('required') && descriptionField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Description is required</p-message>\n }\n </div>\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-story-label-symbol-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"iconClassField\"\n [class.p-invalid]=\"iconClassField.invalid && iconClassField.touched\"\n />\n <label for=\"rtsee-story-label-symbol-field\">Symbol</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (iconClassField.hasError('required') && iconClassField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Symbol is required, pick a smile, dummy</p-message>\n }\n </div>\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageTags.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageTags.saveInProgress\"\n />\n </form>\n </div>\n</div>\n" }]
2661
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { manageTags: [{
2662
+ type: Input
2663
+ }] } });
2664
+
2665
+ class RtseeTagGroupsManageComponent {
2666
+ constructor() {
2667
+ this.items = [];
2668
+ this.selectedTagGroup = undefined;
2669
+ this.onTagGroupClicked = output();
2670
+ }
2671
+ ngOnInit() {
2672
+ this.manageTagGroups.loadTagGroups()
2673
+ .then(() => {
2674
+ this.items = this.tagGroupsToItems(this.manageTagGroups.tagGroups);
2675
+ }).catch((err) => {
2676
+ console.log(err);
2677
+ });
2678
+ }
2679
+ tagGroupsToItems(tagGroups) {
2680
+ console.log("tagGroupsToItems", tagGroups);
2681
+ return tagGroups.map((tg) => {
2682
+ return {
2683
+ label: tg.name,
2684
+ isSelected: false,
2685
+ command: () => {
2686
+ this.selectedTagGroup = tg;
2687
+ this.onTagGroupClicked.emit(tg);
2688
+ }
2689
+ };
2690
+ });
2691
+ }
2692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagGroupsManageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: RtseeTagGroupsManageComponent, isStandalone: true, selector: "rtsee-rtsee-tag-groups-manage", inputs: { manageTagGroups: "manageTagGroups" }, outputs: { onTagGroupClicked: "onTagGroupClicked" }, ngImport: i0, template: "<div class=\"rtsee-manage-tag-groups\">\n <p-menu [model]=\"items\" />\n</div>\n", dependencies: [{ kind: "component", type: Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }] }); }
2694
+ }
2695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagGroupsManageComponent, decorators: [{
2696
+ type: Component,
2697
+ args: [{ selector: 'rtsee-rtsee-tag-groups-manage', imports: [
2698
+ Menu
2699
+ ], template: "<div class=\"rtsee-manage-tag-groups\">\n <p-menu [model]=\"items\" />\n</div>\n" }]
2700
+ }], propDecorators: { manageTagGroups: [{
2701
+ type: Input
2702
+ }] } });
2703
+
2704
+ class RtseeTagGroupManageComponent {
2705
+ constructor(formBuilder) {
2706
+ this.formBuilder = formBuilder;
2707
+ this.tagGroupForm = this.getTagGroupForm();
2708
+ }
2709
+ ngOnInit() {
2710
+ if (!this.manageTagGroups.activeTagGroup) {
2711
+ this.manageTagGroups.setBlankActiveTag();
2712
+ }
2713
+ if (!this.manageTagGroups.activeTagGroup) {
2714
+ throw new Error(`Active tagGroup should be selected`);
2715
+ }
2716
+ this.presetFields(this.manageTagGroups.activeTagGroup);
2717
+ void this.manageTagGroups.initMultiselect();
2718
+ }
2719
+ async submit() {
2720
+ if (!this.manageTagGroups.activeTagGroup) {
2721
+ throw new Error(`Active tagGroup should be selected`);
2722
+ }
2723
+ if (this.tagGroupForm.invalid || !this.manageTagGroups.peer.rtseeAppId) {
2724
+ console.log('Form Invalid!');
2725
+ return;
2726
+ }
2727
+ const tagGroupParams = {
2728
+ name: this.nameField.getRawValue(),
2729
+ description: this.descriptionField.getRawValue(),
2730
+ applicationId: this.manageTagGroups.peer.rtseeAppId
2731
+ };
2732
+ if (this.manageTagGroups.activeTagGroup.id) {
2733
+ await this.manageTagGroups.updateTagGroup({
2734
+ ...tagGroupParams,
2735
+ id: this.manageTagGroups.activeTagGroup.id
2736
+ });
2737
+ }
2738
+ else {
2739
+ await this.manageTagGroups.createTagGroup(tagGroupParams);
2740
+ }
2741
+ }
2742
+ cancel() {
2743
+ console.log('Cancel');
2744
+ }
2745
+ presetFields(tagGroup) {
2746
+ this.nameField.setValue(tagGroup.name);
2747
+ this.descriptionField.setValue(tagGroup.description || '');
2748
+ }
2749
+ getTagGroupForm() {
2750
+ return this.formBuilder.group({
2751
+ name: this.formBuilder.control('', {
2752
+ validators: [
2753
+ Validators.required,
2754
+ Validators.minLength(3),
2755
+ Validators.maxLength(131)
2756
+ ]
2757
+ }),
2758
+ description: this.formBuilder.control('', {
2759
+ validators: [
2760
+ Validators.required,
2761
+ Validators.minLength(6),
2762
+ Validators.maxLength(244)
2763
+ ]
2764
+ })
2765
+ });
2766
+ }
2767
+ get nameField() {
2768
+ return this.tagGroupForm.get('name');
2769
+ }
2770
+ get descriptionField() {
2771
+ return this.tagGroupForm.get('description');
2772
+ }
2773
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagGroupManageComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
2774
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RtseeTagGroupManageComponent, isStandalone: true, selector: "rtsee-rtsee-tag-group-manage", inputs: { manageTagGroups: "manageTagGroups" }, ngImport: i0, template: "<div class=\"rtsee-manage-tag-group\">\n <div class=\"rtsee-manage-tag-group-info rtsee-form-container\">\n <form class=\"rtsee-tag-form rtsee-form\"\n [formGroup]=\"tagGroupForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-story-label-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-story-label-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <textarea [formControl]=\"descriptionField\"\n id=\"rtsee-story-label-description-field\"\n class=\"rtsee-form-field\"\n rows=\"3\"\n cols=\"30\"\n pTextarea\n [class.p-invalid]=\"descriptionField.invalid && descriptionField.touched\"\n ></textarea>\n <label for=\"rtsee-story-label-description-field\">Description</label>\n </p-floatlabel>\n </p-inputgroup>\n\n @if (descriptionField.hasError('required') && descriptionField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Description is required</p-message>\n }\n </div>\n\n @if (manageTagGroups && manageTagGroups.tagsMultiselect) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-autocomplete [config]=\"manageTagGroups.tagsMultiselect\"></rtsee-autocomplete>\n </div>\n }\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageTagGroups.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageTagGroups.saveInProgress\"\n />\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "component", type: AutocompleteComponent, selector: "rtsee-autocomplete", inputs: ["config"] }] }); }
2775
+ }
2776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagGroupManageComponent, decorators: [{
2777
+ type: Component,
2778
+ args: [{ selector: 'rtsee-rtsee-tag-group-manage', imports: [
2779
+ Button,
2780
+ FloatLabel,
2781
+ InputGroup,
2782
+ InputText,
2783
+ Message,
2784
+ ReactiveFormsModule,
2785
+ Textarea,
2786
+ AutocompleteComponent
2787
+ ], template: "<div class=\"rtsee-manage-tag-group\">\n <div class=\"rtsee-manage-tag-group-info rtsee-form-container\">\n <form class=\"rtsee-tag-form rtsee-form\"\n [formGroup]=\"tagGroupForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-story-label-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-story-label-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <textarea [formControl]=\"descriptionField\"\n id=\"rtsee-story-label-description-field\"\n class=\"rtsee-form-field\"\n rows=\"3\"\n cols=\"30\"\n pTextarea\n [class.p-invalid]=\"descriptionField.invalid && descriptionField.touched\"\n ></textarea>\n <label for=\"rtsee-story-label-description-field\">Description</label>\n </p-floatlabel>\n </p-inputgroup>\n\n @if (descriptionField.hasError('required') && descriptionField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Description is required</p-message>\n }\n </div>\n\n @if (manageTagGroups && manageTagGroups.tagsMultiselect) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-autocomplete [config]=\"manageTagGroups.tagsMultiselect\"></rtsee-autocomplete>\n </div>\n }\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageTagGroups.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageTagGroups.saveInProgress\"\n />\n </form>\n </div>\n</div>\n" }]
2788
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { manageTagGroups: [{
2789
+ type: Input
2790
+ }] } });
2791
+
2792
+ class EntitiesConfigurationsListComponent {
2793
+ constructor() {
2794
+ this.items = [];
2795
+ this.onConfigurationClicked = output();
2796
+ }
2797
+ ngOnInit() {
2798
+ this.manageEntityConfigurations.loadEntityConfigurations()
2799
+ .then(() => {
2800
+ this.items = this.configurationsToItems(this.manageEntityConfigurations.entityConfigurations);
2801
+ }).catch((err) => {
2802
+ console.log(err);
2803
+ });
2804
+ }
2805
+ configurationsToItems(entityConfigurations) {
2806
+ console.log("entityConfigsToItems", entityConfigurations);
2807
+ return entityConfigurations.map((ec) => {
2808
+ return {
2809
+ label: ec.name,
2810
+ isSelected: false,
2811
+ command: () => {
2812
+ this.selectedEntityConfiguration = ec;
2813
+ this.onConfigurationClicked.emit(ec);
2814
+ }
2815
+ };
2816
+ });
2817
+ }
2818
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntitiesConfigurationsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2819
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: EntitiesConfigurationsListComponent, isStandalone: true, selector: "rtsee-entities-configurations-list", inputs: { manageEntityConfigurations: "manageEntityConfigurations" }, outputs: { onConfigurationClicked: "onConfigurationClicked" }, ngImport: i0, template: "<div class=\"rtsee-entities-configurations-list\">\n <p-menu [model]=\"items\" />\n</div>\n", dependencies: [{ kind: "component", type: Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }] }); }
2820
+ }
2821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntitiesConfigurationsListComponent, decorators: [{
2822
+ type: Component,
2823
+ args: [{ selector: 'rtsee-entities-configurations-list', imports: [
2824
+ Menu
2825
+ ], template: "<div class=\"rtsee-entities-configurations-list\">\n <p-menu [model]=\"items\" />\n</div>\n" }]
2826
+ }], propDecorators: { manageEntityConfigurations: [{
2827
+ type: Input
2828
+ }] } });
2829
+
2830
+ class ManageEntityConfigurationComponent {
2831
+ constructor(formBuilder) {
2832
+ this.formBuilder = formBuilder;
2833
+ this.entityConfigurationForm = this.getEntityConfigurationForm();
2834
+ }
2835
+ ngOnInit() {
2836
+ if (!this.manageEntityConfigurations.activeEntityConfiguration) {
2837
+ this.manageEntityConfigurations.setBlankActiveEntityConfiguration();
2838
+ }
2839
+ if (!this.manageEntityConfigurations.activeEntityConfiguration) {
2840
+ throw new Error(`Active entityConfig should be selected`);
2841
+ }
2842
+ this.presetFields(this.manageEntityConfigurations.activeEntityConfiguration);
2843
+ void this.manageEntityConfigurations.initMultiselect();
2844
+ }
2845
+ async submit() {
2846
+ if (!this.manageEntityConfigurations.activeEntityConfiguration) {
2847
+ throw new Error(`Active entityConfiguration should be selected`);
2848
+ }
2849
+ if (this.entityConfigurationForm.invalid || !this.manageEntityConfigurations.peer.rtseeAppId) {
2850
+ console.log('Form Invalid!');
2851
+ return;
2852
+ }
2853
+ const configurationParams = {
2854
+ name: this.nameField.getRawValue(),
2855
+ description: this.descriptionField.getRawValue(),
2856
+ applicationId: this.manageEntityConfigurations.peer.rtseeAppId,
2857
+ taggingEnabled: this.taggingEnabledField.getRawValue(),
2858
+ commentsEnabled: this.commentsEnabledField.getRawValue(),
2859
+ ratingEnabled: this.ratingEnabledField.getRawValue(),
2860
+ };
2861
+ if (this.manageEntityConfigurations.activeEntityConfiguration.id) {
2862
+ await this.manageEntityConfigurations.updateEntityConfiguration({
2863
+ ...configurationParams,
2864
+ id: this.manageEntityConfigurations.activeEntityConfiguration.id
2865
+ });
2866
+ }
2867
+ else {
2868
+ await this.manageEntityConfigurations.createEntityConfiguration(configurationParams);
2869
+ }
2870
+ }
2871
+ cancel() {
2872
+ console.log('Cancel');
2873
+ }
2874
+ presetFields(entityConfiguration) {
2875
+ this.nameField.setValue(entityConfiguration.name);
2876
+ this.descriptionField.setValue(entityConfiguration.description || '');
2877
+ this.taggingEnabledField.setValue(entityConfiguration.taggingEnabled || false);
2878
+ this.commentsEnabledField.setValue(entityConfiguration.commentsEnabled || false);
2879
+ this.ratingEnabledField.setValue(entityConfiguration.ratingEnabled || false);
2880
+ }
2881
+ getEntityConfigurationForm() {
2882
+ return this.formBuilder.group({
2883
+ name: this.formBuilder.control('', {
2884
+ validators: [
2885
+ Validators.required,
2886
+ Validators.minLength(3),
2887
+ Validators.maxLength(131)
2888
+ ]
2889
+ }),
2890
+ description: this.formBuilder.control('', {
2891
+ validators: [
2892
+ Validators.required,
2893
+ Validators.minLength(6),
2894
+ Validators.maxLength(244)
2895
+ ]
2896
+ }),
2897
+ taggingEnabled: this.formBuilder.control(false),
2898
+ commentsEnabled: this.formBuilder.control(false),
2899
+ ratingEnabled: this.formBuilder.control(false)
2900
+ });
2901
+ }
2902
+ get nameField() {
2903
+ return this.entityConfigurationForm.get('name');
2904
+ }
2905
+ get descriptionField() {
2906
+ return this.entityConfigurationForm.get('description');
2907
+ }
2908
+ get taggingEnabledField() {
2909
+ return this.entityConfigurationForm.get('taggingEnabled');
2910
+ }
2911
+ get commentsEnabledField() {
2912
+ return this.entityConfigurationForm.get('commentsEnabled');
2913
+ }
2914
+ get ratingEnabledField() {
2915
+ return this.entityConfigurationForm.get('ratingEnabled');
2916
+ }
2917
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ManageEntityConfigurationComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
2918
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: ManageEntityConfigurationComponent, isStandalone: true, selector: "rtsee-manage-entity-configuration", inputs: { manageEntityConfigurations: "manageEntityConfigurations" }, ngImport: i0, template: "<div class=\"rtsee-manage-entity-configuration\">\n <div class=\"rtsee-manage-entity-configuration-info rtsee-form-container\">\n <form class=\"rtsee-entity-configuration-form rtsee-form\"\n [formGroup]=\"entityConfigurationForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-entity-config-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-entity-config-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <textarea [formControl]=\"descriptionField\"\n id=\"rtsee-entity-config-description-field\"\n class=\"rtsee-form-field\"\n rows=\"3\"\n cols=\"30\"\n pTextarea\n [class.p-invalid]=\"descriptionField.invalid && descriptionField.touched\"\n ></textarea>\n <label for=\"rtsee-entity-config-description-field\">Description</label>\n </p-floatlabel>\n </p-inputgroup>\n\n @if (descriptionField.hasError('required') && descriptionField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Description is required</p-message>\n }\n </div>\n\n @if (manageEntityConfigurations && manageEntityConfigurations.tagGroupsMultiselect) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-autocomplete [config]=\"manageEntityConfigurations.tagGroupsMultiselect\"></rtsee-autocomplete>\n </div>\n }\n\n <div class=\"rtsee-form-field-container\">\n <p>Tagging Enabled</p>\n <p-toggleswitch name=\"tagging-enabled\" formControlName=\"taggingEnabled\"/>\n </div>\n <div class=\"rtsee-form-field-container\">\n <p>Comments Enabled</p>\n <p-toggleswitch name=\"comments-enabled\" formControlName=\"commentsEnabled\"/>\n </div>\n <div class=\"rtsee-form-field-container\">\n <p>Rating Enabled</p>\n <p-toggleswitch name=\"ratings-enabled\" formControlName=\"ratingEnabled\"/>\n </div>\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageEntityConfigurations.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageEntityConfigurations.saveInProgress\"\n />\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "rtsee-autocomplete", inputs: ["config"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "directive", type: Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }] }); }
2919
+ }
2920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ManageEntityConfigurationComponent, decorators: [{
2921
+ type: Component,
2922
+ args: [{ selector: 'rtsee-manage-entity-configuration', imports: [
2923
+ AutocompleteComponent,
2924
+ Button,
2925
+ FloatLabel,
2926
+ FormsModule,
2927
+ InputGroup,
2928
+ InputText,
2929
+ Message,
2930
+ Textarea,
2931
+ ReactiveFormsModule,
2932
+ ToggleSwitch
2933
+ ], template: "<div class=\"rtsee-manage-entity-configuration\">\n <div class=\"rtsee-manage-entity-configuration-info rtsee-form-container\">\n <form class=\"rtsee-entity-configuration-form rtsee-form\"\n [formGroup]=\"entityConfigurationForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-entity-config-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-entity-config-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <textarea [formControl]=\"descriptionField\"\n id=\"rtsee-entity-config-description-field\"\n class=\"rtsee-form-field\"\n rows=\"3\"\n cols=\"30\"\n pTextarea\n [class.p-invalid]=\"descriptionField.invalid && descriptionField.touched\"\n ></textarea>\n <label for=\"rtsee-entity-config-description-field\">Description</label>\n </p-floatlabel>\n </p-inputgroup>\n\n @if (descriptionField.hasError('required') && descriptionField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Description is required</p-message>\n }\n </div>\n\n @if (manageEntityConfigurations && manageEntityConfigurations.tagGroupsMultiselect) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-autocomplete [config]=\"manageEntityConfigurations.tagGroupsMultiselect\"></rtsee-autocomplete>\n </div>\n }\n\n <div class=\"rtsee-form-field-container\">\n <p>Tagging Enabled</p>\n <p-toggleswitch name=\"tagging-enabled\" formControlName=\"taggingEnabled\"/>\n </div>\n <div class=\"rtsee-form-field-container\">\n <p>Comments Enabled</p>\n <p-toggleswitch name=\"comments-enabled\" formControlName=\"commentsEnabled\"/>\n </div>\n <div class=\"rtsee-form-field-container\">\n <p>Rating Enabled</p>\n <p-toggleswitch name=\"ratings-enabled\" formControlName=\"ratingEnabled\"/>\n </div>\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageEntityConfigurations.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageEntityConfigurations.saveInProgress\"\n />\n </form>\n </div>\n</div>\n" }]
2934
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { manageEntityConfigurations: [{
2935
+ type: Input
2936
+ }] } });
2937
+
2938
+ class EntitiesListComponent {
2939
+ constructor() {
2940
+ this.items = [];
2941
+ this.onEntityClicked = output();
2942
+ }
2943
+ ngOnInit() {
2944
+ this.manageEntities.loadEntities()
2945
+ .then(() => {
2946
+ this.items = this.entitiesToItems(this.manageEntities.entities);
2947
+ }).catch((err) => {
2948
+ console.log(err);
2949
+ });
2950
+ }
2951
+ entitiesToItems(entityConfigurations) {
2952
+ console.log("entityConfigsToItems", entityConfigurations);
2953
+ return entityConfigurations.map((et) => {
2954
+ return {
2955
+ label: et.name,
2956
+ isSelected: false,
2957
+ command: () => {
2958
+ this.selectedEntity = et;
2959
+ this.onEntityClicked.emit(et);
2960
+ }
2961
+ };
2962
+ });
2963
+ }
2964
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntitiesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2965
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: EntitiesListComponent, isStandalone: true, selector: "rtsee-entities-list", inputs: { manageEntities: "manageEntities" }, outputs: { onEntityClicked: "onEntityClicked" }, ngImport: i0, template: "<div class=\"rtsee-entities-list\">\n <p-menu [model]=\"items\" />\n</div>\n", dependencies: [{ kind: "component", type: Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }] }); }
2966
+ }
2967
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntitiesListComponent, decorators: [{
2968
+ type: Component,
2969
+ args: [{ selector: 'rtsee-entities-list', imports: [
2970
+ Menu
2971
+ ], template: "<div class=\"rtsee-entities-list\">\n <p-menu [model]=\"items\" />\n</div>\n" }]
2972
+ }], propDecorators: { manageEntities: [{
2973
+ type: Input
2974
+ }] } });
2975
+
2976
+ class ManageEntityComponent {
2977
+ constructor(formBuilder) {
2978
+ this.formBuilder = formBuilder;
2979
+ this.entityForm = this.getEntityForm();
2980
+ }
2981
+ ngOnInit() {
2982
+ if (!this.manageEntities.activeEntity) {
2983
+ this.manageEntities.setBlankActiveEntity();
2984
+ }
2985
+ if (!this.manageEntities.activeEntity) {
2986
+ throw new Error(`Active entity should be selected`);
2987
+ }
2988
+ this.presetFields(this.manageEntities.activeEntity);
2989
+ void this.manageEntities.initMultiselect();
2990
+ }
2991
+ async submit() {
2992
+ if (!this.manageEntities.activeEntity) {
2993
+ throw new Error(`Active entity should be selected`);
2994
+ }
2995
+ if (this.entityForm.invalid || !this.manageEntities.peer.rtseeAppId) {
2996
+ console.log('Form Invalid!');
2997
+ return;
2998
+ }
2999
+ const entityParams = {
3000
+ name: this.nameField.getRawValue(),
3001
+ applicationId: this.manageEntities.peer.rtseeAppId,
3002
+ configurationId: this.configurationIdField.getRawValue(),
3003
+ imageUrl: this.imageUrlField.getRawValue(),
3004
+ tags: [],
3005
+ tagIds: []
3006
+ };
3007
+ if (this.manageEntities.activeEntity.id) {
3008
+ await this.manageEntities.updateEntity({
3009
+ ...entityParams,
3010
+ id: this.manageEntities.activeEntity.id
3011
+ });
3012
+ }
3013
+ else {
3014
+ await this.manageEntities.createEntity(entityParams);
3015
+ }
3016
+ }
3017
+ configurationInputChanged() {
3018
+ console.log('Configuration Input Changed');
3019
+ }
3020
+ cancel() {
3021
+ console.log('Cancel');
3022
+ }
3023
+ presetFields(entityConfiguration) {
3024
+ this.nameField.setValue(entityConfiguration.name);
3025
+ this.imageUrlField.setValue(entityConfiguration.imageUrl || '');
3026
+ this.configurationIdField.setValue(entityConfiguration.configurationId || '');
3027
+ }
3028
+ getEntityForm() {
3029
+ return this.formBuilder.group({
3030
+ name: this.formBuilder.control('', {
3031
+ validators: [
3032
+ Validators.required,
3033
+ Validators.minLength(3),
3034
+ Validators.maxLength(131)
3035
+ ]
3036
+ }),
3037
+ configurationId: this.formBuilder.control('', {
3038
+ validators: [
3039
+ Validators.required,
3040
+ ]
3041
+ }),
3042
+ imageUrl: this.formBuilder.control('', {
3043
+ validators: [
3044
+ Validators.minLength(6),
3045
+ Validators.maxLength(244)
3046
+ ]
3047
+ })
3048
+ });
3049
+ }
3050
+ get nameField() {
3051
+ return this.entityForm.get('name');
3052
+ }
3053
+ get imageUrlField() {
3054
+ return this.entityForm.get('imageUrl');
3055
+ }
3056
+ get configurationIdField() {
3057
+ return this.entityForm.get('configurationId');
3058
+ }
3059
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ManageEntityComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
3060
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: ManageEntityComponent, isStandalone: true, selector: "rtsee-manage-entity", inputs: { manageEntities: "manageEntities" }, ngImport: i0, template: "<div class=\"rtsee-manage-entity\">\n <div class=\"rtsee-manage-entity-info rtsee-form-container\">\n <form class=\"rtsee-entity-form rtsee-form\"\n [formGroup]=\"entityForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-entity-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-entity-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n @if (manageEntities.activeEntity) {\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-select [options]=\"manageEntities.configurations\"\n [formControl]=\"configurationIdField\"\n inputId=\"configuration_input\"\n optionLabel=\"name\"\n optionValue=\"id\"\n class=\"rtsee-entity-configuration-input\" />\n <label for=\"configuration_input\">Entity Configuration</label>\n </p-floatlabel>\n </p-inputgroup>\n\n @if (configurationIdField.hasError('required') && configurationIdField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Entity Configuration is required</p-message>\n }\n </div>\n }\n\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-entity-image-url-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"imageUrlField\"\n [class.p-invalid]=\"imageUrlField.invalid && imageUrlField.touched\"\n />\n <label for=\"rtsee-entity-image-url-field\">ImageUrl</label>\n </p-floatlabel>\n </p-inputgroup>\n </div>\n\n @if (manageEntities && manageEntities.tagsMultiselect) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-autocomplete [config]=\"manageEntities.tagsMultiselect\"></rtsee-autocomplete>\n </div>\n }\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageEntities.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageEntities.saveInProgress\"\n />\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "rtsee-autocomplete", inputs: ["config"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }] }); }
3061
+ }
3062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ManageEntityComponent, decorators: [{
3063
+ type: Component,
3064
+ args: [{ selector: 'rtsee-manage-entity', imports: [
3065
+ AutocompleteComponent,
3066
+ Button,
3067
+ FloatLabel,
3068
+ InputGroup,
3069
+ InputText,
3070
+ Message,
3071
+ ReactiveFormsModule,
3072
+ Select,
3073
+ FormsModule
3074
+ ], template: "<div class=\"rtsee-manage-entity\">\n <div class=\"rtsee-manage-entity-info rtsee-form-container\">\n <form class=\"rtsee-entity-form rtsee-form\"\n [formGroup]=\"entityForm\" (ngSubmit)=\"submit()\">\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-entity-name-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"nameField\"\n [class.p-invalid]=\"nameField.invalid && nameField.touched\"\n />\n <label for=\"rtsee-entity-name-field\">Name</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (nameField.hasError('required') && nameField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Name is required</p-message>\n }\n </div>\n @if (manageEntities.activeEntity) {\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-select [options]=\"manageEntities.configurations\"\n [formControl]=\"configurationIdField\"\n inputId=\"configuration_input\"\n optionLabel=\"name\"\n optionValue=\"id\"\n class=\"rtsee-entity-configuration-input\" />\n <label for=\"configuration_input\">Entity Configuration</label>\n </p-floatlabel>\n </p-inputgroup>\n\n @if (configurationIdField.hasError('required') && configurationIdField.touched) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >Entity Configuration is required</p-message>\n }\n </div>\n }\n\n <div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input id=\"rtsee-entity-image-url-field\"\n class=\"rtsee-form-field\"\n pInputText\n [formControl]=\"imageUrlField\"\n [class.p-invalid]=\"imageUrlField.invalid && imageUrlField.touched\"\n />\n <label for=\"rtsee-entity-image-url-field\">ImageUrl</label>\n </p-floatlabel>\n </p-inputgroup>\n </div>\n\n @if (manageEntities && manageEntities.tagsMultiselect) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-autocomplete [config]=\"manageEntities.tagsMultiselect\"></rtsee-autocomplete>\n </div>\n }\n\n <p-button type=\"submit\"\n [label]=\"'Save'\"\n [disabled]=\"manageEntities.saveInProgress\"\n />\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageEntities.saveInProgress\"\n />\n </form>\n </div>\n</div>\n" }]
3075
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { manageEntities: [{
3076
+ type: Input
3077
+ }] } });
3078
+
3079
+ class RtseeEntityCommentsComponent {
3080
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeEntityCommentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3081
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RtseeEntityCommentsComponent, isStandalone: true, selector: "rtsee-entity-comments", inputs: { messenger: "messenger", chat: "chat" }, ngImport: i0, template: "<div class=\"rtsee-entity-comments\">\n @if (messenger && chat) {\n <rtsee-chat [messenger]=\"messenger\"\n [chatData]=\"chat\"\n ></rtsee-chat>\n }\n</div>\n", dependencies: [{ kind: "component", type: ChatComponent, selector: "rtsee-chat", inputs: ["chat", "chatData", "messenger"] }] }); }
3082
+ }
3083
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeEntityCommentsComponent, decorators: [{
3084
+ type: Component,
3085
+ args: [{ selector: 'rtsee-entity-comments', imports: [
3086
+ ChatComponent
3087
+ ], template: "<div class=\"rtsee-entity-comments\">\n @if (messenger && chat) {\n <rtsee-chat [messenger]=\"messenger\"\n [chatData]=\"chat\"\n ></rtsee-chat>\n }\n</div>\n" }]
3088
+ }], propDecorators: { messenger: [{
3089
+ type: Input
3090
+ }], chat: [{
3091
+ type: Input
3092
+ }] } });
3093
+
3094
+ class RtseeEntityTagsComponent {
3095
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeEntityTagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3096
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RtseeEntityTagsComponent, isStandalone: true, selector: "rtsee-entity-tags", inputs: { entity: "entity" }, ngImport: i0, template: "<div class=\"rtsee-entity-tags\">\n @if (entity && entity.tags?.length) {\n <div class=\"rtsee-entity-tags-list\">\n @for (tag of entity.tags; track tag.id) {\n <p-chip class=\"rtsee-entity-tag\">\n <span class=\"rtsee-entity-tag-right\"\n >{{tag.name}}</span>\n </p-chip>\n }\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "disabled", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }] }); }
3097
+ }
3098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeEntityTagsComponent, decorators: [{
3099
+ type: Component,
3100
+ args: [{ selector: 'rtsee-entity-tags', imports: [
3101
+ Chip
3102
+ ], template: "<div class=\"rtsee-entity-tags\">\n @if (entity && entity.tags?.length) {\n <div class=\"rtsee-entity-tags-list\">\n @for (tag of entity.tags; track tag.id) {\n <p-chip class=\"rtsee-entity-tag\">\n <span class=\"rtsee-entity-tag-right\"\n >{{tag.name}}</span>\n </p-chip>\n }\n </div>\n }\n</div>\n" }]
3103
+ }], propDecorators: { entity: [{
3104
+ type: Input
3105
+ }] } });
3106
+
3107
+ class RtseeEntityPreviewComponent {
3108
+ ngOnInit() {
3109
+ void this.entity.reload();
3110
+ }
3111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeEntityPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RtseeEntityPreviewComponent, isStandalone: true, selector: "rtsee-entity-preview", inputs: { entity: "entity", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-entity-preview\">\n <div class=\"rtsee-entity-preview-tags\">\n <rtsee-entity-tags [entity]=\"entity\"></rtsee-entity-tags>\n </div>\n <div class=\"rtsee-entity-preview-comments\">\n @if (entity.comments && messenger) {\n <rtsee-entity-comments [messenger]=\"messenger\"\n [chat]=\"entity.comments\"\n ></rtsee-entity-comments>\n }\n </div>\n</div>\n", dependencies: [{ kind: "component", type: RtseeEntityCommentsComponent, selector: "rtsee-entity-comments", inputs: ["messenger", "chat"] }, { kind: "component", type: RtseeEntityTagsComponent, selector: "rtsee-entity-tags", inputs: ["entity"] }] }); }
3113
+ }
3114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeEntityPreviewComponent, decorators: [{
3115
+ type: Component,
3116
+ args: [{ selector: 'rtsee-entity-preview', imports: [
3117
+ RtseeEntityCommentsComponent,
3118
+ RtseeEntityTagsComponent
3119
+ ], template: "<div class=\"rtsee-entity-preview\">\n <div class=\"rtsee-entity-preview-tags\">\n <rtsee-entity-tags [entity]=\"entity\"></rtsee-entity-tags>\n </div>\n <div class=\"rtsee-entity-preview-comments\">\n @if (entity.comments && messenger) {\n <rtsee-entity-comments [messenger]=\"messenger\"\n [chat]=\"entity.comments\"\n ></rtsee-entity-comments>\n }\n </div>\n</div>\n" }]
3120
+ }], propDecorators: { entity: [{
3121
+ type: Input
3122
+ }], messenger: [{
3123
+ type: Input
3124
+ }] } });
3125
+
2430
3126
  class SignInComponent {
2431
3127
  constructor(formBuilder, router, authService) {
2432
3128
  this.formBuilder = formBuilder;
@@ -3193,5 +3889,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
3193
3889
  * Generated bundle index. Do not edit.
3194
3890
  */
3195
3891
 
3196
- export { MessengerComponent, NgxService, PaymentProductSnippetComponent, PresentationComponent, ProfileComponent, RTSeeAuthComponent, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RtseeEventsDashboardComponent, RtseePeerComponent, RtseeSettingsComponent };
3892
+ export { EntitiesConfigurationsListComponent, EntitiesListComponent, ManageEntityComponent, ManageEntityConfigurationComponent, MessengerComponent, NgxService, PaymentProductSnippetComponent, PresentationComponent, ProfileComponent, RTSeeAuthComponent, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RtseeEntityCommentsComponent, RtseeEntityPreviewComponent, RtseeEntityTagsComponent, RtseeEventsDashboardComponent, RtseePeerComponent, RtseeSettingsComponent, RtseeTagGroupManageComponent, RtseeTagGroupsManageComponent, RtseeTagManageComponent, RtseeTagsAccordionMenuComponent };
3197
3893
  //# sourceMappingURL=rtsee-ngx.mjs.map