@rtsee/ngx 0.0.95 → 0.0.97

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, output, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
+ import { Injectable, Input, Component, ViewChild, Directive, DOCUMENT, HostListener, Inject, EventEmitter, Output, forwardRef, 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, DatePipe, NgOptimizedImage, CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/forms';
@@ -42,13 +42,14 @@ import { Checkbox } from 'primeng/checkbox';
42
42
  import { InputNumber } from 'primeng/inputnumber';
43
43
  import * as i1$3 from 'primeng/autocomplete';
44
44
  import { AutoCompleteModule } from 'primeng/autocomplete';
45
+ import { Fieldset } from 'primeng/fieldset';
46
+ import { DatePicker } from 'primeng/datepicker';
45
47
  import { Tabs, TabList, Tab, TabPanels, TabPanel } from 'primeng/tabs';
46
48
  import { ColorPicker } from 'primeng/colorpicker';
47
49
  import { Slider } from 'primeng/slider';
48
- import { Fieldset } from 'primeng/fieldset';
49
50
  import { Tag } from 'primeng/tag';
50
51
  import { Listbox } from 'primeng/listbox';
51
- import { RTSeeRater, RecursiveSelect } from '@rtsee/utilities-ui';
52
+ import { RTSeeRater } from '@rtsee/utilities-ui';
52
53
  import { RTSeeRoutesList } from '@rtsee/factory';
53
54
  import { Avatar } from 'primeng/avatar';
54
55
  import { Image } from 'primeng/image';
@@ -1632,13 +1633,15 @@ class StoryThumbnailComponent {
1632
1633
  }
1633
1634
  }
1634
1635
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: StoryThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1635
- 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 @if (story.rating) {\n <rtsee-rating [rate]=\"{maxValue: 5, value: story.rating}\"></rtsee-rating>\n }\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: ["config", "rate"] }] }); }
1636
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: StoryThumbnailComponent, isStandalone: true, selector: "rtsee-story-thumbnail", inputs: { story: "story", presentation: "presentation" }, ngImport: i0, template: "<a [routerLink]=\"[presentation.routePrefix, story.friendlyUrl]\" 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 @if (story.rating) {\n <rtsee-rating [rate]=\"{maxValue: 5, value: story.rating}\"></rtsee-rating>\n }\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 }\n @if (story.recommendedAge) {\n <span class=\"rtsee-story-thumbnail-label-container\">{{story.recommendedAge}}</span>\n }\n </div>\n </div>\n</a>\n", dependencies: [{ kind: "component", type: RatingComponent, selector: "rtsee-rating", inputs: ["config", "rate"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
1636
1637
  }
1637
1638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: StoryThumbnailComponent, decorators: [{
1638
1639
  type: Component,
1639
- args: [{ selector: 'rtsee-story-thumbnail', imports: [RatingComponent], 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 @if (story.rating) {\n <rtsee-rating [rate]=\"{maxValue: 5, value: story.rating}\"></rtsee-rating>\n }\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" }]
1640
+ args: [{ selector: 'rtsee-story-thumbnail', imports: [RatingComponent, RouterLink], standalone: true, template: "<a [routerLink]=\"[presentation.routePrefix, story.friendlyUrl]\" 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 @if (story.rating) {\n <rtsee-rating [rate]=\"{maxValue: 5, value: story.rating}\"></rtsee-rating>\n }\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 }\n @if (story.recommendedAge) {\n <span class=\"rtsee-story-thumbnail-label-container\">{{story.recommendedAge}}</span>\n }\n </div>\n </div>\n</a>\n" }]
1640
1641
  }], propDecorators: { story: [{
1641
1642
  type: Input
1643
+ }], presentation: [{
1644
+ type: Input
1642
1645
  }] } });
1643
1646
 
1644
1647
  class SlideComponent {
@@ -1966,11 +1969,11 @@ class RecursiveSelectFieldComponent {
1966
1969
  this.fieldChanged.emit();
1967
1970
  }
1968
1971
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RecursiveSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1969
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RecursiveSelectFieldComponent, isStandalone: true, selector: "rtsee-field-recursive-select", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n <rtsee-recursive-select [selectModel]=\"field.recursiveSelect\"></rtsee-recursive-select>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ kind: "component", type: RecursiveSelectComponent, selector: "rtsee-recursive-select", inputs: ["selectModel"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }] }); }
1972
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: RecursiveSelectFieldComponent, isStandalone: true, selector: "rtsee-field-recursive-select", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n <p-divider></p-divider>\n <p>{{field.name}}</p>\n <rtsee-recursive-select [selectModel]=\"field.recursiveSelect\"></rtsee-recursive-select>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n <p-divider></p-divider>\n</div>\n", dependencies: [{ kind: "component", type: RecursiveSelectComponent, selector: "rtsee-recursive-select", inputs: ["selectModel"] }, { 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: Divider, selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }] }); }
1970
1973
  }
1971
1974
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RecursiveSelectFieldComponent, decorators: [{
1972
1975
  type: Component,
1973
- args: [{ selector: "rtsee-field-recursive-select", standalone: true, imports: [RecursiveSelectComponent, Message], template: "<div class=\"rtsee-form-field-container\">\n <rtsee-recursive-select [selectModel]=\"field.recursiveSelect\"></rtsee-recursive-select>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
1976
+ args: [{ selector: "rtsee-field-recursive-select", standalone: true, imports: [RecursiveSelectComponent, Message, Divider], template: "<div class=\"rtsee-form-field-container\">\n <p-divider></p-divider>\n <p>{{field.name}}</p>\n <rtsee-recursive-select [selectModel]=\"field.recursiveSelect\"></rtsee-recursive-select>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n <p-divider></p-divider>\n</div>\n" }]
1974
1977
  }], propDecorators: { field: [{
1975
1978
  type: Input
1976
1979
  }], fieldChanged: [{
@@ -2002,6 +2005,264 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2002
2005
  type: Output
2003
2006
  }] } });
2004
2007
 
2008
+ class DynamicFieldsFieldComponent {
2009
+ constructor() {
2010
+ this.fieldChanged = new EventEmitter();
2011
+ }
2012
+ onModelChange() {
2013
+ this.field.digest();
2014
+ this.fieldChanged.emit();
2015
+ }
2016
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DynamicFieldsFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2017
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: DynamicFieldsFieldComponent, isStandalone: true, selector: "rtsee-dynamic-fields-field", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-dynamic-fields-field\">\n <p-button label=\"Add a field\"\n (click)=\"field.add()\"\n ></p-button>\n\n <div class=\"rtsee-dynamic-fields-definitions\">\n @for (definition of field.fields; track definition.name) {\n <p-divider></p-divider>\n <p>dynamic field</p>\n <rtsee-form [form]=\"definition.form\"></rtsee-form>\n <p-button label=\"Add a field\"\n (click)=\"field.remove($index)\"\n ></p-button>\n <p-divider></p-divider>\n }\n </div>\n\n</div>\n", dependencies: [{ kind: "component", type: i0.forwardRef(() => 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: i0.forwardRef(() => FormComponent), selector: "rtsee-form", inputs: ["form"], outputs: ["formSubmit"] }, { kind: "component", type: i0.forwardRef(() => Divider), selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }] }); }
2018
+ }
2019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DynamicFieldsFieldComponent, decorators: [{
2020
+ type: Component,
2021
+ args: [{ selector: "rtsee-dynamic-fields-field", standalone: true, imports: [
2022
+ Button,
2023
+ forwardRef(() => FormComponent),
2024
+ Divider
2025
+ ], template: "<div class=\"rtsee-dynamic-fields-field\">\n <p-button label=\"Add a field\"\n (click)=\"field.add()\"\n ></p-button>\n\n <div class=\"rtsee-dynamic-fields-definitions\">\n @for (definition of field.fields; track definition.name) {\n <p-divider></p-divider>\n <p>dynamic field</p>\n <rtsee-form [form]=\"definition.form\"></rtsee-form>\n <p-button label=\"Add a field\"\n (click)=\"field.remove($index)\"\n ></p-button>\n <p-divider></p-divider>\n }\n </div>\n\n</div>\n" }]
2026
+ }], propDecorators: { field: [{
2027
+ type: Input
2028
+ }], fieldChanged: [{
2029
+ type: Output
2030
+ }] } });
2031
+
2032
+ class FieldDefinitionFieldComponent {
2033
+ constructor() {
2034
+ this.fieldChanged = new EventEmitter();
2035
+ }
2036
+ onModelChange() {
2037
+ this.field.digest();
2038
+ this.fieldChanged.emit();
2039
+ }
2040
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FieldDefinitionFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2041
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: FieldDefinitionFieldComponent, isStandalone: true, selector: "rtsee-field-definition-field", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-field-definition\">\n <div class=\"rtsee-form-field-container\">\n <p-divider></p-divider>\n <p>Custom Field</p>\n\n <rtsee-form [form]=\"field.form\"></rtsee-form>\n <p-divider></p-divider>\n </div>\n</div>\n\n<div class=\"rtsee-form-field-container\">\n <p-divider></p-divider>\n <p>Custom Field</p>\n\n <p-select [options]=\"field.typeOptions\"\n [optionLabel]=\"'friendlyName'\"\n ></p-select>\n\n\n\n <p-button label=\"remove\"\n severity=\"warn\"\n ></p-button>\n\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n <p-divider></p-divider>\n</div>\n", dependencies: [{ kind: "component", type: i0.forwardRef(() => Message), selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "component", type: i0.forwardRef(() => 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: i0.forwardRef(() => Divider), selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }, { kind: "component", type: i0.forwardRef(() => 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: "component", type: i0.forwardRef(() => FormComponent), selector: "rtsee-form", inputs: ["form"], outputs: ["formSubmit"] }] }); }
2042
+ }
2043
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FieldDefinitionFieldComponent, decorators: [{
2044
+ type: Component,
2045
+ args: [{ selector: "rtsee-field-definition-field", standalone: true, imports: [
2046
+ Message,
2047
+ Button,
2048
+ Divider,
2049
+ Select,
2050
+ forwardRef(() => FormComponent)
2051
+ ], template: "<div class=\"rtsee-field-definition\">\n <div class=\"rtsee-form-field-container\">\n <p-divider></p-divider>\n <p>Custom Field</p>\n\n <rtsee-form [form]=\"field.form\"></rtsee-form>\n <p-divider></p-divider>\n </div>\n</div>\n\n<div class=\"rtsee-form-field-container\">\n <p-divider></p-divider>\n <p>Custom Field</p>\n\n <p-select [options]=\"field.typeOptions\"\n [optionLabel]=\"'friendlyName'\"\n ></p-select>\n\n\n\n <p-button label=\"remove\"\n severity=\"warn\"\n ></p-button>\n\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n <p-divider></p-divider>\n</div>\n" }]
2052
+ }], propDecorators: { field: [{
2053
+ type: Input
2054
+ }], fieldChanged: [{
2055
+ type: Output
2056
+ }] } });
2057
+
2058
+ class SelectFieldComponent {
2059
+ constructor() {
2060
+ this.fieldChanged = new EventEmitter();
2061
+ }
2062
+ onModelChange() {
2063
+ this.field.digest();
2064
+ this.fieldChanged.emit();
2065
+ }
2066
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: SelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2067
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: SelectFieldComponent, isStandalone: true, selector: "rtsee-field-select", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-select [inputId]=\"field.name\"\n class=\"rtsee-form-field\"\n [options]=\"field.options\"\n [optionLabel]=\"field.labelKey\"\n [optionValue]=\"field.valueKey\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n ></p-select>\n <label [for]=\"field.name\">{{ field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"c\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n\n", dependencies: [{ 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"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { 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: 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"] }] }); }
2068
+ }
2069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: SelectFieldComponent, decorators: [{
2070
+ type: Component,
2071
+ args: [{ selector: "rtsee-field-select", standalone: true, imports: [FormsModule, InputGroup, FloatLabel, Message, Select], template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-select [inputId]=\"field.name\"\n class=\"rtsee-form-field\"\n [options]=\"field.options\"\n [optionLabel]=\"field.labelKey\"\n [optionValue]=\"field.valueKey\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n ></p-select>\n <label [for]=\"field.name\">{{ field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"c\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n\n" }]
2072
+ }], propDecorators: { field: [{
2073
+ type: Input
2074
+ }], fieldChanged: [{
2075
+ type: Output
2076
+ }] } });
2077
+
2078
+ class LocationFieldComponent {
2079
+ constructor() {
2080
+ this.fieldChanged = new EventEmitter();
2081
+ }
2082
+ onModelChange() {
2083
+ this.field.digest();
2084
+ this.fieldChanged.emit();
2085
+ }
2086
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: LocationFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2087
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: LocationFieldComponent, isStandalone: true, selector: "rtsee-field-location", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container rtsee-field-location-container mb-3\">\n <p-fieldset [legend]=\"field.description || field.name || 'Location'\">\n @if (field.form) {\n <rtsee-form [form]=\"field.form\" (formSubmit)=\"onModelChange()\"></rtsee-form>\n }\n </p-fieldset>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ kind: "component", type: i0.forwardRef(() => Fieldset), selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: i0.forwardRef(() => Message), selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "component", type: i0.forwardRef(() => FormComponent), selector: "rtsee-form", inputs: ["form"], outputs: ["formSubmit"] }] }); }
2088
+ }
2089
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: LocationFieldComponent, decorators: [{
2090
+ type: Component,
2091
+ args: [{ selector: "rtsee-field-location", standalone: true, imports: [
2092
+ Fieldset,
2093
+ Message,
2094
+ forwardRef(() => FormComponent)
2095
+ ], template: "<div class=\"rtsee-form-field-container rtsee-field-location-container mb-3\">\n <p-fieldset [legend]=\"field.description || field.name || 'Location'\">\n @if (field.form) {\n <rtsee-form [form]=\"field.form\" (formSubmit)=\"onModelChange()\"></rtsee-form>\n }\n </p-fieldset>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2096
+ }], propDecorators: { field: [{
2097
+ type: Input
2098
+ }], fieldChanged: [{
2099
+ type: Output
2100
+ }] } });
2101
+
2102
+ class TimeSlotFieldComponent {
2103
+ constructor() {
2104
+ this.fieldChanged = new EventEmitter();
2105
+ }
2106
+ onModelChange() {
2107
+ this.field.digest();
2108
+ this.fieldChanged.emit();
2109
+ }
2110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TimeSlotFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: TimeSlotFieldComponent, isStandalone: true, selector: "rtsee-field-time-slot", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container rtsee-field-time-slot-container mb-3\">\n <p-fieldset [legend]=\"field.description || field.name || 'Time Slot'\">\n @if (field.form) {\n <rtsee-form [form]=\"field.form\" (formSubmit)=\"onModelChange()\"></rtsee-form>\n }\n </p-fieldset>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ kind: "component", type: i0.forwardRef(() => Fieldset), selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: i0.forwardRef(() => Message), selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "component", type: i0.forwardRef(() => FormComponent), selector: "rtsee-form", inputs: ["form"], outputs: ["formSubmit"] }] }); }
2112
+ }
2113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TimeSlotFieldComponent, decorators: [{
2114
+ type: Component,
2115
+ args: [{ selector: "rtsee-field-time-slot", standalone: true, imports: [
2116
+ Fieldset,
2117
+ Message,
2118
+ forwardRef(() => FormComponent)
2119
+ ], template: "<div class=\"rtsee-form-field-container rtsee-field-time-slot-container mb-3\">\n <p-fieldset [legend]=\"field.description || field.name || 'Time Slot'\">\n @if (field.form) {\n <rtsee-form [form]=\"field.form\" (formSubmit)=\"onModelChange()\"></rtsee-form>\n }\n </p-fieldset>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2120
+ }], propDecorators: { field: [{
2121
+ type: Input
2122
+ }], fieldChanged: [{
2123
+ type: Output
2124
+ }] } });
2125
+
2126
+ class TimeSlotsFieldComponent {
2127
+ constructor() {
2128
+ this.fieldChanged = new EventEmitter();
2129
+ }
2130
+ onModelChange() {
2131
+ this.field.digest();
2132
+ this.fieldChanged.emit();
2133
+ }
2134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TimeSlotsFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: TimeSlotsFieldComponent, isStandalone: true, selector: "rtsee-field-time-slots", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container rtsee-field-time-slots-container mb-3\">\n <p-fieldset [legend]=\"field.description || field.name || 'Time Slots'\">\n <div class=\"mb-3\">\n <p-button label=\"Add Time Slot\" (click)=\"field.add()\"></p-button>\n </div>\n @for (slotField of field.slotFields; track $index) {\n <div class=\"p-3 border rounded mb-2\">\n @if (slotField.form) {\n <rtsee-form [form]=\"slotField.form\" (formSubmit)=\"onModelChange()\"></rtsee-form>\n }\n <div class=\"mt-2 text-right\">\n <p-button label=\"Remove Slot\" severity=\"warn\" (click)=\"field.remove($index)\"></p-button>\n </div>\n </div>\n }\n </p-fieldset>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ kind: "component", type: i0.forwardRef(() => 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: i0.forwardRef(() => Message), selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "component", type: i0.forwardRef(() => Fieldset), selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: i0.forwardRef(() => FormComponent), selector: "rtsee-form", inputs: ["form"], outputs: ["formSubmit"] }] }); }
2136
+ }
2137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TimeSlotsFieldComponent, decorators: [{
2138
+ type: Component,
2139
+ args: [{ selector: "rtsee-field-time-slots", standalone: true, imports: [
2140
+ Button,
2141
+ Divider,
2142
+ Message,
2143
+ Fieldset,
2144
+ forwardRef(() => FormComponent)
2145
+ ], template: "<div class=\"rtsee-form-field-container rtsee-field-time-slots-container mb-3\">\n <p-fieldset [legend]=\"field.description || field.name || 'Time Slots'\">\n <div class=\"mb-3\">\n <p-button label=\"Add Time Slot\" (click)=\"field.add()\"></p-button>\n </div>\n @for (slotField of field.slotFields; track $index) {\n <div class=\"p-3 border rounded mb-2\">\n @if (slotField.form) {\n <rtsee-form [form]=\"slotField.form\" (formSubmit)=\"onModelChange()\"></rtsee-form>\n }\n <div class=\"mt-2 text-right\">\n <p-button label=\"Remove Slot\" severity=\"warn\" (click)=\"field.remove($index)\"></p-button>\n </div>\n </div>\n }\n </p-fieldset>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2146
+ }], propDecorators: { field: [{
2147
+ type: Input
2148
+ }], fieldChanged: [{
2149
+ type: Output
2150
+ }] } });
2151
+
2152
+ class EntityFieldComponent {
2153
+ constructor() {
2154
+ this.fieldChanged = new EventEmitter();
2155
+ }
2156
+ ngOnInit() {
2157
+ if (this.field.autocompleteField?.autocomplete) {
2158
+ this.field.autocompleteField.autocomplete.on("select", () => {
2159
+ this.onModelChange();
2160
+ });
2161
+ }
2162
+ }
2163
+ onModelChange() {
2164
+ this.field.digest();
2165
+ this.fieldChanged.emit();
2166
+ }
2167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntityFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: EntityFieldComponent, isStandalone: true, selector: "rtsee-field-entity", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n @if (field.autocompleteField) {\n <rtsee-autocomplete [config]=\"field.autocompleteField.autocomplete\"></rtsee-autocomplete>\n }\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "rtsee-autocomplete", inputs: ["config"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }] }); }
2169
+ }
2170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntityFieldComponent, decorators: [{
2171
+ type: Component,
2172
+ args: [{ selector: "rtsee-field-entity", standalone: true, imports: [AutocompleteComponent, Message], template: "<div class=\"rtsee-form-field-container\">\n @if (field.autocompleteField) {\n <rtsee-autocomplete [config]=\"field.autocompleteField.autocomplete\"></rtsee-autocomplete>\n }\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2173
+ }], propDecorators: { field: [{
2174
+ type: Input
2175
+ }], fieldChanged: [{
2176
+ type: Output
2177
+ }] } });
2178
+
2179
+ class EntitiesListFieldComponent {
2180
+ constructor() {
2181
+ this.fieldChanged = new EventEmitter();
2182
+ }
2183
+ ngOnInit() {
2184
+ if (this.field.autocompleteField?.autocomplete) {
2185
+ this.field.autocompleteField.autocomplete.on("select", () => {
2186
+ this.onModelChange();
2187
+ });
2188
+ }
2189
+ }
2190
+ onModelChange() {
2191
+ this.field.digest();
2192
+ this.fieldChanged.emit();
2193
+ }
2194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntitiesListFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2195
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: EntitiesListFieldComponent, isStandalone: true, selector: "rtsee-field-entities-list", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n @if (field.autocompleteField) {\n <rtsee-autocomplete [config]=\"field.autocompleteField.autocomplete\"></rtsee-autocomplete>\n }\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "rtsee-autocomplete", inputs: ["config"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }] }); }
2196
+ }
2197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: EntitiesListFieldComponent, decorators: [{
2198
+ type: Component,
2199
+ args: [{ selector: "rtsee-field-entities-list", standalone: true, imports: [AutocompleteComponent, Message], template: "<div class=\"rtsee-form-field-container\">\n @if (field.autocompleteField) {\n <rtsee-autocomplete [config]=\"field.autocompleteField.autocomplete\"></rtsee-autocomplete>\n }\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message block mt-1\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2200
+ }], propDecorators: { field: [{
2201
+ type: Input
2202
+ }], fieldChanged: [{
2203
+ type: Output
2204
+ }] } });
2205
+
2206
+ class DateFieldComponent {
2207
+ constructor() {
2208
+ this.fieldChanged = new EventEmitter();
2209
+ }
2210
+ onModelChange() {
2211
+ this.field.digest();
2212
+ this.fieldChanged.emit();
2213
+ }
2214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DateFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2215
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: DateFieldComponent, isStandalone: true, selector: "rtsee-field-date", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-datePicker [inputId]=\"field.name\"\n class=\"rtsee-form-field\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n ></p-datePicker>\n <label [for]=\"field.name\">{{ field.description || field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ 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"] }, { kind: "component", type: DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "styleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "readonlyInput", "shortYearCutoff", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "minDate", "maxDate", "disabledDates", "disabledDays", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "view", "defaultDate", "appendTo"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }] }); }
2216
+ }
2217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: DateFieldComponent, decorators: [{
2218
+ type: Component,
2219
+ args: [{ selector: "rtsee-field-date", standalone: true, imports: [FormsModule, DatePicker, InputGroup, FloatLabel, Message], template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-datePicker [inputId]=\"field.name\"\n class=\"rtsee-form-field\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n ></p-datePicker>\n <label [for]=\"field.name\">{{ field.description || field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2220
+ }], propDecorators: { field: [{
2221
+ type: Input
2222
+ }], fieldChanged: [{
2223
+ type: Output
2224
+ }] } });
2225
+
2226
+ class VarcharFieldComponent {
2227
+ constructor() {
2228
+ this.fieldChanged = new EventEmitter();
2229
+ }
2230
+ onModelChange() {
2231
+ this.field.digest();
2232
+ this.fieldChanged.emit();
2233
+ }
2234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: VarcharFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2235
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: VarcharFieldComponent, isStandalone: true, selector: "rtsee-field-varchar", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input pInputText\n [id]=\"field.name\"\n class=\"rtsee-form-field\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n />\n <label [for]=\"field.name\">{{ field.description || field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }] }); }
2236
+ }
2237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: VarcharFieldComponent, decorators: [{
2238
+ type: Component,
2239
+ args: [{ selector: "rtsee-field-varchar", standalone: true, imports: [FormsModule, InputText, InputGroup, FloatLabel, Message], template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <input pInputText\n [id]=\"field.name\"\n class=\"rtsee-form-field\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n />\n <label [for]=\"field.name\">{{ field.description || field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2240
+ }], propDecorators: { field: [{
2241
+ type: Input
2242
+ }], fieldChanged: [{
2243
+ type: Output
2244
+ }] } });
2245
+
2246
+ class FloatFieldComponent {
2247
+ constructor() {
2248
+ this.fieldChanged = new EventEmitter();
2249
+ }
2250
+ onModelChange() {
2251
+ this.field.digest();
2252
+ this.fieldChanged.emit();
2253
+ }
2254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FloatFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2255
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: FloatFieldComponent, isStandalone: true, selector: "rtsee-field-float", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-inputNumber [inputId]=\"field.name\"\n class=\"rtsee-form-field\"\n [minFractionDigits]=\"1\"\n [maxFractionDigits]=\"6\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n ></p-inputNumber>\n <label [for]=\"field.name\">{{ field.description || field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n", dependencies: [{ 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"] }, { kind: "component", type: InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["styleClass"] }, { kind: "component", type: FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }] }); }
2256
+ }
2257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FloatFieldComponent, decorators: [{
2258
+ type: Component,
2259
+ args: [{ selector: "rtsee-field-float", standalone: true, imports: [FormsModule, InputNumber, InputGroup, FloatLabel, Message], template: "<div class=\"rtsee-form-field-container\">\n <p-inputgroup>\n <p-floatlabel variant=\"on\">\n <p-inputNumber [inputId]=\"field.name\"\n class=\"rtsee-form-field\"\n [minFractionDigits]=\"1\"\n [maxFractionDigits]=\"6\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onModelChange()\"\n [class.p-invalid]=\"!field.isValid && field.isDirty\"\n ></p-inputNumber>\n <label [for]=\"field.name\">{{ field.description || field.name }}</label>\n </p-floatlabel>\n </p-inputgroup>\n @if (!field.isValid && field.isDirty) {\n @for (error of field.validator.result.errors; track error.message) {\n <p-message class=\"rtsee-form-field-error-message\"\n severity=\"error\"\n variant=\"simple\"\n size=\"small\"\n >{{ error.message }}</p-message>\n }\n }\n</div>\n" }]
2260
+ }], propDecorators: { field: [{
2261
+ type: Input
2262
+ }], fieldChanged: [{
2263
+ type: Output
2264
+ }] } });
2265
+
2005
2266
  class FormFieldComponent {
2006
2267
  constructor() {
2007
2268
  this.fieldChanged = new EventEmitter();
@@ -2010,7 +2271,7 @@ class FormFieldComponent {
2010
2271
  this.fieldChanged.emit();
2011
2272
  }
2012
2273
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2013
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: FormFieldComponent, isStandalone: true, selector: "rtsee-form-field", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "@switch (field.type) {\n @case ('text') {\n <rtsee-field-text [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-text>\n }\n @case ('textarea') {\n <rtsee-field-textarea [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-textarea>\n }\n @case ('checkbox') {\n <rtsee-field-checkbox [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-checkbox>\n }\n @case ('radio') {\n <rtsee-field-radio [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-radio>\n }\n @case ('number') {\n <rtsee-field-number [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-number>\n }\n @case ('autocomplete') {\n <rtsee-field-autocomplete [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-autocomplete>\n }\n @case ('recursive-select') {\n <rtsee-field-recursive-select [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-recursive-select>\n }\n @case ('image-uploader') {\n <rtsee-field-image-uploader [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-image-uploader>\n }\n}\n", dependencies: [{ kind: "component", type: TextFieldComponent, selector: "rtsee-field-text", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: TextareaFieldComponent, selector: "rtsee-field-textarea", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: CheckboxFieldComponent, selector: "rtsee-field-checkbox", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: RadioFieldComponent, selector: "rtsee-field-radio", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: NumberFieldComponent, selector: "rtsee-field-number", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: AutocompleteFieldComponent, selector: "rtsee-field-autocomplete", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: RecursiveSelectFieldComponent, selector: "rtsee-field-recursive-select", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: ImageUploaderFieldComponent, selector: "rtsee-field-image-uploader", inputs: ["field"], outputs: ["fieldChanged"] }] }); }
2274
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: FormFieldComponent, isStandalone: true, selector: "rtsee-form-field", inputs: { field: "field" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "@switch (field.type) {\n @case ('text') {\n <rtsee-field-text [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-text>\n }\n @case ('varchar') {\n <rtsee-field-varchar [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-varchar>\n }\n @case ('textarea') {\n <rtsee-field-textarea [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-textarea>\n }\n @case ('checkbox') {\n <rtsee-field-checkbox [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-checkbox>\n }\n @case ('radio') {\n <rtsee-field-radio [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-radio>\n }\n @case ('number') {\n <rtsee-field-number [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-number>\n }\n @case ('integer') {\n <rtsee-field-number [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-number>\n }\n @case ('float4') {\n <rtsee-field-float [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-float>\n }\n @case ('date') {\n <rtsee-field-date [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-date>\n }\n @case ('autocomplete') {\n <rtsee-field-autocomplete [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-autocomplete>\n }\n @case ('entity') {\n <rtsee-field-entity [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-entity>\n }\n @case ('entities-list') {\n <rtsee-field-entities-list [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-entities-list>\n }\n @case ('location') {\n <rtsee-field-location [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-location>\n }\n @case ('time_slot') {\n <rtsee-field-time-slot [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-time-slot>\n }\n @case ('time_slots') {\n <rtsee-field-time-slots [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-time-slots>\n }\n @case ('recursive-select') {\n <rtsee-field-recursive-select [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-recursive-select>\n }\n @case ('select') {\n <rtsee-field-select [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-select>\n }\n @case ('image-uploader') {\n <rtsee-field-image-uploader [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-image-uploader>\n }\n @case ('field-definition') {\n <rtsee-field-definition-field [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-definition-field>\n }\n @case ('dynamic-fields') {\n <rtsee-dynamic-fields-field [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-dynamic-fields-field>\n }\n}\n", dependencies: [{ kind: "component", type: i0.forwardRef(() => TextFieldComponent), selector: "rtsee-field-text", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => TextareaFieldComponent), selector: "rtsee-field-textarea", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => CheckboxFieldComponent), selector: "rtsee-field-checkbox", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => RadioFieldComponent), selector: "rtsee-field-radio", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => NumberFieldComponent), selector: "rtsee-field-number", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => AutocompleteFieldComponent), selector: "rtsee-field-autocomplete", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => RecursiveSelectFieldComponent), selector: "rtsee-field-recursive-select", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => ImageUploaderFieldComponent), selector: "rtsee-field-image-uploader", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => FieldDefinitionFieldComponent), selector: "rtsee-field-definition-field", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => DynamicFieldsFieldComponent), selector: "rtsee-dynamic-fields-field", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => SelectFieldComponent), selector: "rtsee-field-select", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => LocationFieldComponent), selector: "rtsee-field-location", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => TimeSlotFieldComponent), selector: "rtsee-field-time-slot", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => TimeSlotsFieldComponent), selector: "rtsee-field-time-slots", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => EntityFieldComponent), selector: "rtsee-field-entity", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => EntitiesListFieldComponent), selector: "rtsee-field-entities-list", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => DateFieldComponent), selector: "rtsee-field-date", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => VarcharFieldComponent), selector: "rtsee-field-varchar", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "component", type: i0.forwardRef(() => FloatFieldComponent), selector: "rtsee-field-float", inputs: ["field"], outputs: ["fieldChanged"] }] }); }
2014
2275
  }
2015
2276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FormFieldComponent, decorators: [{
2016
2277
  type: Component,
@@ -2022,8 +2283,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2022
2283
  NumberFieldComponent,
2023
2284
  AutocompleteFieldComponent,
2024
2285
  RecursiveSelectFieldComponent,
2025
- ImageUploaderFieldComponent
2026
- ], template: "@switch (field.type) {\n @case ('text') {\n <rtsee-field-text [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-text>\n }\n @case ('textarea') {\n <rtsee-field-textarea [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-textarea>\n }\n @case ('checkbox') {\n <rtsee-field-checkbox [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-checkbox>\n }\n @case ('radio') {\n <rtsee-field-radio [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-radio>\n }\n @case ('number') {\n <rtsee-field-number [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-number>\n }\n @case ('autocomplete') {\n <rtsee-field-autocomplete [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-autocomplete>\n }\n @case ('recursive-select') {\n <rtsee-field-recursive-select [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-recursive-select>\n }\n @case ('image-uploader') {\n <rtsee-field-image-uploader [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-image-uploader>\n }\n}\n" }]
2286
+ ImageUploaderFieldComponent,
2287
+ forwardRef(() => FieldDefinitionFieldComponent),
2288
+ forwardRef(() => DynamicFieldsFieldComponent),
2289
+ SelectFieldComponent,
2290
+ LocationFieldComponent,
2291
+ TimeSlotFieldComponent,
2292
+ TimeSlotsFieldComponent,
2293
+ EntityFieldComponent,
2294
+ EntitiesListFieldComponent,
2295
+ DateFieldComponent,
2296
+ VarcharFieldComponent,
2297
+ FloatFieldComponent
2298
+ ], template: "@switch (field.type) {\n @case ('text') {\n <rtsee-field-text [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-text>\n }\n @case ('varchar') {\n <rtsee-field-varchar [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-varchar>\n }\n @case ('textarea') {\n <rtsee-field-textarea [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-textarea>\n }\n @case ('checkbox') {\n <rtsee-field-checkbox [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-checkbox>\n }\n @case ('radio') {\n <rtsee-field-radio [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-radio>\n }\n @case ('number') {\n <rtsee-field-number [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-number>\n }\n @case ('integer') {\n <rtsee-field-number [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-number>\n }\n @case ('float4') {\n <rtsee-field-float [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-float>\n }\n @case ('date') {\n <rtsee-field-date [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-date>\n }\n @case ('autocomplete') {\n <rtsee-field-autocomplete [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-autocomplete>\n }\n @case ('entity') {\n <rtsee-field-entity [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-entity>\n }\n @case ('entities-list') {\n <rtsee-field-entities-list [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-entities-list>\n }\n @case ('location') {\n <rtsee-field-location [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-location>\n }\n @case ('time_slot') {\n <rtsee-field-time-slot [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-time-slot>\n }\n @case ('time_slots') {\n <rtsee-field-time-slots [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-time-slots>\n }\n @case ('recursive-select') {\n <rtsee-field-recursive-select [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-recursive-select>\n }\n @case ('select') {\n <rtsee-field-select [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-select>\n }\n @case ('image-uploader') {\n <rtsee-field-image-uploader [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-image-uploader>\n }\n @case ('field-definition') {\n <rtsee-field-definition-field [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-field-definition-field>\n }\n @case ('dynamic-fields') {\n <rtsee-dynamic-fields-field [field]=\"$any(field)\" (fieldChanged)=\"onFieldChanged()\"></rtsee-dynamic-fields-field>\n }\n}\n" }]
2027
2299
  }], propDecorators: { field: [{
2028
2300
  type: Input
2029
2301
  }], fieldChanged: [{
@@ -2043,11 +2315,11 @@ class FormComponent {
2043
2315
  this.form.evaluateIsChanged();
2044
2316
  }
2045
2317
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2046
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: FormComponent, isStandalone: true, selector: "rtsee-form", inputs: { form: "form" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: "<div class=\"rtsee-form-container\">\n @if (form.name) {\n <h3 class=\"rtsee-form-title font-bold text-lg mb-2\">{{ form.name }}</h3>\n }\n @if (form.description) {\n <p class=\"rtsee-form-description text-sm text-gray-500 mb-4\">{{ form.description }}</p>\n }\n <form class=\"rtsee-story-form rtsee-form\" (ngSubmit)=\"submit()\">\n @for (field of form.fields; track field.name) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-form-field [field]=\"field\"\n (fieldChanged)=\"onFieldChanged()\"\n ></rtsee-form-field>\n </div>\n }\n\n <div class=\"rtsee-form-submit-container mt-4\">\n <ng-content>\n <p-button type=\"submit\" label=\"Submit\" [disabled]=\"!form.isValid\"></p-button>\n </ng-content>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "component", type: FormFieldComponent, selector: "rtsee-form-field", inputs: ["field"], outputs: ["fieldChanged"] }, { 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: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
2318
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: FormComponent, isStandalone: true, selector: "rtsee-form", inputs: { form: "form" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: "<div class=\"rtsee-form-container\">\n @if (form.name) {\n <h3 class=\"rtsee-form-title font-bold text-lg mb-2\">{{ form.name }}</h3>\n }\n @if (form.description) {\n <p class=\"rtsee-form-description text-sm text-gray-500 mb-4\">{{ form.description }}</p>\n }\n <form class=\"rtsee-story-form rtsee-form\" (ngSubmit)=\"submit()\">\n @for (field of form.fields; track field.name) {\n <div class=\"rtsee-form-field-container\">\n @if (field.active) {\n <rtsee-form-field [field]=\"field\"\n (fieldChanged)=\"onFieldChanged()\"\n ></rtsee-form-field>\n }\n </div>\n }\n <div class=\"rtsee-form-submit-container\">\n <ng-content>\n </ng-content>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "component", type: FormFieldComponent, selector: "rtsee-form-field", inputs: ["field"], outputs: ["fieldChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
2047
2319
  }
2048
2320
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: FormComponent, decorators: [{
2049
2321
  type: Component,
2050
- args: [{ selector: "rtsee-form", standalone: true, imports: [FormFieldComponent, Button, FormsModule], template: "<div class=\"rtsee-form-container\">\n @if (form.name) {\n <h3 class=\"rtsee-form-title font-bold text-lg mb-2\">{{ form.name }}</h3>\n }\n @if (form.description) {\n <p class=\"rtsee-form-description text-sm text-gray-500 mb-4\">{{ form.description }}</p>\n }\n <form class=\"rtsee-story-form rtsee-form\" (ngSubmit)=\"submit()\">\n @for (field of form.fields; track field.name) {\n <div class=\"rtsee-form-field-container\">\n <rtsee-form-field [field]=\"field\"\n (fieldChanged)=\"onFieldChanged()\"\n ></rtsee-form-field>\n </div>\n }\n\n <div class=\"rtsee-form-submit-container mt-4\">\n <ng-content>\n <p-button type=\"submit\" label=\"Submit\" [disabled]=\"!form.isValid\"></p-button>\n </ng-content>\n </div>\n </form>\n</div>\n" }]
2322
+ args: [{ selector: "rtsee-form", standalone: true, imports: [FormFieldComponent, Button, FormsModule], template: "<div class=\"rtsee-form-container\">\n @if (form.name) {\n <h3 class=\"rtsee-form-title font-bold text-lg mb-2\">{{ form.name }}</h3>\n }\n @if (form.description) {\n <p class=\"rtsee-form-description text-sm text-gray-500 mb-4\">{{ form.description }}</p>\n }\n <form class=\"rtsee-story-form rtsee-form\" (ngSubmit)=\"submit()\">\n @for (field of form.fields; track field.name) {\n <div class=\"rtsee-form-field-container\">\n @if (field.active) {\n <rtsee-form-field [field]=\"field\"\n (fieldChanged)=\"onFieldChanged()\"\n ></rtsee-form-field>\n }\n </div>\n }\n <div class=\"rtsee-form-submit-container\">\n <ng-content>\n </ng-content>\n </div>\n </form>\n</div>\n" }]
2051
2323
  }], propDecorators: { form: [{
2052
2324
  type: Input
2053
2325
  }], formSubmit: [{
@@ -2685,8 +2957,13 @@ class PresentationComponent {
2685
2957
  constructor() {
2686
2958
  this.RTSeeTextLabelKeys = RTSeeTextLabelKeys;
2687
2959
  }
2960
+ onStoryThumbnailClicked(story) {
2961
+ if (!story.friendlyUrl) {
2962
+ void this.presentation.openStoryDetails(story.id, story.preselectedSlideNumber || undefined);
2963
+ }
2964
+ }
2688
2965
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PresentationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2689
- 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"] }] }); }
2966
+ 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)=\"onStoryThumbnailClicked(story)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n [presentation]=\"presentation\"\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)=\"onStoryThumbnailClicked(story)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n [presentation]=\"presentation\"\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", "presentation"] }, { 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"] }] }); }
2690
2967
  }
2691
2968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PresentationComponent, decorators: [{
2692
2969
  type: Component,
@@ -2699,7 +2976,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2699
2976
  PresentationsDashboardComponent,
2700
2977
  PresentationSettingsComponent,
2701
2978
  StoryDetailsComponent,
2702
- ], 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" }]
2979
+ ], 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)=\"onStoryThumbnailClicked(story)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n [presentation]=\"presentation\"\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)=\"onStoryThumbnailClicked(story)\"\n >\n <rtsee-story-thumbnail\n [story]=\"story\"\n [presentation]=\"presentation\"\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" }]
2703
2980
  }], ctorParameters: () => [], propDecorators: { presentation: [{
2704
2981
  type: Input
2705
2982
  }], messenger: [{
@@ -2788,7 +3065,7 @@ class RTSeeContainerComponent {
2788
3065
  this.isSidenavExpanded = !this.isSidenavExpanded;
2789
3066
  }
2790
3067
  defineSideNavState(url) {
2791
- const isBase = url === '/' || url.startsWith('/?');
3068
+ const isBase = url === '/' || url.startsWith('/?') || url.startsWith('/story');
2792
3069
  const routeUrlSplit = url.split('/');
2793
3070
  const rootRoutePath = isBase ? '' : routeUrlSplit[1] || null;
2794
3071
  if (!rootRoutePath && !isBase) {
@@ -2863,11 +3140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
2863
3140
  }] } });
2864
3141
 
2865
3142
  class RtseeTagManageComponent {
2866
- constructor(formBuilder) {
2867
- this.formBuilder = formBuilder;
2868
- this.tagsRecursiveSelect = null;
2869
- this.tagForm = this.getTagForm();
2870
- }
3143
+ constructor() { }
2871
3144
  ngOnInit() {
2872
3145
  if (!this.manageTags.activeTag) {
2873
3146
  this.manageTags.setBlankActiveTag();
@@ -2875,124 +3148,20 @@ class RtseeTagManageComponent {
2875
3148
  if (!this.manageTags.activeTag) {
2876
3149
  throw new Error(`Active tag should be selected`);
2877
3150
  }
2878
- this.presetFields(this.manageTags.activeTag);
2879
- }
2880
- async presetParent() {
2881
- console.log('presetParent', this.manageTags.activeTag);
2882
- if (!this.manageTags.activeTag) {
2883
- return;
2884
- }
2885
- const selectOptions = {
2886
- items: this.manageTags.tags,
2887
- placeholderValue: 'Select A tag',
2888
- getChildren: (tag) => {
2889
- return tag.children || [];
2890
- },
2891
- getLabel: (tag) => {
2892
- return tag.name;
2893
- },
2894
- getRemoteParent: (tag) => {
2895
- if (!tag.parentId) {
2896
- return Promise.resolve(null);
2897
- }
2898
- return this.manageTags.getTag(tag.parentId);
2899
- },
2900
- };
2901
- console.log('active tag', this.manageTags.activeTag);
2902
- if (this.manageTags.activeTag.parentId) {
2903
- selectOptions.value = await this.manageTags.getTag(this.manageTags.activeTag.parentId);
2904
- }
2905
- this.tagsRecursiveSelect = new RecursiveSelect(selectOptions);
2906
- }
2907
- async submit() {
2908
- if (this.tagForm.invalid ||
2909
- !this.manageTags.peer.rtseeAppId ||
2910
- !this.manageTags.activeTag) {
2911
- console.log('Form Invalid!');
2912
- return;
2913
- }
2914
- const parentId = this.tagsRecursiveSelect?.value?.id;
2915
- const tagParams = {
2916
- name: this.nameField.getRawValue(),
2917
- description: this.descriptionField.getRawValue(),
2918
- applicationId: this.manageTags.applicationId,
2919
- parentId,
2920
- };
2921
- if (this.manageTags.activeTag.id) {
2922
- const options = {
2923
- id: this.manageTags.activeTag.id,
2924
- ...tagParams,
2925
- };
2926
- await this.manageTags.updateTag(options);
2927
- }
2928
- else {
2929
- await this.manageTags.createTag(tagParams);
2930
- }
2931
3151
  }
2932
3152
  cancel() {
2933
3153
  console.log('Cancel');
2934
3154
  }
2935
- presetFields(tag) {
2936
- this.nameField.setValue(tag.name);
2937
- this.descriptionField.setValue(tag.description || '');
2938
- this.iconClassField.setValue(tag.iconClassName || '');
2939
- console.log('preset fields');
2940
- void this.presetParent();
2941
- }
2942
- getTagForm() {
2943
- return this.formBuilder.group({
2944
- name: this.formBuilder.control('', {
2945
- validators: [
2946
- Validators.required,
2947
- Validators.minLength(3),
2948
- Validators.maxLength(131),
2949
- ],
2950
- }),
2951
- description: this.formBuilder.control('', {
2952
- validators: [
2953
- Validators.required,
2954
- Validators.minLength(6),
2955
- Validators.maxLength(244),
2956
- ],
2957
- }),
2958
- iconClass: this.formBuilder.control('', {
2959
- validators: [Validators.minLength(1), Validators.maxLength(244)],
2960
- }),
2961
- value: this.formBuilder.control('', {
2962
- validators: [Validators.minLength(1), Validators.maxLength(244)],
2963
- }),
2964
- });
2965
- }
2966
- get nameField() {
2967
- return this.tagForm.get('name');
2968
- }
2969
- get descriptionField() {
2970
- return this.tagForm.get('description');
2971
- }
2972
- get iconClassField() {
2973
- return this.tagForm.get('iconClass');
2974
- }
2975
- get valueField() {
2976
- return this.tagForm.get('value');
2977
- }
2978
- 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 }); }
2979
- 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"] }] }); }
3155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagManageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3156
+ 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 @if (manageTags.activeTagForm) {\n <rtsee-form [form]=\"manageTags.activeTagForm\" (submit)=\"manageTags.activeTagForm.submit()\">\n <p-button type=\"submit\"\n label=\"Submit\"\n [disabled]=\"manageTags.saveInProgress\"\n ></p-button>\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageTags.saveInProgress\"\n />\n </rtsee-form>\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: "component", type: FormComponent, selector: "rtsee-form", inputs: ["form"], outputs: ["formSubmit"] }] }); }
2980
3157
  }
2981
3158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: RtseeTagManageComponent, decorators: [{
2982
3159
  type: Component,
2983
3160
  args: [{ selector: 'rtsee-rtsee-tag-manage', imports: [
2984
3161
  Button,
2985
- FloatLabel,
2986
- FormsModule,
2987
- InputGroup,
2988
- InputText,
2989
- Message,
2990
- Textarea,
2991
- ReactiveFormsModule,
2992
- RecursiveSelectComponent,
2993
- Divider,
2994
- ], 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" }]
2995
- }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { manageTags: [{
3162
+ FormComponent,
3163
+ ], template: "<div class=\"rtsee-manage-tag\">\n @if (manageTags.activeTagForm) {\n <rtsee-form [form]=\"manageTags.activeTagForm\" (submit)=\"manageTags.activeTagForm.submit()\">\n <p-button type=\"submit\"\n label=\"Submit\"\n [disabled]=\"manageTags.saveInProgress\"\n ></p-button>\n <p-button [label]=\"'Cancel'\"\n severity=\"secondary\"\n (click)=\"cancel()\"\n [disabled]=\"manageTags.saveInProgress\"\n />\n </rtsee-form>\n }\n</div>\n" }]
3164
+ }], ctorParameters: () => [], propDecorators: { manageTags: [{
2996
3165
  type: Input
2997
3166
  }] } });
2998
3167