@lucca-front/ng 21.0.0 → 21.0.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.
Files changed (49) hide show
  1. package/fesm2022/lucca-front-ng-box.mjs +4 -2
  2. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-core-select-user.mjs +4 -1
  4. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-filter-pills.mjs +2 -2
  6. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +23 -2
  8. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +57 -10
  10. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +1 -22
  12. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  14. package/fesm2022/lucca-front-ng-multi-select.mjs +28 -18
  15. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  16. package/fesm2022/lucca-front-ng-simple-select.mjs +2 -2
  17. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  18. package/package.json +7 -23
  19. package/schematics/alignment-utilities/index.js +21 -0
  20. package/schematics/alignment-utilities/migration.spec.js +50 -0
  21. package/schematics/alignment-utilities/schema.json +23 -0
  22. package/schematics/collection.json +10 -0
  23. package/schematics/component-path/index.js +22 -0
  24. package/schematics/component-path/migration.spec.js +50 -0
  25. package/schematics/component-path/schema.json +23 -0
  26. package/schematics/lib/component-mapper.js +54 -0
  27. package/schematics/lib/css-mapper.js +9 -32
  28. package/schematics/lib/html-ast.js +1 -1
  29. package/schematics/lib/schematic.utils.js +29 -0
  30. package/schematics/palettes/index.js +4 -2
  31. package/src/components/_picker.scss +4 -0
  32. package/types/lucca-front-ng-box.d.ts +2 -1
  33. package/types/lucca-front-ng-forms-rich-text-input-formatters-markdown.d.ts +11 -2
  34. package/types/lucca-front-ng-forms-rich-text-input-formatters-plain-text.d.ts +18 -6
  35. package/types/lucca-front-ng-forms-rich-text-input.d.ts +36 -12
  36. package/types/lucca-front-ng-loading.d.ts +4 -1
  37. package/types/lucca-front-ng-multi-select.d.ts +30 -29
  38. package/fesm2022/lucca-front-ng-scrollBox.mjs +0 -6
  39. package/fesm2022/lucca-front-ng-scrollBox.mjs.map +0 -1
  40. package/fesm2022/lucca-front-ng-segmentedControl.mjs +0 -6
  41. package/fesm2022/lucca-front-ng-segmentedControl.mjs.map +0 -1
  42. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs +0 -6
  43. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs.map +0 -1
  44. package/fesm2022/lucca-front-ng-statusBadge.mjs +0 -6
  45. package/fesm2022/lucca-front-ng-statusBadge.mjs.map +0 -1
  46. package/types/lucca-front-ng-scrollBox.d.ts +0 -1
  47. package/types/lucca-front-ng-segmentedControl.d.ts +0 -1
  48. package/types/lucca-front-ng-segmentedControlTabs.d.ts +0 -1
  49. package/types/lucca-front-ng-statusBadge.d.ts +0 -1
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentMapper = void 0;
4
+ const typescript_1 = require("typescript");
5
+ const angular_template_1 = require("./angular-template");
6
+ const file_update_1 = require("./file-update");
7
+ const schematic_utils_1 = require("./schematic.utils");
8
+ const schematics_1 = require("./schematics");
9
+ class ComponentMapper {
10
+ constructor(tree, rawMappings, mappingProps) {
11
+ this.tree = tree;
12
+ this.rawMappings = rawMappings;
13
+ this.mappingProps = mappingProps;
14
+ this.mappings = {
15
+ paths: (0, schematic_utils_1.expand)(this.rawMappings.paths, this.mappingProps),
16
+ components: (0, schematic_utils_1.expand)(this.rawMappings.components, this.mappingProps),
17
+ selectors: (0, schematic_utils_1.expand)(this.rawMappings.selectors, this.mappingProps)
18
+ };
19
+ this.pathsToUpdate = new Set(Object.keys(this.mappings.paths));
20
+ }
21
+ run() {
22
+ this.tree.visit((path, entry) => {
23
+ if (path.includes('node_modules') || !entry) {
24
+ return;
25
+ }
26
+ if (path.endsWith('.ts')) {
27
+ (0, schematics_1.migrateFile)(path, entry, this.tree, (content) => this.migrateTsFile(path, content));
28
+ }
29
+ else {
30
+ return;
31
+ }
32
+ });
33
+ }
34
+ migrateTsFile(fileName, content) {
35
+ const sourcefile = (0, typescript_1.createSourceFile)(fileName, content, typescript_1.ScriptTarget.ESNext);
36
+ const updates = [];
37
+ (0, typescript_1.forEachChild)(sourcefile, (0, angular_template_1.createVisitor)(typescript_1.isStringLiteral, (node) => {
38
+ const newText = this.updatePathText(node.text);
39
+ if (newText !== null && newText !== node.text) {
40
+ const position = node.pos + node.getLeadingTriviaWidth(sourcefile) /* Spaces before the single/double quote */ + 1; /* Single or double quote before the string content */
41
+ updates.push({
42
+ position,
43
+ oldContent: node.text,
44
+ newContent: newText
45
+ });
46
+ }
47
+ }));
48
+ return (0, file_update_1.applyUpdates)(content, updates);
49
+ }
50
+ updatePathText(text) {
51
+ return this.pathsToUpdate.has(text) ? this.mappings.paths[text] || text : null;
52
+ }
53
+ }
54
+ exports.ComponentMapper = ComponentMapper;
@@ -1,23 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CssMapper = void 0;
4
- const schematics_1 = require("./schematics");
5
- const scss_ast_1 = require("./scss-ast");
6
- const html_ast_1 = require("./html-ast");
7
- const file_update_1 = require("./file-update");
8
4
  const typescript_1 = require("typescript");
9
- const typescript_ast_1 = require("./typescript-ast");
10
5
  const angular_template_1 = require("./angular-template");
6
+ const file_update_1 = require("./file-update");
7
+ const html_ast_1 = require("./html-ast");
11
8
  const lf_schematic_context_1 = require("./lf-schematic-context");
9
+ const schematic_utils_1 = require("./schematic.utils");
10
+ const schematics_1 = require("./schematics");
11
+ const scss_ast_1 = require("./scss-ast");
12
+ const typescript_ast_1 = require("./typescript-ast");
12
13
  class CssMapper {
13
14
  constructor(tree, rawMappings, mappingProps) {
14
15
  this.tree = tree;
15
16
  this.rawMappings = rawMappings;
16
17
  this.mappingProps = mappingProps;
17
18
  this.mappings = {
18
- classes: this.expand(this.rawMappings.classes),
19
- variables: this.expand(this.rawMappings.variables),
20
- mixins: this.expand(this.rawMappings.mixins)
19
+ classes: (0, schematic_utils_1.expand)(this.rawMappings.classes, this.mappingProps),
20
+ variables: (0, schematic_utils_1.expand)(this.rawMappings.variables, this.mappingProps),
21
+ mixins: (0, schematic_utils_1.expand)(this.rawMappings.mixins, this.mappingProps)
21
22
  };
22
23
  this.classesToUpdate = new Set(Object.keys(this.mappings.classes));
23
24
  this.varsToUpdate = new Set(Object.keys(this.mappings.variables));
@@ -118,29 +119,5 @@ class CssMapper {
118
119
  }
119
120
  return text;
120
121
  }
121
- camelize(str) {
122
- return str[0].toLowerCase() + str.slice(1);
123
- }
124
- pascalize(str) {
125
- return str[0].toUpperCase() + str.slice(1);
126
- }
127
- expand(rawMapping) {
128
- const props = this.mappingProps || {};
129
- const replaceValue = (oldValue, map, newValue) => {
130
- return oldValue.replace(`{${map}}`, newValue).replace(`{${this.pascalize(map)}}`, this.pascalize(newValue));
131
- };
132
- return Object.fromEntries(Object.entries(rawMapping).flatMap(([oldTemplate, newTemplate]) => {
133
- const placeholders = [...oldTemplate.matchAll(/\{(\w*)}/g)].map(([, template]) => template);
134
- let values = [[oldTemplate, newTemplate]];
135
- for (const placeholder of placeholders) {
136
- const map = this.camelize(placeholder);
137
- if (!map || !(map in props)) {
138
- throw new Error(`No mapping for ${map} found`);
139
- }
140
- values = values.flatMap(([oldVal, newVal]) => Object.entries(props[map]).map(([key, value]) => [replaceValue(oldVal, map, key), replaceValue(newVal, map, value)]));
141
- }
142
- return values;
143
- }));
144
- }
145
122
  }
146
123
  exports.CssMapper = CssMapper;
@@ -6,8 +6,8 @@ exports.extractAllCssClassNames = extractAllCssClassNames;
6
6
  exports.extractAllHtmlElementNames = extractAllHtmlElementNames;
7
7
  const typescript_1 = require("typescript");
8
8
  const file_update_js_1 = require("./file-update.js");
9
- const typescript_ast_js_1 = require("./typescript-ast.js");
10
9
  const lf_schematic_context_1 = require("./lf-schematic-context");
10
+ const typescript_ast_js_1 = require("./typescript-ast.js");
11
11
  class HtmlAstVisitor {
12
12
  constructor(nodes) {
13
13
  this.nodes = Array.isArray(nodes) ? nodes : [nodes];
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.camelize = camelize;
4
+ exports.pascalize = pascalize;
5
+ exports.expand = expand;
6
+ function camelize(str) {
7
+ return str[0].toLowerCase() + str.slice(1);
8
+ }
9
+ function pascalize(str) {
10
+ return str[0].toUpperCase() + str.slice(1);
11
+ }
12
+ function expand(rawMapping, mappingProps) {
13
+ const props = mappingProps || {};
14
+ const replaceValue = (oldValue, map, newValue) => {
15
+ return oldValue.replace(`{${map}}`, newValue).replace(`{${pascalize(map)}}`, pascalize(newValue));
16
+ };
17
+ return Object.fromEntries(Object.entries(rawMapping).flatMap(([oldTemplate, newTemplate]) => {
18
+ const placeholders = [...oldTemplate.matchAll(/\{(\w*)}/g)].map(([, template]) => template);
19
+ let values = [[oldTemplate, newTemplate]];
20
+ for (const placeholder of placeholders) {
21
+ const map = camelize(placeholder);
22
+ if (!map || !(map in props)) {
23
+ throw new Error(`No mapping for ${map} found`);
24
+ }
25
+ values = values.flatMap(([oldVal, newVal]) => Object.entries(props[map]).map(([key, value]) => [replaceValue(oldVal, map, key), replaceValue(newVal, map, value)]));
26
+ }
27
+ return values;
28
+ }));
29
+ }
@@ -13,14 +13,16 @@ exports.default = (options) => {
13
13
  'palette-grey': 'palette-neutral',
14
14
  'palette-primary': 'palette-product',
15
15
  'palette-secondary': 'palette-product',
16
- 'palette-lucca': 'palette-brand'
16
+ 'palette-lucca': 'palette-brand',
17
17
  },
18
18
  variables: {
19
19
  '--palettes-grey-{val}': `--palettes-neutral-{val}`,
20
20
  '--palettes-primary-{val}': `--palettes-product-{val}`,
21
21
  '--palettes-secondary-{val}': `--palettes-product-{val}`,
22
22
  '--palettes-lucca-{val}': `--palettes-brand-{val}`,
23
- '--colors-grey-{val}': `--colors-neutral-{val}`
23
+ '--colors-grey-{val}': `--palettes-neutral-{val}`,
24
+ '--colors-white-color': '--palettes-neutral-0',
25
+ '--colors-black-color': '--palettes-neutral-900'
24
26
  },
25
27
  mixins: {}
26
28
  }, {
@@ -35,6 +35,10 @@
35
35
 
36
36
  .lu-picker-content-option-group {
37
37
  margin-block-end: var(--pr-t-spacings-50);
38
+
39
+ .optionItem-value {
40
+ --components-options-item-padding-horizontal: var(--pr-t-spacings-200) var(--pr-t-spacings-100);
41
+ }
38
42
  }
39
43
 
40
44
  .lu-picker-content-option-group-title {
@@ -4,8 +4,9 @@ declare class BoxComponent {
4
4
  readonly toggle: _angular_core.InputSignalWithTransform<boolean, unknown>;
5
5
  readonly neutral: _angular_core.InputSignalWithTransform<boolean, unknown>;
6
6
  readonly killable: _angular_core.InputSignalWithTransform<boolean, unknown>;
7
+ readonly withArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
7
8
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BoxComponent, never>;
8
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BoxComponent, "lu-box", never, { "toggle": { "alias": "toggle"; "required": false; "isSignal": true; }; "neutral": { "alias": "neutral"; "required": false; "isSignal": true; }; "killable": { "alias": "killable"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BoxComponent, "lu-box", never, { "toggle": { "alias": "toggle"; "required": false; "isSignal": true; }; "neutral": { "alias": "neutral"; "required": false; "isSignal": true; }; "killable": { "alias": "killable"; "required": false; "isSignal": true; }; "withArrow": { "alias": "withArrow"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
10
  }
10
11
 
11
12
  export { BoxComponent };
@@ -1,5 +1,5 @@
1
1
  import { Provider } from '@angular/core';
2
- import { Transformer } from '@lexical/markdown';
2
+ import { Transformer, TextMatchTransformer } from '@lexical/markdown';
3
3
  import { RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';
4
4
  import { LexicalEditor } from 'lexical';
5
5
 
@@ -13,4 +13,13 @@ declare class MarkdownFormatter extends RichTextFormatter {
13
13
  }
14
14
  declare function provideLuRichTextMarkdownFormatter(transformers?: Transformer[]): Provider;
15
15
 
16
- export { DEFAULT_MARKDOWN_TRANSFORMERS, MarkdownFormatter, provideLuRichTextMarkdownFormatter };
16
+ /**
17
+ * Transformer for tag nodes
18
+ * It will match the following pattern `{{Tag}}` and create a TagNode (using `replace` function).
19
+ * It will export the tag node to markdown (as `{{Tag}}`) using the `export` function.
20
+ *
21
+ * @docs https://github.com/facebook/lexical/tree/main/packages/lexical-markdown#transformers
22
+ */
23
+ declare const TAGS: TextMatchTransformer;
24
+
25
+ export { DEFAULT_MARKDOWN_TRANSFORMERS, MarkdownFormatter, TAGS, provideLuRichTextMarkdownFormatter };
@@ -1,15 +1,27 @@
1
1
  import { Provider } from '@angular/core';
2
- import { Transformer } from '@lexical/markdown';
3
2
  import { RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';
4
- import { LexicalEditor } from 'lexical';
3
+ import { TextNode, LexicalEditor } from 'lexical';
4
+
5
+ interface PlainTextTransformer {
6
+ regExp: RegExp;
7
+ replace: (texNode: TextNode, match: RegExpMatchArray) => void;
8
+ }
9
+
10
+ /**
11
+ * Transformer for tag nodes
12
+ * It will match the following pattern `{{Tag}}` and create a TagNode (using `replace` function).
13
+ *
14
+ */
15
+ declare const PLAINTEXT_TAGS: PlainTextTransformer;
5
16
 
6
17
  declare class PlainTextFormatter extends RichTextFormatter {
7
18
  #private;
8
- constructor(transformers?: Transformer[]);
19
+ constructor(transformers?: PlainTextTransformer[]);
9
20
  registerTextPlugin(editor: LexicalEditor): () => void;
10
- parse(editor: LexicalEditor, markdown?: string | null): void;
21
+ parse(editor: LexicalEditor, text?: string | null): void;
11
22
  format(editor: LexicalEditor): string;
12
23
  }
13
- declare function provideLuRichTextPlainTextFormatter(transformers?: Transformer[]): Provider;
24
+ declare function provideLuRichTextPlainTextFormatter(transformers?: PlainTextTransformer[]): Provider;
14
25
 
15
- export { PlainTextFormatter, provideLuRichTextPlainTextFormatter };
26
+ export { PLAINTEXT_TAGS, PlainTextFormatter, provideLuRichTextPlainTextFormatter };
27
+ export type { PlainTextTransformer };
@@ -1,11 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Signal, WritableSignal, OnInit, OnDestroy, ElementRef, ViewContainerRef, TemplateRef, AfterViewInit } from '@angular/core';
3
3
  import * as lexical from 'lexical';
4
- import { LexicalEditor, Klass, LexicalNode, LexicalNodeReplacement, CommandPayloadType, DOMExportOutput, TextFormatType } from 'lexical';
4
+ import { LexicalEditor, Klass, LexicalNode, LexicalNodeReplacement, CommandPayloadType, DOMExportOutput, Spread, SerializedLexicalNode, DecoratorNode, NodeKey, EditorConfig, DOMConversionMap, LexicalUpdateJSON, TextFormatType } from 'lexical';
5
5
  import { ControlValueAccessor, FormControl } from '@angular/forms';
6
6
  import { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';
7
7
  import { LinkNode } from '@lexical/link';
8
- import { TextMatchTransformer } from '@lexical/markdown';
9
8
  import { LuccaIcon } from '@lucca-front/icons';
10
9
 
11
10
  type UnregisterFn = () => void;
@@ -184,14 +183,39 @@ declare class RichTextPluginTagComponent implements RichTextPluginComponent, OnD
184
183
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextPluginTagComponent, "lu-rich-text-plugin-tag", never, { "tags": { "alias": "tags"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
185
184
  }
186
185
 
187
- /**
188
- * Transformer for tag nodes
189
- * It will match the following pattern `{{Tag}}` and create a TagNode (using `replace` function).
190
- * It will export the tag node to markdown (as `{{Tag}}`) using the `export` function.
191
- *
192
- * @docs https://github.com/facebook/lexical/tree/main/packages/lexical-markdown#transformers
193
- */
194
- declare const TAGS: TextMatchTransformer;
186
+ type SerializedTagNode = Spread<{
187
+ tagKey?: string;
188
+ tagDescription?: string;
189
+ disabled?: boolean;
190
+ }, SerializedLexicalNode>;
191
+ declare class TagNode extends DecoratorNode<string> {
192
+ #private;
193
+ static setViewContainerRef(vcr: ViewContainerRef): void;
194
+ constructor(tagKey?: string, tagDescription?: string, disabled?: boolean, key?: NodeKey);
195
+ isDisabled(): boolean;
196
+ setDisabled(disabled: boolean): this;
197
+ getTagKey(): string;
198
+ setTagKey(tagKey: string): this;
199
+ getTagDescription(): string;
200
+ setTagDescription(description: string): this;
201
+ static getType(): string;
202
+ static clone(node: TagNode): TagNode;
203
+ /**
204
+ * This method must be implemented but has no purpose outside of react
205
+ */
206
+ decorate(): string;
207
+ createDOM(_config: EditorConfig, editor: LexicalEditor): HTMLElement;
208
+ updateDOM(prevNode: TagNode, _dom: HTMLElement, _config: EditorConfig): boolean;
209
+ remove(preserveEmptyParent?: boolean): void;
210
+ exportDOM(): DOMExportOutput;
211
+ static importDOM(): DOMConversionMap;
212
+ static importJSON(serializedNode: SerializedTagNode): TagNode;
213
+ updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedTagNode>): this;
214
+ exportJSON(): SerializedTagNode;
215
+ getTextContent(): string;
216
+ }
217
+ declare function $createTagNode(key?: string, description?: string): TagNode;
218
+ declare function $isTagNode(node: LexicalNode | null | undefined): node is TagNode;
195
219
 
196
220
  declare class TextStyleComponent implements OnDestroy, RichTextPluginComponent {
197
221
  #private;
@@ -229,5 +253,5 @@ declare class RichTextInputToolbarComponent implements RichTextPluginComponent {
229
253
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextInputToolbarComponent, "lu-rich-text-input-toolbar", never, {}, {}, never, never, true, never>;
230
254
  }
231
255
 
232
- export { ClearFormatComponent, HeadingsComponent, INITIAL_UPDATE_TAG, LinkComponent, ListStyleToolbarComponent, RICH_TEXT_FORMATTER, RICH_TEXT_PLUGIN_COMPONENT, RichTextFormatter, RichTextInputComponent, RichTextInputToolbarComponent, RichTextPluginTagComponent, SKIP_DOM_SELECTION_TAG, TAGS, TextStyleComponent, TextStyleToolbarComponent };
233
- export type { RichTextPluginComponent, Tag };
256
+ export { $createTagNode, $isTagNode, ClearFormatComponent, HeadingsComponent, INITIAL_UPDATE_TAG, LinkComponent, ListStyleToolbarComponent, RICH_TEXT_FORMATTER, RICH_TEXT_PLUGIN_COMPONENT, RichTextFormatter, RichTextInputComponent, RichTextInputToolbarComponent, RichTextPluginTagComponent, SKIP_DOM_SELECTION_TAG, TagNode, TextStyleComponent, TextStyleToolbarComponent };
257
+ export type { RichTextPluginComponent, SerializedTagNode, Tag };
@@ -1,11 +1,14 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
 
3
+ type DisplayMode = 'popin' | 'drawer' | 'fullPage'
4
+ /** @deprecated use 'fullPage' instead */
5
+ | 'fullpage';
3
6
  declare class LoadingComponent {
4
7
  #private;
5
8
  readonly size: _angular_core.InputSignal<"L">;
6
9
  readonly invert: _angular_core.InputSignalWithTransform<boolean, unknown>;
7
10
  readonly block: _angular_core.InputSignalWithTransform<boolean, unknown>;
8
- readonly template: _angular_core.InputSignal<"popin" | "drawer" | "fullpage">;
11
+ readonly template: _angular_core.InputSignal<DisplayMode>;
9
12
  constructor();
10
13
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingComponent, never>;
11
14
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoadingComponent, "lu-loading", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "invert": { "alias": "invert"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "template": { "alias": "template"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Signal, ChangeDetectorRef, ElementRef, Injector, ViewContainerRef, OnDestroy, OnInit, Type, TemplateRef, DestroyRef, InjectionToken } from '@angular/core';
2
+ import { ChangeDetectorRef, ElementRef, Injector, ViewContainerRef, OnDestroy, OnInit, Type, TemplateRef, Signal, DestroyRef, InjectionToken } from '@angular/core';
3
3
  import * as _lucca_front_ng_multi_select from '@lucca-front/ng/multi-select';
4
4
  import { ControlValueAccessor, AbstractControl, ValidationErrors } from '@angular/forms';
5
- import { ɵIsSelectedStrategy as _IsSelectedStrategy, LuSelectPanelRef, ALuSelectInputComponent, LuOptionContext, ILuOptionContext } from '@lucca-front/ng/core-select';
5
+ import { LuSelectPanelRef, ALuSelectInputComponent, LuOptionContext, ɵIsSelectedStrategy as _IsSelectedStrategy, ILuOptionContext } from '@lucca-front/ng/core-select';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { Subject, BehaviorSubject } from 'rxjs';
8
8
  import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions, OverlayConfig, ConnectedPosition } from '@angular/cdk/overlay';
@@ -23,33 +23,6 @@ type LuMultiSelection<T> = {
23
23
  };
24
24
  type LuMultiSelectionMode = LuMultiSelection<unknown>['mode'];
25
25
 
26
- interface LuMultiSelectWithSelectAllContext {
27
- setSelectAll(value: boolean): void;
28
- mode: Signal<LuMultiSelectionMode>;
29
- values: Signal<unknown[]>;
30
- displayerLabel: Signal<string>;
31
- totalCount: Signal<number>;
32
- displayerCount: Signal<number>;
33
- }
34
-
35
- declare class LuMultiSelectWithSelectAllDirective<TValue> extends _IsSelectedStrategy<TValue> implements LuMultiSelectWithSelectAllContext {
36
- #private;
37
- readonly displayerLabel: i0.InputSignal<string>;
38
- readonly mode: i0.Signal<"include" | "exclude" | "none" | "all">;
39
- readonly values: i0.Signal<TValue[]>;
40
- readonly totalCount: i0.Signal<number>;
41
- readonly displayerCount: i0.Signal<number>;
42
- constructor();
43
- setSelectAll(selectAll: boolean): void;
44
- isSelected(option: TValue, selectedOptions: TValue[], optionComparer: LuOptionComparer<TValue>): boolean;
45
- isGroupSelected(_options: TValue[], notSelectedOptions: TValue[]): boolean;
46
- registerOnChange(fn: (value: TValue[] | LuMultiSelection<TValue>) => void): void;
47
- writeValue(value: TValue[] | LuMultiSelection<TValue>): void;
48
- clearValue($event: Event): void;
49
- static ɵfac: i0.ɵɵFactoryDeclaration<LuMultiSelectWithSelectAllDirective<any>, never>;
50
- static ɵdir: i0.ɵɵDirectiveDeclaration<LuMultiSelectWithSelectAllDirective<any>, "lu-multi-select[withSelectAll]", never, { "displayerLabel": { "alias": "withSelectAllDisplayerLabel"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
51
- }
52
-
53
26
  declare abstract class LuMultiSelectPanelRef<T> extends LuSelectPanelRef<T, T[]> {
54
27
  abstract changeDetectorRef?: ChangeDetectorRef;
55
28
  abstract updateSelectedOptions(selectedOptions: T[]): void;
@@ -123,6 +96,34 @@ declare class LuMultiSelectInputComponent<T> extends ALuSelectInputComponent<T,
123
96
  static ngAcceptInputType_keepSearchAfterSelection: unknown;
124
97
  }
125
98
 
99
+ interface LuMultiSelectWithSelectAllContext {
100
+ setSelectAll(value: boolean): void;
101
+ mode: Signal<LuMultiSelectionMode>;
102
+ values: Signal<unknown[]>;
103
+ displayerLabel: Signal<string>;
104
+ totalCount: Signal<number>;
105
+ displayerCount: Signal<number>;
106
+ }
107
+
108
+ declare class LuMultiSelectWithSelectAllDirective<TValue> extends _IsSelectedStrategy<TValue> implements LuMultiSelectWithSelectAllContext {
109
+ #private;
110
+ readonly select: LuMultiSelectInputComponent<TValue>;
111
+ readonly displayerLabel: i0.InputSignal<string>;
112
+ readonly mode: i0.Signal<"include" | "exclude" | "none" | "all">;
113
+ readonly values: i0.Signal<TValue[]>;
114
+ readonly totalCount: i0.Signal<number>;
115
+ readonly displayerCount: i0.Signal<number>;
116
+ constructor();
117
+ setSelectAll(selectAll: boolean): void;
118
+ isSelected(option: TValue, selectedOptions: TValue[], optionComparer: LuOptionComparer<TValue>): boolean;
119
+ isGroupSelected(_options: TValue[], notSelectedOptions: TValue[]): boolean;
120
+ registerOnChange(fn: (value: TValue[] | LuMultiSelection<TValue>) => void): void;
121
+ writeValue(value: TValue[] | LuMultiSelection<TValue>): void;
122
+ clearValue($event: Event): void;
123
+ static ɵfac: i0.ɵɵFactoryDeclaration<LuMultiSelectWithSelectAllDirective<any>, never>;
124
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LuMultiSelectWithSelectAllDirective<any>, "lu-multi-select[withSelectAll]", never, { "displayerLabel": { "alias": "withSelectAllDisplayerLabel"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
125
+ }
126
+
126
127
  declare class LuMultiSelectContentDisplayerComponent<T> {
127
128
  select: LuMultiSelectInputComponent<T>;
128
129
  static ɵfac: i0.ɵɵFactoryDeclaration<LuMultiSelectContentDisplayerComponent<any>, never>;
@@ -1,6 +0,0 @@
1
- export * from '@lucca-front/ng/scroll-box';
2
-
3
- /**
4
- * Generated bundle index. Do not edit.
5
- */
6
- //# sourceMappingURL=lucca-front-ng-scrollBox.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lucca-front-ng-scrollBox.mjs","sources":["../../../packages/ng/scrollBox/lucca-front-ng-scrollBox.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;AAEG"}
@@ -1,6 +0,0 @@
1
- export * from '@lucca-front/ng/segmented-control';
2
-
3
- /**
4
- * Generated bundle index. Do not edit.
5
- */
6
- //# sourceMappingURL=lucca-front-ng-segmentedControl.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lucca-front-ng-segmentedControl.mjs","sources":["../../../packages/ng/segmentedControl/lucca-front-ng-segmentedControl.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;AAEG"}
@@ -1,6 +0,0 @@
1
- export * from '@lucca-front/ng/segmented-control-tabs';
2
-
3
- /**
4
- * Generated bundle index. Do not edit.
5
- */
6
- //# sourceMappingURL=lucca-front-ng-segmentedControlTabs.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lucca-front-ng-segmentedControlTabs.mjs","sources":["../../../packages/ng/segmentedControlTabs/lucca-front-ng-segmentedControlTabs.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;AAEG"}
@@ -1,6 +0,0 @@
1
- export * from '@lucca-front/ng/status-badge';
2
-
3
- /**
4
- * Generated bundle index. Do not edit.
5
- */
6
- //# sourceMappingURL=lucca-front-ng-statusBadge.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lucca-front-ng-statusBadge.mjs","sources":["../../../packages/ng/statusBadge/lucca-front-ng-statusBadge.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;AAEG"}
@@ -1 +0,0 @@
1
- export * from '@lucca-front/ng/scroll-box';
@@ -1 +0,0 @@
1
- export * from '@lucca-front/ng/segmented-control';
@@ -1 +0,0 @@
1
- export * from '@lucca-front/ng/segmented-control-tabs';
@@ -1 +0,0 @@
1
- export * from '@lucca-front/ng/status-badge';