@lucca-front/ng 22.0.5 → 22.1.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/lucca-front-ng-activity-feed.mjs +12 -9
- package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs +1 -1
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +236 -8
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +5 -1
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-data-table.mjs +2 -2
- package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +217 -159
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +2 -2
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-fancy-box.mjs +47 -24
- package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills-core.mjs +55 -0
- package/fesm2022/lucca-front-ng-filter-pills-core.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-filter-pills.mjs +74 -69
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +37 -5
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-label.mjs +1 -1
- package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form.mjs +42 -5
- package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +3 -3
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +12 -6
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-highlight-data.mjs +6 -7
- package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-impersonation.mjs +19 -4
- package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +8 -3
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-markdown.mjs +51 -0
- package/fesm2022/lucca-front-ng-markdown.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-multi-select.mjs +147 -43
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +11 -5
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-priority-levels.mjs +128 -0
- package/fesm2022/lucca-front-ng-priority-levels.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-safe-content.mjs +5 -2
- package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +63 -12
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +1 -1
- package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user-popover.mjs +3 -2
- package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
- package/package.json +17 -4
- package/src/components/cdk/_overlay.scss +3 -1
- package/types/lucca-front-ng-activity-feed.d.ts +3 -1
- package/types/lucca-front-ng-core-select.d.ts +90 -7
- package/types/lucca-front-ng-core.d.ts +3 -1
- package/types/lucca-front-ng-date2.d.ts +31 -5
- package/types/lucca-front-ng-fancy-box.d.ts +29 -12
- package/types/lucca-front-ng-filter-pills-core.d.ts +69 -0
- package/types/lucca-front-ng-filter-pills.d.ts +28 -55
- package/types/lucca-front-ng-form-field.d.ts +12 -4
- package/types/lucca-front-ng-form.d.ts +7 -1
- package/types/lucca-front-ng-forms.d.ts +7 -2
- package/types/lucca-front-ng-highlight-data.d.ts +1 -2
- package/types/lucca-front-ng-impersonation.d.ts +14 -1
- package/types/lucca-front-ng-link.d.ts +5 -1
- package/types/lucca-front-ng-markdown.d.ts +24 -0
- package/types/lucca-front-ng-multi-select.d.ts +10 -1
- package/types/lucca-front-ng-popover2.d.ts +7 -1
- package/types/lucca-front-ng-priority-levels.d.ts +44 -0
- package/types/lucca-front-ng-simple-select.d.ts +4 -0
|
@@ -2,27 +2,36 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
|
|
3
3
|
declare class FancyBoxComponent {
|
|
4
4
|
#private;
|
|
5
|
+
readonly domain = "https://cdn.lucca.fr";
|
|
6
|
+
readonly path = "/transverse/prisme/visuals/fancy-box/";
|
|
7
|
+
readonly extension = ".svg";
|
|
5
8
|
/**
|
|
6
|
-
*
|
|
9
|
+
* @deprecated use `foregroundStartEnd` instead
|
|
7
10
|
*/
|
|
8
11
|
readonly foreground: _angular_core.InputSignal<string>;
|
|
9
12
|
/**
|
|
10
|
-
*
|
|
13
|
+
* @deprecated use `backgroundEndStart` instead
|
|
11
14
|
*/
|
|
12
15
|
readonly backgroundLeft: _angular_core.InputSignal<string>;
|
|
13
16
|
/**
|
|
14
|
-
*
|
|
17
|
+
* @deprecated use `backgroundStartEnd` instead
|
|
15
18
|
*/
|
|
16
19
|
readonly backgroundRight: _angular_core.InputSignal<string>;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
readonly foregroundStartEnd: _angular_core.InputSignal<string>;
|
|
21
|
+
readonly foregroundEndStart: _angular_core.InputSignal<string>;
|
|
22
|
+
readonly backgroundEndStart: _angular_core.InputSignal<string>;
|
|
23
|
+
readonly backgroundStartEnd: _angular_core.InputSignal<string>;
|
|
20
24
|
readonly size: _angular_core.InputSignal<"S">;
|
|
21
|
-
readonly
|
|
22
|
-
readonly
|
|
23
|
-
|
|
25
|
+
readonly palette: _angular_core.InputSignal<string>;
|
|
26
|
+
readonly paletteClass: _angular_core.Signal<{
|
|
27
|
+
[x: string]: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
readonly backgroundEndStartUrl: _angular_core.Signal<string>;
|
|
30
|
+
readonly backgroundStartEndUrl: _angular_core.Signal<string>;
|
|
31
|
+
readonly foregroundStartEndUrl: _angular_core.Signal<string>;
|
|
32
|
+
readonly foregroundEndStartUrl: _angular_core.Signal<string>;
|
|
24
33
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FancyBoxComponent, never>;
|
|
25
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FancyBoxComponent, "lu-fancy-box", never, { "foreground": { "alias": "foreground"; "required": false; "isSignal": true; }; "backgroundLeft": { "alias": "backgroundLeft"; "required":
|
|
34
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FancyBoxComponent, "lu-fancy-box", never, { "foreground": { "alias": "foreground"; "required": false; "isSignal": true; }; "backgroundLeft": { "alias": "backgroundLeft"; "required": false; "isSignal": true; }; "backgroundRight": { "alias": "backgroundRight"; "required": false; "isSignal": true; }; "foregroundStartEnd": { "alias": "foregroundStartEnd"; "required": false; "isSignal": true; }; "foregroundEndStart": { "alias": "foregroundEndStart"; "required": false; "isSignal": true; }; "backgroundEndStart": { "alias": "backgroundEndStart"; "required": false; "isSignal": true; }; "backgroundStartEnd": { "alias": "backgroundStartEnd"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "palette": { "alias": "palette"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
26
35
|
}
|
|
27
36
|
|
|
28
37
|
/**
|
|
@@ -30,6 +39,14 @@ declare class FancyBoxComponent {
|
|
|
30
39
|
*/
|
|
31
40
|
declare const FANCY_BOX_SIZE: readonly ["S"];
|
|
32
41
|
type FancyBoxSize = (typeof FANCY_BOX_SIZE)[number];
|
|
42
|
+
declare const FANCY_BOX_BACKGROUND_END_START: readonly ["bubbles", "plant"];
|
|
43
|
+
type FancyBoxBackgroundEndStart = (typeof FANCY_BOX_BACKGROUND_END_START)[number];
|
|
44
|
+
declare const FANCY_BOX_BACKGROUND_START_END: readonly ["bubbles", "candies"];
|
|
45
|
+
type FancyBoxBackgroundStartEnd = (typeof FANCY_BOX_BACKGROUND_START_END)[number];
|
|
46
|
+
declare const FANCY_BOX_FOREGROUND_END_START: readonly ["clips"];
|
|
47
|
+
type FancyBoxForegroundEndStart = (typeof FANCY_BOX_FOREGROUND_END_START)[number];
|
|
48
|
+
declare const FANCY_BOX_FOREGROUND_START_END: readonly ["pizza"];
|
|
49
|
+
type FancyBoxForegroundStartEnd = (typeof FANCY_BOX_FOREGROUND_START_END)[number];
|
|
33
50
|
|
|
34
|
-
export { FANCY_BOX_SIZE, FancyBoxComponent };
|
|
35
|
-
export type { FancyBoxSize };
|
|
51
|
+
export { FANCY_BOX_BACKGROUND_END_START, FANCY_BOX_BACKGROUND_START_END, FANCY_BOX_FOREGROUND_END_START, FANCY_BOX_FOREGROUND_START_END, FANCY_BOX_SIZE, FancyBoxComponent };
|
|
52
|
+
export type { FancyBoxBackgroundEndStart, FancyBoxBackgroundStartEnd, FancyBoxForegroundEndStart, FancyBoxForegroundStartEnd, FancyBoxSize };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal, TemplateRef, WritableSignal, InjectionToken } from '@angular/core';
|
|
3
|
+
import { LuccaIcon } from '@lucca-front/icons';
|
|
4
|
+
|
|
5
|
+
type FilterPillLayout = 'checkable';
|
|
6
|
+
interface FilterPillInputComponent {
|
|
7
|
+
parentInput?: FilterPillInputComponent | null;
|
|
8
|
+
isFilterPillEmpty: Signal<boolean>;
|
|
9
|
+
isFilterPillClearable: Signal<boolean>;
|
|
10
|
+
filterPillLayout?: Signal<FilterPillLayout>;
|
|
11
|
+
hideCombobox?: Signal<boolean>;
|
|
12
|
+
showColon?: Signal<boolean>;
|
|
13
|
+
filterPillDisabled?: Signal<boolean>;
|
|
14
|
+
clearFilterPillValue(): void;
|
|
15
|
+
registerFilterPillClosePopover(closeFn: () => void): void;
|
|
16
|
+
registerFilterPillUpdatePosition?(updateFn: () => void): void;
|
|
17
|
+
enableFilterPillMode?(): void;
|
|
18
|
+
onFilterPillClosed?(): void;
|
|
19
|
+
onFilterPillOpened?(): void;
|
|
20
|
+
onFilterPillClick?(): void;
|
|
21
|
+
getDefaultFilterPillIcon?(): LuccaIcon;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Contract exposed by `lu-filter-pill` to the inputs and directives it hosts.
|
|
26
|
+
* Declared here rather than typing the token with `FilterPillComponent` so this entry point
|
|
27
|
+
* stays independent from the components one, which depends on inputs such as `lu-multi-select`.
|
|
28
|
+
*/
|
|
29
|
+
interface FilterPillHostComponent {
|
|
30
|
+
/** Template rendering the input's value inside the pill, set by `luFilterPillDisplayer`. */
|
|
31
|
+
pillTpl: TemplateRef<unknown>;
|
|
32
|
+
/** Template overriding the pill's label, set by `luFilterPillLabel`. */
|
|
33
|
+
readonly customLabelTpl: WritableSignal<TemplateRef<unknown> | null>;
|
|
34
|
+
/** Lets an input register itself when it's too deep to be picked up by content query. */
|
|
35
|
+
registerInput(input: FilterPillInputComponent): void;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare const FILTER_PILL_INPUT_COMPONENT: InjectionToken<FilterPillInputComponent>;
|
|
39
|
+
declare const FILTER_PILL_HOST_COMPONENT: InjectionToken<FilterPillHostComponent>;
|
|
40
|
+
|
|
41
|
+
interface FilterPillDisplayerContext {
|
|
42
|
+
label: string;
|
|
43
|
+
placeholder: string;
|
|
44
|
+
isEmpty: boolean;
|
|
45
|
+
}
|
|
46
|
+
declare class FilterPillDisplayerDirective {
|
|
47
|
+
#private;
|
|
48
|
+
constructor();
|
|
49
|
+
static ngTemplateContextGuard(_dir: FilterPillDisplayerDirective, _ctx: unknown): _ctx is FilterPillDisplayerContext;
|
|
50
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FilterPillDisplayerDirective, never>;
|
|
51
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FilterPillDisplayerDirective, "[luFilterPillDisplayer]", never, {}, {}, never, never, true, never>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
interface FilterPillLabelContext {
|
|
55
|
+
label: string;
|
|
56
|
+
placeholder: string;
|
|
57
|
+
isEmpty: boolean;
|
|
58
|
+
colon: string;
|
|
59
|
+
}
|
|
60
|
+
declare class FilterPillLabelDirective {
|
|
61
|
+
#private;
|
|
62
|
+
constructor();
|
|
63
|
+
static ngTemplateContextGuard(_dir: FilterPillLabelDirective, _ctx: unknown): _ctx is FilterPillLabelContext;
|
|
64
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FilterPillLabelDirective, never>;
|
|
65
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FilterPillLabelDirective, "[luFilterPillLabel]", never, {}, {}, never, never, true, never>;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillDisplayerDirective, FilterPillLabelDirective };
|
|
69
|
+
export type { FilterPillHostComponent, FilterPillInputComponent, FilterPillLayout };
|
|
@@ -1,61 +1,15 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ElementRef, TemplateRef, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as _lucca_front_ng_filter_pills from '@lucca-front/ng/filter-pills';
|
|
4
4
|
import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
5
5
|
import { LuccaIcon } from '@lucca-front/icons';
|
|
6
6
|
import { PopoverDirective } from '@lucca-front/ng/popover2';
|
|
7
|
+
import { FilterPillHostComponent, FilterPillInputComponent } from '@lucca-front/ng/filter-pills/core';
|
|
8
|
+
export * from '@lucca-front/ng/filter-pills/core';
|
|
9
|
+
import { LuOptionComparer as LuOptionComparer$1 } from '@lucca-front/ng/core-select';
|
|
7
10
|
import { LuTranslation } from '@lucca-front/ng/core';
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
interface FilterPillInputComponent {
|
|
11
|
-
parentInput?: FilterPillInputComponent | null;
|
|
12
|
-
isFilterPillEmpty: Signal<boolean>;
|
|
13
|
-
isFilterPillClearable: Signal<boolean>;
|
|
14
|
-
filterPillLayout?: Signal<FilterPillLayout>;
|
|
15
|
-
hideCombobox?: Signal<boolean>;
|
|
16
|
-
showColon?: Signal<boolean>;
|
|
17
|
-
filterPillDisabled?: Signal<boolean>;
|
|
18
|
-
clearFilterPillValue(): void;
|
|
19
|
-
registerFilterPillClosePopover(closeFn: () => void): void;
|
|
20
|
-
registerFilterPillUpdatePosition?(updateFn: () => void): void;
|
|
21
|
-
enableFilterPillMode?(): void;
|
|
22
|
-
onFilterPillClosed?(): void;
|
|
23
|
-
onFilterPillOpened?(): void;
|
|
24
|
-
onFilterPillClick?(): void;
|
|
25
|
-
getDefaultFilterPillIcon?(): LuccaIcon;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
declare const FILTER_PILL_INPUT_COMPONENT: InjectionToken<FilterPillInputComponent>;
|
|
29
|
-
declare const FILTER_PILL_HOST_COMPONENT: InjectionToken<FilterPillComponent>;
|
|
30
|
-
|
|
31
|
-
interface FilterPillDisplayerContext {
|
|
32
|
-
label: string;
|
|
33
|
-
placeholder: string;
|
|
34
|
-
isEmpty: boolean;
|
|
35
|
-
}
|
|
36
|
-
declare class FilterPillDisplayerDirective {
|
|
37
|
-
#private;
|
|
38
|
-
constructor();
|
|
39
|
-
static ngTemplateContextGuard(_dir: FilterPillDisplayerDirective, _ctx: unknown): _ctx is FilterPillDisplayerContext;
|
|
40
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterPillDisplayerDirective, never>;
|
|
41
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FilterPillDisplayerDirective, "[luFilterPillDisplayer]", never, {}, {}, never, never, true, never>;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
interface FilterPillLabelContext {
|
|
45
|
-
label: string;
|
|
46
|
-
placeholder: string;
|
|
47
|
-
isEmpty: boolean;
|
|
48
|
-
colon: string;
|
|
49
|
-
}
|
|
50
|
-
declare class FilterPillLabelDirective {
|
|
51
|
-
#private;
|
|
52
|
-
constructor();
|
|
53
|
-
static ngTemplateContextGuard(_dir: FilterPillLabelDirective, _ctx: unknown): _ctx is FilterPillLabelContext;
|
|
54
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterPillLabelDirective, never>;
|
|
55
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FilterPillLabelDirective, "[luFilterPillLabel]", never, {}, {}, never, never, true, never>;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
declare class FilterPillComponent {
|
|
12
|
+
declare class FilterPillComponent implements FilterPillHostComponent {
|
|
59
13
|
#private;
|
|
60
14
|
readonly intl: _angular_core.InputSignalWithTransform<_lucca_front_ng_filter_pills.LuFilterPillsLabel, Partial<_lucca_front_ng_filter_pills.LuFilterPillsLabel>>;
|
|
61
15
|
readonly elementRef: ElementRef<any>;
|
|
@@ -70,6 +24,12 @@ declare class FilterPillComponent {
|
|
|
70
24
|
readonly customLabelTpl: _angular_core.WritableSignal<TemplateRef<unknown>>;
|
|
71
25
|
readonly name: _angular_core.InputSignal<string>;
|
|
72
26
|
readonly optional: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
27
|
+
/** Groups the pill with the ones sharing the same value in the filter bar's optional filters list. Empty means no group. */
|
|
28
|
+
readonly grouping: _angular_core.InputSignal<string>;
|
|
29
|
+
/** Renders the pill as an icon-only button, its label being carried by a tooltip. */
|
|
30
|
+
readonly iconOnly: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
31
|
+
/** Catches the click that closes the popover instead of letting it through to the page. */
|
|
32
|
+
readonly backdrop: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
73
33
|
readonly disabled: _angular_core.Signal<boolean>;
|
|
74
34
|
get isHiddenClass(): boolean;
|
|
75
35
|
readonly displayed: _angular_core.ModelSignal<boolean>;
|
|
@@ -99,7 +59,7 @@ declare class FilterPillComponent {
|
|
|
99
59
|
clear(): void;
|
|
100
60
|
registerInput(input: FilterPillInputComponent): void;
|
|
101
61
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterPillComponent, never>;
|
|
102
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterPillComponent, "lu-filter-pill", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "displayed": { "alias": "displayed"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholderOverride": { "alias": "placeholder"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "displayed": "displayedChange"; }, ["childInputComponentRef"], ["*"], true, never>;
|
|
62
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterPillComponent, "lu-filter-pill", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "grouping": { "alias": "grouping"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "backdrop": { "alias": "backdrop"; "required": false; "isSignal": true; }; "displayed": { "alias": "displayed"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholderOverride": { "alias": "placeholder"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "displayed": "displayedChange"; }, ["childInputComponentRef"], ["*"], true, never>;
|
|
103
63
|
}
|
|
104
64
|
|
|
105
65
|
declare class FilterBarComponent {
|
|
@@ -112,9 +72,22 @@ declare class FilterBarComponent {
|
|
|
112
72
|
readonly autoApplyAnnouncementId: string;
|
|
113
73
|
readonly addonBefore: _angular_core.WritableSignal<TemplateRef<unknown>>;
|
|
114
74
|
readonly addonAfter: _angular_core.WritableSignal<TemplateRef<unknown>>;
|
|
115
|
-
popoverPositions: ConnectionPositionPair[];
|
|
116
75
|
readonly pills: _angular_core.Signal<readonly FilterPillComponent[]>;
|
|
117
76
|
readonly optionalPills: _angular_core.Signal<FilterPillComponent[]>;
|
|
77
|
+
protected readonly displayedOptionalPills: _angular_core.Signal<FilterPillComponent[]>;
|
|
78
|
+
/** Mirrors the search clue of the optional filters select, which filters its options on its own. */
|
|
79
|
+
protected readonly clue: _angular_core.WritableSignal<string>;
|
|
80
|
+
/**
|
|
81
|
+
* The panel builds a group out of each run of consecutive options, so the pills of a same group
|
|
82
|
+
* have to be listed together. Groups keep the order of their first pill, ungrouped pills come first.
|
|
83
|
+
*/
|
|
84
|
+
protected readonly optionalPillOptions: _angular_core.Signal<FilterPillComponent[]>;
|
|
85
|
+
/** Optional pills are identified by their instance, they have no serializable value to compare. */
|
|
86
|
+
protected readonly optionalPillComparer: LuOptionComparer$1<FilterPillComponent>;
|
|
87
|
+
private readonly optionalPillsSelect;
|
|
88
|
+
private readonly optionalPillsGroupTpl;
|
|
89
|
+
constructor();
|
|
90
|
+
protected displayOptionalPills(pills: FilterPillComponent[]): void;
|
|
118
91
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterBarComponent, never>;
|
|
119
92
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterBarComponent, "lu-filter-bar", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "manualApply": { "alias": "manualApply"; "required": false; "isSignal": true; }; }, {}, ["pills"], ["*"], true, never>;
|
|
120
93
|
}
|
|
@@ -180,5 +153,5 @@ interface LuFilterPillsLabel {
|
|
|
180
153
|
}
|
|
181
154
|
declare const luFilterPillsTranslations: LuTranslation<LuFilterPillsLabel>;
|
|
182
155
|
|
|
183
|
-
export {
|
|
184
|
-
export type {
|
|
156
|
+
export { FilterBarComponent, FilterPillAddonAfterDirective, FilterPillAddonBeforeDirective, FilterPillComponent, FilterViewSelectorComponent, LU_FILTER_BAR_INSTANCE, LU_FILTER_PILLS_TRANSLATIONS, filterViewDefaultOptionComparer, filterViewDefaultOptionKey, luFilterPillsTranslations };
|
|
157
|
+
export type { LuFilterPillsLabel, LuOptionComparer };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _lucca_front_ng_form from '@lucca-front/ng/form';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { OnInit,
|
|
3
|
+
import { OnInit, OnDestroy, ElementRef, DoCheck, TemplateRef, InjectionToken } from '@angular/core';
|
|
4
4
|
import * as _lucca_front_ng_form_field from '@lucca-front/ng/form-field';
|
|
5
5
|
import { RequiredValidator, NgControl, AbstractControl } from '@angular/forms';
|
|
6
6
|
import { FormField } from '@angular/forms/signals';
|
|
@@ -14,12 +14,12 @@ type FormFieldSize = (typeof FORM_FIELD_SIZE)[number];
|
|
|
14
14
|
/**
|
|
15
15
|
* Available FormFieldComponent types
|
|
16
16
|
*/
|
|
17
|
-
declare const FORM_FIELD_WIDTH: readonly [20, 30, 40, 50, 60];
|
|
17
|
+
declare const FORM_FIELD_WIDTH: readonly [10, 20, 30, 40, 50, 60];
|
|
18
18
|
type FormFieldWidth = (typeof FORM_FIELD_WIDTH)[number];
|
|
19
19
|
declare const FORM_FIELD_LAYOUT: readonly ["default", "checkable", "fieldset"];
|
|
20
20
|
type FormFieldLayout = (typeof FORM_FIELD_LAYOUT)[number];
|
|
21
21
|
|
|
22
|
-
declare class InputDirective implements OnInit {
|
|
22
|
+
declare class InputDirective implements OnInit, OnDestroy {
|
|
23
23
|
#private;
|
|
24
24
|
readonly host: ElementRef<HTMLElement>;
|
|
25
25
|
readonly formFieldRef: _lucca_front_ng_form_field.FormFieldComponent;
|
|
@@ -39,6 +39,7 @@ declare class InputDirective implements OnInit {
|
|
|
39
39
|
readonly describedBy: _angular_core.InputSignal<string>;
|
|
40
40
|
constructor();
|
|
41
41
|
ngOnInit(): void;
|
|
42
|
+
ngOnDestroy(): void;
|
|
42
43
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputDirective, never>;
|
|
43
44
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputDirective, "[luInput]", never, { "standalone": { "alias": "luInputStandalone"; "required": false; "isSignal": true; }; "labelledBy": { "alias": "luInputLabelledBy"; "required": false; "isSignal": true; }; "describedBy": { "alias": "luInputDescribedBy"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
44
45
|
}
|
|
@@ -74,7 +75,7 @@ declare class FormFieldComponent implements OnDestroy, DoCheck {
|
|
|
74
75
|
readonly AI: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
75
76
|
readonly iconAItooltip: _angular_core.InputSignal<string>;
|
|
76
77
|
readonly iconAIalt: _angular_core.InputSignal<string>;
|
|
77
|
-
readonly width: _angular_core.InputSignalWithTransform<20 | 30 | 40 | 50 | 60, 20 | 30 | 40 | 50 | 60 | "null" | "20" | "30" | "40" | "50" | "60">;
|
|
78
|
+
readonly width: _angular_core.InputSignalWithTransform<10 | 20 | 30 | 40 | 50 | 60, 10 | 20 | 30 | 40 | 50 | 60 | "null" | "10" | "20" | "30" | "40" | "50" | "60">;
|
|
78
79
|
invalidStatus: _angular_core.Signal<boolean>;
|
|
79
80
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true" | "null">;
|
|
80
81
|
readonly inlineMessage: _angular_core.InputSignal<PortalContent>;
|
|
@@ -102,6 +103,13 @@ declare class FormFieldComponent implements OnDestroy, DoCheck {
|
|
|
102
103
|
readonly presentationDisplayTpl: _angular_core.WritableSignal<TemplateRef<unknown>>;
|
|
103
104
|
readonly hasInlineMessage: _angular_core.Signal<boolean>;
|
|
104
105
|
addInput(input: InputDirective): void;
|
|
106
|
+
/**
|
|
107
|
+
* Unregisters an input that's being destroyed — e.g. one side of an `@if`/`@else` toggling which
|
|
108
|
+
* element carries `luInput` (a text field swapping for a button below a breakpoint, say). Without
|
|
109
|
+
* this, the detached element lingers in `#inputs` forever: `prepareInput` keeps reassigning it a
|
|
110
|
+
* fresh id on every future change, and each one gets added to `aria-labelledby` and never removed.
|
|
111
|
+
*/
|
|
112
|
+
removeInput(input: InputDirective): void;
|
|
105
113
|
get inputs(): InputDirective[];
|
|
106
114
|
readonly id: _angular_core.WritableSignal<string>;
|
|
107
115
|
readonly ready$: BehaviorSubject<boolean>;
|
|
@@ -3,11 +3,17 @@ import { InjectionToken } from '@angular/core';
|
|
|
3
3
|
import { LuDialogRef } from '@lucca-front/ng/dialog';
|
|
4
4
|
|
|
5
5
|
declare class FormComponent {
|
|
6
|
+
#private;
|
|
6
7
|
protected readonly dialogRef: LuDialogRef<any, any>;
|
|
7
8
|
readonly maxWidth: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
8
9
|
readonly presentation: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
10
|
+
/**
|
|
11
|
+
* When enabled, submitting an invalid form moves focus to the first invalid field. Disabled by default.
|
|
12
|
+
*/
|
|
13
|
+
readonly focusInvalidOnSubmit: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
14
|
+
protected onSubmit(): void;
|
|
9
15
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormComponent, never>;
|
|
10
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormComponent, "form[luForm]", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "presentation": { "alias": "presentation"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
16
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormComponent, "form[luForm]", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "presentation": { "alias": "presentation"; "required": false; "isSignal": true; }; "focusInvalidOnSubmit": { "alias": "focusInvalidOnSubmit"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
11
17
|
}
|
|
12
18
|
|
|
13
19
|
declare const LU_FORM_INSTANCE: InjectionToken<FormComponent>;
|
|
@@ -2,7 +2,7 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { OnDestroy, OnInit, Signal, WritableSignal, AfterViewInit, ElementRef, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as _angular_forms from '@angular/forms';
|
|
4
4
|
import { NgModel, FormControlDirective, FormControlName, NgControl, FormControl, ControlValueAccessor, ValidatorFn } from '@angular/forms';
|
|
5
|
-
import { FilterPillInputComponent, FilterPillLayout } from '@lucca-front/ng/filter-pills';
|
|
5
|
+
import { FilterPillInputComponent, FilterPillLayout } from '@lucca-front/ng/filter-pills/core';
|
|
6
6
|
import { FormFieldComponent } from '@lucca-front/ng/form-field';
|
|
7
7
|
import * as _lucca_front_ng_forms from '@lucca-front/ng/forms';
|
|
8
8
|
import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
@@ -285,15 +285,20 @@ declare class TextInputComponent {
|
|
|
285
285
|
*/
|
|
286
286
|
readonly searchIcon: _angular_core.InputSignal<LuccaIcon>;
|
|
287
287
|
readonly type: _angular_core.InputSignal<TextFieldType>;
|
|
288
|
+
/**
|
|
289
|
+
* Width of the input itself, using the same scale as the form field width
|
|
290
|
+
*/
|
|
291
|
+
readonly width: _angular_core.InputSignalWithTransform<10 | 20 | 30 | 40 | 50 | 60, 10 | 20 | 30 | 40 | 50 | 60 | "null" | "10" | "20" | "30" | "40" | "50" | "60">;
|
|
288
292
|
readonly blur: _angular_core.OutputEmitterRef<FocusEvent>;
|
|
289
293
|
protected readonly showPassword: _angular_core.WritableSignal<boolean>;
|
|
290
294
|
protected readonly typeRef: _angular_core.Signal<TextFieldType>;
|
|
291
295
|
protected readonly hasTogglePasswordVisibilityIcon: _angular_core.Signal<boolean>;
|
|
296
|
+
protected readonly widthClass: _angular_core.Signal<string>;
|
|
292
297
|
protected hasValue(): boolean;
|
|
293
298
|
clearValue(): void;
|
|
294
299
|
togglePasswordVisibility(): void;
|
|
295
300
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextInputComponent, never>;
|
|
296
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextInputComponent, "lu-text-input", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "hasClearer": { "alias": "hasClearer"; "required": false; "isSignal": true; }; "hasSearchIcon": { "alias": "hasSearchIcon"; "required": false; "isSignal": true; }; "valueAlignRight": { "alias": "valueAlignRight"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "minlength": { "alias": "minlength"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "searchIcon": { "alias": "searchIcon"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, { "blur": "blur"; }, never, never, true, [{ directive: typeof NoopValueAccessorDirective; inputs: {}; outputs: {}; }]>;
|
|
301
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextInputComponent, "lu-text-input", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "hasClearer": { "alias": "hasClearer"; "required": false; "isSignal": true; }; "hasSearchIcon": { "alias": "hasSearchIcon"; "required": false; "isSignal": true; }; "valueAlignRight": { "alias": "valueAlignRight"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "minlength": { "alias": "minlength"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "searchIcon": { "alias": "searchIcon"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "blur": "blur"; }, never, never, true, [{ directive: typeof NoopValueAccessorDirective; inputs: {}; outputs: {}; }]>;
|
|
297
302
|
}
|
|
298
303
|
|
|
299
304
|
declare class TextareaInputComponent implements OnInit {
|
|
@@ -38,7 +38,7 @@ declare class HighlightDataComponent {
|
|
|
38
38
|
*/
|
|
39
39
|
readonly theme: _angular_core.InputSignal<"white" | "light" | "dark">;
|
|
40
40
|
/**
|
|
41
|
-
* Apply
|
|
41
|
+
* Apply a palette to the component and its bubble colors
|
|
42
42
|
* This specific palette must be set up on config.scss
|
|
43
43
|
*/
|
|
44
44
|
readonly palette: _angular_core.InputSignal<string>;
|
|
@@ -61,7 +61,6 @@ declare class HighlightDataComponent {
|
|
|
61
61
|
readonly nested: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
62
62
|
readonly illustrationSrc: _angular_core.Signal<string>;
|
|
63
63
|
readonly bubbleSrc: _angular_core.Signal<string>;
|
|
64
|
-
readonly bubbleTheme: _angular_core.Signal<"light" | "dark">;
|
|
65
64
|
constructor();
|
|
66
65
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HighlightDataComponent, never>;
|
|
67
66
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HighlightDataComponent, "lu-highlight-data", never, { "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "subText": { "alias": "subText"; "required": false; "isSignal": true; }; "bubble": { "alias": "bubble"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "palette": { "alias": "palette"; "required": false; "isSignal": true; }; "illustration": { "alias": "illustration"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "valueFirst": { "alias": "valueFirst"; "required": false; "isSignal": true; }; "nested": { "alias": "nested"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
@@ -16,6 +16,19 @@ declare class ImpersonationComponent {
|
|
|
16
16
|
readonly popoverRef: _angular_core.Signal<PopoverDirective>;
|
|
17
17
|
readonly selectedUser: _angular_core.ModelSignal<ILuUser>;
|
|
18
18
|
readonly enableFormerEmployees: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
19
|
+
/**
|
|
20
|
+
* Restricts the users to the ones reachable through these operations, scoped by `appInstanceId`.
|
|
21
|
+
*/
|
|
22
|
+
readonly operationIds: _angular_core.InputSignal<readonly number[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Restricts the users to the ones reachable through these unique operations.
|
|
25
|
+
* Takes precedence over `operationIds` / `appInstanceId`, which the API then ignores.
|
|
26
|
+
*/
|
|
27
|
+
readonly uniqueOperationIds: _angular_core.InputSignal<readonly number[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Application instance the `operationIds` are scoped to. Unused with `uniqueOperationIds`.
|
|
30
|
+
*/
|
|
31
|
+
readonly appInstanceId: _angular_core.InputSignalWithTransform<number, number | `${number}` | "null">;
|
|
19
32
|
readonly isNotMe: _angular_core.Signal<boolean>;
|
|
20
33
|
readonly clear: _angular_core.OutputEmitterRef<void>;
|
|
21
34
|
readonly popoverPositions: ConnectionPositionPair[];
|
|
@@ -23,7 +36,7 @@ declare class ImpersonationComponent {
|
|
|
23
36
|
closePopover: () => void;
|
|
24
37
|
updatePosition: () => void;
|
|
25
38
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ImpersonationComponent, never>;
|
|
26
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ImpersonationComponent, "lu-impersonation", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "selectedUser": { "alias": "selectedUser"; "required": false; "isSignal": true; }; "enableFormerEmployees": { "alias": "enableFormerEmployees"; "required": false; "isSignal": true; }; }, { "selectedUser": "selectedUserChange"; "clear": "clear"; }, never, never, true, never>;
|
|
39
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ImpersonationComponent, "lu-impersonation", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "selectedUser": { "alias": "selectedUser"; "required": false; "isSignal": true; }; "enableFormerEmployees": { "alias": "enableFormerEmployees"; "required": false; "isSignal": true; }; "operationIds": { "alias": "operationIds"; "required": false; "isSignal": true; }; "uniqueOperationIds": { "alias": "uniqueOperationIds"; "required": false; "isSignal": true; }; "appInstanceId": { "alias": "appInstanceId"; "required": false; "isSignal": true; }; }, { "selectedUser": "selectedUserChange"; "clear": "clear"; }, never, never, true, never>;
|
|
27
40
|
}
|
|
28
41
|
|
|
29
42
|
declare const LU_IMPERSONATION_TRANSLATIONS: InjectionToken<LuTranslation<LuImpersonationTranslations>>;
|
|
@@ -46,11 +46,15 @@ declare class LinkComponent {
|
|
|
46
46
|
* External icon only visible on hover/focus
|
|
47
47
|
*/
|
|
48
48
|
readonly hiddenIcon: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
49
|
+
/**
|
|
50
|
+
* Renders the link with the default text color instead of the link color
|
|
51
|
+
*/
|
|
52
|
+
readonly neutral: _angular_core.InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
49
53
|
hrefBackup: string;
|
|
50
54
|
constructor();
|
|
51
55
|
redirect(): void;
|
|
52
56
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LinkComponent, never>;
|
|
53
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LinkComponent, "a[luLink], button[luLink]", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "luHref": { "alias": "href"; "required": false; "isSignal": true; }; "routerLinkCommands": { "alias": "luLink"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "decorationHover": { "alias": "decorationHover"; "required": false; "isSignal": true; }; "external": { "alias": "external"; "required": false; "isSignal": true; }; "hiddenIcon": { "alias": "hiddenIcon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof LuRouterLink; inputs: { "preserveFragment": "preserveFragment"; "skipLocationChange": "skipLocationChange"; "replaceUrl": "replaceUrl"; "queryParams": "queryParams"; "fragment": "fragment"; "queryParamsHandling": "queryParamsHandling"; "state": "state"; "info": "info"; "relativeTo": "relativeTo"; }; outputs: {}; }]>;
|
|
57
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LinkComponent, "a[luLink], button[luLink]", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "luHref": { "alias": "href"; "required": false; "isSignal": true; }; "routerLinkCommands": { "alias": "luLink"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "decorationHover": { "alias": "decorationHover"; "required": false; "isSignal": true; }; "external": { "alias": "external"; "required": false; "isSignal": true; }; "hiddenIcon": { "alias": "hiddenIcon"; "required": false; "isSignal": true; }; "neutral": { "alias": "neutral"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof LuRouterLink; inputs: { "preserveFragment": "preserveFragment"; "skipLocationChange": "skipLocationChange"; "replaceUrl": "replaceUrl"; "queryParams": "queryParams"; "fragment": "fragment"; "queryParamsHandling": "queryParamsHandling"; "state": "state"; "info": "info"; "relativeTo": "relativeTo"; }; outputs: {}; }]>;
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
declare const LU_LINK_INSTANCE: InjectionToken<boolean>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
declare class MarkdownComponent {
|
|
4
|
+
readonly content: _angular_core.InputSignal<string>;
|
|
5
|
+
readonly headingLevel: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
6
|
+
protected html: _angular_core.Signal<string>;
|
|
7
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MarkdownComponent, never>;
|
|
8
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MarkdownComponent, "lu-markdown", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface RenderMarkdownOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Heading level used for the top-level markdown heading (`# Heading`), the following ones being nested from it.
|
|
14
|
+
* Set it to the level that keeps the document outline valid where the markdown is displayed: with `2`,
|
|
15
|
+
* `# Heading` renders a `<h2 class="pr-u-h1">`, keeping the heading semantics clean while preserving its style.
|
|
16
|
+
*
|
|
17
|
+
* @default 1
|
|
18
|
+
*/
|
|
19
|
+
headingLevel?: number;
|
|
20
|
+
}
|
|
21
|
+
declare function renderMarkdown(content: string, { headingLevel }?: RenderMarkdownOptions): string;
|
|
22
|
+
|
|
23
|
+
export { MarkdownComponent, renderMarkdown };
|
|
24
|
+
export type { RenderMarkdownOptions };
|
|
@@ -8,6 +8,7 @@ import { LuPluralForms, LuTranslation } from '@lucca-front/ng/core';
|
|
|
8
8
|
import * as rxjs from 'rxjs';
|
|
9
9
|
import { Subject, BehaviorSubject } from 'rxjs';
|
|
10
10
|
import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions, OverlayConfig, ConnectedPosition } from '@angular/cdk/overlay';
|
|
11
|
+
import { LuDialogService } from '@lucca-front/ng/dialog';
|
|
11
12
|
import * as i1 from '@lucca-front/ng/form-field';
|
|
12
13
|
import { LuOptionComparer } from '@lucca-front/ng/option';
|
|
13
14
|
|
|
@@ -36,6 +37,7 @@ declare class LuMultiSelectPanelRefFactory {
|
|
|
36
37
|
protected positionBuilder: OverlayPositionBuilder;
|
|
37
38
|
protected scrollStrategies: ScrollStrategyOptions;
|
|
38
39
|
protected parentInjector: Injector;
|
|
40
|
+
protected dialogService: LuDialogService;
|
|
39
41
|
private selectLabelId;
|
|
40
42
|
private selectId;
|
|
41
43
|
buildPanelRef<T>(selectInput: LuMultiSelectInputComponent<T>, defaultOverlayConfigOverride?: OverlayConfig): LuMultiSelectPanelRef<T>;
|
|
@@ -216,6 +218,13 @@ declare class LuMultiSelectDisplayerInputDirective<T> implements OnInit {
|
|
|
216
218
|
readonly context: ILuOptionContext<T[]>;
|
|
217
219
|
readonly elementRef: ElementRef<HTMLInputElement>;
|
|
218
220
|
readonly destroyRef: DestroyRef;
|
|
221
|
+
/**
|
|
222
|
+
* Below the `S` breakpoint the panel opens as a modal sheet carrying its own search input, so this
|
|
223
|
+
* element is only ever a trigger and the displayers render it as a `<button>`. Typing into it is
|
|
224
|
+
* impossible by then, and an `<input>` would make iOS raise the software keyboard on a field the
|
|
225
|
+
* sheet is about to cover.
|
|
226
|
+
*/
|
|
227
|
+
get isButton(): boolean;
|
|
219
228
|
get panelOpen(): boolean;
|
|
220
229
|
get activeDescendant(): string;
|
|
221
230
|
get controls(): string;
|
|
@@ -226,7 +235,7 @@ declare class LuMultiSelectDisplayerInputDirective<T> implements OnInit {
|
|
|
226
235
|
constructor();
|
|
227
236
|
ngOnInit(): void;
|
|
228
237
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuMultiSelectDisplayerInputDirective<any>, never>;
|
|
229
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuMultiSelectDisplayerInputDirective<any>, "[luMultiSelectDisplayerInput]",
|
|
238
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuMultiSelectDisplayerInputDirective<any>, "[luMultiSelectDisplayerInput]", ["luMultiSelectDisplayerInput"], {}, {}, never, never, true, [{ directive: typeof i1.InputDirective; inputs: { "luInputLabelledBy": "luInputLabelledBy"; }; outputs: {}; }]>;
|
|
230
239
|
}
|
|
231
240
|
|
|
232
241
|
declare class LuMultiDisplayerDirective<T> {
|
|
@@ -38,6 +38,12 @@ declare class PopoverDirective implements OnDestroy {
|
|
|
38
38
|
* for placement purpose
|
|
39
39
|
*/
|
|
40
40
|
readonly luPopoverAnchor: _angular_core.InputSignal<FlexibleConnectedPositionStrategyOrigin>;
|
|
41
|
+
/**
|
|
42
|
+
* Renders a transparent backdrop catching the outside click instead of letting it through to the page.
|
|
43
|
+
* Reserved for menu-like popovers (a filter dropdown, where the click that closes the panel shouldn't
|
|
44
|
+
* also hit what's underneath): a description popover must stay non-blocking, see #5012.
|
|
45
|
+
*/
|
|
46
|
+
readonly luPopoverBackdrop: InputSignalWithTransform<boolean, boolean | "" | "false" | "true">;
|
|
41
47
|
/**
|
|
42
48
|
* Extra element(s) to treat as "inside" the popover for outside-pointer detection. Pointer events
|
|
43
49
|
* originating from them won't close the popover. Useful when an external control opens the popover
|
|
@@ -76,7 +82,7 @@ declare class PopoverDirective implements OnDestroy {
|
|
|
76
82
|
focusOutBefore(): void;
|
|
77
83
|
updatePosition(): void;
|
|
78
84
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverDirective, never>;
|
|
79
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverDirective, "[luPopover2]", ["luPopover2"], { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "luPopover2": { "alias": "luPopover2"; "required": false; "isSignal": true; }; "luPopoverPosition": { "alias": "luPopoverPosition"; "required": false; "isSignal": true; }; "luPopoverMaxBlockSize": { "alias": "luPopoverMaxBlockSize"; "required": false; "isSignal": true; }; "luPopoverMaxInlineSize": { "alias": "luPopoverMaxInlineSize"; "required": false; "isSignal": true; }; "overlayScrollStrategy": { "alias": "overlayScrollStrategy"; "required": false; "isSignal": true; }; "luPopoverDisabledInput": { "alias": "luPopoverDisabled"; "required": false; "isSignal": true; }; "luPopoverTrigger": { "alias": "luPopoverTrigger"; "required": false; "isSignal": true; }; "customPositionsInput": { "alias": "customPositions"; "required": false; "isSignal": true; }; "luPopoverNoCloseButtonInput": { "alias": "luPopoverNoCloseButton"; "required": false; "isSignal": true; }; "luPopoverAnchor": { "alias": "luPopoverAnchor"; "required": false; "isSignal": true; }; "luPopoverIgnoredOutsidePointerTargets": { "alias": "luPopoverIgnoredOutsidePointerTargets"; "required": false; "isSignal": true; }; "luPopoverOpenDelay": { "alias": "luPopoverOpenDelay"; "required": false; "isSignal": true; }; "luPopoverCloseDelay": { "alias": "luPopoverCloseDelay"; "required": false; "isSignal": true; }; }, { "luPopoverTrigger": "luPopoverTriggerChange"; "luPopoverClosed": "luPopoverClosed"; "luPopoverOpened": "luPopoverOpened"; }, never, never, true, never>;
|
|
85
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverDirective, "[luPopover2]", ["luPopover2"], { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "luPopover2": { "alias": "luPopover2"; "required": false; "isSignal": true; }; "luPopoverPosition": { "alias": "luPopoverPosition"; "required": false; "isSignal": true; }; "luPopoverMaxBlockSize": { "alias": "luPopoverMaxBlockSize"; "required": false; "isSignal": true; }; "luPopoverMaxInlineSize": { "alias": "luPopoverMaxInlineSize"; "required": false; "isSignal": true; }; "overlayScrollStrategy": { "alias": "overlayScrollStrategy"; "required": false; "isSignal": true; }; "luPopoverDisabledInput": { "alias": "luPopoverDisabled"; "required": false; "isSignal": true; }; "luPopoverTrigger": { "alias": "luPopoverTrigger"; "required": false; "isSignal": true; }; "customPositionsInput": { "alias": "customPositions"; "required": false; "isSignal": true; }; "luPopoverNoCloseButtonInput": { "alias": "luPopoverNoCloseButton"; "required": false; "isSignal": true; }; "luPopoverAnchor": { "alias": "luPopoverAnchor"; "required": false; "isSignal": true; }; "luPopoverBackdrop": { "alias": "luPopoverBackdrop"; "required": false; "isSignal": true; }; "luPopoverIgnoredOutsidePointerTargets": { "alias": "luPopoverIgnoredOutsidePointerTargets"; "required": false; "isSignal": true; }; "luPopoverOpenDelay": { "alias": "luPopoverOpenDelay"; "required": false; "isSignal": true; }; "luPopoverCloseDelay": { "alias": "luPopoverCloseDelay"; "required": false; "isSignal": true; }; }, { "luPopoverTrigger": "luPopoverTriggerChange"; "luPopoverClosed": "luPopoverClosed"; "luPopoverOpened": "luPopoverOpened"; }, never, never, true, never>;
|
|
80
86
|
}
|
|
81
87
|
|
|
82
88
|
declare class PopoverContentComponent implements AfterViewInit, OnDestroy {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
interface PriorityLevelsTranslate {
|
|
4
|
+
low: string;
|
|
5
|
+
medium: string;
|
|
6
|
+
high: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare class PriorityLevelsComponent {
|
|
10
|
+
/**
|
|
11
|
+
* Which priority level should be displayed (1 = low, 2 = medium, 3 = high)
|
|
12
|
+
*/
|
|
13
|
+
readonly level: _angular_core.InputSignalWithTransform<1 | 2 | 3, 1 | 2 | 3 | "1" | "2" | "3">;
|
|
14
|
+
/**
|
|
15
|
+
* Which size should the component be? Defaults to M
|
|
16
|
+
*/
|
|
17
|
+
readonly size: _angular_core.InputSignal<"S" | "M" | "L">;
|
|
18
|
+
/**
|
|
19
|
+
* Overrides for the default translations
|
|
20
|
+
*/
|
|
21
|
+
readonly intl: _angular_core.InputSignalWithTransform<PriorityLevelsTranslate, Partial<PriorityLevelsTranslate>>;
|
|
22
|
+
/**
|
|
23
|
+
* Visually hides the label while keeping it in the DOM for screen readers, and shows it in a tooltip on the icon instead
|
|
24
|
+
*/
|
|
25
|
+
readonly hiddenLabel: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
26
|
+
readonly label: _angular_core.Signal<string>;
|
|
27
|
+
readonly iconSize: _angular_core.Signal<"S" | "M" | "L" | "XXS" | "XS" | "XL" | "XXL">;
|
|
28
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PriorityLevelsComponent, never>;
|
|
29
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PriorityLevelsComponent, "lu-priority-levels", never, { "level": { "alias": "level"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "hiddenLabel": { "alias": "hiddenLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Available PriorityLevelsComponent levels (1 = low, 2 = medium, 3 = high)
|
|
34
|
+
*/
|
|
35
|
+
declare const PRIORITY_LEVELS: readonly [1, 2, 3];
|
|
36
|
+
type PriorityLevel = (typeof PRIORITY_LEVELS)[number];
|
|
37
|
+
/**
|
|
38
|
+
* Available PriorityLevelsComponent sizes
|
|
39
|
+
*/
|
|
40
|
+
declare const PRIORITY_LEVELS_SIZES: readonly ["S", "M", "L"];
|
|
41
|
+
type PriorityLevelsSize = (typeof PRIORITY_LEVELS_SIZES)[number];
|
|
42
|
+
|
|
43
|
+
export { PRIORITY_LEVELS, PRIORITY_LEVELS_SIZES, PriorityLevelsComponent };
|
|
44
|
+
export type { PriorityLevel, PriorityLevelsSize };
|
|
@@ -5,6 +5,7 @@ import * as _lucca_front_ng_core_select from '@lucca-front/ng/core-select';
|
|
|
5
5
|
import { LuSelectPanelRef, ALuSelectInputComponent, CoreSelectPanelInstance, ɵCoreSelectPanelElement as _CoreSelectPanelElement, CoreSelectKeyManager } from '@lucca-front/ng/core-select';
|
|
6
6
|
import { ControlValueAccessor } from '@angular/forms';
|
|
7
7
|
import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions, OverlayConfig } from '@angular/cdk/overlay';
|
|
8
|
+
import { LuDialogService } from '@lucca-front/ng/dialog';
|
|
8
9
|
import { LuTranslation } from '@lucca-front/ng/core';
|
|
9
10
|
|
|
10
11
|
declare class LuSimpleSelectPanelRefFactory {
|
|
@@ -13,6 +14,7 @@ declare class LuSimpleSelectPanelRefFactory {
|
|
|
13
14
|
protected positionBuilder: OverlayPositionBuilder;
|
|
14
15
|
protected scrollStrategies: ScrollStrategyOptions;
|
|
15
16
|
protected parentInjector: Injector;
|
|
17
|
+
protected dialogService: LuDialogService;
|
|
16
18
|
private selectLabelId;
|
|
17
19
|
private selectId;
|
|
18
20
|
buildPanelRef<T>(selectInput: LuSimpleSelectInputComponent<T>, overlayConfigOverride?: OverlayConfig): LuSelectPanelRef<T, T>;
|
|
@@ -63,6 +65,8 @@ declare class LuSelectPanelComponent<T> implements AfterViewInit, CoreSelectPane
|
|
|
63
65
|
groupTemplateLocation: _angular_core.Signal<"group-header" | "option" | "none">;
|
|
64
66
|
readonly listboxState: _angular_core.Signal<"loading" | "empty">;
|
|
65
67
|
readonly listboxStatusMsg: _angular_core.Signal<string>;
|
|
68
|
+
private readonly sheetViewport;
|
|
69
|
+
constructor();
|
|
66
70
|
onScroll(evt: Event): void;
|
|
67
71
|
ngAfterViewInit(): void;
|
|
68
72
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuSelectPanelComponent<any>, never>;
|