@ngstarter-ui/components 21.0.41 → 21.0.43

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.
Files changed (42) hide show
  1. package/README.md +0 -1
  2. package/ai/component-registry.json +67 -111
  3. package/fesm2022/ngstarter-ui-components-country-select.mjs +59 -16
  4. package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
  5. package/fesm2022/ngstarter-ui-components-form-builder.mjs +432 -34
  6. package/fesm2022/ngstarter-ui-components-form-builder.mjs.map +1 -1
  7. package/fesm2022/ngstarter-ui-components-radio.mjs +8 -5
  8. package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -1
  9. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +12 -1
  10. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -1
  11. package/package.json +1 -5
  12. package/types/ngstarter-ui-components-country-select.d.ts +20 -9
  13. package/types/ngstarter-ui-components-form-builder.d.ts +63 -5
  14. package/types/ngstarter-ui-components-radio.d.ts +4 -1
  15. package/types/ngstarter-ui-components-slide-toggle.d.ts +6 -1
  16. package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs +0 -124
  17. package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs.map +0 -1
  18. package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs +0 -22
  19. package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs.map +0 -1
  20. package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs +0 -44
  21. package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs.map +0 -1
  22. package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs +0 -17
  23. package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs.map +0 -1
  24. package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs +0 -17
  25. package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs.map +0 -1
  26. package/fesm2022/ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs +0 -35
  27. package/fesm2022/ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs.map +0 -1
  28. package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs +0 -38
  29. package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs.map +0 -1
  30. package/fesm2022/ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs +0 -39
  31. package/fesm2022/ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs.map +0 -1
  32. package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs +0 -24
  33. package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs.map +0 -1
  34. package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs +0 -37
  35. package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs.map +0 -1
  36. package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs +0 -35
  37. package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs.map +0 -1
  38. package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs +0 -22
  39. package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs.map +0 -1
  40. package/fesm2022/ngstarter-ui-components-form-renderer.mjs +0 -317
  41. package/fesm2022/ngstarter-ui-components-form-renderer.mjs.map +0 -1
  42. package/types/ngstarter-ui-components-form-renderer.d.ts +0 -121
@@ -6,6 +6,7 @@ class RadioGroup {
6
6
  _radios = contentChildren(forwardRef(() => RadioButton), { ...(ngDevMode ? { debugName: "_radios" } : /* istanbul ignore next */ {}), descendants: true });
7
7
  disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
8
8
  name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
9
+ orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
9
10
  value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
10
11
  change = output();
11
12
  constructor() {
@@ -62,17 +63,17 @@ class RadioGroup {
62
63
  }
63
64
  }
64
65
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: RadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: RadioGroup, isStandalone: true, selector: "ngs-radio-group", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", value: "valueChange", change: "change" }, host: { properties: { "attr.role": "\"radiogroup\"", "attr.aria-disabled": "disabled()" }, classAttribute: "ngs-radio-group" }, providers: [
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: RadioGroup, isStandalone: true, selector: "ngs-radio-group", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", value: "valueChange", change: "change" }, host: { properties: { "attr.role": "\"radiogroup\"", "attr.aria-disabled": "disabled()", "class.ngs-radio-group-horizontal": "orientation() === \"horizontal\"", "class.ngs-radio-group-vertical": "orientation() === \"vertical\"" }, classAttribute: "ngs-radio-group" }, providers: [
66
67
  {
67
68
  provide: NG_VALUE_ACCESSOR,
68
69
  useExisting: forwardRef(() => RadioGroup),
69
70
  multi: true
70
71
  }
71
- ], queries: [{ propertyName: "_radios", predicate: i0.forwardRef(() => RadioButton), descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content />\n", styles: [":host{display:flex;flex-wrap:wrap;gap:1rem}:host[aria-disabled=true]{pointer-events:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ ], queries: [{ propertyName: "_radios", predicate: i0.forwardRef(() => RadioButton), descendants: true, isSignal: true }], exportAs: ["ngsRadioGroup"], ngImport: i0, template: "<ng-content />\n", styles: [":host{--ngs-radio-group-gap: calc(var(--spacing, .25rem) * 4);display:flex;flex-wrap:wrap;gap:var(--ngs-radio-group-gap)}:host.ngs-radio-group-horizontal{flex-direction:row}:host.ngs-radio-group-vertical{flex-direction:column;align-items:flex-start;flex-wrap:nowrap}:host[aria-disabled=true]{pointer-events:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
73
  }
73
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: RadioGroup, decorators: [{
74
75
  type: Component,
75
- args: [{ selector: 'ngs-radio-group', providers: [
76
+ args: [{ selector: 'ngs-radio-group', exportAs: 'ngsRadioGroup', providers: [
76
77
  {
77
78
  provide: NG_VALUE_ACCESSOR,
78
79
  useExisting: forwardRef(() => RadioGroup),
@@ -82,8 +83,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
82
83
  'class': 'ngs-radio-group',
83
84
  '[attr.role]': '"radiogroup"',
84
85
  '[attr.aria-disabled]': 'disabled()',
85
- }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{display:flex;flex-wrap:wrap;gap:1rem}:host[aria-disabled=true]{pointer-events:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
86
- }], ctorParameters: () => [], propDecorators: { _radios: [{ type: i0.ContentChildren, args: [forwardRef(() => RadioButton), { ...{ descendants: true }, isSignal: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], change: [{ type: i0.Output, args: ["change"] }] } });
86
+ '[class.ngs-radio-group-horizontal]': 'orientation() === "horizontal"',
87
+ '[class.ngs-radio-group-vertical]': 'orientation() === "vertical"',
88
+ }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{--ngs-radio-group-gap: calc(var(--spacing, .25rem) * 4);display:flex;flex-wrap:wrap;gap:var(--ngs-radio-group-gap)}:host.ngs-radio-group-horizontal{flex-direction:row}:host.ngs-radio-group-vertical{flex-direction:column;align-items:flex-start;flex-wrap:nowrap}:host[aria-disabled=true]{pointer-events:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
89
+ }], ctorParameters: () => [], propDecorators: { _radios: [{ type: i0.ContentChildren, args: [forwardRef(() => RadioButton), { ...{ descendants: true }, isSignal: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], change: [{ type: i0.Output, args: ["change"] }] } });
87
90
 
88
91
  let nextId = 0;
89
92
  class RadioButton {
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-radio.mjs","sources":["../../../projects/components/radio/src/radio-group/radio-group.ts","../../../projects/components/radio/src/radio-group/radio-group.html","../../../projects/components/radio/src/radio-button/radio-button.ts","../../../projects/components/radio/src/radio-button/radio-button.html","../../../projects/components/radio/ngstarter-ui-components-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n output,\n booleanAttribute,\n model,\n effect,\n contentChildren\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioButton } from '../radio-button/radio-button';\n\n@Component({\n selector: 'ngs-radio-group',\n templateUrl: './radio-group.html',\n styleUrl: './radio-group.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroup),\n multi: true\n }\n ],\n host: {\n 'class': 'ngs-radio-group',\n '[attr.role]': '\"radiogroup\"',\n '[attr.aria-disabled]': 'disabled()',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroup implements ControlValueAccessor, AfterContentInit {\n readonly _radios = contentChildren(forwardRef(() => RadioButton), { descendants: true });\n\n disabled = model(false);\n\n name = input<string>();\n value = model<any>();\n\n readonly change = output<any>();\n\n constructor() {\n effect(() => {\n this._markRadiosForCheck();\n });\n effect(() => {\n this._updateSelectedRadioFromValue();\n this._onChange(this.value());\n });\n }\n\n _onChange: (value: any) => void = () => {};\n _onTouched: () => void = () => {};\n\n ngAfterContentInit() {\n this._updateSelectedRadioFromValue();\n }\n\n writeValue(value: any): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n _emitChangeEvent(value: any): void {\n this._onChange(value);\n this.change.emit({ source: this, value });\n }\n\n private _updateSelectedRadioFromValue() {\n const _radios = this._radios();\n if (_radios) {\n _radios.forEach(radio => {\n radio.checked.set(this.value() === radio.value());\n });\n }\n }\n\n private _markRadiosForCheck() {\n const _radios = this._radios();\n if (_radios) {\n _radios.forEach(radio => radio._markForCheck());\n }\n }\n\n _onRadioClick(radio: RadioButton) {\n if (this.disabled() || radio.disabled()) {\n return;\n }\n\n if (this.value() !== radio.value()) {\n this.value.set(radio.value());\n this._emitChangeEvent(this.value());\n }\n }\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n input,\n OnInit,\n Optional,\n output,\n booleanAttribute,\n model,\n computed\n} from '@angular/core';\nimport { RadioGroup } from '../radio-group/radio-group';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-radio-button',\n templateUrl: './radio-button.html',\n styleUrl: './radio-button.scss',\n host: {\n '[class.ngs-radio-button-checked]': 'checked()',\n '[class.ngs-radio-button-disabled]': 'disabled()',\n '[attr.id]': 'id()',\n 'class': 'ngs-radio-button',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButton implements OnInit {\n id = input(`ngs-radio-button-${nextId++}`);\n value = input<any>();\n name = input<string>();\n checked = model(false);\n disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute\n });\n\n disabled = computed(() => {\n return this.disabledInput() || (this.radioGroup && this.radioGroup.disabled());\n });\n\n readonly change = output<any>();\n\n constructor(\n @Optional() @Inject(forwardRef(() => RadioGroup)) public radioGroup: RadioGroup,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n if (this.radioGroup && this.radioGroup.value() === this.value()) {\n this.checked.set(true);\n }\n }\n\n _onInputClick(event: Event) {\n event.stopPropagation();\n if (this.radioGroup) {\n this.radioGroup._onRadioClick(this);\n } else {\n this.checked.set(true);\n this.change.emit({ source: this, value: this.value() });\n }\n }\n\n _markForCheck() {\n this._changeDetectorRef.markForCheck();\n }\n}\n","\n<label class=\"ngs-radio-button-label\" [attr.for]=\"id() + '-input'\">\n <span class=\"ngs-radio-button-container\">\n <input\n type=\"radio\"\n class=\"ngs-radio-button-input\"\n [id]=\"id() + '-input'\"\n [name]=\"name() || (radioGroup ? radioGroup.name() : null)\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n (click)=\"_onInputClick($event)\"\n >\n <span class=\"ngs-radio-button-outer-circle\"></span>\n <span class=\"ngs-radio-button-inner-circle\"></span>\n </span>\n <span class=\"ngs-radio-button-label-content\">\n <ng-content />\n </span>\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-radio.mjs","sources":["../../../projects/components/radio/src/radio-group/radio-group.ts","../../../projects/components/radio/src/radio-group/radio-group.html","../../../projects/components/radio/src/radio-button/radio-button.ts","../../../projects/components/radio/src/radio-button/radio-button.html","../../../projects/components/radio/ngstarter-ui-components-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n output,\n booleanAttribute,\n model,\n effect,\n contentChildren\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioButton } from '../radio-button/radio-button';\n\nexport type RadioGroupOrientation = 'horizontal' | 'vertical';\n\n@Component({\n selector: 'ngs-radio-group',\n exportAs: 'ngsRadioGroup',\n templateUrl: './radio-group.html',\n styleUrl: './radio-group.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroup),\n multi: true\n }\n ],\n host: {\n 'class': 'ngs-radio-group',\n '[attr.role]': '\"radiogroup\"',\n '[attr.aria-disabled]': 'disabled()',\n '[class.ngs-radio-group-horizontal]': 'orientation() === \"horizontal\"',\n '[class.ngs-radio-group-vertical]': 'orientation() === \"vertical\"',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroup implements ControlValueAccessor, AfterContentInit {\n readonly _radios = contentChildren(forwardRef(() => RadioButton), { descendants: true });\n\n disabled = model(false);\n\n name = input<string>();\n orientation = input<RadioGroupOrientation>('horizontal');\n value = model<any>();\n\n readonly change = output<any>();\n\n constructor() {\n effect(() => {\n this._markRadiosForCheck();\n });\n effect(() => {\n this._updateSelectedRadioFromValue();\n this._onChange(this.value());\n });\n }\n\n _onChange: (value: any) => void = () => {};\n _onTouched: () => void = () => {};\n\n ngAfterContentInit() {\n this._updateSelectedRadioFromValue();\n }\n\n writeValue(value: any): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n _emitChangeEvent(value: any): void {\n this._onChange(value);\n this.change.emit({ source: this, value });\n }\n\n private _updateSelectedRadioFromValue() {\n const _radios = this._radios();\n if (_radios) {\n _radios.forEach(radio => {\n radio.checked.set(this.value() === radio.value());\n });\n }\n }\n\n private _markRadiosForCheck() {\n const _radios = this._radios();\n if (_radios) {\n _radios.forEach(radio => radio._markForCheck());\n }\n }\n\n _onRadioClick(radio: RadioButton) {\n if (this.disabled() || radio.disabled()) {\n return;\n }\n\n if (this.value() !== radio.value()) {\n this.value.set(radio.value());\n this._emitChangeEvent(this.value());\n }\n }\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n input,\n OnInit,\n Optional,\n output,\n booleanAttribute,\n model,\n computed\n} from '@angular/core';\nimport { RadioGroup } from '../radio-group/radio-group';\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-radio-button',\n templateUrl: './radio-button.html',\n styleUrl: './radio-button.scss',\n host: {\n '[class.ngs-radio-button-checked]': 'checked()',\n '[class.ngs-radio-button-disabled]': 'disabled()',\n '[attr.id]': 'id()',\n 'class': 'ngs-radio-button',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButton implements OnInit {\n id = input(`ngs-radio-button-${nextId++}`);\n value = input<any>();\n name = input<string>();\n checked = model(false);\n disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute\n });\n\n disabled = computed(() => {\n return this.disabledInput() || (this.radioGroup && this.radioGroup.disabled());\n });\n\n readonly change = output<any>();\n\n constructor(\n @Optional() @Inject(forwardRef(() => RadioGroup)) public radioGroup: RadioGroup,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n if (this.radioGroup && this.radioGroup.value() === this.value()) {\n this.checked.set(true);\n }\n }\n\n _onInputClick(event: Event) {\n event.stopPropagation();\n if (this.radioGroup) {\n this.radioGroup._onRadioClick(this);\n } else {\n this.checked.set(true);\n this.change.emit({ source: this, value: this.value() });\n }\n }\n\n _markForCheck() {\n this._changeDetectorRef.markForCheck();\n }\n}\n","\n<label class=\"ngs-radio-button-label\" [attr.for]=\"id() + '-input'\">\n <span class=\"ngs-radio-button-container\">\n <input\n type=\"radio\"\n class=\"ngs-radio-button-input\"\n [id]=\"id() + '-input'\"\n [name]=\"name() || (radioGroup ? radioGroup.name() : null)\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n (click)=\"_onInputClick($event)\"\n >\n <span class=\"ngs-radio-button-outer-circle\"></span>\n <span class=\"ngs-radio-button-inner-circle\"></span>\n </span>\n <span class=\"ngs-radio-button-label-content\">\n <ng-content />\n </span>\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -85,9 +85,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
85
85
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<label class=\"ngs-slide-toggle-label\" [attr.for]=\"id() + '-input'\">\n <div class=\"ngs-slide-toggle-bar\">\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"ngs-slide-toggle-input\"\n [id]=\"id() + '-input'\"\n [name]=\"name()\"\n [tabIndex]=\"tabIndex()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n (change)=\"_onInputClick($event)\"\n (blur)=\"_onInputBlur()\">\n <div class=\"ngs-slide-toggle-thumb-container\">\n <div class=\"ngs-slide-toggle-thumb\"></div>\n </div>\n </div>\n <span class=\"ngs-slide-toggle-content\" [id]=\"id() + '-content'\">\n <ng-content/>\n </span>\n</label>\n", styles: [":host{--ngs-slide-toggle-width: 44px;--ngs-slide-toggle-height: 24px;--ngs-slide-toggle-thumb-size: 20px;--ngs-slide-toggle-bar-color: var(--ngs-color-surface-container-highest);--ngs-slide-toggle-bar-checked-color: var(--ngs-color-primary);--ngs-slide-toggle-thumb-color: var(--ngs-color-surface);--ngs-slide-toggle-thumb-checked-color: var(--ngs-color-on-primary);--ngs-slide-toggle-transition-duration: .2s;display:inline-block;cursor:pointer;outline:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}:host.ngs-slide-toggle-disabled{cursor:default;opacity:.5;pointer-events:none}:host.ngs-slide-toggle-label-before .ngs-slide-toggle-label{flex-direction:row-reverse}:host.ngs-slide-toggle-label-before .ngs-slide-toggle-content{margin-left:0;margin-right:8px}:host .ngs-slide-toggle-label{display:flex;align-items:center;cursor:inherit}:host .ngs-slide-toggle-bar{position:relative;width:var(--ngs-slide-toggle-width);height:var(--ngs-slide-toggle-height);background:var(--ngs-slide-toggle-bar-color);border-radius:calc(var(--ngs-slide-toggle-height) / 2);transition:background-color var(--ngs-slide-toggle-transition-duration) ease;flex-shrink:0}:host.ngs-slide-toggle-checked .ngs-slide-toggle-bar{background:var(--ngs-slide-toggle-bar-checked-color)}:host .ngs-slide-toggle-input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit;z-index:1}:host .ngs-slide-toggle-thumb-container{position:absolute;top:50%;left:2px;transform:translateY(-50%);width:var(--ngs-slide-toggle-thumb-size);height:var(--ngs-slide-toggle-thumb-size);transition:left var(--ngs-slide-toggle-transition-duration) ease}:host.ngs-slide-toggle-checked .ngs-slide-toggle-thumb-container{left:calc(100% - var(--ngs-slide-toggle-thumb-size) - 2px)}:host .ngs-slide-toggle-thumb{width:100%;height:100%;background:var(--ngs-slide-toggle-thumb-color);border-radius:50%;box-shadow:0 2px 4px #0003}:host.ngs-slide-toggle-checked .ngs-slide-toggle-thumb{background:var(--ngs-slide-toggle-thumb-checked-color)}:host .ngs-slide-toggle-content{margin-left:8px;display:inline-block}:host .ngs-slide-toggle-content:empty{display:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
86
86
  }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], disableRipple: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableRipple", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], hideIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideIcon", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], change: [{ type: i0.Output, args: ["change"] }], toggleChange: [{ type: i0.Output, args: ["toggleChange"] }] } });
87
87
 
88
+ class SlideToggleGroup {
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SlideToggleGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: SlideToggleGroup, isStandalone: true, selector: "ngs-slide-toggle-group", host: { classAttribute: "ngs-slide-toggle-group" }, exportAs: ["ngsSlideToggleGroup"], ngImport: i0, template: "<ng-content select=\"ngs-slide-toggle\"/>\n", styles: [":host{--ngs-slide-toggle-group-gap: calc(var(--spacing, .25rem) * 5);display:flex;width:100%;flex-direction:column;gap:var(--ngs-slide-toggle-group-gap)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
+ }
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SlideToggleGroup, decorators: [{
93
+ type: Component,
94
+ args: [{ selector: 'ngs-slide-toggle-group', exportAs: 'ngsSlideToggleGroup', standalone: true, imports: [], host: {
95
+ 'class': 'ngs-slide-toggle-group'
96
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"ngs-slide-toggle\"/>\n", styles: [":host{--ngs-slide-toggle-group-gap: calc(var(--spacing, .25rem) * 5);display:flex;width:100%;flex-direction:column;gap:var(--ngs-slide-toggle-group-gap)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
97
+ }] });
98
+
88
99
  /**
89
100
  * Generated bundle index. Do not edit.
90
101
  */
91
102
 
92
- export { SlideToggle, SlideToggleChange };
103
+ export { SlideToggle, SlideToggleChange, SlideToggleGroup };
93
104
  //# sourceMappingURL=ngstarter-ui-components-slide-toggle.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngstarter-ui-components-slide-toggle.mjs","sources":["../../../projects/components/slide-toggle/src/slide-toggle/slide-toggle.ts","../../../projects/components/slide-toggle/src/slide-toggle/slide-toggle.html","../../../projects/components/slide-toggle/ngstarter-ui-components-slide-toggle.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n model,\n numberAttribute,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport class SlideToggleChange {\n constructor(\n public source: SlideToggle,\n public checked: boolean\n ) {\n }\n}\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-slide-toggle',\n exportAs: 'ngsSlideToggle',\n standalone: true,\n imports: [],\n templateUrl: './slide-toggle.html',\n styleUrl: './slide-toggle.scss',\n host: {\n 'class': 'ngs-slide-toggle',\n '[class.ngs-slide-toggle-checked]': 'checked()',\n '[class.ngs-slide-toggle-disabled]': 'disabled()',\n '[class.ngs-slide-toggle-label-before]': 'labelPosition() === \"before\"',\n '[attr.id]': 'id()',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SlideToggle),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SlideToggle implements ControlValueAccessor {\n private _uniqueId = `ngs-slide-toggle-${nextId++}`;\n\n id = input<string>(this._uniqueId);\n name = input<string | null>(null);\n labelPosition = input<'before' | 'after'>('after');\n ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n required = input(false, { transform: booleanAttribute });\n disabled = model(false);\n disableRipple = input(false, { transform: booleanAttribute });\n tabIndex = input(0, { transform: numberAttribute });\n hideIcon = input(false, { transform: booleanAttribute });\n color = input<string | undefined>();\n\n checked = model(false);\n\n change = output<SlideToggleChange>();\n toggleChange = output<void>();\n\n private _onChange = (_: any) => {};\n private _onTouched = () => {};\n\n constructor() {}\n\n writeValue(value: any): void {\n this.checked.set(!!value);\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n toggle(): void {\n this.checked.update(checked => !checked);\n this._onChange(this.checked());\n this._emitChangeEvent();\n }\n\n _onInputClick(event: Event): void {\n event.stopPropagation();\n this.toggle();\n this.toggleChange.emit();\n }\n\n private _emitChangeEvent(): void {\n this.change.emit(new SlideToggleChange(this, this.checked()));\n }\n\n _onInputBlur(): void {\n this._onTouched();\n }\n}\n","<label class=\"ngs-slide-toggle-label\" [attr.for]=\"id() + '-input'\">\n <div class=\"ngs-slide-toggle-bar\">\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"ngs-slide-toggle-input\"\n [id]=\"id() + '-input'\"\n [name]=\"name()\"\n [tabIndex]=\"tabIndex()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n (change)=\"_onInputClick($event)\"\n (blur)=\"_onInputBlur()\">\n <div class=\"ngs-slide-toggle-thumb-container\">\n <div class=\"ngs-slide-toggle-thumb\"></div>\n </div>\n </div>\n <span class=\"ngs-slide-toggle-content\" [id]=\"id() + '-content'\">\n <ng-content/>\n </span>\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngstarter-ui-components-slide-toggle.mjs","sources":["../../../projects/components/slide-toggle/src/slide-toggle/slide-toggle.ts","../../../projects/components/slide-toggle/src/slide-toggle/slide-toggle.html","../../../projects/components/slide-toggle/src/slide-toggle-group/slide-toggle-group.ts","../../../projects/components/slide-toggle/src/slide-toggle-group/slide-toggle-group.html","../../../projects/components/slide-toggle/ngstarter-ui-components-slide-toggle.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n model,\n numberAttribute,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport class SlideToggleChange {\n constructor(\n public source: SlideToggle,\n public checked: boolean\n ) {\n }\n}\n\nlet nextId = 0;\n\n@Component({\n selector: 'ngs-slide-toggle',\n exportAs: 'ngsSlideToggle',\n standalone: true,\n imports: [],\n templateUrl: './slide-toggle.html',\n styleUrl: './slide-toggle.scss',\n host: {\n 'class': 'ngs-slide-toggle',\n '[class.ngs-slide-toggle-checked]': 'checked()',\n '[class.ngs-slide-toggle-disabled]': 'disabled()',\n '[class.ngs-slide-toggle-label-before]': 'labelPosition() === \"before\"',\n '[attr.id]': 'id()',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SlideToggle),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SlideToggle implements ControlValueAccessor {\n private _uniqueId = `ngs-slide-toggle-${nextId++}`;\n\n id = input<string>(this._uniqueId);\n name = input<string | null>(null);\n labelPosition = input<'before' | 'after'>('after');\n ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n required = input(false, { transform: booleanAttribute });\n disabled = model(false);\n disableRipple = input(false, { transform: booleanAttribute });\n tabIndex = input(0, { transform: numberAttribute });\n hideIcon = input(false, { transform: booleanAttribute });\n color = input<string | undefined>();\n\n checked = model(false);\n\n change = output<SlideToggleChange>();\n toggleChange = output<void>();\n\n private _onChange = (_: any) => {};\n private _onTouched = () => {};\n\n constructor() {}\n\n writeValue(value: any): void {\n this.checked.set(!!value);\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n toggle(): void {\n this.checked.update(checked => !checked);\n this._onChange(this.checked());\n this._emitChangeEvent();\n }\n\n _onInputClick(event: Event): void {\n event.stopPropagation();\n this.toggle();\n this.toggleChange.emit();\n }\n\n private _emitChangeEvent(): void {\n this.change.emit(new SlideToggleChange(this, this.checked()));\n }\n\n _onInputBlur(): void {\n this._onTouched();\n }\n}\n","<label class=\"ngs-slide-toggle-label\" [attr.for]=\"id() + '-input'\">\n <div class=\"ngs-slide-toggle-bar\">\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"ngs-slide-toggle-input\"\n [id]=\"id() + '-input'\"\n [name]=\"name()\"\n [tabIndex]=\"tabIndex()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n (change)=\"_onInputClick($event)\"\n (blur)=\"_onInputBlur()\">\n <div class=\"ngs-slide-toggle-thumb-container\">\n <div class=\"ngs-slide-toggle-thumb\"></div>\n </div>\n </div>\n <span class=\"ngs-slide-toggle-content\" [id]=\"id() + '-content'\">\n <ng-content/>\n </span>\n</label>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-slide-toggle-group',\n exportAs: 'ngsSlideToggleGroup',\n standalone: true,\n imports: [],\n templateUrl: './slide-toggle-group.html',\n styleUrl: './slide-toggle-group.scss',\n host: {\n 'class': 'ngs-slide-toggle-group'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SlideToggleGroup {}\n","<ng-content select=\"ngs-slide-toggle\"/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ngstarter-ui/components",
3
3
  "description": "NgStarter - AI-friendly Enterprise Angular UI Components and Admin Panel",
4
- "version": "21.0.41",
4
+ "version": "21.0.43",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/elementarlabsdev/ngstarter.git"
@@ -297,10 +297,6 @@
297
297
  "types": "./types/ngstarter-ui-components-form-field.d.ts",
298
298
  "default": "./fesm2022/ngstarter-ui-components-form-field.mjs"
299
299
  },
300
- "./form-renderer": {
301
- "types": "./types/ngstarter-ui-components-form-renderer.d.ts",
302
- "default": "./fesm2022/ngstarter-ui-components-form-renderer.mjs"
303
- },
304
300
  "./gauge": {
305
301
  "types": "./types/ngstarter-ui-components-gauge.d.ts",
306
302
  "default": "./fesm2022/ngstarter-ui-components-gauge.mjs"
@@ -11,28 +11,37 @@ interface Country {
11
11
  flag?: string;
12
12
  }
13
13
 
14
- declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor, FormFieldControl<string | null> {
14
+ type CountrySelectValue = string | string[] | null;
15
+ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor, FormFieldControl<CountrySelectValue> {
15
16
  private static readonly COUNTRY_RENDER_CHUNK_SIZE;
16
17
  private static readonly COUNTRY_RENDER_CHUNK_DELAY;
17
18
  private _elementRef;
18
19
  private _renderer;
19
20
  private _formField;
20
21
  static nextId: number;
21
- id: string;
22
22
  readonly stateChanges: Subject<void>;
23
23
  protected searchTerm: _angular_core.ModelSignal<string>;
24
24
  protected visibleCountryCount: _angular_core.WritableSignal<number>;
25
- private readonly _valueSignal;
25
+ readonly valueSignal: _angular_core.ModelSignal<CountrySelectValue>;
26
26
  private readonly _focusedSignal;
27
27
  private _touched;
28
+ readonly idSignal: _angular_core.InputSignal<string>;
28
29
  placeholderInputSignal: _angular_core.InputSignal<string>;
29
30
  isRequiredSignal: _angular_core.ModelSignal<boolean>;
30
31
  isDisabledSignal: _angular_core.ModelSignal<boolean>;
32
+ readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
33
+ readonly hideCheckIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
34
+ readonly clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
35
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
36
+ readonly tabIndex: _angular_core.InputSignalWithTransform<number, any>;
37
+ readonly ariaDescribedby: _angular_core.InputSignal<string | null>;
31
38
  readonly showCountryCode: _angular_core.InputSignalWithTransform<boolean, unknown>;
32
39
  readonly internalCountries: Country[];
33
40
  readonly filteredCountries: _angular_core.Signal<Country[]>;
34
41
  readonly visibleCountries: _angular_core.Signal<Country[]>;
35
- readonly selectedCountryDisplay: _angular_core.Signal<Country | undefined>;
42
+ readonly selectedCountryDisplays: _angular_core.Signal<Country[]>;
43
+ readonly selectedCountryDisplay: _angular_core.Signal<Country>;
44
+ readonly selectedCountriesText: _angular_core.Signal<string>;
36
45
  readonly ngsSelect: _angular_core.Signal<Select>;
37
46
  readonly searchInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
38
47
  private readonly fm;
@@ -41,6 +50,7 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
41
50
  private readonly destroyRef;
42
51
  readonly opened: _angular_core.OutputEmitterRef<void>;
43
52
  readonly closed: _angular_core.OutputEmitterRef<void>;
53
+ readonly selectionChange: _angular_core.OutputEmitterRef<SelectChange>;
44
54
  private onChangeFn;
45
55
  private onTouchedFn;
46
56
  private _countryRenderTimeout;
@@ -48,8 +58,9 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
48
58
  constructor();
49
59
  ngOnInit(): void;
50
60
  ngOnDestroy(): void;
51
- get value(): string | null;
52
- set value(val: string | null);
61
+ get id(): string;
62
+ get value(): CountrySelectValue;
63
+ set value(val: CountrySelectValue);
53
64
  get focused(): boolean;
54
65
  onFocusIn(): void;
55
66
  onFocusOut(event: any): void;
@@ -65,7 +76,7 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
65
76
  get touched(): boolean;
66
77
  setDescribedByIds(ids: string[]): void;
67
78
  onContainerClick(): void;
68
- writeValue(value: string | null): void;
79
+ writeValue(value: CountrySelectValue): void;
69
80
  registerOnChange(fn: any): void;
70
81
  registerOnTouched(fn: any): void;
71
82
  setDisabledState(isDisabled: boolean): void;
@@ -81,10 +92,10 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
81
92
  private clearCountryRenderTimeout;
82
93
  private clearCountrySearchFocusTimeout;
83
94
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CountrySelect, never>;
84
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CountrySelect, "ngs-country-select", ["ngsCountrySelect"], { "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "placeholderInputSignal": { "alias": "placeholder"; "required": false; "isSignal": true; }; "isRequiredSignal": { "alias": "required"; "required": false; "isSignal": true; }; "isDisabledSignal": { "alias": "disabled"; "required": false; "isSignal": true; }; "showCountryCode": { "alias": "showCountryCode"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; "isRequiredSignal": "requiredChange"; "isDisabledSignal": "disabledChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
95
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CountrySelect, "ngs-country-select", ["ngsCountrySelect"], { "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "valueSignal": { "alias": "value"; "required": false; "isSignal": true; }; "idSignal": { "alias": "id"; "required": false; "isSignal": true; }; "placeholderInputSignal": { "alias": "placeholder"; "required": false; "isSignal": true; }; "isRequiredSignal": { "alias": "required"; "required": false; "isSignal": true; }; "isDisabledSignal": { "alias": "disabled"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "hideCheckIcon": { "alias": "hideCheckIcon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "showCountryCode": { "alias": "showCountryCode"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; "valueSignal": "valueChange"; "isRequiredSignal": "requiredChange"; "isDisabledSignal": "disabledChange"; "opened": "opened"; "closed": "closed"; "selectionChange": "selectionChange"; }, never, never, true, never>;
85
96
  }
86
97
 
87
98
  declare const countries: Country[];
88
99
 
89
100
  export { CountrySelect, countries };
90
- export type { Country };
101
+ export type { Country, CountrySelectValue };
@@ -3,6 +3,9 @@ import { ValidatorFn, FormControl, FormGroup } from '@angular/forms';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { Type, InjectionToken, EnvironmentProviders, TemplateRef } from '@angular/core';
5
5
  import { TreeNodeDropPosition, Tree, TreeNodeDrop } from '@ngstarter-ui/components/tree';
6
+ import { DateRangeInput } from '@ngstarter-ui/components/datepicker';
7
+ import { RadioGroupOrientation } from '@ngstarter-ui/components/radio';
8
+ import { UploadFileSelectedEvent } from '@ngstarter-ui/components/upload';
6
9
  import * as _ngstarter_ui_components_form_builder from '@ngstarter-ui/components/form-builder';
7
10
 
8
11
  type FormBuilderFieldWidth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
@@ -10,6 +13,7 @@ type FormBuilderItemKind = 'field' | 'layout' | 'static';
10
13
  interface FormBuilderOption {
11
14
  label: string;
12
15
  value: any;
16
+ selected?: boolean;
13
17
  }
14
18
  interface FormBuilderValidationRule {
15
19
  type: 'required' | 'email' | 'minLength' | 'maxLength' | 'min' | 'max' | string;
@@ -31,6 +35,8 @@ interface FormBuilderField {
31
35
  placeholder?: string;
32
36
  hint?: string;
33
37
  defaultValue?: any;
38
+ multiple?: boolean;
39
+ clearable?: boolean;
34
40
  required?: boolean;
35
41
  disabled?: boolean;
36
42
  readonly?: boolean;
@@ -63,6 +69,15 @@ interface FormBuilderFieldRenderContext {
63
69
  control: FormControl;
64
70
  readonly: boolean;
65
71
  }
72
+ interface FormBuilderUploadContext {
73
+ field: FormBuilderField;
74
+ control: FormControl;
75
+ event: any;
76
+ files: File[];
77
+ fileList: FileList | null;
78
+ multiple: boolean;
79
+ }
80
+ type FormBuilderUploadCallback = (context: FormBuilderUploadContext) => any | Promise<any>;
66
81
  interface FormBuilderSettingsContext {
67
82
  field: FormBuilderField;
68
83
  schema: FormBuilderSchema;
@@ -116,6 +131,7 @@ interface FormBuilderFieldChange {
116
131
  declare const FORM_BUILDER_ITEMS: InjectionToken<FormBuilderItemDefinition[]>;
117
132
  declare const FORM_BUILDER_FIELDS: InjectionToken<FormBuilderFieldDefinition[]>;
118
133
  declare const FORM_BUILDER_SETTINGS: InjectionToken<FormBuilderSettingsDefinition[]>;
134
+ declare const FORM_BUILDER_UPLOAD_CALLBACK: InjectionToken<FormBuilderUploadCallback>;
119
135
  declare function formBuilderField(definition: FormBuilderFieldDefinition): FormBuilderFieldDefinition;
120
136
  declare function formBuilderItem(definition: FormBuilderItemDefinition): FormBuilderItemDefinition;
121
137
  declare function formBuilderSettings(definition: FormBuilderSettingsDefinition): FormBuilderSettingsDefinition;
@@ -123,6 +139,7 @@ declare function provideFormBuilder(config?: {
123
139
  items?: FormBuilderItemDefinition[];
124
140
  fields?: FormBuilderFieldDefinition[];
125
141
  settings?: FormBuilderSettingsDefinition[];
142
+ uploadCallback?: FormBuilderUploadCallback;
126
143
  }): EnvironmentProviders;
127
144
  declare const DEFAULT_FORM_BUILDER_FIELDS: FormBuilderFieldDefinition[];
128
145
  declare const DEFAULT_FORM_BUILDER_ITEMS: FormBuilderItemDefinition[];
@@ -170,6 +187,7 @@ declare class FormBuilder {
170
187
  readonly schema: _angular_core.ModelSignal<FormBuilderSchema>;
171
188
  readonly paletteTitle: _angular_core.InputSignal<string>;
172
189
  readonly inspectorTitle: _angular_core.InputSignal<string>;
190
+ readonly uploadCallback: _angular_core.InputSignal<FormBuilderUploadCallback | null | undefined>;
173
191
  readonly fieldSelected: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
174
192
  readonly fieldAdded: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
175
193
  readonly fieldRemoved: _angular_core.OutputEmitterRef<FormBuilderFieldChange>;
@@ -275,6 +293,7 @@ declare class FormBuilder {
275
293
  private findCanvasFieldElement;
276
294
  private findCanvasSectionElement;
277
295
  private syncPreviewControl;
296
+ private fieldInitialValue;
278
297
  private scrollElementFullyIntoView;
279
298
  private afterNextPaint;
280
299
  private upsertSectionTreeNode;
@@ -286,7 +305,7 @@ declare class FormBuilder {
286
305
  private findFieldLocation;
287
306
  private deletePreviewControls;
288
307
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilder, never>;
289
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilder, "ngs-form-builder", ["ngsFormBuilder"], { "schema": { "alias": "schema"; "required": false; "isSignal": true; }; "paletteTitle": { "alias": "paletteTitle"; "required": false; "isSignal": true; }; "inspectorTitle": { "alias": "inspectorTitle"; "required": false; "isSignal": true; }; }, { "schema": "schemaChange"; "fieldSelected": "fieldSelected"; "fieldAdded": "fieldAdded"; "fieldRemoved": "fieldRemoved"; }, never, never, true, never>;
308
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilder, "ngs-form-builder", ["ngsFormBuilder"], { "schema": { "alias": "schema"; "required": false; "isSignal": true; }; "paletteTitle": { "alias": "paletteTitle"; "required": false; "isSignal": true; }; "inspectorTitle": { "alias": "inspectorTitle"; "required": false; "isSignal": true; }; "uploadCallback": { "alias": "uploadCallback"; "required": false; "isSignal": true; }; }, { "schema": "schemaChange"; "fieldSelected": "fieldSelected"; "fieldAdded": "fieldAdded"; "fieldRemoved": "fieldRemoved"; }, never, never, true, never>;
290
309
  }
291
310
  declare function createDefaultFormBuilderSchema(): FormBuilderSchema;
292
311
 
@@ -302,6 +321,7 @@ declare class FormBuilderRenderer {
302
321
  readonly readonly: _angular_core.InputSignal<boolean>;
303
322
  readonly showSubmit: _angular_core.InputSignal<boolean>;
304
323
  readonly submitLabel: _angular_core.InputSignal<string>;
324
+ readonly uploadCallback: _angular_core.InputSignal<FormBuilderUploadCallback | null | undefined>;
305
325
  readonly value: _angular_core.ModelSignal<Record<string, any>>;
306
326
  readonly formSubmit: _angular_core.OutputEmitterRef<Record<string, any>>;
307
327
  readonly formReady: _angular_core.OutputEmitterRef<FormGroup<any>>;
@@ -315,23 +335,38 @@ declare class FormBuilderRenderer {
315
335
  protected submit(): void;
316
336
  private createFormGroup;
317
337
  private visibleFields;
338
+ private fieldInitialValue;
318
339
  private resolveCanvasItems;
319
340
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderRenderer, never>;
320
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderRenderer, "ngs-form-builder-renderer", ["ngsFormBuilderRenderer"], { "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "showSubmit": { "alias": "showSubmit"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "formSubmit": "formSubmit"; "formReady": "formReady"; }, never, never, true, never>;
341
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderRenderer, "ngs-form-renderer", ["ngsFormRenderer"], { "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "showSubmit": { "alias": "showSubmit"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "uploadCallback": { "alias": "uploadCallback"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "formSubmit": "formSubmit"; "formReady": "formReady"; }, never, never, true, never>;
321
342
  }
322
343
 
323
344
  declare class FormBuilderFieldHost {
345
+ private readonly providedUploadCallback;
324
346
  readonly field: _angular_core.InputSignal<FormBuilderField>;
325
347
  readonly control: _angular_core.InputSignal<FormControl<any>>;
326
348
  readonly definitions: _angular_core.InputSignal<FormBuilderFieldDefinition[]>;
327
349
  readonly readonly: _angular_core.InputSignal<boolean>;
328
350
  readonly editableCanvas: _angular_core.InputSignal<boolean>;
351
+ readonly uploadCallback: _angular_core.InputSignal<FormBuilderUploadCallback | null | undefined>;
329
352
  protected readonly customLoaded: _angular_core.WritableSignal<boolean>;
353
+ protected readonly controlValue: _angular_core.WritableSignal<any>;
330
354
  protected readonly textInputType: _angular_core.Signal<"email" | "text" | "number">;
355
+ protected readonly radioOrientation: _angular_core.Signal<RadioGroupOrientation>;
356
+ protected readonly uploadAccept: _angular_core.Signal<any>;
357
+ protected readonly uploadDisabled: _angular_core.Signal<boolean>;
358
+ protected readonly dateRangeDisabled: _angular_core.Signal<boolean>;
359
+ protected readonly uploadSelectedText: _angular_core.Signal<any>;
360
+ protected readonly spacerHeight: _angular_core.Signal<number>;
361
+ protected readonly dateRangeStartValue: _angular_core.Signal<string>;
362
+ protected readonly dateRangeEndValue: _angular_core.Signal<string>;
331
363
  private readonly anchor;
332
364
  constructor();
365
+ protected onUploadFilesSelected(event: UploadFileSelectedEvent): Promise<void>;
366
+ protected onDateRangeChanged(rangeInput: DateRangeInput<any>): void;
367
+ private formatDateRangePart;
333
368
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormBuilderFieldHost, never>;
334
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderFieldHost, "ngs-form-builder-field-host", ["ngsFormBuilderFieldHost"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "control": { "alias": "control"; "required": true; "isSignal": true; }; "definitions": { "alias": "definitions"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "editableCanvas": { "alias": "editableCanvas"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
369
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderFieldHost, "ngs-form-builder-field-host", ["ngsFormBuilderFieldHost"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "control": { "alias": "control"; "required": true; "isSignal": true; }; "definitions": { "alias": "definitions"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "editableCanvas": { "alias": "editableCanvas"; "required": false; "isSignal": true; }; "uploadCallback": { "alias": "uploadCallback"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
335
370
  }
336
371
 
337
372
  declare class FormBuilderSettingsHost {
@@ -353,16 +388,39 @@ declare class FormBuilderSettingsHost {
353
388
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormBuilderSettingsHost, "ngs-form-builder-settings-host", ["ngsFormBuilderSettingsHost"], { "field": { "alias": "field"; "required": false; "isSignal": true; }; "section": { "alias": "section"; "required": false; "isSignal": true; }; "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "definitions": { "alias": "definitions"; "required": false; "isSignal": true; }; "settingsDefinitions": { "alias": "settingsDefinitions"; "required": false; "isSignal": true; }; "update": { "alias": "update"; "required": false; "isSignal": true; }; "updateSection": { "alias": "updateSection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
354
389
  }
355
390
 
391
+ type RadioOrientation = 'vertical' | 'horizontal';
392
+ type SpacerHeight = 8 | 16 | 24 | 32 | 48 | 64;
356
393
  declare class BasicFormBuilderFieldSettings {
394
+ private readonly destroyRef;
357
395
  readonly field: _angular_core.InputSignal<FormBuilderField>;
358
396
  readonly update: _angular_core.InputSignal<(changes: Partial<FormBuilderField>) => void>;
397
+ protected readonly optionsControl: FormControl<string>;
359
398
  protected readonly fieldWidthOptions: FormBuilderFieldWidth[];
399
+ protected readonly radioOrientationOptions: RadioOrientation[];
400
+ protected readonly spacerHeightOptions: SpacerHeight[];
360
401
  protected readonly hasCheckedState: _angular_core.Signal<boolean>;
361
402
  protected readonly hasPlaceholder: _angular_core.Signal<boolean>;
362
403
  protected readonly hasOptions: _angular_core.Signal<boolean>;
404
+ protected readonly hasClearable: _angular_core.Signal<boolean>;
405
+ protected readonly hasMultiple: _angular_core.Signal<boolean>;
406
+ protected readonly isSelect: _angular_core.Signal<boolean>;
407
+ protected readonly isUpload: _angular_core.Signal<boolean>;
408
+ protected readonly isRadio: _angular_core.Signal<boolean>;
409
+ protected readonly isSpacer: _angular_core.Signal<boolean>;
410
+ protected readonly hasBehaviorToggles: _angular_core.Signal<boolean>;
411
+ protected readonly radioOrientation: _angular_core.Signal<RadioOrientation>;
363
412
  protected readonly optionsText: _angular_core.Signal<string>;
413
+ constructor();
364
414
  protected patch(changes: Partial<FormBuilderField>): void;
415
+ protected patchSettings(changes: Record<string, any>): void;
416
+ protected patchMultiple(multiple: boolean): void;
417
+ protected patchSelectMultiple(multiple: boolean): void;
418
+ protected patchRadioOrientation(orientation: RadioOrientation): void;
365
419
  protected patchOptions(value: string): void;
420
+ private normalizeSelectedOptions;
421
+ private resolveSelectedDefaultValue;
422
+ private selectedOptionValues;
423
+ private isOptionSelected;
366
424
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BasicFormBuilderFieldSettings, never>;
367
425
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BasicFormBuilderFieldSettings, "ngs-basic-form-builder-field-settings", ["ngsBasicFormBuilderFieldSettings"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
368
426
  }
@@ -384,5 +442,5 @@ declare class BasicFormBuilderSectionSettings {
384
442
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BasicFormBuilderSectionSettings, "ngs-basic-form-builder-section-settings", ["ngsBasicFormBuilderSectionSettings"], { "section": { "alias": "section"; "required": true; "isSignal": true; }; "update": { "alias": "update"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
385
443
  }
386
444
 
387
- export { BasicFormBuilderFieldSettings, BasicFormBuilderLayoutSettings, BasicFormBuilderSectionSettings, DEFAULT_FORM_BUILDER_FIELDS, DEFAULT_FORM_BUILDER_ITEMS, FORM_BUILDER_FIELDS, FORM_BUILDER_ITEMS, FORM_BUILDER_SETTINGS, FormBuilder, FormBuilderFieldHost, FormBuilderRenderer, FormBuilderSettingsHost, FormBuilderRenderer as FormRenderer, createDefaultFormBuilderSchema, formBuilderField, formBuilderItem, formBuilderSettings, provideFormBuilder, validatorsFromRules };
388
- export type { FormBuilderComponentImporter, FormBuilderField, FormBuilderFieldChange, FormBuilderFieldDefinition, FormBuilderFieldRenderContext, FormBuilderFieldSettingsContext, FormBuilderFieldWidth, FormBuilderItemDefinition, FormBuilderItemKind, FormBuilderLayoutItem, FormBuilderOption, FormBuilderSchema, FormBuilderSection, FormBuilderSectionSettingsContext, FormBuilderSettingsContext, FormBuilderSettingsDefinition, FormBuilderValidationRule, FormBuilderVisibility };
445
+ export { BasicFormBuilderFieldSettings, BasicFormBuilderLayoutSettings, BasicFormBuilderSectionSettings, DEFAULT_FORM_BUILDER_FIELDS, DEFAULT_FORM_BUILDER_ITEMS, FORM_BUILDER_FIELDS, FORM_BUILDER_ITEMS, FORM_BUILDER_SETTINGS, FORM_BUILDER_UPLOAD_CALLBACK, FormBuilder, FormBuilderFieldHost, FormBuilderRenderer, FormBuilderSettingsHost, createDefaultFormBuilderSchema, formBuilderField, formBuilderItem, formBuilderSettings, provideFormBuilder, validatorsFromRules };
446
+ export type { FormBuilderComponentImporter, FormBuilderField, FormBuilderFieldChange, FormBuilderFieldDefinition, FormBuilderFieldRenderContext, FormBuilderFieldSettingsContext, FormBuilderFieldWidth, FormBuilderItemDefinition, FormBuilderItemKind, FormBuilderLayoutItem, FormBuilderOption, FormBuilderSchema, FormBuilderSection, FormBuilderSectionSettingsContext, FormBuilderSettingsContext, FormBuilderSettingsDefinition, FormBuilderUploadCallback, FormBuilderUploadContext, FormBuilderValidationRule, FormBuilderVisibility };
@@ -2,10 +2,12 @@ import * as _angular_core from '@angular/core';
2
2
  import { AfterContentInit, OnInit, ChangeDetectorRef } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
 
5
+ type RadioGroupOrientation = 'horizontal' | 'vertical';
5
6
  declare class RadioGroup implements ControlValueAccessor, AfterContentInit {
6
7
  readonly _radios: _angular_core.Signal<readonly any[]>;
7
8
  disabled: _angular_core.ModelSignal<boolean>;
8
9
  name: _angular_core.InputSignal<string | undefined>;
10
+ orientation: _angular_core.InputSignal<RadioGroupOrientation>;
9
11
  value: _angular_core.ModelSignal<any>;
10
12
  readonly change: _angular_core.OutputEmitterRef<any>;
11
13
  constructor();
@@ -21,7 +23,7 @@ declare class RadioGroup implements ControlValueAccessor, AfterContentInit {
21
23
  private _markRadiosForCheck;
22
24
  _onRadioClick(radio: RadioButton): void;
23
25
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroup, never>;
24
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroup, "ngs-radio-group", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "value": "valueChange"; "change": "change"; }, ["_radios"], ["*"], true, never>;
26
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroup, "ngs-radio-group", ["ngsRadioGroup"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "value": "valueChange"; "change": "change"; }, ["_radios"], ["*"], true, never>;
25
27
  }
26
28
 
27
29
  declare class RadioButton implements OnInit {
@@ -43,3 +45,4 @@ declare class RadioButton implements OnInit {
43
45
  }
44
46
 
45
47
  export { RadioButton, RadioGroup };
48
+ export type { RadioGroupOrientation };
@@ -38,4 +38,9 @@ declare class SlideToggle implements ControlValueAccessor {
38
38
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideToggle, "ngs-slide-toggle", ["ngsSlideToggle"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "hideIcon": { "alias": "hideIcon"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "checked": "checkedChange"; "change": "change"; "toggleChange": "toggleChange"; }, never, ["*"], true, never>;
39
39
  }
40
40
 
41
- export { SlideToggle, SlideToggleChange };
41
+ declare class SlideToggleGroup {
42
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideToggleGroup, never>;
43
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideToggleGroup, "ngs-slide-toggle-group", ["ngsSlideToggleGroup"], {}, {}, never, ["ngs-slide-toggle"], true, never>;
44
+ }
45
+
46
+ export { SlideToggle, SlideToggleChange, SlideToggleGroup };