@crowdfarming/oliva-ds 1.73.0 → 1.74.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/crowdfarming-oliva-ds.mjs +228 -256
- package/fesm2022/crowdfarming-oliva-ds.mjs.map +1 -1
- package/lib/input-number/src/index.d.ts +1 -1
- package/lib/input-number/src/lib/input-number/input-number.component.d.ts +36 -38
- package/lib/menu-item/src/lib/menu-item/menu-item.component.d.ts +3 -1
- package/lib/text-input/src/lib/text-input/text-input.component.d.ts +8 -2
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ import { RouterModule, RouterLink, Router, NavigationStart } from '@angular/rout
|
|
|
8
8
|
import * as i1$3 from '@angular/forms';
|
|
9
9
|
import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormControl, FormsModule } from '@angular/forms';
|
|
10
10
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
11
|
+
import { map, distinctUntilChanged } from 'rxjs/operators';
|
|
11
12
|
import { filter } from 'rxjs';
|
|
12
13
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
13
14
|
import * as i1$4 from '@angular/cdk/overlay';
|
|
@@ -4510,52 +4511,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
4510
4511
|
type: Output
|
|
4511
4512
|
}] } });
|
|
4512
4513
|
|
|
4513
|
-
class
|
|
4514
|
-
initialValue = input(undefined);
|
|
4514
|
+
class TextInputComponent {
|
|
4515
4515
|
label = '';
|
|
4516
|
+
name = '';
|
|
4516
4517
|
placeholder = '';
|
|
4517
4518
|
helperText = '';
|
|
4518
|
-
alertText = '';
|
|
4519
|
-
successText = '';
|
|
4520
4519
|
error = false;
|
|
4521
4520
|
success = false;
|
|
4521
|
+
successText = '';
|
|
4522
|
+
alertText = '';
|
|
4522
4523
|
disabled = false;
|
|
4524
|
+
readonly = false;
|
|
4523
4525
|
required = false;
|
|
4524
4526
|
optionalLabel = '';
|
|
4525
|
-
readonly = false;
|
|
4526
4527
|
isLoading = false;
|
|
4528
|
+
type = 'text';
|
|
4529
|
+
inputmode;
|
|
4530
|
+
step;
|
|
4527
4531
|
size = 'md';
|
|
4528
|
-
variant = 'default';
|
|
4529
4532
|
fullWidth = false;
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
step = 1;
|
|
4533
|
+
autocomplete = 'off';
|
|
4534
|
+
regex;
|
|
4533
4535
|
emitValue = new EventEmitter();
|
|
4534
|
-
|
|
4535
|
-
// Effective maximum value (Infinity if not set)
|
|
4536
|
-
get maxValue() {
|
|
4537
|
-
return this.maximum ?? Infinity;
|
|
4538
|
-
}
|
|
4539
|
-
// Computed signals to disable buttons at limits
|
|
4540
|
-
isAtMinimum = computed(() => this.value() <= this.minimum);
|
|
4541
|
-
isAtMaximum = computed(() => this.maxValue !== Infinity && this.value() >= this.maxValue);
|
|
4542
|
-
constructor() {
|
|
4543
|
-
this.value.set(this.minimum);
|
|
4544
|
-
effect(() => {
|
|
4545
|
-
const initial = this.initialValue();
|
|
4546
|
-
if (initial !== undefined) {
|
|
4547
|
-
let clampedValue = Math.max(this.minimum, initial);
|
|
4548
|
-
if (this.maxValue !== Infinity) {
|
|
4549
|
-
clampedValue = Math.min(this.maxValue, clampedValue);
|
|
4550
|
-
}
|
|
4551
|
-
this.value.set(clampedValue);
|
|
4552
|
-
}
|
|
4553
|
-
});
|
|
4554
|
-
}
|
|
4536
|
+
_value = '';
|
|
4555
4537
|
onChangeFn = () => { };
|
|
4556
4538
|
onTouchedFn = () => { };
|
|
4539
|
+
isFullPattern() {
|
|
4540
|
+
return (!!this.regex &&
|
|
4541
|
+
this.regex.startsWith('^') &&
|
|
4542
|
+
this.regex.endsWith('$'));
|
|
4543
|
+
}
|
|
4544
|
+
testRegex(value) {
|
|
4545
|
+
if (!this.regex)
|
|
4546
|
+
return true;
|
|
4547
|
+
return new RegExp(this.regex).test(value);
|
|
4548
|
+
}
|
|
4557
4549
|
writeValue(value) {
|
|
4558
|
-
this.value
|
|
4550
|
+
this._value = value ?? '';
|
|
4559
4551
|
}
|
|
4560
4552
|
registerOnChange(fn) {
|
|
4561
4553
|
this.onChangeFn = fn;
|
|
@@ -4570,117 +4562,241 @@ class InputNumberComponent {
|
|
|
4570
4562
|
return [
|
|
4571
4563
|
'c-text-input__input',
|
|
4572
4564
|
`c-text-input__input--${this.size}`,
|
|
4573
|
-
this.error ? 'is-error' : '',
|
|
4574
|
-
this.success ? 'is-success' : '',
|
|
4565
|
+
this.error ? 'is-error' : this.success ? 'is-success' : 'is-default',
|
|
4575
4566
|
this.disabled ? 'is-disabled' : '',
|
|
4576
4567
|
this.readonly ? 'is-readonly' : '',
|
|
4577
4568
|
this.isLoading ? 'is-loading' : '',
|
|
4578
4569
|
].filter(Boolean);
|
|
4579
4570
|
}
|
|
4580
4571
|
get ariaDescribedBy() {
|
|
4581
|
-
return this.helperText ? '
|
|
4572
|
+
return this.helperText ? 'text-input-helper' : null;
|
|
4582
4573
|
}
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
|
|
4599
|
-
|
|
4600
|
-
|
|
4601
|
-
|
|
4602
|
-
if (this.maxValue === Infinity || newValue <= this.maxValue) {
|
|
4603
|
-
this.value.set(newValue);
|
|
4604
|
-
this.onChangeFn(newValue);
|
|
4605
|
-
this.emitValue.emit(newValue);
|
|
4574
|
+
// Blocks chars (no visual feedback), input sanitizes as fallback
|
|
4575
|
+
onBeforeInput(event) {
|
|
4576
|
+
if (!this.regex || !event.data)
|
|
4577
|
+
return;
|
|
4578
|
+
// For full string patterns, validate the entire resulting value
|
|
4579
|
+
if (this.isFullPattern()) {
|
|
4580
|
+
const input = event.target;
|
|
4581
|
+
const start = input.selectionStart ?? 0;
|
|
4582
|
+
const end = input.selectionEnd ?? 0;
|
|
4583
|
+
const newValue = input.value.slice(0, start) + event.data + input.value.slice(end);
|
|
4584
|
+
if (!this.testRegex(newValue)) {
|
|
4585
|
+
event.preventDefault();
|
|
4586
|
+
}
|
|
4587
|
+
}
|
|
4588
|
+
else {
|
|
4589
|
+
// For char patterns, block invalid characters
|
|
4590
|
+
if (!this.testRegex(event.data)) {
|
|
4591
|
+
event.preventDefault();
|
|
4592
|
+
}
|
|
4606
4593
|
}
|
|
4607
4594
|
}
|
|
4608
|
-
|
|
4609
|
-
const
|
|
4610
|
-
|
|
4611
|
-
if (
|
|
4612
|
-
this.
|
|
4613
|
-
|
|
4614
|
-
|
|
4595
|
+
onInput(event) {
|
|
4596
|
+
const input = event.target;
|
|
4597
|
+
// Sanitize if regex exists
|
|
4598
|
+
if (this.regex) {
|
|
4599
|
+
const sanitized = this.isFullPattern()
|
|
4600
|
+
? this.testRegex(input.value)
|
|
4601
|
+
? input.value
|
|
4602
|
+
: this._value
|
|
4603
|
+
: this.sanitizeValue(input.value);
|
|
4604
|
+
if (sanitized !== input.value) {
|
|
4605
|
+
input.value = sanitized;
|
|
4606
|
+
}
|
|
4607
|
+
this._value = sanitized;
|
|
4608
|
+
}
|
|
4609
|
+
else {
|
|
4610
|
+
this._value = input.value;
|
|
4615
4611
|
}
|
|
4612
|
+
this.onChangeFn(this._value);
|
|
4613
|
+
this.emitValue.emit(this._value);
|
|
4614
|
+
}
|
|
4615
|
+
sanitizeValue(value) {
|
|
4616
|
+
if (!this.regex)
|
|
4617
|
+
return value;
|
|
4618
|
+
return [...value].filter((char) => this.testRegex(char)).join('');
|
|
4616
4619
|
}
|
|
4617
4620
|
onBlur() {
|
|
4618
4621
|
this.onTouchedFn();
|
|
4619
4622
|
}
|
|
4620
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type:
|
|
4621
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4623
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4624
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TextInputComponent, isStandalone: true, selector: "lib-text-input", inputs: { label: "label", name: "name", placeholder: "placeholder", helperText: "helperText", error: "error", success: "success", successText: "successText", alertText: "alertText", disabled: "disabled", readonly: "readonly", required: "required", optionalLabel: "optionalLabel", isLoading: "isLoading", type: "type", inputmode: "inputmode", step: "step", size: "size", fullWidth: "fullWidth", autocomplete: "autocomplete", regex: "regex" }, outputs: { emitValue: "emitValue" }, providers: [
|
|
4622
4625
|
{
|
|
4623
4626
|
provide: NG_VALUE_ACCESSOR,
|
|
4624
|
-
useExisting: forwardRef(() =>
|
|
4627
|
+
useExisting: forwardRef(() => TextInputComponent),
|
|
4625
4628
|
multi: true,
|
|
4626
4629
|
},
|
|
4627
|
-
], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <
|
|
4630
|
+
], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [attr.inputmode]=\"inputmode\"\n [attr.step]=\"step\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\n (beforeinput)=\"onBeforeInput($event)\"\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 >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\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{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;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(--input-padding-y) var(--input-padding-x);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-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 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-strong)}.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__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.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", "isLoading", "textOptional"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass", "disabled", "isLoading"] }] });
|
|
4628
4631
|
}
|
|
4629
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type:
|
|
4632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
4630
4633
|
type: Component,
|
|
4631
|
-
args: [{ selector: 'lib-input
|
|
4634
|
+
args: [{ selector: 'lib-text-input', standalone: true, imports: [
|
|
4632
4635
|
CommonModule,
|
|
4633
4636
|
ReactiveFormsModule,
|
|
4634
4637
|
InputLabelComponent,
|
|
4635
|
-
ButtonIconComponent,
|
|
4636
4638
|
HelperTextComponent,
|
|
4637
4639
|
], providers: [
|
|
4638
4640
|
{
|
|
4639
4641
|
provide: NG_VALUE_ACCESSOR,
|
|
4640
|
-
useExisting: forwardRef(() =>
|
|
4642
|
+
useExisting: forwardRef(() => TextInputComponent),
|
|
4641
4643
|
multi: true,
|
|
4642
4644
|
},
|
|
4643
|
-
], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <
|
|
4644
|
-
}],
|
|
4645
|
+
], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [attr.inputmode]=\"inputmode\"\n [attr.step]=\"step\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\n (beforeinput)=\"onBeforeInput($event)\"\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 >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\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{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;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(--input-padding-y) var(--input-padding-x);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-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 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-strong)}.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__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.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"] }]
|
|
4646
|
+
}], propDecorators: { label: [{
|
|
4647
|
+
type: Input
|
|
4648
|
+
}], name: [{
|
|
4645
4649
|
type: Input
|
|
4646
4650
|
}], placeholder: [{
|
|
4647
4651
|
type: Input
|
|
4648
4652
|
}], helperText: [{
|
|
4649
4653
|
type: Input
|
|
4650
|
-
}], alertText: [{
|
|
4651
|
-
type: Input
|
|
4652
|
-
}], successText: [{
|
|
4653
|
-
type: Input
|
|
4654
4654
|
}], error: [{
|
|
4655
4655
|
type: Input
|
|
4656
4656
|
}], success: [{
|
|
4657
4657
|
type: Input
|
|
4658
|
+
}], successText: [{
|
|
4659
|
+
type: Input
|
|
4660
|
+
}], alertText: [{
|
|
4661
|
+
type: Input
|
|
4658
4662
|
}], disabled: [{
|
|
4659
4663
|
type: Input
|
|
4664
|
+
}], readonly: [{
|
|
4665
|
+
type: Input
|
|
4660
4666
|
}], required: [{
|
|
4661
4667
|
type: Input
|
|
4662
4668
|
}], optionalLabel: [{
|
|
4663
4669
|
type: Input
|
|
4664
|
-
}], readonly: [{
|
|
4665
|
-
type: Input
|
|
4666
4670
|
}], isLoading: [{
|
|
4667
4671
|
type: Input
|
|
4668
|
-
}],
|
|
4672
|
+
}], type: [{
|
|
4669
4673
|
type: Input
|
|
4670
|
-
}],
|
|
4674
|
+
}], inputmode: [{
|
|
4671
4675
|
type: Input
|
|
4672
|
-
}],
|
|
4676
|
+
}], step: [{
|
|
4673
4677
|
type: Input
|
|
4674
|
-
}],
|
|
4678
|
+
}], size: [{
|
|
4675
4679
|
type: Input
|
|
4676
|
-
}],
|
|
4680
|
+
}], fullWidth: [{
|
|
4677
4681
|
type: Input
|
|
4678
|
-
}],
|
|
4682
|
+
}], autocomplete: [{
|
|
4683
|
+
type: Input
|
|
4684
|
+
}], regex: [{
|
|
4679
4685
|
type: Input
|
|
4680
4686
|
}], emitValue: [{
|
|
4681
4687
|
type: Output
|
|
4682
4688
|
}] } });
|
|
4683
4689
|
|
|
4690
|
+
/**
|
|
4691
|
+
* Number input component with automatic comma/dot conversion and validation
|
|
4692
|
+
* Wraps lib-text-input with number formatting logic
|
|
4693
|
+
*/
|
|
4694
|
+
class InputNumberComponent {
|
|
4695
|
+
// Inputs
|
|
4696
|
+
label = input('');
|
|
4697
|
+
placeholder = input('');
|
|
4698
|
+
required = input(false);
|
|
4699
|
+
fullWidth = input(true);
|
|
4700
|
+
error = input(false);
|
|
4701
|
+
alertText = input('');
|
|
4702
|
+
helperText = input('');
|
|
4703
|
+
readonly = input(false);
|
|
4704
|
+
name = input('');
|
|
4705
|
+
size = input('md');
|
|
4706
|
+
autocomplete = input('off');
|
|
4707
|
+
success = input(false);
|
|
4708
|
+
successText = input('');
|
|
4709
|
+
isLoading = input(false);
|
|
4710
|
+
allowDecimals = input(true);
|
|
4711
|
+
allowNegative = input(false);
|
|
4712
|
+
inputmode = input(undefined);
|
|
4713
|
+
regex = input('');
|
|
4714
|
+
decimalSeparator = input('comma');
|
|
4715
|
+
maxDecimals = input(undefined);
|
|
4716
|
+
// Computed values
|
|
4717
|
+
effectiveInputmode = computed(() => this.inputmode() ?? (this.allowDecimals() ? 'decimal' : 'numeric'));
|
|
4718
|
+
regexPattern = computed(() => {
|
|
4719
|
+
if (this.regex())
|
|
4720
|
+
return this.regex();
|
|
4721
|
+
const negative = this.allowNegative() ? '-?' : '';
|
|
4722
|
+
const integer = '[0-9]*';
|
|
4723
|
+
if (!this.allowDecimals())
|
|
4724
|
+
return `^${negative}${integer}$`;
|
|
4725
|
+
const separator = this.decimalSeparator() === 'comma' ? ',' : '\\.';
|
|
4726
|
+
const decimal = this.maxDecimals() !== undefined
|
|
4727
|
+
? `[0-9]{0,${this.maxDecimals()}}`
|
|
4728
|
+
: '[0-9]*';
|
|
4729
|
+
return `^${negative}${integer}${separator}?${decimal}$`;
|
|
4730
|
+
});
|
|
4731
|
+
// Internal control
|
|
4732
|
+
internalControl = new FormControl('', { nonNullable: true });
|
|
4733
|
+
// ControlValueAccessor callbacks
|
|
4734
|
+
onChange = () => { };
|
|
4735
|
+
onTouched = () => { };
|
|
4736
|
+
constructor() {
|
|
4737
|
+
// Parse on every change; distinctUntilChanged prevents redundant emissions
|
|
4738
|
+
this.internalControl.valueChanges
|
|
4739
|
+
.pipe(map((value) => this.parseNumber(value)), distinctUntilChanged(), takeUntilDestroyed())
|
|
4740
|
+
.subscribe((value) => this.onChange(value));
|
|
4741
|
+
}
|
|
4742
|
+
// Convert string to number
|
|
4743
|
+
parseNumber(value) {
|
|
4744
|
+
if (!value)
|
|
4745
|
+
return null;
|
|
4746
|
+
if (value.endsWith('.') || value.endsWith(',')) {
|
|
4747
|
+
return null;
|
|
4748
|
+
}
|
|
4749
|
+
const normalized = value.replace(',', '.');
|
|
4750
|
+
const parsed = parseFloat(normalized);
|
|
4751
|
+
return isNaN(parsed) ? null : parsed;
|
|
4752
|
+
}
|
|
4753
|
+
// Convert number to display string
|
|
4754
|
+
formatNumber(value) {
|
|
4755
|
+
const str = value.toString();
|
|
4756
|
+
return this.decimalSeparator() === 'comma' ? str.replace('.', ',') : str;
|
|
4757
|
+
}
|
|
4758
|
+
// Write value
|
|
4759
|
+
writeValue(value) {
|
|
4760
|
+
const formatted = value === null || value === undefined ? '' : this.formatNumber(value);
|
|
4761
|
+
this.internalControl.setValue(formatted, { emitEvent: false });
|
|
4762
|
+
}
|
|
4763
|
+
// Register change
|
|
4764
|
+
registerOnChange(fn) {
|
|
4765
|
+
this.onChange = fn;
|
|
4766
|
+
}
|
|
4767
|
+
// Register touched
|
|
4768
|
+
registerOnTouched(fn) {
|
|
4769
|
+
this.onTouched = fn;
|
|
4770
|
+
}
|
|
4771
|
+
// Disabled state
|
|
4772
|
+
setDisabledState(isDisabled) {
|
|
4773
|
+
if (isDisabled) {
|
|
4774
|
+
this.internalControl.disable({ emitEvent: false });
|
|
4775
|
+
}
|
|
4776
|
+
else {
|
|
4777
|
+
this.internalControl.enable({ emitEvent: false });
|
|
4778
|
+
}
|
|
4779
|
+
}
|
|
4780
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4781
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.7", type: InputNumberComponent, isStandalone: true, selector: "lib-input-number", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, alertText: { classPropertyName: "alertText", publicName: "alertText", isSignal: true, isRequired: false, transformFunction: null }, helperText: { classPropertyName: "helperText", publicName: "helperText", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, successText: { classPropertyName: "successText", publicName: "successText", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, allowDecimals: { classPropertyName: "allowDecimals", publicName: "allowDecimals", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, inputmode: { classPropertyName: "inputmode", publicName: "inputmode", isSignal: true, isRequired: false, transformFunction: null }, regex: { classPropertyName: "regex", publicName: "regex", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, maxDecimals: { classPropertyName: "maxDecimals", publicName: "maxDecimals", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
4782
|
+
{
|
|
4783
|
+
provide: NG_VALUE_ACCESSOR,
|
|
4784
|
+
useExisting: forwardRef(() => InputNumberComponent),
|
|
4785
|
+
multi: true,
|
|
4786
|
+
},
|
|
4787
|
+
], ngImport: i0, template: "<lib-text-input\n [formControl]=\"internalControl\"\n [label]=\"label()\"\n [name]=\"name()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [fullWidth]=\"fullWidth()\"\n [error]=\"error()\"\n [alertText]=\"alertText()\"\n [helperText]=\"helperText()\"\n [readonly]=\"readonly()\"\n [size]=\"size()\"\n [autocomplete]=\"autocomplete()\"\n [success]=\"success()\"\n [successText]=\"successText()\"\n [isLoading]=\"isLoading()\"\n type=\"text\"\n [inputmode]=\"effectiveInputmode()\"\n [regex]=\"regexPattern()\"\n>\n</lib-text-input>\n", styles: [""], dependencies: [{ kind: "component", type: TextInputComponent, selector: "lib-text-input", inputs: ["label", "name", "placeholder", "helperText", "error", "success", "successText", "alertText", "disabled", "readonly", "required", "optionalLabel", "isLoading", "type", "inputmode", "step", "size", "fullWidth", "autocomplete", "regex"], outputs: ["emitValue"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
4788
|
+
}
|
|
4789
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: InputNumberComponent, decorators: [{
|
|
4790
|
+
type: Component,
|
|
4791
|
+
args: [{ selector: 'lib-input-number', standalone: true, imports: [TextInputComponent, ReactiveFormsModule], providers: [
|
|
4792
|
+
{
|
|
4793
|
+
provide: NG_VALUE_ACCESSOR,
|
|
4794
|
+
useExisting: forwardRef(() => InputNumberComponent),
|
|
4795
|
+
multi: true,
|
|
4796
|
+
},
|
|
4797
|
+
], template: "<lib-text-input\n [formControl]=\"internalControl\"\n [label]=\"label()\"\n [name]=\"name()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [fullWidth]=\"fullWidth()\"\n [error]=\"error()\"\n [alertText]=\"alertText()\"\n [helperText]=\"helperText()\"\n [readonly]=\"readonly()\"\n [size]=\"size()\"\n [autocomplete]=\"autocomplete()\"\n [success]=\"success()\"\n [successText]=\"successText()\"\n [isLoading]=\"isLoading()\"\n type=\"text\"\n [inputmode]=\"effectiveInputmode()\"\n [regex]=\"regexPattern()\"\n>\n</lib-text-input>\n" }]
|
|
4798
|
+
}], ctorParameters: () => [] });
|
|
4799
|
+
|
|
4684
4800
|
class InputPaymentComponent {
|
|
4685
4801
|
label = '';
|
|
4686
4802
|
placeholder = '';
|
|
@@ -5126,6 +5242,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
5126
5242
|
args: [{ selector: 'lib-link', imports: [NgClass, IconComponent, RouterLink], template: "@if (!external()) {\n<a\n [ngClass]=\"[\n 'c-link',\n variantClass(),\n sizeClass(),\n weightClass(),\n underlineClass(),\n disabled() ? 'c-link--disabled' : ''\n ]\"\n [routerLink]=\"href()\"\n [queryParams]=\"queryParams()\"\n [attr.aria-disabled]=\"finalAriaDisabled()\"\n (click)=\"onClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n>\n @if (iconBefore()) {\n <span class=\"c-link__icon\">\n <lib-icon\n [name]=\"iconBefore()!\"\n [size]=\"iconSize()\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n }\n <span class=\"c-link__text\">{{ text() }}</span>\n @if (iconAfter()) {\n <span class=\"c-link__icon\">\n <lib-icon\n [name]=\"iconAfter()!\"\n [size]=\"iconSize()\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n }\n</a>\n} @else {\n<a\n [ngClass]=\"[\n 'c-link',\n variantClass(),\n sizeClass(),\n weightClass(),\n underlineClass(),\n disabled() ? 'c-link--disabled' : ''\n ]\"\n [href]=\"href()\"\n [target]=\"target()\"\n [attr.rel]=\"rel()\"\n [attr.aria-disabled]=\"finalAriaDisabled()\"\n [attr.aria-label]=\"finalAriaLabel()\"\n (click)=\"onClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n>\n @if (iconBefore()) {\n <span class=\"c-link__icon\">\n <lib-icon\n [name]=\"iconBefore()!\"\n [size]=\"iconSize()\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n }\n <span class=\"c-link__text\">{{ text() }}</span>\n @if (external()) {\n <span class=\"sr-only\">(opens in a new tab)</span>\n } @if (iconAfter()) {\n <span class=\"c-link__icon\">\n <lib-icon\n [name]=\"iconAfter()!\"\n [size]=\"iconSize()\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n }\n</a>\n}\n", styles: [".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}.c-link{position:relative;display:flex;align-items:center;width:fit-content;gap:var(--space-component-gap-xs);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);text-decoration:none;border-radius:var(--size-border-radius-sm);cursor:pointer}.c-link--sm{font-family:var(--typography-label-sm-default-family),sans-serif;font-weight:var(--typography-label-sm-default-weight);font-size:var(--typography-label-sm-default-size);line-height:var(--typography-label-sm-default-line-height);letter-spacing:var(--typography-label-sm-default-letter-spacing)}.c-link--xs{font-family:var(--typography-label-xs-default-family),sans-serif;font-weight:var(--typography-label-xs-default-weight);font-size:var(--typography-label-xs-default-size);line-height:var(--typography-label-xs-default-line-height);letter-spacing:var(--typography-label-xs-default-letter-spacing)}.c-link--bold{font-weight:var(--typography-font-weight-bold)}.c-link--underline{text-decoration:underline}.c-link__icon{display:flex;align-items:center}.c-link:hover:not(.c-link--underline){text-decoration:underline}.c-link:focus-visible{box-shadow:var(--focus-outset);outline:none}.c-link--primary{color:var(--color-action-primary-content-default)}.c-link--primary:hover{color:var(--color-action-primary-content-hover)}.c-link--primary:active{color:var(--color-action-primary-content-pressed)}.c-link--neutral{color:var(--color-action-neutral-content-default)}.c-link--neutral:hover{color:var(--color-action-neutral-content-hover)}.c-link--neutral:active{color:var(--color-action-neutral-content-pressed)}.c-link--inverse{color:var(--color-action-inverse-content-default)}.c-link--inverse:hover{color:var(--color-action-inverse-content-hover)}.c-link--inverse:active{color:var(--color-action-inverse-content-pressed)}.c-link--danger{color:var(--color-action-danger-content-default)}.c-link--danger:hover{color:var(--color-action-danger-content-hover)}.c-link--danger:active{color:var(--color-action-danger-content-pressed)}.c-link--disabled{cursor:not-allowed}.c-link--disabled:hover{text-decoration:none}.c-link--disabled.c-link--primary{color:var(--color-action-primary-content-disabled)}.c-link--disabled.c-link--neutral{color:var(--color-action-neutral-content-disabled)}.c-link--disabled.c-link--inverse{color:var(--color-action-inverse-content-disabled)}.c-link--disabled.c-link--danger{color:var(--color-action-danger-content-disabled)}\n"] }]
|
|
5127
5243
|
}] });
|
|
5128
5244
|
|
|
5245
|
+
class TagComponent {
|
|
5246
|
+
size = input('xs');
|
|
5247
|
+
variant = input('neutral');
|
|
5248
|
+
text = input('');
|
|
5249
|
+
extraClass = input('');
|
|
5250
|
+
showBadge = input(true);
|
|
5251
|
+
closeActive = input(true);
|
|
5252
|
+
emphasis = input(false);
|
|
5253
|
+
skeletonActive = input(false);
|
|
5254
|
+
closeEvent = output();
|
|
5255
|
+
onClose() {
|
|
5256
|
+
this.closeEvent.emit();
|
|
5257
|
+
}
|
|
5258
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5259
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: TagComponent, isStandalone: true, selector: "lib-tag", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, extraClass: { classPropertyName: "extraClass", publicName: "extraClass", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, closeActive: { classPropertyName: "closeActive", publicName: "closeActive", isSignal: true, isRequired: false, transformFunction: null }, emphasis: { classPropertyName: "emphasis", publicName: "emphasis", isSignal: true, isRequired: false, transformFunction: null }, skeletonActive: { classPropertyName: "skeletonActive", publicName: "skeletonActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "@if (skeletonActive()) {\n<div class=\"skeleton\"></div>\n} @else {\n<span\n [ngClass]=\"[\n 'c-tag',\n variant() ? 'c-tag--' + variant() : '',\n extraClass() ? extraClass() : '',\n emphasis() ? 'c-tag--emphasis' : '',\n closeActive() ? 'c-tag--close-active' : '',\n size() ? 'c-tag--' + size() : '',\n emphasis() && closeActive() ? 'c-tag--emphasis-close-active' : ''\n ]\"\n>\n @if (showBadge()) {\n <span class=\"c-tag__dot\"></span>\n }\n <span class=\"c-tag__text\">{{ text() }}</span>\n @if (closeActive()) {\n <lib-button-icon\n role=\"button\"\n [ariaLabel]=\"variant()\"\n [loading]=\"false\"\n [disabled]=\"variant() === 'disabled'\"\n [variant]=\"emphasis() ? 'inverse' : 'neutral'\"\n [size]=\"size() === 'xs' ? 'xs' : 'sm'\"\n class=\"c-tag__close\"\n iconName=\"x-regular\"\n (click)=\"onClose()\"\n >\n </lib-button-icon>\n }\n</span>\n}\n", styles: [".c-tag{display:inline-flex;height:1.5rem;max-width:100%;padding:0 var(--space-component-padding-sm);align-items:center;gap:var(--space-component-gap-sm);flex-shrink:0;border-radius:var(--size-border-radius-md);text-align:center;font-family:var(--typography-label-xs-strong-family);font-size:var(--typography-label-xs-strong-size);font-weight:var(--typography-label-xs-strong-weight);line-height:var(--typography-label-xs-strong-line-height);letter-spacing:var(--typography-label-xs-strong-letter-spacing)}.c-tag--sm{height:2rem;font-family:var(--typography-label-md-strong-family);font-size:var(--typography-label-md-strong-size);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-tag__dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.c-tag__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-tag--close-active{padding-right:0}.c-tag--emphasis-close-active{border-top-right-radius:10px;border-bottom-right-radius:10px}.c-tag--danger{background:var(--color-feedback-danger-soft);color:var(--color-feedback-danger-stronger)}.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-stronger)}.c-tag--warning{color:var(--color-feedback-warning-stronger);background:var(--color-feedback-warning-soft)}.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-stronger)}.c-tag--success{color:var(--color-feedback-success-stronger);background:var(--color-feedback-success-soft)}.c-tag--success .c-tag__dot{background:var(--color-feedback-success-stronger)}.c-tag--info{background:var(--color-feedback-info-soft);color:var(--color-feedback-info-stronger)}.c-tag--info .c-tag__dot{background:var(--color-feedback-info-stronger)}.c-tag--neutral{background:var(--color-feedback-neutral-soft);color:var(--color-feedback-neutral-stronger)}.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-stronger)}.c-tag--primary{background:var(--color-decorative-primary-soft);color:var(--color-decorative-primary-stronger)}.c-tag--primary .c-tag__dot{background:var(--color-decorative-primary-stronger)}.c-tag--secondary{background:var(--color-decorative-secondary-soft);color:var(--color-decorative-secondary-stronger)}.c-tag--secondary .c-tag__dot{background:var(--color-decorative-secondary-stronger)}.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--danger{color:var(--color-feedback-danger-subtle);background:var(--color-feedback-danger-default)}.c-tag--emphasis.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-subtle)}.c-tag--emphasis.c-tag--warning{color:var(--color-feedback-warning-subtle);background:var(--color-feedback-warning-default)}.c-tag--emphasis.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-subtle)}.c-tag--emphasis.c-tag--success{color:var(--color-feedback-success-subtle);background:var(--color-feedback-success-default)}.c-tag--emphasis.c-tag--success .c-tag__dot{background:var(--color-feedback-success-subtle)}.c-tag--emphasis.c-tag--info{color:var(--color-feedback-info-subtle);background:var(--color-feedback-info-default)}.c-tag--emphasis.c-tag--info .c-tag__dot{background:var(--color-feedback-info-subtle)}.c-tag--emphasis.c-tag--neutral{color:var(--color-feedback-neutral-subtle);background:var(--color-feedback-neutral-default)}.c-tag--emphasis.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-subtle)}.c-tag--emphasis.c-tag--primary{background:var(--color-decorative-primary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--primary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary{background:var(--color-decorative-secondary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.skeleton{width:4rem;height:1.5rem;background:var(--color-effect-skeleton-soft);border-radius:var(--size-border-radius-md)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonIconComponent, selector: "lib-button-icon", inputs: ["ariaLabel", "variant", "size", "iconName", "disabled", "loading", "skeletonActive"], outputs: ["clicked"] }] });
|
|
5260
|
+
}
|
|
5261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TagComponent, decorators: [{
|
|
5262
|
+
type: Component,
|
|
5263
|
+
args: [{ selector: 'lib-tag', imports: [NgClass, ButtonIconComponent], template: "@if (skeletonActive()) {\n<div class=\"skeleton\"></div>\n} @else {\n<span\n [ngClass]=\"[\n 'c-tag',\n variant() ? 'c-tag--' + variant() : '',\n extraClass() ? extraClass() : '',\n emphasis() ? 'c-tag--emphasis' : '',\n closeActive() ? 'c-tag--close-active' : '',\n size() ? 'c-tag--' + size() : '',\n emphasis() && closeActive() ? 'c-tag--emphasis-close-active' : ''\n ]\"\n>\n @if (showBadge()) {\n <span class=\"c-tag__dot\"></span>\n }\n <span class=\"c-tag__text\">{{ text() }}</span>\n @if (closeActive()) {\n <lib-button-icon\n role=\"button\"\n [ariaLabel]=\"variant()\"\n [loading]=\"false\"\n [disabled]=\"variant() === 'disabled'\"\n [variant]=\"emphasis() ? 'inverse' : 'neutral'\"\n [size]=\"size() === 'xs' ? 'xs' : 'sm'\"\n class=\"c-tag__close\"\n iconName=\"x-regular\"\n (click)=\"onClose()\"\n >\n </lib-button-icon>\n }\n</span>\n}\n", styles: [".c-tag{display:inline-flex;height:1.5rem;max-width:100%;padding:0 var(--space-component-padding-sm);align-items:center;gap:var(--space-component-gap-sm);flex-shrink:0;border-radius:var(--size-border-radius-md);text-align:center;font-family:var(--typography-label-xs-strong-family);font-size:var(--typography-label-xs-strong-size);font-weight:var(--typography-label-xs-strong-weight);line-height:var(--typography-label-xs-strong-line-height);letter-spacing:var(--typography-label-xs-strong-letter-spacing)}.c-tag--sm{height:2rem;font-family:var(--typography-label-md-strong-family);font-size:var(--typography-label-md-strong-size);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-tag__dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.c-tag__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-tag--close-active{padding-right:0}.c-tag--emphasis-close-active{border-top-right-radius:10px;border-bottom-right-radius:10px}.c-tag--danger{background:var(--color-feedback-danger-soft);color:var(--color-feedback-danger-stronger)}.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-stronger)}.c-tag--warning{color:var(--color-feedback-warning-stronger);background:var(--color-feedback-warning-soft)}.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-stronger)}.c-tag--success{color:var(--color-feedback-success-stronger);background:var(--color-feedback-success-soft)}.c-tag--success .c-tag__dot{background:var(--color-feedback-success-stronger)}.c-tag--info{background:var(--color-feedback-info-soft);color:var(--color-feedback-info-stronger)}.c-tag--info .c-tag__dot{background:var(--color-feedback-info-stronger)}.c-tag--neutral{background:var(--color-feedback-neutral-soft);color:var(--color-feedback-neutral-stronger)}.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-stronger)}.c-tag--primary{background:var(--color-decorative-primary-soft);color:var(--color-decorative-primary-stronger)}.c-tag--primary .c-tag__dot{background:var(--color-decorative-primary-stronger)}.c-tag--secondary{background:var(--color-decorative-secondary-soft);color:var(--color-decorative-secondary-stronger)}.c-tag--secondary .c-tag__dot{background:var(--color-decorative-secondary-stronger)}.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--danger{color:var(--color-feedback-danger-subtle);background:var(--color-feedback-danger-default)}.c-tag--emphasis.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-subtle)}.c-tag--emphasis.c-tag--warning{color:var(--color-feedback-warning-subtle);background:var(--color-feedback-warning-default)}.c-tag--emphasis.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-subtle)}.c-tag--emphasis.c-tag--success{color:var(--color-feedback-success-subtle);background:var(--color-feedback-success-default)}.c-tag--emphasis.c-tag--success .c-tag__dot{background:var(--color-feedback-success-subtle)}.c-tag--emphasis.c-tag--info{color:var(--color-feedback-info-subtle);background:var(--color-feedback-info-default)}.c-tag--emphasis.c-tag--info .c-tag__dot{background:var(--color-feedback-info-subtle)}.c-tag--emphasis.c-tag--neutral{color:var(--color-feedback-neutral-subtle);background:var(--color-feedback-neutral-default)}.c-tag--emphasis.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-subtle)}.c-tag--emphasis.c-tag--primary{background:var(--color-decorative-primary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--primary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary{background:var(--color-decorative-secondary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.skeleton{width:4rem;height:1.5rem;background:var(--color-effect-skeleton-soft);border-radius:var(--size-border-radius-md)}\n"] }]
|
|
5264
|
+
}] });
|
|
5265
|
+
|
|
5129
5266
|
class MenuChildItemComponent {
|
|
5130
5267
|
label = input('');
|
|
5131
5268
|
icon = input('');
|
|
@@ -5154,27 +5291,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
5154
5291
|
args: [{ selector: 'lib-menu-child-item', imports: [NgClass], template: "<button\n [ngClass]=\"[\n 'c-menu-child-item',\n selected() ? 'c-menu-child-item--selected' : '',\n disabled() ? 'c-menu-child-item--disabled' : ''\n ]\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-selected]=\"selected()\"\n (click)=\"handleClick()\"\n>\n @if (label()) {\n <span class=\"c-menu-child-item__label\">{{ label() }}</span>\n }\n</button>\n", styles: [".c-menu-child-item{display:flex;align-items:center;width:100%;min-height:40px;padding:var(--space-component-padding-none, 0) var(--space-component-padding-sm, 8px) var(--space-component-padding-none) var(--space-component-padding-2xl);border:none;background:var(--color-menu-item-background-default);cursor:pointer;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-action-neutral-content-default);text-align:left;transition:all var(--transition-base-duration) var(--transition-base-easing);border-radius:var(--size-border-radius-md)}.c-menu-child-item:hover:not(:disabled){background-color:var(--color-menu-item-background-hover)}.c-menu-child-item:focus-visible{box-shadow:var(--focus-inset);outline:0}.c-menu-child-item__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:var(--space-component-padding-lg)}.c-menu-child-item--selected{background:var(--color-menu-item-child-background-active);color:var(--color-core-content-default)}.c-menu-child-item--selected:hover{background-color:var(--color-action-primary-background-selected-hover)}.c-menu-child-item--selected:focus-visible{box-shadow:var(--focus-inset);outline:0}.c-menu-child-item--disabled{cursor:not-allowed;color:var(--color-menu-item-content-disabled)}.c-menu-child-item--disabled:hover{background-color:transparent}\n"] }]
|
|
5155
5292
|
}] });
|
|
5156
5293
|
|
|
5157
|
-
class TagComponent {
|
|
5158
|
-
size = input('xs');
|
|
5159
|
-
variant = input('neutral');
|
|
5160
|
-
text = input('');
|
|
5161
|
-
extraClass = input('');
|
|
5162
|
-
showBadge = input(true);
|
|
5163
|
-
closeActive = input(true);
|
|
5164
|
-
emphasis = input(false);
|
|
5165
|
-
skeletonActive = input(false);
|
|
5166
|
-
closeEvent = output();
|
|
5167
|
-
onClose() {
|
|
5168
|
-
this.closeEvent.emit();
|
|
5169
|
-
}
|
|
5170
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5171
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: TagComponent, isStandalone: true, selector: "lib-tag", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, extraClass: { classPropertyName: "extraClass", publicName: "extraClass", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, closeActive: { classPropertyName: "closeActive", publicName: "closeActive", isSignal: true, isRequired: false, transformFunction: null }, emphasis: { classPropertyName: "emphasis", publicName: "emphasis", isSignal: true, isRequired: false, transformFunction: null }, skeletonActive: { classPropertyName: "skeletonActive", publicName: "skeletonActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "@if (skeletonActive()) {\n<div class=\"skeleton\"></div>\n} @else {\n<span\n [ngClass]=\"[\n 'c-tag',\n variant() ? 'c-tag--' + variant() : '',\n extraClass() ? extraClass() : '',\n emphasis() ? 'c-tag--emphasis' : '',\n closeActive() ? 'c-tag--close-active' : '',\n size() ? 'c-tag--' + size() : '',\n emphasis() && closeActive() ? 'c-tag--emphasis-close-active' : ''\n ]\"\n>\n @if (showBadge()) {\n <span class=\"c-tag__dot\"></span>\n }\n <span class=\"c-tag__text\">{{ text() }}</span>\n @if (closeActive()) {\n <lib-button-icon\n role=\"button\"\n [ariaLabel]=\"variant()\"\n [loading]=\"false\"\n [disabled]=\"variant() === 'disabled'\"\n [variant]=\"emphasis() ? 'inverse' : 'neutral'\"\n [size]=\"size() === 'xs' ? 'xs' : 'sm'\"\n class=\"c-tag__close\"\n iconName=\"x-regular\"\n (click)=\"onClose()\"\n >\n </lib-button-icon>\n }\n</span>\n}\n", styles: [".c-tag{display:inline-flex;height:1.5rem;max-width:100%;padding:0 var(--space-component-padding-sm);align-items:center;gap:var(--space-component-gap-sm);flex-shrink:0;border-radius:var(--size-border-radius-md);text-align:center;font-family:var(--typography-label-xs-strong-family);font-size:var(--typography-label-xs-strong-size);font-weight:var(--typography-label-xs-strong-weight);line-height:var(--typography-label-xs-strong-line-height);letter-spacing:var(--typography-label-xs-strong-letter-spacing)}.c-tag--sm{height:2rem;font-family:var(--typography-label-md-strong-family);font-size:var(--typography-label-md-strong-size);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-tag__dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.c-tag__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-tag--close-active{padding-right:0}.c-tag--emphasis-close-active{border-top-right-radius:10px;border-bottom-right-radius:10px}.c-tag--danger{background:var(--color-feedback-danger-soft);color:var(--color-feedback-danger-stronger)}.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-stronger)}.c-tag--warning{color:var(--color-feedback-warning-stronger);background:var(--color-feedback-warning-soft)}.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-stronger)}.c-tag--success{color:var(--color-feedback-success-stronger);background:var(--color-feedback-success-soft)}.c-tag--success .c-tag__dot{background:var(--color-feedback-success-stronger)}.c-tag--info{background:var(--color-feedback-info-soft);color:var(--color-feedback-info-stronger)}.c-tag--info .c-tag__dot{background:var(--color-feedback-info-stronger)}.c-tag--neutral{background:var(--color-feedback-neutral-soft);color:var(--color-feedback-neutral-stronger)}.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-stronger)}.c-tag--primary{background:var(--color-decorative-primary-soft);color:var(--color-decorative-primary-stronger)}.c-tag--primary .c-tag__dot{background:var(--color-decorative-primary-stronger)}.c-tag--secondary{background:var(--color-decorative-secondary-soft);color:var(--color-decorative-secondary-stronger)}.c-tag--secondary .c-tag__dot{background:var(--color-decorative-secondary-stronger)}.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--danger{color:var(--color-feedback-danger-subtle);background:var(--color-feedback-danger-default)}.c-tag--emphasis.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-subtle)}.c-tag--emphasis.c-tag--warning{color:var(--color-feedback-warning-subtle);background:var(--color-feedback-warning-default)}.c-tag--emphasis.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-subtle)}.c-tag--emphasis.c-tag--success{color:var(--color-feedback-success-subtle);background:var(--color-feedback-success-default)}.c-tag--emphasis.c-tag--success .c-tag__dot{background:var(--color-feedback-success-subtle)}.c-tag--emphasis.c-tag--info{color:var(--color-feedback-info-subtle);background:var(--color-feedback-info-default)}.c-tag--emphasis.c-tag--info .c-tag__dot{background:var(--color-feedback-info-subtle)}.c-tag--emphasis.c-tag--neutral{color:var(--color-feedback-neutral-subtle);background:var(--color-feedback-neutral-default)}.c-tag--emphasis.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-subtle)}.c-tag--emphasis.c-tag--primary{background:var(--color-decorative-primary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--primary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary{background:var(--color-decorative-secondary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.skeleton{width:4rem;height:1.5rem;background:var(--color-effect-skeleton-soft);border-radius:var(--size-border-radius-md)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonIconComponent, selector: "lib-button-icon", inputs: ["ariaLabel", "variant", "size", "iconName", "disabled", "loading", "skeletonActive"], outputs: ["clicked"] }] });
|
|
5172
|
-
}
|
|
5173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TagComponent, decorators: [{
|
|
5174
|
-
type: Component,
|
|
5175
|
-
args: [{ selector: 'lib-tag', imports: [NgClass, ButtonIconComponent], template: "@if (skeletonActive()) {\n<div class=\"skeleton\"></div>\n} @else {\n<span\n [ngClass]=\"[\n 'c-tag',\n variant() ? 'c-tag--' + variant() : '',\n extraClass() ? extraClass() : '',\n emphasis() ? 'c-tag--emphasis' : '',\n closeActive() ? 'c-tag--close-active' : '',\n size() ? 'c-tag--' + size() : '',\n emphasis() && closeActive() ? 'c-tag--emphasis-close-active' : ''\n ]\"\n>\n @if (showBadge()) {\n <span class=\"c-tag__dot\"></span>\n }\n <span class=\"c-tag__text\">{{ text() }}</span>\n @if (closeActive()) {\n <lib-button-icon\n role=\"button\"\n [ariaLabel]=\"variant()\"\n [loading]=\"false\"\n [disabled]=\"variant() === 'disabled'\"\n [variant]=\"emphasis() ? 'inverse' : 'neutral'\"\n [size]=\"size() === 'xs' ? 'xs' : 'sm'\"\n class=\"c-tag__close\"\n iconName=\"x-regular\"\n (click)=\"onClose()\"\n >\n </lib-button-icon>\n }\n</span>\n}\n", styles: [".c-tag{display:inline-flex;height:1.5rem;max-width:100%;padding:0 var(--space-component-padding-sm);align-items:center;gap:var(--space-component-gap-sm);flex-shrink:0;border-radius:var(--size-border-radius-md);text-align:center;font-family:var(--typography-label-xs-strong-family);font-size:var(--typography-label-xs-strong-size);font-weight:var(--typography-label-xs-strong-weight);line-height:var(--typography-label-xs-strong-line-height);letter-spacing:var(--typography-label-xs-strong-letter-spacing)}.c-tag--sm{height:2rem;font-family:var(--typography-label-md-strong-family);font-size:var(--typography-label-md-strong-size);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-tag__dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.c-tag__text{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-tag--close-active{padding-right:0}.c-tag--emphasis-close-active{border-top-right-radius:10px;border-bottom-right-radius:10px}.c-tag--danger{background:var(--color-feedback-danger-soft);color:var(--color-feedback-danger-stronger)}.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-stronger)}.c-tag--warning{color:var(--color-feedback-warning-stronger);background:var(--color-feedback-warning-soft)}.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-stronger)}.c-tag--success{color:var(--color-feedback-success-stronger);background:var(--color-feedback-success-soft)}.c-tag--success .c-tag__dot{background:var(--color-feedback-success-stronger)}.c-tag--info{background:var(--color-feedback-info-soft);color:var(--color-feedback-info-stronger)}.c-tag--info .c-tag__dot{background:var(--color-feedback-info-stronger)}.c-tag--neutral{background:var(--color-feedback-neutral-soft);color:var(--color-feedback-neutral-stronger)}.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-stronger)}.c-tag--primary{background:var(--color-decorative-primary-soft);color:var(--color-decorative-primary-stronger)}.c-tag--primary .c-tag__dot{background:var(--color-decorative-primary-stronger)}.c-tag--secondary{background:var(--color-decorative-secondary-soft);color:var(--color-decorative-secondary-stronger)}.c-tag--secondary .c-tag__dot{background:var(--color-decorative-secondary-stronger)}.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--danger{color:var(--color-feedback-danger-subtle);background:var(--color-feedback-danger-default)}.c-tag--emphasis.c-tag--danger .c-tag__dot{background:var(--color-feedback-danger-subtle)}.c-tag--emphasis.c-tag--warning{color:var(--color-feedback-warning-subtle);background:var(--color-feedback-warning-default)}.c-tag--emphasis.c-tag--warning .c-tag__dot{background:var(--color-feedback-warning-subtle)}.c-tag--emphasis.c-tag--success{color:var(--color-feedback-success-subtle);background:var(--color-feedback-success-default)}.c-tag--emphasis.c-tag--success .c-tag__dot{background:var(--color-feedback-success-subtle)}.c-tag--emphasis.c-tag--info{color:var(--color-feedback-info-subtle);background:var(--color-feedback-info-default)}.c-tag--emphasis.c-tag--info .c-tag__dot{background:var(--color-feedback-info-subtle)}.c-tag--emphasis.c-tag--neutral{color:var(--color-feedback-neutral-subtle);background:var(--color-feedback-neutral-default)}.c-tag--emphasis.c-tag--neutral .c-tag__dot{background:var(--color-feedback-neutral-subtle)}.c-tag--emphasis.c-tag--primary{background:var(--color-decorative-primary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--primary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary{background:var(--color-decorative-secondary-default);color:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--secondary .c-tag__dot{background:var(--color-core-content-inverse)}.c-tag--emphasis.c-tag--disabled{background:var(--color-action-neutral-background-disabled);color:var(--color-action-neutral-content-disabled)}.c-tag--emphasis.c-tag--disabled .c-tag__dot{background:var(--color-action-neutral-content-disabled)}.skeleton{width:4rem;height:1.5rem;background:var(--color-effect-skeleton-soft);border-radius:var(--size-border-radius-md)}\n"] }]
|
|
5176
|
-
}] });
|
|
5177
|
-
|
|
5178
5294
|
class MenuItemComponent {
|
|
5179
5295
|
label = input('');
|
|
5180
5296
|
icon = input('');
|
|
@@ -5183,6 +5299,8 @@ class MenuItemComponent {
|
|
|
5183
5299
|
showArrowIcon = input(true);
|
|
5184
5300
|
tagLabel = input('');
|
|
5185
5301
|
children = input([]);
|
|
5302
|
+
rightIcon = input('');
|
|
5303
|
+
rightText = input('');
|
|
5186
5304
|
hasChildren = computed(() => this.children().length > 0);
|
|
5187
5305
|
hasTag = computed(() => this.tagLabel().trim().length > 0);
|
|
5188
5306
|
clicked = output();
|
|
@@ -5207,11 +5325,11 @@ class MenuItemComponent {
|
|
|
5207
5325
|
return 'action-neutral-content-default';
|
|
5208
5326
|
});
|
|
5209
5327
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5210
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: MenuItemComponent, isStandalone: true, selector: "lib-menu-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, showArrowIcon: { classPropertyName: "showArrowIcon", publicName: "showArrowIcon", isSignal: true, isRequired: false, transformFunction: null }, tagLabel: { classPropertyName: "tagLabel", publicName: "tagLabel", isSignal: true, isRequired: false, transformFunction: null }, children: { classPropertyName: "children", publicName: "children", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"c-menu-item__container\">\n <button\n [ngClass]=\"[\n 'c-menu-item',\n selected() ? 'c-menu-item--selected' : '',\n disabled() ? 'c-menu-item--disabled' : '',\n hasChildren() ? 'c-menu-item--has-children' : '',\n hasChildren() ? 'c-menu-item--expanded' : ''\n ]\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-expanded]=\"hasChildren() ? true : null\"\n (click)=\"handleClick()\"\n >\n @if (icon()) {\n
|
|
5328
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: MenuItemComponent, isStandalone: true, selector: "lib-menu-item", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, showArrowIcon: { classPropertyName: "showArrowIcon", publicName: "showArrowIcon", isSignal: true, isRequired: false, transformFunction: null }, tagLabel: { classPropertyName: "tagLabel", publicName: "tagLabel", isSignal: true, isRequired: false, transformFunction: null }, children: { classPropertyName: "children", publicName: "children", isSignal: true, isRequired: false, transformFunction: null }, rightIcon: { classPropertyName: "rightIcon", publicName: "rightIcon", isSignal: true, isRequired: false, transformFunction: null }, rightText: { classPropertyName: "rightText", publicName: "rightText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"c-menu-item__container\">\n <button\n [ngClass]=\"[\n 'c-menu-item',\n selected() ? 'c-menu-item--selected' : '',\n disabled() ? 'c-menu-item--disabled' : '',\n hasChildren() ? 'c-menu-item--has-children' : '',\n hasChildren() ? 'c-menu-item--expanded' : ''\n ]\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-expanded]=\"hasChildren() ? true : null\"\n (click)=\"handleClick()\"\n >\n @if (icon()) {\n <span class=\"c-menu-item__icon\">\n <lib-icon\n [name]=\"computedIcon()\"\n [size]=\"'md'\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n } @if (label()) {\n <span class=\"c-menu-item__label\">{{ label() }}</span>\n } @if (hasTag()) {\n <span class=\"c-menu-item__tag-container\">\n <lib-tag\n [text]=\"tagLabel()\"\n [closeActive]=\"false\"\n [showBadge]=\"false\"\n class=\"c-menu-item__tag\"\n ></lib-tag>\n </span>\n } @if (rightIcon()) {\n <span class=\"c-menu-item__right-icon\">\n <lib-icon [name]=\"rightIcon()\" [size]=\"'md'\"></lib-icon>\n </span>\n } @if (rightText()) {\n <span class=\"c-menu-item__right-text\"> {{ rightText() }} </span>\n } @if (showArrowIcon()) {\n <span class=\"c-menu-item__expand-icon\">\n <lib-icon\n name=\"caretright-regular\"\n [size]=\"'md'\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n }\n </button>\n\n @if (hasChildren()) {\n <div class=\"c-menu-item__children\">\n <div class=\"c-menu-item__children-items\">\n @for (child of children(); track child.label) {\n <lib-menu-child-item\n [label]=\"child.label\"\n [disabled]=\"child.disabled || false\"\n [selected]=\"child.selected || false\"\n (clicked)=\"handleChildClick(child)\"\n >\n </lib-menu-child-item>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".c-menu-item{display:flex;align-items:center;gap:var(--space-component-gap-md, .5rem);width:100%;min-height:40px;padding:var(--space-component-padding-none) var(--space-component-padding-sm);border:none;border-radius:var(--size-border-radius-md);background:var(--color-menu-item-background-default);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);text-align:left;color:var(--color-action-neutral-content-default)}.c-menu-item__container,.c-menu-item__children{display:flex;flex-direction:column;width:100%}.c-menu-item:focus-visible{box-shadow:var(--focus-inset);outline:0}.c-menu-item:disabled{cursor:not-allowed}.c-menu-item:hover:not(.c-menu-item--disabled){background-color:var(--color-action-neutral-background-hover);color:var(--color-action-neutral-content-hover)}.c-menu-item:active:not(.c-menu-item--disabled){background-color:var(--color-action-neutral-background-pressed);color:var(--color-action-neutral-content-pressed)}.c-menu-item.c-menu-item--selected{background-color:var(--color-menu-item-parent-background-active);color:var(--color-action-primary-selected-content-default)}.c-menu-item.c-menu-item--selected:hover:not(.c-menu-item--disabled){background-color:var(--color-action-primary-selected-background-hover);color:var(--color-action-primary-selected-content-hover)}.c-menu-item.c-menu-item--selected:active:not(.c-menu-item--disabled){background-color:var(--color-action-primary-selected-background-pressed);color:var(--color-action-primary-selected-content-pressed)}.c-menu-item.c-menu-item--disabled{color:var(--color-action-neutral-content-disabled);background-color:var(--color-action-neutral-background-disabled)}.c-menu-item__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.c-menu-item__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.c-menu-item__expand-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:var(--space-component-gap-sm);transition:transform var(--transition-base-duration) var(--transition-base-easing)}.c-menu-item__tag-container,.c-menu-item__right-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:var(--space-component-gap-sm)}.c-menu-item__tag{flex-shrink:0}.c-menu-item__right-text{margin-left:var(--space-component-gap-sm);font-size:var(--typography-label-sm-default-size);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);color:var(--color-content-default)}.c-menu-item__children{padding-left:var(--size-spacing-4);margin-top:var(--size-spacing-1)}.c-menu-item__children-label{font-size:var(--size-font-sm);font-weight:var(--size-font-weight-medium);color:var(--color-action-neutral-content-default);padding:var(--size-spacing-2) var(--size-spacing-3);margin-bottom:var(--size-spacing-1)}.c-menu-item__children-items{display:flex;flex-direction:column;gap:var(--size-spacing-1)}.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: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["size", "icon", "disabled", "name", "color"] }, { kind: "component", type: MenuChildItemComponent, selector: "lib-menu-child-item", inputs: ["label", "icon", "disabled", "selected"], outputs: ["clicked"] }, { kind: "component", type: TagComponent, selector: "lib-tag", inputs: ["size", "variant", "text", "extraClass", "showBadge", "closeActive", "emphasis", "skeletonActive"], outputs: ["closeEvent"] }] });
|
|
5211
5329
|
}
|
|
5212
5330
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
5213
5331
|
type: Component,
|
|
5214
|
-
args: [{ selector: 'lib-menu-item', imports: [NgClass, IconComponent, MenuChildItemComponent, TagComponent], template: "<div class=\"c-menu-item__container\">\n <button\n [ngClass]=\"[\n 'c-menu-item',\n selected() ? 'c-menu-item--selected' : '',\n disabled() ? 'c-menu-item--disabled' : '',\n hasChildren() ? 'c-menu-item--has-children' : '',\n hasChildren() ? 'c-menu-item--expanded' : ''\n ]\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-expanded]=\"hasChildren() ? true : null\"\n (click)=\"handleClick()\"\n >\n @if (icon()) {\n
|
|
5332
|
+
args: [{ selector: 'lib-menu-item', imports: [NgClass, IconComponent, MenuChildItemComponent, TagComponent], template: "<div class=\"c-menu-item__container\">\n <button\n [ngClass]=\"[\n 'c-menu-item',\n selected() ? 'c-menu-item--selected' : '',\n disabled() ? 'c-menu-item--disabled' : '',\n hasChildren() ? 'c-menu-item--has-children' : '',\n hasChildren() ? 'c-menu-item--expanded' : ''\n ]\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-expanded]=\"hasChildren() ? true : null\"\n (click)=\"handleClick()\"\n >\n @if (icon()) {\n <span class=\"c-menu-item__icon\">\n <lib-icon\n [name]=\"computedIcon()\"\n [size]=\"'md'\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n } @if (label()) {\n <span class=\"c-menu-item__label\">{{ label() }}</span>\n } @if (hasTag()) {\n <span class=\"c-menu-item__tag-container\">\n <lib-tag\n [text]=\"tagLabel()\"\n [closeActive]=\"false\"\n [showBadge]=\"false\"\n class=\"c-menu-item__tag\"\n ></lib-tag>\n </span>\n } @if (rightIcon()) {\n <span class=\"c-menu-item__right-icon\">\n <lib-icon [name]=\"rightIcon()\" [size]=\"'md'\"></lib-icon>\n </span>\n } @if (rightText()) {\n <span class=\"c-menu-item__right-text\"> {{ rightText() }} </span>\n } @if (showArrowIcon()) {\n <span class=\"c-menu-item__expand-icon\">\n <lib-icon\n name=\"caretright-regular\"\n [size]=\"'md'\"\n [color]=\"iconColor()\"\n ></lib-icon>\n </span>\n }\n </button>\n\n @if (hasChildren()) {\n <div class=\"c-menu-item__children\">\n <div class=\"c-menu-item__children-items\">\n @for (child of children(); track child.label) {\n <lib-menu-child-item\n [label]=\"child.label\"\n [disabled]=\"child.disabled || false\"\n [selected]=\"child.selected || false\"\n (clicked)=\"handleChildClick(child)\"\n >\n </lib-menu-child-item>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".c-menu-item{display:flex;align-items:center;gap:var(--space-component-gap-md, .5rem);width:100%;min-height:40px;padding:var(--space-component-padding-none) var(--space-component-padding-sm);border:none;border-radius:var(--size-border-radius-md);background:var(--color-menu-item-background-default);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);text-align:left;color:var(--color-action-neutral-content-default)}.c-menu-item__container,.c-menu-item__children{display:flex;flex-direction:column;width:100%}.c-menu-item:focus-visible{box-shadow:var(--focus-inset);outline:0}.c-menu-item:disabled{cursor:not-allowed}.c-menu-item:hover:not(.c-menu-item--disabled){background-color:var(--color-action-neutral-background-hover);color:var(--color-action-neutral-content-hover)}.c-menu-item:active:not(.c-menu-item--disabled){background-color:var(--color-action-neutral-background-pressed);color:var(--color-action-neutral-content-pressed)}.c-menu-item.c-menu-item--selected{background-color:var(--color-menu-item-parent-background-active);color:var(--color-action-primary-selected-content-default)}.c-menu-item.c-menu-item--selected:hover:not(.c-menu-item--disabled){background-color:var(--color-action-primary-selected-background-hover);color:var(--color-action-primary-selected-content-hover)}.c-menu-item.c-menu-item--selected:active:not(.c-menu-item--disabled){background-color:var(--color-action-primary-selected-background-pressed);color:var(--color-action-primary-selected-content-pressed)}.c-menu-item.c-menu-item--disabled{color:var(--color-action-neutral-content-disabled);background-color:var(--color-action-neutral-background-disabled)}.c-menu-item__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.c-menu-item__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.c-menu-item__expand-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:var(--space-component-gap-sm);transition:transform var(--transition-base-duration) var(--transition-base-easing)}.c-menu-item__tag-container,.c-menu-item__right-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:var(--space-component-gap-sm)}.c-menu-item__tag{flex-shrink:0}.c-menu-item__right-text{margin-left:var(--space-component-gap-sm);font-size:var(--typography-label-sm-default-size);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);color:var(--color-content-default)}.c-menu-item__children{padding-left:var(--size-spacing-4);margin-top:var(--size-spacing-1)}.c-menu-item__children-label{font-size:var(--size-font-sm);font-weight:var(--size-font-weight-medium);color:var(--color-action-neutral-content-default);padding:var(--size-spacing-2) var(--size-spacing-3);margin-bottom:var(--size-spacing-1)}.c-menu-item__children-items{display:flex;flex-direction:column;gap:var(--size-spacing-1)}.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"] }]
|
|
5215
5333
|
}] });
|
|
5216
5334
|
|
|
5217
5335
|
class MenuItemSectionComponent {
|
|
@@ -6792,7 +6910,7 @@ class SidebarWithFooterComponent extends BasicSidebarMenuComponent {
|
|
|
6792
6910
|
(clicked)="onSubItemClick(securitySettingsItem)">
|
|
6793
6911
|
</lib-menu-item>
|
|
6794
6912
|
}
|
|
6795
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: MenuItemComponent, selector: "lib-menu-item", inputs: ["label", "icon", "disabled", "selected", "showArrowIcon", "tagLabel", "children"], outputs: ["clicked"] }] });
|
|
6913
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: MenuItemComponent, selector: "lib-menu-item", inputs: ["label", "icon", "disabled", "selected", "showArrowIcon", "tagLabel", "children", "rightIcon", "rightText"], outputs: ["clicked"] }] });
|
|
6796
6914
|
}
|
|
6797
6915
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SidebarWithFooterComponent, decorators: [{
|
|
6798
6916
|
type: Component,
|
|
@@ -7149,152 +7267,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
7149
7267
|
args: [{ selector: 'lib-tabs', standalone: true, imports: [IconComponent, BadgeComponent], template: "<div class=\"c-tabs\">\n <div class=\"c-tabs__scroll-container\" #tabsRef>\n <ul\n class=\"c-tabs__list\"\n [class.c-tabs__list--center]=\"alignment() === 'center'\"\n role=\"tablist\"\n >\n @for (option of options(); track option.value) {\n <li\n class=\"c-tabs__tab\"\n [class.c-tabs__tab--selected]=\"option.value === selectedValue()\"\n role=\"tab\"\n [attr.aria-selected]=\"option.value === selectedValue()\"\n tabindex=\"0\"\n (click)=\"onClick($event, option.value)\"\n (keydown)=\"onKeydown($event, option.value)\"\n >\n @if (option.iconName) {\n <lib-icon\n [name]=\"option.iconName\"\n size=\"lg\"\n color=\"core-content-default\"\n />\n }\n {{ option.label }}\n @if (option.showBadge) {\n <lib-badge />\n }\n </li>\n }\n </ul>\n </div>\n</div>\n", styles: [".c-tabs{width:100%}.c-tabs__scroll-container{width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}.c-tabs__scroll-container::-webkit-scrollbar{display:none}.c-tabs__list{width:100%;height:40px;display:flex;align-items:flex-start;border-bottom:var(--size-border-width-sm) solid var(--color-core-border-soft);margin:0;padding:0;list-style:none;box-sizing:border-box;min-width:max-content}.c-tabs__list--center{justify-content:center}.c-tabs__tab{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:72px;flex-shrink:0;white-space:nowrap;box-sizing:border-box;color:var(--color-action-neutral-content-default);text-align:center;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);padding:var(--space-component-padding-sm) var(--space-component-padding-md);background:var(--color-action-primary-background-default);gap:var(--space-component-gap-sm);margin:0;list-style:none}.c-tabs__tab:hover{color:var(--color-action-neutral-content-hover);background:var(--color-action-neutral-background-hover)}.c-tabs__tab:active{color:var(--color-action-neutral-content-pressed);background-color:var(--color-action-neutral-background-pressed)}.c-tabs__tab:focus-visible{box-shadow:var(--focus-inset);outline:none}.c-tabs__tab--selected{position:relative;color:var(--color-core-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-tabs__tab--selected:before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:.125rem;background:var(--color-action-primary-selected-background-default)}\n"] }]
|
|
7150
7268
|
}] });
|
|
7151
7269
|
|
|
7152
|
-
class TextInputComponent {
|
|
7153
|
-
label = '';
|
|
7154
|
-
name = '';
|
|
7155
|
-
placeholder = '';
|
|
7156
|
-
helperText = '';
|
|
7157
|
-
error = false;
|
|
7158
|
-
success = false;
|
|
7159
|
-
successText = '';
|
|
7160
|
-
alertText = '';
|
|
7161
|
-
disabled = false;
|
|
7162
|
-
readonly = false;
|
|
7163
|
-
required = false;
|
|
7164
|
-
optionalLabel = '';
|
|
7165
|
-
isLoading = false;
|
|
7166
|
-
type = 'text';
|
|
7167
|
-
size = 'md';
|
|
7168
|
-
fullWidth = false;
|
|
7169
|
-
autocomplete = 'off';
|
|
7170
|
-
regex;
|
|
7171
|
-
emitValue = new EventEmitter();
|
|
7172
|
-
_value = '';
|
|
7173
|
-
onChangeFn = () => { };
|
|
7174
|
-
onTouchedFn = () => { };
|
|
7175
|
-
writeValue(value) {
|
|
7176
|
-
this._value = value ?? '';
|
|
7177
|
-
}
|
|
7178
|
-
registerOnChange(fn) {
|
|
7179
|
-
this.onChangeFn = fn;
|
|
7180
|
-
}
|
|
7181
|
-
registerOnTouched(fn) {
|
|
7182
|
-
this.onTouchedFn = fn;
|
|
7183
|
-
}
|
|
7184
|
-
setDisabledState(isDisabled) {
|
|
7185
|
-
this.disabled = isDisabled;
|
|
7186
|
-
}
|
|
7187
|
-
get inputClass() {
|
|
7188
|
-
return [
|
|
7189
|
-
'c-text-input__input',
|
|
7190
|
-
`c-text-input__input--${this.size}`,
|
|
7191
|
-
this.error ? 'is-error' : this.success ? 'is-success' : 'is-default',
|
|
7192
|
-
this.disabled ? 'is-disabled' : '',
|
|
7193
|
-
this.readonly ? 'is-readonly' : '',
|
|
7194
|
-
this.isLoading ? 'is-loading' : '',
|
|
7195
|
-
].filter(Boolean);
|
|
7196
|
-
}
|
|
7197
|
-
get ariaDescribedBy() {
|
|
7198
|
-
return this.helperText ? 'text-input-helper' : null;
|
|
7199
|
-
}
|
|
7200
|
-
onInput(event) {
|
|
7201
|
-
const input = event.target;
|
|
7202
|
-
let newValue = input.value;
|
|
7203
|
-
if (this.regex) {
|
|
7204
|
-
try {
|
|
7205
|
-
const charPattern = (() => {
|
|
7206
|
-
if (this.regex.startsWith('^') && this.regex.endsWith('$')) {
|
|
7207
|
-
const charClassMatch = this.regex.match(/\[([^\]]+)\]/);
|
|
7208
|
-
if (charClassMatch) {
|
|
7209
|
-
return `[${charClassMatch[1]}]`;
|
|
7210
|
-
}
|
|
7211
|
-
}
|
|
7212
|
-
return this.regex;
|
|
7213
|
-
})();
|
|
7214
|
-
const regex = new RegExp(charPattern);
|
|
7215
|
-
const filteredValue = newValue
|
|
7216
|
-
.split('')
|
|
7217
|
-
.filter((char) => regex.test(char))
|
|
7218
|
-
.join('');
|
|
7219
|
-
if (filteredValue !== newValue) {
|
|
7220
|
-
input.value = filteredValue;
|
|
7221
|
-
newValue = filteredValue;
|
|
7222
|
-
}
|
|
7223
|
-
}
|
|
7224
|
-
catch (error) {
|
|
7225
|
-
console.warn('Invalid regex:', this.regex, error);
|
|
7226
|
-
}
|
|
7227
|
-
}
|
|
7228
|
-
this._value = newValue;
|
|
7229
|
-
this.onChangeFn(this._value);
|
|
7230
|
-
this.emitValue.emit(this._value);
|
|
7231
|
-
}
|
|
7232
|
-
onBlur() {
|
|
7233
|
-
this.onTouchedFn();
|
|
7234
|
-
}
|
|
7235
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7236
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TextInputComponent, isStandalone: true, selector: "lib-text-input", inputs: { label: "label", name: "name", placeholder: "placeholder", helperText: "helperText", error: "error", success: "success", successText: "successText", alertText: "alertText", disabled: "disabled", readonly: "readonly", required: "required", optionalLabel: "optionalLabel", isLoading: "isLoading", type: "type", size: "size", fullWidth: "fullWidth", autocomplete: "autocomplete", regex: "regex" }, outputs: { emitValue: "emitValue" }, providers: [
|
|
7237
|
-
{
|
|
7238
|
-
provide: NG_VALUE_ACCESSOR,
|
|
7239
|
-
useExisting: forwardRef(() => TextInputComponent),
|
|
7240
|
-
multi: true,
|
|
7241
|
-
},
|
|
7242
|
-
], ngImport: i0, template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\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 >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\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{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;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(--input-padding-y) var(--input-padding-x);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-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 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-strong)}.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__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.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", "isLoading", "textOptional"] }, { kind: "component", type: HelperTextComponent, selector: "lib-helper-text", inputs: ["variant", "text", "extraClass", "disabled", "isLoading"] }] });
|
|
7243
|
-
}
|
|
7244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
7245
|
-
type: Component,
|
|
7246
|
-
args: [{ selector: 'lib-text-input', standalone: true, imports: [
|
|
7247
|
-
CommonModule,
|
|
7248
|
-
ReactiveFormsModule,
|
|
7249
|
-
InputLabelComponent,
|
|
7250
|
-
HelperTextComponent,
|
|
7251
|
-
], providers: [
|
|
7252
|
-
{
|
|
7253
|
-
provide: NG_VALUE_ACCESSOR,
|
|
7254
|
-
useExisting: forwardRef(() => TextInputComponent),
|
|
7255
|
-
multi: true,
|
|
7256
|
-
},
|
|
7257
|
-
], template: "<div class=\"c-text-input\" [class.c-text-input--full-width]=\"fullWidth\">\n <lib-input-label\n *ngIf=\"label\"\n size=\"sm\"\n [required]=\"required\"\n [for]=\"name\"\n [text]=\"label\"\n [textOptional]=\"optionalLabel\"\n [isLoading]=\"isLoading\"\n ></lib-input-label>\n\n <input\n [attr.autocomplete]=\"autocomplete\"\n [id]=\"name\"\n [name]=\"name\"\n [type]=\"type\"\n [class]=\"inputClass.join(' ')\"\n [placeholder]=\"isLoading ? '' : placeholder\"\n [disabled]=\"disabled || isLoading\"\n [readonly]=\"readonly\"\n [value]=\"isLoading ? '' : _value\"\n [required]=\"required\"\n [attr.aria-invalid]=\"error ? 'true' : null\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-label]=\"name\"\n [attr.aria-labelledby]=\"name\"\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 >\n <lib-helper-text\n [text]=\"helperText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"alertText && error\" class=\"c-text-input__alert\">\n <lib-helper-text\n variant=\"danger\"\n [text]=\"alertText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\n </span>\n\n <span *ngIf=\"successText && success\" class=\"c-text-input__success\">\n <lib-helper-text\n variant=\"success\"\n [text]=\"successText\"\n [isLoading]=\"isLoading\"\n ></lib-helper-text>\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{--input-padding-y: var(--space-component-padding-md);--input-padding-x: var(--space-component-padding-lg);height:48px;box-sizing:border-box;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(--input-padding-y) var(--input-padding-x);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-width:2px;border-color:var(--color-textfield-border-active);padding:calc(var(--input-padding-y) - 1px) calc(var(--input-padding-x) - 1px);box-shadow:none;outline:none}.c-text-input__input--sm{height:32px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: var(--space-component-padding-sm)}.c-text-input__input--md{height:40px;--input-padding-y: var(--space-component-padding-xs);--input-padding-x: 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-strong)}.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__input.is-loading{border-color:var(--color-effect-skeleton-soft, #e5eaea);background-color:var(--color-textfield-background-default);color:transparent}.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"] }]
|
|
7258
|
-
}], propDecorators: { label: [{
|
|
7259
|
-
type: Input
|
|
7260
|
-
}], name: [{
|
|
7261
|
-
type: Input
|
|
7262
|
-
}], placeholder: [{
|
|
7263
|
-
type: Input
|
|
7264
|
-
}], helperText: [{
|
|
7265
|
-
type: Input
|
|
7266
|
-
}], error: [{
|
|
7267
|
-
type: Input
|
|
7268
|
-
}], success: [{
|
|
7269
|
-
type: Input
|
|
7270
|
-
}], successText: [{
|
|
7271
|
-
type: Input
|
|
7272
|
-
}], alertText: [{
|
|
7273
|
-
type: Input
|
|
7274
|
-
}], disabled: [{
|
|
7275
|
-
type: Input
|
|
7276
|
-
}], readonly: [{
|
|
7277
|
-
type: Input
|
|
7278
|
-
}], required: [{
|
|
7279
|
-
type: Input
|
|
7280
|
-
}], optionalLabel: [{
|
|
7281
|
-
type: Input
|
|
7282
|
-
}], isLoading: [{
|
|
7283
|
-
type: Input
|
|
7284
|
-
}], type: [{
|
|
7285
|
-
type: Input
|
|
7286
|
-
}], size: [{
|
|
7287
|
-
type: Input
|
|
7288
|
-
}], fullWidth: [{
|
|
7289
|
-
type: Input
|
|
7290
|
-
}], autocomplete: [{
|
|
7291
|
-
type: Input
|
|
7292
|
-
}], regex: [{
|
|
7293
|
-
type: Input
|
|
7294
|
-
}], emitValue: [{
|
|
7295
|
-
type: Output
|
|
7296
|
-
}] } });
|
|
7297
|
-
|
|
7298
7270
|
class TextareaComponent {
|
|
7299
7271
|
label = '';
|
|
7300
7272
|
placeholder = '';
|