@wertzui/ngx-restworld-client 18.0.0 → 19.0.0

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.
@@ -59,8 +59,7 @@ import * as i6$1 from 'primeng/progressspinner';
59
59
  import { ProgressSpinnerModule } from 'primeng/progressspinner';
60
60
  import * as i8 from 'primeng/ripple';
61
61
  import { RippleModule } from 'primeng/ripple';
62
- import { WebTracerProvider, SimpleSpanProcessor, ConsoleSpanExporter, BatchSpanProcessor, AlwaysOnSampler, ParentBasedSampler, TraceIdRatioBasedSampler, AlwaysOffSampler } from '@opentelemetry/sdk-trace-web';
63
- import { ZoneContextManager } from '@opentelemetry/context-zone-peer-dep';
62
+ import { WebTracerProvider, StackContextManager, SimpleSpanProcessor, ConsoleSpanExporter, BatchSpanProcessor, AlwaysOnSampler, ParentBasedSampler, TraceIdRatioBasedSampler, AlwaysOffSampler } from '@opentelemetry/sdk-trace-web';
64
63
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
65
64
  import { resourceFromAttributes } from '@opentelemetry/resources';
66
65
  import { trace, context, SpanKind, propagation, SpanStatusCode } from '@opentelemetry/api';
@@ -196,10 +195,10 @@ class AvatarGenerator {
196
195
  };
197
196
  return style;
198
197
  }
199
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: AvatarGenerator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
200
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: AvatarGenerator, providedIn: 'root' });
198
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AvatarGenerator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
199
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AvatarGenerator, providedIn: 'root' });
201
200
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: AvatarGenerator, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AvatarGenerator, decorators: [{
203
202
  type: Injectable,
204
203
  args: [{
205
204
  providedIn: 'root',
@@ -218,21 +217,21 @@ class RestWorldAvatarComponent {
218
217
  /**
219
218
  * The username of the user to display an avatar for.
220
219
  */
221
- user = input.required(...(ngDevMode ? [{ debugName: "user" }] : []));
222
- image = computed(async () => await this._generator.getImageAsync(this.user()), ...(ngDevMode ? [{ debugName: "image" }] : []));
223
- label = computed(async () => await this._generator.getLabelAsync(this.user()), ...(ngDevMode ? [{ debugName: "label" }] : []));
224
- style = computed(async () => await this._generator.getStyleAsync(this.user()), ...(ngDevMode ? [{ debugName: "style" }] : []));
225
- tooltip = computed(() => this.user() ?? '', ...(ngDevMode ? [{ debugName: "tooltip" }] : []));
220
+ user = input.required(...(ngDevMode ? [{ debugName: "user" }] : /* istanbul ignore next */ []));
221
+ image = computed(async () => await this._generator.getImageAsync(this.user()), ...(ngDevMode ? [{ debugName: "image" }] : /* istanbul ignore next */ []));
222
+ label = computed(async () => await this._generator.getLabelAsync(this.user()), ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
223
+ style = computed(async () => await this._generator.getStyleAsync(this.user()), ...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
224
+ tooltip = computed(() => this.user() ?? '', ...(ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []));
226
225
  constructor(_generator) {
227
226
  this._generator = _generator;
228
227
  }
229
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldAvatarComponent, deps: [{ token: AvatarGenerator }], target: i0.ɵɵFactoryTarget.Component });
230
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: RestWorldAvatarComponent, isStandalone: true, selector: "rw-avatar", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<p-avatar \n [pTooltip]=\"tooltip()\" \n tooltipPosition=\"top\" \n [image]=\"$any(image() | async)\" \n [label]=\"$any(label() | async)\" \n [style]=\"style() | async\"\n shape=\"circle\">\n</p-avatar>", styles: [""], dependencies: [{ kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i2.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
228
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldAvatarComponent, deps: [{ token: AvatarGenerator }], target: i0.ɵɵFactoryTarget.Component });
229
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: RestWorldAvatarComponent, isStandalone: true, selector: "rw-avatar", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<p-avatar \r\n [pTooltip]=\"tooltip()\" \r\n tooltipPosition=\"top\" \r\n [image]=\"$any(image() | async)\" \r\n [label]=\"$any(label() | async)\" \r\n [style]=\"style() | async\"\r\n shape=\"circle\">\r\n</p-avatar>", styles: [""], dependencies: [{ kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i2.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
231
230
  }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldAvatarComponent, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldAvatarComponent, decorators: [{
233
232
  type: Component,
234
- args: [{ selector: 'rw-avatar', standalone: true, imports: [AvatarModule, TooltipModule, AsyncPipe], template: "<p-avatar \n [pTooltip]=\"tooltip()\" \n tooltipPosition=\"top\" \n [image]=\"$any(image() | async)\" \n [label]=\"$any(label() | async)\" \n [style]=\"style() | async\"\n shape=\"circle\">\n</p-avatar>" }]
235
- }], ctorParameters: () => [{ type: AvatarGenerator }] });
233
+ args: [{ selector: 'rw-avatar', standalone: true, imports: [AvatarModule, TooltipModule, AsyncPipe], template: "<p-avatar \r\n [pTooltip]=\"tooltip()\" \r\n tooltipPosition=\"top\" \r\n [image]=\"$any(image() | async)\" \r\n [label]=\"$any(label() | async)\" \r\n [style]=\"style() | async\"\r\n shape=\"circle\">\r\n</p-avatar>" }]
234
+ }], ctorParameters: () => [{ type: AvatarGenerator }], propDecorators: { user: [{ type: i0.Input, args: [{ isSignal: true, alias: "user", required: true }] }] } });
236
235
 
237
236
  /**
238
237
  * A property that represents an image.
@@ -259,17 +258,17 @@ class RestWorldLabelComponent {
259
258
  * The property to be displayed.
260
259
  * @required
261
260
  **/
262
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
261
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
263
262
  get PropertyType() {
264
263
  return PropertyType;
265
264
  }
266
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
267
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldLabelComponent, isStandalone: true, selector: "rw-label", inputs: { property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (property().type !== PropertyType.Hidden) {\r\n <label \r\n [attr.for]=\"property().name\"\r\n [class.p-disabled]=\"property().readOnly\">\r\n {{property().prompt ?? property().name}}\r\n </label>\r\n}", styles: [".label-hidden{visibility:hidden}.label-collapsed{display:none}\n"], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
265
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
266
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldLabelComponent, isStandalone: true, selector: "rw-label", inputs: { property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (property().type !== PropertyType.Hidden) {\r\n <label \r\n [attr.for]=\"property().name\"\r\n [class.p-disabled]=\"property().readOnly\">\r\n {{property().prompt ?? property().name}}\r\n </label>\r\n}", styles: [".label-hidden{visibility:hidden}.label-collapsed{display:none}\n"], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
268
267
  }
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldLabelComponent, decorators: [{
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldLabelComponent, decorators: [{
270
269
  type: Component,
271
270
  args: [{ selector: 'rw-label', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], template: "@if (property().type !== PropertyType.Hidden) {\r\n <label \r\n [attr.for]=\"property().name\"\r\n [class.p-disabled]=\"property().readOnly\">\r\n {{property().prompt ?? property().name}}\r\n </label>\r\n}", styles: [".label-hidden{visibility:hidden}.label-collapsed{display:none}\n"] }]
272
- }] });
271
+ }], propDecorators: { property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }] } });
273
272
 
274
273
  /**
275
274
  * A pipe that formats a value using a specified format string.
@@ -288,10 +287,10 @@ class ClrFormatPipe {
288
287
  return value;
289
288
  return format.includes("{0") ? ClrFormatPipe.formatFunction(format, value) : ClrFormatPipe.formatFunction("{0:" + format + "}", value);
290
289
  }
291
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ClrFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
292
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: ClrFormatPipe, isStandalone: true, name: "clrFormat" });
290
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ClrFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
291
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: ClrFormatPipe, isStandalone: true, name: "clrFormat" });
293
292
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ClrFormatPipe, decorators: [{
293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ClrFormatPipe, decorators: [{
295
294
  type: Pipe,
296
295
  args: [{
297
296
  name: 'clrFormat',
@@ -351,10 +350,10 @@ class PropertyTypeFormatPipe {
351
350
  const format = type === undefined ? "{0}" : (PropertyTypeFormatPipe._typeToFormatMap.get(type) ?? "{0}");
352
351
  return this._clrFormatPipe.transform(value, format);
353
352
  }
354
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyTypeFormatPipe, deps: [{ token: ClrFormatPipe }], target: i0.ɵɵFactoryTarget.Pipe });
355
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: PropertyTypeFormatPipe, isStandalone: true, name: "propertyTypeFormat" });
353
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyTypeFormatPipe, deps: [{ token: ClrFormatPipe }], target: i0.ɵɵFactoryTarget.Pipe });
354
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: PropertyTypeFormatPipe, isStandalone: true, name: "propertyTypeFormat" });
356
355
  }
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyTypeFormatPipe, decorators: [{
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyTypeFormatPipe, decorators: [{
358
357
  type: Pipe,
359
358
  args: [{
360
359
  name: 'propertyTypeFormat',
@@ -403,93 +402,93 @@ class TriStateCheckbox extends BaseComponent {
403
402
  * Value of the checkbox.
404
403
  * @group Props
405
404
  */
406
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
405
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
407
406
  /**
408
407
  * Name of the checkbox group.
409
408
  * @group Props
410
409
  */
411
- name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
410
+ name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
412
411
  /**
413
412
  * When present, it specifies that the element should be disabled.
414
413
  * @group Props
415
414
  */
416
- disabled = model(undefined, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
415
+ disabled = model(undefined, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
417
416
  /**
418
417
  * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
419
418
  * @group Props
420
419
  */
421
- ariaLabelledBy = input(...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : []));
420
+ ariaLabelledBy = input(...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []));
422
421
  /**
423
422
  * Used to define a string that labels the input element.
424
423
  * @group Props
425
424
  */
426
- ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : []));
425
+ ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
427
426
  /**
428
427
  * Index of the element in tabbing order.
429
428
  * @group Props
430
429
  */
431
- tabindex = input(undefined, ...(ngDevMode ? [{ debugName: "tabindex", transform: numberAttribute }] : [{ transform: numberAttribute }]));
430
+ tabindex = input(undefined, { ...(ngDevMode ? { debugName: "tabindex" } : /* istanbul ignore next */ {}), transform: numberAttribute });
432
431
  /**
433
432
  * Identifier of the focus input to match a label defined for the component.
434
433
  * @group Props
435
434
  */
436
- inputId = input(...(ngDevMode ? [undefined, { debugName: "inputId" }] : []));
435
+ inputId = input(...(ngDevMode ? [undefined, { debugName: "inputId" }] : /* istanbul ignore next */ []));
437
436
  /**
438
437
  * Inline style of the component.
439
438
  * @group Props
440
439
  */
441
- style = input(...(ngDevMode ? [undefined, { debugName: "style" }] : []));
440
+ style = input(...(ngDevMode ? [undefined, { debugName: "style" }] : /* istanbul ignore next */ []));
442
441
  /**
443
442
  * Inline style of the input element.
444
443
  * @group Props
445
444
  */
446
- inputStyle = input(...(ngDevMode ? [undefined, { debugName: "inputStyle" }] : []));
445
+ inputStyle = input(...(ngDevMode ? [undefined, { debugName: "inputStyle" }] : /* istanbul ignore next */ []));
447
446
  /**
448
447
  * Style class of the component.
449
448
  * @group Props
450
449
  */
451
- styleClass = input("", ...(ngDevMode ? [{ debugName: "styleClass" }] : []));
450
+ styleClass = input("", ...(ngDevMode ? [{ debugName: "styleClass" }] : /* istanbul ignore next */ []));
452
451
  /**
453
452
  * Style class of the input element.
454
453
  * @group Props
455
454
  */
456
- inputClass = input("", ...(ngDevMode ? [{ debugName: "inputClass" }] : []));
455
+ inputClass = input("", ...(ngDevMode ? [{ debugName: "inputClass" }] : /* istanbul ignore next */ []));
457
456
  /**
458
457
  * Defines the size of the component.
459
458
  * @group Props
460
459
  */
461
- size = input(...(ngDevMode ? [undefined, { debugName: "size" }] : []));
460
+ size = input(...(ngDevMode ? [undefined, { debugName: "size" }] : /* istanbul ignore next */ []));
462
461
  /**
463
462
  * Form control value.
464
463
  * @group Props
465
464
  */
466
- formControl = input(...(ngDevMode ? [undefined, { debugName: "formControl" }] : []));
465
+ formControl = input(...(ngDevMode ? [undefined, { debugName: "formControl" }] : /* istanbul ignore next */ []));
467
466
  /**
468
467
  * Icon class of the checkbox icon.
469
468
  * @group Props
470
469
  */
471
- checkboxIcon = input(...(ngDevMode ? [undefined, { debugName: "checkboxIcon" }] : []));
470
+ checkboxIcon = input(...(ngDevMode ? [undefined, { debugName: "checkboxIcon" }] : /* istanbul ignore next */ []));
472
471
  /**
473
472
  * When present, it specifies that the component cannot be edited.
474
473
  * @group Props
475
474
  */
476
- readonly = input(undefined, ...(ngDevMode ? [{ debugName: "readonly", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
475
+ readonly = input(undefined, { ...(ngDevMode ? { debugName: "readonly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
477
476
  /**
478
477
  * When present, it specifies that checkbox must be checked before submitting the form.
479
478
  * @group Props
480
479
  */
481
- required = input(undefined, ...(ngDevMode ? [{ debugName: "required", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
480
+ required = input(undefined, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
482
481
  /**
483
482
  * When present, it specifies that the component should automatically get focus on load.
484
483
  * @group Props
485
484
  */
486
- autofocus = input(undefined, ...(ngDevMode ? [{ debugName: "autofocus", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
487
- model = model(null, ...(ngDevMode ? [{ debugName: "model" }] : []));
485
+ autofocus = input(undefined, { ...(ngDevMode ? { debugName: "autofocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
486
+ model = model(null, ...(ngDevMode ? [{ debugName: "model" }] : /* istanbul ignore next */ []));
488
487
  /**
489
488
  * Specifies the input variant of the component.
490
489
  * @group Props
491
490
  */
492
- variant = input('outlined', ...(ngDevMode ? [{ debugName: "variant" }] : []));
491
+ variant = input('outlined', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
493
492
  /**
494
493
  * Callback to invoke on value change.
495
494
  * @param {CheckboxChangeEvent} event - Custom value change event.
@@ -518,13 +517,13 @@ class TriStateCheckbox extends BaseComponent {
518
517
  this.config.inputVariant() === 'filled',
519
518
  'p-checkbox-sm p-inputfield-sm': this.size() === 'small',
520
519
  'p-checkbox-lg p-inputfield-lg': this.size() === 'large',
521
- }), ...(ngDevMode ? [{ debugName: "containerClass" }] : []));
520
+ }), ...(ngDevMode ? [{ debugName: "containerClass" }] : /* istanbul ignore next */ []));
522
521
  /**
523
522
  * The template of the checkbox icon.
524
523
  * @group Templates
525
524
  */
526
- checkboxIconTemplate = contentChild('checkboxicon', ...(ngDevMode ? [{ debugName: "checkboxIconTemplate", descendants: false }] : [{ descendants: false }]));
527
- templates = contentChildren(PrimeTemplate, ...(ngDevMode ? [{ debugName: "templates" }] : []));
525
+ checkboxIconTemplate = contentChild('checkboxicon', { ...(ngDevMode ? { debugName: "checkboxIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
526
+ templates = contentChildren(PrimeTemplate, ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
528
527
  _checkboxIconTemplate;
529
528
  onModelChange = () => { };
530
529
  onModelTouched = () => { };
@@ -602,8 +601,8 @@ class TriStateCheckbox extends BaseComponent {
602
601
  this.cd.markForCheck();
603
602
  });
604
603
  }
605
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TriStateCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
606
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: TriStateCheckbox, isStandalone: true, selector: "p-tri-state-checkbox, p-tri-state-checkBox, p-tri-state-check-box, rw-tri-state-checkbox, rw-tri-state-checkBox, rw-tri-state-check-box", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, inputStyle: { classPropertyName: "inputStyle", publicName: "inputStyle", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: false, transformFunction: null }, checkboxIcon: { classPropertyName: "checkboxIcon", publicName: "checkboxIcon", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", model: "modelChange", onChange: "onChange", onFocus: "onFocus", onBlur: "onBlur" }, providers: [TRI_STATE_CHECKBOX_VALUE_ACCESSOR, CheckboxStyle], queries: [{ propertyName: "checkboxIconTemplate", first: true, predicate: ["checkboxicon"], isSignal: true }, { propertyName: "templates", predicate: PrimeTemplate, isSignal: true }], viewQueries: [{ propertyName: "inputViewChild", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
604
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: TriStateCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
605
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: TriStateCheckbox, isStandalone: true, selector: "p-tri-state-checkbox, p-tri-state-checkBox, p-tri-state-check-box, rw-tri-state-checkbox, rw-tri-state-checkBox, rw-tri-state-check-box", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, inputStyle: { classPropertyName: "inputStyle", publicName: "inputStyle", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: false, transformFunction: null }, checkboxIcon: { classPropertyName: "checkboxIcon", publicName: "checkboxIcon", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", model: "modelChange", onChange: "onChange", onFocus: "onFocus", onBlur: "onBlur" }, providers: [TRI_STATE_CHECKBOX_VALUE_ACCESSOR, CheckboxStyle], queries: [{ propertyName: "checkboxIconTemplate", first: true, predicate: ["checkboxicon"], isSignal: true }, { propertyName: "templates", predicate: PrimeTemplate, isSignal: true }], viewQueries: [{ propertyName: "inputViewChild", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
607
606
  <div [style]="style()" [class]="styleClass()" [ngClass]="containerClass()" [attr.data-p-highlight]="model() === true" [attr.data-p-checked]="model() === true" [attr.data-p-disabled]="disabled()" [title]="model()">
608
607
  <input
609
608
  #input
@@ -644,7 +643,7 @@ class TriStateCheckbox extends BaseComponent {
644
643
  </div>
645
644
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
646
645
  }
647
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TriStateCheckbox, decorators: [{
646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: TriStateCheckbox, decorators: [{
648
647
  type: Component,
649
648
  args: [{
650
649
  selector: 'p-tri-state-checkbox, p-tri-state-checkBox, p-tri-state-check-box, rw-tri-state-checkbox, rw-tri-state-checkBox, rw-tri-state-check-box',
@@ -694,7 +693,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
694
693
  changeDetection: ChangeDetectionStrategy.OnPush,
695
694
  encapsulation: ViewEncapsulation.None,
696
695
  }]
697
- }] });
696
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }], inputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputId", required: false }] }], style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }], inputStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputStyle", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], inputClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputClass", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], formControl: [{ type: i0.Input, args: [{ isSignal: true, alias: "formControl", required: false }] }], checkboxIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkboxIcon", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], autofocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autofocus", required: false }] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }, { type: i0.Output, args: ["modelChange"] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], onChange: [{ type: i0.Output, args: ["onChange"] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }], inputViewChild: [{ type: i0.ViewChild, args: ['input', { isSignal: true }] }], checkboxIconTemplate: [{ type: i0.ContentChild, args: ['checkboxicon', { ...{ descendants: false }, isSignal: true }] }], templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PrimeTemplate), { isSignal: true }] }] } });
698
697
 
699
698
  /**
700
699
  * This service is responsible for displaying problems to the user.
@@ -851,10 +850,10 @@ class ProblemService {
851
850
  }
852
851
  ProblemService.scrollToFirstValidationError(nativeElement);
853
852
  }
854
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ProblemService, deps: [{ token: i2$1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
855
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ProblemService, providedIn: "root" });
853
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ProblemService, deps: [{ token: i2$1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
854
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ProblemService, providedIn: "root" });
856
855
  }
857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ProblemService, decorators: [{
856
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ProblemService, decorators: [{
858
857
  type: Injectable,
859
858
  args: [{
860
859
  providedIn: "root"
@@ -1537,10 +1536,10 @@ class RestWorldClientCollection {
1537
1536
  get all() {
1538
1537
  return this._clients;
1539
1538
  }
1540
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldClientCollection, deps: [{ token: i1$1.HalClient }], target: i0.ɵɵFactoryTarget.Injectable });
1541
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldClientCollection, providedIn: 'root' });
1539
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldClientCollection, deps: [{ token: i1$1.HalClient }], target: i0.ɵɵFactoryTarget.Injectable });
1540
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldClientCollection, providedIn: 'root' });
1542
1541
  }
1543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldClientCollection, decorators: [{
1542
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldClientCollection, decorators: [{
1544
1543
  type: Injectable,
1545
1544
  args: [{
1546
1545
  providedIn: 'root'
@@ -1561,25 +1560,24 @@ class OptionsManager {
1561
1560
  _selectedValues;
1562
1561
  _getLabel;
1563
1562
  _getTooltip;
1564
- getLabel = computed(() => this._getLabel() ?? ((itemOrValue) => this.getDefaultLabel(itemOrValue)), ...(ngDevMode ? [{ debugName: "getLabel" }] : []));
1565
- getTooltip = computed(() => this._getTooltip() ?? ((itemOrValue) => this.getDefaultTooltip(itemOrValue)), ...(ngDevMode ? [{ debugName: "getTooltip" }] : []));
1563
+ getLabel = computed(() => this._getLabel() ?? ((itemOrValue) => this.getDefaultLabel(itemOrValue)), ...(ngDevMode ? [{ debugName: "getLabel" }] : /* istanbul ignore next */ []));
1564
+ getTooltip = computed(() => this._getTooltip() ?? ((itemOrValue) => this.getDefaultTooltip(itemOrValue)), ...(ngDevMode ? [{ debugName: "getTooltip" }] : /* istanbul ignore next */ []));
1566
1565
  // public readonly items = linkedSignal(() => this.options()?.inline as TOptionsItem[] ?? []);
1567
- loading = computed(() => this.items.isLoading(), ...(ngDevMode ? [{ debugName: "loading" }] : []));
1568
- options = computed(() => this.property().options, ...(ngDevMode ? [{ debugName: "options" }] : []));
1569
- promptField = computed(() => this.options()?.promptField ?? "prompt", ...(ngDevMode ? [{ debugName: "promptField" }] : []));
1570
- valueField = computed(() => this.options()?.valueField ?? "value", ...(ngDevMode ? [{ debugName: "valueField" }] : []));
1571
- _client = computed(() => this._clients.getClient(this.apiName()), ...(ngDevMode ? [{ debugName: "_client" }] : []));
1572
- selectedItems = computed(() => this.selectedValues()?.map(value => this.getItemByValue(this.items.value(), value) ?? []), ...(ngDevMode ? [{ debugName: "selectedItems" }] : []));
1566
+ loading = computed(() => this.items.isLoading(), ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
1567
+ options = computed(() => this.property().options, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
1568
+ promptField = computed(() => this.options()?.promptField ?? "prompt", ...(ngDevMode ? [{ debugName: "promptField" }] : /* istanbul ignore next */ []));
1569
+ valueField = computed(() => this.options()?.valueField ?? "value", ...(ngDevMode ? [{ debugName: "valueField" }] : /* istanbul ignore next */ []));
1570
+ _client = computed(() => this._clients.getClient(this.apiName()), ...(ngDevMode ? [{ debugName: "_client" }] : /* istanbul ignore next */ []));
1571
+ selectedItems = computed(() => this.selectedValues()?.map(value => this.getItemByValue(this.items.value(), value) ?? []), ...(ngDevMode ? [{ debugName: "selectedItems" }] : /* istanbul ignore next */ []));
1573
1572
  selectedValues = computed(() => {
1574
1573
  const values = this._selectedValues();
1575
1574
  if (values === null || values === undefined)
1576
1575
  return [];
1577
1576
  return (Array.isArray(values) ? values : [values]);
1578
- }, ...(ngDevMode ? [{ debugName: "selectedValues" }] : []));
1579
- filter = signal(undefined, ...(ngDevMode ? [{ debugName: "filter" }] : []));
1577
+ }, ...(ngDevMode ? [{ debugName: "selectedValues" }] : /* istanbul ignore next */ []));
1578
+ filter = signal(undefined, ...(ngDevMode ? [{ debugName: "filter" }] : /* istanbul ignore next */ []));
1580
1579
  _lastFilter = undefined;
1581
- items = resource({
1582
- params: () => ({ filter: this.filter(), options: this.options(), selectedValues: this.selectedValues() }),
1580
+ items = resource({ ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), params: () => ({ filter: this.filter(), options: this.options(), selectedValues: this.selectedValues() }),
1583
1581
  loader: async ({ params }) => {
1584
1582
  const options = params.options;
1585
1583
  let filter = params.filter;
@@ -1612,8 +1610,7 @@ class OptionsManager {
1612
1610
  const newItems = response.body._embedded.items;
1613
1611
  const combinedItems = this.combineCurrentItemsWithSelected(oldItems, selectedValues, newItems);
1614
1612
  return combinedItems;
1615
- }
1616
- });
1613
+ } });
1617
1614
  constructor(_problemService, _clients, apiName, property, _selectedValues, _getLabel, _getTooltip) {
1618
1615
  this._problemService = _problemService;
1619
1616
  this._clients = _clients;
@@ -1724,10 +1721,10 @@ class OptionsService {
1724
1721
  getManager(apiName, property, selectValues, getLabel, getTooltip) {
1725
1722
  return new OptionsManager(this._problemService, this._clients, apiName, property, selectValues, getLabel, getTooltip);
1726
1723
  }
1727
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OptionsService, deps: [{ token: ProblemService }, { token: RestWorldClientCollection }], target: i0.ɵɵFactoryTarget.Injectable });
1728
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OptionsService, providedIn: 'root' });
1724
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OptionsService, deps: [{ token: ProblemService }, { token: RestWorldClientCollection }], target: i0.ɵɵFactoryTarget.Injectable });
1725
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OptionsService, providedIn: 'root' });
1729
1726
  }
1730
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OptionsService, decorators: [{
1727
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OptionsService, decorators: [{
1731
1728
  type: Injectable,
1732
1729
  args: [{
1733
1730
  providedIn: 'root'
@@ -1748,23 +1745,23 @@ class RestWorldDisplayCollectionComponent {
1748
1745
  * @required
1749
1746
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
1750
1747
  */
1751
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
1748
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
1752
1749
  /**
1753
1750
  * The property to display.
1754
1751
  * @required
1755
1752
  */
1756
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
1753
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
1757
1754
  templates = computed(() => {
1758
1755
  const values = this.values();
1759
1756
  const property = this.property();
1760
1757
  return values ?
1761
1758
  Array.from(RestWorldDisplayCollectionComponent.map(RestWorldDisplayCollectionComponent.toArray(values).entries(), (entry) => (new NumberTemplate({ ...property._templates.default, title: entry[0].toString() })))) :
1762
1759
  RestWorldDisplayCollectionComponent.getCollectionEntryTemplates(property);
1763
- }, ...(ngDevMode ? [{ debugName: "templates" }] : []));
1760
+ }, ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
1764
1761
  /**
1765
1762
  * The value to display. If not set, the value of the property will be used.
1766
1763
  */
1767
- values = input(...(ngDevMode ? [undefined, { debugName: "values" }] : []));
1764
+ values = input(...(ngDevMode ? [undefined, { debugName: "values" }] : /* istanbul ignore next */ []));
1768
1765
  static getCollectionEntryTemplates(property) {
1769
1766
  if (!property)
1770
1767
  return [];
@@ -1784,13 +1781,13 @@ class RestWorldDisplayCollectionComponent {
1784
1781
  return arrayOrDictionary;
1785
1782
  return Object.entries(arrayOrDictionary).map(([key, value]) => ({ key, value: value }));
1786
1783
  }
1787
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1788
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldDisplayCollectionComponent, isStandalone: true, selector: "rw-display-collection", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n @for (template of templates(); track template) {\r\n <div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full flex justify-content-end\">\r\n <rw-display-template [template]=\"$any(template)\" [value]=\"values() ? $any(values())[template.title!] : undefined\" [apiName]=\"apiName()\" class=\"w-full\"></rw-display-template>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldDisplayTemplateComponent), selector: "rw-display-template", inputs: ["apiName", "template", "value"] }] });
1784
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1785
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldDisplayCollectionComponent, isStandalone: true, selector: "rw-display-collection", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n @for (template of templates(); track template) {\r\n <div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full flex justify-content-end\">\r\n <rw-display-template [template]=\"$any(template)\" [value]=\"values() ? $any(values())[template.title!] : undefined\" [apiName]=\"apiName()\" class=\"w-full\"></rw-display-template>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldDisplayTemplateComponent), selector: "rw-display-template", inputs: ["apiName", "template", "value"] }] });
1789
1786
  }
1790
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayCollectionComponent, decorators: [{
1787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayCollectionComponent, decorators: [{
1791
1788
  type: Component,
1792
1789
  args: [{ selector: 'rw-display-collection', standalone: true, imports: [forwardRef(() => RestWorldDisplayTemplateComponent)], template: "<div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n @for (template of templates(); track template) {\r\n <div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full flex justify-content-end\">\r\n <rw-display-template [template]=\"$any(template)\" [value]=\"values() ? $any(values())[template.title!] : undefined\" [apiName]=\"apiName()\" class=\"w-full\"></rw-display-template>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"] }]
1793
- }] });
1790
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], values: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }] } });
1794
1791
  /**
1795
1792
  * Displays a value that is automatically created from a property in a form template.
1796
1793
  * This may also be a complex object or a collection in which case multiple and nested input elements may be rendered.
@@ -1806,33 +1803,33 @@ class RestWorldDisplayComponent {
1806
1803
  * @required
1807
1804
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
1808
1805
  */
1809
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
1806
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
1810
1807
  /**
1811
1808
  * Either the value or the property.value if the value is not set.
1812
1809
  */
1813
- computedValue = computed(() => this.value() ?? this.property().value, ...(ngDevMode ? [{ debugName: "computedValue" }] : []));
1810
+ computedValue = computed(() => this.value() ?? this.property().value, ...(ngDevMode ? [{ debugName: "computedValue" }] : /* istanbul ignore next */ []));
1814
1811
  /**
1815
1812
  * The property to display.
1816
1813
  * @required
1817
1814
  */
1818
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
1815
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
1819
1816
  /**
1820
1817
  * The value to display. If not set, the value of the property will be used.
1821
1818
  */
1822
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
1819
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
1823
1820
  get PropertyType() {
1824
1821
  return PropertyType;
1825
1822
  }
1826
1823
  get PropertyWithOptions() {
1827
1824
  return PropertyWithOptions;
1828
1825
  }
1829
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1830
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldDisplayComponent, isStandalone: true, selector: "rw-display", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (property().type !== PropertyType.Hidden) {\r\n @if (property().options) {\r\n <rw-display-dropdown [property]=\"$any(property())\" [selectedValues]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-dropdown>\r\n }\r\n @else {\r\n @switch (property().type) {\r\n @case (PropertyType.Object) {\r\n <rw-display-object [property]=\"$any(property())\" [value]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-object>\r\n }\r\n @case (PropertyType.Collection) {\r\n <rw-display-collection [property]=\"$any(property())\" [values]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-collection>\r\n }\r\n @default {\r\n <rw-display-simple [property]=\"property()\" [value]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-simple>\r\n }\r\n }\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldDisplayDropdownComponent), selector: "rw-display-dropdown", inputs: ["apiName", "getLabel", "getTooltip", "property", "selectedValues"] }, { kind: "component", type: i0.forwardRef(() => RestWorldDisplayObjectComponent), selector: "rw-display-object", inputs: ["apiName", "property", "value"] }, { kind: "component", type: i0.forwardRef(() => RestWorldDisplaySimpleComponent), selector: "rw-display-simple", inputs: ["apiName", "property", "value"] }, { kind: "component", type: i0.forwardRef(() => RestWorldDisplayCollectionComponent), selector: "rw-display-collection", inputs: ["apiName", "property", "values"] }] });
1826
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1827
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldDisplayComponent, isStandalone: true, selector: "rw-display", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (property().type !== PropertyType.Hidden) {\r\n @if (property().options) {\r\n <rw-display-dropdown [property]=\"$any(property())\" [selectedValues]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-dropdown>\r\n }\r\n @else {\r\n @switch (property().type) {\r\n @case (PropertyType.Object) {\r\n <rw-display-object [property]=\"$any(property())\" [value]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-object>\r\n }\r\n @case (PropertyType.Collection) {\r\n <rw-display-collection [property]=\"$any(property())\" [values]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-collection>\r\n }\r\n @default {\r\n <rw-display-simple [property]=\"property()\" [value]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-simple>\r\n }\r\n }\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldDisplayDropdownComponent), selector: "rw-display-dropdown", inputs: ["apiName", "getLabel", "getTooltip", "property", "selectedValues"] }, { kind: "component", type: i0.forwardRef(() => RestWorldDisplayObjectComponent), selector: "rw-display-object", inputs: ["apiName", "property", "value"] }, { kind: "component", type: i0.forwardRef(() => RestWorldDisplaySimpleComponent), selector: "rw-display-simple", inputs: ["apiName", "property", "value"] }, { kind: "component", type: i0.forwardRef(() => RestWorldDisplayCollectionComponent), selector: "rw-display-collection", inputs: ["apiName", "property", "values"] }] });
1831
1828
  }
1832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayComponent, decorators: [{
1829
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayComponent, decorators: [{
1833
1830
  type: Component,
1834
1831
  args: [{ selector: 'rw-display', standalone: true, imports: [forwardRef(() => RestWorldDisplayDropdownComponent), forwardRef(() => RestWorldDisplayObjectComponent), forwardRef(() => RestWorldDisplaySimpleComponent), RestWorldDisplayCollectionComponent], template: "@if (property().type !== PropertyType.Hidden) {\r\n @if (property().options) {\r\n <rw-display-dropdown [property]=\"$any(property())\" [selectedValues]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-dropdown>\r\n }\r\n @else {\r\n @switch (property().type) {\r\n @case (PropertyType.Object) {\r\n <rw-display-object [property]=\"$any(property())\" [value]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-object>\r\n }\r\n @case (PropertyType.Collection) {\r\n <rw-display-collection [property]=\"$any(property())\" [values]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-collection>\r\n }\r\n @default {\r\n <rw-display-simple [property]=\"property()\" [value]=\"$any(computedValue())\" [apiName]=\"apiName()\"></rw-display-simple>\r\n }\r\n }\r\n }\r\n}\r\n" }]
1835
- }] });
1832
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
1836
1833
  /**
1837
1834
  * Displays the value of a dropdown that is automatically created from the given property.
1838
1835
  * If set the dropdown will use the `inline` property of the options to render the `selectedValues` Otherwise it will just render the values, but no prompt for them.
@@ -1847,7 +1844,7 @@ class RestWorldDisplayDropdownComponent {
1847
1844
  * @required
1848
1845
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
1849
1846
  */
1850
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
1847
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
1851
1848
  /**
1852
1849
  * A function that returns the label for the given item.
1853
1850
  * The default returns the prompt and optionally the value in brackets.
@@ -1855,7 +1852,7 @@ class RestWorldDisplayDropdownComponent {
1855
1852
  * Overwrite this function to change the label.
1856
1853
  * @param item The item to get the label for.
1857
1854
  */
1858
- getLabel = input(...(ngDevMode ? [undefined, { debugName: "getLabel" }] : []));
1855
+ getLabel = input(...(ngDevMode ? [undefined, { debugName: "getLabel" }] : /* istanbul ignore next */ []));
1859
1856
  /**
1860
1857
  * A function that returns the tooltip for the given item.
1861
1858
  * The default returns all properties of the item except the ones that start with an underscore or the ones that are in the list of default properties to exclude.
@@ -1863,25 +1860,25 @@ class RestWorldDisplayDropdownComponent {
1863
1860
  * Overwrite this function to change the tooltip.
1864
1861
  * @param item The item to get the label for.
1865
1862
  */
1866
- getTooltip = input(...(ngDevMode ? [undefined, { debugName: "getTooltip" }] : []));
1867
- options = computed(() => this.property().options, ...(ngDevMode ? [{ debugName: "options" }] : []));
1863
+ getTooltip = input(...(ngDevMode ? [undefined, { debugName: "getTooltip" }] : /* istanbul ignore next */ []));
1864
+ options = computed(() => this.property().options, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
1868
1865
  /**
1869
1866
  * The property to display.
1870
1867
  * @required
1871
1868
  */
1872
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
1873
- selectedValues = input([], ...(ngDevMode ? [{ debugName: "selectedValues", transform: (value) => (Array.isArray(value) ? value : [value]) }] : [{ transform: (value) => (Array.isArray(value) ? value : [value]) }]));
1869
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
1870
+ selectedValues = input([], { ...(ngDevMode ? { debugName: "selectedValues" } : /* istanbul ignore next */ {}), transform: (value) => (Array.isArray(value) ? value : [value]) });
1874
1871
  optionsManager;
1875
1872
  constructor(optionsService) {
1876
1873
  this.optionsManager = optionsService.getManager(this.apiName, this.property, this.selectedValues, this.getLabel, this.getTooltip);
1877
1874
  }
1878
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayDropdownComponent, deps: [{ token: OptionsService }], target: i0.ɵɵFactoryTarget.Component });
1879
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldDisplayDropdownComponent, isStandalone: true, selector: "rw-display-dropdown", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, getLabel: { classPropertyName: "getLabel", publicName: "getLabel", isSignal: true, isRequired: false, transformFunction: null }, getTooltip: { classPropertyName: "getTooltip", publicName: "getTooltip", isSignal: true, isRequired: false, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (item of optionsManager.selectedItems(); track item; let last = $last) {\r\n <span [pTooltip]=\"optionsManager.getTooltip()($any(item))\">{{optionsManager.getLabel()($any(item))}}</span>{{last ? \"\" : \", \"}}\r\n}\r\n", styles: [""], dependencies: [{ kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }] });
1875
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayDropdownComponent, deps: [{ token: OptionsService }], target: i0.ɵɵFactoryTarget.Component });
1876
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldDisplayDropdownComponent, isStandalone: true, selector: "rw-display-dropdown", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, getLabel: { classPropertyName: "getLabel", publicName: "getLabel", isSignal: true, isRequired: false, transformFunction: null }, getTooltip: { classPropertyName: "getTooltip", publicName: "getTooltip", isSignal: true, isRequired: false, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (item of optionsManager.selectedItems(); track item; let last = $last) {\r\n <span [pTooltip]=\"optionsManager.getTooltip()($any(item))\">{{optionsManager.getLabel()($any(item))}}</span>{{last ? \"\" : \", \"}}\r\n}\r\n", styles: [""], dependencies: [{ kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }] });
1880
1877
  }
1881
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayDropdownComponent, decorators: [{
1878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayDropdownComponent, decorators: [{
1882
1879
  type: Component,
1883
1880
  args: [{ selector: 'rw-display-dropdown', standalone: true, imports: [Tooltip], template: "@for (item of optionsManager.selectedItems(); track item; let last = $last) {\r\n <span [pTooltip]=\"optionsManager.getTooltip()($any(item))\">{{optionsManager.getLabel()($any(item))}}</span>{{last ? \"\" : \", \"}}\r\n}\r\n" }]
1884
- }], ctorParameters: () => [{ type: OptionsService }] });
1881
+ }], ctorParameters: () => [{ type: OptionsService }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], getLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "getLabel", required: false }] }], getTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "getTooltip", required: false }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], selectedValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedValues", required: false }] }] } });
1885
1882
  /**
1886
1883
  * Display the value of a form element with a label that is automatically created from a property in a form template.
1887
1884
  * This may also be a complex object or a collection in which case multiple and nested display elements may be rendered.
@@ -1895,30 +1892,30 @@ class RestWorldDisplayElementComponent {
1895
1892
  * @required
1896
1893
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
1897
1894
  */
1898
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
1895
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
1899
1896
  /**
1900
1897
  * Either the value or the property.value if the value is not set.
1901
1898
  */
1902
- computedValue = computed(() => this.value() ?? this.property().value, ...(ngDevMode ? [{ debugName: "computedValue" }] : []));
1899
+ computedValue = computed(() => this.value() ?? this.property().value, ...(ngDevMode ? [{ debugName: "computedValue" }] : /* istanbul ignore next */ []));
1903
1900
  /**
1904
1901
  * The property to display.
1905
1902
  * @required
1906
1903
  */
1907
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
1904
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
1908
1905
  /**
1909
1906
  * The value to display. If not set, the value of the property will be used.
1910
1907
  */
1911
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
1908
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
1912
1909
  get PropertyType() {
1913
1910
  return PropertyType;
1914
1911
  }
1915
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1916
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldDisplayElementComponent, isStandalone: true, selector: "rw-display-element", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (property().type !== PropertyType.Hidden) {\r\n <div class=\"grid field\">\r\n <rw-label [property]=\"property()\" class=\"col-12 md:col-2 flex align-items-center\"></rw-label>\r\n <rw-display [property]=\"property()\" [value]=\"computedValue()\" [apiName]=\"apiName()\" class=\"col-12 md:col-10\"></rw-display>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldLabelComponent, selector: "rw-label", inputs: ["property"] }, { kind: "component", type: RestWorldDisplayComponent, selector: "rw-display", inputs: ["apiName", "property", "value"] }] });
1912
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1913
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldDisplayElementComponent, isStandalone: true, selector: "rw-display-element", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (property().type !== PropertyType.Hidden) {\r\n <div class=\"grid field\">\r\n <rw-label [property]=\"property()\" class=\"col-12 md:col-2 flex align-items-center\"></rw-label>\r\n <rw-display [property]=\"property()\" [value]=\"computedValue()\" [apiName]=\"apiName()\" class=\"col-12 md:col-10\"></rw-display>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldLabelComponent, selector: "rw-label", inputs: ["property"] }, { kind: "component", type: RestWorldDisplayComponent, selector: "rw-display", inputs: ["apiName", "property", "value"] }] });
1917
1914
  }
1918
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayElementComponent, decorators: [{
1915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayElementComponent, decorators: [{
1919
1916
  type: Component,
1920
1917
  args: [{ selector: 'rw-display-element', standalone: true, imports: [RestWorldLabelComponent, RestWorldDisplayComponent], template: "@if (property().type !== PropertyType.Hidden) {\r\n <div class=\"grid field\">\r\n <rw-label [property]=\"property()\" class=\"col-12 md:col-2 flex align-items-center\"></rw-label>\r\n <rw-display [property]=\"property()\" [value]=\"computedValue()\" [apiName]=\"apiName()\" class=\"col-12 md:col-10\"></rw-display>\r\n </div>\r\n}\r\n" }]
1921
- }] });
1918
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
1922
1919
  /**
1923
1920
  * Displays the value of a complex object with multiple properties that is automatically created from the given property.
1924
1921
  * The object can also be nested.
@@ -1933,23 +1930,23 @@ class RestWorldDisplayObjectComponent {
1933
1930
  * @required
1934
1931
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
1935
1932
  */
1936
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
1933
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
1937
1934
  /**
1938
1935
  * The property to display.
1939
1936
  * @required
1940
1937
  */
1941
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
1938
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
1942
1939
  /**
1943
1940
  * The value to display. If not set, the value of the template properties will be used.
1944
1941
  */
1945
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
1946
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayObjectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1947
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: RestWorldDisplayObjectComponent, isStandalone: true, selector: "rw-display-object", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n <rw-display-template [template]=\"property()._templates.default\" [value]=\"value\" [apiName]=\"apiName()\"></rw-display-template>\r\n </div>\r\n</div>", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldDisplayTemplateComponent), selector: "rw-display-template", inputs: ["apiName", "template", "value"] }] });
1942
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
1943
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayObjectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1944
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: RestWorldDisplayObjectComponent, isStandalone: true, selector: "rw-display-object", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n <rw-display-template [template]=\"property()._templates.default\" [value]=\"value\" [apiName]=\"apiName()\"></rw-display-template>\r\n </div>\r\n</div>", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldDisplayTemplateComponent), selector: "rw-display-template", inputs: ["apiName", "template", "value"] }] });
1948
1945
  }
1949
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayObjectComponent, decorators: [{
1946
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayObjectComponent, decorators: [{
1950
1947
  type: Component,
1951
1948
  args: [{ selector: 'rw-display-object', standalone: true, imports: [forwardRef(() => RestWorldDisplayTemplateComponent)], template: "<div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n <rw-display-template [template]=\"property()._templates.default\" [value]=\"value\" [apiName]=\"apiName()\"></rw-display-template>\r\n </div>\r\n</div>", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"] }]
1952
- }] });
1949
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
1953
1950
  /**
1954
1951
  * Displays the value of a simple element, like a string, a number or a Date that is automatically created from the given property.
1955
1952
  * @remarks It is advised to use {@link RestWorldDisplayComponent} `<rw-display>` and control the rendered elements with the passed in property
@@ -1974,20 +1971,20 @@ class RestWorldDisplaySimpleComponent {
1974
1971
  * @required
1975
1972
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
1976
1973
  */
1977
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
1974
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
1978
1975
  /**
1979
1976
  * Either the value or the property.value if the value is not set.
1980
1977
  */
1981
- computedValue = computed(() => this.value() ?? this.property().value ?? this._defaultValue(), ...(ngDevMode ? [{ debugName: "computedValue" }] : []));
1978
+ computedValue = computed(() => this.value() ?? this.property().value ?? this._defaultValue(), ...(ngDevMode ? [{ debugName: "computedValue" }] : /* istanbul ignore next */ []));
1982
1979
  /**
1983
1980
  * The property to display.
1984
1981
  * @required
1985
1982
  */
1986
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
1983
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
1987
1984
  /**
1988
1985
  * The value to display. If not set, the value of the property will be used.
1989
1986
  */
1990
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
1987
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
1991
1988
  _defaultValue = computed(() => {
1992
1989
  const property = this.property();
1993
1990
  if (!property.required || property.options?.minItems === 0)
@@ -1995,7 +1992,7 @@ class RestWorldDisplaySimpleComponent {
1995
1992
  if (property.type === PropertyType.Number)
1996
1993
  return 0;
1997
1994
  return undefined;
1998
- }, ...(ngDevMode ? [{ debugName: "_defaultValue" }] : []));
1995
+ }, ...(ngDevMode ? [{ debugName: "_defaultValue" }] : /* istanbul ignore next */ []));
1999
1996
  get PropertyType() {
2000
1997
  return PropertyType;
2001
1998
  }
@@ -2008,13 +2005,13 @@ class RestWorldDisplaySimpleComponent {
2008
2005
  get timeFormat() {
2009
2006
  return RestWorldDisplaySimpleComponent._timeFormat;
2010
2007
  }
2011
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplaySimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2012
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldDisplaySimpleComponent, isStandalone: true, selector: "rw-display-simple", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let prop = property();\r\n@let val = computedValue();\r\n@switch (prop.type) {\r\n\r\n @case (PropertyType.Text) {\r\n @if (prop.name === 'createdBy' || prop.name === 'lastChangedBy') {\r\n <rw-avatar [user]=\"$any(val)\"></rw-avatar>\r\n }\r\n @else {\r\n <span class=\"w-full\">{{val | propertyTypeFormat:prop.type}}</span>\r\n }\r\n }\r\n @case (PropertyType.Bool) {\r\n <rw-tri-state-checkbox [model]=\"$any(val)\" [readonly]=\"true\" [disabled]=\"true\"></rw-tri-state-checkbox>\r\n }\r\n @default {\r\n <span class=\"w-full\">{{val | propertyTypeFormat:prop.type}}</span>\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldAvatarComponent, selector: "rw-avatar", inputs: ["user"] }, { kind: "component", type: TriStateCheckbox, selector: "p-tri-state-checkbox, p-tri-state-checkBox, p-tri-state-check-box, rw-tri-state-checkbox, rw-tri-state-checkBox, rw-tri-state-check-box", inputs: ["value", "name", "disabled", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "model", "variant"], outputs: ["disabledChange", "modelChange", "onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: PropertyTypeFormatPipe, name: "propertyTypeFormat" }] });
2008
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplaySimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2009
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldDisplaySimpleComponent, isStandalone: true, selector: "rw-display-simple", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let prop = property();\r\n@let val = computedValue();\r\n@switch (prop.type) {\r\n\r\n @case (PropertyType.Text) {\r\n @if (prop.name === 'createdBy' || prop.name === 'lastChangedBy') {\r\n <rw-avatar [user]=\"$any(val)\"></rw-avatar>\r\n }\r\n @else {\r\n <span class=\"w-full\">{{val | propertyTypeFormat:prop.type}}</span>\r\n }\r\n }\r\n @case (PropertyType.Bool) {\r\n <rw-tri-state-checkbox [model]=\"$any(val)\" [readonly]=\"true\" [disabled]=\"true\"></rw-tri-state-checkbox>\r\n }\r\n @default {\r\n <span class=\"w-full\">{{val | propertyTypeFormat:prop.type}}</span>\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldAvatarComponent, selector: "rw-avatar", inputs: ["user"] }, { kind: "component", type: TriStateCheckbox, selector: "p-tri-state-checkbox, p-tri-state-checkBox, p-tri-state-check-box, rw-tri-state-checkbox, rw-tri-state-checkBox, rw-tri-state-check-box", inputs: ["value", "name", "disabled", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "model", "variant"], outputs: ["disabledChange", "modelChange", "onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: PropertyTypeFormatPipe, name: "propertyTypeFormat" }] });
2013
2010
  }
2014
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplaySimpleComponent, decorators: [{
2011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplaySimpleComponent, decorators: [{
2015
2012
  type: Component,
2016
2013
  args: [{ selector: 'rw-display-simple', standalone: true, imports: [RestWorldAvatarComponent, PropertyTypeFormatPipe, TriStateCheckbox, FormsModule, TriStateCheckbox], template: "@let prop = property();\r\n@let val = computedValue();\r\n@switch (prop.type) {\r\n\r\n @case (PropertyType.Text) {\r\n @if (prop.name === 'createdBy' || prop.name === 'lastChangedBy') {\r\n <rw-avatar [user]=\"$any(val)\"></rw-avatar>\r\n }\r\n @else {\r\n <span class=\"w-full\">{{val | propertyTypeFormat:prop.type}}</span>\r\n }\r\n }\r\n @case (PropertyType.Bool) {\r\n <rw-tri-state-checkbox [model]=\"$any(val)\" [readonly]=\"true\" [disabled]=\"true\"></rw-tri-state-checkbox>\r\n }\r\n @default {\r\n <span class=\"w-full\">{{val | propertyTypeFormat:prop.type}}</span>\r\n }\r\n}\r\n" }]
2017
- }] });
2014
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
2018
2015
  /**
2019
2016
  * Displays the values of a collection of `<rw-display>` elements automatically created from a template.
2020
2017
  * @example
@@ -2026,24 +2023,24 @@ class RestWorldDisplayTemplateComponent {
2026
2023
  * @required
2027
2024
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
2028
2025
  */
2029
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
2026
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
2030
2027
  /**
2031
2028
  * The template to display.
2032
2029
  * @required
2033
2030
  * @remarks This is the template that defines the properties to display.
2034
2031
  */
2035
- template = input.required(...(ngDevMode ? [{ debugName: "template" }] : []));
2032
+ template = input.required(...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
2036
2033
  /**
2037
2034
  * The value to display. If not set, the values of the template properties will be used.
2038
2035
  */
2039
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
2040
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2041
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldDisplayTemplateComponent, isStandalone: true, selector: "rw-display-template", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (property of template().properties; track property) {\r\n <rw-display-element [property]=\"property\" [value]=\"value()?.[property.name]\" [apiName]=\"apiName()\"></rw-display-element>\r\n}", styles: [""], dependencies: [{ kind: "component", type: RestWorldDisplayElementComponent, selector: "rw-display-element", inputs: ["apiName", "property", "value"] }] });
2036
+ value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
2037
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2038
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldDisplayTemplateComponent, isStandalone: true, selector: "rw-display-template", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (property of template().properties; track property) {\r\n <rw-display-element [property]=\"property\" [value]=\"value()?.[property.name]\" [apiName]=\"apiName()\"></rw-display-element>\r\n}", styles: [""], dependencies: [{ kind: "component", type: RestWorldDisplayElementComponent, selector: "rw-display-element", inputs: ["apiName", "property", "value"] }] });
2042
2039
  }
2043
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldDisplayTemplateComponent, decorators: [{
2040
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldDisplayTemplateComponent, decorators: [{
2044
2041
  type: Component,
2045
2042
  args: [{ selector: 'rw-display-template', standalone: true, imports: [RestWorldDisplayElementComponent], template: "@for (property of template().properties; track property) {\r\n <rw-display-element [property]=\"property\" [value]=\"value()?.[property.name]\" [apiName]=\"apiName()\"></rw-display-element>\r\n}" }]
2046
- }] });
2043
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
2047
2044
 
2048
2045
  /**
2049
2046
  * A pipe that sanitizes a URL and returns a `SafeUrl` object.
@@ -2066,10 +2063,10 @@ class SafeUrlPipe {
2066
2063
  throw new Error(`The given url '${url}' is not a string.`);
2067
2064
  return this._domSanitizer.bypassSecurityTrustResourceUrl(url);
2068
2065
  }
2069
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
2070
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" });
2066
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
2067
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" });
2071
2068
  }
2072
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SafeUrlPipe, decorators: [{
2069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SafeUrlPipe, decorators: [{
2073
2070
  type: Pipe,
2074
2071
  args: [{
2075
2072
  name: 'safeUrl',
@@ -2093,16 +2090,16 @@ class RestWorldFileComponent {
2093
2090
  * This is a comma-separated list of MIME types or file extensions.
2094
2091
  * If not specified, all file types are accepted.
2095
2092
  */
2096
- accept = input("", ...(ngDevMode ? [{ debugName: "accept", transform: (v) => v ?? "" }] : [{ transform: (v) => v ?? "" }]));
2093
+ accept = input("", { ...(ngDevMode ? { debugName: "accept" } : /* istanbul ignore next */ {}), transform: (v) => v ?? "" });
2097
2094
  /**
2098
2095
  * The name of the file to be uploaded.
2099
2096
  */
2100
- fileName = input("download", ...(ngDevMode ? [{ debugName: "fileName", transform: (v) => v ?? "download" }] : [{ transform: (v) => v ?? "download" }]));
2101
- disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
2097
+ fileName = input("download", { ...(ngDevMode ? { debugName: "fileName" } : /* istanbul ignore next */ {}), transform: (v) => v ?? "download" });
2098
+ disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
2102
2099
  /**
2103
2100
  * The URI of the file.
2104
2101
  */
2105
- uri = signal(undefined, ...(ngDevMode ? [{ debugName: "uri" }] : []));
2102
+ uri = signal(undefined, ...(ngDevMode ? [{ debugName: "uri" }] : /* istanbul ignore next */ []));
2106
2103
  writeValue(obj) {
2107
2104
  this.uri.set(obj);
2108
2105
  }
@@ -2128,21 +2125,21 @@ class RestWorldFileComponent {
2128
2125
  this.uri.set(undefined);
2129
2126
  this.onChange?.(this.uri());
2130
2127
  }
2131
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2132
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldFileComponent, isStandalone: true, selector: "rw-file", inputs: { accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{
2128
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2129
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldFileComponent, isStandalone: true, selector: "rw-file", inputs: { accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{
2133
2130
  provide: NG_VALUE_ACCESSOR,
2134
2131
  useExisting: forwardRef(() => RestWorldFileComponent),
2135
2132
  multi: true
2136
- }], ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n @if (uri()) {\r\n <a [href]=\"uri() | safeUrl\" [download]=\"fileName()\" class=\"mr-1\" pButton\r\n pTooltip=\"Download file\" icon=\"pi pi-download\"></a>\r\n }\r\n @else {\r\n <p-button [disabled]=\"true\" icon=\"pi pi-download\" class=\"mr-1\" pTooltip=\"No file present\"></p-button>\r\n }\r\n <p-fileUpload class=\"mr-1\" chooseIcon=\"pi-upload fas fa-upload\" [chooseButtonProps]=\"{ label: '' }\" pTooltip=\"Upload new file\" mode=\"basic\" [auto]=\"true\"\r\n [accept]=\"accept()\" [customUpload]=\"true\" (uploadHandler)=\"fileChanged($event)\"></p-fileUpload>\r\n @if (uri()) {\r\n <p-button icon=\"pi pi-times\" severity=\"danger\" [text]=\"true\" (onClick)=\"deleteFile()\"/>\r\n }\r\n</div>\r\n", styles: ["a{text-decoration:none}a.p-button-icon-only span.p-button-label{height:1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i1$3.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: FileUploadModule }, { kind: "component", type: i2$2.FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "pipe", type: SafeUrlPipe, name: "safeUrl" }] });
2133
+ }], ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n @if (uri()) {\r\n <a [href]=\"uri() | safeUrl\" [download]=\"fileName()\" class=\"mr-1\" pButton\r\n pTooltip=\"Download file\" icon=\"pi pi-download\"></a>\r\n }\r\n @else {\r\n <p-button [disabled]=\"true\" icon=\"pi pi-download\" class=\"mr-1\" pTooltip=\"No file present\"></p-button>\r\n }\r\n <p-fileUpload class=\"mr-1\" chooseIcon=\"pi-upload fas fa-upload\" [chooseButtonProps]=\"{ label: '' }\" pTooltip=\"Upload new file\" mode=\"basic\" [auto]=\"true\"\r\n [accept]=\"accept()\" [customUpload]=\"true\" (uploadHandler)=\"fileChanged($event)\"></p-fileUpload>\r\n @if (uri()) {\r\n <p-button icon=\"pi pi-times\" severity=\"danger\" [text]=\"true\" (onClick)=\"deleteFile()\"/>\r\n }\r\n</div>\r\n", styles: ["a{text-decoration:none}a.p-button-icon-only span.p-button-label{height:1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "component", type: i1$3.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i2$2.FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "pipe", type: SafeUrlPipe, name: "safeUrl" }] });
2137
2134
  }
2138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldFileComponent, decorators: [{
2135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldFileComponent, decorators: [{
2139
2136
  type: Component,
2140
2137
  args: [{ selector: 'rw-file', standalone: true, providers: [{
2141
2138
  provide: NG_VALUE_ACCESSOR,
2142
2139
  useExisting: forwardRef(() => RestWorldFileComponent),
2143
2140
  multi: true
2144
2141
  }], imports: [ButtonModule, FileUploadModule, SafeUrlPipe], template: "<div class=\"flex align-items-center\">\r\n @if (uri()) {\r\n <a [href]=\"uri() | safeUrl\" [download]=\"fileName()\" class=\"mr-1\" pButton\r\n pTooltip=\"Download file\" icon=\"pi pi-download\"></a>\r\n }\r\n @else {\r\n <p-button [disabled]=\"true\" icon=\"pi pi-download\" class=\"mr-1\" pTooltip=\"No file present\"></p-button>\r\n }\r\n <p-fileUpload class=\"mr-1\" chooseIcon=\"pi-upload fas fa-upload\" [chooseButtonProps]=\"{ label: '' }\" pTooltip=\"Upload new file\" mode=\"basic\" [auto]=\"true\"\r\n [accept]=\"accept()\" [customUpload]=\"true\" (uploadHandler)=\"fileChanged($event)\"></p-fileUpload>\r\n @if (uri()) {\r\n <p-button icon=\"pi pi-times\" severity=\"danger\" [text]=\"true\" (onClick)=\"deleteFile()\"/>\r\n }\r\n</div>\r\n", styles: ["a{text-decoration:none}a.p-button-icon-only span.p-button-label{height:1rem!important}\n"] }]
2145
- }] });
2142
+ }], propDecorators: { accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], fileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileName", required: false }] }] } });
2146
2143
 
2147
2144
  /**
2148
2145
  * Displays validation errors either for one property or for a whole form.
@@ -2157,24 +2154,24 @@ class RestWorldValidationErrorsComponent {
2157
2154
  * The form to display the validation errors for.
2158
2155
  * Either set this or the property input.
2159
2156
  */
2160
- form = input(...(ngDevMode ? [undefined, { debugName: "form" }] : []));
2161
- name = computed(() => this.property()?.name ?? null, ...(ngDevMode ? [{ debugName: "name" }] : []));
2162
- prompt = computed(() => this.property()?.prompt ?? this.name() ?? null, ...(ngDevMode ? [{ debugName: "prompt" }] : []));
2157
+ form = input(...(ngDevMode ? [undefined, { debugName: "form" }] : /* istanbul ignore next */ []));
2158
+ name = computed(() => this.property()?.name ?? null, ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
2159
+ prompt = computed(() => this.property()?.prompt ?? this.name() ?? null, ...(ngDevMode ? [{ debugName: "prompt" }] : /* istanbul ignore next */ []));
2163
2160
  /**
2164
2161
  * The property to display the validation errors for.
2165
2162
  * Either set this or the form input.
2166
2163
  */
2167
- property = input(...(ngDevMode ? [undefined, { debugName: "property" }] : []));
2164
+ property = input(...(ngDevMode ? [undefined, { debugName: "property" }] : /* istanbul ignore next */ []));
2168
2165
  get PropertyType() {
2169
2166
  return PropertyType;
2170
2167
  }
2171
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldValidationErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2172
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldValidationErrorsComponent, isStandalone: true, selector: "rw-validation-errors", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (property() && property()?.type !== PropertyType.Hidden) {\n <val-errors [controlName]=\"name()\">\n <ng-template valError=\"required\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The field '{{prompt()}}' is required.</p-message></ng-template>\n <ng-template valError=\"email\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be a valid email address.</p-message></ng-template>\n <ng-template valError=\"min\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be equal or greater than or equal to {{ error.min }}.</p-message></ng-template>\n <ng-template valError=\"max\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be smaller than or equal to {{ error.max }}.</p-message></ng-template>\n <ng-template valError=\"minlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be equal or greater than or equal to {{ error.requiredLength }}.</p-message></ng-template>\n <ng-template valError=\"maxlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be shorter than or equal to {{ error.requiredLength }}.</p-message></ng-template>\n <ng-template valError=\"pattern\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The value for '{{prompt()}}' does not match the pattern {{ error }}.</p-message></ng-template>\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\n </val-errors>\n}\n@if (form()) {\n <val-errors [control]=\"form()!\">\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\n </val-errors>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ValidationErrorsComponent, selector: "val-errors", inputs: ["control", "controlName", "label"] }, { kind: "directive", type: ValidationErrorDirective, selector: "ng-template[valError]", inputs: ["valError"] }, { kind: "ngmodule", type: MessageModule }, { kind: "component", type: i1$4.Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
2168
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldValidationErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2169
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldValidationErrorsComponent, isStandalone: true, selector: "rw-validation-errors", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (property() && property()?.type !== PropertyType.Hidden) {\r\n <val-errors [controlName]=\"name()\">\r\n <ng-template valError=\"required\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The field '{{prompt()}}' is required.</p-message></ng-template>\r\n <ng-template valError=\"email\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be a valid email address.</p-message></ng-template>\r\n <ng-template valError=\"min\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be equal or greater than or equal to {{ error.min }}.</p-message></ng-template>\r\n <ng-template valError=\"max\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be smaller than or equal to {{ error.max }}.</p-message></ng-template>\r\n <ng-template valError=\"minlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be equal or greater than or equal to {{ error.requiredLength }}.</p-message></ng-template>\r\n <ng-template valError=\"maxlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be shorter than or equal to {{ error.requiredLength }}.</p-message></ng-template>\r\n <ng-template valError=\"pattern\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The value for '{{prompt()}}' does not match the pattern {{ error }}.</p-message></ng-template>\r\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\r\n </val-errors>\r\n}\r\n@if (form()) {\r\n <val-errors [control]=\"form()!\">\r\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\r\n </val-errors>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: ValidationErrorsComponent, selector: "val-errors", inputs: ["control", "controlName", "label"] }, { kind: "directive", type: ValidationErrorDirective, selector: "ng-template[valError]", inputs: ["valError"] }, { kind: "ngmodule", type: MessageModule }, { kind: "component", type: i1$4.Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant", "motionOptions"], outputs: ["onClose"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
2173
2170
  }
2174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldValidationErrorsComponent, decorators: [{
2171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldValidationErrorsComponent, decorators: [{
2175
2172
  type: Component,
2176
- args: [{ selector: 'rw-validation-errors', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [ValidationErrorsComponent, ValidationErrorDirective, MessageModule], template: "@if (property() && property()?.type !== PropertyType.Hidden) {\n <val-errors [controlName]=\"name()\">\n <ng-template valError=\"required\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The field '{{prompt()}}' is required.</p-message></ng-template>\n <ng-template valError=\"email\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be a valid email address.</p-message></ng-template>\n <ng-template valError=\"min\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be equal or greater than or equal to {{ error.min }}.</p-message></ng-template>\n <ng-template valError=\"max\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be smaller than or equal to {{ error.max }}.</p-message></ng-template>\n <ng-template valError=\"minlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be equal or greater than or equal to {{ error.requiredLength }}.</p-message></ng-template>\n <ng-template valError=\"maxlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be shorter than or equal to {{ error.requiredLength }}.</p-message></ng-template>\n <ng-template valError=\"pattern\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The value for '{{prompt()}}' does not match the pattern {{ error }}.</p-message></ng-template>\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\n </val-errors>\n}\n@if (form()) {\n <val-errors [control]=\"form()!\">\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\n </val-errors>\n}\n" }]
2177
- }] });
2173
+ args: [{ selector: 'rw-validation-errors', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [ValidationErrorsComponent, ValidationErrorDirective, MessageModule], template: "@if (property() && property()?.type !== PropertyType.Hidden) {\r\n <val-errors [controlName]=\"name()\">\r\n <ng-template valError=\"required\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The field '{{prompt()}}' is required.</p-message></ng-template>\r\n <ng-template valError=\"email\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be a valid email address.</p-message></ng-template>\r\n <ng-template valError=\"min\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be equal or greater than or equal to {{ error.min }}.</p-message></ng-template>\r\n <ng-template valError=\"max\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">'{{prompt()}}' must be smaller than or equal to {{ error.max }}.</p-message></ng-template>\r\n <ng-template valError=\"minlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be equal or greater than or equal to {{ error.requiredLength }}.</p-message></ng-template>\r\n <ng-template valError=\"maxlength\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The length of '{{prompt()}}' must be shorter than or equal to {{ error.requiredLength }}.</p-message></ng-template>\r\n <ng-template valError=\"pattern\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">The value for '{{prompt()}}' does not match the pattern {{ error }}.</p-message></ng-template>\r\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\r\n </val-errors>\r\n}\r\n@if (form()) {\r\n <val-errors [control]=\"form()!\">\r\n <ng-template valError=\"remote\" let-error=\"error\"><p-message severity=\"error\" variant=\"simple\" size=\"small\">{{ error }}</p-message></ng-template>\r\n </val-errors>\r\n}\r\n" }]
2174
+ }], propDecorators: { form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: false }] }] } });
2178
2175
 
2179
2176
  /**
2180
2177
  * Creates a debounced function that delays invoking the provided function until after the specified delay in milliseconds has elapsed since the last time the debounced function was invoked.
@@ -2196,46 +2193,46 @@ const debounce = (fn, delayMilliseconds = 300) => {
2196
2193
  * Implements ControlValueAccessor to work with Angular forms.
2197
2194
  */
2198
2195
  class RestWorldImageComponent {
2199
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
2196
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
2200
2197
  accept = computed(() => {
2201
2198
  const property = this.property();
2202
2199
  return property.restWorldImage.accept ?? typeof property.placeholder === "string" ? property.placeholder : "image/*";
2203
- }, ...(ngDevMode ? [{ debugName: "accept" }] : []));
2204
- alignImage = computed(() => this.property().restWorldImage.alignImage ?? "center", ...(ngDevMode ? [{ debugName: "alignImage" }] : []));
2200
+ }, ...(ngDevMode ? [{ debugName: "accept" }] : /* istanbul ignore next */ []));
2201
+ alignImage = computed(() => this.property().restWorldImage.alignImage ?? "center", ...(ngDevMode ? [{ debugName: "alignImage" }] : /* istanbul ignore next */ []));
2205
2202
  alt = computed(() => {
2206
2203
  const property = this.property();
2207
2204
  return property.prompt ?? property.name;
2208
- }, ...(ngDevMode ? [{ debugName: "alt" }] : []));
2209
- aspectRatio = computed(() => this.property().restWorldImage.aspectRatio ?? 1, ...(ngDevMode ? [{ debugName: "aspectRatio" }] : []));
2205
+ }, ...(ngDevMode ? [{ debugName: "alt" }] : /* istanbul ignore next */ []));
2206
+ aspectRatio = computed(() => this.property().restWorldImage.aspectRatio ?? 1, ...(ngDevMode ? [{ debugName: "aspectRatio" }] : /* istanbul ignore next */ []));
2210
2207
  // If no background color is set, we set it to white.
2211
2208
  // Otherwise the color picker would show red, the input would be empty and the image cropper would show transparent.
2212
- backgroundColor = model("#ffffff", ...(ngDevMode ? [{ debugName: "backgroundColor" }] : []));
2213
- canvasRotation = computed(() => this.property().restWorldImage.canvasRotation, ...(ngDevMode ? [{ debugName: "canvasRotation" }] : []));
2214
- containWithinAspectRatio = computed(() => this.property().restWorldImage.containWithinAspectRatio, ...(ngDevMode ? [{ debugName: "containWithinAspectRatio" }] : []));
2215
- cropper = computed(() => this.property().restWorldImage.cropper, ...(ngDevMode ? [{ debugName: "cropper" }] : []));
2216
- cropperMaxHeight = computed(() => this.property().restWorldImage.cropperMaxHeight, ...(ngDevMode ? [{ debugName: "cropperMaxHeight" }] : []));
2217
- cropperMaxWidth = computed(() => this.property().restWorldImage.cropperMaxWidth, ...(ngDevMode ? [{ debugName: "cropperMaxWidth" }] : []));
2218
- cropperMinHeight = computed(() => this.property().restWorldImage.cropperMinHeight, ...(ngDevMode ? [{ debugName: "cropperMinHeight" }] : []));
2219
- cropperMinWidth = computed(() => this.property().restWorldImage.cropperMinWidth, ...(ngDevMode ? [{ debugName: "cropperMinWidth" }] : []));
2220
- cropperStaticHeight = computed(() => this.property().restWorldImage.cropperStaticHeight, ...(ngDevMode ? [{ debugName: "cropperStaticHeight" }] : []));
2221
- cropperStaticWidth = computed(() => this.property().restWorldImage.cropperStaticWidth, ...(ngDevMode ? [{ debugName: "cropperStaticWidth" }] : []));
2222
- dialogs = viewChildren(Dialog, ...(ngDevMode ? [{ debugName: "dialogs" }] : []));
2223
- disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
2224
- fileUploads = viewChildren(FileUpload, ...(ngDevMode ? [{ debugName: "fileUploads" }] : []));
2225
- filename = computed(() => this.property().name + "." + (this.property().restWorldImage.format ?? ".png"), ...(ngDevMode ? [{ debugName: "filename" }] : []));
2226
- format = computed(() => this.property().restWorldImage.format, ...(ngDevMode ? [{ debugName: "format" }] : []));
2227
- imageCroppers = viewChildren(ImageCropperComponent, ...(ngDevMode ? [{ debugName: "imageCroppers" }] : []));
2228
- imageQuality = computed(() => this.property().restWorldImage.imageQuality, ...(ngDevMode ? [{ debugName: "imageQuality" }] : []));
2229
- initialStepSize = computed(() => this.property().restWorldImage.initialStepSize, ...(ngDevMode ? [{ debugName: "initialStepSize" }] : []));
2230
- maintainAspectRatio = computed(() => this.property().restWorldImage.maintainAspectRatio, ...(ngDevMode ? [{ debugName: "maintainAspectRatio" }] : []));
2231
- onlyScaleDown = computed(() => this.property().restWorldImage.onlyScaleDown, ...(ngDevMode ? [{ debugName: "onlyScaleDown" }] : []));
2232
- resizeToHeight = computed(() => this.property().restWorldImage.resizeToHeight, ...(ngDevMode ? [{ debugName: "resizeToHeight" }] : []));
2233
- resizeToWidth = computed(() => this.property().restWorldImage.resizeToWidth, ...(ngDevMode ? [{ debugName: "resizeToWidth" }] : []));
2234
- roundCropper = computed(() => this.property().restWorldImage.roundCropper, ...(ngDevMode ? [{ debugName: "roundCropper" }] : []));
2235
- displayCropDialog = model(false, ...(ngDevMode ? [{ debugName: "displayCropDialog" }] : []));
2209
+ backgroundColor = model("#ffffff", ...(ngDevMode ? [{ debugName: "backgroundColor" }] : /* istanbul ignore next */ []));
2210
+ canvasRotation = computed(() => this.property().restWorldImage.canvasRotation, ...(ngDevMode ? [{ debugName: "canvasRotation" }] : /* istanbul ignore next */ []));
2211
+ containWithinAspectRatio = computed(() => this.property().restWorldImage.containWithinAspectRatio, ...(ngDevMode ? [{ debugName: "containWithinAspectRatio" }] : /* istanbul ignore next */ []));
2212
+ cropper = computed(() => this.property().restWorldImage.cropper, ...(ngDevMode ? [{ debugName: "cropper" }] : /* istanbul ignore next */ []));
2213
+ cropperMaxHeight = computed(() => this.property().restWorldImage.cropperMaxHeight, ...(ngDevMode ? [{ debugName: "cropperMaxHeight" }] : /* istanbul ignore next */ []));
2214
+ cropperMaxWidth = computed(() => this.property().restWorldImage.cropperMaxWidth, ...(ngDevMode ? [{ debugName: "cropperMaxWidth" }] : /* istanbul ignore next */ []));
2215
+ cropperMinHeight = computed(() => this.property().restWorldImage.cropperMinHeight, ...(ngDevMode ? [{ debugName: "cropperMinHeight" }] : /* istanbul ignore next */ []));
2216
+ cropperMinWidth = computed(() => this.property().restWorldImage.cropperMinWidth, ...(ngDevMode ? [{ debugName: "cropperMinWidth" }] : /* istanbul ignore next */ []));
2217
+ cropperStaticHeight = computed(() => this.property().restWorldImage.cropperStaticHeight, ...(ngDevMode ? [{ debugName: "cropperStaticHeight" }] : /* istanbul ignore next */ []));
2218
+ cropperStaticWidth = computed(() => this.property().restWorldImage.cropperStaticWidth, ...(ngDevMode ? [{ debugName: "cropperStaticWidth" }] : /* istanbul ignore next */ []));
2219
+ dialogs = viewChildren(Dialog, ...(ngDevMode ? [{ debugName: "dialogs" }] : /* istanbul ignore next */ []));
2220
+ disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
2221
+ fileUploads = viewChildren(FileUpload, ...(ngDevMode ? [{ debugName: "fileUploads" }] : /* istanbul ignore next */ []));
2222
+ filename = computed(() => this.property().name + "." + (this.property().restWorldImage.format ?? ".png"), ...(ngDevMode ? [{ debugName: "filename" }] : /* istanbul ignore next */ []));
2223
+ format = computed(() => this.property().restWorldImage.format, ...(ngDevMode ? [{ debugName: "format" }] : /* istanbul ignore next */ []));
2224
+ imageCroppers = viewChildren(ImageCropperComponent, ...(ngDevMode ? [{ debugName: "imageCroppers" }] : /* istanbul ignore next */ []));
2225
+ imageQuality = computed(() => this.property().restWorldImage.imageQuality, ...(ngDevMode ? [{ debugName: "imageQuality" }] : /* istanbul ignore next */ []));
2226
+ initialStepSize = computed(() => this.property().restWorldImage.initialStepSize, ...(ngDevMode ? [{ debugName: "initialStepSize" }] : /* istanbul ignore next */ []));
2227
+ maintainAspectRatio = computed(() => this.property().restWorldImage.maintainAspectRatio, ...(ngDevMode ? [{ debugName: "maintainAspectRatio" }] : /* istanbul ignore next */ []));
2228
+ onlyScaleDown = computed(() => this.property().restWorldImage.onlyScaleDown, ...(ngDevMode ? [{ debugName: "onlyScaleDown" }] : /* istanbul ignore next */ []));
2229
+ resizeToHeight = computed(() => this.property().restWorldImage.resizeToHeight, ...(ngDevMode ? [{ debugName: "resizeToHeight" }] : /* istanbul ignore next */ []));
2230
+ resizeToWidth = computed(() => this.property().restWorldImage.resizeToWidth, ...(ngDevMode ? [{ debugName: "resizeToWidth" }] : /* istanbul ignore next */ []));
2231
+ roundCropper = computed(() => this.property().restWorldImage.roundCropper, ...(ngDevMode ? [{ debugName: "roundCropper" }] : /* istanbul ignore next */ []));
2232
+ displayCropDialog = model(false, ...(ngDevMode ? [{ debugName: "displayCropDialog" }] : /* istanbul ignore next */ []));
2236
2233
  tempCroppedUri;
2237
- tempImageFile = signal(undefined, ...(ngDevMode ? [{ debugName: "tempImageFile" }] : []));
2238
- uri = signal(undefined, ...(ngDevMode ? [{ debugName: "uri" }] : []));
2234
+ tempImageFile = signal(undefined, ...(ngDevMode ? [{ debugName: "tempImageFile" }] : /* istanbul ignore next */ []));
2235
+ uri = signal(undefined, ...(ngDevMode ? [{ debugName: "uri" }] : /* istanbul ignore next */ []));
2239
2236
  onChange;
2240
2237
  constructor() {
2241
2238
  effect(() => this.property().restWorldImage.backgroundColor = this.backgroundColor());
@@ -2280,21 +2277,21 @@ class RestWorldImageComponent {
2280
2277
  writeValue(obj) {
2281
2278
  this.uri.set(obj);
2282
2279
  }
2283
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2284
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldImageComponent, isStandalone: true, selector: "rw-image", inputs: { property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, displayCropDialog: { classPropertyName: "displayCropDialog", publicName: "displayCropDialog", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backgroundColor: "backgroundColorChange", displayCropDialog: "displayCropDialogChange" }, providers: [{
2280
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2281
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldImageComponent, isStandalone: true, selector: "rw-image", inputs: { property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, displayCropDialog: { classPropertyName: "displayCropDialog", publicName: "displayCropDialog", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backgroundColor: "backgroundColorChange", displayCropDialog: "displayCropDialogChange" }, providers: [{
2285
2282
  provide: NG_VALUE_ACCESSOR,
2286
2283
  useExisting: forwardRef(() => RestWorldImageComponent),
2287
2284
  multi: true
2288
- }], viewQueries: [{ propertyName: "dialogs", predicate: Dialog, descendants: true, isSignal: true }, { propertyName: "fileUploads", predicate: FileUpload, descendants: true, isSignal: true }, { propertyName: "imageCroppers", predicate: ImageCropperComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n @if (uri()) {\r\n <a [href]=\"uri() | safeUrl\" [download]=\"filename()\" class=\"mr-1\" pButton pTooltip=\"Download image\" icon=\"pi pi-download\"></a>\r\n }\r\n @else {\r\n <p-button [disabled]=\"true\" icon=\"pi pi-download\" class=\"mr-1\" pTooltip=\"No image present\"></p-button>\r\n }\r\n\r\n <p-fileUpload class=\"mr-1\" chooseIcon=\"pi-upload fas fa-upload\" [chooseButtonProps]=\"{ label: '' }\" mode=\"basic\" [auto]=\"true\" [accept]=\"accept()\" [customUpload]=\"true\" (uploadHandler)=\"imageChanged($event)\" pTooltip=\"Upload new image\"></p-fileUpload>\r\n\r\n @if (uri()) {\r\n <img class=\"thumbnail mr-1\" [src]=\"uri() | safeUrl\" [alt]=\"alt()\" (click)=\"showCropDialog()\" pTooltip=\"Zoom and crop\" />\r\n <p-button icon=\"pi pi-times\" severity=\"danger\" [text]=\"true\" (onClick)=\"deleteImage()\"/>\r\n }\r\n</div>\r\n\r\n<p-dialog [header]=\"alt()\" [(visible)]=\"displayCropDialog\">\r\n <image-cropper\r\n [autoCrop]=\"true\"\r\n (imageCropped)=\"croppedImageChanged($event)\"\r\n [alignImage]=\"alignImage()\"\r\n [aspectRatio]=\"aspectRatio()\"\r\n [backgroundColor]=\"backgroundColor()\"\r\n [canvasRotation]=\"canvasRotation()\"\r\n [containWithinAspectRatio]=\"containWithinAspectRatio()\"\r\n [cropper]=\"cropper()\"\r\n [cropperMaxHeight]=\"cropperMaxHeight()\"\r\n [cropperMaxWidth]=\"cropperMaxWidth()\"\r\n [cropperMinHeight]=\"cropperMinHeight()\"\r\n [cropperMinWidth]=\"cropperMinWidth()\"\r\n [cropperStaticHeight]=\"cropperStaticHeight()\"\r\n [cropperStaticWidth]=\"cropperStaticWidth()\"\r\n [format]=\"format()\"\r\n [imageQuality]=\"imageQuality()\"\r\n [initialStepSize]=\"initialStepSize()\"\r\n [maintainAspectRatio]=\"maintainAspectRatio()\"\r\n [onlyScaleDown]=\"onlyScaleDown()\"\r\n [resizeToWidth]=\"resizeToWidth()\"\r\n [resizeToHeight]=\"resizeToHeight()\"\r\n [roundCropper]=\"roundCropper()\"\r\n [imageFile]=\"tempImageFile()\"\r\n [imageURL]=\"uri()\"\r\n output=\"base64\"\r\n ></image-cropper>\r\n <div class=\"flex justify-content-end\">\r\n <div class=\"flex-auto align-items-center\">\r\n <span>Background color:&nbsp;</span>\r\n <p-colorPicker [(ngModel)]=\"backgroundColor\" appendTo=\"body\" class=\"ml-1 mr-1\"></p-colorPicker>\r\n <input pInputText [(ngModel)]=\"backgroundColor\" />\r\n </div>\r\n <button type=\"button\" pButton pRipple (click)=\"acceptCroppedImage()\" class=\"mr-2\">Ok</button>\r\n <button type=\"button\" pButton pRipple (click)=\"closeCropDialog()\">Cancel</button>\r\n </div>\r\n</p-dialog>\r\n", styles: ["img.thumbnail{height:calc(1rem + 18px);cursor:zoom-in;border-radius:3px}a{text-decoration:none}a.p-button-icon-only span.p-button-label{height:1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i1$3.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: ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "options", "cropperFrameAriaLabel", "output", "format", "autoCrop", "cropper", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "checkImageType", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange", "cropperChange"] }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i2$2.FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i3$1.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: ColorPickerModule }, { kind: "component", type: i4.ColorPicker, selector: "p-colorPicker, p-colorpicker, p-color-picker", inputs: ["styleClass", "inline", "format", "tabindex", "inputId", "autoZIndex", "showTransitionOptions", "hideTransitionOptions", "autofocus", "defaultColor", "appendTo"], outputs: ["onChange", "onShow", "onHide"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.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: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SafeUrlPipe, name: "safeUrl" }] });
2285
+ }], viewQueries: [{ propertyName: "dialogs", predicate: Dialog, descendants: true, isSignal: true }, { propertyName: "fileUploads", predicate: FileUpload, descendants: true, isSignal: true }, { propertyName: "imageCroppers", predicate: ImageCropperComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"flex align-items-center\">\r\n @if (uri()) {\r\n <a [href]=\"uri() | safeUrl\" [download]=\"filename()\" class=\"mr-1\" pButton pTooltip=\"Download image\" icon=\"pi pi-download\"></a>\r\n }\r\n @else {\r\n <p-button [disabled]=\"true\" icon=\"pi pi-download\" class=\"mr-1\" pTooltip=\"No image present\"></p-button>\r\n }\r\n\r\n <p-fileUpload class=\"mr-1\" chooseIcon=\"pi-upload fas fa-upload\" [chooseButtonProps]=\"{ label: '' }\" mode=\"basic\" [auto]=\"true\" [accept]=\"accept()\" [customUpload]=\"true\" (uploadHandler)=\"imageChanged($event)\" pTooltip=\"Upload new image\"></p-fileUpload>\r\n\r\n @if (uri()) {\r\n <img class=\"thumbnail mr-1\" [src]=\"uri() | safeUrl\" [alt]=\"alt()\" (click)=\"showCropDialog()\" pTooltip=\"Zoom and crop\" />\r\n <p-button icon=\"pi pi-times\" severity=\"danger\" [text]=\"true\" (onClick)=\"deleteImage()\"/>\r\n }\r\n</div>\r\n\r\n<p-dialog [header]=\"alt()\" [(visible)]=\"displayCropDialog\">\r\n <image-cropper\r\n [autoCrop]=\"true\"\r\n (imageCropped)=\"croppedImageChanged($event)\"\r\n [alignImage]=\"alignImage()\"\r\n [aspectRatio]=\"aspectRatio()\"\r\n [backgroundColor]=\"backgroundColor()\"\r\n [canvasRotation]=\"canvasRotation()\"\r\n [containWithinAspectRatio]=\"containWithinAspectRatio()\"\r\n [cropper]=\"cropper()\"\r\n [cropperMaxHeight]=\"cropperMaxHeight()\"\r\n [cropperMaxWidth]=\"cropperMaxWidth()\"\r\n [cropperMinHeight]=\"cropperMinHeight()\"\r\n [cropperMinWidth]=\"cropperMinWidth()\"\r\n [cropperStaticHeight]=\"cropperStaticHeight()\"\r\n [cropperStaticWidth]=\"cropperStaticWidth()\"\r\n [format]=\"format()\"\r\n [imageQuality]=\"imageQuality()\"\r\n [initialStepSize]=\"initialStepSize()\"\r\n [maintainAspectRatio]=\"maintainAspectRatio()\"\r\n [onlyScaleDown]=\"onlyScaleDown()\"\r\n [resizeToWidth]=\"resizeToWidth()\"\r\n [resizeToHeight]=\"resizeToHeight()\"\r\n [roundCropper]=\"roundCropper()\"\r\n [imageFile]=\"tempImageFile()\"\r\n [imageURL]=\"uri()\"\r\n output=\"base64\"\r\n ></image-cropper>\r\n <div class=\"flex justify-content-end\">\r\n <div class=\"flex-auto align-items-center\">\r\n <span>Background color:&nbsp;</span>\r\n <p-colorPicker [(ngModel)]=\"backgroundColor\" appendTo=\"body\" class=\"ml-1 mr-1\"></p-colorPicker>\r\n <input pInputText [(ngModel)]=\"backgroundColor\" />\r\n </div>\r\n <button type=\"button\" pButton pRipple (click)=\"acceptCroppedImage()\" class=\"mr-2\">Ok</button>\r\n <button type=\"button\" pButton pRipple (click)=\"closeCropDialog()\">Cancel</button>\r\n </div>\r\n</p-dialog>\r\n", styles: ["img.thumbnail{height:calc(1rem + 18px);cursor:zoom-in;border-radius:3px}a{text-decoration:none}a.p-button-icon-only span.p-button-label{height:1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "component", type: i1$3.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "options", "cropperFrameAriaLabel", "output", "format", "autoCrop", "cropper", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "checkImageType", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange", "cropperChange"] }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i2$2.FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i3$1.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "maskMotionOptions", "motionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: ColorPickerModule }, { kind: "component", type: i4.ColorPicker, selector: "p-colorPicker, p-colorpicker, p-color-picker", inputs: ["styleClass", "showTransitionOptions", "hideTransitionOptions", "inline", "format", "tabindex", "inputId", "autoZIndex", "autofocus", "defaultColor", "appendTo", "overlayOptions", "motionOptions"], outputs: ["onChange", "onShow", "onHide"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.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: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SafeUrlPipe, name: "safeUrl" }] });
2289
2286
  }
2290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldImageComponent, decorators: [{
2287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldImageComponent, decorators: [{
2291
2288
  type: Component,
2292
2289
  args: [{ selector: 'rw-image', standalone: true, providers: [{
2293
2290
  provide: NG_VALUE_ACCESSOR,
2294
2291
  useExisting: forwardRef(() => RestWorldImageComponent),
2295
2292
  multi: true
2296
2293
  }], imports: [SafeUrlPipe, ButtonModule, ImageCropperComponent, FileUploadModule, DialogModule, ColorPickerModule, FormsModule], template: "<div class=\"flex align-items-center\">\r\n @if (uri()) {\r\n <a [href]=\"uri() | safeUrl\" [download]=\"filename()\" class=\"mr-1\" pButton pTooltip=\"Download image\" icon=\"pi pi-download\"></a>\r\n }\r\n @else {\r\n <p-button [disabled]=\"true\" icon=\"pi pi-download\" class=\"mr-1\" pTooltip=\"No image present\"></p-button>\r\n }\r\n\r\n <p-fileUpload class=\"mr-1\" chooseIcon=\"pi-upload fas fa-upload\" [chooseButtonProps]=\"{ label: '' }\" mode=\"basic\" [auto]=\"true\" [accept]=\"accept()\" [customUpload]=\"true\" (uploadHandler)=\"imageChanged($event)\" pTooltip=\"Upload new image\"></p-fileUpload>\r\n\r\n @if (uri()) {\r\n <img class=\"thumbnail mr-1\" [src]=\"uri() | safeUrl\" [alt]=\"alt()\" (click)=\"showCropDialog()\" pTooltip=\"Zoom and crop\" />\r\n <p-button icon=\"pi pi-times\" severity=\"danger\" [text]=\"true\" (onClick)=\"deleteImage()\"/>\r\n }\r\n</div>\r\n\r\n<p-dialog [header]=\"alt()\" [(visible)]=\"displayCropDialog\">\r\n <image-cropper\r\n [autoCrop]=\"true\"\r\n (imageCropped)=\"croppedImageChanged($event)\"\r\n [alignImage]=\"alignImage()\"\r\n [aspectRatio]=\"aspectRatio()\"\r\n [backgroundColor]=\"backgroundColor()\"\r\n [canvasRotation]=\"canvasRotation()\"\r\n [containWithinAspectRatio]=\"containWithinAspectRatio()\"\r\n [cropper]=\"cropper()\"\r\n [cropperMaxHeight]=\"cropperMaxHeight()\"\r\n [cropperMaxWidth]=\"cropperMaxWidth()\"\r\n [cropperMinHeight]=\"cropperMinHeight()\"\r\n [cropperMinWidth]=\"cropperMinWidth()\"\r\n [cropperStaticHeight]=\"cropperStaticHeight()\"\r\n [cropperStaticWidth]=\"cropperStaticWidth()\"\r\n [format]=\"format()\"\r\n [imageQuality]=\"imageQuality()\"\r\n [initialStepSize]=\"initialStepSize()\"\r\n [maintainAspectRatio]=\"maintainAspectRatio()\"\r\n [onlyScaleDown]=\"onlyScaleDown()\"\r\n [resizeToWidth]=\"resizeToWidth()\"\r\n [resizeToHeight]=\"resizeToHeight()\"\r\n [roundCropper]=\"roundCropper()\"\r\n [imageFile]=\"tempImageFile()\"\r\n [imageURL]=\"uri()\"\r\n output=\"base64\"\r\n ></image-cropper>\r\n <div class=\"flex justify-content-end\">\r\n <div class=\"flex-auto align-items-center\">\r\n <span>Background color:&nbsp;</span>\r\n <p-colorPicker [(ngModel)]=\"backgroundColor\" appendTo=\"body\" class=\"ml-1 mr-1\"></p-colorPicker>\r\n <input pInputText [(ngModel)]=\"backgroundColor\" />\r\n </div>\r\n <button type=\"button\" pButton pRipple (click)=\"acceptCroppedImage()\" class=\"mr-2\">Ok</button>\r\n <button type=\"button\" pButton pRipple (click)=\"closeCropDialog()\">Cancel</button>\r\n </div>\r\n</p-dialog>\r\n", styles: ["img.thumbnail{height:calc(1rem + 18px);cursor:zoom-in;border-radius:3px}a{text-decoration:none}a.p-button-icon-only span.p-button-label{height:1rem!important}\n"] }]
2297
- }], ctorParameters: () => [] });
2294
+ }], ctorParameters: () => [], propDecorators: { property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], backgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundColor", required: false }] }, { type: i0.Output, args: ["backgroundColorChange"] }], dialogs: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => Dialog), { isSignal: true }] }], fileUploads: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => FileUpload), { isSignal: true }] }], imageCroppers: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => ImageCropperComponent), { isSignal: true }] }], displayCropDialog: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayCropDialog", required: false }] }, { type: i0.Output, args: ["displayCropDialogChange"] }] } });
2298
2295
 
2299
2296
  function setValueOfInputSignal(signal, value) {
2300
2297
  const node = signal[SIGNAL];
@@ -2307,8 +2304,8 @@ function setValueOfInputSignal(signal, value) {
2307
2304
  * Thses are based on the properties step value.
2308
2305
  */
2309
2306
  class PropertyInputNumberAttributes {
2310
- formControlProperty = input(...(ngDevMode ? [undefined, { debugName: "formControlProperty" }] : []));
2311
- propertyAttributes = input(...(ngDevMode ? [undefined, { debugName: "propertyAttributes" }] : []));
2307
+ formControlProperty = input(...(ngDevMode ? [undefined, { debugName: "formControlProperty" }] : /* istanbul ignore next */ []));
2308
+ propertyAttributes = input(...(ngDevMode ? [undefined, { debugName: "propertyAttributes" }] : /* istanbul ignore next */ []));
2312
2309
  constructor(inputNumber) {
2313
2310
  // We need to set it to the maximum value in the constructor, because for some reason lowering it in the effect works, but raising it does not.
2314
2311
  inputNumber.maxFractionDigits = 100;
@@ -2345,17 +2342,17 @@ class PropertyInputNumberAttributes {
2345
2342
  }
2346
2343
  return count;
2347
2344
  }
2348
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyInputNumberAttributes, deps: [{ token: i1$5.InputNumber, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2349
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: PropertyInputNumberAttributes, isStandalone: true, selector: "p-inputNumber[formControlProperty], p-inputNumber[propertyAttributes]", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: false, transformFunction: null }, propertyAttributes: { classPropertyName: "propertyAttributes", publicName: "propertyAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
2345
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyInputNumberAttributes, deps: [{ token: i1$5.InputNumber, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2346
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: PropertyInputNumberAttributes, isStandalone: true, selector: "p-inputNumber[formControlProperty], p-inputNumber[propertyAttributes]", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: false, transformFunction: null }, propertyAttributes: { classPropertyName: "propertyAttributes", publicName: "propertyAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
2350
2347
  }
2351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyInputNumberAttributes, decorators: [{
2348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyInputNumberAttributes, decorators: [{
2352
2349
  type: Directive,
2353
2350
  args: [{
2354
2351
  selector: "p-inputNumber[formControlProperty], p-inputNumber[propertyAttributes]",
2355
2352
  }]
2356
2353
  }], ctorParameters: () => [{ type: i1$5.InputNumber, decorators: [{
2357
2354
  type: Self
2358
- }] }] });
2355
+ }] }], propDecorators: { formControlProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "formControlProperty", required: false }] }], propertyAttributes: [{ type: i0.Input, args: [{ isSignal: true, alias: "propertyAttributes", required: false }] }] } });
2359
2356
  /**
2360
2357
  * This directive sets the attributes of a p-select or p-multiSelect element based on the property.
2361
2358
  * It sets the optionLabel, optionValue, readonly, filterBy, filter, showClear, required, filterPlaceholder, appendTo, display, selectionLimit, showToggleAll attributes.
@@ -2372,8 +2369,8 @@ class PropertySelectAttributes {
2372
2369
  /**
2373
2370
  * The property to display.
2374
2371
  */
2375
- formControlProperty = input(...(ngDevMode ? [undefined, { debugName: "formControlProperty" }] : []));
2376
- propertyAttributes = input(...(ngDevMode ? [undefined, { debugName: "propertyAttributes" }] : []));
2372
+ formControlProperty = input(...(ngDevMode ? [undefined, { debugName: "formControlProperty" }] : /* istanbul ignore next */ []));
2373
+ propertyAttributes = input(...(ngDevMode ? [undefined, { debugName: "propertyAttributes" }] : /* istanbul ignore next */ []));
2377
2374
  constructor(select, multiSelect) {
2378
2375
  effect(() => {
2379
2376
  const property = this.formControlProperty() ?? this.propertyAttributes();
@@ -2415,10 +2412,10 @@ class PropertySelectAttributes {
2415
2412
  }
2416
2413
  });
2417
2414
  }
2418
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertySelectAttributes, deps: [{ token: i2$4.Select, optional: true, self: true }, { token: i3$2.MultiSelect, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2419
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: PropertySelectAttributes, isStandalone: true, selector: "p-select[formControlProperty], p-select[propertyAttributes], p-multiSelect[formControlProperty], p-multiSelect[propertyAttributes]", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: false, transformFunction: null }, propertyAttributes: { classPropertyName: "propertyAttributes", publicName: "propertyAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
2415
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertySelectAttributes, deps: [{ token: i2$4.Select, optional: true, self: true }, { token: i3$2.MultiSelect, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2416
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: PropertySelectAttributes, isStandalone: true, selector: "p-select[formControlProperty], p-select[propertyAttributes], p-multiSelect[formControlProperty], p-multiSelect[propertyAttributes]", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: false, transformFunction: null }, propertyAttributes: { classPropertyName: "propertyAttributes", publicName: "propertyAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
2420
2417
  }
2421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertySelectAttributes, decorators: [{
2418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertySelectAttributes, decorators: [{
2422
2419
  type: Directive,
2423
2420
  args: [{
2424
2421
  selector: "p-select[formControlProperty], p-select[propertyAttributes], p-multiSelect[formControlProperty], p-multiSelect[propertyAttributes]",
@@ -2431,7 +2428,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2431
2428
  type: Self
2432
2429
  }, {
2433
2430
  type: Optional
2434
- }] }] });
2431
+ }] }], propDecorators: { formControlProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "formControlProperty", required: false }] }], propertyAttributes: [{ type: i0.Input, args: [{ isSignal: true, alias: "propertyAttributes", required: false }] }] } });
2435
2432
  /**
2436
2433
  * This directive sets the attributes of an input element based on the property.
2437
2434
  * It sets the id, name, placeholder, type, max, min, step, required, readOnly, cols, rows, maxLength, minLength attributes.
@@ -2446,8 +2443,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2446
2443
  class PropertyAttributes {
2447
2444
  elementRef;
2448
2445
  renderer;
2449
- formControlProperty = input(...(ngDevMode ? [undefined, { debugName: "formControlProperty" }] : []));
2450
- propertyAttributes = input(...(ngDevMode ? [undefined, { debugName: "propertyAttributes" }] : []));
2446
+ formControlProperty = input(...(ngDevMode ? [undefined, { debugName: "formControlProperty" }] : /* istanbul ignore next */ []));
2447
+ propertyAttributes = input(...(ngDevMode ? [undefined, { debugName: "propertyAttributes" }] : /* istanbul ignore next */ []));
2451
2448
  constructor(elementRef, renderer) {
2452
2449
  this.elementRef = elementRef;
2453
2450
  this.renderer = renderer;
@@ -2491,15 +2488,15 @@ class PropertyAttributes {
2491
2488
  this.renderer.setAttribute(nativeElement, "minlength", property.minLength.toString());
2492
2489
  });
2493
2490
  }
2494
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyAttributes, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2495
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: PropertyAttributes, isStandalone: true, selector: "[formControlProperty],[propertyAttributes]", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: false, transformFunction: null }, propertyAttributes: { classPropertyName: "propertyAttributes", publicName: "propertyAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
2491
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyAttributes, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2492
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: PropertyAttributes, isStandalone: true, selector: "[formControlProperty],[propertyAttributes]", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: false, transformFunction: null }, propertyAttributes: { classPropertyName: "propertyAttributes", publicName: "propertyAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
2496
2493
  }
2497
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyAttributes, decorators: [{
2494
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyAttributes, decorators: [{
2498
2495
  type: Directive,
2499
2496
  args: [{
2500
2497
  selector: "[formControlProperty],[propertyAttributes]",
2501
2498
  }]
2502
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
2499
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { formControlProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "formControlProperty", required: false }] }], propertyAttributes: [{ type: i0.Input, args: [{ isSignal: true, alias: "propertyAttributes", required: false }] }] } });
2503
2500
  /**
2504
2501
  * This directive binds a property to a form control.
2505
2502
  * It sets the name of the form control to the name of the property and acts just like [formControlName]="myProperty().name".
@@ -2507,7 +2504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2507
2504
  * <input [formControlProperty]="property" />
2508
2505
  */
2509
2506
  class FormControlProperty extends FormControlName {
2510
- formControlProperty = input.required(...(ngDevMode ? [{ debugName: "formControlProperty" }] : []));
2507
+ formControlProperty = input.required(...(ngDevMode ? [{ debugName: "formControlProperty" }] : /* istanbul ignore next */ []));
2511
2508
  _propertyAdded = false;
2512
2509
  constructor(parent, validators, asyncValidators, valueAccessors) {
2513
2510
  super(parent, validators, asyncValidators, valueAccessors, null);
@@ -2528,15 +2525,15 @@ class FormControlProperty extends FormControlName {
2528
2525
  }
2529
2526
  super.ngOnChanges(changes);
2530
2527
  }
2531
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: FormControlProperty, deps: [{ token: i2$3.ControlContainer, host: true, optional: true, skipSelf: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }, { token: NG_VALUE_ACCESSOR, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2532
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: FormControlProperty, isStandalone: true, selector: "[formControlProperty]:not([useTemplateDrivenForms=true])", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
2528
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: FormControlProperty, deps: [{ token: i2$3.ControlContainer, host: true, optional: true, skipSelf: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: NG_ASYNC_VALIDATORS, optional: true, self: true }, { token: NG_VALUE_ACCESSOR, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2529
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: FormControlProperty, isStandalone: true, selector: "[formControlProperty]:not([useTemplateDrivenForms=true])", inputs: { formControlProperty: { classPropertyName: "formControlProperty", publicName: "formControlProperty", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
2533
2530
  {
2534
2531
  provide: NgControl,
2535
2532
  useExisting: forwardRef(() => FormControlProperty),
2536
2533
  },
2537
2534
  ], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
2538
2535
  }
2539
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: FormControlProperty, decorators: [{
2536
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: FormControlProperty, decorators: [{
2540
2537
  type: Directive,
2541
2538
  args: [{
2542
2539
  selector: "[formControlProperty]:not([useTemplateDrivenForms=true])",
@@ -2574,10 +2571,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2574
2571
  }, {
2575
2572
  type: Inject,
2576
2573
  args: [NG_VALUE_ACCESSOR]
2577
- }] }] });
2574
+ }] }], propDecorators: { formControlProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "formControlProperty", required: true }] }] } });
2578
2575
  class DefaultPropertyValueAccessor extends DefaultValueAccessor {
2579
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: DefaultPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2580
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: DefaultPropertyValueAccessor, isStandalone: true, selector: "input:not([type=checkbox])[formControlProperty], textarea[formControlProperty], select[formControlProperty]", providers: [
2576
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: DefaultPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2577
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: DefaultPropertyValueAccessor, isStandalone: true, selector: "input:not([type=checkbox])[formControlProperty], textarea[formControlProperty], select[formControlProperty]", providers: [
2581
2578
  {
2582
2579
  provide: NG_VALUE_ACCESSOR,
2583
2580
  useExisting: forwardRef(() => DefaultPropertyValueAccessor),
@@ -2585,7 +2582,7 @@ class DefaultPropertyValueAccessor extends DefaultValueAccessor {
2585
2582
  },
2586
2583
  ], usesInheritance: true, ngImport: i0 });
2587
2584
  }
2588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: DefaultPropertyValueAccessor, decorators: [{
2585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: DefaultPropertyValueAccessor, decorators: [{
2589
2586
  type: Directive,
2590
2587
  args: [{
2591
2588
  selector: "input:not([type=checkbox])[formControlProperty], textarea[formControlProperty], select[formControlProperty]",
@@ -2599,8 +2596,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2599
2596
  }]
2600
2597
  }] });
2601
2598
  class CheckboxPropertyValueAccessor extends CheckboxControlValueAccessor {
2602
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CheckboxPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2603
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: CheckboxPropertyValueAccessor, isStandalone: true, selector: "input[type=checkbox][formControlProperty]", providers: [
2599
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CheckboxPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2600
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: CheckboxPropertyValueAccessor, isStandalone: true, selector: "input[type=checkbox][formControlProperty]", providers: [
2604
2601
  {
2605
2602
  provide: NG_VALUE_ACCESSOR,
2606
2603
  useExisting: forwardRef(() => CheckboxPropertyValueAccessor),
@@ -2608,7 +2605,7 @@ class CheckboxPropertyValueAccessor extends CheckboxControlValueAccessor {
2608
2605
  },
2609
2606
  ], usesInheritance: true, ngImport: i0 });
2610
2607
  }
2611
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CheckboxPropertyValueAccessor, decorators: [{
2608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CheckboxPropertyValueAccessor, decorators: [{
2612
2609
  type: Directive,
2613
2610
  args: [{
2614
2611
  selector: "input[type=checkbox][formControlProperty]",
@@ -2622,8 +2619,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2622
2619
  }]
2623
2620
  }] });
2624
2621
  class SelectPropertyValueAccessor extends SelectControlValueAccessor {
2625
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SelectPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2626
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: SelectPropertyValueAccessor, isStandalone: true, selector: "select:not([multiple])[formControlProperty]", providers: [
2622
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2623
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: SelectPropertyValueAccessor, isStandalone: true, selector: "select:not([multiple])[formControlProperty]", providers: [
2627
2624
  {
2628
2625
  provide: NG_VALUE_ACCESSOR,
2629
2626
  useExisting: forwardRef(() => SelectPropertyValueAccessor),
@@ -2631,7 +2628,7 @@ class SelectPropertyValueAccessor extends SelectControlValueAccessor {
2631
2628
  },
2632
2629
  ], usesInheritance: true, ngImport: i0 });
2633
2630
  }
2634
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SelectPropertyValueAccessor, decorators: [{
2631
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectPropertyValueAccessor, decorators: [{
2635
2632
  type: Directive,
2636
2633
  args: [{
2637
2634
  selector: "select:not([multiple])[formControlProperty]",
@@ -2645,8 +2642,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2645
2642
  }]
2646
2643
  }] });
2647
2644
  class RangePropertyValueAccessor extends RangeValueAccessor {
2648
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RangePropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2649
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: RangePropertyValueAccessor, isStandalone: true, selector: "input[type=range][formControlProperty]", providers: [
2645
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RangePropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2646
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: RangePropertyValueAccessor, isStandalone: true, selector: "input[type=range][formControlProperty]", providers: [
2650
2647
  {
2651
2648
  provide: NG_VALUE_ACCESSOR,
2652
2649
  useExisting: forwardRef(() => RangePropertyValueAccessor),
@@ -2654,7 +2651,7 @@ class RangePropertyValueAccessor extends RangeValueAccessor {
2654
2651
  },
2655
2652
  ], usesInheritance: true, ngImport: i0 });
2656
2653
  }
2657
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RangePropertyValueAccessor, decorators: [{
2654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RangePropertyValueAccessor, decorators: [{
2658
2655
  type: Directive,
2659
2656
  args: [{
2660
2657
  selector: "input[type=range][formControlProperty]",
@@ -2668,8 +2665,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2668
2665
  }]
2669
2666
  }] });
2670
2667
  class NumberPropertyValueAccessor extends NumberValueAccessor {
2671
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NumberPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2672
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: NumberPropertyValueAccessor, isStandalone: true, selector: "input[type=number][formControlProperty]", providers: [
2668
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: NumberPropertyValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2669
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: NumberPropertyValueAccessor, isStandalone: true, selector: "input[type=number][formControlProperty]", providers: [
2673
2670
  {
2674
2671
  provide: NG_VALUE_ACCESSOR,
2675
2672
  useExisting: forwardRef(() => NumberPropertyValueAccessor),
@@ -2677,7 +2674,7 @@ class NumberPropertyValueAccessor extends NumberValueAccessor {
2677
2674
  },
2678
2675
  ], usesInheritance: true, ngImport: i0 });
2679
2676
  }
2680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NumberPropertyValueAccessor, decorators: [{
2677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: NumberPropertyValueAccessor, decorators: [{
2681
2678
  type: Directive,
2682
2679
  args: [{
2683
2680
  selector: "input[type=number][formControlProperty]",
@@ -2703,10 +2700,10 @@ class PropertyControlStatus extends NgControlStatus {
2703
2700
  constructor(cd) {
2704
2701
  super(cd);
2705
2702
  }
2706
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyControlStatus, deps: [{ token: i2$3.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2707
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: PropertyControlStatus, isStandalone: true, selector: "[formControlProperty]", host: { properties: { "class.ng-untouched": "isUntouched", "class.ng-touched": "isTouched", "class.ng-pristine": "isPristine", "class.ng-dirty": "isDirty", "class.ng-valid": "isValid", "class.ng-invalid": "isInvalid", "class.ng-pending": "isPending" } }, usesInheritance: true, ngImport: i0 });
2703
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyControlStatus, deps: [{ token: i2$3.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Directive });
2704
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: PropertyControlStatus, isStandalone: true, selector: "[formControlProperty]", host: { properties: { "class.ng-untouched": "isUntouched", "class.ng-touched": "isTouched", "class.ng-pristine": "isPristine", "class.ng-dirty": "isDirty", "class.ng-valid": "isValid", "class.ng-invalid": "isInvalid", "class.ng-pending": "isPending" } }, usesInheritance: true, ngImport: i0 });
2708
2705
  }
2709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PropertyControlStatus, decorators: [{
2706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: PropertyControlStatus, decorators: [{
2710
2707
  type: Directive,
2711
2708
  args: [{
2712
2709
  selector: "[formControlProperty]",
@@ -2716,11 +2713,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
2716
2713
  type: Self
2717
2714
  }] }] });
2718
2715
  class HalFormsModule {
2719
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HalFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2720
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: HalFormsModule, imports: [FormControlProperty, DefaultPropertyValueAccessor, CheckboxPropertyValueAccessor, SelectPropertyValueAccessor, RangePropertyValueAccessor, NumberPropertyValueAccessor, PropertyControlStatus, PropertySelectAttributes, PropertyAttributes, PropertyInputNumberAttributes, ReactiveFormsModule], exports: [FormControlProperty, DefaultPropertyValueAccessor, CheckboxPropertyValueAccessor, SelectPropertyValueAccessor, RangePropertyValueAccessor, NumberPropertyValueAccessor, PropertyControlStatus, PropertySelectAttributes, PropertyAttributes, PropertyInputNumberAttributes, ReactiveFormsModule] });
2721
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HalFormsModule, imports: [ReactiveFormsModule, ReactiveFormsModule] });
2716
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: HalFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2717
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: HalFormsModule, imports: [FormControlProperty, DefaultPropertyValueAccessor, CheckboxPropertyValueAccessor, SelectPropertyValueAccessor, RangePropertyValueAccessor, NumberPropertyValueAccessor, PropertyControlStatus, PropertySelectAttributes, PropertyAttributes, PropertyInputNumberAttributes, ReactiveFormsModule], exports: [FormControlProperty, DefaultPropertyValueAccessor, CheckboxPropertyValueAccessor, SelectPropertyValueAccessor, RangePropertyValueAccessor, NumberPropertyValueAccessor, PropertyControlStatus, PropertySelectAttributes, PropertyAttributes, PropertyInputNumberAttributes, ReactiveFormsModule] });
2718
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: HalFormsModule, imports: [ReactiveFormsModule, ReactiveFormsModule] });
2722
2719
  }
2723
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HalFormsModule, decorators: [{
2720
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: HalFormsModule, decorators: [{
2724
2721
  type: NgModule,
2725
2722
  args: [{
2726
2723
  imports: [FormControlProperty, DefaultPropertyValueAccessor, CheckboxPropertyValueAccessor, SelectPropertyValueAccessor, RangePropertyValueAccessor, NumberPropertyValueAccessor, PropertyControlStatus, PropertySelectAttributes, PropertyAttributes, PropertyInputNumberAttributes, ReactiveFormsModule],
@@ -3157,10 +3154,10 @@ class ODataService {
3157
3154
  }
3158
3155
  return property.type;
3159
3156
  }
3160
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ODataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3161
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ODataService, providedIn: 'root' });
3157
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ODataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3158
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ODataService, providedIn: 'root' });
3162
3159
  }
3163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ODataService, decorators: [{
3160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ODataService, decorators: [{
3164
3161
  type: Injectable,
3165
3162
  args: [{
3166
3163
  providedIn: 'root',
@@ -3178,7 +3175,7 @@ class RestWorldMenuButtonComponent {
3178
3175
  /**
3179
3176
  * An array of menu items to be displayed.
3180
3177
  */
3181
- items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
3178
+ items = input.required(...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
3182
3179
  constructor(_router) {
3183
3180
  this._router = _router;
3184
3181
  }
@@ -3213,13 +3210,13 @@ class RestWorldMenuButtonComponent {
3213
3210
  item.command({ item: item });
3214
3211
  }
3215
3212
  }
3216
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldMenuButtonComponent, deps: [{ token: i3$3.Router }], target: i0.ɵɵFactoryTarget.Component });
3217
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldMenuButtonComponent, isStandalone: true, selector: "rw-menu-button", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (item of items(); track item; let i = $index) {\n @if (!item.items) {\n <p-button\n [label]=\"item.label!\"\n [icon]=\"item.icon!\"\n [disabled]=\"item.disabled!\"\n [style]=\"item.style\"\n [styleClass]=\"item.styleClass!\"\n [pTooltip]=\"item.tooltip!\"\n [tooltipPosition]=\"item.tooltipPosition!\"\n (onClick)=\"onClick($event, item)\"\n [class.ml-2]=\"i > 0\">\n </p-button>\n } \n @else {\n <p-splitButton\n [label]=\"item.label!\"\n [icon]=\"item.icon!\"\n [model]=\"item.items\"\n appendTo=\"body\"\n [disabled]=\"item.disabled!\"\n [style]=\"item.style\"\n [styleClass]=\"item.styleClass!\"\n [pTooltip]=\"item.tooltip!\"\n [tooltipPosition]=\"item.tooltipPosition!\"\n (onClick)=\"onClick($event, item)\"\n [class.ml-2]=\"i > 0\">\n </p-splitButton>\n }\n}\n", styles: [":host{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$3.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: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i4$1.SplitButton, selector: "p-splitbutton, p-splitButton, p-split-button", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "styleClass", "menuStyle", "menuStyleClass", "dropdownIcon", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }] });
3213
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldMenuButtonComponent, deps: [{ token: i3$3.Router }], target: i0.ɵɵFactoryTarget.Component });
3214
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldMenuButtonComponent, isStandalone: true, selector: "rw-menu-button", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (item of items(); track item; let i = $index) {\r\n @if (!item.items) {\r\n <p-button\r\n [label]=\"item.label!\"\r\n [icon]=\"item.icon!\"\r\n [disabled]=\"item.disabled!\"\r\n [style]=\"item.style\"\r\n [styleClass]=\"item.styleClass!\"\r\n [pTooltip]=\"item.tooltip!\"\r\n [tooltipPosition]=\"item.tooltipPosition!\"\r\n (onClick)=\"onClick($event, item)\"\r\n [class.ml-2]=\"i > 0\">\r\n </p-button>\r\n } \r\n @else {\r\n <p-splitButton\r\n [label]=\"item.label!\"\r\n [icon]=\"item.icon!\"\r\n [model]=\"item.items\"\r\n appendTo=\"body\"\r\n [disabled]=\"item.disabled!\"\r\n [style]=\"item.style\"\r\n [styleClass]=\"item.styleClass!\"\r\n [pTooltip]=\"item.tooltip!\"\r\n [tooltipPosition]=\"item.tooltipPosition!\"\r\n (onClick)=\"onClick($event, item)\"\r\n [class.ml-2]=\"i > 0\">\r\n </p-splitButton>\r\n }\r\n}\r\n", styles: [":host{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$3.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i4$1.SplitButton, selector: "p-splitbutton, p-splitButton, p-split-button", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "styleClass", "menuStyle", "menuStyleClass", "dropdownIcon", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "motionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }] });
3218
3215
  }
3219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldMenuButtonComponent, decorators: [{
3216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldMenuButtonComponent, decorators: [{
3220
3217
  type: Component,
3221
- args: [{ selector: 'rw-menu-button', standalone: true, imports: [ButtonModule, TooltipModule, SplitButtonModule], template: "@for (item of items(); track item; let i = $index) {\n @if (!item.items) {\n <p-button\n [label]=\"item.label!\"\n [icon]=\"item.icon!\"\n [disabled]=\"item.disabled!\"\n [style]=\"item.style\"\n [styleClass]=\"item.styleClass!\"\n [pTooltip]=\"item.tooltip!\"\n [tooltipPosition]=\"item.tooltipPosition!\"\n (onClick)=\"onClick($event, item)\"\n [class.ml-2]=\"i > 0\">\n </p-button>\n } \n @else {\n <p-splitButton\n [label]=\"item.label!\"\n [icon]=\"item.icon!\"\n [model]=\"item.items\"\n appendTo=\"body\"\n [disabled]=\"item.disabled!\"\n [style]=\"item.style\"\n [styleClass]=\"item.styleClass!\"\n [pTooltip]=\"item.tooltip!\"\n [tooltipPosition]=\"item.tooltipPosition!\"\n (onClick)=\"onClick($event, item)\"\n [class.ml-2]=\"i > 0\">\n </p-splitButton>\n }\n}\n", styles: [":host{display:flex;justify-content:flex-end}\n"] }]
3222
- }], ctorParameters: () => [{ type: i3$3.Router }] });
3218
+ args: [{ selector: 'rw-menu-button', standalone: true, imports: [ButtonModule, TooltipModule, SplitButtonModule], template: "@for (item of items(); track item; let i = $index) {\r\n @if (!item.items) {\r\n <p-button\r\n [label]=\"item.label!\"\r\n [icon]=\"item.icon!\"\r\n [disabled]=\"item.disabled!\"\r\n [style]=\"item.style\"\r\n [styleClass]=\"item.styleClass!\"\r\n [pTooltip]=\"item.tooltip!\"\r\n [tooltipPosition]=\"item.tooltipPosition!\"\r\n (onClick)=\"onClick($event, item)\"\r\n [class.ml-2]=\"i > 0\">\r\n </p-button>\r\n } \r\n @else {\r\n <p-splitButton\r\n [label]=\"item.label!\"\r\n [icon]=\"item.icon!\"\r\n [model]=\"item.items\"\r\n appendTo=\"body\"\r\n [disabled]=\"item.disabled!\"\r\n [style]=\"item.style\"\r\n [styleClass]=\"item.styleClass!\"\r\n [pTooltip]=\"item.tooltip!\"\r\n [tooltipPosition]=\"item.tooltipPosition!\"\r\n (onClick)=\"onClick($event, item)\"\r\n [class.ml-2]=\"i > 0\">\r\n </p-splitButton>\r\n }\r\n}\r\n", styles: [":host{display:flex;justify-content:flex-end}\n"] }]
3219
+ }], ctorParameters: () => [{ type: i3$3.Router }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }] } });
3223
3220
 
3224
3221
  /**
3225
3222
  * This component is used to display a filter element for a table column.
@@ -3231,24 +3228,24 @@ class RestWorldTableColumnFilterElementComponent {
3231
3228
  * The filter constraint to update when the value changes.
3232
3229
  * This is coming from the $context of the #filter template
3233
3230
  */
3234
- filterConstraint = input.required(...(ngDevMode ? [{ debugName: "filterConstraint" }] : []));
3231
+ filterConstraint = input.required(...(ngDevMode ? [{ debugName: "filterConstraint" }] : /* istanbul ignore next */ []));
3235
3232
  /**
3236
3233
  * The HAL-Forms property to filter by.
3237
3234
  * This is normally the column.
3238
3235
  */
3239
- property = input.required(...(ngDevMode ? [{ debugName: "property" }] : []));
3236
+ property = input.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
3240
3237
  /**
3241
3238
  * The name of the API to use when generating dropdowns.
3242
3239
  */
3243
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
3240
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
3244
3241
  /**
3245
3242
  * The initial value of the filter.
3246
3243
  */
3247
- value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
3248
- form = computed(() => this._formService.createFormGroupFromTemplate(this.template()), ...(ngDevMode ? [{ debugName: "form" }] : []));
3244
+ value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
3245
+ form = computed(() => this._formService.createFormGroupFromTemplate(this.template()), ...(ngDevMode ? [{ debugName: "form" }] : /* istanbul ignore next */ []));
3249
3246
  template = computed(() => new Template({
3250
3247
  properties: [this.property()],
3251
- }), ...(ngDevMode ? [{ debugName: "template" }] : []));
3248
+ }), ...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
3252
3249
  _formValueChangesSubscription;
3253
3250
  constructor(_formService) {
3254
3251
  this._formService = _formService;
@@ -3268,13 +3265,13 @@ class RestWorldTableColumnFilterElementComponent {
3268
3265
  ngOnDestroy() {
3269
3266
  this._formValueChangesSubscription?.unsubscribe();
3270
3267
  }
3271
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldTableColumnFilterElementComponent, deps: [{ token: i1$1.FormService }], target: i0.ɵɵFactoryTarget.Component });
3272
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: RestWorldTableColumnFilterElementComponent, isStandalone: true, selector: "rw-table-column-filter-element", inputs: { filterConstraint: { classPropertyName: "filterConstraint", publicName: "filterConstraint", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<form [formGroup]=\"form()\">\r\n <rw-input [property]=\"property()\" [apiName]=\"apiName()\"></rw-input>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldInputComponent, selector: "rw-input" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
3268
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldTableColumnFilterElementComponent, deps: [{ token: i1$1.FormService }], target: i0.ɵɵFactoryTarget.Component });
3269
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: RestWorldTableColumnFilterElementComponent, isStandalone: true, selector: "rw-table-column-filter-element", inputs: { filterConstraint: { classPropertyName: "filterConstraint", publicName: "filterConstraint", isSignal: true, isRequired: true, transformFunction: null }, property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<form [formGroup]=\"form()\">\r\n <rw-input [property]=\"property()\" [apiName]=\"apiName()\"></rw-input>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldInputComponent, selector: "rw-input" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
3273
3270
  }
3274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldTableColumnFilterElementComponent, decorators: [{
3271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldTableColumnFilterElementComponent, decorators: [{
3275
3272
  type: Component,
3276
3273
  args: [{ selector: 'rw-table-column-filter-element', imports: [RestWorldInputComponent, ReactiveFormsModule], template: "<form [formGroup]=\"form()\">\r\n <rw-input [property]=\"property()\" [apiName]=\"apiName()\"></rw-input>\r\n</form>\r\n" }]
3277
- }], ctorParameters: () => [{ type: i1$1.FormService }] });
3274
+ }], ctorParameters: () => [{ type: i1$1.FormService }], propDecorators: { filterConstraint: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterConstraint", required: true }] }], property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }], apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
3278
3275
 
3279
3276
  /**
3280
3277
  * Displays a table based on a search-, an edit-template and a list of items.
@@ -3347,7 +3344,7 @@ class RestWorldTableComponent {
3347
3344
  * The name of the api.
3348
3345
  * For the editing capability, you must also set the editTemplate and the formArray.
3349
3346
  */
3350
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
3347
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
3351
3348
  /**
3352
3349
  * A function that returns the style class for a cell.
3353
3350
  * @param row The row for which to return the style class.
@@ -3356,51 +3353,51 @@ class RestWorldTableComponent {
3356
3353
  * @param columnIndex The index of the column.
3357
3354
  * @returns The style class for the cell.
3358
3355
  */
3359
- cellStyleClass = input(() => "", ...(ngDevMode ? [{ debugName: "cellStyleClass" }] : []));
3360
- cellStyleClasses = computed(() => this.rows().map((r, ri) => Object.fromEntries(this.columns().map((c, ci) => [c.name, this.cellStyleClass()(r, c, ri, ci)]))), ...(ngDevMode ? [{ debugName: "cellStyleClasses" }] : []));
3361
- columns = computed(() => this.searchTemplate()?.properties.filter(p => p.type !== PropertyType.Hidden) ?? [], ...(ngDevMode ? [{ debugName: "columns" }] : []));
3362
- contextMenu = viewChild("contextMenu", ...(ngDevMode ? [{ debugName: "contextMenu" }] : []));
3356
+ cellStyleClass = input(() => "", ...(ngDevMode ? [{ debugName: "cellStyleClass" }] : /* istanbul ignore next */ []));
3357
+ cellStyleClasses = computed(() => this.rows().map((r, ri) => Object.fromEntries(this.columns().map((c, ci) => [c.name, this.cellStyleClass()(r, c, ri, ci)]))), ...(ngDevMode ? [{ debugName: "cellStyleClasses" }] : /* istanbul ignore next */ []));
3358
+ columns = computed(() => this.searchTemplate()?.properties.filter(p => p.type !== PropertyType.Hidden) ?? [], ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
3359
+ contextMenu = viewChild("contextMenu", ...(ngDevMode ? [{ debugName: "contextMenu" }] : /* istanbul ignore next */ []));
3363
3360
  primeNgTable = viewChild.required("table");
3364
- contextMenuItems = signal([], ...(ngDevMode ? [{ debugName: "contextMenuItems" }] : []));
3361
+ contextMenuItems = signal([], ...(ngDevMode ? [{ debugName: "contextMenuItems" }] : /* istanbul ignore next */ []));
3365
3362
  dateFormat = new Date(3333, 10, 22) // months start at 0 in JS
3366
3363
  .toLocaleDateString()
3367
3364
  .replace("22", "dd")
3368
3365
  .replace("11", "MM")
3369
3366
  .replace("3333", "yy")
3370
3367
  .replace("33", "y");
3371
- editProperties = computed(() => this.editTemplate()?.propertiesRecord ?? {}, ...(ngDevMode ? [{ debugName: "editProperties" }] : []));
3368
+ editProperties = computed(() => this.editTemplate()?.propertiesRecord ?? {}, ...(ngDevMode ? [{ debugName: "editProperties" }] : /* istanbul ignore next */ []));
3372
3369
  /**
3373
3370
  * The template that is used to edit the items.
3374
3371
  * Bind this to the template that is used to edit the items.
3375
3372
  * Normally this is returned from the backend as part of the hal-forms resource from a list endpoint.
3376
3373
  * For the editing capability, you must also set the apiName and the formArray.
3377
3374
  */
3378
- editTemplate = input(...(ngDevMode ? [undefined, { debugName: "editTemplate" }] : []));
3375
+ editTemplate = input(...(ngDevMode ? [undefined, { debugName: "editTemplate" }] : /* istanbul ignore next */ []));
3379
3376
  filters = computed(() => {
3380
3377
  const filter = this.oDataParameters().$filter;
3381
3378
  const properties = this.searchTemplate()?.propertiesRecord;
3382
3379
  if (filter === null || filter === undefined || typeof filter !== "string" || properties === undefined)
3383
3380
  return {};
3384
3381
  return ODataService.createFilterMetadataFromODataFilter(filter, properties);
3385
- }, ...(ngDevMode ? [{ debugName: "filters" }] : []));
3382
+ }, ...(ngDevMode ? [{ debugName: "filters" }] : /* istanbul ignore next */ []));
3386
3383
  /**
3387
3384
  * The form array that contains the form groups for the items.
3388
3385
  * Bind this to the form array that contains the form groups for the items.
3389
3386
  * Each entry in the array represents one row in the currently displayed page of the table.
3390
3387
  * For the editing capability, you must also set the apiName and the editTemplate.
3391
3388
  */
3392
- formArray = computed(() => this._controlContainer?.control, ...(ngDevMode ? [{ debugName: "formArray" }] : []));
3389
+ formArray = computed(() => this._controlContainer?.control, ...(ngDevMode ? [{ debugName: "formArray" }] : /* istanbul ignore next */ []));
3393
3390
  /**
3394
3391
  * An optional menu that is displayed at the top right of the table.
3395
3392
  * @see RestWorldMenuButtonComponent
3396
3393
  */
3397
- headerMenu = input([], ...(ngDevMode ? [{ debugName: "headerMenu" }] : []));
3398
- isEditable = computed(() => this.editTemplate() !== undefined && this.formArray() !== undefined && this.apiName() !== undefined, ...(ngDevMode ? [{ debugName: "isEditable" }] : []));
3394
+ headerMenu = input([], ...(ngDevMode ? [{ debugName: "headerMenu" }] : /* istanbul ignore next */ []));
3395
+ isEditable = computed(() => this.editTemplate() !== undefined && this.formArray() !== undefined && this.apiName() !== undefined, ...(ngDevMode ? [{ debugName: "isEditable" }] : /* istanbul ignore next */ []));
3399
3396
  /**
3400
3397
  * Indicates whether the table is currently loading.
3401
3398
  * Set this to true while loading new items from the backend when reacting to the `onFilterOrSortChanged` event.
3402
3399
  */
3403
- isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
3400
+ isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
3404
3401
  /**
3405
3402
  * Indicates whether the table is lazy loaded.
3406
3403
  * If set to true, sorting and filtering needs to be handled by the `load` event.
@@ -3408,7 +3405,7 @@ class RestWorldTableComponent {
3408
3405
  * The default is `true`.
3409
3406
  * @see load
3410
3407
  */
3411
- lazy = input(true, ...(ngDevMode ? [{ debugName: "lazy" }] : []));
3408
+ lazy = input(true, ...(ngDevMode ? [{ debugName: "lazy" }] : /* istanbul ignore next */ []));
3412
3409
  /**
3413
3410
  * Indicates whether the table has a paginator.
3414
3411
  * If set to true, the table will display a paginator at the bottom.
@@ -3417,7 +3414,7 @@ class RestWorldTableComponent {
3417
3414
  * In order to customize the number of rows per page, you can set the `rowsPerPageOptions` property.
3418
3415
  * @see rowsPerPageOptions
3419
3416
  */
3420
- paginator = input(true, ...(ngDevMode ? [{ debugName: "paginator" }] : []));
3417
+ paginator = input(true, ...(ngDevMode ? [{ debugName: "paginator" }] : /* istanbul ignore next */ []));
3421
3418
  multiSortMeta = computed(() => {
3422
3419
  const orderBy = this.oDataParameters().$orderby;
3423
3420
  if (orderBy === null || orderBy === undefined || typeof orderBy !== "string")
@@ -3431,13 +3428,13 @@ class RestWorldTableComponent {
3431
3428
  const orderAsNumber = order?.toLowerCase() === "desc" ? -1 : 1;
3432
3429
  return { field: field, order: orderAsNumber };
3433
3430
  });
3434
- }, ...(ngDevMode ? [{ debugName: "multiSortMeta" }] : []));
3435
- oDataParameters = model({}, ...(ngDevMode ? [{ debugName: "oDataParameters" }] : []));
3436
- reflectParametersInUrl = input(true, ...(ngDevMode ? [{ debugName: "reflectParametersInUrl" }] : []));
3431
+ }, ...(ngDevMode ? [{ debugName: "multiSortMeta" }] : /* istanbul ignore next */ []));
3432
+ oDataParameters = model({}, ...(ngDevMode ? [{ debugName: "oDataParameters" }] : /* istanbul ignore next */ []));
3433
+ reflectParametersInUrl = input(true, ...(ngDevMode ? [{ debugName: "reflectParametersInUrl" }] : /* istanbul ignore next */ []));
3437
3434
  /**
3438
3435
  * Indicates whether the table rows are highlighted when the mouse hovers over them.
3439
3436
  */
3440
- rowHover = input(false, ...(ngDevMode ? [{ debugName: "rowHover" }] : []));
3437
+ rowHover = input(false, ...(ngDevMode ? [{ debugName: "rowHover" }] : /* istanbul ignore next */ []));
3441
3438
  /**
3442
3439
  * A function that returns the menu for a row.
3443
3440
  * Based on the openedByRightClick parameter, the function can return different menus.
@@ -3449,80 +3446,80 @@ class RestWorldTableComponent {
3449
3446
  * @see showRowMenuAsColumn
3450
3447
  * @see showRowMenuOnRightClick
3451
3448
  */
3452
- rowMenu = input(() => [], ...(ngDevMode ? [{ debugName: "rowMenu" }] : []));
3449
+ rowMenu = input(() => [], ...(ngDevMode ? [{ debugName: "rowMenu" }] : /* istanbul ignore next */ []));
3453
3450
  rowMenus = computed(() => {
3454
3451
  return this.showRowMenuAsColumn() ? this.rows().map(r => this.rowMenu()(r, false)) : [];
3455
- }, ...(ngDevMode ? [{ debugName: "rowMenus" }] : []));
3452
+ }, ...(ngDevMode ? [{ debugName: "rowMenus" }] : /* istanbul ignore next */ []));
3456
3453
  /**
3457
3454
  * A function that returns the style class for a row.
3458
3455
  * @param row The row for which to return the style class.
3459
3456
  * @param rowIndex The index of the row on the currently displayed page.
3460
3457
  * @returns The style class for the row.
3461
3458
  */
3462
- rowStyleClass = input(() => "", ...(ngDevMode ? [{ debugName: "rowStyleClass" }] : []));
3463
- rowStyleClasses = computed(() => this.rows().map((r, i) => this.rowStyleClass()(r, i)), ...(ngDevMode ? [{ debugName: "rowStyleClasses" }] : []));
3459
+ rowStyleClass = input(() => "", ...(ngDevMode ? [{ debugName: "rowStyleClass" }] : /* istanbul ignore next */ []));
3460
+ rowStyleClasses = computed(() => this.rows().map((r, i) => this.rowStyleClass()(r, i)), ...(ngDevMode ? [{ debugName: "rowStyleClasses" }] : /* istanbul ignore next */ []));
3464
3461
  /**
3465
3462
  * The items that are displayed as table rows.
3466
3463
  * Bind this to the items that are displayed as table rows.
3467
3464
  * Normally this is returned from the backend as part of the hal-forms resource from a list endpoint.
3468
3465
  */
3469
- rows = input.required(...(ngDevMode ? [{ debugName: "rows" }] : []));
3470
- rowsBeforeCurrentPage = computed(() => this.oDataParameters().$skip ?? 0, ...(ngDevMode ? [{ debugName: "rowsBeforeCurrentPage" }] : []));
3466
+ rows = input.required(...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
3467
+ rowsBeforeCurrentPage = computed(() => this.oDataParameters().$skip ?? 0, ...(ngDevMode ? [{ debugName: "rowsBeforeCurrentPage" }] : /* istanbul ignore next */ []));
3471
3468
  /**
3472
3469
  * The number of rows per page.
3473
3470
  * The default is the first element of rowsPerPageOptions.
3474
3471
  */
3475
- rowsPerPage = computed(() => this.oDataParameters().$top ?? this.rowsPerPageOptions()[0], ...(ngDevMode ? [{ debugName: "rowsPerPage" }] : []));
3472
+ rowsPerPage = computed(() => this.oDataParameters().$top ?? this.rowsPerPageOptions()[0], ...(ngDevMode ? [{ debugName: "rowsPerPage" }] : /* istanbul ignore next */ []));
3476
3473
  /**
3477
3474
  * The possible values for the number of rows per page.
3478
3475
  * The default is [10, 25, 50].
3479
3476
  */
3480
- rowsPerPageOptions = input([10, 25, 50], ...(ngDevMode ? [{ debugName: "rowsPerPageOptions" }] : []));
3477
+ rowsPerPageOptions = input([10, 25, 50], ...(ngDevMode ? [{ debugName: "rowsPerPageOptions" }] : /* istanbul ignore next */ []));
3481
3478
  /**
3482
3479
  * The height of the scrollable table.
3483
3480
  * The default is "flex".
3484
3481
  */
3485
- scrollHeight = input("flex", ...(ngDevMode ? [{ debugName: "scrollHeight" }] : []));
3482
+ scrollHeight = input("flex", ...(ngDevMode ? [{ debugName: "scrollHeight" }] : /* istanbul ignore next */ []));
3486
3483
  /**
3487
3484
  * Indicates whether the table is scrollable.
3488
3485
  * The default is `true`.
3489
3486
  */
3490
- scrollable = input(true, ...(ngDevMode ? [{ debugName: "scrollable" }] : []));
3487
+ scrollable = input(true, ...(ngDevMode ? [{ debugName: "scrollable" }] : /* istanbul ignore next */ []));
3491
3488
  /**
3492
3489
  * The template that is used to display the table columns and to filter and sort the items.
3493
3490
  * Bind this to the template that is used to display the table columns and to filter and sort the items.
3494
3491
  * Normally this is returned from the backend as part of the hal-forms resource from a list endpoint.
3495
3492
  */
3496
- searchTemplate = input.required(...(ngDevMode ? [{ debugName: "searchTemplate" }] : []));
3493
+ searchTemplate = input.required(...(ngDevMode ? [{ debugName: "searchTemplate" }] : /* istanbul ignore next */ []));
3497
3494
  /**
3498
3495
  * The currently selected rows.
3499
3496
  */
3500
- selectedRows = model([], ...(ngDevMode ? [{ debugName: "selectedRows" }] : []));
3497
+ selectedRows = model([], ...(ngDevMode ? [{ debugName: "selectedRows" }] : /* istanbul ignore next */ []));
3501
3498
  /**
3502
3499
  * The mode how rows can be selected.
3503
3500
  * The default is `null` which means rows cannot be selected.
3504
3501
  */
3505
- selectionMode = input(null, ...(ngDevMode ? [{ debugName: "selectionMode" }] : []));
3506
- showMenuColumn = computed(() => this.headerMenu().length > 0 || (this.showRowMenuAsColumn() && this.rowMenus().some(m => m.length > 0)), ...(ngDevMode ? [{ debugName: "showMenuColumn" }] : []));
3502
+ selectionMode = input(null, ...(ngDevMode ? [{ debugName: "selectionMode" }] : /* istanbul ignore next */ []));
3503
+ showMenuColumn = computed(() => this.headerMenu().length > 0 || (this.showRowMenuAsColumn() && this.rowMenus().some(m => m.length > 0)), ...(ngDevMode ? [{ debugName: "showMenuColumn" }] : /* istanbul ignore next */ []));
3507
3504
  /**
3508
3505
  * Indicates whether the row menu is displayed as a column to the right of the table.
3509
3506
  */
3510
- showRowMenuAsColumn = input(true, ...(ngDevMode ? [{ debugName: "showRowMenuAsColumn" }] : []));
3507
+ showRowMenuAsColumn = input(true, ...(ngDevMode ? [{ debugName: "showRowMenuAsColumn" }] : /* istanbul ignore next */ []));
3511
3508
  /**
3512
3509
  * Indicates whether the row menu is displayed as a context menu when the user right clicks on a row.
3513
3510
  */
3514
- showRowMenuOnRightClick = input(true, ...(ngDevMode ? [{ debugName: "showRowMenuOnRightClick" }] : []));
3511
+ showRowMenuOnRightClick = input(true, ...(ngDevMode ? [{ debugName: "showRowMenuOnRightClick" }] : /* istanbul ignore next */ []));
3515
3512
  /**
3516
3513
  * The style class for the table.
3517
3514
  * The default is "".
3518
3515
  */
3519
- styleClass = input("", ...(ngDevMode ? [{ debugName: "styleClass" }] : []));
3516
+ styleClass = input("", ...(ngDevMode ? [{ debugName: "styleClass" }] : /* istanbul ignore next */ []));
3520
3517
  /**
3521
3518
  * The inline style for the table.
3522
3519
  */
3523
- tableStyle = input(...(ngDevMode ? [undefined, { debugName: "tableStyle" }] : []));
3524
- totalRecords = input(0, ...(ngDevMode ? [{ debugName: "totalRecords" }] : []));
3525
- urlParameterPrefix = input("", ...(ngDevMode ? [{ debugName: "urlParameterPrefix" }] : []));
3520
+ tableStyle = input(...(ngDevMode ? [undefined, { debugName: "tableStyle" }] : /* istanbul ignore next */ []));
3521
+ totalRecords = input(0, ...(ngDevMode ? [{ debugName: "totalRecords" }] : /* istanbul ignore next */ []));
3522
+ urlParameterPrefix = input("", ...(ngDevMode ? [{ debugName: "urlParameterPrefix" }] : /* istanbul ignore next */ []));
3526
3523
  // private _formArray?: FormArray<FormGroup<{ [K in keyof TListItem]: AbstractControl<unknown> }>>;
3527
3524
  _filterMatchModeOptions;
3528
3525
  timeFormat = new Date(1, 1, 1, 22, 33, 44)
@@ -3693,21 +3690,21 @@ class RestWorldTableComponent {
3693
3690
  prefixObjectProperties(obj, prefix) {
3694
3691
  return Object.fromEntries(Object.entries(obj).map(([key, value]) => [`${prefix}${key}`, value]));
3695
3692
  }
3696
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldTableComponent, deps: [{ token: i2$3.ControlContainer }, { token: i1$1.FormService }, { token: i3$3.Router }, { token: i3$3.ActivatedRoute }, { token: i4$2.PrimeNG }, { token: i2$1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
3697
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldTableComponent, isStandalone: true, selector: "rw-table", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, cellStyleClass: { classPropertyName: "cellStyleClass", publicName: "cellStyleClass", isSignal: true, isRequired: false, transformFunction: null }, editTemplate: { classPropertyName: "editTemplate", publicName: "editTemplate", isSignal: true, isRequired: false, transformFunction: null }, headerMenu: { classPropertyName: "headerMenu", publicName: "headerMenu", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, oDataParameters: { classPropertyName: "oDataParameters", publicName: "oDataParameters", isSignal: true, isRequired: false, transformFunction: null }, reflectParametersInUrl: { classPropertyName: "reflectParametersInUrl", publicName: "reflectParametersInUrl", isSignal: true, isRequired: false, transformFunction: null }, rowHover: { classPropertyName: "rowHover", publicName: "rowHover", isSignal: true, isRequired: false, transformFunction: null }, rowMenu: { classPropertyName: "rowMenu", publicName: "rowMenu", isSignal: true, isRequired: false, transformFunction: null }, rowStyleClass: { classPropertyName: "rowStyleClass", publicName: "rowStyleClass", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, searchTemplate: { classPropertyName: "searchTemplate", publicName: "searchTemplate", isSignal: true, isRequired: true, transformFunction: null }, selectedRows: { classPropertyName: "selectedRows", publicName: "selectedRows", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showRowMenuAsColumn: { classPropertyName: "showRowMenuAsColumn", publicName: "showRowMenuAsColumn", isSignal: true, isRequired: false, transformFunction: null }, showRowMenuOnRightClick: { classPropertyName: "showRowMenuOnRightClick", publicName: "showRowMenuOnRightClick", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, urlParameterPrefix: { classPropertyName: "urlParameterPrefix", publicName: "urlParameterPrefix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { oDataParameters: "oDataParametersChange", selectedRows: "selectedRowsChange" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true, isSignal: true }, { propertyName: "primeNgTable", first: true, predicate: ["table"], descendants: true, isSignal: true }], ngImport: i0, template: "<p-table\r\n #table\r\n [value]=\"rows()\"\r\n [columns]=\"columns()\"\r\n [lazy]=\"lazy()\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n [paginator]=\"paginator()\"\r\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\r\n [rows]=\"rowsPerPage()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [loading]=\"isLoading()\"\r\n sortMode=\"multiple\"\r\n [multiSortMeta]=\"multiSortMeta()\"\r\n [class]=\"styleClass()\"\r\n [tableStyle]=\"tableStyle()\"\r\n [scrollable]=\"scrollable()\"\r\n [scrollHeight]=\"scrollHeight()\"\r\n [selectionMode]=\"selectionMode()\"\r\n [rowHover]=\"rowHover()\"\r\n [(selection)]=\"selectedRows\"\r\n [filters]=\"$any(filters())\"\r\n [first]=\"rowsBeforeCurrentPage()\"\r\n (onSort)=\"onSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track col.name) {\r\n <th [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center gap-1\">\r\n {{col.prompt}}\r\n @if(!col.readOnly) {\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n @if (lazy()) {\r\n <p-columnFilter #f\r\n [type]=\"toColumnFilterType(col.type)\"\r\n [maxFractionDigits]=\"toMaxFractionDigits(col)\"\r\n matchMode=\"noFilter\"\r\n [matchModeOptions]=\"toMatchModeOptions(col)\"\r\n [showMatchModes]=\"true\"\r\n [field]=\"col.name\"\r\n display=\"menu\"\r\n [maxConstraints]=\"100\"\r\n [class.has-filter]=\"f.hasFilter\">\r\n <ng-template #filter let-value let-filterConstraint=\"filterConstraint\" let-field=\"field\">\r\n <rw-table-column-filter-element [property]=\"col\" [value]=\"value\" [apiName]=\"apiName()\" [filterConstraint]=\"filterConstraint\"></rw-table-column-filter-element>\r\n </ng-template>\r\n </p-columnFilter>\r\n }\r\n }\r\n </div>\r\n </th>\r\n }\r\n @if (showMenuColumn()) {\r\n <th>\r\n <rw-menu-button [items]=\"headerMenu()\"></rw-menu-button>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr (contextmenu)=\"openContextMenu($event, entity)\" [pSelectableRow]=\"entity\" [pSelectableRowDisabled]=\"selectionMode() === null\" [className]=\"rowStyleClasses()[getAbsoluteIndex(rowIndex)]\">\r\n @for (col of columns; track col.name) {\r\n <td [className]=\"cellStyleClasses()[getAbsoluteIndex(rowIndex)][col.name]\">\r\n @let fomrArray = formArray();\r\n @if (showInputField(col) && fomrArray) {\r\n @let formControl = getFormGroupAtIndex(rowIndex);\r\n @if (formControl) {\r\n <ng-container [formGroup]=\"formControl\" >\r\n <rw-input [apiName]=\"apiName()\" [property]=\"editProperties()[col.name]!\"></rw-input>\r\n </ng-container>\r\n }\r\n }\r\n @else {\r\n <rw-display [property]=\"col\" [value]=\"entity[col.name]\" [apiName]=\"apiName()!\"></rw-display>\r\n }\r\n </td>\r\n }\r\n @if (showMenuColumn()) {\r\n <td>\r\n @if (showRowMenuAsColumn()) {\r\n <rw-menu-button [items]=\"rowMenus()[getAbsoluteIndex(rowIndex)]\"></rw-menu-button>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<p-contextMenu #contextMenu appendTo=\"body\" [model]=\"contextMenuItems()\"></p-contextMenu>\r\n", styles: [".p-tooltip{max-width:fit-content}a.p-button{text-decoration:none}::ng-deep rw-table rw-label.md\\:col-2{width:100%;font-weight:600}::ng-deep rw-table .p-d-flex{display:flex}::ng-deep rw-table .p-ai-center{align-items:center}::ng-deep rw-table .has-filter filtericon{color:var(--p-datatable-header-cell-selected-color)}::ng-deep rw-table p-columnfilter .p-datatable-column-filter-button{width:unset;height:23px!important;padding-block-end:0;padding-block-start:0}\n"], dependencies: [{ kind: "ngmodule", type: TableModule }, { kind: "component", type: i6.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i6.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: i6.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i6.ColumnFilter, selector: "p-columnFilter, p-column-filter, p-columnfilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "filterOn", "useGrouping", "showButtons", "ariaLabel", "filterButtonProps"], outputs: ["onShow", "onHide"] }, { kind: "component", type: RestWorldMenuButtonComponent, selector: "rw-menu-button", inputs: ["items"] }, { kind: "component", type: RestWorldInputComponent, selector: "rw-input" }, { kind: "component", type: RestWorldDisplayComponent, selector: "rw-display", inputs: ["apiName", "property", "value"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i7.ContextMenu, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "autoZIndex", "baseZIndex", "id", "breakpoint", "ariaLabel", "ariaLabelledBy", "pressDelay", "appendTo"], outputs: ["onShow", "onHide"] }, { kind: "component", type: RestWorldTableColumnFilterElementComponent, selector: "rw-table-column-filter-element", inputs: ["filterConstraint", "property", "apiName", "value"] }], viewProviders: [{
3693
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldTableComponent, deps: [{ token: i2$3.ControlContainer }, { token: i1$1.FormService }, { token: i3$3.Router }, { token: i3$3.ActivatedRoute }, { token: i4$2.PrimeNG }, { token: i2$1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
3694
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldTableComponent, isStandalone: true, selector: "rw-table", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, cellStyleClass: { classPropertyName: "cellStyleClass", publicName: "cellStyleClass", isSignal: true, isRequired: false, transformFunction: null }, editTemplate: { classPropertyName: "editTemplate", publicName: "editTemplate", isSignal: true, isRequired: false, transformFunction: null }, headerMenu: { classPropertyName: "headerMenu", publicName: "headerMenu", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, oDataParameters: { classPropertyName: "oDataParameters", publicName: "oDataParameters", isSignal: true, isRequired: false, transformFunction: null }, reflectParametersInUrl: { classPropertyName: "reflectParametersInUrl", publicName: "reflectParametersInUrl", isSignal: true, isRequired: false, transformFunction: null }, rowHover: { classPropertyName: "rowHover", publicName: "rowHover", isSignal: true, isRequired: false, transformFunction: null }, rowMenu: { classPropertyName: "rowMenu", publicName: "rowMenu", isSignal: true, isRequired: false, transformFunction: null }, rowStyleClass: { classPropertyName: "rowStyleClass", publicName: "rowStyleClass", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, searchTemplate: { classPropertyName: "searchTemplate", publicName: "searchTemplate", isSignal: true, isRequired: true, transformFunction: null }, selectedRows: { classPropertyName: "selectedRows", publicName: "selectedRows", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showRowMenuAsColumn: { classPropertyName: "showRowMenuAsColumn", publicName: "showRowMenuAsColumn", isSignal: true, isRequired: false, transformFunction: null }, showRowMenuOnRightClick: { classPropertyName: "showRowMenuOnRightClick", publicName: "showRowMenuOnRightClick", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, urlParameterPrefix: { classPropertyName: "urlParameterPrefix", publicName: "urlParameterPrefix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { oDataParameters: "oDataParametersChange", selectedRows: "selectedRowsChange" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true, isSignal: true }, { propertyName: "primeNgTable", first: true, predicate: ["table"], descendants: true, isSignal: true }], ngImport: i0, template: "<p-table\r\n #table\r\n [value]=\"rows()\"\r\n [columns]=\"columns()\"\r\n [lazy]=\"lazy()\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n [paginator]=\"paginator()\"\r\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\r\n [rows]=\"rowsPerPage()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [loading]=\"isLoading()\"\r\n sortMode=\"multiple\"\r\n [multiSortMeta]=\"multiSortMeta()\"\r\n [class]=\"styleClass()\"\r\n [tableStyle]=\"tableStyle()\"\r\n [scrollable]=\"scrollable()\"\r\n [scrollHeight]=\"scrollHeight()\"\r\n [selectionMode]=\"selectionMode()\"\r\n [rowHover]=\"rowHover()\"\r\n [(selection)]=\"selectedRows\"\r\n [filters]=\"$any(filters())\"\r\n [first]=\"rowsBeforeCurrentPage()\"\r\n (onSort)=\"onSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track col.name) {\r\n <th [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center gap-1\">\r\n {{col.prompt}}\r\n @if(!col.readOnly) {\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n @if (lazy()) {\r\n <p-columnFilter #f\r\n [type]=\"toColumnFilterType(col.type)\"\r\n [maxFractionDigits]=\"toMaxFractionDigits(col)\"\r\n matchMode=\"noFilter\"\r\n [matchModeOptions]=\"toMatchModeOptions(col)\"\r\n [showMatchModes]=\"true\"\r\n [field]=\"col.name\"\r\n display=\"menu\"\r\n [maxConstraints]=\"100\"\r\n [class.has-filter]=\"f.hasFilter\">\r\n <ng-template #filter let-value let-filterConstraint=\"filterConstraint\" let-field=\"field\">\r\n <rw-table-column-filter-element [property]=\"col\" [value]=\"value\" [apiName]=\"apiName()\" [filterConstraint]=\"filterConstraint\"></rw-table-column-filter-element>\r\n </ng-template>\r\n </p-columnFilter>\r\n }\r\n }\r\n </div>\r\n </th>\r\n }\r\n @if (showMenuColumn()) {\r\n <th>\r\n <rw-menu-button [items]=\"headerMenu()\"></rw-menu-button>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr (contextmenu)=\"openContextMenu($event, entity)\" [pSelectableRow]=\"entity\" [pSelectableRowDisabled]=\"selectionMode() === null\" [className]=\"rowStyleClasses()[getAbsoluteIndex(rowIndex)]\">\r\n @for (col of columns; track col.name) {\r\n <td [className]=\"cellStyleClasses()[getAbsoluteIndex(rowIndex)][col.name]\">\r\n @let fomrArray = formArray();\r\n @if (showInputField(col) && fomrArray) {\r\n @let formControl = getFormGroupAtIndex(rowIndex);\r\n @if (formControl) {\r\n <ng-container [formGroup]=\"formControl\" >\r\n <rw-input [apiName]=\"apiName()\" [property]=\"editProperties()[col.name]!\"></rw-input>\r\n </ng-container>\r\n }\r\n }\r\n @else {\r\n <rw-display [property]=\"col\" [value]=\"entity[col.name]\" [apiName]=\"apiName()!\"></rw-display>\r\n }\r\n </td>\r\n }\r\n @if (showMenuColumn()) {\r\n <td>\r\n @if (showRowMenuAsColumn()) {\r\n <rw-menu-button [items]=\"rowMenus()[getAbsoluteIndex(rowIndex)]\"></rw-menu-button>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<p-contextMenu #contextMenu appendTo=\"body\" [model]=\"contextMenuItems()\"></p-contextMenu>\r\n", styles: [".p-tooltip{max-width:fit-content}a.p-button{text-decoration:none}::ng-deep rw-table rw-label.md\\:col-2{width:100%;font-weight:600}::ng-deep rw-table .p-d-flex{display:flex}::ng-deep rw-table .p-ai-center{align-items:center}::ng-deep rw-table .has-filter filtericon{color:var(--p-datatable-header-cell-selected-color)}::ng-deep rw-table p-columnfilter .p-datatable-column-filter-button{width:unset;height:23px!important;padding-block-end:0;padding-block-start:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => TableModule) }, { kind: "component", type: i0.forwardRef(() => i6.Table), selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i0.forwardRef(() => i2$1.PrimeTemplate), selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i6.SortableColumn), selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i0.forwardRef(() => i6.SelectableRow), selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: i0.forwardRef(() => i6.SortIcon), selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i0.forwardRef(() => i6.ColumnFilter), selector: "p-columnFilter, p-column-filter, p-columnfilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "filterOn", "useGrouping", "showButtons", "ariaLabel", "filterButtonProps", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i0.forwardRef(() => RestWorldMenuButtonComponent), selector: "rw-menu-button", inputs: ["items"] }, { kind: "component", type: i0.forwardRef(() => RestWorldInputComponent), selector: "rw-input" }, { kind: "component", type: i0.forwardRef(() => RestWorldDisplayComponent), selector: "rw-display", inputs: ["apiName", "property", "value"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2$3.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i2$3.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(() => ContextMenuModule) }, { kind: "component", type: i0.forwardRef(() => i7.ContextMenu), selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "autoZIndex", "baseZIndex", "id", "breakpoint", "ariaLabel", "ariaLabelledBy", "pressDelay", "appendTo", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i0.forwardRef(() => RestWorldTableColumnFilterElementComponent), selector: "rw-table-column-filter-element", inputs: ["filterConstraint", "property", "apiName", "value"] }], viewProviders: [{
3698
3695
  provide: ControlContainer,
3699
3696
  deps: [[Optional, FormArrayName]],
3700
3697
  useFactory: (arrayName) => arrayName,
3701
3698
  }] });
3702
3699
  }
3703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldTableComponent, decorators: [{
3700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldTableComponent, decorators: [{
3704
3701
  type: Component,
3705
3702
  args: [{ selector: 'rw-table', standalone: true, viewProviders: [{
3706
3703
  provide: ControlContainer,
3707
3704
  deps: [[Optional, FormArrayName]],
3708
3705
  useFactory: (arrayName) => arrayName,
3709
- }], imports: [TableModule, RestWorldMenuButtonComponent, RestWorldInputComponent, RestWorldDisplayComponent, ReactiveFormsModule, ContextMenuModule, RestWorldTableColumnFilterElementComponent, RestWorldTableColumnFilterElementComponent], template: "<p-table\r\n #table\r\n [value]=\"rows()\"\r\n [columns]=\"columns()\"\r\n [lazy]=\"lazy()\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n [paginator]=\"paginator()\"\r\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\r\n [rows]=\"rowsPerPage()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [loading]=\"isLoading()\"\r\n sortMode=\"multiple\"\r\n [multiSortMeta]=\"multiSortMeta()\"\r\n [class]=\"styleClass()\"\r\n [tableStyle]=\"tableStyle()\"\r\n [scrollable]=\"scrollable()\"\r\n [scrollHeight]=\"scrollHeight()\"\r\n [selectionMode]=\"selectionMode()\"\r\n [rowHover]=\"rowHover()\"\r\n [(selection)]=\"selectedRows\"\r\n [filters]=\"$any(filters())\"\r\n [first]=\"rowsBeforeCurrentPage()\"\r\n (onSort)=\"onSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track col.name) {\r\n <th [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center gap-1\">\r\n {{col.prompt}}\r\n @if(!col.readOnly) {\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n @if (lazy()) {\r\n <p-columnFilter #f\r\n [type]=\"toColumnFilterType(col.type)\"\r\n [maxFractionDigits]=\"toMaxFractionDigits(col)\"\r\n matchMode=\"noFilter\"\r\n [matchModeOptions]=\"toMatchModeOptions(col)\"\r\n [showMatchModes]=\"true\"\r\n [field]=\"col.name\"\r\n display=\"menu\"\r\n [maxConstraints]=\"100\"\r\n [class.has-filter]=\"f.hasFilter\">\r\n <ng-template #filter let-value let-filterConstraint=\"filterConstraint\" let-field=\"field\">\r\n <rw-table-column-filter-element [property]=\"col\" [value]=\"value\" [apiName]=\"apiName()\" [filterConstraint]=\"filterConstraint\"></rw-table-column-filter-element>\r\n </ng-template>\r\n </p-columnFilter>\r\n }\r\n }\r\n </div>\r\n </th>\r\n }\r\n @if (showMenuColumn()) {\r\n <th>\r\n <rw-menu-button [items]=\"headerMenu()\"></rw-menu-button>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr (contextmenu)=\"openContextMenu($event, entity)\" [pSelectableRow]=\"entity\" [pSelectableRowDisabled]=\"selectionMode() === null\" [className]=\"rowStyleClasses()[getAbsoluteIndex(rowIndex)]\">\r\n @for (col of columns; track col.name) {\r\n <td [className]=\"cellStyleClasses()[getAbsoluteIndex(rowIndex)][col.name]\">\r\n @let fomrArray = formArray();\r\n @if (showInputField(col) && fomrArray) {\r\n @let formControl = getFormGroupAtIndex(rowIndex);\r\n @if (formControl) {\r\n <ng-container [formGroup]=\"formControl\" >\r\n <rw-input [apiName]=\"apiName()\" [property]=\"editProperties()[col.name]!\"></rw-input>\r\n </ng-container>\r\n }\r\n }\r\n @else {\r\n <rw-display [property]=\"col\" [value]=\"entity[col.name]\" [apiName]=\"apiName()!\"></rw-display>\r\n }\r\n </td>\r\n }\r\n @if (showMenuColumn()) {\r\n <td>\r\n @if (showRowMenuAsColumn()) {\r\n <rw-menu-button [items]=\"rowMenus()[getAbsoluteIndex(rowIndex)]\"></rw-menu-button>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<p-contextMenu #contextMenu appendTo=\"body\" [model]=\"contextMenuItems()\"></p-contextMenu>\r\n", styles: [".p-tooltip{max-width:fit-content}a.p-button{text-decoration:none}::ng-deep rw-table rw-label.md\\:col-2{width:100%;font-weight:600}::ng-deep rw-table .p-d-flex{display:flex}::ng-deep rw-table .p-ai-center{align-items:center}::ng-deep rw-table .has-filter filtericon{color:var(--p-datatable-header-cell-selected-color)}::ng-deep rw-table p-columnfilter .p-datatable-column-filter-button{width:unset;height:23px!important;padding-block-end:0;padding-block-start:0}\n"] }]
3710
- }], ctorParameters: () => [{ type: i2$3.ControlContainer }, { type: i1$1.FormService }, { type: i3$3.Router }, { type: i3$3.ActivatedRoute }, { type: i4$2.PrimeNG }, { type: i2$1.FilterService }] });
3706
+ }], imports: [TableModule, RestWorldMenuButtonComponent, forwardRef(() => RestWorldInputComponent), RestWorldDisplayComponent, ReactiveFormsModule, ContextMenuModule, RestWorldTableColumnFilterElementComponent, RestWorldTableColumnFilterElementComponent], template: "<p-table\r\n #table\r\n [value]=\"rows()\"\r\n [columns]=\"columns()\"\r\n [lazy]=\"lazy()\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n [paginator]=\"paginator()\"\r\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\r\n [rows]=\"rowsPerPage()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [loading]=\"isLoading()\"\r\n sortMode=\"multiple\"\r\n [multiSortMeta]=\"multiSortMeta()\"\r\n [class]=\"styleClass()\"\r\n [tableStyle]=\"tableStyle()\"\r\n [scrollable]=\"scrollable()\"\r\n [scrollHeight]=\"scrollHeight()\"\r\n [selectionMode]=\"selectionMode()\"\r\n [rowHover]=\"rowHover()\"\r\n [(selection)]=\"selectedRows\"\r\n [filters]=\"$any(filters())\"\r\n [first]=\"rowsBeforeCurrentPage()\"\r\n (onSort)=\"onSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track col.name) {\r\n <th [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center gap-1\">\r\n {{col.prompt}}\r\n @if(!col.readOnly) {\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n @if (lazy()) {\r\n <p-columnFilter #f\r\n [type]=\"toColumnFilterType(col.type)\"\r\n [maxFractionDigits]=\"toMaxFractionDigits(col)\"\r\n matchMode=\"noFilter\"\r\n [matchModeOptions]=\"toMatchModeOptions(col)\"\r\n [showMatchModes]=\"true\"\r\n [field]=\"col.name\"\r\n display=\"menu\"\r\n [maxConstraints]=\"100\"\r\n [class.has-filter]=\"f.hasFilter\">\r\n <ng-template #filter let-value let-filterConstraint=\"filterConstraint\" let-field=\"field\">\r\n <rw-table-column-filter-element [property]=\"col\" [value]=\"value\" [apiName]=\"apiName()\" [filterConstraint]=\"filterConstraint\"></rw-table-column-filter-element>\r\n </ng-template>\r\n </p-columnFilter>\r\n }\r\n }\r\n </div>\r\n </th>\r\n }\r\n @if (showMenuColumn()) {\r\n <th>\r\n <rw-menu-button [items]=\"headerMenu()\"></rw-menu-button>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr (contextmenu)=\"openContextMenu($event, entity)\" [pSelectableRow]=\"entity\" [pSelectableRowDisabled]=\"selectionMode() === null\" [className]=\"rowStyleClasses()[getAbsoluteIndex(rowIndex)]\">\r\n @for (col of columns; track col.name) {\r\n <td [className]=\"cellStyleClasses()[getAbsoluteIndex(rowIndex)][col.name]\">\r\n @let fomrArray = formArray();\r\n @if (showInputField(col) && fomrArray) {\r\n @let formControl = getFormGroupAtIndex(rowIndex);\r\n @if (formControl) {\r\n <ng-container [formGroup]=\"formControl\" >\r\n <rw-input [apiName]=\"apiName()\" [property]=\"editProperties()[col.name]!\"></rw-input>\r\n </ng-container>\r\n }\r\n }\r\n @else {\r\n <rw-display [property]=\"col\" [value]=\"entity[col.name]\" [apiName]=\"apiName()!\"></rw-display>\r\n }\r\n </td>\r\n }\r\n @if (showMenuColumn()) {\r\n <td>\r\n @if (showRowMenuAsColumn()) {\r\n <rw-menu-button [items]=\"rowMenus()[getAbsoluteIndex(rowIndex)]\"></rw-menu-button>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<p-contextMenu #contextMenu appendTo=\"body\" [model]=\"contextMenuItems()\"></p-contextMenu>\r\n", styles: [".p-tooltip{max-width:fit-content}a.p-button{text-decoration:none}::ng-deep rw-table rw-label.md\\:col-2{width:100%;font-weight:600}::ng-deep rw-table .p-d-flex{display:flex}::ng-deep rw-table .p-ai-center{align-items:center}::ng-deep rw-table .has-filter filtericon{color:var(--p-datatable-header-cell-selected-color)}::ng-deep rw-table p-columnfilter .p-datatable-column-filter-button{width:unset;height:23px!important;padding-block-end:0;padding-block-start:0}\n"] }]
3707
+ }], ctorParameters: () => [{ type: i2$3.ControlContainer }, { type: i1$1.FormService }, { type: i3$3.Router }, { type: i3$3.ActivatedRoute }, { type: i4$2.PrimeNG }, { type: i2$1.FilterService }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], cellStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cellStyleClass", required: false }] }], contextMenu: [{ type: i0.ViewChild, args: ["contextMenu", { isSignal: true }] }], primeNgTable: [{ type: i0.ViewChild, args: ["table", { isSignal: true }] }], editTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "editTemplate", required: false }] }], headerMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerMenu", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], paginator: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginator", required: false }] }], oDataParameters: [{ type: i0.Input, args: [{ isSignal: true, alias: "oDataParameters", required: false }] }, { type: i0.Output, args: ["oDataParametersChange"] }], reflectParametersInUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "reflectParametersInUrl", required: false }] }], rowHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHover", required: false }] }], rowMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowMenu", required: false }] }], rowStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowStyleClass", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: true }] }], rowsPerPageOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPageOptions", required: false }] }], scrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollHeight", required: false }] }], scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], searchTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchTemplate", required: true }] }], selectedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedRows", required: false }] }, { type: i0.Output, args: ["selectedRowsChange"] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], showRowMenuAsColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRowMenuAsColumn", required: false }] }], showRowMenuOnRightClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRowMenuOnRightClick", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], tableStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableStyle", required: false }] }], totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: false }] }], urlParameterPrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "urlParameterPrefix", required: false }] }] } });
3711
3708
  var ColumnFilterType;
3712
3709
  (function (ColumnFilterType) {
3713
3710
  ColumnFilterType["text"] = "text";
@@ -3725,18 +3722,18 @@ class RestWorldInputBaseComponent {
3725
3722
  * The property to display.
3726
3723
  * @required
3727
3724
  */
3728
- property = model.required(...(ngDevMode ? [{ debugName: "property" }] : []));
3725
+ property = model.required(...(ngDevMode ? [{ debugName: "property" }] : /* istanbul ignore next */ []));
3729
3726
  /**
3730
3727
  * Set this to true if the input should use template driven forms instead of the default reactive forms.
3731
3728
  */
3732
- useTemplateDrivenForms = input(false, ...(ngDevMode ? [{ debugName: "useTemplateDrivenForms" }] : []));
3733
- model = model(...(ngDevMode ? [undefined, { debugName: "model" }] : []));
3734
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3735
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: RestWorldInputBaseComponent, isStandalone: true, inputs: { property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, useTemplateDrivenForms: { classPropertyName: "useTemplateDrivenForms", publicName: "useTemplateDrivenForms", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { property: "propertyChange", model: "modelChange" }, ngImport: i0 });
3729
+ useTemplateDrivenForms = input(false, ...(ngDevMode ? [{ debugName: "useTemplateDrivenForms" }] : /* istanbul ignore next */ []));
3730
+ model = model(...(ngDevMode ? [undefined, { debugName: "model" }] : /* istanbul ignore next */ []));
3731
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3732
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: RestWorldInputBaseComponent, isStandalone: true, inputs: { property: { classPropertyName: "property", publicName: "property", isSignal: true, isRequired: true, transformFunction: null }, useTemplateDrivenForms: { classPropertyName: "useTemplateDrivenForms", publicName: "useTemplateDrivenForms", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { property: "propertyChange", model: "modelChange" }, ngImport: i0 });
3736
3733
  }
3737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputBaseComponent, decorators: [{
3734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputBaseComponent, decorators: [{
3738
3735
  type: Directive
3739
- }] });
3736
+ }], propDecorators: { property: [{ type: i0.Input, args: [{ isSignal: true, alias: "property", required: true }] }, { type: i0.Output, args: ["propertyChange"] }], useTemplateDrivenForms: [{ type: i0.Input, args: [{ isSignal: true, alias: "useTemplateDrivenForms", required: false }] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }, { type: i0.Output, args: ["modelChange"] }] } });
3740
3737
  /**
3741
3738
  * A base class for all input components which also feature lazy loading, like dropdowns.
3742
3739
  */
@@ -3746,13 +3743,13 @@ class RestWorldInputLazyLoadBaseComponent extends RestWorldInputBaseComponent {
3746
3743
  * @required
3747
3744
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
3748
3745
  */
3749
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
3750
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputLazyLoadBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3751
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: RestWorldInputLazyLoadBaseComponent, isStandalone: true, inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
3746
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
3747
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputLazyLoadBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3748
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.7", type: RestWorldInputLazyLoadBaseComponent, isStandalone: true, inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
3752
3749
  }
3753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputLazyLoadBaseComponent, decorators: [{
3750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputLazyLoadBaseComponent, decorators: [{
3754
3751
  type: Directive
3755
- }] });
3752
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }] } });
3756
3753
  /**
3757
3754
  * A form element with a label that is automatically created from a property in a form template.
3758
3755
  * This may also be a complex object or a collection in which case multiple and nested input elements may be rendered.
@@ -3761,10 +3758,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
3761
3758
  * <rw-form-element [property]="property" [apiName]="apiName"></rw-form-element>
3762
3759
  */
3763
3760
  class RestWorldFormElementComponent extends RestWorldInputLazyLoadBaseComponent {
3764
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldFormElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3765
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: RestWorldFormElementComponent, isStandalone: true, selector: "rw-form-element", usesInheritance: true, ngImport: i0, template: "<div class=\"grid field\">\r\n <rw-label [property]=\"property()\" class=\"col-12 md:col-2 flex align-items-center\"></rw-label>\r\n <rw-input [apiName]=\"apiName()\" [property]=\"property()\" class=\"col-12 md:col-10\"></rw-input>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldInputComponent), selector: "rw-input" }, { kind: "component", type: i0.forwardRef(() => RestWorldLabelComponent), selector: "rw-label", inputs: ["property"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3761
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldFormElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3762
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: RestWorldFormElementComponent, isStandalone: true, selector: "rw-form-element", usesInheritance: true, ngImport: i0, template: "<div class=\"grid field\">\r\n <rw-label [property]=\"property()\" class=\"col-12 md:col-2 flex align-items-center\"></rw-label>\r\n <rw-input [apiName]=\"apiName()\" [property]=\"property()\" class=\"col-12 md:col-10\"></rw-input>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldInputComponent), selector: "rw-input" }, { kind: "component", type: i0.forwardRef(() => RestWorldLabelComponent), selector: "rw-label", inputs: ["property"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3766
3763
  }
3767
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldFormElementComponent, decorators: [{
3764
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldFormElementComponent, decorators: [{
3768
3765
  type: Component,
3769
3766
  args: [{ selector: 'rw-form-element', viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [forwardRef(() => RestWorldInputComponent), RestWorldLabelComponent], template: "<div class=\"grid field\">\r\n <rw-label [property]=\"property()\" class=\"col-12 md:col-2 flex align-items-center\"></rw-label>\r\n <rw-input [apiName]=\"apiName()\" [property]=\"property()\" class=\"col-12 md:col-10\"></rw-input>\r\n</div>\r\n" }]
3770
3767
  }] });
@@ -3779,9 +3776,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
3779
3776
  class RestWorldInputCollectionComponent extends RestWorldInputLazyLoadBaseComponent {
3780
3777
  _formService;
3781
3778
  _controlContainer;
3782
- defaultTemplate = computed(() => this.property()._templates.default, ...(ngDevMode ? [{ debugName: "defaultTemplate" }] : []));
3783
- innerFormArray = computed(() => this._controlContainer.control?.controls[this.property().name], ...(ngDevMode ? [{ debugName: "innerFormArray" }] : []));
3784
- templates = computed(() => this.getCollectionEntryTemplates(this.property()), ...(ngDevMode ? [{ debugName: "templates" }] : []));
3779
+ defaultTemplate = computed(() => this.property()._templates.default, ...(ngDevMode ? [{ debugName: "defaultTemplate" }] : /* istanbul ignore next */ []));
3780
+ innerFormArray = computed(() => this._controlContainer.control?.controls[this.property().name], ...(ngDevMode ? [{ debugName: "innerFormArray" }] : /* istanbul ignore next */ []));
3781
+ templates = computed(() => this.getCollectionEntryTemplates(this.property()), ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
3785
3782
  rows = toSignal(merge(
3786
3783
  // Get the initial value when 'control' changes
3787
3784
  toObservable(this.innerFormArray).pipe(map((ctl) => ctl.value)),
@@ -3799,7 +3796,7 @@ class RestWorldInputCollectionComponent extends RestWorldInputLazyLoadBaseCompon
3799
3796
  command: () => this.addNewItemToCollection()
3800
3797
  }
3801
3798
  ];
3802
- }, ...(ngDevMode ? [{ debugName: "headerMenu" }] : []));
3799
+ }, ...(ngDevMode ? [{ debugName: "headerMenu" }] : /* istanbul ignore next */ []));
3803
3800
  rowMenu = computed(() => (row, openedByRightClick) => {
3804
3801
  const isReadOnly = this.property().readOnly;
3805
3802
  if (isReadOnly)
@@ -3814,7 +3811,7 @@ class RestWorldInputCollectionComponent extends RestWorldInputLazyLoadBaseCompon
3814
3811
  command: () => this.deleteItemFromCollection(row)
3815
3812
  }
3816
3813
  ];
3817
- }, ...(ngDevMode ? [{ debugName: "rowMenu" }] : []));
3814
+ }, ...(ngDevMode ? [{ debugName: "rowMenu" }] : /* istanbul ignore next */ []));
3818
3815
  constructor(_formService, _controlContainer) {
3819
3816
  super();
3820
3817
  this._formService = _formService;
@@ -3844,12 +3841,12 @@ class RestWorldInputCollectionComponent extends RestWorldInputLazyLoadBaseCompon
3844
3841
  const index = this.rows().indexOf(row);
3845
3842
  this.innerFormArray().removeAt(index);
3846
3843
  }
3847
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputCollectionComponent, deps: [{ token: i1$1.FormService }, { token: i2$3.ControlContainer }], target: i0.ɵɵFactoryTarget.Component });
3848
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: RestWorldInputCollectionComponent, isStandalone: true, selector: "rw-input-collection", queries: [{ propertyName: "inputCollectionRef", first: true, predicate: ["inputCollection"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<rw-table\n [apiName]=\"apiName()\"\n [editTemplate]=\"defaultTemplate()\"\n [formArrayName]=\"property().name\"\n [lazy]=\"false\"\n [rows]=\"rows()\"\n [searchTemplate]=\"defaultTemplate()\"\n [headerMenu]=\"headerMenu()\"\n [rowMenu]=\"rowMenu()\"\n\n >\n</rw-table>\n", styles: [".cdk-drag-handle{cursor:move}.cdk-drag-preview{background-color:#ffffffd0;border:2px dashed rgb(206,212,218);cursor:move}.cdk-drag-placeholder{border:2px dashed rgb(206,212,218);margin:-2px}.brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => DragDropModule) }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2$3.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i2$3.FormArrayName), selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i0.forwardRef(() => RestWorldTableComponent), selector: "rw-table", inputs: ["apiName", "cellStyleClass", "editTemplate", "headerMenu", "isLoading", "lazy", "paginator", "oDataParameters", "reflectParametersInUrl", "rowHover", "rowMenu", "rowStyleClass", "rows", "rowsPerPageOptions", "scrollHeight", "scrollable", "searchTemplate", "selectedRows", "selectionMode", "showRowMenuAsColumn", "showRowMenuOnRightClick", "styleClass", "tableStyle", "totalRecords", "urlParameterPrefix"], outputs: ["oDataParametersChange", "selectedRowsChange"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3844
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputCollectionComponent, deps: [{ token: i1$1.FormService }, { token: i2$3.ControlContainer }], target: i0.ɵɵFactoryTarget.Component });
3845
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: RestWorldInputCollectionComponent, isStandalone: true, selector: "rw-input-collection", queries: [{ propertyName: "inputCollectionRef", first: true, predicate: ["inputCollection"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<rw-table\r\n [apiName]=\"apiName()\"\r\n [editTemplate]=\"defaultTemplate()\"\r\n [formArrayName]=\"property().name\"\r\n [lazy]=\"false\"\r\n [rows]=\"rows()\"\r\n [searchTemplate]=\"defaultTemplate()\"\r\n [headerMenu]=\"headerMenu()\"\r\n [rowMenu]=\"rowMenu()\"\r\n\r\n >\r\n</rw-table>\r\n", styles: [".cdk-drag-handle{cursor:move}.cdk-drag-preview{background-color:#ffffffd0;border:2px dashed rgb(206,212,218);cursor:move}.cdk-drag-placeholder{border:2px dashed rgb(206,212,218);margin:-2px}.brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => DragDropModule) }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2$3.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i2$3.FormArrayName), selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i0.forwardRef(() => RestWorldTableComponent), selector: "rw-table", inputs: ["apiName", "cellStyleClass", "editTemplate", "headerMenu", "isLoading", "lazy", "paginator", "oDataParameters", "reflectParametersInUrl", "rowHover", "rowMenu", "rowStyleClass", "rows", "rowsPerPageOptions", "scrollHeight", "scrollable", "searchTemplate", "selectedRows", "selectionMode", "showRowMenuAsColumn", "showRowMenuOnRightClick", "styleClass", "tableStyle", "totalRecords", "urlParameterPrefix"], outputs: ["oDataParametersChange", "selectedRowsChange"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3849
3846
  }
3850
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputCollectionComponent, decorators: [{
3847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputCollectionComponent, decorators: [{
3851
3848
  type: Component,
3852
- args: [{ selector: 'rw-input-collection', viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [forwardRef(() => RestWorldInputTemplateComponent), DragDropModule, ReactiveFormsModule, RestWorldTableComponent], template: "<rw-table\n [apiName]=\"apiName()\"\n [editTemplate]=\"defaultTemplate()\"\n [formArrayName]=\"property().name\"\n [lazy]=\"false\"\n [rows]=\"rows()\"\n [searchTemplate]=\"defaultTemplate()\"\n [headerMenu]=\"headerMenu()\"\n [rowMenu]=\"rowMenu()\"\n\n >\n</rw-table>\n", styles: [".cdk-drag-handle{cursor:move}.cdk-drag-preview{background-color:#ffffffd0;border:2px dashed rgb(206,212,218);cursor:move}.cdk-drag-placeholder{border:2px dashed rgb(206,212,218);margin:-2px}.brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"] }]
3849
+ args: [{ selector: 'rw-input-collection', viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [DragDropModule, ReactiveFormsModule, forwardRef(() => RestWorldTableComponent)], template: "<rw-table\r\n [apiName]=\"apiName()\"\r\n [editTemplate]=\"defaultTemplate()\"\r\n [formArrayName]=\"property().name\"\r\n [lazy]=\"false\"\r\n [rows]=\"rows()\"\r\n [searchTemplate]=\"defaultTemplate()\"\r\n [headerMenu]=\"headerMenu()\"\r\n [rowMenu]=\"rowMenu()\"\r\n\r\n >\r\n</rw-table>\r\n", styles: [".cdk-drag-handle{cursor:move}.cdk-drag-preview{background-color:#ffffffd0;border:2px dashed rgb(206,212,218);cursor:move}.cdk-drag-placeholder{border:2px dashed rgb(206,212,218);margin:-2px}.brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"] }]
3853
3850
  }], ctorParameters: () => [{ type: i1$1.FormService }, { type: i2$3.ControlContainer }], propDecorators: { inputCollectionRef: [{
3854
3851
  type: ContentChild,
3855
3852
  args: ['inputCollection', { static: false }]
@@ -3870,10 +3867,10 @@ class RestWorldInputComponent extends RestWorldInputLazyLoadBaseComponent {
3870
3867
  get PropertyWithOptions() {
3871
3868
  return PropertyWithOptions;
3872
3869
  }
3873
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3874
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldInputComponent, isStandalone: true, selector: "rw-input", usesInheritance: true, ngImport: i0, template: "@if (property()) {\r\n @if (property().options) {\r\n <rw-input-dropdown [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-dropdown>\r\n }\r\n @else {\r\n @switch (property().type) {\r\n @case (PropertyType.Object) {\r\n <rw-input-object [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-object>\r\n }\r\n @case (PropertyType.Collection) {\r\n <rw-input-collection [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-collection>\r\n }\r\n @default {\r\n <rw-input-simple [property]=\"property()\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-simple>\r\n }\r\n }\r\n }\r\n\r\n <rw-validation-errors [property]=\"property()\"></rw-validation-errors>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldInputDropdownComponent), selector: "rw-input-dropdown", inputs: ["caseSensitive", "getLabel", "getTooltip"], outputs: ["onChange"] }, { kind: "component", type: i0.forwardRef(() => RestWorldInputObjectComponent), selector: "rw-input-object" }, { kind: "component", type: i0.forwardRef(() => RestWorldInputSimpleComponent), selector: "rw-input-simple" }, { kind: "component", type: i0.forwardRef(() => RestWorldInputCollectionComponent), selector: "rw-input-collection" }, { kind: "component", type: i0.forwardRef(() => RestWorldValidationErrorsComponent), selector: "rw-validation-errors", inputs: ["form", "property"] }, { kind: "ngmodule", type: i0.forwardRef(() => FormsModule) }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3870
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3871
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldInputComponent, isStandalone: true, selector: "rw-input", usesInheritance: true, ngImport: i0, template: "@if (property()) {\r\n @if (property().options) {\r\n <rw-input-dropdown [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-dropdown>\r\n }\r\n @else {\r\n @switch (property().type) {\r\n @case (PropertyType.Object) {\r\n <rw-input-object [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-object>\r\n }\r\n @case (PropertyType.Collection) {\r\n <rw-input-collection [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-collection>\r\n }\r\n @default {\r\n <rw-input-simple [property]=\"property()\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-simple>\r\n }\r\n }\r\n }\r\n\r\n <rw-validation-errors [property]=\"property()\"></rw-validation-errors>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldInputDropdownComponent), selector: "rw-input-dropdown", inputs: ["caseSensitive", "getLabel", "getTooltip"], outputs: ["onChange"] }, { kind: "component", type: i0.forwardRef(() => RestWorldInputObjectComponent), selector: "rw-input-object" }, { kind: "component", type: i0.forwardRef(() => RestWorldInputSimpleComponent), selector: "rw-input-simple" }, { kind: "component", type: i0.forwardRef(() => RestWorldInputCollectionComponent), selector: "rw-input-collection" }, { kind: "component", type: i0.forwardRef(() => RestWorldValidationErrorsComponent), selector: "rw-validation-errors", inputs: ["form", "property"] }, { kind: "ngmodule", type: i0.forwardRef(() => FormsModule) }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3875
3872
  }
3876
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputComponent, decorators: [{
3873
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputComponent, decorators: [{
3877
3874
  type: Component,
3878
3875
  args: [{ selector: 'rw-input', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [forwardRef(() => RestWorldInputDropdownComponent), forwardRef(() => RestWorldInputObjectComponent), forwardRef(() => RestWorldInputSimpleComponent), RestWorldInputCollectionComponent, RestWorldValidationErrorsComponent, FormsModule], template: "@if (property()) {\r\n @if (property().options) {\r\n <rw-input-dropdown [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-dropdown>\r\n }\r\n @else {\r\n @switch (property().type) {\r\n @case (PropertyType.Object) {\r\n <rw-input-object [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-object>\r\n }\r\n @case (PropertyType.Collection) {\r\n <rw-input-collection [apiName]=\"apiName()\" [property]=\"$any(property())\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-collection>\r\n }\r\n @default {\r\n <rw-input-simple [property]=\"property()\" [useTemplateDrivenForms]=\"useTemplateDrivenForms()\"></rw-input-simple>\r\n }\r\n }\r\n }\r\n\r\n <rw-validation-errors [property]=\"property()\"></rw-validation-errors>\r\n}\r\n" }]
3879
3876
  }] });
@@ -3892,7 +3889,7 @@ class RestWorldInputDropdownComponent extends RestWorldInputLazyLoadBaseComponen
3892
3889
  * A flag that indicates if the search should be case sensitive.
3893
3890
  * The default is false.
3894
3891
  */
3895
- caseSensitive = input(false, ...(ngDevMode ? [{ debugName: "caseSensitive" }] : []));
3892
+ caseSensitive = input(false, ...(ngDevMode ? [{ debugName: "caseSensitive" }] : /* istanbul ignore next */ []));
3896
3893
  /**
3897
3894
  * A function that returns the label for the given item.
3898
3895
  * The default returns the prompt and optionally the value in brackets.
@@ -3900,7 +3897,7 @@ class RestWorldInputDropdownComponent extends RestWorldInputLazyLoadBaseComponen
3900
3897
  * Overwrite this function to change the label.
3901
3898
  * @param item The item to get the label for.
3902
3899
  */
3903
- getLabel = input(...(ngDevMode ? [undefined, { debugName: "getLabel" }] : []));
3900
+ getLabel = input(...(ngDevMode ? [undefined, { debugName: "getLabel" }] : /* istanbul ignore next */ []));
3904
3901
  /**
3905
3902
  * A function that returns the tooltip for the given item.
3906
3903
  * The default returns all properties of the item except the ones that start with an underscore or the ones that are in the list of default properties to exclude.
@@ -3908,10 +3905,10 @@ class RestWorldInputDropdownComponent extends RestWorldInputLazyLoadBaseComponen
3908
3905
  * Overwrite this function to change the tooltip.
3909
3906
  * @param item The item to get the label for.
3910
3907
  */
3911
- getTooltip = input(...(ngDevMode ? [undefined, { debugName: "getTooltip" }] : []));
3912
- inputOptionsMultipleRef = contentChild("inputOptionsMultiple", ...(ngDevMode ? [{ debugName: "inputOptionsMultipleRef" }] : []));
3913
- inputOptionsSingleRef = contentChild("inputOptionsSingle", ...(ngDevMode ? [{ debugName: "inputOptionsSingleRef" }] : []));
3914
- multiSelect = viewChild(MultiSelect, ...(ngDevMode ? [{ debugName: "multiSelect" }] : []));
3908
+ getTooltip = input(...(ngDevMode ? [undefined, { debugName: "getTooltip" }] : /* istanbul ignore next */ []));
3909
+ inputOptionsMultipleRef = contentChild("inputOptionsMultiple", ...(ngDevMode ? [{ debugName: "inputOptionsMultipleRef" }] : /* istanbul ignore next */ []));
3910
+ inputOptionsSingleRef = contentChild("inputOptionsSingle", ...(ngDevMode ? [{ debugName: "inputOptionsSingleRef" }] : /* istanbul ignore next */ []));
3911
+ multiSelect = viewChild(MultiSelect, ...(ngDevMode ? [{ debugName: "multiSelect" }] : /* istanbul ignore next */ []));
3915
3912
  /**
3916
3913
  * An event that is emitted when the selected value changes.
3917
3914
  */
@@ -3921,7 +3918,7 @@ class RestWorldInputDropdownComponent extends RestWorldInputLazyLoadBaseComponen
3921
3918
  _formControl = computed(() => {
3922
3919
  const formGroup = this._controlContainer.control;
3923
3920
  return formGroup.controls[this.property().name];
3924
- }, ...(ngDevMode ? [{ debugName: "_formControl" }] : []));
3921
+ }, ...(ngDevMode ? [{ debugName: "_formControl" }] : /* istanbul ignore next */ []));
3925
3922
  _value = toSignal(toObservable(this._formControl).pipe(distinctUntilChanged(), switchMap(formControl => formControl
3926
3923
  ? formControl.valueChanges.pipe(debounceTime(0), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))).pipe(startWith(formControl.value))
3927
3924
  : EMPTY)));
@@ -3931,7 +3928,7 @@ class RestWorldInputDropdownComponent extends RestWorldInputLazyLoadBaseComponen
3931
3928
  this.optionsManager = optionsService.getManager(this.apiName, this.property, this._value, this.getLabel, this.getTooltip);
3932
3929
  }
3933
3930
  onOptionsChanged(event) {
3934
- this.onChange.emit(event);
3931
+ this.onChange.emit({ originalEvent: event.originalEvent, value: event.value });
3935
3932
  }
3936
3933
  async onOptionsFilteredInternal(event) {
3937
3934
  const options = this.optionsManager.options();
@@ -3983,13 +3980,13 @@ class RestWorldInputDropdownComponent extends RestWorldInputLazyLoadBaseComponen
3983
3980
  return `toupper(${filter})`;
3984
3981
  return filter.toUpperCase();
3985
3982
  }
3986
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputDropdownComponent, deps: [{ token: i2$3.ControlContainer }, { token: OptionsService }], target: i0.ɵɵFactoryTarget.Component });
3987
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldInputDropdownComponent, isStandalone: true, selector: "rw-input-dropdown", inputs: { caseSensitive: { classPropertyName: "caseSensitive", publicName: "caseSensitive", isSignal: true, isRequired: false, transformFunction: null }, getLabel: { classPropertyName: "getLabel", publicName: "getLabel", isSignal: true, isRequired: false, transformFunction: null }, getTooltip: { classPropertyName: "getTooltip", publicName: "getTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, queries: [{ propertyName: "inputOptionsMultipleRef", first: true, predicate: ["inputOptionsMultiple"], descendants: true, isSignal: true }, { propertyName: "inputOptionsSingleRef", first: true, predicate: ["inputOptionsSingle"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "multiSelect", first: true, predicate: MultiSelect, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultInputOptionsSingle let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\n @if (useTemplateDrivenForms()) {\n <p-select\n [propertyAttributes]=\"property()\"\n [(ngModel)]=\"model\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selectedItem let-selectedItem>\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-select>\n }\n @else {\n <p-select\n [formControlProperty]=\"property()\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selectedItem let-selectedItem>\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-select>\n }\n</ng-template>\n\n<ng-template #defaultInputOptionsMultiple let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\n @if (useTemplateDrivenForms()) {\n <p-multiSelect\n [propertyAttributes]=\"property()\"\n [(ngModel)]=\"model\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\n @for (item of items; track item; let i = $index) {\n <p-chip\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\n [label]=\"optionsManager.getLabel()(item)\"\n [removable]=\"true\"\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\n >\n </p-chip>\n }\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-multiSelect>\n }\n @else {\n <p-multiSelect\n [formControlProperty]=\"property()\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\n @for (item of items; track item; let i = $index) {\n <p-chip\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\n [label]=\"optionsManager.getLabel()(item)\"\n [removable]=\"true\"\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\n >\n </p-chip>\n }\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-multiSelect>\n }\n</ng-template>\n\n@if(!optionsManager.options().maxItems || optionsManager.options().maxItems == 1) {\n <ng-container *ngTemplateOutlet=\"inputOptionsSingleRef() ?? defaultInputOptionsSingle; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\n}\n@else {\n <ng-container *ngTemplateOutlet=\"inputOptionsMultipleRef() ?? defaultInputOptionsMultiple; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\n}\n", styles: ["::ng-deep .p-multiselect-label{display:inline-flex!important}::ng-deep .p-multiselect-label-empty{height:36px}::ng-deep .p-chip{background-color:#eff6ff;color:#1d4ed8}::ng-deep .pi-chip-remove-icon:hover{filter:brightness(.6)}\n"], dependencies: [{ kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "styleClass", "panelStyle", "panelStyleClass", "inputId", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "dataKey", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "placeholder", "options", "filterValue", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect", "size", "variant", "fluid", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: HalFormsModule }, { kind: "directive", type: FormControlProperty, selector: "[formControlProperty]:not([useTemplateDrivenForms=true])", inputs: ["formControlProperty"] }, { kind: "directive", type: PropertyControlStatus, selector: "[formControlProperty]" }, { kind: "directive", type: PropertySelectAttributes, selector: "p-select[formControlProperty], p-select[propertyAttributes], p-multiSelect[formControlProperty], p-multiSelect[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "directive", type: PropertyAttributes, selector: "[formControlProperty],[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3983
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputDropdownComponent, deps: [{ token: i2$3.ControlContainer }, { token: OptionsService }], target: i0.ɵɵFactoryTarget.Component });
3984
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldInputDropdownComponent, isStandalone: true, selector: "rw-input-dropdown", inputs: { caseSensitive: { classPropertyName: "caseSensitive", publicName: "caseSensitive", isSignal: true, isRequired: false, transformFunction: null }, getLabel: { classPropertyName: "getLabel", publicName: "getLabel", isSignal: true, isRequired: false, transformFunction: null }, getTooltip: { classPropertyName: "getTooltip", publicName: "getTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, queries: [{ propertyName: "inputOptionsMultipleRef", first: true, predicate: ["inputOptionsMultiple"], descendants: true, isSignal: true }, { propertyName: "inputOptionsSingleRef", first: true, predicate: ["inputOptionsSingle"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "multiSelect", first: true, predicate: MultiSelect, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultInputOptionsSingle let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\r\n @if (useTemplateDrivenForms()) {\r\n <p-select\r\n [propertyAttributes]=\"property()\"\r\n [(ngModel)]=\"model\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selectedItem let-selectedItem>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-select>\r\n }\r\n @else {\r\n <p-select\r\n [formControlProperty]=\"property()\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selectedItem let-selectedItem>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-select>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultInputOptionsMultiple let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\r\n @if (useTemplateDrivenForms()) {\r\n <p-multiSelect\r\n [propertyAttributes]=\"property()\"\r\n [(ngModel)]=\"model\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\r\n @for (item of items; track item; let i = $index) {\r\n <p-chip\r\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\r\n [label]=\"optionsManager.getLabel()(item)\"\r\n [removable]=\"true\"\r\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\r\n >\r\n </p-chip>\r\n }\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-multiSelect>\r\n }\r\n @else {\r\n <p-multiSelect\r\n [formControlProperty]=\"property()\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\r\n @for (item of items; track item; let i = $index) {\r\n <p-chip\r\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\r\n [label]=\"optionsManager.getLabel()(item)\"\r\n [removable]=\"true\"\r\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\r\n >\r\n </p-chip>\r\n }\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-multiSelect>\r\n }\r\n</ng-template>\r\n\r\n@if(!optionsManager.options().maxItems || optionsManager.options().maxItems == 1) {\r\n <ng-container *ngTemplateOutlet=\"inputOptionsSingleRef() ?? defaultInputOptionsSingle; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\r\n}\r\n@else {\r\n <ng-container *ngTemplateOutlet=\"inputOptionsMultipleRef() ?? defaultInputOptionsMultiple; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\r\n}\r\n", styles: ["::ng-deep .p-multiselect-label{display:inline-flex!important}::ng-deep .p-multiselect-label-empty{height:36px}::ng-deep .p-chip{background-color:#eff6ff;color:#1d4ed8}::ng-deep .pi-chip-remove-icon:hover{filter:brightness(.6)}\n"], dependencies: [{ kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "styleClass", "panelStyle", "panelStyleClass", "inputId", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "dataKey", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "placeholder", "options", "filterValue", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect", "size", "variant", "fluid", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "styleClass", "disabled", "removable", "removeIcon", "chipProps"], outputs: ["onRemove", "onImageError"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: HalFormsModule }, { kind: "directive", type: FormControlProperty, selector: "[formControlProperty]:not([useTemplateDrivenForms=true])", inputs: ["formControlProperty"] }, { kind: "directive", type: PropertyControlStatus, selector: "[formControlProperty]" }, { kind: "directive", type: PropertySelectAttributes, selector: "p-select[formControlProperty], p-select[propertyAttributes], p-multiSelect[formControlProperty], p-multiSelect[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "directive", type: PropertyAttributes, selector: "[formControlProperty],[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
3988
3985
  }
3989
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputDropdownComponent, decorators: [{
3986
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputDropdownComponent, decorators: [{
3990
3987
  type: Component,
3991
- args: [{ selector: 'rw-input-dropdown', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [Select, ReactiveFormsModule, MultiSelect, Tooltip, Chip, NgTemplateOutlet, HalFormsModule, FormsModule], template: "<ng-template #defaultInputOptionsSingle let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\n @if (useTemplateDrivenForms()) {\n <p-select\n [propertyAttributes]=\"property()\"\n [(ngModel)]=\"model\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selectedItem let-selectedItem>\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-select>\n }\n @else {\n <p-select\n [formControlProperty]=\"property()\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selectedItem let-selectedItem>\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-select>\n }\n</ng-template>\n\n<ng-template #defaultInputOptionsMultiple let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\n @if (useTemplateDrivenForms()) {\n <p-multiSelect\n [propertyAttributes]=\"property()\"\n [(ngModel)]=\"model\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\n @for (item of items; track item; let i = $index) {\n <p-chip\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\n [label]=\"optionsManager.getLabel()(item)\"\n [removable]=\"true\"\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\n >\n </p-chip>\n }\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-multiSelect>\n }\n @else {\n <p-multiSelect\n [formControlProperty]=\"property()\"\n [options]=\"optionsManager.items.value()\"\n (onFilter)=\"onOptionsFiltered($event)\"\n (onChange)=\"onOptionsChanged($event)\"\n styleClass=\"w-full\"\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\n [loading]=\"optionsManager.loading()\"\n >\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\n @for (item of items; track item; let i = $index) {\n <p-chip\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\n [label]=\"optionsManager.getLabel()(item)\"\n [removable]=\"true\"\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\n >\n </p-chip>\n }\n </ng-template>\n <ng-template #item let-item>\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\n </ng-template>\n </p-multiSelect>\n }\n</ng-template>\n\n@if(!optionsManager.options().maxItems || optionsManager.options().maxItems == 1) {\n <ng-container *ngTemplateOutlet=\"inputOptionsSingleRef() ?? defaultInputOptionsSingle; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\n}\n@else {\n <ng-container *ngTemplateOutlet=\"inputOptionsMultipleRef() ?? defaultInputOptionsMultiple; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\n}\n", styles: ["::ng-deep .p-multiselect-label{display:inline-flex!important}::ng-deep .p-multiselect-label-empty{height:36px}::ng-deep .p-chip{background-color:#eff6ff;color:#1d4ed8}::ng-deep .pi-chip-remove-icon:hover{filter:brightness(.6)}\n"] }]
3992
- }], ctorParameters: () => [{ type: i2$3.ControlContainer }, { type: OptionsService }] });
3988
+ args: [{ selector: 'rw-input-dropdown', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [Select, ReactiveFormsModule, MultiSelect, Tooltip, Chip, NgTemplateOutlet, HalFormsModule, FormsModule], template: "<ng-template #defaultInputOptionsSingle let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\r\n @if (useTemplateDrivenForms()) {\r\n <p-select\r\n [propertyAttributes]=\"property()\"\r\n [(ngModel)]=\"model\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selectedItem let-selectedItem>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-select>\r\n }\r\n @else {\r\n <p-select\r\n [formControlProperty]=\"property()\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selectedItem let-selectedItem>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(selectedItem)\">{{optionsManager.getLabel()(selectedItem)}}</span>\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-select>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #defaultInputOptionsMultiple let-property=\"property\" let-template=\"template\" let-items=\"items\" let-useTemplateDrivenForms=\"useTemplateDrivenForms\">\r\n @if (useTemplateDrivenForms()) {\r\n <p-multiSelect\r\n [propertyAttributes]=\"property()\"\r\n [(ngModel)]=\"model\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\r\n @for (item of items; track item; let i = $index) {\r\n <p-chip\r\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\r\n [label]=\"optionsManager.getLabel()(item)\"\r\n [removable]=\"true\"\r\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\r\n >\r\n </p-chip>\r\n }\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-multiSelect>\r\n }\r\n @else {\r\n <p-multiSelect\r\n [formControlProperty]=\"property()\"\r\n [options]=\"optionsManager.items.value()\"\r\n (onFilter)=\"onOptionsFiltered($event)\"\r\n (onChange)=\"onOptionsChanged($event)\"\r\n styleClass=\"w-full\"\r\n [panelStyleClass]=\"optionsManager.loading() ? 'loading' : ''\"\r\n [emptyFilterMessage]=\"optionsManager.loading() ? 'Loading...' : ''\"\r\n [loading]=\"optionsManager.loading()\"\r\n >\r\n <ng-template #selecteditems let-items let-removeChip=\"removeChip\">\r\n @for (item of items; track item; let i = $index) {\r\n <p-chip\r\n [pTooltip]=\"optionsManager.getTooltip()(item)\"\r\n [label]=\"optionsManager.getLabel()(item)\"\r\n [removable]=\"true\"\r\n (onRemove)=\"removeChip(optionsManager.getValue(item), $event)\"\r\n >\r\n </p-chip>\r\n }\r\n </ng-template>\r\n <ng-template #item let-item>\r\n <span [pTooltip]=\"optionsManager.getTooltip()(item)\">{{optionsManager.getLabel()(item)}}</span>\r\n </ng-template>\r\n </p-multiSelect>\r\n }\r\n</ng-template>\r\n\r\n@if(!optionsManager.options().maxItems || optionsManager.options().maxItems == 1) {\r\n <ng-container *ngTemplateOutlet=\"inputOptionsSingleRef() ?? defaultInputOptionsSingle; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\r\n}\r\n@else {\r\n <ng-container *ngTemplateOutlet=\"inputOptionsMultipleRef() ?? defaultInputOptionsMultiple; context: { property: property, apiName: apiName, items: optionsManager.items, useTemplateDrivenForms: useTemplateDrivenForms, model: model }\"></ng-container>\r\n}\r\n", styles: ["::ng-deep .p-multiselect-label{display:inline-flex!important}::ng-deep .p-multiselect-label-empty{height:36px}::ng-deep .p-chip{background-color:#eff6ff;color:#1d4ed8}::ng-deep .pi-chip-remove-icon:hover{filter:brightness(.6)}\n"] }]
3989
+ }], ctorParameters: () => [{ type: i2$3.ControlContainer }, { type: OptionsService }], propDecorators: { caseSensitive: [{ type: i0.Input, args: [{ isSignal: true, alias: "caseSensitive", required: false }] }], getLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "getLabel", required: false }] }], getTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "getTooltip", required: false }] }], inputOptionsMultipleRef: [{ type: i0.ContentChild, args: ["inputOptionsMultiple", { isSignal: true }] }], inputOptionsSingleRef: [{ type: i0.ContentChild, args: ["inputOptionsSingle", { isSignal: true }] }], multiSelect: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MultiSelect), { isSignal: true }] }], onChange: [{ type: i0.Output, args: ["onChange"] }] } });
3993
3990
  /**
3994
3991
  * A complex object with multiple properties that is automatically created from the given property.
3995
3992
  * The object can also be nested.
@@ -4000,7 +3997,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
4000
3997
  */
4001
3998
  class RestWorldInputObjectComponent extends RestWorldInputLazyLoadBaseComponent {
4002
3999
  _controlContainer;
4003
- inputObjectRef = contentChild("inputObject", ...(ngDevMode ? [{ debugName: "inputObjectRef" }] : []));
4000
+ inputObjectRef = contentChild("inputObject", ...(ngDevMode ? [{ debugName: "inputObjectRef" }] : /* istanbul ignore next */ []));
4004
4001
  constructor(_controlContainer) {
4005
4002
  super();
4006
4003
  this._controlContainer = _controlContainer;
@@ -4008,14 +4005,14 @@ class RestWorldInputObjectComponent extends RestWorldInputLazyLoadBaseComponent
4008
4005
  innerFormGroup = computed(() => {
4009
4006
  const formGroup = this._controlContainer.control;
4010
4007
  return formGroup.controls[this.property().name];
4011
- }, ...(ngDevMode ? [{ debugName: "innerFormGroup" }] : []));
4012
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputObjectComponent, deps: [{ token: i2$3.ControlContainer }], target: i0.ɵɵFactoryTarget.Component });
4013
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.1", type: RestWorldInputObjectComponent, isStandalone: true, selector: "rw-input-object", queries: [{ propertyName: "inputObjectRef", first: true, predicate: ["inputObject"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultInputObject let-property=\"property\" let-innerFormGroup=\"innerFormGroup\", let-apiName=\"apiName\">\n <div class=\"flex align-items-center\">\n <div class=\"brace\">\n </div>\n <div class=\"w-full\">\n <rw-input-template [formGroup]=\"innerFormGroup()\" [template]=\"property()._templates.default\" [apiName]=\"apiName()\"></rw-input-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container>\n <ng-container *ngTemplateOutlet=\"inputObjectRef() || defaultInputObject; context: { property: property, innerFormGroup: innerFormGroup, apiName: apiName }\"></ng-container>\n</ng-container>\n", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldInputTemplateComponent), selector: "rw-input-template", inputs: ["apiName", "template"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2$3.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i2$3.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
4008
+ }, ...(ngDevMode ? [{ debugName: "innerFormGroup" }] : /* istanbul ignore next */ []));
4009
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputObjectComponent, deps: [{ token: i2$3.ControlContainer }], target: i0.ɵɵFactoryTarget.Component });
4010
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.7", type: RestWorldInputObjectComponent, isStandalone: true, selector: "rw-input-object", queries: [{ propertyName: "inputObjectRef", first: true, predicate: ["inputObject"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultInputObject let-property=\"property\" let-innerFormGroup=\"innerFormGroup\", let-apiName=\"apiName\">\r\n <div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n <rw-input-template [formGroup]=\"innerFormGroup()\" [template]=\"property()._templates.default\" [apiName]=\"apiName()\"></rw-input-template>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-container>\r\n <ng-container *ngTemplateOutlet=\"inputObjectRef() || defaultInputObject; context: { property: property, innerFormGroup: innerFormGroup, apiName: apiName }\"></ng-container>\r\n</ng-container>\r\n", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => RestWorldInputTemplateComponent), selector: "rw-input-template", inputs: ["apiName", "template"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2$3.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i2$3.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
4014
4011
  }
4015
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputObjectComponent, decorators: [{
4012
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputObjectComponent, decorators: [{
4016
4013
  type: Component,
4017
- args: [{ selector: 'rw-input-object', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [forwardRef(() => RestWorldInputTemplateComponent), ReactiveFormsModule, NgTemplateOutlet], template: "<ng-template #defaultInputObject let-property=\"property\" let-innerFormGroup=\"innerFormGroup\", let-apiName=\"apiName\">\n <div class=\"flex align-items-center\">\n <div class=\"brace\">\n </div>\n <div class=\"w-full\">\n <rw-input-template [formGroup]=\"innerFormGroup()\" [template]=\"property()._templates.default\" [apiName]=\"apiName()\"></rw-input-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container>\n <ng-container *ngTemplateOutlet=\"inputObjectRef() || defaultInputObject; context: { property: property, innerFormGroup: innerFormGroup, apiName: apiName }\"></ng-container>\n</ng-container>\n", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"] }]
4018
- }], ctorParameters: () => [{ type: i2$3.ControlContainer }] });
4014
+ args: [{ selector: 'rw-input-object', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [forwardRef(() => RestWorldInputTemplateComponent), ReactiveFormsModule, NgTemplateOutlet], template: "<ng-template #defaultInputObject let-property=\"property\" let-innerFormGroup=\"innerFormGroup\", let-apiName=\"apiName\">\r\n <div class=\"flex align-items-center\">\r\n <div class=\"brace\">\r\n </div>\r\n <div class=\"w-full\">\r\n <rw-input-template [formGroup]=\"innerFormGroup()\" [template]=\"property()._templates.default\" [apiName]=\"apiName()\"></rw-input-template>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-container>\r\n <ng-container *ngTemplateOutlet=\"inputObjectRef() || defaultInputObject; context: { property: property, innerFormGroup: innerFormGroup, apiName: apiName }\"></ng-container>\r\n</ng-container>\r\n", styles: [".brace{align-self:stretch;margin:.2rem .5rem;border-left:1px solid rgb(206,212,218);border-top:1px solid rgb(206,212,218);border-bottom:1px solid rgb(206,212,218);width:1rem}\n"] }]
4015
+ }], ctorParameters: () => [{ type: i2$3.ControlContainer }], propDecorators: { inputObjectRef: [{ type: i0.ContentChild, args: ["inputObject", { isSignal: true }] }] } });
4019
4016
  /**
4020
4017
  * A simple input element, like a string, a number or a Date that is automatically created from the given property.
4021
4018
  * @remarks It is advised to use {@link RestWorldInputComponent} `<rw-input>` and control the rendered inputs with the passed in property
@@ -4035,8 +4032,8 @@ class RestWorldInputSimpleComponent extends RestWorldInputBaseComponent {
4035
4032
  .replace("22", "hh")
4036
4033
  .replace("33", "mm")
4037
4034
  .replace("44", "ss");
4038
- _inputChild = viewChild("inputElement", ...(ngDevMode ? [{ debugName: "_inputChild" }] : []));
4039
- _controlChild = viewChild(NG_VALUE_ACCESSOR, ...(ngDevMode ? [{ debugName: "_controlChild" }] : []));
4035
+ _inputChild = viewChild("inputElement", ...(ngDevMode ? [{ debugName: "_inputChild" }] : /* istanbul ignore next */ []));
4036
+ _controlChild = viewChild(NG_VALUE_ACCESSOR, ...(ngDevMode ? [{ debugName: "_controlChild" }] : /* istanbul ignore next */ []));
4040
4037
  constructor() {
4041
4038
  super();
4042
4039
  }
@@ -4092,21 +4089,21 @@ class RestWorldInputSimpleComponent extends RestWorldInputBaseComponent {
4092
4089
  get timeFormat() {
4093
4090
  return RestWorldInputSimpleComponent._timeFormat;
4094
4091
  }
4095
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4096
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldInputSimpleComponent, isStandalone: true, selector: "rw-input-simple", providers: [{
4092
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4093
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldInputSimpleComponent, isStandalone: true, selector: "rw-input-simple", providers: [{
4097
4094
  provide: NG_VALUE_ACCESSOR,
4098
4095
  useExisting: forwardRef(() => RestWorldInputSimpleComponent),
4099
4096
  multi: true
4100
- }], viewQueries: [{ propertyName: "_inputChild", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }, { propertyName: "_controlChild", first: true, predicate: NG_VALUE_ACCESSOR, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@switch(property().type) {\r\n @case (PropertyType.Textarea) {\r\n @if (useTemplateDrivenForms()){\r\n <textarea #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n @else {\r\n <textarea #inputElement [formControlProperty]=\"property()\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n }\r\n @case (PropertyType.Date) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Month) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Time) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.DatetimeLocal) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Number) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-inputNumber [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n @else {\r\n <p-inputNumber inputMode=\"decimal\" [formControlProperty]=\"property()\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n }\r\n @case (PropertyType.Bool) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-tri-state-checkbox [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [required]=\"property().required ?? false\"></rw-tri-state-checkbox>\r\n }\r\n @else {\r\n <rw-tri-state-checkbox [formControlProperty]=\"property()\" [required]=\"property().required\"></rw-tri-state-checkbox>\r\n }\r\n }\r\n @case (PropertyType.DatetimeOffset) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Duration) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Image) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-image [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n @else {\r\n <rw-image [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n }\r\n @case (PropertyType.File) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-file [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n @else {\r\n <rw-file [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n }\r\n @default {\r\n <!-- <input [formControlName]=\"property().name\" [id]=\"property().name\" type=\"text\" pInputText class=\"w-full\" [class.p-disabled]=\"property().readOnly\" /> -->\r\n @if (useTemplateDrivenForms()) {\r\n <input #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputText class=\"w-full\" />\r\n }\r\n @else {\r\n <input #inputElement [formControlProperty]=\"property()\" pInputText class=\"w-full\" />\r\n }\r\n }\r\n}\r\n", styles: [".p-inputtext.ng-touched.ng-invalid{border-color:#e24c4c}\n"], dependencies: [{ 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: 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: TriStateCheckbox, selector: "p-tri-state-checkbox, p-tri-state-checkBox, p-tri-state-check-box, rw-tri-state-checkbox, rw-tri-state-checkBox, rw-tri-state-check-box", inputs: ["value", "name", "disabled", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "model", "variant"], outputs: ["disabledChange", "modelChange", "onChange", "onFocus", "onBlur"] }, { kind: "component", type: RestWorldImageComponent, selector: "rw-image", inputs: ["property", "backgroundColor", "displayCropDialog"], outputs: ["backgroundColorChange", "displayCropDialogChange"] }, { kind: "component", type: RestWorldFileComponent, selector: "rw-file", inputs: ["accept", "fileName"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: HalFormsModule }, { kind: "directive", type: FormControlProperty, selector: "[formControlProperty]:not([useTemplateDrivenForms=true])", inputs: ["formControlProperty"] }, { kind: "directive", type: DefaultPropertyValueAccessor, selector: "input:not([type=checkbox])[formControlProperty], textarea[formControlProperty], select[formControlProperty]" }, { kind: "directive", type: PropertyControlStatus, selector: "[formControlProperty]" }, { kind: "directive", type: PropertyAttributes, selector: "[formControlProperty],[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "directive", type: PropertyInputNumberAttributes, selector: "p-inputNumber[formControlProperty], p-inputNumber[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "directive", type: i2$3.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: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
4097
+ }], viewQueries: [{ propertyName: "_inputChild", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }, { propertyName: "_controlChild", first: true, predicate: NG_VALUE_ACCESSOR, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@switch(property().type) {\r\n @case (PropertyType.Textarea) {\r\n @if (useTemplateDrivenForms()){\r\n <textarea #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n @else {\r\n <textarea #inputElement [formControlProperty]=\"property()\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n }\r\n @case (PropertyType.Date) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Month) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Time) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.DatetimeLocal) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Number) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-inputNumber [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n @else {\r\n <p-inputNumber inputMode=\"decimal\" [formControlProperty]=\"property()\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n }\r\n @case (PropertyType.Bool) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-tri-state-checkbox [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [required]=\"property().required ?? false\"></rw-tri-state-checkbox>\r\n }\r\n @else {\r\n <rw-tri-state-checkbox [formControlProperty]=\"property()\" [required]=\"property().required\"></rw-tri-state-checkbox>\r\n }\r\n }\r\n @case (PropertyType.DatetimeOffset) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Duration) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Image) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-image [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n @else {\r\n <rw-image [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n }\r\n @case (PropertyType.File) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-file [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n @else {\r\n <rw-file [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n }\r\n @default {\r\n <!-- <input [formControlName]=\"property().name\" [id]=\"property().name\" type=\"text\" pInputText class=\"w-full\" [class.p-disabled]=\"property().readOnly\" /> -->\r\n @if (useTemplateDrivenForms()) {\r\n <input #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputText class=\"w-full\" />\r\n }\r\n @else {\r\n <input #inputElement [formControlProperty]=\"property()\" pInputText class=\"w-full\" />\r\n }\r\n }\r\n}\r\n", styles: ["::ng-deep .p-inputtext.ng-touched.ng-invalid,::ng-deep .p-inputnumber.ng-touched.ng-invalid,::ng-deep .p-inputnumber.ng-touched.ng-invalid>input{border-color:#e24c4c}\n"], dependencies: [{ 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", "motionOptions"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { 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: TriStateCheckbox, selector: "p-tri-state-checkbox, p-tri-state-checkBox, p-tri-state-check-box, rw-tri-state-checkbox, rw-tri-state-checkBox, rw-tri-state-check-box", inputs: ["value", "name", "disabled", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "model", "variant"], outputs: ["disabledChange", "modelChange", "onChange", "onFocus", "onBlur"] }, { kind: "component", type: RestWorldImageComponent, selector: "rw-image", inputs: ["property", "backgroundColor", "displayCropDialog"], outputs: ["backgroundColorChange", "displayCropDialogChange"] }, { kind: "component", type: RestWorldFileComponent, selector: "rw-file", inputs: ["accept", "fileName"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: HalFormsModule }, { kind: "directive", type: FormControlProperty, selector: "[formControlProperty]:not([useTemplateDrivenForms=true])", inputs: ["formControlProperty"] }, { kind: "directive", type: DefaultPropertyValueAccessor, selector: "input:not([type=checkbox])[formControlProperty], textarea[formControlProperty], select[formControlProperty]" }, { kind: "directive", type: PropertyControlStatus, selector: "[formControlProperty]" }, { kind: "directive", type: PropertyAttributes, selector: "[formControlProperty],[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "directive", type: PropertyInputNumberAttributes, selector: "p-inputNumber[formControlProperty], p-inputNumber[propertyAttributes]", inputs: ["formControlProperty", "propertyAttributes"] }, { kind: "directive", type: i2$3.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: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
4101
4098
  }
4102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputSimpleComponent, decorators: [{
4099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputSimpleComponent, decorators: [{
4103
4100
  type: Component,
4104
4101
  args: [{ selector: 'rw-input-simple', standalone: true, providers: [{
4105
4102
  provide: NG_VALUE_ACCESSOR,
4106
4103
  useExisting: forwardRef(() => RestWorldInputSimpleComponent),
4107
4104
  multi: true
4108
- }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [DatePicker, InputNumber, TriStateCheckbox, RestWorldImageComponent, RestWorldFileComponent, InputText, HalFormsModule, FormsModule], template: "@switch(property().type) {\r\n @case (PropertyType.Textarea) {\r\n @if (useTemplateDrivenForms()){\r\n <textarea #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n @else {\r\n <textarea #inputElement [formControlProperty]=\"property()\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n }\r\n @case (PropertyType.Date) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Month) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Time) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.DatetimeLocal) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Number) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-inputNumber [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n @else {\r\n <p-inputNumber inputMode=\"decimal\" [formControlProperty]=\"property()\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n }\r\n @case (PropertyType.Bool) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-tri-state-checkbox [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [required]=\"property().required ?? false\"></rw-tri-state-checkbox>\r\n }\r\n @else {\r\n <rw-tri-state-checkbox [formControlProperty]=\"property()\" [required]=\"property().required\"></rw-tri-state-checkbox>\r\n }\r\n }\r\n @case (PropertyType.DatetimeOffset) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Duration) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Image) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-image [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n @else {\r\n <rw-image [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n }\r\n @case (PropertyType.File) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-file [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n @else {\r\n <rw-file [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n }\r\n @default {\r\n <!-- <input [formControlName]=\"property().name\" [id]=\"property().name\" type=\"text\" pInputText class=\"w-full\" [class.p-disabled]=\"property().readOnly\" /> -->\r\n @if (useTemplateDrivenForms()) {\r\n <input #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputText class=\"w-full\" />\r\n }\r\n @else {\r\n <input #inputElement [formControlProperty]=\"property()\" pInputText class=\"w-full\" />\r\n }\r\n }\r\n}\r\n", styles: [".p-inputtext.ng-touched.ng-invalid{border-color:#e24c4c}\n"] }]
4109
- }], ctorParameters: () => [] });
4105
+ }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [DatePicker, InputNumber, TriStateCheckbox, RestWorldImageComponent, RestWorldFileComponent, InputText, HalFormsModule, FormsModule], template: "@switch(property().type) {\r\n @case (PropertyType.Textarea) {\r\n @if (useTemplateDrivenForms()){\r\n <textarea #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n @else {\r\n <textarea #inputElement [formControlProperty]=\"property()\" pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element\"></textarea>\r\n }\r\n }\r\n @case (PropertyType.Date) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"true\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Month) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showWeek]=\"false\" view=\"month\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Time) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.DatetimeLocal) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Number) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-inputNumber [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n @else {\r\n <p-inputNumber inputMode=\"decimal\" [formControlProperty]=\"property()\" class=\"w-full\" styleClass=\"w-full\"></p-inputNumber>\r\n }\r\n }\r\n @case (PropertyType.Bool) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-tri-state-checkbox [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [required]=\"property().required ?? false\"></rw-tri-state-checkbox>\r\n }\r\n @else {\r\n <rw-tri-state-checkbox [formControlProperty]=\"property()\" [required]=\"property().required\"></rw-tri-state-checkbox>\r\n }\r\n }\r\n @case (PropertyType.DatetimeOffset) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"dateFormat\" [showTime]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Duration) {\r\n @if (useTemplateDrivenForms()) {\r\n <p-datepicker [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n @else {\r\n <p-datepicker [formControlProperty]=\"property()\" [dateFormat]=\"timeFormat\" [showTime]=\"true\" [timeOnly]=\"true\" [showWeek]=\"false\" [showIcon]=\"true\" styleClass=\"w-full\"></p-datepicker>\r\n }\r\n }\r\n @case (PropertyType.Image) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-image [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n @else {\r\n <rw-image [formControlName]=\"property().name\" [property]=\"$any(property())\"></rw-image>\r\n }\r\n }\r\n @case (PropertyType.File) {\r\n @if (useTemplateDrivenForms()) {\r\n <rw-file [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n @else {\r\n <rw-file [formControlName]=\"property().name\" [fileName]=\"property().name\" [accept]=\"$any(property().placeholder)\"></rw-file>\r\n }\r\n }\r\n @default {\r\n <!-- <input [formControlName]=\"property().name\" [id]=\"property().name\" type=\"text\" pInputText class=\"w-full\" [class.p-disabled]=\"property().readOnly\" /> -->\r\n @if (useTemplateDrivenForms()) {\r\n <input #inputElement [propertyAttributes]=\"property()\" [(ngModel)]=\"model\" pInputText class=\"w-full\" />\r\n }\r\n @else {\r\n <input #inputElement [formControlProperty]=\"property()\" pInputText class=\"w-full\" />\r\n }\r\n }\r\n}\r\n", styles: ["::ng-deep .p-inputtext.ng-touched.ng-invalid,::ng-deep .p-inputnumber.ng-touched.ng-invalid,::ng-deep .p-inputnumber.ng-touched.ng-invalid>input{border-color:#e24c4c}\n"] }]
4106
+ }], ctorParameters: () => [], propDecorators: { _inputChild: [{ type: i0.ViewChild, args: ["inputElement", { isSignal: true }] }], _controlChild: [{ type: i0.ViewChild, args: [i0.forwardRef(() => NG_VALUE_ACCESSOR), { isSignal: true }] }] } });
4110
4107
  /**
4111
4108
  * A collection of `<rw-form>` elements automatically created from a template.
4112
4109
  * Does not have any buttons on its own.
@@ -4120,20 +4117,20 @@ class RestWorldInputTemplateComponent {
4120
4117
  * @required
4121
4118
  * @remarks This is the name of the API as defined in the `RestWorldClientCollection`.
4122
4119
  */
4123
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
4120
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
4124
4121
  /**
4125
4122
  * The template to display.
4126
4123
  * @required
4127
4124
  * @remarks This is the template that defines the properties to display.
4128
4125
  */
4129
- template = input.required(...(ngDevMode ? [{ debugName: "template" }] : []));
4130
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4131
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldInputTemplateComponent, isStandalone: true, selector: "rw-input-template", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (property of template().properties; track property.name) {\r\n <rw-form-element [property]=\"property\" [apiName]=\"apiName()\"></rw-form-element>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldFormElementComponent, selector: "rw-form-element" }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
4126
+ template = input.required(...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
4127
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4128
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldInputTemplateComponent, isStandalone: true, selector: "rw-input-template", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (property of template().properties; track property.name) {\r\n <rw-form-element [property]=\"property\" [apiName]=\"apiName()\"></rw-form-element>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: RestWorldFormElementComponent, selector: "rw-form-element" }], viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }] });
4132
4129
  }
4133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldInputTemplateComponent, decorators: [{
4130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldInputTemplateComponent, decorators: [{
4134
4131
  type: Component,
4135
4132
  args: [{ selector: 'rw-input-template', standalone: true, viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], imports: [RestWorldFormElementComponent], template: "@for (property of template().properties; track property.name) {\r\n <rw-form-element [property]=\"property\" [apiName]=\"apiName()\"></rw-form-element>\r\n}\r\n" }]
4136
- }] });
4133
+ }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: true }] }] } });
4137
4134
 
4138
4135
  /**
4139
4136
  * A form with Save, Reload and Delete buttons.
@@ -4178,19 +4175,19 @@ class RestWorldFormComponent {
4178
4175
  /**
4179
4176
  * Determines whether to enable the delete button.
4180
4177
  */
4181
- allowDelete = input(true, ...(ngDevMode ? [{ debugName: "allowDelete" }] : []));
4178
+ allowDelete = input(true, ...(ngDevMode ? [{ debugName: "allowDelete" }] : /* istanbul ignore next */ []));
4182
4179
  /**
4183
4180
  * Determines whether to enable the reload button.
4184
4181
  */
4185
- allowReload = input(true, ...(ngDevMode ? [{ debugName: "allowReload" }] : []));
4182
+ allowReload = input(true, ...(ngDevMode ? [{ debugName: "allowReload" }] : /* istanbul ignore next */ []));
4186
4183
  /**
4187
4184
  * Determines whether to enable the submit button.
4188
4185
  */
4189
- allowSubmit = input(true, ...(ngDevMode ? [{ debugName: "allowSubmit" }] : []));
4186
+ allowSubmit = input(true, ...(ngDevMode ? [{ debugName: "allowSubmit" }] : /* istanbul ignore next */ []));
4190
4187
  /**
4191
4188
  * The name of the API to use.
4192
4189
  */
4193
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
4190
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
4194
4191
  /**
4195
4192
  * Determines whether the resource can be deleted.
4196
4193
  */
@@ -4201,7 +4198,7 @@ class RestWorldFormComponent {
4201
4198
  this.formGroup() !== undefined &&
4202
4199
  this.formGroup()?.value.id !== undefined &&
4203
4200
  this.formGroup()?.value.timestamp !== undefined &&
4204
- !this.isLoading(), ...(ngDevMode ? [{ debugName: "canDelete" }] : []));
4201
+ !this.isLoading(), ...(ngDevMode ? [{ debugName: "canDelete" }] : /* istanbul ignore next */ []));
4205
4202
  /**
4206
4203
  * Determines whether the form can be reloaded.
4207
4204
  */
@@ -4210,7 +4207,7 @@ class RestWorldFormComponent {
4210
4207
  this.template().target !== undefined &&
4211
4208
  this.template().title !== undefined &&
4212
4209
  this.template().properties.some(p => p.name === "id" && p.value !== undefined && p.value !== null && p.value !== 0) &&
4213
- !this.isLoading(), ...(ngDevMode ? [{ debugName: "canReload" }] : []));
4210
+ !this.isLoading(), ...(ngDevMode ? [{ debugName: "canReload" }] : /* istanbul ignore next */ []));
4214
4211
  /**
4215
4212
  * Determines whether the form can be submitted.
4216
4213
  */
@@ -4218,32 +4215,32 @@ class RestWorldFormComponent {
4218
4215
  this.template() !== undefined &&
4219
4216
  this.template().target !== undefined &&
4220
4217
  !this.isLoading() &&
4221
- this.formGroup() !== undefined, ...(ngDevMode ? [{ debugName: "canSubmit" }] : []));
4218
+ this.formGroup() !== undefined, ...(ngDevMode ? [{ debugName: "canSubmit" }] : /* istanbul ignore next */ []));
4222
4219
  /**
4223
4220
  * The form group that represents the form.
4224
4221
  */
4225
- formGroup = computed(() => this._formService.createFormGroupFromTemplate(this.template()), ...(ngDevMode ? [{ debugName: "formGroup" }] : []));
4226
- isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
4222
+ formGroup = computed(() => this._formService.createFormGroupFromTemplate(this.template()), ...(ngDevMode ? [{ debugName: "formGroup" }] : /* istanbul ignore next */ []));
4223
+ isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
4227
4224
  /**
4228
4225
  * The rel of the form.
4229
4226
  */
4230
- rel = input.required(...(ngDevMode ? [{ debugName: "rel" }] : []));
4227
+ rel = input.required(...(ngDevMode ? [{ debugName: "rel" }] : /* istanbul ignore next */ []));
4231
4228
  /**
4232
4229
  * Determines whether to show the delete button.
4233
4230
  */
4234
- showDelete = input(true, ...(ngDevMode ? [{ debugName: "showDelete" }] : []));
4231
+ showDelete = input(true, ...(ngDevMode ? [{ debugName: "showDelete" }] : /* istanbul ignore next */ []));
4235
4232
  /**
4236
4233
  * Determines whether to show the reload button.
4237
4234
  */
4238
- showReload = input(true, ...(ngDevMode ? [{ debugName: "showReload" }] : []));
4235
+ showReload = input(true, ...(ngDevMode ? [{ debugName: "showReload" }] : /* istanbul ignore next */ []));
4239
4236
  /**
4240
4237
  * Determines whether to show the submit button.
4241
4238
  */
4242
- showSubmit = input(true, ...(ngDevMode ? [{ debugName: "showSubmit" }] : []));
4239
+ showSubmit = input(true, ...(ngDevMode ? [{ debugName: "showSubmit" }] : /* istanbul ignore next */ []));
4243
4240
  /**
4244
4241
  * The template used to render the form.
4245
4242
  */
4246
- template = model.required(...(ngDevMode ? [{ debugName: "template" }] : []));
4243
+ template = model.required(...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
4247
4244
  /**
4248
4245
  * Emitted when the form value changes.
4249
4246
  */
@@ -4251,20 +4248,20 @@ class RestWorldFormComponent {
4251
4248
  /**
4252
4249
  * A reference to a template that can be used to render custom buttons for the form.
4253
4250
  */
4254
- buttonsRef = contentChild('buttons', ...(ngDevMode ? [{ debugName: "buttonsRef" }] : []));
4251
+ buttonsRef = contentChild('buttons', ...(ngDevMode ? [{ debugName: "buttonsRef" }] : /* istanbul ignore next */ []));
4255
4252
  /**
4256
4253
  * A reference to a template that can be used to render content before the default buttons.
4257
4254
  */
4258
- beforeButtonsRef = contentChild('beforeButtons', ...(ngDevMode ? [{ debugName: "beforeButtonsRef" }] : []));
4255
+ beforeButtonsRef = contentChild('beforeButtons', ...(ngDevMode ? [{ debugName: "beforeButtonsRef" }] : /* istanbul ignore next */ []));
4259
4256
  /**
4260
4257
  * A reference to a template that can be used to render content after the default buttons.
4261
4258
  */
4262
- afterButtonsRef = contentChild('afterButtons', ...(ngDevMode ? [{ debugName: "afterButtonsRef" }] : []));
4259
+ afterButtonsRef = contentChild('afterButtons', ...(ngDevMode ? [{ debugName: "afterButtonsRef" }] : /* istanbul ignore next */ []));
4263
4260
  /**
4264
4261
  * A reference to a template that can be used to render custom content inside the <form> element instead of the default form.
4265
4262
  */
4266
- contentRef = contentChild('content', ...(ngDevMode ? [{ debugName: "contentRef" }] : []));
4267
- _client = computed(() => this._clients.getClient(this.apiName()), ...(ngDevMode ? [{ debugName: "_client" }] : []));
4263
+ contentRef = contentChild('content', ...(ngDevMode ? [{ debugName: "contentRef" }] : /* istanbul ignore next */ []));
4264
+ _client = computed(() => this._clients.getClient(this.apiName()), ...(ngDevMode ? [{ debugName: "_client" }] : /* istanbul ignore next */ []));
4268
4265
  _formValueChangesSubscription;
4269
4266
  constructor(_clients, _confirmationService, _messageService, _formService, _elementRef, _problemService) {
4270
4267
  this._clients = _clients;
@@ -4368,13 +4365,13 @@ class RestWorldFormComponent {
4368
4365
  }
4369
4366
  this.isLoading.set(false);
4370
4367
  }
4371
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldFormComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.ConfirmationService }, { token: i2$1.MessageService }, { token: i1$1.FormService }, { token: i0.ElementRef }, { token: ProblemService }], target: i0.ɵɵFactoryTarget.Component });
4372
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RestWorldFormComponent, isStandalone: true, selector: "rw-form", inputs: { allowDelete: { classPropertyName: "allowDelete", publicName: "allowDelete", isSignal: true, isRequired: false, transformFunction: null }, allowReload: { classPropertyName: "allowReload", publicName: "allowReload", isSignal: true, isRequired: false, transformFunction: null }, allowSubmit: { classPropertyName: "allowSubmit", publicName: "allowSubmit", isSignal: true, isRequired: false, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: true, transformFunction: null }, showDelete: { classPropertyName: "showDelete", publicName: "showDelete", isSignal: true, isRequired: false, transformFunction: null }, showReload: { classPropertyName: "showReload", publicName: "showReload", isSignal: true, isRequired: false, transformFunction: null }, showSubmit: { classPropertyName: "showSubmit", publicName: "showSubmit", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { afterDelete: "afterDelete", afterSubmit: "afterSubmit", template: "templateChange", valueChanges: "valueChanges" }, queries: [{ propertyName: "buttonsRef", first: true, predicate: ["buttons"], descendants: true, isSignal: true }, { propertyName: "beforeButtonsRef", first: true, predicate: ["beforeButtons"], descendants: true, isSignal: true }, { propertyName: "afterButtonsRef", first: true, predicate: ["afterButtons"], descendants: true, isSignal: true }, { propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (formGroup() !== undefined && template() !== undefined) {\n <form [formGroup]=\"formGroup()\" (ngSubmit)=\"submit()\">\n <div class=\"blockable-container\">\n <div class=\"blockable-element\">\n <div class=\"grid field\">\n <div class=\"col-12 md:col-10 md:col-offset-2\">\n <rw-validation-errors [form]=\"formGroup()\"></rw-validation-errors>\n </div>\n </div>\n <ng-template #defaultContent>\n <rw-input-template [template]=\"template()\" [apiName]=\"apiName()\"></rw-input-template>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"contentRef() ?? defaultContent; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n </div>\n @if (isLoading()) {\n <div class=\"blockable-overlay\">\n <p-progressSpinner></p-progressSpinner>\n </div>\n }\n </div>\n\n <div class=\"grid\">\n <div class=\"col\">\n <div class=\"flex justify-content-end w-full\">\n <ng-template #defaultButtons>\n @if (beforeButtonsRef(); as beforeButtons) {\n <ng-container\n *ngTemplateOutlet=\"beforeButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n }\n <button pButton pRipple type=\"submit\" label=\"Save\" icon=\"far fa-save\" class=\"mx-2 p-button-success\"\n [disabled]=\"!allowSubmit()\"></button>\n <button pButton pRipple type=\"button\" label=\"Reload\" icon=\"fas fa-redo\" class=\"mx-2 p-button-info\"\n (click)=\"reload()\" [disabled]=\"!canReload()\"></button>\n <button pButton pRipple type=\"button\" label=\"Delete\" icon=\"far fa-trash-alt\"\n class=\"ml-2 p-button-danger\" (click)=\"showDeleteConfirmatioModal()\"\n [disabled]=\"!canDelete()\"></button>\n @if (afterButtonsRef(); as afterButtons) {\n <ng-container\n *ngTemplateOutlet=\"afterButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n }\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"buttonsRef() ?? defaultButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n </div>\n </div>\n </div>\n </form>\n}\n", styles: [".blockable-container{display:grid;place-items:center;grid-template-areas:\"inner\"}.blockable-element{grid-area:inner;width:100%}.blockable-overlay{grid-area:inner;height:100%;width:100%;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:1}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: RestWorldValidationErrorsComponent, selector: "rw-validation-errors", inputs: ["form", "property"] }, { kind: "component", type: RestWorldInputTemplateComponent, selector: "rw-input-template", inputs: ["apiName", "template"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i6$1.ProgressSpinner, selector: "p-progressSpinner, p-progress-spinner, p-progressspinner", inputs: ["styleClass", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i8.Ripple, selector: "[pRipple]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
4368
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldFormComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.ConfirmationService }, { token: i2$1.MessageService }, { token: i1$1.FormService }, { token: i0.ElementRef }, { token: ProblemService }], target: i0.ɵɵFactoryTarget.Component });
4369
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RestWorldFormComponent, isStandalone: true, selector: "rw-form", inputs: { allowDelete: { classPropertyName: "allowDelete", publicName: "allowDelete", isSignal: true, isRequired: false, transformFunction: null }, allowReload: { classPropertyName: "allowReload", publicName: "allowReload", isSignal: true, isRequired: false, transformFunction: null }, allowSubmit: { classPropertyName: "allowSubmit", publicName: "allowSubmit", isSignal: true, isRequired: false, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: true, transformFunction: null }, showDelete: { classPropertyName: "showDelete", publicName: "showDelete", isSignal: true, isRequired: false, transformFunction: null }, showReload: { classPropertyName: "showReload", publicName: "showReload", isSignal: true, isRequired: false, transformFunction: null }, showSubmit: { classPropertyName: "showSubmit", publicName: "showSubmit", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { afterDelete: "afterDelete", afterSubmit: "afterSubmit", template: "templateChange", valueChanges: "valueChanges" }, queries: [{ propertyName: "buttonsRef", first: true, predicate: ["buttons"], descendants: true, isSignal: true }, { propertyName: "beforeButtonsRef", first: true, predicate: ["beforeButtons"], descendants: true, isSignal: true }, { propertyName: "afterButtonsRef", first: true, predicate: ["afterButtons"], descendants: true, isSignal: true }, { propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (formGroup() !== undefined && template() !== undefined) {\r\n <form [formGroup]=\"formGroup()\" (ngSubmit)=\"submit()\">\r\n <div class=\"blockable-container\">\r\n <div class=\"blockable-element\">\r\n <div class=\"grid field\">\r\n <div class=\"col-12 md:col-10 md:col-offset-2\">\r\n <rw-validation-errors [form]=\"formGroup()\"></rw-validation-errors>\r\n </div>\r\n </div>\r\n <ng-template #defaultContent>\r\n <rw-input-template [template]=\"template()\" [apiName]=\"apiName()\"></rw-input-template>\r\n </ng-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"contentRef() ?? defaultContent; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n </div>\r\n @if (isLoading()) {\r\n <div class=\"blockable-overlay\">\r\n <p-progressSpinner></p-progressSpinner>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <ng-template #defaultButtons>\r\n @if (beforeButtonsRef(); as beforeButtons) {\r\n <ng-container\r\n *ngTemplateOutlet=\"beforeButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n }\r\n <button pButton pRipple type=\"submit\" label=\"Save\" icon=\"far fa-save\" class=\"mx-2 p-button-success\"\r\n [disabled]=\"!allowSubmit()\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Reload\" icon=\"fas fa-redo\" class=\"mx-2 p-button-info\"\r\n (click)=\"reload()\" [disabled]=\"!canReload()\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Delete\" icon=\"far fa-trash-alt\"\r\n class=\"ml-2 p-button-danger\" (click)=\"showDeleteConfirmatioModal()\"\r\n [disabled]=\"!canDelete()\"></button>\r\n @if (afterButtonsRef(); as afterButtons) {\r\n <ng-container\r\n *ngTemplateOutlet=\"afterButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n }\r\n </ng-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonsRef() ?? defaultButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n}\r\n", styles: [".blockable-container{display:grid;place-items:center;grid-template-areas:\"inner\"}.blockable-element{grid-area:inner;width:100%}.blockable-overlay{grid-area:inner;height:100%;width:100%;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:1}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: RestWorldValidationErrorsComponent, selector: "rw-validation-errors", inputs: ["form", "property"] }, { kind: "component", type: RestWorldInputTemplateComponent, selector: "rw-input-template", inputs: ["apiName", "template"] }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i6$1.ProgressSpinner, selector: "p-progressSpinner, p-progress-spinner, p-progressspinner", inputs: ["styleClass", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i8.Ripple, selector: "[pRipple]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
4373
4370
  }
4374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldFormComponent, decorators: [{
4371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldFormComponent, decorators: [{
4375
4372
  type: Component,
4376
- args: [{ selector: 'rw-form', standalone: true, imports: [ReactiveFormsModule, RestWorldValidationErrorsComponent, RestWorldInputTemplateComponent, ProgressSpinnerModule, ButtonModule, RippleModule, NgTemplateOutlet], template: "@if (formGroup() !== undefined && template() !== undefined) {\n <form [formGroup]=\"formGroup()\" (ngSubmit)=\"submit()\">\n <div class=\"blockable-container\">\n <div class=\"blockable-element\">\n <div class=\"grid field\">\n <div class=\"col-12 md:col-10 md:col-offset-2\">\n <rw-validation-errors [form]=\"formGroup()\"></rw-validation-errors>\n </div>\n </div>\n <ng-template #defaultContent>\n <rw-input-template [template]=\"template()\" [apiName]=\"apiName()\"></rw-input-template>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"contentRef() ?? defaultContent; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n </div>\n @if (isLoading()) {\n <div class=\"blockable-overlay\">\n <p-progressSpinner></p-progressSpinner>\n </div>\n }\n </div>\n\n <div class=\"grid\">\n <div class=\"col\">\n <div class=\"flex justify-content-end w-full\">\n <ng-template #defaultButtons>\n @if (beforeButtonsRef(); as beforeButtons) {\n <ng-container\n *ngTemplateOutlet=\"beforeButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n }\n <button pButton pRipple type=\"submit\" label=\"Save\" icon=\"far fa-save\" class=\"mx-2 p-button-success\"\n [disabled]=\"!allowSubmit()\"></button>\n <button pButton pRipple type=\"button\" label=\"Reload\" icon=\"fas fa-redo\" class=\"mx-2 p-button-info\"\n (click)=\"reload()\" [disabled]=\"!canReload()\"></button>\n <button pButton pRipple type=\"button\" label=\"Delete\" icon=\"far fa-trash-alt\"\n class=\"ml-2 p-button-danger\" (click)=\"showDeleteConfirmatioModal()\"\n [disabled]=\"!canDelete()\"></button>\n @if (afterButtonsRef(); as afterButtons) {\n <ng-container\n *ngTemplateOutlet=\"afterButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n }\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"buttonsRef() ?? defaultButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\n </div>\n </div>\n </div>\n </form>\n}\n", styles: [".blockable-container{display:grid;place-items:center;grid-template-areas:\"inner\"}.blockable-element{grid-area:inner;width:100%}.blockable-overlay{grid-area:inner;height:100%;width:100%;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:1}\n"] }]
4377
- }], ctorParameters: () => [{ type: RestWorldClientCollection }, { type: i2$1.ConfirmationService }, { type: i2$1.MessageService }, { type: i1$1.FormService }, { type: i0.ElementRef }, { type: ProblemService }] });
4373
+ args: [{ selector: 'rw-form', standalone: true, imports: [ReactiveFormsModule, RestWorldValidationErrorsComponent, RestWorldInputTemplateComponent, ProgressSpinnerModule, ButtonModule, RippleModule, NgTemplateOutlet], template: "@if (formGroup() !== undefined && template() !== undefined) {\r\n <form [formGroup]=\"formGroup()\" (ngSubmit)=\"submit()\">\r\n <div class=\"blockable-container\">\r\n <div class=\"blockable-element\">\r\n <div class=\"grid field\">\r\n <div class=\"col-12 md:col-10 md:col-offset-2\">\r\n <rw-validation-errors [form]=\"formGroup()\"></rw-validation-errors>\r\n </div>\r\n </div>\r\n <ng-template #defaultContent>\r\n <rw-input-template [template]=\"template()\" [apiName]=\"apiName()\"></rw-input-template>\r\n </ng-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"contentRef() ?? defaultContent; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n </div>\r\n @if (isLoading()) {\r\n <div class=\"blockable-overlay\">\r\n <p-progressSpinner></p-progressSpinner>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <ng-template #defaultButtons>\r\n @if (beforeButtonsRef(); as beforeButtons) {\r\n <ng-container\r\n *ngTemplateOutlet=\"beforeButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n }\r\n <button pButton pRipple type=\"submit\" label=\"Save\" icon=\"far fa-save\" class=\"mx-2 p-button-success\"\r\n [disabled]=\"!allowSubmit()\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Reload\" icon=\"fas fa-redo\" class=\"mx-2 p-button-info\"\r\n (click)=\"reload()\" [disabled]=\"!canReload()\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Delete\" icon=\"far fa-trash-alt\"\r\n class=\"ml-2 p-button-danger\" (click)=\"showDeleteConfirmatioModal()\"\r\n [disabled]=\"!canDelete()\"></button>\r\n @if (afterButtonsRef(); as afterButtons) {\r\n <ng-container\r\n *ngTemplateOutlet=\"afterButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n }\r\n </ng-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonsRef() ?? defaultButtons; context: { form: formGroup, template: template, apiName: apiName() }\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n}\r\n", styles: [".blockable-container{display:grid;place-items:center;grid-template-areas:\"inner\"}.blockable-element{grid-area:inner;width:100%}.blockable-overlay{grid-area:inner;height:100%;width:100%;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:1}\n"] }]
4374
+ }], ctorParameters: () => [{ type: RestWorldClientCollection }, { type: i2$1.ConfirmationService }, { type: i2$1.MessageService }, { type: i1$1.FormService }, { type: i0.ElementRef }, { type: ProblemService }], propDecorators: { afterDelete: [{ type: i0.Output, args: ["afterDelete"] }], afterSubmit: [{ type: i0.Output, args: ["afterSubmit"] }], allowDelete: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowDelete", required: false }] }], allowReload: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowReload", required: false }] }], allowSubmit: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowSubmit", required: false }] }], apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], rel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rel", required: true }] }], showDelete: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDelete", required: false }] }], showReload: [{ type: i0.Input, args: [{ isSignal: true, alias: "showReload", required: false }] }], showSubmit: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSubmit", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: true }] }, { type: i0.Output, args: ["templateChange"] }], valueChanges: [{ type: i0.Output, args: ["valueChanges"] }], buttonsRef: [{ type: i0.ContentChild, args: ['buttons', { isSignal: true }] }], beforeButtonsRef: [{ type: i0.ContentChild, args: ['beforeButtons', { isSignal: true }] }], afterButtonsRef: [{ type: i0.ContentChild, args: ['afterButtons', { isSignal: true }] }], contentRef: [{ type: i0.ContentChild, args: ['content', { isSignal: true }] }] } });
4378
4375
 
4379
4376
  /**
4380
4377
  * Component for navigating to a resource by its ID.
@@ -4387,17 +4384,17 @@ class RestWorldIdNavigationComponent {
4387
4384
  _messageService;
4388
4385
  _router;
4389
4386
  _route;
4390
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
4391
- rel = input.required(...(ngDevMode ? [{ debugName: "rel" }] : []));
4387
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
4388
+ rel = input.required(...(ngDevMode ? [{ debugName: "rel" }] : /* istanbul ignore next */ []));
4392
4389
  /**
4393
4390
  * A prefix to use for the URL that is returned from the backend.
4394
4391
  * If none is provided, a relative navigation will be performed which means that the last part of the current URL is replaced with the one from the backend.
4395
4392
  */
4396
- urlPrefix = input(...(ngDevMode ? [undefined, { debugName: "urlPrefix" }] : []));
4393
+ urlPrefix = input(...(ngDevMode ? [undefined, { debugName: "urlPrefix" }] : /* istanbul ignore next */ []));
4397
4394
  idNavigationForm = new FormGroup({
4398
4395
  id: new FormControl(null, Validators.compose([Validators.min(1), Validators.max(Number.MAX_SAFE_INTEGER)]))
4399
4396
  });
4400
- _client = computed(() => this._clients.getClient(this.apiName()), ...(ngDevMode ? [{ debugName: "_client" }] : []));
4397
+ _client = computed(() => this._clients.getClient(this.apiName()), ...(ngDevMode ? [{ debugName: "_client" }] : /* istanbul ignore next */ []));
4401
4398
  constructor(_clients, _messageService, _router, _route) {
4402
4399
  this._clients = _clients;
4403
4400
  this._messageService = _messageService;
@@ -4431,13 +4428,13 @@ class RestWorldIdNavigationComponent {
4431
4428
  await this._router.navigate(["..", resource._links.self[0].href], { relativeTo: this._route });
4432
4429
  this.idNavigationForm.reset();
4433
4430
  }
4434
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldIdNavigationComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.MessageService }, { token: i3$3.Router }, { token: i3$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
4435
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: RestWorldIdNavigationComponent, isStandalone: true, selector: "rw-id-navigation", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: true, transformFunction: null }, urlPrefix: { classPropertyName: "urlPrefix", publicName: "urlPrefix", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<form [formGroup]=\"idNavigationForm\" (ngSubmit)=\"navigateById()\" class=\"mr-3\">\n <div class=\"p-inputgroup\">\n <p-inputNumber formControlName=\"id\" placeholder=\"Navigate by ID\"></p-inputNumber>\n <button type=\"submit\" pButton pRipple icon=\"fa-solid fa-arrow-right\"></button>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i1$5.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: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
4431
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldIdNavigationComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.MessageService }, { token: i3$3.Router }, { token: i3$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
4432
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: RestWorldIdNavigationComponent, isStandalone: true, selector: "rw-id-navigation", inputs: { apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: true, transformFunction: null }, urlPrefix: { classPropertyName: "urlPrefix", publicName: "urlPrefix", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<form [formGroup]=\"idNavigationForm\" (ngSubmit)=\"navigateById()\" class=\"mr-3\">\r\n <div class=\"p-inputgroup\">\r\n <p-inputNumber formControlName=\"id\" placeholder=\"Navigate by ID\"></p-inputNumber>\r\n <button type=\"submit\" pButton pRipple icon=\"fa-solid fa-arrow-right\"></button>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i1$5.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: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
4436
4433
  }
4437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RestWorldIdNavigationComponent, decorators: [{
4434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RestWorldIdNavigationComponent, decorators: [{
4438
4435
  type: Component,
4439
- args: [{ selector: 'rw-id-navigation', standalone: true, imports: [InputNumberModule, ButtonModule, ReactiveFormsModule], template: "<form [formGroup]=\"idNavigationForm\" (ngSubmit)=\"navigateById()\" class=\"mr-3\">\n <div class=\"p-inputgroup\">\n <p-inputNumber formControlName=\"id\" placeholder=\"Navigate by ID\"></p-inputNumber>\n <button type=\"submit\" pButton pRipple icon=\"fa-solid fa-arrow-right\"></button>\n </div>\n</form>\n" }]
4440
- }], ctorParameters: () => [{ type: RestWorldClientCollection }, { type: i2$1.MessageService }, { type: i3$3.Router }, { type: i3$3.ActivatedRoute }] });
4436
+ args: [{ selector: 'rw-id-navigation', standalone: true, imports: [InputNumberModule, ButtonModule, ReactiveFormsModule], template: "<form [formGroup]=\"idNavigationForm\" (ngSubmit)=\"navigateById()\" class=\"mr-3\">\r\n <div class=\"p-inputgroup\">\r\n <p-inputNumber formControlName=\"id\" placeholder=\"Navigate by ID\"></p-inputNumber>\r\n <button type=\"submit\" pButton pRipple icon=\"fa-solid fa-arrow-right\"></button>\r\n </div>\r\n</form>\r\n" }]
4437
+ }], ctorParameters: () => [{ type: RestWorldClientCollection }, { type: i2$1.MessageService }, { type: i3$3.Router }, { type: i3$3.ActivatedRoute }], propDecorators: { apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], rel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rel", required: true }] }], urlPrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "urlPrefix", required: false }] }] } });
4441
4438
 
4442
4439
  class RestWorldOptions {
4443
4440
  BaseUrl;
@@ -4467,10 +4464,10 @@ class AsPipe {
4467
4464
  transform(value, type) {
4468
4465
  return value;
4469
4466
  }
4470
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: AsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4471
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: AsPipe, isStandalone: true, name: "as" });
4467
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4468
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: AsPipe, isStandalone: true, name: "as" });
4472
4469
  }
4473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: AsPipe, decorators: [{
4470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AsPipe, decorators: [{
4474
4471
  type: Pipe,
4475
4472
  args: [{
4476
4473
  name: 'as',
@@ -4519,10 +4516,10 @@ class SettingsService {
4519
4516
  await Promise.all(this.settings.apiUrls
4520
4517
  .map(api => this._clients.addOrGetExistingClient(api.name, new RestWorldOptions(api.url, api.version))));
4521
4518
  }
4522
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SettingsService, deps: [{ token: RestWorldClientCollection }], target: i0.ɵɵFactoryTarget.Injectable });
4523
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SettingsService, providedIn: 'root' });
4519
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SettingsService, deps: [{ token: RestWorldClientCollection }], target: i0.ɵɵFactoryTarget.Injectable });
4520
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SettingsService, providedIn: 'root' });
4524
4521
  }
4525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SettingsService, decorators: [{
4522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SettingsService, decorators: [{
4526
4523
  type: Injectable,
4527
4524
  args: [{
4528
4525
  providedIn: 'root'
@@ -4639,8 +4636,8 @@ class OpenTelemetryService {
4639
4636
  resource: resource,
4640
4637
  });
4641
4638
  provider.register({
4642
- // Changing default contextManager to use ZoneContextManager - supports asynchronous operations - optional
4643
- contextManager: new ZoneContextManager(),
4639
+ // Changing default contextManager to use StackContextManager - this ensures that http calls made in Angular's HttpClient will be properly associated with the current navigation span
4640
+ contextManager: new StackContextManager(),
4644
4641
  });
4645
4642
  // Get a tracer from the provider
4646
4643
  this._tracer = provider.getTracer('angular-navigation-tracer');
@@ -4743,10 +4740,10 @@ class OpenTelemetryService {
4743
4740
  getTracer() {
4744
4741
  return this._tracer;
4745
4742
  }
4746
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OpenTelemetryService, deps: [{ token: SettingsService }, { token: i3$3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
4747
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OpenTelemetryService, providedIn: "root" });
4743
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OpenTelemetryService, deps: [{ token: SettingsService }, { token: i3$3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
4744
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OpenTelemetryService, providedIn: "root" });
4748
4745
  }
4749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OpenTelemetryService, decorators: [{
4746
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OpenTelemetryService, decorators: [{
4750
4747
  type: Injectable,
4751
4748
  args: [{
4752
4749
  providedIn: "root"
@@ -4792,30 +4789,26 @@ class RESTworldEditViewComponent {
4792
4789
  /**
4793
4790
  * The relation to load the resource from.
4794
4791
  */
4795
- rel = input.required(...(ngDevMode ? [{ debugName: "rel" }] : []));
4792
+ rel = input.required(...(ngDevMode ? [{ debugName: "rel" }] : /* istanbul ignore next */ []));
4796
4793
  /**
4797
4794
  * The URI of the resource to load.
4798
4795
  */
4799
- uri = input.required(...(ngDevMode ? [{ debugName: "uri" }] : []));
4796
+ uri = input.required(...(ngDevMode ? [{ debugName: "uri" }] : /* istanbul ignore next */ []));
4800
4797
  /**
4801
4798
  * The name of the API to load the resource from.
4802
4799
  */
4803
- apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : []));
4804
- newHref = computed(() => this.resource.value()?.findLink('new')?.href, ...(ngDevMode ? [{ debugName: "newHref" }] : []));
4805
- templates = resource({
4806
- params: () => ({ apiName: this.apiName(), resource: this.resource.value() }),
4807
- loader: ({ params }) => this.loadTemplatesInternal(params.apiName, params.resource)
4808
- });
4809
- resource = resource({
4810
- params: () => ({ apiName: this.apiName(), uri: this.uri() }),
4800
+ apiName = input.required(...(ngDevMode ? [{ debugName: "apiName" }] : /* istanbul ignore next */ []));
4801
+ newHref = computed(() => this.resource.value()?.findLink('new')?.href, ...(ngDevMode ? [{ debugName: "newHref" }] : /* istanbul ignore next */ []));
4802
+ templates = resource({ ...(ngDevMode ? { debugName: "templates" } : /* istanbul ignore next */ {}), params: () => ({ apiName: this.apiName(), resource: this.resource.value() }),
4803
+ loader: ({ params }) => this.loadTemplatesInternal(params.apiName, params.resource) });
4804
+ resource = resource({ ...(ngDevMode ? { debugName: "resource" } : /* istanbul ignore next */ {}), params: () => ({ apiName: this.apiName(), uri: this.uri() }),
4811
4805
  loader: async ({ params }) => {
4812
4806
  const client = this._clients.getClient(params.apiName);
4813
4807
  const resourceResponse = await client.getSingleByUri(params.uri);
4814
4808
  this._problemService.checkResponseDisplayErrorsAndThrow(resourceResponse);
4815
4809
  return resourceResponse.body;
4816
- }
4817
- });
4818
- displayTab = model("Loading", ...(ngDevMode ? [{ debugName: "displayTab" }] : []));
4810
+ } });
4811
+ displayTab = model("Loading", ...(ngDevMode ? [{ debugName: "displayTab" }] : /* istanbul ignore next */ []));
4819
4812
  async afterSubmit($event) {
4820
4813
  if ($event.status == 201) {
4821
4814
  await this._router.navigate(["edit", this.apiName(), this.rel(), $event.location]);
@@ -4859,16 +4852,16 @@ class RESTworldEditViewComponent {
4859
4852
  return [];
4860
4853
  }
4861
4854
  }
4862
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RESTworldEditViewComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.MessageService }, { token: ProblemService }, { token: i3$3.Router }, { token: i5.ValdemortConfig }], target: i0.ɵɵFactoryTarget.Component });
4863
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RESTworldEditViewComponent, isStandalone: true, selector: "rw-edit", inputs: { rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: true, transformFunction: null }, uri: { classPropertyName: "uri", publicName: "uri", isSignal: true, isRequired: true, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, displayTab: { classPropertyName: "displayTab", publicName: "displayTab", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { displayTab: "displayTabChange" }, queries: [{ propertyName: "extraTabsRef", first: true, predicate: ["extraTabs"], descendants: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName()\" [rel]=\"rel()\"></rw-id-navigation>\r\n @if (newHref()) {\r\n <button pButton pRipple type=\"button\" icon=\"fas fa-plus\" class=\"p-button-success mr-3\" (click)=\"createNew()\" pTooltip=\"Create new\"></button>\r\n }\r\n </div>\r\n</div>\r\n\r\n<p-tabs [(value)]=\"displayTab\">\r\n <p-tablist>\r\n @if (templates.isLoading()) {\r\n <p-tab value=\"Loading\">Loading</p-tab>\r\n }\r\n @else {\r\n @for (template of templates.value(); track template; let i = $index) {\r\n <p-tab [value]=\"template.title ?? i\">{{template.title}}</p-tab>\r\n }\r\n @if (extraTabsRef) {\r\n <p-tab value=\"Extra\">Extra</p-tab>\r\n }\r\n }\r\n </p-tablist>\r\n <p-tabpanels>\r\n @if (templates.isLoading()) {\r\n <p-tabpanel value=\"Loading\">\r\n @for(i of [1, 2, 3, 4, 5]; track i) {\r\n <div class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabpanel>\r\n }\r\n @else {\r\n @for (template of templates.value(); track template; let i = $index) {\r\n <p-tabpanel [value]=\"template.title ?? i\">\r\n <rw-form\r\n [template]=\"template\"\r\n [apiName]=\"apiName()\"\r\n [rel]=\"rel()\"\r\n (afterDelete)=\"afterDelete()\"\r\n (afterSubmit)=\"afterSubmit($event)\"\r\n ></rw-form>\r\n </p-tabpanel>\r\n }\r\n @if (extraTabsRef) {\r\n <p-tabpanel value=\"Extra\">\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef\"></ng-container>\r\n </p-tabpanel>\r\n }\r\n }\r\n </p-tabpanels>\r\n</p-tabs>\r\n\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"], dependencies: [{ kind: "component", type: RestWorldIdNavigationComponent, selector: "rw-id-navigation", inputs: ["apiName", "rel", "urlPrefix"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i6$2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i7$1.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.TabPanels, selector: "p-tabpanels" }, { kind: "component", type: i7$1.TabPanel, selector: "p-tabpanel", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.TabList, selector: "p-tablist" }, { kind: "component", type: i7$1.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RestWorldFormComponent, selector: "rw-form", inputs: ["allowDelete", "allowReload", "allowSubmit", "apiName", "rel", "showDelete", "showReload", "showSubmit", "template"], outputs: ["afterDelete", "afterSubmit", "templateChange", "valueChanges"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8$1.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }] });
4855
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RESTworldEditViewComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.MessageService }, { token: ProblemService }, { token: i3$3.Router }, { token: i5.ValdemortConfig }], target: i0.ɵɵFactoryTarget.Component });
4856
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RESTworldEditViewComponent, isStandalone: true, selector: "rw-edit", inputs: { rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: true, transformFunction: null }, uri: { classPropertyName: "uri", publicName: "uri", isSignal: true, isRequired: true, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: true, transformFunction: null }, displayTab: { classPropertyName: "displayTab", publicName: "displayTab", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { displayTab: "displayTabChange" }, queries: [{ propertyName: "extraTabsRef", first: true, predicate: ["extraTabs"], descendants: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName()\" [rel]=\"rel()\"></rw-id-navigation>\r\n @if (newHref()) {\r\n <button pButton pRipple type=\"button\" icon=\"fas fa-plus\" class=\"p-button-success mr-3\" (click)=\"createNew()\" pTooltip=\"Create new\"></button>\r\n }\r\n </div>\r\n</div>\r\n\r\n<p-tabs [(value)]=\"displayTab\">\r\n <p-tablist>\r\n @if (templates.isLoading()) {\r\n <p-tab value=\"Loading\">Loading</p-tab>\r\n }\r\n @else {\r\n @for (template of templates.value(); track template; let i = $index) {\r\n <p-tab [value]=\"template.title ?? i\">{{template.title}}</p-tab>\r\n }\r\n @if (extraTabsRef) {\r\n <p-tab value=\"Extra\">Extra</p-tab>\r\n }\r\n }\r\n </p-tablist>\r\n <p-tabpanels>\r\n @if (templates.isLoading()) {\r\n <p-tabpanel value=\"Loading\">\r\n @for(i of [1, 2, 3, 4, 5]; track i) {\r\n <div class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabpanel>\r\n }\r\n @else {\r\n @for (template of templates.value(); track template; let i = $index) {\r\n <p-tabpanel [value]=\"template.title ?? i\">\r\n <rw-form\r\n [template]=\"template\"\r\n [apiName]=\"apiName()\"\r\n [rel]=\"rel()\"\r\n (afterDelete)=\"afterDelete()\"\r\n (afterSubmit)=\"afterSubmit($event)\"\r\n ></rw-form>\r\n </p-tabpanel>\r\n }\r\n @if (extraTabsRef) {\r\n <p-tabpanel value=\"Extra\">\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef\"></ng-container>\r\n </p-tabpanel>\r\n }\r\n }\r\n </p-tabpanels>\r\n</p-tabs>\r\n\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"], dependencies: [{ kind: "component", type: RestWorldIdNavigationComponent, selector: "rw-id-navigation", inputs: ["apiName", "rel", "urlPrefix"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i6$2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i7$1.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.TabPanels, selector: "p-tabpanels" }, { kind: "component", type: i7$1.TabPanel, selector: "p-tabpanel", inputs: ["lazy", "value"], outputs: ["valueChange"] }, { kind: "component", type: i7$1.TabList, selector: "p-tablist" }, { kind: "component", type: i7$1.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RestWorldFormComponent, selector: "rw-form", inputs: ["allowDelete", "allowReload", "allowSubmit", "apiName", "rel", "showDelete", "showReload", "showSubmit", "template"], outputs: ["afterDelete", "afterSubmit", "templateChange", "valueChanges"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8$1.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }] });
4864
4857
  }
4865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RESTworldEditViewComponent, decorators: [{
4858
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RESTworldEditViewComponent, decorators: [{
4866
4859
  type: Component,
4867
4860
  args: [{ selector: "rw-edit", standalone: true, imports: [RestWorldIdNavigationComponent, SkeletonModule, TabsModule, RestWorldFormComponent, ConfirmDialogModule, NgTemplateOutlet, ButtonDirective, Tooltip], template: "<div class=\"grid\">\r\n <div class=\"col-12 md:col-10\">\r\n <h1>Edit resource</h1>\r\n </div>\r\n <div class=\"col-12 md:col-2 align-items-center justify-content-end flex\">\r\n <rw-id-navigation [apiName]=\"apiName()\" [rel]=\"rel()\"></rw-id-navigation>\r\n @if (newHref()) {\r\n <button pButton pRipple type=\"button\" icon=\"fas fa-plus\" class=\"p-button-success mr-3\" (click)=\"createNew()\" pTooltip=\"Create new\"></button>\r\n }\r\n </div>\r\n</div>\r\n\r\n<p-tabs [(value)]=\"displayTab\">\r\n <p-tablist>\r\n @if (templates.isLoading()) {\r\n <p-tab value=\"Loading\">Loading</p-tab>\r\n }\r\n @else {\r\n @for (template of templates.value(); track template; let i = $index) {\r\n <p-tab [value]=\"template.title ?? i\">{{template.title}}</p-tab>\r\n }\r\n @if (extraTabsRef) {\r\n <p-tab value=\"Extra\">Extra</p-tab>\r\n }\r\n }\r\n </p-tablist>\r\n <p-tabpanels>\r\n @if (templates.isLoading()) {\r\n <p-tabpanel value=\"Loading\">\r\n @for(i of [1, 2, 3, 4, 5]; track i) {\r\n <div class=\"grid field\">\r\n <p-skeleton class=\"col-12 mb-2 md:col-2 md:mb-0\" height=\"39px\"></p-skeleton>\r\n <div class=\"col-12 md:col-10\">\r\n <p-skeleton class=\"w-full\" height=\"39px\"></p-skeleton>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"grid\">\r\n <div class=\"col\">\r\n <div class=\"flex justify-content-end w-full\">\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n <p-skeleton width=\"120px\" height=\"39px\" class=\"mx-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabpanel>\r\n }\r\n @else {\r\n @for (template of templates.value(); track template; let i = $index) {\r\n <p-tabpanel [value]=\"template.title ?? i\">\r\n <rw-form\r\n [template]=\"template\"\r\n [apiName]=\"apiName()\"\r\n [rel]=\"rel()\"\r\n (afterDelete)=\"afterDelete()\"\r\n (afterSubmit)=\"afterSubmit($event)\"\r\n ></rw-form>\r\n </p-tabpanel>\r\n }\r\n @if (extraTabsRef) {\r\n <p-tabpanel value=\"Extra\">\r\n <ng-container *ngTemplateOutlet=\"extraTabsRef\"></ng-container>\r\n </p-tabpanel>\r\n }\r\n }\r\n </p-tabpanels>\r\n</p-tabs>\r\n\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: ["::ng-deep .p-tooltip{max-width:fit-content!important}.field.grid>label.hasChildren{border-right:1px solid rgba(0,0,0,.1)}\n"] }]
4868
4861
  }], ctorParameters: () => [{ type: RestWorldClientCollection }, { type: i2$1.MessageService }, { type: ProblemService }, { type: i3$3.Router }, { type: i5.ValdemortConfig }], propDecorators: { extraTabsRef: [{
4869
4862
  type: ContentChild,
4870
4863
  args: ["extraTabs", { static: false }]
4871
- }] } });
4864
+ }], rel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rel", required: true }] }], uri: [{ type: i0.Input, args: [{ isSignal: true, alias: "uri", required: true }] }], apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: true }] }], displayTab: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayTab", required: false }] }, { type: i0.Output, args: ["displayTabChange"] }] } });
4872
4865
 
4873
4866
  /**
4874
4867
  * A component that displays a list of resources from a RESTworld API.
@@ -4905,12 +4898,12 @@ class RESTworldListViewComponent {
4905
4898
  * An array of menu items to be displayed in the create button dropdown menu.
4906
4899
  * That is the menu at the top right of the list.
4907
4900
  */
4908
- createButtonMenu = input(...(ngDevMode ? [undefined, { debugName: "createButtonMenu" }] : []));
4909
- isLoading = computed(() => this.listResource.isLoading() || this.searchTemplate.isLoading(), ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
4910
- filter = model(undefined, ...(ngDevMode ? [{ debugName: "filter", alias: "$filter" }] : [{ alias: "$filter" }]));
4911
- orderby = model(undefined, ...(ngDevMode ? [{ debugName: "orderby", alias: "$orderby" }] : [{ alias: "$orderby" }]));
4912
- skip = model(undefined, ...(ngDevMode ? [{ debugName: "skip", alias: "$skip" }] : [{ alias: "$skip" }]));
4913
- top = model(undefined, ...(ngDevMode ? [{ debugName: "top", alias: "$top" }] : [{ alias: "$top" }]));
4901
+ createButtonMenu = input(...(ngDevMode ? [undefined, { debugName: "createButtonMenu" }] : /* istanbul ignore next */ []));
4902
+ isLoading = computed(() => this.listResource.isLoading() || this.searchTemplate.isLoading(), ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
4903
+ filter = model(undefined, { ...(ngDevMode ? { debugName: "filter" } : /* istanbul ignore next */ {}), alias: "$filter" });
4904
+ orderby = model(undefined, { ...(ngDevMode ? { debugName: "orderby" } : /* istanbul ignore next */ {}), alias: "$orderby" });
4905
+ skip = model(undefined, { ...(ngDevMode ? { debugName: "skip" } : /* istanbul ignore next */ {}), alias: "$skip" });
4906
+ top = model(undefined, { ...(ngDevMode ? { debugName: "top" } : /* istanbul ignore next */ {}), alias: "$top" });
4914
4907
  oDataParameters = linkedSignal(() => {
4915
4908
  const parameters = {
4916
4909
  $filter: this.filter(),
@@ -4919,13 +4912,13 @@ class RESTworldListViewComponent {
4919
4912
  $top: this.top()
4920
4913
  };
4921
4914
  return parameters;
4922
- });
4915
+ }, ...(ngDevMode ? [{ debugName: "oDataParameters" }] : /* istanbul ignore next */ []));
4923
4916
  /**
4924
4917
  * The URL for the edit link of the RESTworld list view.
4925
4918
  * Use it if you want to use a custom edit view instead of the default `RESTworldEditViewComponent`.
4926
4919
  * @param value The new value for the edit link URL.
4927
4920
  */
4928
- editLink = input("/edit", ...(ngDevMode ? [{ debugName: "editLink", transform: (value) => value ?? "/edit" }] : [{ transform: (value) => value ?? "/edit" }]));
4921
+ editLink = input("/edit", { ...(ngDevMode ? { debugName: "editLink" } : /* istanbul ignore next */ {}), transform: (value) => value ?? "/edit" });
4929
4922
  headerMenu = computed(() => [
4930
4923
  {
4931
4924
  icon: "fas fa-plus",
@@ -4933,7 +4926,7 @@ class RESTworldListViewComponent {
4933
4926
  routerLink: [this.editLink(), this.apiName(), this.rel(), this.newHref()],
4934
4927
  items: this.createButtonMenu()
4935
4928
  }
4936
- ], ...(ngDevMode ? [{ debugName: "headerMenu" }] : []));
4929
+ ], ...(ngDevMode ? [{ debugName: "headerMenu" }] : /* istanbul ignore next */ []));
4937
4930
  rowMenu = computed(() => (row, openedByRightClick) => {
4938
4931
  return [
4939
4932
  {
@@ -4951,7 +4944,7 @@ class RESTworldListViewComponent {
4951
4944
  command: () => this.showDeleteConfirmatioModal(row)
4952
4945
  }
4953
4946
  ];
4954
- }, ...(ngDevMode ? [{ debugName: "rowMenu" }] : []));
4947
+ }, ...(ngDevMode ? [{ debugName: "rowMenu" }] : /* istanbul ignore next */ []));
4955
4948
  static _emptylistResource = new PagedListResource({ _embedded: { items: [] }, _links: { self: [] } });
4956
4949
  static _emptySearchTemplate = new Template({ properties: [] });
4957
4950
  constructor(_clients, _confirmationService, _messageService, avatarGenerator, _router, _problemService) {
@@ -4969,14 +4962,14 @@ class RESTworldListViewComponent {
4969
4962
  * Sets the name of the API to load and triggers a reload of the data.
4970
4963
  * @param value The name of the API to load.
4971
4964
  */
4972
- apiName = input(...(ngDevMode ? [undefined, { debugName: "apiName" }] : []));
4965
+ apiName = input(...(ngDevMode ? [undefined, { debugName: "apiName" }] : /* istanbul ignore next */ []));
4973
4966
  /**
4974
4967
  * Sets the rel value for the RESTWorld list view component.
4975
4968
  * @param value The new rel value to set.
4976
4969
  */
4977
- rel = input(...(ngDevMode ? [undefined, { debugName: "rel" }] : []));
4978
- newHref = computed(() => this.listResource.value()?.findLink('new')?.href, ...(ngDevMode ? [{ debugName: "newHref" }] : []));
4979
- items = computed(() => this.listResource.value()?._embedded.items || [], ...(ngDevMode ? [{ debugName: "items" }] : []));
4970
+ rel = input(...(ngDevMode ? [undefined, { debugName: "rel" }] : /* istanbul ignore next */ []));
4971
+ newHref = computed(() => this.listResource.value()?.findLink('new')?.href, ...(ngDevMode ? [{ debugName: "newHref" }] : /* istanbul ignore next */ []));
4972
+ items = computed(() => this.listResource.value()?._embedded.items || [], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
4980
4973
  createNew() {
4981
4974
  return this._router.navigate([this.editLink, this.apiName, this.rel, this.newHref]);
4982
4975
  }
@@ -4992,8 +4985,7 @@ class RESTworldListViewComponent {
4992
4985
  this.listResource.reload();
4993
4986
  }
4994
4987
  }
4995
- listResource = resource({
4996
- params: () => ({ oDataParameters: this.oDataParameters(), rel: this.rel() }),
4988
+ listResource = resource({ ...(ngDevMode ? { debugName: "listResource" } : /* istanbul ignore next */ {}), params: () => ({ oDataParameters: this.oDataParameters(), rel: this.rel() }),
4997
4989
  loader: async ({ params }) => {
4998
4990
  const client = this._client();
4999
4991
  if (params.rel === undefined || client === undefined)
@@ -5003,8 +4995,7 @@ class RESTworldListViewComponent {
5003
4995
  return response.body;
5004
4996
  }
5005
4997
  return RESTworldListViewComponent._emptylistResource;
5006
- },
5007
- });
4998
+ } });
5008
4999
  totalRecords = computed(() => {
5009
5000
  const top = this.top();
5010
5001
  const listResource = this.listResource.value();
@@ -5012,9 +5003,8 @@ class RESTworldListViewComponent {
5012
5003
  const totalPages = listResource?.totalPages ?? 1;
5013
5004
  const totalRecords = totalPages * rowsPerPage;
5014
5005
  return totalRecords;
5015
- }, ...(ngDevMode ? [{ debugName: "totalRecords" }] : []));
5016
- searchTemplate = resource({
5017
- params: () => ({ resource: this.listResource.value() }),
5006
+ }, ...(ngDevMode ? [{ debugName: "totalRecords" }] : /* istanbul ignore next */ []));
5007
+ searchTemplate = resource({ ...(ngDevMode ? { debugName: "searchTemplate" } : /* istanbul ignore next */ {}), params: () => ({ resource: this.listResource.value() }),
5018
5008
  loader: async ({ params }) => {
5019
5009
  const client = this._client();
5020
5010
  if (params.resource === undefined || client === undefined)
@@ -5041,8 +5031,7 @@ class RESTworldListViewComponent {
5041
5031
  this._messageService.add({ severity: 'error', summary: 'Error', detail: 'Error while loading the resources from the API. ' + e, data: e });
5042
5032
  return RESTworldListViewComponent._emptySearchTemplate;
5043
5033
  }
5044
- }
5045
- });
5034
+ } });
5046
5035
  showDeleteConfirmatioModal(resource) {
5047
5036
  this._confirmationService.confirm({
5048
5037
  message: 'Do you really want to delete this resource?',
@@ -5056,14 +5045,14 @@ class RESTworldListViewComponent {
5056
5045
  if (apiName === undefined)
5057
5046
  return undefined;
5058
5047
  return this._clients.getClient(apiName);
5059
- }, ...(ngDevMode ? [{ debugName: "_client" }] : []));
5060
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RESTworldListViewComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.ConfirmationService }, { token: i2$1.MessageService }, { token: AvatarGenerator }, { token: i3$3.Router }, { token: ProblemService }], target: i0.ɵɵFactoryTarget.Component });
5061
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RESTworldListViewComponent, isStandalone: true, selector: "rw-list", inputs: { createButtonMenu: { classPropertyName: "createButtonMenu", publicName: "createButtonMenu", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "$filter", isSignal: true, isRequired: false, transformFunction: null }, orderby: { classPropertyName: "orderby", publicName: "$orderby", isSignal: true, isRequired: false, transformFunction: null }, skip: { classPropertyName: "skip", publicName: "$skip", isSignal: true, isRequired: false, transformFunction: null }, top: { classPropertyName: "top", publicName: "$top", isSignal: true, isRequired: false, transformFunction: null }, editLink: { classPropertyName: "editLink", publicName: "editLink", isSignal: true, isRequired: false, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filter: "$filterChange", orderby: "$orderbyChange", skip: "$skipChange", top: "$topChange" }, ngImport: i0, template: "@let search = searchTemplate.value();\r\n@let api = apiName();\r\n@if (search && api) {\r\n <rw-table\r\n [apiName]=\"api\"\r\n [searchTemplate]=\"search\"\r\n [rows]=\"items()\"\r\n [headerMenu]=\"headerMenu()\"\r\n [rowMenu]=\"rowMenu()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [isLoading]=\"isLoading()\"\r\n >\r\n </rw-table>\r\n}\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: [".p-tooltip{max-width:fit-content}a.p-button{text-decoration:none}\n"], dependencies: [{ kind: "component", type: RestWorldTableComponent, selector: "rw-table", inputs: ["apiName", "cellStyleClass", "editTemplate", "headerMenu", "isLoading", "lazy", "paginator", "oDataParameters", "reflectParametersInUrl", "rowHover", "rowMenu", "rowStyleClass", "rows", "rowsPerPageOptions", "scrollHeight", "scrollable", "searchTemplate", "selectedRows", "selectionMode", "showRowMenuAsColumn", "showRowMenuOnRightClick", "styleClass", "tableStyle", "totalRecords", "urlParameterPrefix"], outputs: ["oDataParametersChange", "selectedRowsChange"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8$1.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position", "draggable"], outputs: ["onHide"] }] });
5048
+ }, ...(ngDevMode ? [{ debugName: "_client" }] : /* istanbul ignore next */ []));
5049
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RESTworldListViewComponent, deps: [{ token: RestWorldClientCollection }, { token: i2$1.ConfirmationService }, { token: i2$1.MessageService }, { token: AvatarGenerator }, { token: i3$3.Router }, { token: ProblemService }], target: i0.ɵɵFactoryTarget.Component });
5050
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RESTworldListViewComponent, isStandalone: true, selector: "rw-list", inputs: { createButtonMenu: { classPropertyName: "createButtonMenu", publicName: "createButtonMenu", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "$filter", isSignal: true, isRequired: false, transformFunction: null }, orderby: { classPropertyName: "orderby", publicName: "$orderby", isSignal: true, isRequired: false, transformFunction: null }, skip: { classPropertyName: "skip", publicName: "$skip", isSignal: true, isRequired: false, transformFunction: null }, top: { classPropertyName: "top", publicName: "$top", isSignal: true, isRequired: false, transformFunction: null }, editLink: { classPropertyName: "editLink", publicName: "editLink", isSignal: true, isRequired: false, transformFunction: null }, apiName: { classPropertyName: "apiName", publicName: "apiName", isSignal: true, isRequired: false, transformFunction: null }, rel: { classPropertyName: "rel", publicName: "rel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filter: "$filterChange", orderby: "$orderbyChange", skip: "$skipChange", top: "$topChange" }, ngImport: i0, template: "@let search = searchTemplate.value();\r\n@let api = apiName();\r\n@if (search && api) {\r\n <rw-table\r\n [apiName]=\"api\"\r\n [searchTemplate]=\"search\"\r\n [rows]=\"items()\"\r\n [headerMenu]=\"headerMenu()\"\r\n [rowMenu]=\"rowMenu()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [isLoading]=\"isLoading()\"\r\n >\r\n </rw-table>\r\n}\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: [".p-tooltip{max-width:fit-content}a.p-button{text-decoration:none}\n"], dependencies: [{ kind: "component", type: RestWorldTableComponent, selector: "rw-table", inputs: ["apiName", "cellStyleClass", "editTemplate", "headerMenu", "isLoading", "lazy", "paginator", "oDataParameters", "reflectParametersInUrl", "rowHover", "rowMenu", "rowStyleClass", "rows", "rowsPerPageOptions", "scrollHeight", "scrollable", "searchTemplate", "selectedRows", "selectionMode", "showRowMenuAsColumn", "showRowMenuOnRightClick", "styleClass", "tableStyle", "totalRecords", "urlParameterPrefix"], outputs: ["oDataParametersChange", "selectedRowsChange"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8$1.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "modal", "visible", "position", "draggable"], outputs: ["onHide"] }] });
5062
5051
  }
5063
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RESTworldListViewComponent, decorators: [{
5052
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RESTworldListViewComponent, decorators: [{
5064
5053
  type: Component,
5065
5054
  args: [{ selector: 'rw-list', standalone: true, imports: [RestWorldTableComponent, ConfirmDialogModule], template: "@let search = searchTemplate.value();\r\n@let api = apiName();\r\n@if (search && api) {\r\n <rw-table\r\n [apiName]=\"api\"\r\n [searchTemplate]=\"search\"\r\n [rows]=\"items()\"\r\n [headerMenu]=\"headerMenu()\"\r\n [rowMenu]=\"rowMenu()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [isLoading]=\"isLoading()\"\r\n >\r\n </rw-table>\r\n}\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: [".p-tooltip{max-width:fit-content}a.p-button{text-decoration:none}\n"] }]
5066
- }], ctorParameters: () => [{ type: RestWorldClientCollection }, { type: i2$1.ConfirmationService }, { type: i2$1.MessageService }, { type: AvatarGenerator }, { type: i3$3.Router }, { type: ProblemService }] });
5055
+ }], ctorParameters: () => [{ type: RestWorldClientCollection }, { type: i2$1.ConfirmationService }, { type: i2$1.MessageService }, { type: AvatarGenerator }, { type: i3$3.Router }, { type: ProblemService }], propDecorators: { createButtonMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "createButtonMenu", required: false }] }], filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "$filter", required: false }] }, { type: i0.Output, args: ["$filterChange"] }], orderby: [{ type: i0.Input, args: [{ isSignal: true, alias: "$orderby", required: false }] }, { type: i0.Output, args: ["$orderbyChange"] }], skip: [{ type: i0.Input, args: [{ isSignal: true, alias: "$skip", required: false }] }, { type: i0.Output, args: ["$skipChange"] }], top: [{ type: i0.Input, args: [{ isSignal: true, alias: "$top", required: false }] }, { type: i0.Output, args: ["$topChange"] }], editLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "editLink", required: false }] }], apiName: [{ type: i0.Input, args: [{ isSignal: true, alias: "apiName", required: false }] }], rel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rel", required: false }] }] } });
5067
5056
 
5068
5057
  /**
5069
5058
  * This is an HttpInterceptor that ensures all HttpClient requests
@@ -5180,10 +5169,10 @@ class OpenTelemetryHttpInterceptor {
5180
5169
  // No active context, just proceed with the request without tracing
5181
5170
  return next.handle(request);
5182
5171
  }
5183
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OpenTelemetryHttpInterceptor, deps: [{ token: OpenTelemetryService }], target: i0.ɵɵFactoryTarget.Injectable });
5184
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OpenTelemetryHttpInterceptor });
5172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OpenTelemetryHttpInterceptor, deps: [{ token: OpenTelemetryService }], target: i0.ɵɵFactoryTarget.Injectable });
5173
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OpenTelemetryHttpInterceptor });
5185
5174
  }
5186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: OpenTelemetryHttpInterceptor, decorators: [{
5175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: OpenTelemetryHttpInterceptor, decorators: [{
5187
5176
  type: Injectable
5188
5177
  }], ctorParameters: () => [{ type: OpenTelemetryService }] });
5189
5178
  /**