@testgorilla/tgo-ui 3.12.4 → 3.13.2

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.
@@ -21263,7 +21263,6 @@ class AutocompleteComponent {
21263
21263
  this.AutocompleteUtils = AutocompleteUtils;
21264
21264
  this.isPlatform = isPlatformBrowser(this.platformId);
21265
21265
  this.keyboardFocused = signal(false);
21266
- this.inputValueInitialized = false;
21267
21266
  this.isAlreadyAdded = false;
21268
21267
  this.onChange = (_) => { };
21269
21268
  this.onTouch = () => { };
@@ -21362,13 +21361,7 @@ class AutocompleteComponent {
21362
21361
  else {
21363
21362
  this.value = value;
21364
21363
  }
21365
- if (!this.infiniteScroll) {
21366
- this.initValue();
21367
- }
21368
- else if (!this.inputValueInitialized) {
21369
- this.initValue();
21370
- this.inputValueInitialized = true;
21371
- }
21364
+ this.initValue();
21372
21365
  this.cdr.markForCheck();
21373
21366
  }
21374
21367
  get isGrouped() {
@@ -24519,21 +24512,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24519
24512
  }]
24520
24513
  }] });
24521
24514
 
24522
- class MultiInputComponent {
24523
- /**
24524
- *
24525
- * @description The Value of the multi input
24526
- * @type {MultiInputValue}
24527
- * @memberof MultiInputComponent
24528
- */
24529
- set value(v) {
24530
- this._value = v;
24531
- this.addDropdownControl();
24532
- this.multiInputForm.patchValue(v);
24515
+ /* eslint-disable @typescript-eslint/unbound-method */
24516
+ const requiredMultiInput = (control) => {
24517
+ const controlValue = control.value;
24518
+ const hasRequired = control.hasValidator(Validators.required);
24519
+ if (hasRequired && controlValue) {
24520
+ const anyFalsy = Object.values(controlValue).some(v => !v);
24521
+ if (anyFalsy) {
24522
+ return { required: true };
24523
+ }
24533
24524
  }
24534
- constructor(ngControl, defaultAppTheme, fb) {
24525
+ return null;
24526
+ };
24527
+
24528
+ /* eslint-disable @typescript-eslint/no-inferrable-types */
24529
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
24530
+ /* eslint-disable no-underscore-dangle */
24531
+ /* eslint-disable @typescript-eslint/unbound-method */
24532
+ class MultiInputComponent {
24533
+ constructor(ngControl, fb) {
24535
24534
  this.ngControl = ngControl;
24536
- this.defaultAppTheme = defaultAppTheme;
24537
24535
  this.fb = fb;
24538
24536
  /**
24539
24537
  *
@@ -24541,105 +24539,105 @@ class MultiInputComponent {
24541
24539
  * @type {Record<string, string | null | number>[]}
24542
24540
  * @memberof MultiInputComponent
24543
24541
  */
24544
- this.itemsList = [];
24542
+ this.itemsList = input.required();
24545
24543
  /**
24546
24544
  *
24547
24545
  * @description The field to be displayed in the dropdown
24548
24546
  * @type {string}
24549
24547
  * @memberof MultiInputComponent
24550
24548
  */
24551
- this.itemTextField = '';
24549
+ this.itemTextField = input.required();
24552
24550
  /**
24553
24551
  *
24554
24552
  * @description The value to be displayed in the droddown
24555
24553
  * @type {string}
24556
24554
  * @memberof MultiInputComponent
24557
24555
  */
24558
- this.itemValueField = '';
24556
+ this.itemValueField = input.required();
24557
+ /**
24558
+ *
24559
+ * @description The Value of the multi input
24560
+ * @type {MultiInputValue}
24561
+ * @memberof MultiInputComponent
24562
+ */
24563
+ this.value = input();
24559
24564
  /**
24560
24565
  *
24561
24566
  * @description Disables the multi input
24562
24567
  * @type {boolean}
24563
24568
  * @memberof MultiInputComponent
24564
24569
  */
24565
- this.disabled = false;
24570
+ this.disabled = input(false, { transform: booleanAttribute });
24566
24571
  /**
24567
24572
  *
24568
24573
  * @description Defines if the multi input is required
24569
24574
  * @type {boolean}
24570
24575
  * @memberof MultiInputComponent
24571
24576
  */
24572
- this.required = false;
24577
+ this.required = input(false, { transform: booleanAttribute });
24573
24578
  /**
24574
24579
  *
24575
24580
  * @description Defines the label of the multi input
24576
24581
  * @type {string}
24577
24582
  * @memberof MultiInputComponent
24578
24583
  */
24579
- this.label = '';
24584
+ this.label = input('');
24580
24585
  /**
24581
24586
  *
24582
24587
  * @description Defines the placeholder of the multi input
24583
24588
  * @type {string}
24584
24589
  * @memberof MultiInputComponent
24585
24590
  */
24586
- this.placeholder = '';
24591
+ this.placeholder = input('');
24587
24592
  /**
24588
24593
  *
24589
24594
  * @description Allow decimal values in the multi input
24590
24595
  * @type {boolean}
24591
24596
  * @memberof MultiInputComponent
24592
24597
  */
24593
- this.allowDecimal = true;
24598
+ this.allowDecimal = input(true, { transform: booleanAttribute });
24594
24599
  /**
24595
24600
  *
24596
24601
  * @description Allow negative values in the multi input
24597
24602
  * @type {boolean}
24598
24603
  * @memberof MultiInputComponent
24599
24604
  */
24600
- this.allowNegative = true;
24601
- /**
24602
- *
24603
- * @description The theme of the application
24604
- * @type {ApplicationTheme}
24605
- * @memberof MultiInputComponent
24606
- */
24607
- this.applicationTheme = 'light';
24605
+ this.allowNegative = input(true, { transform: booleanAttribute });
24608
24606
  /**
24609
24607
  *
24610
24608
  * @description The errors of the multi input
24611
24609
  * @type {string[]}
24612
24610
  * @memberof MultiInputComponent
24613
24611
  */
24614
- this.errors = [];
24612
+ this.errors = input([]);
24615
24613
  /**
24616
24614
  *
24617
24615
  * @description Hide built in errors for Reactive Forms
24618
24616
  * @type {boolean}
24619
24617
  * @memberof MultiInputComponent
24620
24618
  */
24621
- this.hideBuiltInErrors = false;
24619
+ this.hideBuiltInErrors = input(false, { transform: booleanAttribute });
24622
24620
  /**
24623
24621
  *
24624
24622
  * @description Hide label in errors
24625
24623
  * @type {boolean}
24626
24624
  * @memberof MultiInputComponent
24627
24625
  */
24628
- this.hideLabelInErrors = false;
24626
+ this.hideLabelInErrors = input(false, { transform: booleanAttribute });
24629
24627
  /**
24630
24628
  *
24631
24629
  * @description The maximum characters allowed in the multi input
24632
24630
  * @type {number}
24633
24631
  * @memberof MultiInputComponent
24634
24632
  */
24635
- this.maxCharacters = 0;
24633
+ this.maxCharacters = input(0);
24636
24634
  /**
24637
24635
  *
24638
24636
  * @description The validators to apply to input field
24639
24637
  * @type {Validators[]}
24640
24638
  * @memberof MultiInputComponent
24641
24639
  */
24642
- this.validators = [];
24640
+ this.validators = input([]);
24643
24641
  /**
24644
24642
  *
24645
24643
  * @description The width of the multi input
@@ -24657,44 +24655,60 @@ class MultiInputComponent {
24657
24655
  * @ignore
24658
24656
  */
24659
24657
  this.onTouch = () => { };
24660
- this.showError = false;
24661
24658
  this.multiInputForm = this.fb.group({
24662
24659
  value: null,
24663
24660
  });
24661
+ effect(() => {
24662
+ this.updateDisableState(this.disabled());
24663
+ });
24664
+ effect(() => {
24665
+ const maxCharacters = this.maxCharacters();
24666
+ if (maxCharacters) {
24667
+ this.inputControl?.addValidators(Validators.maxLength(maxCharacters));
24668
+ this.inputControl?.updateValueAndValidity();
24669
+ }
24670
+ });
24671
+ effect(() => {
24672
+ const inputValidators = this.validators();
24673
+ if (inputValidators?.length) {
24674
+ this.inputControl?.addValidators(inputValidators);
24675
+ this.inputControl?.updateValueAndValidity();
24676
+ }
24677
+ });
24678
+ effect(() => {
24679
+ const value = this.value();
24680
+ // skip in the context of angular Forms
24681
+ if (!this.ngControl) {
24682
+ this.addDropdownControl();
24683
+ this.patchForm(value);
24684
+ }
24685
+ });
24664
24686
  if (this.ngControl) {
24665
24687
  this.ngControl.valueAccessor = this;
24666
24688
  }
24667
- if (this.defaultAppTheme) {
24668
- this.applicationTheme = this.defaultAppTheme;
24669
- }
24670
24689
  this.multiInputForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(formValue => {
24671
24690
  this.valueChanged(formValue);
24672
- this.checkFormErrors();
24673
- if (!formValue.value && !formValue[this.itemValueField]) {
24674
- this.showError = true;
24675
- }
24676
24691
  });
24677
24692
  }
24678
24693
  ngOnInit() {
24679
24694
  this.addDropdownControl();
24680
- this.addValidation();
24681
- if (this.ngControl && this.hasRequiredValidator) {
24682
- this.inputControl?.addValidators(Validators.required);
24683
- this.dropdownControl?.addValidators(Validators.required);
24684
- }
24685
- }
24686
- ngOnChanges(changes) {
24687
- if (changes['disabled']) {
24688
- this.updateDisableState(this.disabled);
24695
+ if (this.ngControl) {
24696
+ this.ngControl.control?.addValidators(requiredMultiInput);
24689
24697
  }
24690
24698
  }
24691
24699
  writeValue(value) {
24692
- this.value = value;
24693
24700
  this.addDropdownControl();
24694
- this.multiInputForm.patchValue(value);
24701
+ this.patchForm(value);
24702
+ }
24703
+ patchForm(value) {
24704
+ if (value) {
24705
+ this.multiInputForm.patchValue(value);
24706
+ }
24707
+ else {
24708
+ this.multiInputForm.reset();
24709
+ }
24695
24710
  }
24696
24711
  setDisabledState(isDisabled) {
24697
- this.disabled = isDisabled;
24698
24712
  this.updateDisableState(isDisabled);
24699
24713
  }
24700
24714
  registerOnChange(fn) {
@@ -24707,60 +24721,32 @@ class MultiInputComponent {
24707
24721
  this.valueChange.emit(value);
24708
24722
  this.onChange(value);
24709
24723
  }
24710
- get value() {
24711
- return this._value;
24712
- }
24713
- get hasRequiredValidator() {
24714
- return !!this.ngControl.control?.hasValidator(Validators.required);
24715
- }
24716
24724
  get dropdownControl() {
24717
- return this.multiInputForm.get(this.itemValueField);
24725
+ return this.multiInputForm.controls[this.itemValueField()];
24718
24726
  }
24719
24727
  get inputControl() {
24720
- return this.multiInputForm.get('value');
24721
- }
24722
- checkFormErrors() {
24723
- const hasErrors = this.inputControl?.errors || this.dropdownControl?.errors;
24724
- if (this.ngControl) {
24725
- this.ngControl.control?.setErrors(!!hasErrors ? { ...this.inputControl?.errors, ...this.dropdownControl?.errors } : null);
24726
- }
24727
- this.showError = !!hasErrors;
24728
+ return this.multiInputForm.controls.value;
24728
24729
  }
24729
24730
  markAsTouched() {
24730
24731
  this.onTouch();
24731
- if (this.ngControl &&
24732
- ((this.inputControl?.touched && this.dropdownControl?.touched) ||
24733
- (!this.inputControl?.value && !this.dropdownControl?.value))) {
24734
- this.ngControl.control?.markAsTouched();
24735
- }
24736
24732
  }
24737
24733
  addDropdownControl() {
24738
- if (!this.multiInputForm.value[this.itemValueField]) {
24739
- this.multiInputForm.addControl(this.itemValueField, new FormControl(null), { emitEvent: false });
24740
- this.updateDisableState(this.disabled);
24734
+ if (!this.multiInputForm.value[this.itemValueField()]) {
24735
+ this.multiInputForm.addControl(this.itemValueField(), new FormControl(null), { emitEvent: false });
24736
+ this.updateDisableState(this.disabled());
24741
24737
  }
24742
24738
  }
24743
24739
  get controlHasError() {
24744
- return this.ngControl
24745
- ? (this.showError && !!this.ngControl.control?.touched) ||
24746
- (!this.inputControl?.valid && !!this.inputControl?.touched) ||
24747
- (!this.dropdownControl?.valid && !!this.dropdownControl?.touched)
24748
- : this.showError ||
24749
- !!this.errors.length ||
24750
- (!this.inputControl?.valid && !!this.inputControl?.touched) ||
24751
- (!this.dropdownControl?.valid && !!this.dropdownControl?.touched);
24740
+ if (this.ngControl) {
24741
+ return !!(this.ngControl.errors && this.ngControl.touched);
24742
+ }
24743
+ else {
24744
+ return this.errors()?.length > 0;
24745
+ }
24752
24746
  }
24753
24747
  getValueLength() {
24754
24748
  return this.inputControl?.value?.toString().length || 0;
24755
24749
  }
24756
- addValidation() {
24757
- if (this.maxCharacters) {
24758
- this.inputControl?.addValidators(Validators.maxLength(this.maxCharacters));
24759
- }
24760
- if (this.validators?.length) {
24761
- this.inputControl?.addValidators(this.validators);
24762
- }
24763
- }
24764
24750
  updateDisableState(state) {
24765
24751
  if (state) {
24766
24752
  this.multiInputForm.disable({ emitEvent: false });
@@ -24769,66 +24755,17 @@ class MultiInputComponent {
24769
24755
  this.multiInputForm.enable({ emitEvent: false });
24770
24756
  }
24771
24757
  }
24772
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
24773
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MultiInputComponent, selector: "ui-multi-input", inputs: { itemsList: "itemsList", itemTextField: "itemTextField", itemValueField: "itemValueField", value: "value", disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], label: "label", placeholder: "placeholder", allowDecimal: ["allowDecimal", "allowDecimal", booleanAttribute], allowNegative: ["allowNegative", "allowNegative", booleanAttribute], applicationTheme: "applicationTheme", errors: "errors", hideBuiltInErrors: ["hideBuiltInErrors", "hideBuiltInErrors", booleanAttribute], hideLabelInErrors: ["hideLabelInErrors", "hideLabelInErrors", booleanAttribute], maxCharacters: "maxCharacters", validators: "validators", fullWidth: "fullWidth" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.theme": "this.applicationTheme", "class.full-width": "this.fullWidth", "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched(); checkFormErrors()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n [formControlName]=\"'value'\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n [allowNegative]=\"allowNegative\"\n (focusout)=\"markAsTouched(); checkFormErrors()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\n\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors; track error) {\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: DropdownComponent, selector: "ui-dropdown", inputs: ["label", "labelIcon", "isAIVariant", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor", "panelClass"], outputs: ["closed", "opened"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme"] }, { kind: "component", type: FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: HasValidationErrorPipe, name: "hasValidationError" }] }); }
24758
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
24759
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MultiInputComponent, selector: "ui-multi-input", inputs: { itemsList: { classPropertyName: "itemsList", publicName: "itemsList", isSignal: true, isRequired: true, transformFunction: null }, itemTextField: { classPropertyName: "itemTextField", publicName: "itemTextField", isSignal: true, isRequired: true, transformFunction: null }, itemValueField: { classPropertyName: "itemValueField", publicName: "itemValueField", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, allowDecimal: { classPropertyName: "allowDecimal", publicName: "allowDecimal", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, hideBuiltInErrors: { classPropertyName: "hideBuiltInErrors", publicName: "hideBuiltInErrors", isSignal: true, isRequired: false, transformFunction: null }, hideLabelInErrors: { classPropertyName: "hideLabelInErrors", publicName: "hideLabelInErrors", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.full-width": "this.fullWidth", "class": "this.class" } }, ngImport: i0, template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField()\"\n [valueList]=\"itemsList()\"\n [textField]=\"itemTextField()\"\n [valueField]=\"itemValueField()\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n formControlName=\"value\"\n [label]=\"label()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters() && !errors()?.length\"\n >{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint\n >\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors()) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors() ? null : label()\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n <ng-content select=\"[custom-errors]\"></ng-content>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: DropdownComponent, selector: "ui-dropdown", inputs: ["label", "labelIcon", "isAIVariant", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor", "panelClass"], outputs: ["closed", "opened"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme"] }, { kind: "component", type: FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: HasValidationErrorPipe, name: "hasValidationError" }] }); }
24774
24760
  }
24775
24761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiInputComponent, decorators: [{
24776
24762
  type: Component,
24777
- args: [{ selector: 'ui-multi-input', template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched(); checkFormErrors()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n [formControlName]=\"'value'\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n [allowNegative]=\"allowNegative\"\n (focusout)=\"markAsTouched(); checkFormErrors()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\n\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors; track error) {\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"] }]
24763
+ args: [{ selector: 'ui-multi-input', template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField()\"\n [valueList]=\"itemsList()\"\n [textField]=\"itemTextField()\"\n [valueField]=\"itemValueField()\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n formControlName=\"value\"\n [label]=\"label()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters() && !errors()?.length\"\n >{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint\n >\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors()) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors() ? null : label()\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n <ng-content select=\"[custom-errors]\"></ng-content>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"] }]
24778
24764
  }], ctorParameters: () => [{ type: i1$2.NgControl, decorators: [{
24779
24765
  type: Optional
24780
24766
  }, {
24781
24767
  type: Self
24782
- }] }, { type: undefined, decorators: [{
24783
- type: Optional
24784
- }, {
24785
- type: Inject,
24786
- args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
24787
- }] }, { type: i1$2.FormBuilder }], propDecorators: { itemsList: [{
24788
- type: Input,
24789
- args: [{ required: true }]
24790
- }], itemTextField: [{
24791
- type: Input,
24792
- args: [{ required: true }]
24793
- }], itemValueField: [{
24794
- type: Input,
24795
- args: [{ required: true }]
24796
- }], value: [{
24797
- type: Input
24798
- }], disabled: [{
24799
- type: Input,
24800
- args: [{ transform: booleanAttribute }]
24801
- }], required: [{
24802
- type: Input,
24803
- args: [{ transform: booleanAttribute }]
24804
- }], label: [{
24805
- type: Input
24806
- }], placeholder: [{
24807
- type: Input
24808
- }], allowDecimal: [{
24809
- type: Input,
24810
- args: [{ transform: booleanAttribute }]
24811
- }], allowNegative: [{
24812
- type: Input,
24813
- args: [{ transform: booleanAttribute }]
24814
- }], applicationTheme: [{
24815
- type: HostBinding,
24816
- args: ['attr.theme']
24817
- }, {
24818
- type: Input
24819
- }], errors: [{
24820
- type: Input
24821
- }], hideBuiltInErrors: [{
24822
- type: Input,
24823
- args: [{ transform: booleanAttribute }]
24824
- }], hideLabelInErrors: [{
24825
- type: Input,
24826
- args: [{ transform: booleanAttribute }]
24827
- }], maxCharacters: [{
24828
- type: Input
24829
- }], validators: [{
24830
- type: Input
24831
- }], fullWidth: [{
24768
+ }] }, { type: i1$2.FormBuilder }], propDecorators: { fullWidth: [{
24832
24769
  type: HostBinding,
24833
24770
  args: ['class.full-width']
24834
24771
  }, {
@@ -24885,6 +24822,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24885
24822
 
24886
24823
  const SIDE_PANEL_DATA = new InjectionToken('SIDE_PANEL_DATA');
24887
24824
 
24825
+ /* eslint-disable no-underscore-dangle */
24888
24826
  var SidePanelAnimationState;
24889
24827
  (function (SidePanelAnimationState) {
24890
24828
  SidePanelAnimationState["Open"] = "open";
@@ -24907,6 +24845,34 @@ const SIDE_PANEL_CONFIG = new InjectionToken('SIDE_PANEL_CONFIG', {
24907
24845
  providedIn: 'root',
24908
24846
  factory: () => defaultSidePanelConfig,
24909
24847
  });
24848
+ /**
24849
+ * Reference to a side panel opened via the SidePanelService.
24850
+ * Similar to MatDialogRef from Angular Material.
24851
+ */
24852
+ class SidePanelRef {
24853
+ constructor() {
24854
+ this._afterClosed = new Subject();
24855
+ }
24856
+ /**
24857
+ * Observable that emits when the side panel is closed.
24858
+ * Emits the result passed to the close method, or undefined if no result was provided.
24859
+ */
24860
+ afterClosed() {
24861
+ return this._afterClosed.asObservable();
24862
+ }
24863
+ /**
24864
+ * Closes the side panel with an optional result.
24865
+ * @param result Optional data to be emitted via afterClosed()
24866
+ */
24867
+ close(result) {
24868
+ // This will be overridden by the service
24869
+ }
24870
+ /** @internal */
24871
+ _emitClose(result) {
24872
+ this._afterClosed.next(result);
24873
+ this._afterClosed.complete();
24874
+ }
24875
+ }
24910
24876
 
24911
24877
  const sidePanelAnimationDuration = 150;
24912
24878
  const sidePanelAnimation = [
@@ -24940,6 +24906,11 @@ class SidePanelService {
24940
24906
  }
24941
24907
  open(content, config, parentInjector) {
24942
24908
  const panelConfig = { ...this.defaultSidePanelConfig, ...config };
24909
+ const sidePanelRef = new SidePanelRef();
24910
+ this.currentSidePanelRef = sidePanelRef;
24911
+ sidePanelRef.close = (result) => {
24912
+ this.close(result);
24913
+ };
24943
24914
  if (!this.SidePanelComponentRef) {
24944
24915
  const injector = this.createSidePanelInjector(panelConfig, parentInjector);
24945
24916
  const SidePanelComponentRef = this.createSidePanelComponent(panelConfig.position, injector);
@@ -24949,16 +24920,21 @@ class SidePanelService {
24949
24920
  this.loadTemplate(content);
24950
24921
  }
24951
24922
  else {
24952
- this.loadComponent(content);
24923
+ this.loadComponent(content, sidePanelRef);
24953
24924
  }
24954
24925
  this.SidePanelComponentRef.instance.open();
24926
+ return sidePanelRef;
24955
24927
  }
24956
- close() {
24928
+ close(result) {
24957
24929
  if (this.SidePanelComponentRef) {
24958
- this.SidePanelComponentRef.instance.close();
24930
+ this.SidePanelComponentRef.instance.close(result);
24959
24931
  }
24960
24932
  }
24961
- destroyComponent() {
24933
+ destroyComponent(result) {
24934
+ if (this.currentSidePanelRef) {
24935
+ this.currentSidePanelRef._emitClose(result);
24936
+ this.currentSidePanelRef = undefined;
24937
+ }
24962
24938
  if (this.SidePanelComponentRef) {
24963
24939
  this.appRef.detachView(this.SidePanelComponentRef.hostView);
24964
24940
  this.SidePanelComponentRef.destroy();
@@ -24989,11 +24965,13 @@ class SidePanelService {
24989
24965
  document.body.appendChild(sidePanelEl);
24990
24966
  return sidePanelComponentRef;
24991
24967
  }
24992
- loadComponent(component) {
24968
+ loadComponent(component, sidePanelRef) {
24993
24969
  const viewContainerRef = this.SidePanelComponentRef?.instance.sidePanelContainer;
24994
24970
  if (viewContainerRef) {
24995
24971
  viewContainerRef().clear();
24996
24972
  this.contentComponentRef = viewContainerRef().createComponent(component);
24973
+ // Set the component instance on the SidePanelRef
24974
+ sidePanelRef.componentInstance = this.contentComponentRef.instance;
24997
24975
  }
24998
24976
  }
24999
24977
  loadTemplate(template) {
@@ -25043,10 +25021,10 @@ class SidePanelComponent {
25043
25021
  this.isOpen.set(true);
25044
25022
  });
25045
25023
  }
25046
- close() {
25024
+ close(result) {
25047
25025
  this.isOpen.set(false);
25048
25026
  setTimeout(() => {
25049
- this.sidePanelService.destroyComponent();
25027
+ this.sidePanelService.destroyComponent(result);
25050
25028
  }, sidePanelAnimationDuration);
25051
25029
  }
25052
25030
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -26661,5 +26639,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26661
26639
  * Generated bundle index. Do not edit.
26662
26640
  */
26663
26641
 
26664
- export { AMOUNT_TAG_WIDTH, AccordionComponent, AccordionComponentModule, AiFeedbackComponent, AiFeedbackModule, AlertBannerComponent, AlertBannerComponentModule, Autocomplete, AutocompleteComponent, AutocompleteComponentModule, AvatarBackgroundColor, AvatarComponent, AvatarComponentModule, AvatarSize, BadgeColorEnum, BadgeComponent, BadgeComponentModule, BadgeVariantEnum, BreadcrumbComponent, BreadcrumbComponentModule, ButtonComponent, ButtonComponentModule, CardComponent, CardComponentModule, CheckboxComponent, CheckboxComponentModule, ChecklistComponent, Color, ColumnAlignment, ColumnAlignmentEnum, ColumnType, ColumnTypeEnum, ConfirmDialogComponent, ConfirmDialogComponentModule, DataPropertyGetterPipe, DatepickerComponent, DatepickerComponentModule, DeprecatedPaginatorComponent, DeprecatedPaginatorComponentModule, DialogComponent, DialogComponentModule, DialogService, DividerComponent, DividerComponentModule, DonutChartComponent, DonutChartComponentModule, DropdownComponent, DropdownComponentModule, DropdownVariation, ElevationShadowComponent, ElevationShadowComponentModule, ElevationType, EmptyStateComponent, EmptyStateComponentModule, FieldComponent, FieldComponentModule, FileUploadComponent, FileUploadComponentModule, FilterButtonComponent, FilterButtonComponentModule, GaussianChartComponent, GaussianChartComponentModule, IS_MOBILE_TOKEN, IconComponent, IconComponentModule, IconLabelComponent, IconLabelComponentModule, IconsService, InlineFieldComponent, InlineFieldComponentModule, Language, LanguageService, LargeSpiderChartSize, LogoComponent, LogoComponentModule, LogoPathEnum, LogoTypeEnum, MediaCardComponent, MediaDialogComponent, MemoizeFuncPipe, MultiInputComponent, MultiInputComponentModule, NavbarComponent, NavbarComponentModule, OverflowMenuComponent, OverflowMenuComponentModule, Padding, PageHeaderComponent, PageHeaderModule, PaginatorComponent, PaginatorComponentModule, PasswordComponent, PasswordComponentModule, PasswordStrengthComponent, PasswordStrengthComponentModule, PhoneInputComponent, PhoneInputComponentModule, ProgressBarComponent, ProgressBarComponentModule, RadialProgressComponent, RadialProgressComponentModule, RadialProgressSizeEnum, RadialProgressSizeValue, RadioButtonComponent, RadioButtonComponentModule, RatingComponent, RatingComponentModule, RebrandBadgeColorEnum, SIDE_PANEL_CONFIG, SIDE_PANEL_DATA, ScaleComponent, ScaleComponentModule, ScaleTableComponent, SegmentedBarComponent, SegmentedBarComponentModule, SegmentedButtonComponent, SegmentedButtonComponentModule, SelectableCardComponent, SelectableCardComponentModule, SidePanelAnimationState, SidePanelComponent, SidePanelConfig, SidePanelService, SideSheetComponent, SideSheetComponentModule, SideSheetService, SkeletonComponent, SkillAreaGroupTypes, SkillAreaTypes, SliderComponent, SliderComponentModule, SmallSpiderChartSize, SnackbarComponent, SnackbarComponentModule, SnackbarService, SpiderChartComponent, SpiderChartComponentModule, SpinnerComponent, SpinnerComponentModule, StepComponent, StepComponentModule, StepperComponent, StepperComponentModule, TabDirective, TableComponent, TableComponentModule, TabsComponent, TabsComponentModule, TagComponent, TagComponentModule, Timeout, ToggleComponent, ToggleComponentModule, TooltipComponent, TooltipComponentModule, TooltipPositionType, TooltipTemplateDirective, UniversalSkillsReportComponent, UniversalSkillsReportComponentModule, UniversalSkillsService, UniversalSkillsSpiderChartsComponent, UniversalSkillsSpiderChartsComponentModule, ValidationErrorComponent, ValidationErrorModule, defaultSidePanelConfig, fieldID, getAvailableLangs, iconSize, inlineFieldID };
26642
+ export { AMOUNT_TAG_WIDTH, AccordionComponent, AccordionComponentModule, AiFeedbackComponent, AiFeedbackModule, AlertBannerComponent, AlertBannerComponentModule, Autocomplete, AutocompleteComponent, AutocompleteComponentModule, AvatarBackgroundColor, AvatarComponent, AvatarComponentModule, AvatarSize, BadgeColorEnum, BadgeComponent, BadgeComponentModule, BadgeVariantEnum, BreadcrumbComponent, BreadcrumbComponentModule, ButtonComponent, ButtonComponentModule, CardComponent, CardComponentModule, CheckboxComponent, CheckboxComponentModule, ChecklistComponent, Color, ColumnAlignment, ColumnAlignmentEnum, ColumnType, ColumnTypeEnum, ConfirmDialogComponent, ConfirmDialogComponentModule, DataPropertyGetterPipe, DatepickerComponent, DatepickerComponentModule, DeprecatedPaginatorComponent, DeprecatedPaginatorComponentModule, DialogComponent, DialogComponentModule, DialogService, DividerComponent, DividerComponentModule, DonutChartComponent, DonutChartComponentModule, DropdownComponent, DropdownComponentModule, DropdownVariation, ElevationShadowComponent, ElevationShadowComponentModule, ElevationType, EmptyStateComponent, EmptyStateComponentModule, FieldComponent, FieldComponentModule, FileUploadComponent, FileUploadComponentModule, FilterButtonComponent, FilterButtonComponentModule, GaussianChartComponent, GaussianChartComponentModule, IS_MOBILE_TOKEN, IconComponent, IconComponentModule, IconLabelComponent, IconLabelComponentModule, IconsService, InlineFieldComponent, InlineFieldComponentModule, Language, LanguageService, LargeSpiderChartSize, LogoComponent, LogoComponentModule, LogoPathEnum, LogoTypeEnum, MediaCardComponent, MediaDialogComponent, MemoizeFuncPipe, MultiInputComponent, MultiInputComponentModule, NavbarComponent, NavbarComponentModule, OverflowMenuComponent, OverflowMenuComponentModule, Padding, PageHeaderComponent, PageHeaderModule, PaginatorComponent, PaginatorComponentModule, PasswordComponent, PasswordComponentModule, PasswordStrengthComponent, PasswordStrengthComponentModule, PhoneInputComponent, PhoneInputComponentModule, ProgressBarComponent, ProgressBarComponentModule, RadialProgressComponent, RadialProgressComponentModule, RadialProgressSizeEnum, RadialProgressSizeValue, RadioButtonComponent, RadioButtonComponentModule, RatingComponent, RatingComponentModule, RebrandBadgeColorEnum, SIDE_PANEL_CONFIG, SIDE_PANEL_DATA, ScaleComponent, ScaleComponentModule, ScaleTableComponent, SegmentedBarComponent, SegmentedBarComponentModule, SegmentedButtonComponent, SegmentedButtonComponentModule, SelectableCardComponent, SelectableCardComponentModule, SidePanelAnimationState, SidePanelComponent, SidePanelConfig, SidePanelRef, SidePanelService, SideSheetComponent, SideSheetComponentModule, SideSheetService, SkeletonComponent, SkillAreaGroupTypes, SkillAreaTypes, SliderComponent, SliderComponentModule, SmallSpiderChartSize, SnackbarComponent, SnackbarComponentModule, SnackbarService, SpiderChartComponent, SpiderChartComponentModule, SpinnerComponent, SpinnerComponentModule, StepComponent, StepComponentModule, StepperComponent, StepperComponentModule, TabDirective, TableComponent, TableComponentModule, TabsComponent, TabsComponentModule, TagComponent, TagComponentModule, Timeout, ToggleComponent, ToggleComponentModule, TooltipComponent, TooltipComponentModule, TooltipPositionType, TooltipTemplateDirective, UniversalSkillsReportComponent, UniversalSkillsReportComponentModule, UniversalSkillsService, UniversalSkillsSpiderChartsComponent, UniversalSkillsSpiderChartsComponentModule, ValidationErrorComponent, ValidationErrorModule, defaultSidePanelConfig, fieldID, getAvailableLangs, iconSize, inlineFieldID };
26665
26643
  //# sourceMappingURL=testgorilla-tgo-ui.mjs.map