@crowdfarming/oliva-ds 1.12.0 → 1.13.0-rc.1
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.
|
@@ -2699,87 +2699,122 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
2699
2699
|
|
|
2700
2700
|
class CheckboxComponent {
|
|
2701
2701
|
label = input('');
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
disabled = input(false);
|
|
2705
|
-
error = input(false);
|
|
2702
|
+
state = input('unchecked');
|
|
2703
|
+
errorActive = input(false);
|
|
2706
2704
|
skeletonActive = input(false);
|
|
2707
|
-
|
|
2705
|
+
disabled = input(false);
|
|
2706
|
+
name = input('');
|
|
2707
|
+
value = input('');
|
|
2708
2708
|
innerHTML = input('');
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
// Internal signal for form control
|
|
2709
|
+
ariaLabel = input('');
|
|
2710
|
+
changed = output();
|
|
2711
|
+
// Internal signal for form control - using boolean for simpler form integration
|
|
2712
2712
|
_internalChecked = signal(false);
|
|
2713
|
+
_internalIndeterminate = signal(false);
|
|
2714
|
+
// ControlValueAccessor callbacks
|
|
2713
2715
|
onChangeFn = () => { };
|
|
2714
2716
|
onTouchedFn = () => { };
|
|
2715
|
-
//
|
|
2717
|
+
// Computed properties that use internal state for form control
|
|
2716
2718
|
isChecked = computed(() => this._internalChecked());
|
|
2719
|
+
isIndeterminate = computed(() => this._internalIndeterminate());
|
|
2720
|
+
isDisabled = computed(() => this.disabled());
|
|
2721
|
+
isSkeleton = computed(() => this.skeletonActive());
|
|
2722
|
+
isError = computed(() => this.errorActive());
|
|
2717
2723
|
constructor() {
|
|
2718
|
-
// Sync internal state with external
|
|
2724
|
+
// Sync internal state with external state input
|
|
2719
2725
|
effect(() => {
|
|
2720
|
-
const
|
|
2721
|
-
|
|
2722
|
-
this.
|
|
2726
|
+
const externalState = this.state();
|
|
2727
|
+
this._internalChecked.set(externalState === 'checked');
|
|
2728
|
+
this._internalIndeterminate.set(externalState === 'undetermined');
|
|
2723
2729
|
});
|
|
2724
2730
|
}
|
|
2725
|
-
|
|
2726
|
-
this.
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2731
|
+
computedAriaLabel = computed(() => {
|
|
2732
|
+
if (this.ariaLabel())
|
|
2733
|
+
return this.ariaLabel();
|
|
2734
|
+
if (this.label())
|
|
2735
|
+
return this.label();
|
|
2736
|
+
return 'Checkbox';
|
|
2737
|
+
});
|
|
2738
|
+
// Improved ARIA handling
|
|
2739
|
+
ariaChecked = computed(() => {
|
|
2740
|
+
return this.isIndeterminate() ? 'mixed' : String(this.isChecked());
|
|
2741
|
+
});
|
|
2734
2742
|
handleChange(event) {
|
|
2735
2743
|
// Ignore interactions when skeleton is active
|
|
2736
|
-
if (this.
|
|
2744
|
+
if (this.isSkeleton())
|
|
2737
2745
|
return;
|
|
2738
2746
|
const input = event.target;
|
|
2739
2747
|
const isChecked = input.checked;
|
|
2748
|
+
// Update internal state
|
|
2740
2749
|
this._internalChecked.set(isChecked);
|
|
2750
|
+
this._internalIndeterminate.set(false); // Clear indeterminate when explicitly checked/unchecked
|
|
2751
|
+
// Emit change event
|
|
2752
|
+
this.changed.emit({
|
|
2753
|
+
checked: isChecked,
|
|
2754
|
+
value: this.value(),
|
|
2755
|
+
});
|
|
2756
|
+
// Notify reactive form
|
|
2741
2757
|
this.onChangeFn(isChecked);
|
|
2742
|
-
this.checkChanged.emit(isChecked);
|
|
2743
|
-
}
|
|
2744
|
-
onBlur() {
|
|
2745
2758
|
this.onTouchedFn();
|
|
2746
2759
|
}
|
|
2747
|
-
|
|
2748
|
-
return this.indeterminate() ? 'mixed' : String(this.isChecked());
|
|
2749
|
-
});
|
|
2750
|
-
onKeydown(event) {
|
|
2760
|
+
handleKeyDown(event) {
|
|
2751
2761
|
// Ignore interactions when skeleton is active
|
|
2752
|
-
if (this.
|
|
2762
|
+
if (this.isSkeleton())
|
|
2753
2763
|
return;
|
|
2754
|
-
if ((event.code === 'Space' || event.key === ' ') && !this.
|
|
2764
|
+
if ((event.code === 'Space' || event.key === ' ') && !this.isDisabled()) {
|
|
2755
2765
|
event.preventDefault();
|
|
2756
2766
|
const newValue = !this.isChecked();
|
|
2767
|
+
// Update internal state
|
|
2757
2768
|
this._internalChecked.set(newValue);
|
|
2769
|
+
this._internalIndeterminate.set(false);
|
|
2770
|
+
// Emit change event
|
|
2771
|
+
this.changed.emit({
|
|
2772
|
+
checked: newValue,
|
|
2773
|
+
value: this.value(),
|
|
2774
|
+
});
|
|
2775
|
+
// Notify reactive form
|
|
2758
2776
|
this.onChangeFn(newValue);
|
|
2759
|
-
this.checkChanged.emit(newValue);
|
|
2760
2777
|
this.onTouchedFn();
|
|
2761
2778
|
}
|
|
2762
2779
|
}
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
this._internalChecked.set(newValue);
|
|
2771
|
-
this.onChangeFn(newValue);
|
|
2772
|
-
this.checkChanged.emit(newValue);
|
|
2773
|
-
this.onTouchedFn();
|
|
2780
|
+
// ControlValueAccessor implementation
|
|
2781
|
+
writeValue(value) {
|
|
2782
|
+
this._internalChecked.set(!!value);
|
|
2783
|
+
this._internalIndeterminate.set(false);
|
|
2784
|
+
}
|
|
2785
|
+
registerOnChange(fn) {
|
|
2786
|
+
this.onChangeFn = fn;
|
|
2774
2787
|
}
|
|
2788
|
+
registerOnTouched(fn) {
|
|
2789
|
+
this.onTouchedFn = fn;
|
|
2790
|
+
}
|
|
2791
|
+
classes = computed(() => {
|
|
2792
|
+
const c = [
|
|
2793
|
+
'c-checkbox',
|
|
2794
|
+
`c-checkbox--${this.state()}`,
|
|
2795
|
+
this.isSkeleton() ? 'c-checkbox--skeleton' : '',
|
|
2796
|
+
this.isError() ? 'c-checkbox--error' : '',
|
|
2797
|
+
];
|
|
2798
|
+
return c.filter(Boolean).join(' ');
|
|
2799
|
+
});
|
|
2800
|
+
inputClasses = computed(() => {
|
|
2801
|
+
const c = [
|
|
2802
|
+
'c-checkbox__input',
|
|
2803
|
+
`c-checkbox__input--${this.state()}`,
|
|
2804
|
+
this.isDisabled() ? 'c-checkbox__input--disabled' : '',
|
|
2805
|
+
this.isSkeleton() ? 'c-checkbox__input--skeleton' : '',
|
|
2806
|
+
this.isError() ? 'c-checkbox__input--error' : '',
|
|
2807
|
+
];
|
|
2808
|
+
return c.filter(Boolean).join(' ');
|
|
2809
|
+
});
|
|
2775
2810
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2776
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: CheckboxComponent, isStandalone: true, selector: "lib-checkbox", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null },
|
|
2811
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: CheckboxComponent, isStandalone: true, selector: "lib-checkbox", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, errorActive: { classPropertyName: "errorActive", publicName: "errorActive", isSignal: true, isRequired: false, transformFunction: null }, skeletonActive: { classPropertyName: "skeletonActive", publicName: "skeletonActive", isSignal: true, isRequired: false, transformFunction: null }, 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 }, innerHTML: { classPropertyName: "innerHTML", publicName: "innerHTML", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, providers: [
|
|
2777
2812
|
{
|
|
2778
2813
|
provide: NG_VALUE_ACCESSOR,
|
|
2779
2814
|
useExisting: forwardRef(() => CheckboxComponent),
|
|
2780
2815
|
multi: true,
|
|
2781
2816
|
},
|
|
2782
|
-
], ngImport: i0, template: "<div\n class=\"c-checkbox\"\n [class.has-error]=\"error() && !skeletonActive()\"\n [class.disabled]=\"disabled() && !skeletonActive()\"\n [class.skeleton]=\"skeletonActive()\"\n (click)=\"handleClick()\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur()\"\n [attr.role]=\"'checkbox'\"\n [attr.aria-checked]=\"ariaChecked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.tabindex]=\"-1\"\n>\n <input\n type=\"checkbox\"\n [id]=\"id()\"\n class=\"c-checkbox__input\"\n [checked]=\"isChecked()\"\n [disabled]=\"disabled()\"\n (change)=\"handleChange($event)\"\n (blur)=\"onBlur()\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n />\n\n <div class=\"c-checkbox__input-wrapper\">\n <span\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n class=\"c-checkbox__custom\"\n [ngClass]=\"[\n 'c-checkbox__custom',\n indeterminate() && !skeletonActive()\n ? 'c-checkbox__custom--indeterminate'\n : ''\n ]\"\n [class.checked]=\"isChecked() && !skeletonActive()\"\n [class.disabled]=\"disabled() && !skeletonActive()\"\n [class.skeleton]=\"skeletonActive()\"\n >\n @if (isChecked() && !indeterminate() && !skeletonActive()) {\n <svg class=\"c-checkbox__tick\" viewBox=\"0 0 24 24\">\n <polyline points=\"4 12 10 18 20 6\"></polyline>\n </svg>\n } @if (indeterminate() && !skeletonActive()) {\n <div class=\"c-checkbox__indeterminate\"></div>\n }\n </span>\n </div>\n\n @if (skeletonActive()) {\n <div class=\"c-checkbox__skeleton-bar\"><span></span></div>\n } @else {\n <lib-input-label\n class=\"c-checkbox__text\"\n [text]=\"label()\"\n [innerHTML]=\"innerHTML()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n ></lib-input-label>\n }\n</div>\n", styles: [":host{display:block;height:20px}.c-checkbox{display:flex;align-items:flex-start;gap:var(--space-component-gap-sm);cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--typography-label-md-default-family),sans-serif;font-weight:var(--typography-label-md-default-weight);font-size:var(--typography-label-md-default-size);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing);color:var(--color-core-content-default)}.c-checkbox__input{display:none}.c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-action-primary-selected-background-default);border-color:var(--color-action-primary-selected-background-default)}.c-checkbox__input:checked:hover+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-action-primary-selected-background-hover);border-color:var(--color-action-primary-selected-background-hover)}.c-checkbox__input:focus+.c-checkbox__input-wrapper .c-checkbox__custom{outline:2px solid var(--focus-outset)}.c-checkbox__input:disabled+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-textfield-border-disabled)}.c-checkbox__input:disabled:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-textfield-border-disabled);background-color:var(--color-textfield-background-disabled)}.c-checkbox__input:disabled:checked+.c-checkbox__input-wrapper .c-checkbox__custom .c-checkbox__tick{stroke:var(--color-textfield-content-disabled)}.c-checkbox__input:disabled:checked~.c-checkbox__text,.c-checkbox__input:disabled~.c-checkbox__text{color:var(--color-textfield-content-disabled)}.c-checkbox.disabled{cursor:not-allowed}.c-checkbox.skeleton{cursor:progress!important;pointer-events:none!important}.c-checkbox.skeleton .c-checkbox__custom{border-color:var(--color-effect-skeleton-soft)!important;background-color:#fff!important;transition:none!important}.c-checkbox.skeleton .c-checkbox__custom:hover,.c-checkbox.skeleton .c-checkbox__custom:active,.c-checkbox.skeleton .c-checkbox__custom:focus,.c-checkbox.skeleton .c-checkbox__custom:focus-visible,.c-checkbox.skeleton .c-checkbox__custom.checked,.c-checkbox.skeleton .c-checkbox__custom.disabled,.c-checkbox.skeleton .c-checkbox__custom--indeterminate{border-color:var(--color-effect-skeleton-soft)!important;background-color:#fff!important;outline:none!important;box-shadow:none!important}.c-checkbox.skeleton .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:checked:hover+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:focus+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:disabled+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:disabled:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-effect-skeleton-soft)!important;outline:none!important;box-shadow:none!important}.c-checkbox.skeleton .c-checkbox__input:disabled:checked~.c-checkbox__text,.c-checkbox.skeleton .c-checkbox__input:disabled~.c-checkbox__text{color:var(--color-core-content-default)!important}.c-checkbox.skeleton:hover:not(.disabled),.c-checkbox.skeleton:active:not(.disabled),.c-checkbox.skeleton.disabled,.c-checkbox.skeleton.has-error,.c-checkbox.skeleton.has-error:hover:not(.disabled),.c-checkbox.skeleton.has-error:active:not(.disabled){cursor:progress!important}.c-checkbox.skeleton:hover:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton:hover:not(.disabled) .c-checkbox__custom--indeterminate,.c-checkbox.skeleton:active:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton:active:not(.disabled) .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.disabled .c-checkbox__custom,.c-checkbox.skeleton.disabled .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.has-error .c-checkbox__custom,.c-checkbox.skeleton.has-error .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.has-error:hover:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton.has-error:hover:not(.disabled) .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.has-error:active:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton.has-error:active:not(.disabled) .c-checkbox__custom--indeterminate{border-color:var(--color-effect-skeleton-soft)!important}.c-checkbox.skeleton:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.disabled .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.has-error .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.has-error:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.has-error:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-effect-skeleton-soft)!important}.c-checkbox.skeleton .c-checkbox__tick,.c-checkbox.skeleton .c-checkbox__indeterminate{display:none!important}.c-checkbox.has-error .c-checkbox__custom{border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-feedback-danger-surface-border);border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error .c-checkbox__custom--indeterminate{background-color:var(--color-feedback-danger-default);border-color:var(--color-feedback-danger-default)}.c-checkbox.has-error:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-feedback-danger-surface-border);border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error:hover:not(.disabled) .c-checkbox__custom--indeterminate{background-color:var(--color-feedback-danger-default);border-color:var(--color-feedback-danger-default)}.c-checkbox.has-error:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error:active:not(.disabled) .c-checkbox__custom--indeterminate{border-color:var(--color-feedback-danger-default)}.c-checkbox__input-wrapper{height:var(--typography-label-md-default-line-height);display:flex;align-items:center}.c-checkbox__custom{display:flex;align-items:center;justify-content:center;width:.9rem;height:.9rem;border:var(--size-border-width-md) solid var(--color-textfield-border-default);border-radius:var(--size-border-radius-sm);background:#fff;transition:all .2s}.c-checkbox__custom--indeterminate{background-color:var(--color-action-primary-selected-background-default);border-color:var(--color-action-primary-selected-background-default)}.c-checkbox__custom:focus-visible{box-shadow:var(--focus-outset);outline:none}.c-checkbox__tick{width:12px;height:12px;stroke:#fff;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;fill:none;display:block}.c-checkbox:hover:not(.disabled) .c-checkbox__custom{border-color:var(--color-textfield-border-hover)}.c-checkbox:hover:not(.disabled) .c-checkbox__custom--indeterminate{background-color:var(--color-action-primary-selected-background-hover);border-color:var(--color-action-primary-selected-background-hover)}.c-checkbox:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-action-primary-selected-background-hover);border-color:var(--color-action-primary-selected-background-hover)}.c-checkbox:active:not(.disabled) .c-checkbox__custom{border-color:var(--color-textfield-border-pressed)}.c-checkbox:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-action-primary-selected-background-default)}.c-checkbox:active:not(.disabled) .c-checkbox__custom--indeterminate{border-color:var(--color-action-primary-selected-background-default)}.c-checkbox__text{font-size:.875rem}.c-checkbox__indeterminate{width:12px;height:2px;border-radius:1px;background-color:#fff}.c-checkbox__skeleton-bar{width:64px;height:24px;display:flex;align-items:center}.c-checkbox__skeleton-bar span{width:100%;height:8px;border-radius:4px;background-color:var(--color-effect-skeleton-default)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML"] }] });
|
|
2817
|
+
], ngImport: i0, template: "<div [ngClass]=\"classes()\" class=\"c-checkbox\">\n <div class=\"c-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"name()\"\n [ngClass]=\"inputClasses()\"\n [checked]=\"isChecked()\"\n [indeterminate]=\"isIndeterminate()\"\n [disabled]=\"isDisabled()\"\n [name]=\"name()\"\n [value]=\"value()\"\n [attr.aria-label]=\"computedAriaLabel()\"\n [attr.aria-checked]=\"ariaChecked()\"\n (change)=\"handleChange($event)\"\n (keydown)=\"handleKeyDown($event)\"\n />\n </div>\n @if(isSkeleton()) {\n <div class=\"c-checkbox__label__skeleton\">\n <span></span>\n </div>\n } @else {\n <lib-input-label\n [text]=\"label()\"\n [disabled]=\"disabled()\"\n [required]=\"true\"\n [for]=\"name()\"\n [innerHTML]=\"innerHTML()\"\n ></lib-input-label>\n }\n</div>\n", styles: [".c-checkbox{display:flex;align-items:flex-start;gap:var(--space-component-gap-sm)}.c-checkbox__input-wrapper{height:var(--typography-label-md-default-line-height);display:flex;align-items:center}.c-checkbox__label{cursor:pointer}.c-checkbox__label__skeleton{width:64px;height:24px;display:flex;align-items:center}.c-checkbox__label__skeleton span{width:100%;height:8px;background-color:var(--color-effect-skeleton-default);border-radius:var(--size-border-radius-sm, 4px)}.c-checkbox--skeleton .c-checkbox__label{cursor:default;pointer-events:none}.c-checkbox input[type=checkbox]{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-default, #929a99);background-color:var(--color-textfield-background-default);border-radius:var(--size-border-radius-sm, 4px);display:grid;place-content:center;cursor:pointer}.c-checkbox input[type=checkbox]:hover{border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-hover, #7d8483)}.c-checkbox input[type=checkbox]:not(:disabled):not(.c-checkbox__input--skeleton):focus-visible{box-shadow:var(--focus-outset);outline:none}.c-checkbox input[type=checkbox].c-checkbox__input--error{border-color:var(--color-feedback-danger-default, #ba2f1e)}.c-checkbox input[type=checkbox].c-checkbox__input--error:checked,.c-checkbox input[type=checkbox].c-checkbox__input--error:indeterminate,.c-checkbox input[type=checkbox].c-checkbox__input--error:checked:hover,.c-checkbox input[type=checkbox].c-checkbox__input--error:indeterminate:hover{background-color:var(--color-feedback-danger-default, #ba2f1e);border-color:var(--color-feedback-danger-default, #ba2f1e)}.c-checkbox input[type=checkbox]:checked,.c-checkbox input[type=checkbox]:indeterminate{border-color:var(--color-action-primary-selected-background-default, #217870);background-color:var(--color-action-primary-selected-background-default, #217870)}.c-checkbox input[type=checkbox]:checked:hover,.c-checkbox input[type=checkbox]:indeterminate:hover{background-color:var(--color-action-primary-selected-background-hover, #19625b);border-color:var(--color-action-primary-selected-background-hover, #19625b)}.c-checkbox input[type=checkbox]:disabled{border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-disabled, #a6b0af);background:var(--color-textfield-background-disabled, rgba(0, 0, 0, .02));cursor:not-allowed}.c-checkbox input[type=checkbox]:disabled+.c-checkbox__label{pointer-events:none;cursor:not-allowed}.c-checkbox input[type=checkbox]:checked:disabled,.c-checkbox input[type=checkbox]:indeterminate:disabled{border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-disabled, #a6b0af);background:var(--color-textfield-background-disabled, rgba(0, 0, 0, .02));cursor:not-allowed}.c-checkbox input[type=checkbox]:checked:before{content:\"\";width:10px;height:10px;transition:.12s transform ease-in-out;box-shadow:inset 1em 1em #fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.c-checkbox input[type=checkbox]:indeterminate:before{content:\"\";width:10px;height:10px;transition:.12s transform ease-in-out;box-shadow:inset 1em 1em #fff;clip-path:polygon(0% 38%,100% 38%,100% 62%,0 62%)}.c-checkbox input[type=checkbox]:checked:disabled:before,.c-checkbox input[type=checkbox]:indeterminate:disabled:before{box-shadow:inset 1em 1em #7d8483}.c-checkbox input[type=checkbox].c-checkbox__input--skeleton{border-color:var(--color-effect-skeleton-soft);background-color:var(--color-textfield-background-disabled);cursor:not-allowed;pointer-events:none}.c-checkbox input[type=checkbox].c-checkbox__input--skeleton:before{content:none!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML"] }] });
|
|
2783
2818
|
}
|
|
2784
2819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
2785
2820
|
type: Component,
|
|
@@ -2789,7 +2824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
2789
2824
|
useExisting: forwardRef(() => CheckboxComponent),
|
|
2790
2825
|
multi: true,
|
|
2791
2826
|
},
|
|
2792
|
-
], template: "<div\n class=\"c-checkbox\"\n [class.has-error]=\"error() && !skeletonActive()\"\n [class.disabled]=\"disabled() && !skeletonActive()\"\n [class.skeleton]=\"skeletonActive()\"\n (click)=\"handleClick()\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur()\"\n [attr.role]=\"'checkbox'\"\n [attr.aria-checked]=\"ariaChecked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.tabindex]=\"-1\"\n>\n <input\n type=\"checkbox\"\n [id]=\"id()\"\n class=\"c-checkbox__input\"\n [checked]=\"isChecked()\"\n [disabled]=\"disabled()\"\n (change)=\"handleChange($event)\"\n (blur)=\"onBlur()\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n />\n\n <div class=\"c-checkbox__input-wrapper\">\n <span\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n class=\"c-checkbox__custom\"\n [ngClass]=\"[\n 'c-checkbox__custom',\n indeterminate() && !skeletonActive()\n ? 'c-checkbox__custom--indeterminate'\n : ''\n ]\"\n [class.checked]=\"isChecked() && !skeletonActive()\"\n [class.disabled]=\"disabled() && !skeletonActive()\"\n [class.skeleton]=\"skeletonActive()\"\n >\n @if (isChecked() && !indeterminate() && !skeletonActive()) {\n <svg class=\"c-checkbox__tick\" viewBox=\"0 0 24 24\">\n <polyline points=\"4 12 10 18 20 6\"></polyline>\n </svg>\n } @if (indeterminate() && !skeletonActive()) {\n <div class=\"c-checkbox__indeterminate\"></div>\n }\n </span>\n </div>\n\n @if (skeletonActive()) {\n <div class=\"c-checkbox__skeleton-bar\"><span></span></div>\n } @else {\n <lib-input-label\n class=\"c-checkbox__text\"\n [text]=\"label()\"\n [innerHTML]=\"innerHTML()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n ></lib-input-label>\n }\n</div>\n", styles: [":host{display:block;height:20px}.c-checkbox{display:flex;align-items:flex-start;gap:var(--space-component-gap-sm);cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--typography-label-md-default-family),sans-serif;font-weight:var(--typography-label-md-default-weight);font-size:var(--typography-label-md-default-size);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing);color:var(--color-core-content-default)}.c-checkbox__input{display:none}.c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-action-primary-selected-background-default);border-color:var(--color-action-primary-selected-background-default)}.c-checkbox__input:checked:hover+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-action-primary-selected-background-hover);border-color:var(--color-action-primary-selected-background-hover)}.c-checkbox__input:focus+.c-checkbox__input-wrapper .c-checkbox__custom{outline:2px solid var(--focus-outset)}.c-checkbox__input:disabled+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-textfield-border-disabled)}.c-checkbox__input:disabled:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-textfield-border-disabled);background-color:var(--color-textfield-background-disabled)}.c-checkbox__input:disabled:checked+.c-checkbox__input-wrapper .c-checkbox__custom .c-checkbox__tick{stroke:var(--color-textfield-content-disabled)}.c-checkbox__input:disabled:checked~.c-checkbox__text,.c-checkbox__input:disabled~.c-checkbox__text{color:var(--color-textfield-content-disabled)}.c-checkbox.disabled{cursor:not-allowed}.c-checkbox.skeleton{cursor:progress!important;pointer-events:none!important}.c-checkbox.skeleton .c-checkbox__custom{border-color:var(--color-effect-skeleton-soft)!important;background-color:#fff!important;transition:none!important}.c-checkbox.skeleton .c-checkbox__custom:hover,.c-checkbox.skeleton .c-checkbox__custom:active,.c-checkbox.skeleton .c-checkbox__custom:focus,.c-checkbox.skeleton .c-checkbox__custom:focus-visible,.c-checkbox.skeleton .c-checkbox__custom.checked,.c-checkbox.skeleton .c-checkbox__custom.disabled,.c-checkbox.skeleton .c-checkbox__custom--indeterminate{border-color:var(--color-effect-skeleton-soft)!important;background-color:#fff!important;outline:none!important;box-shadow:none!important}.c-checkbox.skeleton .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:checked:hover+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:focus+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:disabled+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton .c-checkbox__input:disabled:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-effect-skeleton-soft)!important;outline:none!important;box-shadow:none!important}.c-checkbox.skeleton .c-checkbox__input:disabled:checked~.c-checkbox__text,.c-checkbox.skeleton .c-checkbox__input:disabled~.c-checkbox__text{color:var(--color-core-content-default)!important}.c-checkbox.skeleton:hover:not(.disabled),.c-checkbox.skeleton:active:not(.disabled),.c-checkbox.skeleton.disabled,.c-checkbox.skeleton.has-error,.c-checkbox.skeleton.has-error:hover:not(.disabled),.c-checkbox.skeleton.has-error:active:not(.disabled){cursor:progress!important}.c-checkbox.skeleton:hover:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton:hover:not(.disabled) .c-checkbox__custom--indeterminate,.c-checkbox.skeleton:active:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton:active:not(.disabled) .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.disabled .c-checkbox__custom,.c-checkbox.skeleton.disabled .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.has-error .c-checkbox__custom,.c-checkbox.skeleton.has-error .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.has-error:hover:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton.has-error:hover:not(.disabled) .c-checkbox__custom--indeterminate,.c-checkbox.skeleton.has-error:active:not(.disabled) .c-checkbox__custom,.c-checkbox.skeleton.has-error:active:not(.disabled) .c-checkbox__custom--indeterminate{border-color:var(--color-effect-skeleton-soft)!important}.c-checkbox.skeleton:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.disabled .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.has-error .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.has-error:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom,.c-checkbox.skeleton.has-error:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-effect-skeleton-soft)!important}.c-checkbox.skeleton .c-checkbox__tick,.c-checkbox.skeleton .c-checkbox__indeterminate{display:none!important}.c-checkbox.has-error .c-checkbox__custom{border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-feedback-danger-surface-border);border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error .c-checkbox__custom--indeterminate{background-color:var(--color-feedback-danger-default);border-color:var(--color-feedback-danger-default)}.c-checkbox.has-error:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-feedback-danger-surface-border);border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error:hover:not(.disabled) .c-checkbox__custom--indeterminate{background-color:var(--color-feedback-danger-default);border-color:var(--color-feedback-danger-default)}.c-checkbox.has-error:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-feedback-danger-surface-border)}.c-checkbox.has-error:active:not(.disabled) .c-checkbox__custom--indeterminate{border-color:var(--color-feedback-danger-default)}.c-checkbox__input-wrapper{height:var(--typography-label-md-default-line-height);display:flex;align-items:center}.c-checkbox__custom{display:flex;align-items:center;justify-content:center;width:.9rem;height:.9rem;border:var(--size-border-width-md) solid var(--color-textfield-border-default);border-radius:var(--size-border-radius-sm);background:#fff;transition:all .2s}.c-checkbox__custom--indeterminate{background-color:var(--color-action-primary-selected-background-default);border-color:var(--color-action-primary-selected-background-default)}.c-checkbox__custom:focus-visible{box-shadow:var(--focus-outset);outline:none}.c-checkbox__tick{width:12px;height:12px;stroke:#fff;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;fill:none;display:block}.c-checkbox:hover:not(.disabled) .c-checkbox__custom{border-color:var(--color-textfield-border-hover)}.c-checkbox:hover:not(.disabled) .c-checkbox__custom--indeterminate{background-color:var(--color-action-primary-selected-background-hover);border-color:var(--color-action-primary-selected-background-hover)}.c-checkbox:hover:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{background-color:var(--color-action-primary-selected-background-hover);border-color:var(--color-action-primary-selected-background-hover)}.c-checkbox:active:not(.disabled) .c-checkbox__custom{border-color:var(--color-textfield-border-pressed)}.c-checkbox:active:not(.disabled) .c-checkbox__input:checked+.c-checkbox__input-wrapper .c-checkbox__custom{border-color:var(--color-action-primary-selected-background-default)}.c-checkbox:active:not(.disabled) .c-checkbox__custom--indeterminate{border-color:var(--color-action-primary-selected-background-default)}.c-checkbox__text{font-size:.875rem}.c-checkbox__indeterminate{width:12px;height:2px;border-radius:1px;background-color:#fff}.c-checkbox__skeleton-bar{width:64px;height:24px;display:flex;align-items:center}.c-checkbox__skeleton-bar span{width:100%;height:8px;border-radius:4px;background-color:var(--color-effect-skeleton-default)}\n"] }]
|
|
2827
|
+
], template: "<div [ngClass]=\"classes()\" class=\"c-checkbox\">\n <div class=\"c-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"name()\"\n [ngClass]=\"inputClasses()\"\n [checked]=\"isChecked()\"\n [indeterminate]=\"isIndeterminate()\"\n [disabled]=\"isDisabled()\"\n [name]=\"name()\"\n [value]=\"value()\"\n [attr.aria-label]=\"computedAriaLabel()\"\n [attr.aria-checked]=\"ariaChecked()\"\n (change)=\"handleChange($event)\"\n (keydown)=\"handleKeyDown($event)\"\n />\n </div>\n @if(isSkeleton()) {\n <div class=\"c-checkbox__label__skeleton\">\n <span></span>\n </div>\n } @else {\n <lib-input-label\n [text]=\"label()\"\n [disabled]=\"disabled()\"\n [required]=\"true\"\n [for]=\"name()\"\n [innerHTML]=\"innerHTML()\"\n ></lib-input-label>\n }\n</div>\n", styles: [".c-checkbox{display:flex;align-items:flex-start;gap:var(--space-component-gap-sm)}.c-checkbox__input-wrapper{height:var(--typography-label-md-default-line-height);display:flex;align-items:center}.c-checkbox__label{cursor:pointer}.c-checkbox__label__skeleton{width:64px;height:24px;display:flex;align-items:center}.c-checkbox__label__skeleton span{width:100%;height:8px;background-color:var(--color-effect-skeleton-default);border-radius:var(--size-border-radius-sm, 4px)}.c-checkbox--skeleton .c-checkbox__label{cursor:default;pointer-events:none}.c-checkbox input[type=checkbox]{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-default, #929a99);background-color:var(--color-textfield-background-default);border-radius:var(--size-border-radius-sm, 4px);display:grid;place-content:center;cursor:pointer}.c-checkbox input[type=checkbox]:hover{border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-hover, #7d8483)}.c-checkbox input[type=checkbox]:not(:disabled):not(.c-checkbox__input--skeleton):focus-visible{box-shadow:var(--focus-outset);outline:none}.c-checkbox input[type=checkbox].c-checkbox__input--error{border-color:var(--color-feedback-danger-default, #ba2f1e)}.c-checkbox input[type=checkbox].c-checkbox__input--error:checked,.c-checkbox input[type=checkbox].c-checkbox__input--error:indeterminate,.c-checkbox input[type=checkbox].c-checkbox__input--error:checked:hover,.c-checkbox input[type=checkbox].c-checkbox__input--error:indeterminate:hover{background-color:var(--color-feedback-danger-default, #ba2f1e);border-color:var(--color-feedback-danger-default, #ba2f1e)}.c-checkbox input[type=checkbox]:checked,.c-checkbox input[type=checkbox]:indeterminate{border-color:var(--color-action-primary-selected-background-default, #217870);background-color:var(--color-action-primary-selected-background-default, #217870)}.c-checkbox input[type=checkbox]:checked:hover,.c-checkbox input[type=checkbox]:indeterminate:hover{background-color:var(--color-action-primary-selected-background-hover, #19625b);border-color:var(--color-action-primary-selected-background-hover, #19625b)}.c-checkbox input[type=checkbox]:disabled{border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-disabled, #a6b0af);background:var(--color-textfield-background-disabled, rgba(0, 0, 0, .02));cursor:not-allowed}.c-checkbox input[type=checkbox]:disabled+.c-checkbox__label{pointer-events:none;cursor:not-allowed}.c-checkbox input[type=checkbox]:checked:disabled,.c-checkbox input[type=checkbox]:indeterminate:disabled{border:var(--size-border-width-md, 2px) solid var(--color-textfield-border-disabled, #a6b0af);background:var(--color-textfield-background-disabled, rgba(0, 0, 0, .02));cursor:not-allowed}.c-checkbox input[type=checkbox]:checked:before{content:\"\";width:10px;height:10px;transition:.12s transform ease-in-out;box-shadow:inset 1em 1em #fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.c-checkbox input[type=checkbox]:indeterminate:before{content:\"\";width:10px;height:10px;transition:.12s transform ease-in-out;box-shadow:inset 1em 1em #fff;clip-path:polygon(0% 38%,100% 38%,100% 62%,0 62%)}.c-checkbox input[type=checkbox]:checked:disabled:before,.c-checkbox input[type=checkbox]:indeterminate:disabled:before{box-shadow:inset 1em 1em #7d8483}.c-checkbox input[type=checkbox].c-checkbox__input--skeleton{border-color:var(--color-effect-skeleton-soft);background-color:var(--color-textfield-background-disabled);cursor:not-allowed;pointer-events:none}.c-checkbox input[type=checkbox].c-checkbox__input--skeleton:before{content:none!important}\n"] }]
|
|
2793
2828
|
}], ctorParameters: () => [] });
|
|
2794
2829
|
|
|
2795
2830
|
class HelperTextComponent {
|
|
@@ -2837,37 +2872,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
2837
2872
|
}] } });
|
|
2838
2873
|
|
|
2839
2874
|
class CheckboxGroupComponent {
|
|
2840
|
-
legend = '';
|
|
2841
|
-
parentLabel = '';
|
|
2842
|
-
name = '';
|
|
2843
|
-
helperText = '';
|
|
2844
|
-
options = [];
|
|
2845
|
-
skeletonActive = false;
|
|
2875
|
+
legend = input('');
|
|
2876
|
+
parentLabel = input('');
|
|
2877
|
+
name = input('');
|
|
2878
|
+
helperText = input('');
|
|
2879
|
+
options = input([]);
|
|
2880
|
+
skeletonActive = input(false);
|
|
2881
|
+
required = input(false);
|
|
2882
|
+
selectedChange = output();
|
|
2883
|
+
// Internal state for options to make them reactive
|
|
2884
|
+
optionsSignal = signal([]);
|
|
2885
|
+
constructor() {
|
|
2886
|
+
// Watch for changes to the options input and update internal signal
|
|
2887
|
+
effect(() => {
|
|
2888
|
+
this.optionsSignal.set(this.options());
|
|
2889
|
+
});
|
|
2890
|
+
}
|
|
2846
2891
|
// Get currently selected values from options
|
|
2847
2892
|
get selected() {
|
|
2848
|
-
return this.
|
|
2893
|
+
return this.optionsSignal()
|
|
2849
2894
|
.filter((option) => option.checked)
|
|
2850
2895
|
.map((option) => option.value);
|
|
2851
2896
|
}
|
|
2852
|
-
selectedChange = new EventEmitter();
|
|
2853
2897
|
// Parent checkbox state calculations
|
|
2854
2898
|
get parentChecked() {
|
|
2855
2899
|
// Parent is checked if ALL non-disabled children are checked
|
|
2856
|
-
const enabledOptions = this.
|
|
2900
|
+
const enabledOptions = this.optionsSignal().filter((option) => !option.disabled);
|
|
2857
2901
|
return (enabledOptions.length > 0 &&
|
|
2858
2902
|
enabledOptions.every((option) => option.checked));
|
|
2859
2903
|
}
|
|
2860
2904
|
get parentIndeterminate() {
|
|
2861
2905
|
// Parent is indeterminate if SOME (but not all) non-disabled children are checked
|
|
2862
|
-
const enabledOptions = this.
|
|
2906
|
+
const enabledOptions = this.optionsSignal().filter((option) => !option.disabled);
|
|
2863
2907
|
const checkedEnabledOptions = enabledOptions.filter((option) => option.checked);
|
|
2864
2908
|
return (checkedEnabledOptions.length > 0 &&
|
|
2865
2909
|
checkedEnabledOptions.length < enabledOptions.length);
|
|
2866
2910
|
}
|
|
2911
|
+
// Computed parent state for the checkbox component
|
|
2912
|
+
get parentState() {
|
|
2913
|
+
if (this.parentIndeterminate)
|
|
2914
|
+
return 'undetermined';
|
|
2915
|
+
if (this.parentChecked)
|
|
2916
|
+
return 'checked';
|
|
2917
|
+
return 'unchecked';
|
|
2918
|
+
}
|
|
2867
2919
|
onParentClick() {
|
|
2920
|
+
const currentOptions = [...this.optionsSignal()];
|
|
2868
2921
|
if (this.parentIndeterminate) {
|
|
2869
2922
|
// Rule: If parent is indeterminate and clicked, check it (select all enabled)
|
|
2870
|
-
|
|
2923
|
+
currentOptions.forEach((option) => {
|
|
2871
2924
|
if (!option.disabled) {
|
|
2872
2925
|
option.checked = true;
|
|
2873
2926
|
}
|
|
@@ -2875,7 +2928,7 @@ class CheckboxGroupComponent {
|
|
|
2875
2928
|
}
|
|
2876
2929
|
else if (this.parentChecked) {
|
|
2877
2930
|
// Rule: If parent is checked and clicked, uncheck it (unselect all enabled)
|
|
2878
|
-
|
|
2931
|
+
currentOptions.forEach((option) => {
|
|
2879
2932
|
if (!option.disabled) {
|
|
2880
2933
|
option.checked = false;
|
|
2881
2934
|
}
|
|
@@ -2883,51 +2936,44 @@ class CheckboxGroupComponent {
|
|
|
2883
2936
|
}
|
|
2884
2937
|
else {
|
|
2885
2938
|
// Rule: If parent is unchecked and clicked, check it (select all enabled)
|
|
2886
|
-
|
|
2939
|
+
currentOptions.forEach((option) => {
|
|
2887
2940
|
if (!option.disabled) {
|
|
2888
2941
|
option.checked = true;
|
|
2889
2942
|
}
|
|
2890
2943
|
});
|
|
2891
2944
|
}
|
|
2945
|
+
this.optionsSignal.set(currentOptions);
|
|
2892
2946
|
this.selectedChange.emit(this.selected);
|
|
2893
2947
|
}
|
|
2894
|
-
onChildChange(value,
|
|
2948
|
+
onChildChange(value, event) {
|
|
2949
|
+
const currentOptions = [...this.optionsSignal()];
|
|
2895
2950
|
// Find and update the specific option
|
|
2896
|
-
const option =
|
|
2951
|
+
const option = currentOptions.find((opt) => opt.value === value);
|
|
2897
2952
|
if (option) {
|
|
2898
|
-
option.checked = checked;
|
|
2953
|
+
option.checked = event.checked;
|
|
2899
2954
|
}
|
|
2955
|
+
this.optionsSignal.set(currentOptions);
|
|
2900
2956
|
this.selectedChange.emit(this.selected);
|
|
2901
2957
|
}
|
|
2902
2958
|
trackByValue(_idx, opt) {
|
|
2903
2959
|
return opt.value;
|
|
2904
2960
|
}
|
|
2961
|
+
// Method to get options for template
|
|
2962
|
+
getOptions() {
|
|
2963
|
+
return this.optionsSignal();
|
|
2964
|
+
}
|
|
2905
2965
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: CheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2906
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2966
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: CheckboxGroupComponent, isStandalone: true, selector: "lib-checkbox-group", inputs: { legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, parentLabel: { classPropertyName: "parentLabel", publicName: "parentLabel", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, helperText: { classPropertyName: "helperText", publicName: "helperText", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, skeletonActive: { classPropertyName: "skeletonActive", publicName: "skeletonActive", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, ngImport: i0, template: "<fieldset class=\"c-checkbox-group\">\n <lib-input-label\n *ngIf=\"legend()\"\n [text]=\"legend()\"\n [required]=\"required()\"\n [size]=\"'sm'\"\n ></lib-input-label>\n\n <div class=\"c-checkbox-group__options\">\n <lib-checkbox\n [label]=\"parentLabel()\"\n [state]=\"parentState\"\n (changed)=\"onParentClick()\"\n class=\"c-checkbox-group__parent\"\n [skeletonActive]=\"skeletonActive()\"\n [name]=\"name() + '-parent'\"\n [value]=\"'parent'\"\n ></lib-checkbox>\n\n <div class=\"c-checkbox-group__childrens\">\n <lib-checkbox\n *ngFor=\"let option of getOptions(); trackBy: trackByValue\"\n [label]=\"option.label\"\n [state]=\"option.checked ? 'checked' : 'unchecked'\"\n [disabled]=\"option.disabled || false\"\n (changed)=\"onChildChange(option.value, $event)\"\n class=\"c-checkbox-group__child\"\n [skeletonActive]=\"skeletonActive()\"\n [name]=\"name() + '-' + option.value\"\n [value]=\"option.value\"\n ></lib-checkbox>\n </div>\n <p *ngIf=\"helperText()\" class=\"c-checkbox-group__helper\">\n <lib-helper-text variant=\"danger\" [text]=\"helperText()\"></lib-helper-text>\n </p>\n </div>\n</fieldset>\n", styles: [".c-checkbox-group{display:flex;flex-direction:column;gap:var(--space-container-gap-sm);border:0;padding:0}.c-checkbox-group__options{display:flex;flex-direction:column;gap:var(--space-container-gap-md);padding-left:6px}.c-checkbox-group__childrens{display:flex;flex-direction:column;gap:var(--space-container-gap-md);padding-left:var(--space-container-padding-md)}.c-checkbox-group__helper{display:flex;align-items:center;gap:var(--space-component-gap-sm);font-family:var(--typography-label-md-strong-family),sans-serif;font-weight:var(--typography-label-sm-default-weight);font-size:var(--typography-label-sm-size);line-height:var(--typography-label-sm-line-height);letter-spacing:var(--typography-label-sm-letter-spacing);color:var(--color-feedback-danger-default);padding:0;margin:0;padding-left:var(--space-container-padding-md)}.c-checkbox-group__icon{display:flex}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckboxComponent, selector: "lib-checkbox", inputs: ["label", "state", "errorActive", "skeletonActive", "disabled", "name", "value", "innerHTML", "ariaLabel"], outputs: ["changed"] }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass"] }] });
|
|
2907
2967
|
}
|
|
2908
2968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
|
|
2909
2969
|
type: Component,
|
|
2910
|
-
args: [{ selector: 'lib-checkbox-group',
|
|
2970
|
+
args: [{ selector: 'lib-checkbox-group', imports: [
|
|
2911
2971
|
CommonModule,
|
|
2912
2972
|
CheckboxComponent,
|
|
2913
2973
|
InputLabelComponent,
|
|
2914
2974
|
HelperTextComponent,
|
|
2915
|
-
], template: "<fieldset class=\"c-checkbox-group\">\n <lib-input-label\n *ngIf=\"legend\"\n [text]=\"legend\"\n [required]=\"
|
|
2916
|
-
}],
|
|
2917
|
-
type: Input
|
|
2918
|
-
}], parentLabel: [{
|
|
2919
|
-
type: Input
|
|
2920
|
-
}], name: [{
|
|
2921
|
-
type: Input
|
|
2922
|
-
}], helperText: [{
|
|
2923
|
-
type: Input
|
|
2924
|
-
}], options: [{
|
|
2925
|
-
type: Input
|
|
2926
|
-
}], skeletonActive: [{
|
|
2927
|
-
type: Input
|
|
2928
|
-
}], selectedChange: [{
|
|
2929
|
-
type: Output
|
|
2930
|
-
}] } });
|
|
2975
|
+
], template: "<fieldset class=\"c-checkbox-group\">\n <lib-input-label\n *ngIf=\"legend()\"\n [text]=\"legend()\"\n [required]=\"required()\"\n [size]=\"'sm'\"\n ></lib-input-label>\n\n <div class=\"c-checkbox-group__options\">\n <lib-checkbox\n [label]=\"parentLabel()\"\n [state]=\"parentState\"\n (changed)=\"onParentClick()\"\n class=\"c-checkbox-group__parent\"\n [skeletonActive]=\"skeletonActive()\"\n [name]=\"name() + '-parent'\"\n [value]=\"'parent'\"\n ></lib-checkbox>\n\n <div class=\"c-checkbox-group__childrens\">\n <lib-checkbox\n *ngFor=\"let option of getOptions(); trackBy: trackByValue\"\n [label]=\"option.label\"\n [state]=\"option.checked ? 'checked' : 'unchecked'\"\n [disabled]=\"option.disabled || false\"\n (changed)=\"onChildChange(option.value, $event)\"\n class=\"c-checkbox-group__child\"\n [skeletonActive]=\"skeletonActive()\"\n [name]=\"name() + '-' + option.value\"\n [value]=\"option.value\"\n ></lib-checkbox>\n </div>\n <p *ngIf=\"helperText()\" class=\"c-checkbox-group__helper\">\n <lib-helper-text variant=\"danger\" [text]=\"helperText()\"></lib-helper-text>\n </p>\n </div>\n</fieldset>\n", styles: [".c-checkbox-group{display:flex;flex-direction:column;gap:var(--space-container-gap-sm);border:0;padding:0}.c-checkbox-group__options{display:flex;flex-direction:column;gap:var(--space-container-gap-md);padding-left:6px}.c-checkbox-group__childrens{display:flex;flex-direction:column;gap:var(--space-container-gap-md);padding-left:var(--space-container-padding-md)}.c-checkbox-group__helper{display:flex;align-items:center;gap:var(--space-component-gap-sm);font-family:var(--typography-label-md-strong-family),sans-serif;font-weight:var(--typography-label-sm-default-weight);font-size:var(--typography-label-sm-size);line-height:var(--typography-label-sm-line-height);letter-spacing:var(--typography-label-sm-letter-spacing);color:var(--color-feedback-danger-default);padding:0;margin:0;padding-left:var(--space-container-padding-md)}.c-checkbox-group__icon{display:flex}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"] }]
|
|
2976
|
+
}], ctorParameters: () => [] });
|
|
2931
2977
|
|
|
2932
2978
|
class ChipsComponent {
|
|
2933
2979
|
options = input([]);
|
|
@@ -4088,7 +4134,7 @@ class SelectComponent {
|
|
|
4088
4134
|
useExisting: forwardRef(() => SelectComponent),
|
|
4089
4135
|
multi: true,
|
|
4090
4136
|
},
|
|
4091
|
-
], viewQueries: [{ propertyName: "container", first: true, predicate: ["selectionContainer"], descendants: true, static: true }, { propertyName: "badgeElems", predicate: ["badgeElem"], descendants: true }], ngImport: i0, template: "<div\n class=\"c-select\"\n [class.c-select--multiple]=\"multiple\"\n [class.c-select--full-width]=\"fullWidth\"\n>\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [text]=\"label\"\n ></lib-input-label>\n\n <div\n class=\"c-select__wrapper\"\n aria-expanded=\"false\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"toggleDropdown()\"\n (blur)=\"onBlur()\"\n tabindex=\"0\"\n role=\"combobox\"\n aria-controls=\"selectionContainer\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"label ? label : 'Select'\"\n >\n <div\n class=\"c-select__selection\"\n [class.is-error]=\"error\"\n [class.is-success]=\"success\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [class.c-select__selection--md]=\"size === 'md'\"\n [class.c-select__selection--sm]=\"size === 'sm'\"\n [class.c-select__selection--lg]=\"size === 'lg'\"\n #selectionContainer\n id=\"selectionContainer\"\n >\n <ng-container *ngIf=\"selectedOptions.length; else placeholderTpl\">\n <span\n #badgeElem\n *ngFor=\"let sel of visibleBadges\"\n class=\"c-select__badge\"\n [class.c-select__badge--multiple]=\"multiple\"\n [class.is-disabled]=\"disabled\"\n >\n {{ sel.label }}\n <lib-icon\n name=\"x-regular\"\n *ngIf=\"multiple && !disabled\"\n size=\"sm\"\n (click)=\"onDelete(sel)\"\n iconBefore\n />\n <lib-icon\n name=\"x-regular\"\n color=\"button-neutral-content-disabled\"\n *ngIf=\"multiple && disabled\"\n size=\"sm\"\n iconBefore\n />\n </span>\n\n <span\n *ngIf=\"hiddenCount > 0\"\n class=\"c-select__badge c-select__badge--more\"\n >\n +{{ hiddenCount }}\n </span>\n </ng-container>\n <ng-template #placeholderTpl>{{ placeholder }}</ng-template>\n\n <span class=\"c-select__arrow\" *ngIf=\"!isOpen\">\n <lib-icon name=\"caretdown-regular\" size=\"lg\" iconBefore/>\n </span>\n <span class=\"c-select__arrow\" *ngIf=\"isOpen\">\n <lib-icon name=\"caretup-regular\" size=\"lg\" iconBefore/>\n </span>\n </div>\n\n <div class=\"c-select__dropdown\" *ngIf=\"isOpen\" role=\"listbox\">\n <div class=\"c-select__search-wrapper\" *ngIf=\"searchable\">\n <lib-input-search\n [(ngModel)]=\"filterText\"\n (emitValue)=\"onSearch($event)\"\n (input)=\"filterOptions()\"\n placeholder=\"Search...\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Filtrar opciones\"\n />\n </div>\n\n <div *ngFor=\"let group of filteredOptions\">\n <div class=\"c-select__group-label\">{{ group.label }}</div>\n\n <div\n class=\"c-select__option\"\n *ngFor=\"let opt of group.options\"\n [class.is-selected]=\"isSelected(opt)\"\n (click)=\"$event.stopPropagation(); selectOption(opt)\"\n (keydown.enter)=\"$event.stopPropagation(); selectOption(opt)\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n >\n <lib-checkbox\n *ngIf=\"multiple\"\n label=\"\"\n [disabled]=\"disabled\"\n [checked]=\"isSelected(opt)\"\n class=\"c-tile__check\"\n ></lib-checkbox>\n <span class=\"c-select__option-label\">{{ opt.label }}</span>\n <lib-icon\n *ngIf=\"!multiple && !disabled && isSelected(opt)\"\n name=\"checkcircle-regular\"\n color=\"feedback-success-default\"\n size=\"sm\"\n iconBefore\n />\n </div>\n </div>\n </div>\n </div>\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"password-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text [text]=\"helperText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text variant=\"danger\" [text]=\"alertText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text variant=\"success\" [text]=\"successText\"></lib-helper-text>\n </span>\n</div>\n", styles: [".c-select{display:flex;flex-direction:column;gap:var(--space-component-gap-sm, .25rem);max-width:300px}.c-select--full-width{max-width:100%}.c-select__search-wrapper{padding:var(--space-container-padding-sm, 1rem)}.c-select__dropdown{position:absolute;width:100%;max-height:25rem;overflow-y:auto;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-core-border-soft, #d6e0df);background:var(--color-core-background-surface-raised, #fff);box-shadow:0 0 4px 0 var(--color-effect-shadow-soft, rgba(4, 37, 34, .12)),0 2px 4px 0 var(--color-effect-shadow-strong, rgba(4, 37, 34, .16));scrollbar-width:thin;scrollbar-color:var(--color-effect-overlay, rgba(0, 0, 0, .16)) transparent}.c-select__badge{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge.is-disabled{background:var(--color-action-neutral-background-disabled, rgba(255, 255, 255, 0))}.c-select__badge--more{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge--multiple{display:flex;height:1.5rem;padding-left:var(--space-component-padding-sm, .5rem);padding-right:var(--space-component-padding-sm, .5rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);border-radius:var(--size-textfield-border-radius, .5rem);background:var(--color-feedback-neutral-surface-background, #dee7e6);color:var(--color-feedback-neutral-default, #535858);text-align:center;font-family:var(--typography-label-xs-strong-family, Satoshi);font-size:var(--typography-label-xs-strong-size, .75rem);font-style:normal;font-weight:var(--typography-label-xs-strong-weight, 700);line-height:var(--typography-label-xs-strong-line-height, 1rem);letter-spacing:var(--typography-label-xs-strong-letter-spacing, 0rem)}.c-select__wrapper{position:relative}.c-select__group-label{display:flex;min-height:3rem;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);color:var(--color-core-content-soft, #535858);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option{display:flex;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);background:var(--color-action-neutral-background-default, rgba(255, 255, 255, 0));color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-default-family, Satoshi);font-size:var(--typography-label-sm-default-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-default-weight, 400);line-height:var(--typography-label-sm-default-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-default-letter-spacing, 0rem);cursor:pointer;justify-content:space-between}.c-select__option.is-selected{color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option:hover{background:var(--color-action-neutral-background-hover, rgba(0, 0, 0, .04))}.c-select__option-label{display:flex;justify-self:flex-start;margin:0 auto 0 0}.c-select__selection{display:flex;padding:var(--space-component-padding-md, .75rem) 2.5rem var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);align-self:stretch;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-textfield-border-default, #929a99);background:var(--color-textfield-background-default, #fff);color:var(--color-textfield-content-placeholder, #676d6c);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem);cursor:pointer;overflow:hidden;position:relative}.c-select__selection:focus-visible{border:var(--size-textfield-border-width) solid var(--color-textfield-border-active);outline:none}.c-select__selection--sm,.c-select__selection--md{padding:var(--space-component-padding-xs) 2rem var(--space-component-padding-xs) 2rem}.c-select__selection.is-error{border-color:var(--color-textfield-border-error)}.c-select__selection.is-success{border-color:var(--color-feedback-success-surface-border)}.c-select__selection.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-select__selection.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-select__arrow{position:absolute;right:1.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["size", "icon", "name", "color"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass"] }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML"] }, { kind: "component", type: InputSearchComponent, selector: "lib-input-search", inputs: ["label", "placeholder", "helperText", "alertText", "successText", "error", "success", "disabled", "readonly", "required", "size", "fullWidth"], outputs: ["emitValue"] }, { kind: "component", type: CheckboxComponent, selector: "lib-checkbox", inputs: ["label", "id", "checked", "disabled", "error", "skeletonActive", "indeterminate", "innerHTML", "required"], outputs: ["checkChanged"] }] });
|
|
4137
|
+
], viewQueries: [{ propertyName: "container", first: true, predicate: ["selectionContainer"], descendants: true, static: true }, { propertyName: "badgeElems", predicate: ["badgeElem"], descendants: true }], ngImport: i0, template: "<div\n class=\"c-select\"\n [class.c-select--multiple]=\"multiple\"\n [class.c-select--full-width]=\"fullWidth\"\n>\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [text]=\"label\"\n ></lib-input-label>\n\n <div\n class=\"c-select__wrapper\"\n aria-expanded=\"false\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"toggleDropdown()\"\n (blur)=\"onBlur()\"\n tabindex=\"0\"\n role=\"combobox\"\n aria-controls=\"selectionContainer\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"label ? label : 'Select'\"\n >\n <div\n class=\"c-select__selection\"\n [class.is-error]=\"error\"\n [class.is-success]=\"success\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [class.c-select__selection--md]=\"size === 'md'\"\n [class.c-select__selection--sm]=\"size === 'sm'\"\n [class.c-select__selection--lg]=\"size === 'lg'\"\n #selectionContainer\n id=\"selectionContainer\"\n >\n <ng-container *ngIf=\"selectedOptions.length; else placeholderTpl\">\n <span\n #badgeElem\n *ngFor=\"let sel of visibleBadges\"\n class=\"c-select__badge\"\n [class.c-select__badge--multiple]=\"multiple\"\n [class.is-disabled]=\"disabled\"\n >\n {{ sel.label }}\n <lib-icon\n name=\"x-regular\"\n *ngIf=\"multiple && !disabled\"\n size=\"sm\"\n (click)=\"onDelete(sel)\"\n iconBefore\n />\n <lib-icon\n name=\"x-regular\"\n color=\"button-neutral-content-disabled\"\n *ngIf=\"multiple && disabled\"\n size=\"sm\"\n iconBefore\n />\n </span>\n\n <span\n *ngIf=\"hiddenCount > 0\"\n class=\"c-select__badge c-select__badge--more\"\n >\n +{{ hiddenCount }}\n </span>\n </ng-container>\n <ng-template #placeholderTpl>{{ placeholder }}</ng-template>\n\n <span class=\"c-select__arrow\" *ngIf=\"!isOpen\">\n <lib-icon name=\"caretdown-regular\" size=\"lg\" iconBefore />\n </span>\n <span class=\"c-select__arrow\" *ngIf=\"isOpen\">\n <lib-icon name=\"caretup-regular\" size=\"lg\" iconBefore />\n </span>\n </div>\n\n <div class=\"c-select__dropdown\" *ngIf=\"isOpen\" role=\"listbox\">\n <div class=\"c-select__search-wrapper\" *ngIf=\"searchable\">\n <lib-input-search\n [(ngModel)]=\"filterText\"\n (emitValue)=\"onSearch($event)\"\n (input)=\"filterOptions()\"\n placeholder=\"Search...\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Filtrar opciones\"\n />\n </div>\n\n <div *ngFor=\"let group of filteredOptions\">\n <div class=\"c-select__group-label\">{{ group.label }}</div>\n\n <div\n class=\"c-select__option\"\n *ngFor=\"let opt of group.options\"\n [class.is-selected]=\"isSelected(opt)\"\n (click)=\"$event.stopPropagation(); selectOption(opt)\"\n (keydown.enter)=\"$event.stopPropagation(); selectOption(opt)\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n >\n <lib-checkbox\n *ngIf=\"multiple\"\n label=\"\"\n [disabled]=\"disabled\"\n [state]=\"isSelected(opt) ? 'checked' : 'unchecked'\"\n class=\"c-tile__check\"\n ></lib-checkbox>\n <span class=\"c-select__option-label\">{{ opt.label }}</span>\n <lib-icon\n *ngIf=\"!multiple && !disabled && isSelected(opt)\"\n name=\"checkcircle-regular\"\n color=\"feedback-success-default\"\n size=\"sm\"\n iconBefore\n />\n </div>\n </div>\n </div>\n </div>\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"password-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text [text]=\"helperText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text variant=\"danger\" [text]=\"alertText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text variant=\"success\" [text]=\"successText\"></lib-helper-text>\n </span>\n</div>\n", styles: [".c-select{display:flex;flex-direction:column;gap:var(--space-component-gap-sm, .25rem);max-width:300px}.c-select--full-width{max-width:100%}.c-select__search-wrapper{padding:var(--space-container-padding-sm, 1rem)}.c-select__dropdown{position:absolute;width:100%;max-height:25rem;overflow-y:auto;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-core-border-soft, #d6e0df);background:var(--color-core-background-surface-raised, #fff);box-shadow:0 0 4px 0 var(--color-effect-shadow-soft, rgba(4, 37, 34, .12)),0 2px 4px 0 var(--color-effect-shadow-strong, rgba(4, 37, 34, .16));scrollbar-width:thin;scrollbar-color:var(--color-effect-overlay, rgba(0, 0, 0, .16)) transparent}.c-select__badge{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge.is-disabled{background:var(--color-action-neutral-background-disabled, rgba(255, 255, 255, 0))}.c-select__badge--more{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge--multiple{display:flex;height:1.5rem;padding-left:var(--space-component-padding-sm, .5rem);padding-right:var(--space-component-padding-sm, .5rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);border-radius:var(--size-textfield-border-radius, .5rem);background:var(--color-feedback-neutral-surface-background, #dee7e6);color:var(--color-feedback-neutral-default, #535858);text-align:center;font-family:var(--typography-label-xs-strong-family, Satoshi);font-size:var(--typography-label-xs-strong-size, .75rem);font-style:normal;font-weight:var(--typography-label-xs-strong-weight, 700);line-height:var(--typography-label-xs-strong-line-height, 1rem);letter-spacing:var(--typography-label-xs-strong-letter-spacing, 0rem)}.c-select__wrapper{position:relative}.c-select__group-label{display:flex;min-height:3rem;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);color:var(--color-core-content-soft, #535858);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option{display:flex;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);background:var(--color-action-neutral-background-default, rgba(255, 255, 255, 0));color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-default-family, Satoshi);font-size:var(--typography-label-sm-default-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-default-weight, 400);line-height:var(--typography-label-sm-default-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-default-letter-spacing, 0rem);cursor:pointer;justify-content:space-between}.c-select__option.is-selected{color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option:hover{background:var(--color-action-neutral-background-hover, rgba(0, 0, 0, .04))}.c-select__option-label{display:flex;justify-self:flex-start;margin:0 auto 0 0}.c-select__selection{display:flex;padding:var(--space-component-padding-md, .75rem) 2.5rem var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);align-self:stretch;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-textfield-border-default, #929a99);background:var(--color-textfield-background-default, #fff);color:var(--color-textfield-content-placeholder, #676d6c);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem);cursor:pointer;overflow:hidden;position:relative}.c-select__selection:focus-visible{border:var(--size-textfield-border-width) solid var(--color-textfield-border-active);outline:none}.c-select__selection--sm,.c-select__selection--md{padding:var(--space-component-padding-xs) 2rem var(--space-component-padding-xs) 2rem}.c-select__selection.is-error{border-color:var(--color-textfield-border-error)}.c-select__selection.is-success{border-color:var(--color-feedback-success-surface-border)}.c-select__selection.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-select__selection.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-select__arrow{position:absolute;right:1.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["size", "icon", "name", "color"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass"] }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML"] }, { kind: "component", type: InputSearchComponent, selector: "lib-input-search", inputs: ["label", "placeholder", "helperText", "alertText", "successText", "error", "success", "disabled", "readonly", "required", "size", "fullWidth"], outputs: ["emitValue"] }, { kind: "component", type: CheckboxComponent, selector: "lib-checkbox", inputs: ["label", "state", "errorActive", "skeletonActive", "disabled", "name", "value", "innerHTML", "ariaLabel"], outputs: ["changed"] }] });
|
|
4092
4138
|
}
|
|
4093
4139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SelectComponent, decorators: [{
|
|
4094
4140
|
type: Component,
|
|
@@ -4107,7 +4153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
4107
4153
|
useExisting: forwardRef(() => SelectComponent),
|
|
4108
4154
|
multi: true,
|
|
4109
4155
|
},
|
|
4110
|
-
], template: "<div\n class=\"c-select\"\n [class.c-select--multiple]=\"multiple\"\n [class.c-select--full-width]=\"fullWidth\"\n>\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [text]=\"label\"\n ></lib-input-label>\n\n <div\n class=\"c-select__wrapper\"\n aria-expanded=\"false\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"toggleDropdown()\"\n (blur)=\"onBlur()\"\n tabindex=\"0\"\n role=\"combobox\"\n aria-controls=\"selectionContainer\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"label ? label : 'Select'\"\n >\n <div\n class=\"c-select__selection\"\n [class.is-error]=\"error\"\n [class.is-success]=\"success\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [class.c-select__selection--md]=\"size === 'md'\"\n [class.c-select__selection--sm]=\"size === 'sm'\"\n [class.c-select__selection--lg]=\"size === 'lg'\"\n #selectionContainer\n id=\"selectionContainer\"\n >\n <ng-container *ngIf=\"selectedOptions.length; else placeholderTpl\">\n <span\n #badgeElem\n *ngFor=\"let sel of visibleBadges\"\n class=\"c-select__badge\"\n [class.c-select__badge--multiple]=\"multiple\"\n [class.is-disabled]=\"disabled\"\n >\n {{ sel.label }}\n <lib-icon\n name=\"x-regular\"\n *ngIf=\"multiple && !disabled\"\n size=\"sm\"\n (click)=\"onDelete(sel)\"\n iconBefore\n />\n <lib-icon\n name=\"x-regular\"\n color=\"button-neutral-content-disabled\"\n *ngIf=\"multiple && disabled\"\n size=\"sm\"\n iconBefore\n />\n </span>\n\n <span\n *ngIf=\"hiddenCount > 0\"\n class=\"c-select__badge c-select__badge--more\"\n >\n +{{ hiddenCount }}\n </span>\n </ng-container>\n <ng-template #placeholderTpl>{{ placeholder }}</ng-template>\n\n <span class=\"c-select__arrow\" *ngIf=\"!isOpen\">\n <lib-icon name=\"caretdown-regular\" size=\"lg\" iconBefore/>\n </span>\n <span class=\"c-select__arrow\" *ngIf=\"isOpen\">\n <lib-icon name=\"caretup-regular\" size=\"lg\" iconBefore/>\n </span>\n </div>\n\n <div class=\"c-select__dropdown\" *ngIf=\"isOpen\" role=\"listbox\">\n <div class=\"c-select__search-wrapper\" *ngIf=\"searchable\">\n <lib-input-search\n [(ngModel)]=\"filterText\"\n (emitValue)=\"onSearch($event)\"\n (input)=\"filterOptions()\"\n placeholder=\"Search...\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Filtrar opciones\"\n />\n </div>\n\n <div *ngFor=\"let group of filteredOptions\">\n <div class=\"c-select__group-label\">{{ group.label }}</div>\n\n <div\n class=\"c-select__option\"\n *ngFor=\"let opt of group.options\"\n [class.is-selected]=\"isSelected(opt)\"\n (click)=\"$event.stopPropagation(); selectOption(opt)\"\n (keydown.enter)=\"$event.stopPropagation(); selectOption(opt)\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n >\n <lib-checkbox\n *ngIf=\"multiple\"\n label=\"\"\n [disabled]=\"disabled\"\n [checked]=\"isSelected(opt)\"\n class=\"c-tile__check\"\n ></lib-checkbox>\n <span class=\"c-select__option-label\">{{ opt.label }}</span>\n <lib-icon\n *ngIf=\"!multiple && !disabled && isSelected(opt)\"\n name=\"checkcircle-regular\"\n color=\"feedback-success-default\"\n size=\"sm\"\n iconBefore\n />\n </div>\n </div>\n </div>\n </div>\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"password-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text [text]=\"helperText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text variant=\"danger\" [text]=\"alertText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text variant=\"success\" [text]=\"successText\"></lib-helper-text>\n </span>\n</div>\n", styles: [".c-select{display:flex;flex-direction:column;gap:var(--space-component-gap-sm, .25rem);max-width:300px}.c-select--full-width{max-width:100%}.c-select__search-wrapper{padding:var(--space-container-padding-sm, 1rem)}.c-select__dropdown{position:absolute;width:100%;max-height:25rem;overflow-y:auto;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-core-border-soft, #d6e0df);background:var(--color-core-background-surface-raised, #fff);box-shadow:0 0 4px 0 var(--color-effect-shadow-soft, rgba(4, 37, 34, .12)),0 2px 4px 0 var(--color-effect-shadow-strong, rgba(4, 37, 34, .16));scrollbar-width:thin;scrollbar-color:var(--color-effect-overlay, rgba(0, 0, 0, .16)) transparent}.c-select__badge{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge.is-disabled{background:var(--color-action-neutral-background-disabled, rgba(255, 255, 255, 0))}.c-select__badge--more{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge--multiple{display:flex;height:1.5rem;padding-left:var(--space-component-padding-sm, .5rem);padding-right:var(--space-component-padding-sm, .5rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);border-radius:var(--size-textfield-border-radius, .5rem);background:var(--color-feedback-neutral-surface-background, #dee7e6);color:var(--color-feedback-neutral-default, #535858);text-align:center;font-family:var(--typography-label-xs-strong-family, Satoshi);font-size:var(--typography-label-xs-strong-size, .75rem);font-style:normal;font-weight:var(--typography-label-xs-strong-weight, 700);line-height:var(--typography-label-xs-strong-line-height, 1rem);letter-spacing:var(--typography-label-xs-strong-letter-spacing, 0rem)}.c-select__wrapper{position:relative}.c-select__group-label{display:flex;min-height:3rem;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);color:var(--color-core-content-soft, #535858);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option{display:flex;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);background:var(--color-action-neutral-background-default, rgba(255, 255, 255, 0));color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-default-family, Satoshi);font-size:var(--typography-label-sm-default-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-default-weight, 400);line-height:var(--typography-label-sm-default-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-default-letter-spacing, 0rem);cursor:pointer;justify-content:space-between}.c-select__option.is-selected{color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option:hover{background:var(--color-action-neutral-background-hover, rgba(0, 0, 0, .04))}.c-select__option-label{display:flex;justify-self:flex-start;margin:0 auto 0 0}.c-select__selection{display:flex;padding:var(--space-component-padding-md, .75rem) 2.5rem var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);align-self:stretch;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-textfield-border-default, #929a99);background:var(--color-textfield-background-default, #fff);color:var(--color-textfield-content-placeholder, #676d6c);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem);cursor:pointer;overflow:hidden;position:relative}.c-select__selection:focus-visible{border:var(--size-textfield-border-width) solid var(--color-textfield-border-active);outline:none}.c-select__selection--sm,.c-select__selection--md{padding:var(--space-component-padding-xs) 2rem var(--space-component-padding-xs) 2rem}.c-select__selection.is-error{border-color:var(--color-textfield-border-error)}.c-select__selection.is-success{border-color:var(--color-feedback-success-surface-border)}.c-select__selection.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-select__selection.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-select__arrow{position:absolute;right:1.5rem}\n"] }]
|
|
4156
|
+
], template: "<div\n class=\"c-select\"\n [class.c-select--multiple]=\"multiple\"\n [class.c-select--full-width]=\"fullWidth\"\n>\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [text]=\"label\"\n ></lib-input-label>\n\n <div\n class=\"c-select__wrapper\"\n aria-expanded=\"false\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"toggleDropdown()\"\n (blur)=\"onBlur()\"\n tabindex=\"0\"\n role=\"combobox\"\n aria-controls=\"selectionContainer\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"label ? label : 'Select'\"\n >\n <div\n class=\"c-select__selection\"\n [class.is-error]=\"error\"\n [class.is-success]=\"success\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [class.c-select__selection--md]=\"size === 'md'\"\n [class.c-select__selection--sm]=\"size === 'sm'\"\n [class.c-select__selection--lg]=\"size === 'lg'\"\n #selectionContainer\n id=\"selectionContainer\"\n >\n <ng-container *ngIf=\"selectedOptions.length; else placeholderTpl\">\n <span\n #badgeElem\n *ngFor=\"let sel of visibleBadges\"\n class=\"c-select__badge\"\n [class.c-select__badge--multiple]=\"multiple\"\n [class.is-disabled]=\"disabled\"\n >\n {{ sel.label }}\n <lib-icon\n name=\"x-regular\"\n *ngIf=\"multiple && !disabled\"\n size=\"sm\"\n (click)=\"onDelete(sel)\"\n iconBefore\n />\n <lib-icon\n name=\"x-regular\"\n color=\"button-neutral-content-disabled\"\n *ngIf=\"multiple && disabled\"\n size=\"sm\"\n iconBefore\n />\n </span>\n\n <span\n *ngIf=\"hiddenCount > 0\"\n class=\"c-select__badge c-select__badge--more\"\n >\n +{{ hiddenCount }}\n </span>\n </ng-container>\n <ng-template #placeholderTpl>{{ placeholder }}</ng-template>\n\n <span class=\"c-select__arrow\" *ngIf=\"!isOpen\">\n <lib-icon name=\"caretdown-regular\" size=\"lg\" iconBefore />\n </span>\n <span class=\"c-select__arrow\" *ngIf=\"isOpen\">\n <lib-icon name=\"caretup-regular\" size=\"lg\" iconBefore />\n </span>\n </div>\n\n <div class=\"c-select__dropdown\" *ngIf=\"isOpen\" role=\"listbox\">\n <div class=\"c-select__search-wrapper\" *ngIf=\"searchable\">\n <lib-input-search\n [(ngModel)]=\"filterText\"\n (emitValue)=\"onSearch($event)\"\n (input)=\"filterOptions()\"\n placeholder=\"Search...\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Filtrar opciones\"\n />\n </div>\n\n <div *ngFor=\"let group of filteredOptions\">\n <div class=\"c-select__group-label\">{{ group.label }}</div>\n\n <div\n class=\"c-select__option\"\n *ngFor=\"let opt of group.options\"\n [class.is-selected]=\"isSelected(opt)\"\n (click)=\"$event.stopPropagation(); selectOption(opt)\"\n (keydown.enter)=\"$event.stopPropagation(); selectOption(opt)\"\n tabindex=\"0\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n >\n <lib-checkbox\n *ngIf=\"multiple\"\n label=\"\"\n [disabled]=\"disabled\"\n [state]=\"isSelected(opt) ? 'checked' : 'unchecked'\"\n class=\"c-tile__check\"\n ></lib-checkbox>\n <span class=\"c-select__option-label\">{{ opt.label }}</span>\n <lib-icon\n *ngIf=\"!multiple && !disabled && isSelected(opt)\"\n name=\"checkcircle-regular\"\n color=\"feedback-success-default\"\n size=\"sm\"\n iconBefore\n />\n </div>\n </div>\n </div>\n </div>\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"password-input-helper\"\n class=\"c-text-input__helper\"\n >\n <lib-helper-text [text]=\"helperText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text variant=\"danger\" [text]=\"alertText\"></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text variant=\"success\" [text]=\"successText\"></lib-helper-text>\n </span>\n</div>\n", styles: [".c-select{display:flex;flex-direction:column;gap:var(--space-component-gap-sm, .25rem);max-width:300px}.c-select--full-width{max-width:100%}.c-select__search-wrapper{padding:var(--space-container-padding-sm, 1rem)}.c-select__dropdown{position:absolute;width:100%;max-height:25rem;overflow-y:auto;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-core-border-soft, #d6e0df);background:var(--color-core-background-surface-raised, #fff);box-shadow:0 0 4px 0 var(--color-effect-shadow-soft, rgba(4, 37, 34, .12)),0 2px 4px 0 var(--color-effect-shadow-strong, rgba(4, 37, 34, .16));scrollbar-width:thin;scrollbar-color:var(--color-effect-overlay, rgba(0, 0, 0, .16)) transparent}.c-select__badge{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge.is-disabled{background:var(--color-action-neutral-background-disabled, rgba(255, 255, 255, 0))}.c-select__badge--more{color:var(--color-textfield-content-default, #070707);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem)}.c-select__badge--multiple{display:flex;height:1.5rem;padding-left:var(--space-component-padding-sm, .5rem);padding-right:var(--space-component-padding-sm, .5rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);border-radius:var(--size-textfield-border-radius, .5rem);background:var(--color-feedback-neutral-surface-background, #dee7e6);color:var(--color-feedback-neutral-default, #535858);text-align:center;font-family:var(--typography-label-xs-strong-family, Satoshi);font-size:var(--typography-label-xs-strong-size, .75rem);font-style:normal;font-weight:var(--typography-label-xs-strong-weight, 700);line-height:var(--typography-label-xs-strong-line-height, 1rem);letter-spacing:var(--typography-label-xs-strong-letter-spacing, 0rem)}.c-select__wrapper{position:relative}.c-select__group-label{display:flex;min-height:3rem;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);color:var(--color-core-content-soft, #535858);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option{display:flex;padding:var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);background:var(--color-action-neutral-background-default, rgba(255, 255, 255, 0));color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-default-family, Satoshi);font-size:var(--typography-label-sm-default-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-default-weight, 400);line-height:var(--typography-label-sm-default-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-default-letter-spacing, 0rem);cursor:pointer;justify-content:space-between}.c-select__option.is-selected{color:var(--color-action-neutral-content-default, #070707);font-family:var(--typography-label-sm-strong-family, Satoshi);font-size:var(--typography-label-sm-strong-size, .875rem);font-style:normal;font-weight:var(--typography-label-sm-strong-weight, 700);line-height:var(--typography-label-sm-strong-line-height, 1.25rem);letter-spacing:var(--typography-label-sm-strong-letter-spacing, 0rem)}.c-select__option:hover{background:var(--color-action-neutral-background-hover, rgba(0, 0, 0, .04))}.c-select__option-label{display:flex;justify-self:flex-start;margin:0 auto 0 0}.c-select__selection{display:flex;padding:var(--space-component-padding-md, .75rem) 2.5rem var(--space-component-padding-md, .75rem) var(--space-component-padding-lg, 1rem);align-items:center;gap:var(--space-component-gap-sm, .25rem);align-self:stretch;border-radius:var(--size-textfield-border-radius, .5rem);border:var(--size-textfield-border-width, 1px) solid var(--color-textfield-border-default, #929a99);background:var(--color-textfield-background-default, #fff);color:var(--color-textfield-content-placeholder, #676d6c);font-family:var(--typography-label-md-default-family, Satoshi);font-size:var(--typography-label-md-default-size, 1rem);font-style:normal;font-weight:var(--typography-label-md-default-weight, 400);line-height:var(--typography-label-md-default-line-height, 1.5rem);letter-spacing:var(--typography-label-md-default-letter-spacing, 0rem);cursor:pointer;overflow:hidden;position:relative}.c-select__selection:focus-visible{border:var(--size-textfield-border-width) solid var(--color-textfield-border-active);outline:none}.c-select__selection--sm,.c-select__selection--md{padding:var(--space-component-padding-xs) 2rem var(--space-component-padding-xs) 2rem}.c-select__selection.is-error{border-color:var(--color-textfield-border-error)}.c-select__selection.is-success{border-color:var(--color-feedback-success-surface-border)}.c-select__selection.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-select__selection.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-select__arrow{position:absolute;right:1.5rem}\n"] }]
|
|
4111
4157
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { options: [{
|
|
4112
4158
|
type: Input
|
|
4113
4159
|
}], multiple: [{
|
|
@@ -4179,11 +4225,11 @@ class SocialLoginComponent {
|
|
|
4179
4225
|
}
|
|
4180
4226
|
}
|
|
4181
4227
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SocialLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4182
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SocialLoginComponent, isStandalone: true, selector: "lib-social-login", inputs: { provider: { classPropertyName: "provider", publicName: "provider", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button\n type=\"button\"\n [ngClass]=\"classes\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"text()\"\n>\n <!-- Square variant: centered icon only -->\n @if (variant() === 'square') {\n <div class=\"c-social-login__icon-container\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n </div>\n }\n\n <!-- Text variant: icon + text -->\n @if (variant() === 'text') {\n <div class=\"c-social-login__content\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n <span class=\"c-social-login__text\">{{ text() }}</span>\n </div>\n }\n</button>\n", styles: [".c-social-login{display:flex;align-items:center;justify-content:center;width:100%;height:48px;cursor:pointer;font-family:var(--typography-label-md-strong-family),sans-serif;font-weight:var(--typography-label-md-strong-weight);font-size:var(--typography-label-md-strong-size);line-height:var(--typography-label-md-strong-line-height);letter-spacing:var(--typography-label-md-strong-letter-spacing);border:var(--size-button-border-width) solid var(--color-
|
|
4228
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: SocialLoginComponent, isStandalone: true, selector: "lib-social-login", inputs: { provider: { classPropertyName: "provider", publicName: "provider", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button\n type=\"button\"\n [ngClass]=\"classes\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"text()\"\n>\n <!-- Square variant: centered icon only -->\n @if (variant() === 'square') {\n <div class=\"c-social-login__icon-container\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n </div>\n }\n\n <!-- Text variant: icon + text -->\n @if (variant() === 'text') {\n <div class=\"c-social-login__content\">\n <div class=\"c-social-login__content__icon-container\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n </div>\n <span class=\"c-social-login__text\">{{ text() }}</span>\n </div>\n }\n</button>\n", styles: [".c-social-login{display:flex;align-items:center;justify-content:center;width:100%;height:48px;cursor:pointer;font-family:var(--typography-label-md-strong-family),sans-serif;font-weight:var(--typography-label-md-strong-weight);font-size:var(--typography-label-md-strong-size);line-height:var(--typography-label-md-strong-line-height);letter-spacing:var(--typography-label-md-strong-letter-spacing);border:var(--size-button-border-width) solid var(--color-core-border-default);border-radius:var(--size-button-border-radius);background-color:var(--color-button-neutral-background-default);color:var(--color-button-neutral-content-default)}.c-social-login:hover{background-color:var(--color-button-neutral-background-hover);border-color:var(--color-core-border-default);color:var(--color-button-neutral-content-hover)}.c-social-login:active{background-color:var(--color-button-neutral-background-pressed);border-color:var(--color-core-border-default);color:var(--color-button-neutral-content-pressed)}.c-social-login:focus-visible{color:var(--color-button-neutral-content-default);outline:2px solid var(--color-effect-focus-color);outline-offset:2px}.c-social-login:disabled{background-color:var(--color-button-neutral-background-disabled);border-color:var(--color-core-border-soft);color:var(--color-button-neutral-content-disabled);cursor:not-allowed}.c-social-login:disabled .c-social-login__icon-container,.c-social-login:disabled .c-social-login__content__icon-container{opacity:.24}.c-social-login--text{padding-inline:var(--space-component-padding-xl);gap:var(--space-component-gap-md)}.c-social-login--text .c-social-login__content{display:flex;align-items:center;justify-content:center;gap:var(--space-component-gap-md);width:100%}.c-social-login--text .c-social-login__content__icon-container{display:flex;align-items:center}.c-social-login--square{width:48px}.c-social-login--square .c-social-login__icon-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["size", "icon", "name", "color"] }] });
|
|
4183
4229
|
}
|
|
4184
4230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SocialLoginComponent, decorators: [{
|
|
4185
4231
|
type: Component,
|
|
4186
|
-
args: [{ selector: 'lib-social-login', imports: [CommonModule, IconComponent], template: "<button\n type=\"button\"\n [ngClass]=\"classes\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"text()\"\n>\n <!-- Square variant: centered icon only -->\n @if (variant() === 'square') {\n <div class=\"c-social-login__icon-container\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n </div>\n }\n\n <!-- Text variant: icon + text -->\n @if (variant() === 'text') {\n <div class=\"c-social-login__content\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n <span class=\"c-social-login__text\">{{ text() }}</span>\n </div>\n }\n</button>\n", styles: [".c-social-login{display:flex;align-items:center;justify-content:center;width:100%;height:48px;cursor:pointer;font-family:var(--typography-label-md-strong-family),sans-serif;font-weight:var(--typography-label-md-strong-weight);font-size:var(--typography-label-md-strong-size);line-height:var(--typography-label-md-strong-line-height);letter-spacing:var(--typography-label-md-strong-letter-spacing);border:var(--size-button-border-width) solid var(--color-
|
|
4232
|
+
args: [{ selector: 'lib-social-login', imports: [CommonModule, IconComponent], template: "<button\n type=\"button\"\n [ngClass]=\"classes\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"text()\"\n>\n <!-- Square variant: centered icon only -->\n @if (variant() === 'square') {\n <div class=\"c-social-login__icon-container\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n </div>\n }\n\n <!-- Text variant: icon + text -->\n @if (variant() === 'text') {\n <div class=\"c-social-login__content\">\n <div class=\"c-social-login__content__icon-container\">\n <lib-icon [name]=\"getIconName()\" size=\"lg\"> </lib-icon>\n </div>\n <span class=\"c-social-login__text\">{{ text() }}</span>\n </div>\n }\n</button>\n", styles: [".c-social-login{display:flex;align-items:center;justify-content:center;width:100%;height:48px;cursor:pointer;font-family:var(--typography-label-md-strong-family),sans-serif;font-weight:var(--typography-label-md-strong-weight);font-size:var(--typography-label-md-strong-size);line-height:var(--typography-label-md-strong-line-height);letter-spacing:var(--typography-label-md-strong-letter-spacing);border:var(--size-button-border-width) solid var(--color-core-border-default);border-radius:var(--size-button-border-radius);background-color:var(--color-button-neutral-background-default);color:var(--color-button-neutral-content-default)}.c-social-login:hover{background-color:var(--color-button-neutral-background-hover);border-color:var(--color-core-border-default);color:var(--color-button-neutral-content-hover)}.c-social-login:active{background-color:var(--color-button-neutral-background-pressed);border-color:var(--color-core-border-default);color:var(--color-button-neutral-content-pressed)}.c-social-login:focus-visible{color:var(--color-button-neutral-content-default);outline:2px solid var(--color-effect-focus-color);outline-offset:2px}.c-social-login:disabled{background-color:var(--color-button-neutral-background-disabled);border-color:var(--color-core-border-soft);color:var(--color-button-neutral-content-disabled);cursor:not-allowed}.c-social-login:disabled .c-social-login__icon-container,.c-social-login:disabled .c-social-login__content__icon-container{opacity:.24}.c-social-login--text{padding-inline:var(--space-component-padding-xl);gap:var(--space-component-gap-md)}.c-social-login--text .c-social-login__content{display:flex;align-items:center;justify-content:center;gap:var(--space-component-gap-md);width:100%}.c-social-login--text .c-social-login__content__icon-container{display:flex;align-items:center}.c-social-login--square{width:48px}.c-social-login--square .c-social-login__icon-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
|
|
4187
4233
|
}] });
|
|
4188
4234
|
|
|
4189
4235
|
class SwitchComponent {
|
|
@@ -4344,7 +4390,7 @@ class TextInputComponent {
|
|
|
4344
4390
|
useExisting: forwardRef(() => TextInputComponent),
|
|
4345
4391
|
multi: true,
|
|
4346
4392
|
},
|
|
4347
|
-
], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n ></lib-input-label>\n\n <input\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [value]=\"_value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"label\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n [class]=\"helperClass\"\n >\n {{ helperText }}\n </span>\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-icon
|
|
4393
|
+
], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n ></lib-input-label>\n\n <input\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [value]=\"_value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"label\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n [class]=\"helperClass\"\n >\n {{ helperText }}\n </span>\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-icon\n name=\"warning-regular\"\n color=\"feedback-danger-default\"\n size=\"md\"\n ></lib-icon\n >{{ alertText }}\n </span>\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-icon\n name=\"checkcircle-regular\"\n color=\"feedback-success-default\"\n size=\"md\"\n ></lib-icon\n >{{ successText }}\n </span>\n</div>\n", styles: [".c-text-input{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--space-component-padding-md) var(--space-component-padding-lg);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing)}.c-text-input__input:focus-visible{border-color:var(--color-textfield-border-active);box-shadow:0 0 0 1px var(--color-textfield-border-active);outline:none}.c-text-input__input--sm{padding:var(--space-component-padding-xs) var(--space-component-padding-sm)}.c-text-input__input--md{padding:var(--space-component-padding-xs) var(--space-component-padding-md)}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-surface-border)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: InputLabelComponent, selector: "lib-input-label", inputs: ["text", "required", "size", "disabled", "for", "innerHTML"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["size", "icon", "name", "color"] }] });
|
|
4348
4394
|
}
|
|
4349
4395
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
4350
4396
|
type: Component,
|
|
@@ -4359,7 +4405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
4359
4405
|
useExisting: forwardRef(() => TextInputComponent),
|
|
4360
4406
|
multi: true,
|
|
4361
4407
|
},
|
|
4362
|
-
], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n ></lib-input-label>\n\n <input\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [value]=\"_value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"label\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n [class]=\"helperClass\"\n >\n {{ helperText }}\n </span>\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-icon
|
|
4408
|
+
], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n ></lib-input-label>\n\n <input\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [value]=\"_value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"label\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span\n *ngIf=\"helperText && !error && !success\"\n id=\"text-input-helper\"\n class=\"c-text-input__helper\"\n [class]=\"helperClass\"\n >\n {{ helperText }}\n </span>\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-icon\n name=\"warning-regular\"\n color=\"feedback-danger-default\"\n size=\"md\"\n ></lib-icon\n >{{ alertText }}\n </span>\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-icon\n name=\"checkcircle-regular\"\n color=\"feedback-success-default\"\n size=\"md\"\n ></lib-icon\n >{{ successText }}\n </span>\n</div>\n", styles: [".c-text-input{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-component-gap-sm);max-width:300px}.c-text-input--full-width{max-width:100%}.c-text-input__input{border-radius:var(--size-textfield-border-radius);border:var(--size-textfield-border-width) solid var(--color-textfield-border-default);background:var(--color-textfield-background-default);padding:var(--space-component-padding-md) var(--space-component-padding-lg);align-items:center;gap:var(--space-component-gap-sm);align-self:stretch;color:var(--color-textfield-content-default);font-family:var(--typography-label-md-default-family);font-size:var(--typography-label-md-default-size);font-style:normal;font-weight:var(--typography-label-md-default-weight);line-height:var(--typography-label-md-default-line-height);letter-spacing:var(--typography-label-md-default-letter-spacing)}.c-text-input__input:focus-visible{border-color:var(--color-textfield-border-active);box-shadow:0 0 0 1px var(--color-textfield-border-active);outline:none}.c-text-input__input--sm{padding:var(--space-component-padding-xs) var(--space-component-padding-sm)}.c-text-input__input--md{padding:var(--space-component-padding-xs) var(--space-component-padding-md)}.c-text-input__input.is-error{border-color:var(--color-textfield-border-error)}.c-text-input__input.is-success{border-color:var(--color-feedback-success-surface-border)}.c-text-input__input.is-disabled{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled);color:var(--color-textfield-content-disabled)}.c-text-input__input.is-readonly{background-color:var(--color-textfield-background-disabled);border-color:var(--color-textfield-border-disabled)}.c-text-input__alert{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-danger-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__success{display:flex;gap:var(--space-component-gap-sm);color:var(--color-feedback-success-default);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper{color:var(--color-core-content-soft);font-family:var(--typography-label-sm-default-family);font-size:var(--typography-label-sm-default-size);font-style:normal;font-weight:var(--typography-label-sm-default-weight);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-text-input__helper.is-error{color:var(--color-textfield-helper-error)}.c-text-input__helper.is-success{color:var(--color-textfield-helper-success)}.c-text-input__helper.is-default{color:var(--color-textfield-helper-default)}\n"] }]
|
|
4363
4409
|
}], propDecorators: { label: [{
|
|
4364
4410
|
type: Input
|
|
4365
4411
|
}], name: [{
|
|
@@ -4530,11 +4576,11 @@ class TileComponent {
|
|
|
4530
4576
|
this.valueExport.emit(this.value);
|
|
4531
4577
|
}
|
|
4532
4578
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4533
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TileComponent, isStandalone: true, selector: "lib-tile", inputs: { variant: "variant", title: "title", name: "name", value: "value", disabled: "disabled" }, outputs: { valueExport: "valueExport" }, ngImport: i0, template: "<div
|
|
4579
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TileComponent, isStandalone: true, selector: "lib-tile", inputs: { variant: "variant", title: "title", name: "name", value: "value", disabled: "disabled" }, outputs: { valueExport: "valueExport" }, ngImport: i0, template: "<div\n class=\"c-tile\"\n [class.c-tile--selected]=\"value\"\n [class.c-tile--neutral]=\"variant === 'neutral'\"\n [class.c-tile--disabled]=\"disabled\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"onClick()\"\n (keyup.enter)=\"onClick()\"\n>\n <div class=\"c-tile__wrapper\">\n <p class=\"c-tile__title\">{{ title }}</p>\n <lib-radio\n *ngIf=\"variant === 'radio'\"\n [name]=\"name\"\n label=\"\"\n [disabled]=\"disabled\"\n [value]=\"value ? 'true' : ''\"\n class=\"c-tile__check\"\n ></lib-radio>\n <lib-checkbox\n *ngIf=\"variant === 'checkbox'\"\n label=\"\"\n [disabled]=\"disabled\"\n [state]=\"value ? 'checked' : 'unchecked'\"\n class=\"c-tile__check\"\n ></lib-checkbox>\n </div>\n <div class=\"c-tile__content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".c-tile{display:flex;width:18rem;padding:var(--space-page-padding-sm) var(--space-container-padding-sm);flex-direction:column;align-items:flex-start;gap:var(--space-container-gap-sm);border-radius:var(--size-border-radius-md);border:var(--size-border-width-sm) solid var(--color-tile-border-default);background:var(--color-tile-background-default);cursor:pointer}.c-tile:hover{border:var(--size-border-width-sm) solid var(--color-tile-border-hover);background:var(--color-tile-background-hover)}.c-tile--disabled,.c-tile--disabled:hover,.c-tile--disabled.c-tile--selected{border:var(--size-border-width-sm) solid var(--color-tile-border-disabled);background:var(--color-tile-background-disabled)}.c-tile__wrapper{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center}.c-tile--selected,.c-tile--selected:hover{border:var(--size-border-width-sm, 1px) solid var(--color-tile-checked-border-default, #217870);background:var(--color-tile-checked-background-default, #EDFDFA)}.c-tile--neutral:focus-visible{box-shadow:0 0 0 2px var(--color-effect-focus-contrast),0 0 0 4px var(--color-effect-focus-color)}.c-tile:focus-visible .c-tile__check{box-shadow:0 0 0 2px var(--color-effect-focus-contrast),0 0 0 4px var(--color-effect-focus-color)}.c-tile__title{margin:0;color:var(--color-tile-content-default);font-family:var(--typography-label-md-strong-family);font-size:var(--typography-label-md-strong-size);font-style:normal;font-weight:var(--typography-label-md-strong-weight);line-height:var(--typography-label-md-strong-line-height);letter-spacing:var(--typography-label-md-strong-letter-spacing)}.c-tile__check{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RadioComponent, selector: "lib-radio", inputs: ["name", "label", "value", "disabled", "checked", "error", "isLoading", "id"], outputs: ["optionSelected"] }, { kind: "component", type: CheckboxComponent, selector: "lib-checkbox", inputs: ["label", "state", "errorActive", "skeletonActive", "disabled", "name", "value", "innerHTML", "ariaLabel"], outputs: ["changed"] }] });
|
|
4534
4580
|
}
|
|
4535
4581
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TileComponent, decorators: [{
|
|
4536
4582
|
type: Component,
|
|
4537
|
-
args: [{ selector: 'lib-tile', imports: [CommonModule, RadioComponent, CheckboxComponent], template: "<div
|
|
4583
|
+
args: [{ selector: 'lib-tile', imports: [CommonModule, RadioComponent, CheckboxComponent], template: "<div\n class=\"c-tile\"\n [class.c-tile--selected]=\"value\"\n [class.c-tile--neutral]=\"variant === 'neutral'\"\n [class.c-tile--disabled]=\"disabled\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"onClick()\"\n (keyup.enter)=\"onClick()\"\n>\n <div class=\"c-tile__wrapper\">\n <p class=\"c-tile__title\">{{ title }}</p>\n <lib-radio\n *ngIf=\"variant === 'radio'\"\n [name]=\"name\"\n label=\"\"\n [disabled]=\"disabled\"\n [value]=\"value ? 'true' : ''\"\n class=\"c-tile__check\"\n ></lib-radio>\n <lib-checkbox\n *ngIf=\"variant === 'checkbox'\"\n label=\"\"\n [disabled]=\"disabled\"\n [state]=\"value ? 'checked' : 'unchecked'\"\n class=\"c-tile__check\"\n ></lib-checkbox>\n </div>\n <div class=\"c-tile__content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".c-tile{display:flex;width:18rem;padding:var(--space-page-padding-sm) var(--space-container-padding-sm);flex-direction:column;align-items:flex-start;gap:var(--space-container-gap-sm);border-radius:var(--size-border-radius-md);border:var(--size-border-width-sm) solid var(--color-tile-border-default);background:var(--color-tile-background-default);cursor:pointer}.c-tile:hover{border:var(--size-border-width-sm) solid var(--color-tile-border-hover);background:var(--color-tile-background-hover)}.c-tile--disabled,.c-tile--disabled:hover,.c-tile--disabled.c-tile--selected{border:var(--size-border-width-sm) solid var(--color-tile-border-disabled);background:var(--color-tile-background-disabled)}.c-tile__wrapper{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center}.c-tile--selected,.c-tile--selected:hover{border:var(--size-border-width-sm, 1px) solid var(--color-tile-checked-border-default, #217870);background:var(--color-tile-checked-background-default, #EDFDFA)}.c-tile--neutral:focus-visible{box-shadow:0 0 0 2px var(--color-effect-focus-contrast),0 0 0 4px var(--color-effect-focus-color)}.c-tile:focus-visible .c-tile__check{box-shadow:0 0 0 2px var(--color-effect-focus-contrast),0 0 0 4px var(--color-effect-focus-color)}.c-tile__title{margin:0;color:var(--color-tile-content-default);font-family:var(--typography-label-md-strong-family);font-size:var(--typography-label-md-strong-size);font-style:normal;font-weight:var(--typography-label-md-strong-weight);line-height:var(--typography-label-md-strong-line-height);letter-spacing:var(--typography-label-md-strong-letter-spacing)}.c-tile__check{display:flex;align-items:center;justify-content:center}\n"] }]
|
|
4538
4584
|
}], propDecorators: { variant: [{
|
|
4539
4585
|
type: Input
|
|
4540
4586
|
}], title: [{
|