@lucca-front/ng 21.0.0-rc.5 → 21.0.0-rc.6

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 (66) hide show
  1. package/data-table/index.d.ts +1 -1
  2. package/dialog/index.d.ts +60 -59
  3. package/fesm2022/lucca-front-ng-chip.mjs +1 -1
  4. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-core-select.mjs +1 -1
  6. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-data-table.mjs +15 -15
  8. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-date2.mjs +1 -1
  10. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-dialog.mjs +96 -92
  12. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-establishment.mjs +2 -2
  14. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-file-upload.mjs +1 -1
  16. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-filter-pills.mjs +4 -4
  18. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-form-field.mjs +2 -2
  20. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +5 -5
  22. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-forms.mjs +2 -2
  24. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-index-table.mjs +1 -1
  26. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-inline-message.mjs +1 -1
  28. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-link.mjs +29 -55
  30. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-modal.mjs +3 -3
  32. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-numeric-badge.mjs +1 -1
  34. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-option.mjs +1 -1
  36. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-popover2.mjs +2 -2
  38. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-scroll-box.mjs +26 -24
  40. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-status-badge.mjs +1 -1
  42. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-tag.mjs +1 -1
  44. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-tooltip.mjs +2 -4
  46. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-user-popover.mjs +2 -2
  48. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  49. package/index-table/index.d.ts +1 -1
  50. package/link/index.d.ts +3 -6
  51. package/package.json +46 -50
  52. package/schematics/collection.json +10 -0
  53. package/schematics/color-text/index.js +55 -0
  54. package/schematics/color-text/migration.spec.js +50 -0
  55. package/schematics/color-text/schema.json +23 -0
  56. package/schematics/lib/angular-component-ast.js +29 -0
  57. package/schematics/lu-text-input/index.js +24 -0
  58. package/schematics/lu-text-input/migration.js +116 -0
  59. package/schematics/lu-text-input/migration.spec.js +23 -0
  60. package/schematics/lu-text-input/schema.json +23 -0
  61. package/scroll-box/index.d.ts +6 -5
  62. package/src/components/cdk/_global.scss +22 -1
  63. package/tooltip/index.d.ts +2 -2
  64. package/fesm2022/lucca-front-ng-scrollBox.mjs +0 -6
  65. package/fesm2022/lucca-front-ng-scrollBox.mjs.map +0 -1
  66. package/scrollBox/index.d.ts +0 -1
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractProviders = extractProviders;
4
4
  exports.extractComponentImports = extractComponentImports;
5
+ exports.inputValueToHTML = inputValueToHTML;
6
+ exports.getInputValue = getInputValue;
5
7
  exports.insertTSImportIfNeeded = insertTSImportIfNeeded;
6
8
  exports.insertAngularImportIfNeeded = insertAngularImportIfNeeded;
7
9
  exports.removeAngularImport = removeAngularImport;
@@ -10,6 +12,7 @@ const change_1 = require("@schematics/angular/utility/change");
10
12
  const eol_1 = require("@schematics/angular/utility/eol");
11
13
  const typescript_1 = require("typescript");
12
14
  const angular_template_1 = require("./angular-template");
15
+ const lf_schematic_context_1 = require("./lf-schematic-context");
13
16
  function extractProviders(sourceFile) {
14
17
  const providerEntries = [];
15
18
  (0, typescript_1.forEachChild)(sourceFile, (0, angular_template_1.createVisitor)(typescript_1.isDecorator, (decorator) => {
@@ -88,6 +91,32 @@ function extractComponentImports(sourceFile) {
88
91
  }));
89
92
  return imports;
90
93
  }
94
+ function inputValueToHTML(name, value) {
95
+ if (!value) {
96
+ return "";
97
+ }
98
+ return `${value.isBinding ? '[' : ''}${value.twoWayBinding ? '(' : ''}${name}${value.twoWayBinding ? ')' : ''}${value.isBinding ? ']' : ''}="${value.value}"`;
99
+ }
100
+ function getInputValue(node, inputName) {
101
+ const input = node.inputs.find((i) => i.name === inputName);
102
+ if (input) {
103
+ const output = node.outputs.find((o) => o.name === `${inputName}Change`);
104
+ const value = input?.value instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.ASTWithSource ? input.value.source : null;
105
+ return {
106
+ isBinding: true,
107
+ value,
108
+ twoWayBinding: output?.handler instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.ASTWithSource ? output.handler.source === value : false
109
+ };
110
+ }
111
+ const attr = node.attributes.find((a) => a.name === inputName);
112
+ if (attr) {
113
+ return {
114
+ isBinding: false,
115
+ value: attr.value
116
+ };
117
+ }
118
+ return undefined;
119
+ }
91
120
  // Simplified version of https://github.com/angular/angular-cli/blob/main/packages/schematics/angular/utility/ast-utils.ts#L24 for our use case
92
121
  function insertTSImportIfNeeded(sourceFile, fileToEdit, symbolName, fileName) {
93
122
  const allImports = sourceFile.statements.filter(typescript_1.isImportDeclaration);
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const typescript_1 = require("typescript");
4
+ const lf_schematic_context_1 = require("../lib/lf-schematic-context");
5
+ const schematics_1 = require("../lib/schematics");
6
+ const migration_1 = require("./migration");
7
+ // Nx need to see "@angular-devkit/schematics" in order to run this migration correctly (see https://github.com/nrwl/nx/blob/d9fed4b832bf01d1b9a44ae9e486a5e5cd2d2253/packages/nx/src/command-line/migrate/migrate.ts#L1729-L1738)
8
+ require('@angular-devkit/schematics');
9
+ exports.default = (options) => {
10
+ return async (tree, context) => {
11
+ await lf_schematic_context_1.currentSchematicContext.init(context, options);
12
+ tree.visit((path, entry) => {
13
+ if (path.includes('node_modules') || !entry) {
14
+ return;
15
+ }
16
+ if (path.endsWith('.ts')) {
17
+ (0, schematics_1.migrateFile)(path, entry, tree, (content) => {
18
+ const sourceFile = (0, typescript_1.createSourceFile)(path, content, typescript_1.ScriptTarget.ESNext);
19
+ return (0, migration_1.migrateComponent)(sourceFile, path, tree);
20
+ });
21
+ }
22
+ });
23
+ };
24
+ };
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateComponent = migrateComponent;
4
+ const angular_template_1 = require("../lib/angular-template");
5
+ const html_ast_js_1 = require("../lib/html-ast.js");
6
+ const lf_schematic_context_1 = require("../lib/lf-schematic-context");
7
+ const angular_component_ast_1 = require("../lib/angular-component-ast");
8
+ const change_1 = require("@schematics/angular/utility/change");
9
+ function migrateComponent(sourceFile, path, tree) {
10
+ const textfields = findTextfields(sourceFile, path, tree);
11
+ if (textfields.length > 0) {
12
+ const tsUpdate = tree.beginUpdate(path);
13
+ const isInlineTemplate = textfields[0].filePath === path;
14
+ const templateUpdate = isInlineTemplate ? tsUpdate : tree.beginUpdate(textfields[0].filePath);
15
+ let updatedStuff = false;
16
+ textfields.forEach((field) => {
17
+ if (field.rejection) {
18
+ // TODO check if custom directive is in place for custom inputs
19
+ // eslint-disable-next-line no-console
20
+ console.log(`[REJECTED] ${field.filePath}#L${field.node.startSourceSpan.start.line} => ${field.rejection}`);
21
+ }
22
+ else {
23
+ updatedStuff = true;
24
+ // Let's remove everything first
25
+ templateUpdate.remove(field.nodeOffset + field.node.startSourceSpan.start.offset, field.node.sourceSpan.toString().length);
26
+ // Then forge the new input
27
+ const textInput = `<lu-text-input ${(0, angular_component_ast_1.inputValueToHTML)('placeholder', field.inputs.placeholder)} ${(0, angular_component_ast_1.inputValueToHTML)('formControlName', field.inputs.formControlName)} ${(0, angular_component_ast_1.inputValueToHTML)('ngModel', field.inputs.ngModel)} />`.replace(/\s{2,}/, " ");
28
+ const fieldOpeningTag = `lu-form-field [label]="labelTpl"`.replace(/\s{2,}/, " ").trim();
29
+ // TODO handle required migration from template-driven to form-driven???
30
+ const newInput = `<${fieldOpeningTag}>
31
+ <ng-template #labelTpl>${field.label}</ng-template>
32
+ ${textInput}
33
+ </lu-form-field>`;
34
+ templateUpdate.insertRight(field.nodeOffset + field.node.startSourceSpan.start.offset, newInput);
35
+ }
36
+ // For errors management, how can we detect it??? Then we could migrate text logic in its own ng-template like formation does.
37
+ });
38
+ if (updatedStuff) {
39
+ // Add import if needed
40
+ (0, change_1.applyToUpdateRecorder)(tsUpdate, [
41
+ (0, angular_component_ast_1.insertTSImportIfNeeded)(sourceFile, path, 'FormFieldComponent', '@lucca-front/ng/form-field'),
42
+ (0, angular_component_ast_1.insertAngularImportIfNeeded)(sourceFile, path, 'FormFieldComponent'),
43
+ (0, angular_component_ast_1.insertTSImportIfNeeded)(sourceFile, path, 'TextInputComponent', '@lucca-front/ng/forms'),
44
+ (0, angular_component_ast_1.insertAngularImportIfNeeded)(sourceFile, path, 'TextInputComponent')
45
+ ]);
46
+ tree.commitUpdate(tsUpdate);
47
+ if (!isInlineTemplate) {
48
+ tree.commitUpdate(templateUpdate);
49
+ }
50
+ }
51
+ }
52
+ return tree.readText(path);
53
+ }
54
+ function findTextfields(sourceFile, basePath, tree) {
55
+ const fields = [];
56
+ const ngTemplates = (0, angular_template_1.extractNgTemplatesIncludingHtml)(sourceFile, tree, basePath);
57
+ ngTemplates.forEach((template) => {
58
+ const htmlAst = new html_ast_js_1.HtmlAst(template.content);
59
+ htmlAst.visitNodes((node) => {
60
+ if (isInterestingNode(node) && node.name === "label") {
61
+ const classes = getNodeClasses(node);
62
+ const inputs = {
63
+ size: classes.find(c => /mod-(XS|S|M|L|XL|XXL)/.test(c))?.replace('mod-', '')
64
+ };
65
+ const field = {
66
+ node: node,
67
+ inputs,
68
+ nodeOffset: template.offsetStart,
69
+ filePath: template.filePath,
70
+ componentTS: sourceFile,
71
+ classes: classes
72
+ };
73
+ if (classes.includes("textfield")) {
74
+ if (node.children.filter(el => isInterestingNode(el) || isControlFlowNode(el)).length > 2) {
75
+ field.rejection = "Field contains more than an input + label";
76
+ }
77
+ // Find native input and grab params from it
78
+ const nativeInput = node.children.find(el => isInterestingNode(el) && el.name === "input");
79
+ if (!nativeInput) {
80
+ field.rejection = "Field doesn't contain a native input[type=text]";
81
+ }
82
+ else if (isInterestingNode(nativeInput)) {
83
+ inputs.placeholder = (0, angular_component_ast_1.getInputValue)(nativeInput, "placeholder");
84
+ inputs.formControlName = (0, angular_component_ast_1.getInputValue)(nativeInput, "formControlName");
85
+ inputs.ngModel = (0, angular_component_ast_1.getInputValue)(nativeInput, "ngModel");
86
+ inputs.forceRequired = (0, angular_component_ast_1.getInputValue)(nativeInput, "aria-required");
87
+ }
88
+ // This is a textfield, now let's find if it has everything required for migration
89
+ const visitor = new html_ast_js_1.HtmlAstVisitor(node);
90
+ visitor.visitElements(/span/, (el) => {
91
+ if (isInterestingNode(el) && getNodeClasses(el).includes("textfield-label")) {
92
+ field.label = template.content.slice(el.startSourceSpan.end.offset, el.endSourceSpan?.start?.offset);
93
+ }
94
+ });
95
+ if (!field.label) {
96
+ field.rejection = "Field has no label";
97
+ }
98
+ fields.push(field);
99
+ }
100
+ }
101
+ });
102
+ });
103
+ return fields;
104
+ }
105
+ function getNodeClasses(node) {
106
+ return (node.attributes.find(attr => attr.name === 'class')?.value || "").split(" ");
107
+ }
108
+ function isInterestingNode(node) {
109
+ return node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstElement;
110
+ }
111
+ function isControlFlowNode(node) {
112
+ return node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstIfBlock ||
113
+ node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstForLoopBlock ||
114
+ node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstSwitchBlock ||
115
+ node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstDeferredBlock;
116
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path = require("path");
4
+ const migration_test_js_1 = require("../lib/migration-test.js");
5
+ const collectionPath = path.normalize(path.join(__dirname, '..', 'collection.json'));
6
+ const testsRoot = path.join(__dirname, 'tests');
7
+ describe('Textfield Migration', () => {
8
+ it('should handle basic case files', async () => {
9
+ // Arrange
10
+ const tree = (0, migration_test_js_1.createTreeFromFolder)(path.join(testsRoot, 'input'));
11
+ const expectedTree = (0, migration_test_js_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
12
+ // Act
13
+ try {
14
+ await (0, migration_test_js_1.runSchematic)('collection', collectionPath, 'lu-text-input', { skipInstallation: true }, tree);
15
+ }
16
+ catch (error) {
17
+ // eslint-disable-next-line no-console
18
+ console.log(error);
19
+ }
20
+ // Assert
21
+ (0, migration_test_js_1.expectTree)(tree).toMatchTree(expectedTree);
22
+ });
23
+ });
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "LuccaFrontLuButton",
4
+ "title": "Migrate CSS-only buttons to the new luButton component",
5
+ "type": "object",
6
+ "properties": {
7
+ "dryRun": {
8
+ "type": "boolean",
9
+ "description": "Run through the migration without making any changes.",
10
+ "default": false
11
+ },
12
+ "skipInstall": {
13
+ "type": "boolean",
14
+ "description": "Skip installing dependencies.",
15
+ "default": false
16
+ },
17
+ "verbose": {
18
+ "type": "boolean",
19
+ "description": "Enable verbose logging.",
20
+ "default": false
21
+ }
22
+ }
23
+ }
@@ -1,15 +1,16 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnInit, ElementRef } from '@angular/core';
2
+ import { OnInit } from '@angular/core';
3
3
 
4
4
  declare class ScrollBoxComponent implements OnInit {
5
- first: _angular_core.Signal<ElementRef<HTMLElement>>;
6
- last: _angular_core.Signal<ElementRef<HTMLElement>>;
5
+ #private;
7
6
  isFirstVisible: _angular_core.WritableSignal<boolean>;
8
7
  isLastVisible: _angular_core.WritableSignal<boolean>;
9
- initObserver(element: Element, isFirst: boolean): void;
8
+ vertical: _angular_core.InputSignalWithTransform<boolean, unknown>;
9
+ scroll(): void;
10
+ constructor();
10
11
  ngOnInit(): void;
11
12
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollBoxComponent, never>;
12
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollBoxComponent, "lu-scroll-box", never, {}, {}, never, ["*"], true, never>;
13
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollBoxComponent, "lu-scroll-box", never, { "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
13
14
  }
14
15
 
15
16
  export { ScrollBoxComponent };
@@ -1,4 +1,22 @@
1
1
  @use '@lucca-front/scss/src/commons/utils/overflow';
2
+ @use '@lucca-front/scss/src/commons/utils/media';
3
+
4
+ @mixin stacked($level) {
5
+ $selector: '';
6
+ $string: '~ .cdk-global-overlay-wrapper';
7
+
8
+ @for $i from 1 through $level {
9
+ $selector: $selector + $string;
10
+ }
11
+
12
+ &:has(#{$selector}) {
13
+ .dialog {
14
+ &.mod-stacked {
15
+ --components-dialog-level: #{$level};
16
+ }
17
+ }
18
+ }
19
+ }
2
20
 
3
21
  .cdk-global-overlay-wrapper {
4
22
  block-size: 100%;
@@ -9,6 +27,10 @@
9
27
  display: flex;
10
28
  position: absolute;
11
29
  z-index: 1000;
30
+
31
+ @for $i from 1 through 3 {
32
+ @include stacked($i);
33
+ }
12
34
  }
13
35
 
14
36
  .cdk-global-scrollblock {
@@ -17,4 +39,3 @@
17
39
 
18
40
  @include overflow.scrollblock('!important');
19
41
  }
20
-
@@ -40,12 +40,12 @@ declare class LuTooltipTriggerDirective implements OnDestroy {
40
40
  readonly luTooltipPosition: _angular_core.InputSignal<LuPopoverPosition>;
41
41
  readonly luTooltipWhenEllipsis: _angular_core.InputSignalWithTransform<boolean, unknown>;
42
42
  readonly luTooltipAnchor: _angular_core.InputSignal<FlexibleConnectedPositionStrategyOrigin>;
43
+ readonly id: _angular_core.InputSignal<string>;
43
44
  readonly resize$: Observable<void>;
44
45
  onMouseEnter(): void;
45
46
  onMouseLeave(): void;
46
47
  onFocus(): void;
47
48
  onBlur(): void;
48
- readonly id: _angular_core.WritableSignal<string>;
49
49
  readonly ariaDescribedBy: _angular_core.Signal<string>;
50
50
  overlayRef?: OverlayRef;
51
51
  constructor();
@@ -65,7 +65,7 @@ declare class LuTooltipTriggerDirective implements OnDestroy {
65
65
  requestClose(): void;
66
66
  requestOpen(): void;
67
67
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuTooltipTriggerDirective, never>;
68
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuTooltipTriggerDirective, "[luTooltip]", ["luTooltip"], { "luTooltip": { "alias": "luTooltip"; "required": false; "isSignal": true; }; "luTooltipEnterDelay": { "alias": "luTooltipEnterDelay"; "required": false; "isSignal": true; }; "luTooltipLeaveDelay": { "alias": "luTooltipLeaveDelay"; "required": false; "isSignal": true; }; "luTooltipDisabled": { "alias": "luTooltipDisabled"; "required": false; "isSignal": true; }; "luTooltipOnlyForDisplay": { "alias": "luTooltipOnlyForDisplay"; "required": false; "isSignal": true; }; "luTooltipPosition": { "alias": "luTooltipPosition"; "required": false; "isSignal": true; }; "luTooltipWhenEllipsis": { "alias": "luTooltipWhenEllipsis"; "required": false; "isSignal": true; }; "luTooltipAnchor": { "alias": "luTooltipAnchor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
68
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuTooltipTriggerDirective, "[luTooltip]", ["luTooltip"], { "luTooltip": { "alias": "luTooltip"; "required": false; "isSignal": true; }; "luTooltipEnterDelay": { "alias": "luTooltipEnterDelay"; "required": false; "isSignal": true; }; "luTooltipLeaveDelay": { "alias": "luTooltipLeaveDelay"; "required": false; "isSignal": true; }; "luTooltipDisabled": { "alias": "luTooltipDisabled"; "required": false; "isSignal": true; }; "luTooltipOnlyForDisplay": { "alias": "luTooltipOnlyForDisplay"; "required": false; "isSignal": true; }; "luTooltipPosition": { "alias": "luTooltipPosition"; "required": false; "isSignal": true; }; "luTooltipWhenEllipsis": { "alias": "luTooltipWhenEllipsis"; "required": false; "isSignal": true; }; "luTooltipAnchor": { "alias": "luTooltipAnchor"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
69
69
  }
70
70
 
71
71
  /**
@@ -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 +0,0 @@
1
- export * from '@lucca-front/ng/scroll-box';