@lucca-front/ng 17.2.0 → 17.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/button.component.d.ts +1 -2
- package/callout/callout-feedback-list/callout-feedback-list.component.d.ts +1 -2
- package/core/public-api.d.ts +1 -1
- package/core/tools/class.d.ts +11 -0
- package/esm2022/button/button.component.mjs +7 -8
- package/esm2022/callout/callout-feedback-list/callout-feedback-list.component.mjs +6 -7
- package/esm2022/core/public-api.mjs +2 -2
- package/esm2022/core/tools/class.mjs +75 -0
- package/esm2022/empty-state/empty-state-page/empty-state-page.component.mjs +3 -3
- package/esm2022/empty-state/empty-state-section/empty-state-section.component.mjs +3 -3
- package/esm2022/form-field/form-field.component.mjs +11 -10
- package/esm2022/inline-message/inline-message.component.mjs +7 -8
- package/esm2022/numeric-badge/numeric-badge.component.mjs +7 -8
- package/fesm2022/lucca-front-ng-button.mjs +6 -7
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +5 -6
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +72 -22
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +4 -4
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +10 -9
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +6 -7
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +6 -7
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/form-field/form-field.component.d.ts +1 -2
- package/inline-message/inline-message.component.d.ts +1 -2
- package/numeric-badge/numeric-badge.component.d.ts +1 -2
- package/package.json +3 -3
- package/core/tools/ng-clazz.directive.d.ts +0 -9
- package/esm2022/core/tools/ng-clazz.directive.mjs +0 -26
|
@@ -3,10 +3,9 @@ import { InjectionToken, inject, booleanAttribute, forwardRef, Component, ViewEn
|
|
|
3
3
|
import { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';
|
|
4
4
|
import { BehaviorSubject } from 'rxjs';
|
|
5
5
|
import { InlineMessageComponent } from '@lucca-front/ng/inline-message';
|
|
6
|
-
import * as
|
|
6
|
+
import * as i1 from '@lucca-front/ng/tooltip';
|
|
7
7
|
import { LuTooltipModule } from '@lucca-front/ng/tooltip';
|
|
8
|
-
import
|
|
9
|
-
import { NgClazz } from '@lucca-front/ng/core';
|
|
8
|
+
import { LuClass } from '@lucca-front/ng/core';
|
|
10
9
|
import { RequiredValidator, Validators, NgControl, NG_VALIDATORS, ReactiveFormsModule } from '@angular/forms';
|
|
11
10
|
import { IconComponent } from '@lucca-front/ng/icon';
|
|
12
11
|
|
|
@@ -15,7 +14,7 @@ const FORM_FIELD_INSTANCE = new InjectionToken('FORM_FIELD_INSTANCE');
|
|
|
15
14
|
let nextId = 0;
|
|
16
15
|
class FormFieldComponent {
|
|
17
16
|
constructor() {
|
|
18
|
-
this.#
|
|
17
|
+
this.#luClass = inject(LuClass);
|
|
19
18
|
this.clazz = 'form-field';
|
|
20
19
|
this.hiddenLabel = false;
|
|
21
20
|
this.required = false;
|
|
@@ -24,7 +23,7 @@ class FormFieldComponent {
|
|
|
24
23
|
this.ready$ = new BehaviorSubject(false);
|
|
25
24
|
this.#ariaLabelledBy = [];
|
|
26
25
|
}
|
|
27
|
-
#
|
|
26
|
+
#luClass;
|
|
28
27
|
#control;
|
|
29
28
|
#requiredValidator;
|
|
30
29
|
set validators(validators) {
|
|
@@ -64,10 +63,10 @@ class FormFieldComponent {
|
|
|
64
63
|
}
|
|
65
64
|
#nativeInputRef;
|
|
66
65
|
ngOnChanges() {
|
|
67
|
-
this.#
|
|
66
|
+
this.#luClass.setState({
|
|
68
67
|
[`mod-${this.size}`]: true,
|
|
69
68
|
[`mod-checkable`]: this.layout === 'checkable',
|
|
70
|
-
};
|
|
69
|
+
});
|
|
71
70
|
if (this.#nativeInputRef) {
|
|
72
71
|
this.updateAria();
|
|
73
72
|
}
|
|
@@ -109,15 +108,17 @@ class FormFieldComponent {
|
|
|
109
108
|
}
|
|
110
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
110
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: FormFieldComponent, isStandalone: true, selector: "lu-form-field", inputs: { label: "label", hiddenLabel: ["hiddenLabel", "hiddenLabel", booleanAttribute], tooltip: "tooltip", inlineMessage: "inlineMessage", inlineMessageState: "inlineMessageState", size: "size", layout: "layout" }, host: { properties: { "class": "this.clazz" } }, providers: [
|
|
111
|
+
LuClass,
|
|
112
112
|
{
|
|
113
113
|
provide: FORM_FIELD_INSTANCE,
|
|
114
114
|
useExisting: forwardRef(() => FormFieldComponent),
|
|
115
115
|
},
|
|
116
|
-
], queries: [{ propertyName: "control", first: true, predicate: NgControl, descendants: true }, { propertyName: "validators", predicate: NG_VALIDATORS }], usesOnChanges: true,
|
|
116
|
+
], queries: [{ propertyName: "control", first: true, predicate: NgControl, descendants: true }, { propertyName: "validators", predicate: NG_VALIDATORS }], usesOnChanges: true, ngImport: i0, template: "<label\n\tclass=\"formLabel\"\n\t[class.is-error]=\"invalid\"\n\tid=\"{{id}}-label\"\n\tfor=\"{{id}}\"\n\t[class.u-mask]=\"hiddenLabel\"\n\tattr.aria-hidden=\"{{hiddenLabel}}\"\n>\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n</label>\n<ng-content></ng-content>\n<lu-inline-message\n\tid=\"{{id}}-message\"\n\t*ngIf=\"inlineMessage\"\n\t[label]=\"inlineMessage\"\n\t[state]=\"invalid ? 'error' : inlineMessageState\"\n></lu-inline-message>\n", styles: [".textField{--component-textField-lineHeight: var(--size-M-lightHeight);--component-textField-fontSize: var(--size-M-fontSize);--component-textField-placeholder: var(--palettes-grey-400);--component-textField-background: var(--colors-white-color);--component-textField-border: var(--palettes-grey-300);--component-textField-color: var(--palettes-grey-800);--component-textField-prefix-color: var(--palettes-grey-600);--component-textField-padding: var(--spacings-XS);--component-textField-affix-padding: var(--component-textField-padding);display:flex;align-items:stretch;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background)}.textField:has(.textField-input-value:focus-visible){outline:2px solid var(--palettes-primary-700);outline-offset:3px}.textField-input{display:flex;align-items:center;width:100%;box-shadow:0 0 0 1px var(--component-textField-border);border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);position:relative}.textField-input:hover{--component-textField-border: var(--palettes-grey-400)}.textField-input:has(.textField-input-affix-icon){--component-textField-affix-padding: 2.5rem}.textField-input:has(.textField-input-affix-clear){--component-textField-affix-padding: 2rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-icon){--component-textField-affix-padding: 4rem}.textField-input-value{border:0;outline:0;line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);width:100%;padding:var(--component-textField-padding) var(--component-textField-affix-padding) var(--component-textField-padding) var(--component-textField-padding);background-color:transparent;color:var(--component-textField-color)}.textField-input-value::placeholder{color:var(--component-textField-placeholder)}.textField-input-affix{display:inline-flex;align-items:center;gap:var(--spacings-XS);position:absolute;right:var(--spacings-XS);pointer-events:none}.textField-input-affix-icon{--icon-size: 1.5rem;color:var(--palettes-grey-600);pointer-events:none}.textField-input-affix-clear{pointer-events:auto}.textField-input-affix-passwordToggle{pointer-events:auto;width:1.75rem;height:1.75rem}.textField-prefix{display:flex;padding:0 var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);box-shadow:0 0 0 1px var(--component-textField-border);border-top-left-radius:var(--commons-borderRadius-M);border-bottom-left-radius:var(--commons-borderRadius-M)}.textField-prefix~.textField-input{border-top-left-radius:0;border-bottom-left-radius:0}.textField-suffix{display:flex;padding:0 var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);box-shadow:0 0 0 1px var(--component-textField-border);border-top-right-radius:var(--commons-borderRadius-M);border-bottom-right-radius:var(--commons-borderRadius-M);order:1}.textField-suffix~.textField-input{border-top-right-radius:0;border-bottom-right-radius:0}.textField.mod-S{--component-textField-fontSize: var(--sizes-S-fontSize);--component-textField-lineHeight: var(--sizes-S-lineHeight);--component-textField-padding: .375rem}.textField.mod-S .textField-input-affix-clear{--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-S .textField-input-affix-icon{--icon-size: 1.25rem}.textField.mod-XS{--component-textField-fontSize: var(--sizes-XS-fontSize);--component-textField-lineHeight: var(--sizes-XS-lineHeight);--component-textField-padding: var(--spacings-XXS)}.textField.mod-XS .textField-prefix,.textField.mod-XS .textField-suffix,.textField.mod-XS .textField-input-affix-icon{--icon-size: 1rem}.textField.mod-XS .textField-input-affix-clear{--components-clear-size: .75rem;--icon-size: .75rem}.textField.is-invalid,.textField:has(.textField-input-value[aria-invalid=true]){--component-textField-border: var(--palettes-error-400);--component-textField-background: var(--palettes-error-50);--component-textField-placeholder: var(--palettes-error-400)}.textField.is-invalid .textField-input:hover,.textField:has(.textField-input-value[aria-invalid=true]) .textField-input:hover{--component-textField-border: var(--palettes-error-600)}.textField.is-disabled,.textField:has(.textField-input-value:disabled){--component-textField-border: var(--palettes-grey-300);--component-textField-background: var(--palettes-grey-100);--component-textField-color: var(--palettes-grey-600)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InlineMessageComponent, selector: "lu-inline-message", inputs: ["label", "state", "size"] }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: i1.LuTooltipTriggerDirective, selector: "[luTooltip]", inputs: ["luTooltip", "luTooltipEnterDelay", "luTooltipLeaveDelay", "luTooltipDisabled", "luTooltipPosition", "luTooltipWhenEllipsis"], outputs: ["luTooltipOnOpen", "luTooltipOnClose"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
117
117
|
}
|
|
118
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
119
119
|
type: Component,
|
|
120
|
-
args: [{ selector: 'lu-form-field', standalone: true, imports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],
|
|
120
|
+
args: [{ selector: 'lu-form-field', standalone: true, imports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent], providers: [
|
|
121
|
+
LuClass,
|
|
121
122
|
{
|
|
122
123
|
provide: FORM_FIELD_INSTANCE,
|
|
123
124
|
useExisting: forwardRef(() => FormFieldComponent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","import { booleanAttribute, Component, ContentChild, ContentChildren, DoCheck, forwardRef, HostBinding, inject, Input, OnChanges, OnDestroy, QueryList, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { NgClazz } from '@lucca-front/ng/core';\nimport { NG_VALIDATORS, NgControl, ReactiveFormsModule, RequiredValidator, Validator, Validators } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\thostDirectives: [NgClazz],\n\tproviders: [\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {\n\t#ngClass = inject(NgClazz);\n\n\t#control: NgControl;\n\n\t#requiredValidator: RequiredValidator | undefined;\n\n\t@ContentChildren(NG_VALIDATORS)\n\tpublic set validators(validators: QueryList<Validator | undefined>) {\n\t\tthis.#requiredValidator = validators.toArray()?.find((v): v is RequiredValidator => v instanceof RequiredValidator);\n\t}\n\n\t@ContentChild(NgControl)\n\tpublic set control(control: NgControl) {\n\t\tif (control === undefined) {\n\t\t\t// This might be because the child input is initialized with a ngIf, just ignore this case\n\t\t\treturn;\n\t\t}\n\t\tthis.#control = control;\n\t}\n\n\t@HostBinding('class')\n\tclazz = 'form-field';\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: string;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\trequired = false;\n\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkable' = 'default';\n\n\tprivate _input: InputDirective;\n\n\tpublic set input(input: InputDirective) {\n\t\tthis._input = input;\n\t\tthis.prepareInput();\n\t}\n\n\tpublic get input(): InputDirective {\n\t\treturn this._input;\n\t}\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.#nativeInputRef.setAttribute('aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t}\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\t#nativeInputRef: HTMLElement;\n\n\tngOnChanges(): void {\n\t\tthis.#ngClass.ngClass = {\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`mod-checkable`]: this.layout === 'checkable',\n\t\t};\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.updateAria();\n\t\t}\n\t}\n\n\tprepareInput(): void {\n\t\tif (!this.input) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.#nativeInputRef = this.input.host.nativeElement;\n\t\tthis.id = `${this.#nativeInputRef.tagName.toLowerCase()}-${++nextId}`;\n\t\tthis.#nativeInputRef.id = this.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#nativeInputRef.ariaInvalid = this.invalid.toString();\n\t\tthis.#nativeInputRef.ariaRequired = this.required.toString();\n\t\tthis.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);\n\t\tthis.addLabelledBy(`${this.id}-label`);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tif (this.#control) {\n\t\t\t// invalid management\n\t\t\tconst previousInvalid = this.invalid;\n\t\t\tthis.invalid = this.#control.invalid && this.#control.touched;\n\n\t\t\t// required management\n\t\t\tconst previousRequired = this.required;\n\t\t\tthis.required = this.#requiredValidator\n\t\t\t\t? booleanAttribute(this.#requiredValidator.required)\n\t\t\t\t: this.#control.control.hasValidator(Validators.required) || this.#control.control.hasValidator(Validators.requiredTrue);\n\n\t\t\t// If stuff changed, update aria attributes\n\t\t\tif (this.invalid !== previousInvalid || this.required !== previousRequired) {\n\t\t\t\tthis.updateAria();\n\t\t\t}\n\t\t}\n\t}\n}\n","<label\n\tclass=\"formLabel\"\n\t[class.is-error]=\"invalid\"\n\tid=\"{{id}}-label\"\n\tfor=\"{{id}}\"\n\t[class.u-mask]=\"hiddenLabel\"\n\tattr.aria-hidden=\"{{hiddenLabel}}\"\n>\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n</label>\n<ng-content></ng-content>\n<lu-inline-message\n\tid=\"{{id}}-message\"\n\t*ngIf=\"inlineMessage\"\n\t[label]=\"inlineMessage\"\n\t[state]=\"invalid ? 'error' : inlineMessageState\"\n></lu-inline-message>\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.input = this;\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","import { booleanAttribute, Component, ContentChild, ContentChildren, DoCheck, forwardRef, HostBinding, inject, Input, OnChanges, OnDestroy, QueryList, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { LuClass } from '@lucca-front/ng/core';\nimport { NG_VALIDATORS, NgControl, ReactiveFormsModule, RequiredValidator, Validator, Validators } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {\n\t#luClass = inject(LuClass);\n\n\t#control: NgControl;\n\n\t#requiredValidator: RequiredValidator | undefined;\n\n\t@ContentChildren(NG_VALIDATORS)\n\tpublic set validators(validators: QueryList<Validator | undefined>) {\n\t\tthis.#requiredValidator = validators.toArray()?.find((v): v is RequiredValidator => v instanceof RequiredValidator);\n\t}\n\n\t@ContentChild(NgControl)\n\tpublic set control(control: NgControl) {\n\t\tif (control === undefined) {\n\t\t\t// This might be because the child input is initialized with a ngIf, just ignore this case\n\t\t\treturn;\n\t\t}\n\t\tthis.#control = control;\n\t}\n\n\t@HostBinding('class')\n\tclazz = 'form-field';\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: string;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\trequired = false;\n\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkable' = 'default';\n\n\tprivate _input: InputDirective;\n\n\tpublic set input(input: InputDirective) {\n\t\tthis._input = input;\n\t\tthis.prepareInput();\n\t}\n\n\tpublic get input(): InputDirective {\n\t\treturn this._input;\n\t}\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.#nativeInputRef.setAttribute('aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t}\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\t#nativeInputRef: HTMLElement;\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`mod-checkable`]: this.layout === 'checkable',\n\t\t});\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.updateAria();\n\t\t}\n\t}\n\n\tprepareInput(): void {\n\t\tif (!this.input) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.#nativeInputRef = this.input.host.nativeElement;\n\t\tthis.id = `${this.#nativeInputRef.tagName.toLowerCase()}-${++nextId}`;\n\t\tthis.#nativeInputRef.id = this.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#nativeInputRef.ariaInvalid = this.invalid.toString();\n\t\tthis.#nativeInputRef.ariaRequired = this.required.toString();\n\t\tthis.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);\n\t\tthis.addLabelledBy(`${this.id}-label`);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tif (this.#control) {\n\t\t\t// invalid management\n\t\t\tconst previousInvalid = this.invalid;\n\t\t\tthis.invalid = this.#control.invalid && this.#control.touched;\n\n\t\t\t// required management\n\t\t\tconst previousRequired = this.required;\n\t\t\tthis.required = this.#requiredValidator\n\t\t\t\t? booleanAttribute(this.#requiredValidator.required)\n\t\t\t\t: this.#control.control.hasValidator(Validators.required) || this.#control.control.hasValidator(Validators.requiredTrue);\n\n\t\t\t// If stuff changed, update aria attributes\n\t\t\tif (this.invalid !== previousInvalid || this.required !== previousRequired) {\n\t\t\t\tthis.updateAria();\n\t\t\t}\n\t\t}\n\t}\n}\n","<label\n\tclass=\"formLabel\"\n\t[class.is-error]=\"invalid\"\n\tid=\"{{id}}-label\"\n\tfor=\"{{id}}\"\n\t[class.u-mask]=\"hiddenLabel\"\n\tattr.aria-hidden=\"{{hiddenLabel}}\"\n>\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n</label>\n<ng-content></ng-content>\n<lu-inline-message\n\tid=\"{{id}}-message\"\n\t*ngIf=\"inlineMessage\"\n\t[label]=\"inlineMessage\"\n\t[state]=\"invalid ? 'error' : inlineMessageState\"\n></lu-inline-message>\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.input = this;\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';
|
|
3
3
|
import { NgIf } from '@angular/common';
|
|
4
|
-
import
|
|
5
|
-
import { NgClazz } from '@lucca-front/ng/core';
|
|
4
|
+
import { LuClass } from '@lucca-front/ng/core';
|
|
6
5
|
import { IconComponent } from '@lucca-front/ng/icon';
|
|
7
6
|
|
|
8
7
|
class InlineMessageComponent {
|
|
9
|
-
#
|
|
8
|
+
#luClass = inject(LuClass);
|
|
10
9
|
ngOnChanges() {
|
|
11
|
-
this.#
|
|
10
|
+
this.#luClass.setState({
|
|
12
11
|
[`mod-${this.size}`]: true,
|
|
13
12
|
[`is-${this.state}`]: true,
|
|
14
|
-
};
|
|
13
|
+
});
|
|
15
14
|
}
|
|
16
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: InlineMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: InlineMessageComponent, isStandalone: true, selector: "lu-inline-message", inputs: { label: "label", state: "state", size: "size" }, host: { classAttribute: "inlineMessage" },
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: InlineMessageComponent, isStandalone: true, selector: "lu-inline-message", inputs: { label: "label", state: "state", size: "size" }, host: { classAttribute: "inlineMessage" }, providers: [LuClass], usesOnChanges: true, ngImport: i0, template: "<lu-icon [icon]=\"state\" *ngIf=\"state && state !== 'default'\" [alt]=\"state\"></lu-icon>{{label}}\n", styles: [".inlineMessage{--components-inlineMessage-fontSize: var(--sizes-S-fontSize);--components-inlineMessage-lineHeight: var(--sizes-S-lineHeight);--components-inlineMessage-color: var(--palettes-grey-700);--components-inlineMessage-icon-color: var(--palettes-grey-600);display:flex;gap:var(--components-inlineMessage-gap);font-size:var(--components-inlineMessage-fontSize);line-height:var(--components-inlineMessage-lineHeight);color:var(--components-inlineMessage-color);grid-column:2}.inlineMessage .lucca-icon{--icon-size: 1rem;color:var(--components-inlineMessage-icon-color);margin-top:2px}.inlineMessage.mod-S{--components-inlineMessage-fontSize: var(--sizes-XS-fontSize);--components-inlineMessage-lineHeight: var(--sizes-XS-lineHeight)}.inlineMessage.mod-S .lucca-icon{--icon-size: .75rem}.inlineMessage.is-success{--components-inlineMessage-icon-color: var(--palettes-success-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-success .lucca-icon:before{content:\"\\e9ed\";content:\"\\e9ed\"/\"\"}.inlineMessage.is-warning{--components-inlineMessage-icon-color: var(--palettes-warning-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-warning .lucca-icon:before{content:\"\\e992\";content:\"\\e992\"/\"\"}.inlineMessage.is-error{--components-inlineMessage-icon-color: var(--palettes-error-700);--components-inlineMessage-color: var(--palettes-error-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-error .lucca-icon:before{content:\"\\e92c\";content:\"\\e92c\"/\"\"}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
18
17
|
}
|
|
19
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: InlineMessageComponent, decorators: [{
|
|
20
19
|
type: Component,
|
|
21
|
-
args: [{ selector: 'lu-inline-message', standalone: true, imports: [NgIf, IconComponent],
|
|
20
|
+
args: [{ selector: 'lu-inline-message', standalone: true, imports: [NgIf, IconComponent], providers: [LuClass], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
22
21
|
class: 'inlineMessage',
|
|
23
22
|
}, template: "<lu-icon [icon]=\"state\" *ngIf=\"state && state !== 'default'\" [alt]=\"state\"></lu-icon>{{label}}\n", styles: [".inlineMessage{--components-inlineMessage-fontSize: var(--sizes-S-fontSize);--components-inlineMessage-lineHeight: var(--sizes-S-lineHeight);--components-inlineMessage-color: var(--palettes-grey-700);--components-inlineMessage-icon-color: var(--palettes-grey-600);display:flex;gap:var(--components-inlineMessage-gap);font-size:var(--components-inlineMessage-fontSize);line-height:var(--components-inlineMessage-lineHeight);color:var(--components-inlineMessage-color);grid-column:2}.inlineMessage .lucca-icon{--icon-size: 1rem;color:var(--components-inlineMessage-icon-color);margin-top:2px}.inlineMessage.mod-S{--components-inlineMessage-fontSize: var(--sizes-XS-fontSize);--components-inlineMessage-lineHeight: var(--sizes-XS-lineHeight)}.inlineMessage.mod-S .lucca-icon{--icon-size: .75rem}.inlineMessage.is-success{--components-inlineMessage-icon-color: var(--palettes-success-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-success .lucca-icon:before{content:\"\\e9ed\";content:\"\\e9ed\"/\"\"}.inlineMessage.is-warning{--components-inlineMessage-icon-color: var(--palettes-warning-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-warning .lucca-icon:before{content:\"\\e992\";content:\"\\e992\"/\"\"}.inlineMessage.is-error{--components-inlineMessage-icon-color: var(--palettes-error-700);--components-inlineMessage-color: var(--palettes-error-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-error .lucca-icon:before{content:\"\\e92c\";content:\"\\e92c\"/\"\"}\n"] }]
|
|
24
23
|
}], propDecorators: { label: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-inline-message.mjs","sources":["../../../packages/ng/inline-message/inline-message.component.ts","../../../packages/ng/inline-message/inline-message.component.html","../../../packages/ng/inline-message/lucca-front-ng-inline-message.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { InlineMessageState } from './inline-message-state';\nimport {
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-inline-message.mjs","sources":["../../../packages/ng/inline-message/inline-message.component.ts","../../../packages/ng/inline-message/inline-message.component.html","../../../packages/ng/inline-message/lucca-front-ng-inline-message.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { InlineMessageState } from './inline-message-state';\nimport { LuClass } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\tselector: 'lu-inline-message',\n\tstandalone: true,\n\timports: [NgIf, IconComponent],\n\tproviders: [LuClass],\n\ttemplateUrl: './inline-message.component.html',\n\tstyleUrls: ['./inline-message.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'inlineMessage',\n\t},\n})\nexport class InlineMessageComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\n\t@Input({ required: true })\n\tlabel: string;\n\n\t@Input()\n\tstate: InlineMessageState;\n\n\t@Input()\n\tsize: 'S' | 'M';\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`is-${this.state}`]: true,\n\t\t});\n\t}\n}\n","<lu-icon [icon]=\"state\" *ngIf=\"state && state !== 'default'\" [alt]=\"state\"></lu-icon>{{label}}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAmBa,sBAAsB,CAAA;AAClC,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAW3B,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,YAAA,CAAC,OAAO,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;AAC1B,YAAA,CAAC,MAAM,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC1B,SAAA,CAAC,CAAC;KACH;8GAjBW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EATvB,CAAC,OAAO,CAAC,+CCVrB,wGACA,EAAA,MAAA,EAAA,CAAA,6gDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQW,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAUjB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,SAAS;+BACC,mBAAmB,EAAA,UAAA,EACjB,IAAI,EACP,OAAA,EAAA,CAAC,IAAI,EAAE,aAAa,CAAC,EACnB,SAAA,EAAA,CAAC,OAAO,CAAC,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACL,wBAAA,KAAK,EAAE,eAAe;AACtB,qBAAA,EAAA,QAAA,EAAA,wGAAA,EAAA,MAAA,EAAA,CAAA,6gDAAA,CAAA,EAAA,CAAA;8BAMD,KAAK,EAAA,CAAA;sBADJ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIzB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;;;AE5BP;;AAEG;;;;"}
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';
|
|
3
|
-
import
|
|
4
|
-
import { NgClazz } from '@lucca-front/ng/core';
|
|
3
|
+
import { LuClass } from '@lucca-front/ng/core';
|
|
5
4
|
|
|
6
5
|
class NumericBadgeComponent {
|
|
7
6
|
constructor() {
|
|
8
|
-
this.#
|
|
7
|
+
this.#luClass = inject(LuClass);
|
|
9
8
|
this.palette = 'none';
|
|
10
9
|
}
|
|
11
|
-
#
|
|
10
|
+
#luClass;
|
|
12
11
|
ngOnChanges(changes) {
|
|
13
12
|
if (changes['palette']?.currentValue || changes['size']?.currentValue) {
|
|
14
|
-
this.#
|
|
13
|
+
this.#luClass.setState([`palette-${this.palette}`, `mod-${this.size}`]);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NumericBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: NumericBadgeComponent, isStandalone: true, selector: "lu-numeric-badge", inputs: { value: ["value", "value", numberAttribute], size: "size", palette: "palette" }, host: { classAttribute: "numericBadge" },
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: NumericBadgeComponent, isStandalone: true, selector: "lu-numeric-badge", inputs: { value: ["value", "value", numberAttribute], size: "size", palette: "palette" }, host: { classAttribute: "numericBadge" }, providers: [LuClass], usesOnChanges: true, ngImport: i0, template: "{{value}}\n", styles: [".numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-grey-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-grey-700));--components-numericBadge-size: 1.5rem;--components-numericBadge-fontSize: var(--sizes-S-fontSize);--components-numericBadge-lineHeight: var(--sizes-S-lineHeight);--components-numericBadge-borderRadius: var(--commons-borderRadius-L);display:inline-flex;align-items:center;justify-content:center;height:var(--components-numericBadge-size);min-width:var(--components-numericBadge-size);padding:var(--spacings-XXS);font-size:var(--components-numericBadge-fontSize);line-height:var(--components-numericBadge-lineHeight);font-weight:600;background-color:var(--components-numericBadge-background);color:var(--components-numericBadge-color);border-radius:var(--components-numericBadge-borderRadius);transition-property:background-color,color;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease}.numericBadge.mod-S{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.numericBadge.mod-XS{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host{display:inline-flex}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
19
18
|
}
|
|
20
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NumericBadgeComponent, decorators: [{
|
|
21
20
|
type: Component,
|
|
22
|
-
args: [{ selector: 'lu-numeric-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21
|
+
args: [{ selector: 'lu-numeric-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [LuClass], host: {
|
|
23
22
|
class: 'numericBadge',
|
|
24
23
|
}, encapsulation: ViewEncapsulation.None, template: "{{value}}\n", styles: [".numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-grey-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-grey-700));--components-numericBadge-size: 1.5rem;--components-numericBadge-fontSize: var(--sizes-S-fontSize);--components-numericBadge-lineHeight: var(--sizes-S-lineHeight);--components-numericBadge-borderRadius: var(--commons-borderRadius-L);display:inline-flex;align-items:center;justify-content:center;height:var(--components-numericBadge-size);min-width:var(--components-numericBadge-size);padding:var(--spacings-XXS);font-size:var(--components-numericBadge-fontSize);line-height:var(--components-numericBadge-lineHeight);font-weight:600;background-color:var(--components-numericBadge-background);color:var(--components-numericBadge-color);border-radius:var(--components-numericBadge-borderRadius);transition-property:background-color,color;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease}.numericBadge.mod-S{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.numericBadge.mod-XS{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host{display:inline-flex}\n"] }]
|
|
25
24
|
}], propDecorators: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-numeric-badge.mjs","sources":["../../../packages/ng/numeric-badge/numeric-badge.component.ts","../../../packages/ng/numeric-badge/numeric-badge.component.html","../../../packages/ng/numeric-badge/lucca-front-ng-numeric-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-numeric-badge.mjs","sources":["../../../packages/ng/numeric-badge/numeric-badge.component.ts","../../../packages/ng/numeric-badge/numeric-badge.component.html","../../../packages/ng/numeric-badge/lucca-front-ng-numeric-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-numeric-badge',\n\tstandalone: true,\n\ttemplateUrl: './numeric-badge.component.html',\n\tstyleUrls: ['./numeric-badge.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [LuClass],\n\thost: {\n\t\tclass: 'numericBadge',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class NumericBadgeComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\n\t@Input({ required: true, transform: numberAttribute })\n\t/**\n\t * The value to display, number only.\n\t */\n\tvalue!: number;\n\n\t@Input()\n\t/**\n\t * The size of the badge\n\t */\n\tsize: 'XS' | 'S' | 'M';\n\n\t@Input()\n\t/**\n\t * The palette to use for this badge. Defaults to 'none' (inherits parent palette)\n\t */\n\tpalette: Palette = 'none';\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['palette']?.currentValue || changes['size']?.currentValue) {\n\t\t\tthis.#luClass.setState([`palette-${this.palette}`, `mod-${this.size}`]);\n\t\t}\n\t}\n}\n","{{value}}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAea,qBAAqB,CAAA;AAZlC,IAAA,WAAA,GAAA;AAaC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAkB3B,IAAO,CAAA,OAAA,GAAY,MAAM,CAAC;AAO1B,KAAA;AAzBA,IAAA,QAAQ,CAAmB;AAoB3B,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE;AACtE,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC,CAAC;AACxE,SAAA;KACD;8GAzBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wFAGG,eAAe,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EATxC,CAAC,OAAO,CAAC,+CCTrB,aACA,EAAA,MAAA,EAAA,CAAA,++CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDca,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;+BACC,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,OAAO,CAAC,EACd,IAAA,EAAA;AACL,wBAAA,KAAK,EAAE,cAAc;qBACrB,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,++CAAA,CAAA,EAAA,CAAA;;AAMrC;;AAEG;QACH,KAAK,EAAA,CAAA;sBAJJ,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;;AAOrD;;AAEG;QACH,IAAI,EAAA,CAAA;sBAJH,KAAK;;AAON;;AAEG;QACH,OAAO,EAAA,CAAA;sBAJN,KAAK;;;AE9BP;;AAEG;;;;"}
|
|
@@ -6,7 +6,6 @@ import { InlineMessageState } from '@lucca-front/ng/inline-message';
|
|
|
6
6
|
import { SafeHtml } from '@angular/platform-browser';
|
|
7
7
|
import { NgControl, Validator } from '@angular/forms';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@lucca-front/ng/core";
|
|
10
9
|
export declare class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {
|
|
11
10
|
#private;
|
|
12
11
|
set validators(validators: QueryList<Validator | undefined>);
|
|
@@ -38,6 +37,6 @@ export declare class FormFieldComponent implements OnChanges, OnDestroy, DoCheck
|
|
|
38
37
|
ngOnDestroy(): void;
|
|
39
38
|
ngDoCheck(): void;
|
|
40
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
|
|
41
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lu-form-field", never, { "label": { "alias": "label"; "required": true; }; "hiddenLabel": { "alias": "hiddenLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "inlineMessage": { "alias": "inlineMessage"; "required": false; }; "inlineMessageState": { "alias": "inlineMessageState"; "required": false; }; "size": { "alias": "size"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, {}, ["control", "validators"], ["*"], true,
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lu-form-field", never, { "label": { "alias": "label"; "required": true; }; "hiddenLabel": { "alias": "hiddenLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "inlineMessage": { "alias": "inlineMessage"; "required": false; }; "inlineMessageState": { "alias": "inlineMessageState"; "required": false; }; "size": { "alias": "size"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, {}, ["control", "validators"], ["*"], true, never>;
|
|
42
41
|
static ngAcceptInputType_hiddenLabel: unknown;
|
|
43
42
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { OnChanges } from '@angular/core';
|
|
2
2
|
import { InlineMessageState } from './inline-message-state';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@lucca-front/ng/core";
|
|
5
4
|
export declare class InlineMessageComponent implements OnChanges {
|
|
6
5
|
#private;
|
|
7
6
|
label: string;
|
|
@@ -9,5 +8,5 @@ export declare class InlineMessageComponent implements OnChanges {
|
|
|
9
8
|
size: 'S' | 'M';
|
|
10
9
|
ngOnChanges(): void;
|
|
11
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<InlineMessageComponent, never>;
|
|
12
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InlineMessageComponent, "lu-inline-message", never, { "label": { "alias": "label"; "required": true; }; "state": { "alias": "state"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true,
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InlineMessageComponent, "lu-inline-message", never, { "label": { "alias": "label"; "required": true; }; "state": { "alias": "state"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
13
12
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { Palette } from '@lucca-front/ng/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@lucca-front/ng/core";
|
|
5
4
|
export declare class NumericBadgeComponent implements OnChanges {
|
|
6
5
|
#private;
|
|
7
6
|
/**
|
|
@@ -18,6 +17,6 @@ export declare class NumericBadgeComponent implements OnChanges {
|
|
|
18
17
|
palette: Palette;
|
|
19
18
|
ngOnChanges(changes: SimpleChanges): void;
|
|
20
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<NumericBadgeComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NumericBadgeComponent, "lu-numeric-badge", never, { "value": { "alias": "value"; "required": true; }; "size": { "alias": "size"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; }, {}, never, never, true,
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NumericBadgeComponent, "lu-numeric-badge", never, { "value": { "alias": "value"; "required": true; }; "size": { "alias": "size"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; }, {}, never, never, true, never>;
|
|
22
21
|
static ngAcceptInputType_value: unknown;
|
|
23
22
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucca-front/ng",
|
|
3
|
-
"version": "17.2.
|
|
3
|
+
"version": "17.2.1",
|
|
4
4
|
"description": "A library of icons made by the team @Lucca",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@angular/common": "^17.0.2",
|
|
27
27
|
"@angular/core": "^17.0.2",
|
|
28
28
|
"@angular/cdk": "^17.0.0",
|
|
29
|
-
"@lucca-front/icons": "v17.2.
|
|
30
|
-
"@lucca-front/scss": "v17.2.
|
|
29
|
+
"@lucca-front/icons": "v17.2.1",
|
|
30
|
+
"@lucca-front/scss": "v17.2.1",
|
|
31
31
|
"@types/dompurify": "^3.0.0",
|
|
32
32
|
"isomorphic-dompurify": "^2.2.0",
|
|
33
33
|
"rxjs": "^7.8.1"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { NgClass } from '@angular/common';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class NgClazz extends NgClass {
|
|
4
|
-
#private;
|
|
5
|
-
set ngClass(value: NgClass['ngClass']);
|
|
6
|
-
constructor();
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgClazz, never>;
|
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgClazz, "[ngClazz]", never, {}, {}, never, never, true, never>;
|
|
9
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, ElementRef, inject, IterableDiffers, KeyValueDiffers, Renderer2 } from '@angular/core';
|
|
2
|
-
import { NgClass } from '@angular/common';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
// This directive exists to temporarily resolve a conflict in how directives work, see https://github.com/angular/angular/issues/52072
|
|
5
|
-
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
6
|
-
export class NgClazz extends NgClass {
|
|
7
|
-
#cdr = inject(ChangeDetectorRef);
|
|
8
|
-
set ngClass(value) {
|
|
9
|
-
super.ngClass = value;
|
|
10
|
-
setTimeout(() => this.#cdr.markForCheck());
|
|
11
|
-
}
|
|
12
|
-
constructor() {
|
|
13
|
-
super(inject(IterableDiffers), inject(KeyValueDiffers), inject(ElementRef), inject(Renderer2));
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NgClazz, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
16
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: NgClazz, isStandalone: true, selector: "[ngClazz]", usesInheritance: true, ngImport: i0 }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NgClazz, decorators: [{
|
|
19
|
-
type: Directive,
|
|
20
|
-
args: [{
|
|
21
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
22
|
-
selector: '[ngClazz]',
|
|
23
|
-
standalone: true,
|
|
24
|
-
}]
|
|
25
|
-
}], ctorParameters: () => [] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2xhenouZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvY29yZS90b29scy9uZy1jbGF6ei5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFMUMsc0lBQXNJO0FBTXRJLGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sT0FBUSxTQUFRLE9BQU87SUFDbkMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpDLElBQWEsT0FBTyxDQUFDLEtBQXlCO1FBQzdDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEO1FBQ0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OEdBVlcsT0FBTztrR0FBUCxPQUFPOzsyRkFBUCxPQUFPO2tCQU5uQixTQUFTO21CQUFDO29CQUNWLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSXRlcmFibGVEaWZmZXJzLCBLZXlWYWx1ZURpZmZlcnMsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIFRoaXMgZGlyZWN0aXZlIGV4aXN0cyB0byB0ZW1wb3JhcmlseSByZXNvbHZlIGEgY29uZmxpY3QgaW4gaG93IGRpcmVjdGl2ZXMgd29yaywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzUyMDcyXG5ARGlyZWN0aXZlKHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICdbbmdDbGF6el0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIE5nQ2xhenogZXh0ZW5kcyBOZ0NsYXNzIHtcblx0I2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblx0b3ZlcnJpZGUgc2V0IG5nQ2xhc3ModmFsdWU6IE5nQ2xhc3NbJ25nQ2xhc3MnXSkge1xuXHRcdHN1cGVyLm5nQ2xhc3MgPSB2YWx1ZTtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuI2Nkci5tYXJrRm9yQ2hlY2soKSk7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcihpbmplY3QoSXRlcmFibGVEaWZmZXJzKSwgaW5qZWN0KEtleVZhbHVlRGlmZmVycyksIGluamVjdChFbGVtZW50UmVmKSwgaW5qZWN0KFJlbmRlcmVyMikpO1xuXHR9XG59XG4iXX0=
|