@seniorsistemas/angular-components 19.5.5 → 19.6.0

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 (98) hide show
  1. package/accordion/README.md +95 -59
  2. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +4 -0
  3. package/datepicker/README.md +175 -0
  4. package/datepicker/index.d.ts +5 -0
  5. package/datepicker/lib/datepicker/date.utils.d.ts +21 -0
  6. package/datepicker/lib/datepicker/datepicker.component.d.ts +254 -0
  7. package/datepicker/lib/datepicker/models/index.d.ts +16 -0
  8. package/datepicker/public-api.d.ts +2 -0
  9. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +3 -1
  10. package/dynamic-form/dynamic-form/components/lookup/models/lookup-alert-config.d.ts +5 -0
  11. package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +119 -24
  12. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +6 -0
  13. package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +6 -23
  14. package/dynamic-form/public-api.d.ts +1 -0
  15. package/editor/README.md +229 -0
  16. package/editor/index.d.ts +5 -0
  17. package/editor/lib/editor/editor.component.d.ts +127 -0
  18. package/editor/lib/editor/link-dialog/link-dialog.component.d.ts +18 -0
  19. package/editor/lib/editor/models/index.d.ts +12 -0
  20. package/editor/lib/editor/toolbar-button/editor-toolbar-button.component.d.ts +10 -0
  21. package/editor/public-api.d.ts +2 -0
  22. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +5 -1
  23. package/esm2022/datepicker/lib/datepicker/date.utils.mjs +182 -0
  24. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +1062 -0
  25. package/esm2022/datepicker/lib/datepicker/models/index.mjs +2 -0
  26. package/esm2022/datepicker/public-api.mjs +2 -0
  27. package/esm2022/datepicker/seniorsistemas-angular-components-datepicker.mjs +5 -0
  28. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +11 -5
  29. package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-alert-config.mjs +2 -0
  30. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
  31. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  32. package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +2 -2
  33. package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +23 -116
  34. package/esm2022/dynamic-form/dynamic-form/form-field/fields/lookup/lookup-field.component.mjs +3 -3
  35. package/esm2022/dynamic-form/public-api.mjs +1 -1
  36. package/esm2022/editor/lib/editor/editor.component.mjs +375 -0
  37. package/esm2022/editor/lib/editor/link-dialog/link-dialog.component.mjs +48 -0
  38. package/esm2022/editor/lib/editor/models/index.mjs +3 -0
  39. package/esm2022/editor/lib/editor/toolbar-button/editor-toolbar-button.component.mjs +17 -0
  40. package/esm2022/editor/public-api.mjs +3 -0
  41. package/esm2022/editor/seniorsistemas-angular-components-editor.mjs +5 -0
  42. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +22 -12
  43. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +5 -5
  44. package/esm2022/lib/locale/fallback.mjs +82 -3
  45. package/esm2022/optional-fields/editor/editor-field/editor-field.component.mjs +5 -6
  46. package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
  47. package/esm2022/panel/lib/panel/panel.component.mjs +7 -3
  48. package/esm2022/select/lib/select/select.component.mjs +4 -8
  49. package/esm2022/shared/lib/accessibility/datepicker-no-period-tab.directive.mjs +5 -1
  50. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +4 -0
  51. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  52. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +1250 -0
  53. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -0
  54. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +49 -135
  55. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  56. package/fesm2022/seniorsistemas-angular-components-editor.mjs +437 -0
  57. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -0
  58. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +24 -15
  59. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs +4 -5
  61. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
  62. package/fesm2022/seniorsistemas-angular-components-panel.mjs +6 -2
  63. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  64. package/fesm2022/seniorsistemas-angular-components-select.mjs +3 -7
  65. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  66. package/fesm2022/seniorsistemas-angular-components-shared.mjs +4 -0
  67. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  68. package/fesm2022/seniorsistemas-angular-components.mjs +81 -2
  69. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  70. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +6 -4
  71. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +2 -2
  72. package/loading-state/README.md +57 -17
  73. package/optional-fields/editor/editor-field.d.ts +9 -6
  74. package/package.json +74 -8
  75. package/panel/README.md +12 -1
  76. package/panel/lib/panel/panel.component.d.ts +3 -1
  77. package/schematics/collection.json +4 -0
  78. package/schematics/migrations/migrate-p-datepicker/index.d.ts +2 -0
  79. package/schematics/migrations/migrate-p-datepicker/index.js +141 -0
  80. package/schematics/migrations/migrate-p-datepicker/index.js.map +1 -0
  81. package/schematics/migrations/migrate-p-datepicker/index.test.d.ts +1 -0
  82. package/schematics/migrations/migrate-p-datepicker/index.test.js +392 -0
  83. package/schematics/migrations/migrate-p-datepicker/index.test.js.map +1 -0
  84. package/schematics/migrations.json +10 -0
  85. package/schematics/utils/ast-utils.d.ts +28 -0
  86. package/schematics/utils/ast-utils.js +116 -0
  87. package/schematics/utils/ast-utils.js.map +1 -0
  88. package/schematics/utils/ast-utils.test.d.ts +1 -0
  89. package/schematics/utils/ast-utils.test.js +138 -0
  90. package/schematics/utils/ast-utils.test.js.map +1 -0
  91. package/schematics/utils/workspace-utils.d.ts +6 -0
  92. package/schematics/utils/workspace-utils.js +37 -0
  93. package/schematics/utils/workspace-utils.js.map +1 -0
  94. package/schematics/utils/workspace-utils.test.d.ts +1 -0
  95. package/schematics/utils/workspace-utils.test.js +152 -0
  96. package/schematics/utils/workspace-utils.test.js.map +1 -0
  97. package/shared/lib/accessibility/datepicker-no-period-tab.directive.d.ts +4 -0
  98. package/stats-card/README.md +80 -45
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ngComponent = exports.ngModule = void 0;
4
+ exports.applyChanges = applyChanges;
5
+ exports.buildRemoveNamedImportsChanges = buildRemoveNamedImportsChanges;
6
+ exports.insertImportStatement = insertImportStatement;
7
+ const ts = require("typescript");
8
+ function applyChanges(content, changes) {
9
+ const sorted = [...changes].sort((a, b) => b.start - a.start);
10
+ let result = content;
11
+ for (const change of sorted) {
12
+ result = result.slice(0, change.start) + change.replacement + result.slice(change.end);
13
+ }
14
+ return result;
15
+ }
16
+ /**
17
+ * Removes named imports from a module matching `fromModulePattern`.
18
+ * If the import statement becomes empty, removes the entire statement.
19
+ * Returns the changes and the list of names that were actually removed.
20
+ */
21
+ function buildRemoveNamedImportsChanges(sourceFile, names, fromModulePattern) {
22
+ const changes = [];
23
+ const removedNames = [];
24
+ ts.forEachChild(sourceFile, (node) => {
25
+ if (!ts.isImportDeclaration(node))
26
+ return;
27
+ const moduleSpecifier = node.moduleSpecifier.text;
28
+ if (!moduleSpecifier.includes(fromModulePattern))
29
+ return;
30
+ const namedBindings = node.importClause?.namedBindings;
31
+ if (!namedBindings || !ts.isNamedImports(namedBindings))
32
+ return;
33
+ const removed = namedBindings.elements.filter((el) => names.includes(el.name.text));
34
+ const kept = namedBindings.elements.filter((el) => !names.includes(el.name.text));
35
+ if (removed.length === 0)
36
+ return;
37
+ removedNames.push(...removed.map((el) => el.name.text));
38
+ if (kept.length === 0) {
39
+ changes.push({ start: node.getStart(), end: node.getEnd(), replacement: '' });
40
+ }
41
+ else {
42
+ const newImports = kept.map((el) => el.getText(sourceFile)).join(', ');
43
+ changes.push({
44
+ start: namedBindings.getStart(),
45
+ end: namedBindings.getEnd(),
46
+ replacement: `{ ${newImports} }`,
47
+ });
48
+ }
49
+ });
50
+ return { changes, removedNames };
51
+ }
52
+ /**
53
+ * Inserts `import { name } from 'fromModule';` after the last existing import statement.
54
+ * If no imports exist, prepends to the file.
55
+ */
56
+ function insertImportStatement(content, name, fromModule) {
57
+ const sourceFile = ts.createSourceFile('_temp.ts', content, ts.ScriptTarget.Latest, true);
58
+ let lastEnd = -1;
59
+ ts.forEachChild(sourceFile, (node) => {
60
+ if (ts.isImportDeclaration(node)) {
61
+ lastEnd = node.getEnd();
62
+ }
63
+ });
64
+ const statement = `import { ${name} } from '${fromModule}';\n`;
65
+ if (lastEnd === -1)
66
+ return statement + content;
67
+ return content.slice(0, lastEnd) + '\n' + statement + content.slice(lastEnd);
68
+ }
69
+ function buildReplaceDecoratorPropertyArray(sourceFile, decoratorName, arrayProp, remove, add) {
70
+ const changes = [];
71
+ ts.forEachChild(sourceFile, (node) => {
72
+ if (!ts.isClassDeclaration(node))
73
+ return;
74
+ const decorators = ts.getDecorators(node);
75
+ if (!decorators)
76
+ return;
77
+ for (const decorator of decorators) {
78
+ if (!ts.isCallExpression(decorator.expression))
79
+ continue;
80
+ if (decorator.expression.expression.getText(sourceFile) !== decoratorName)
81
+ continue;
82
+ const [arg] = decorator.expression.arguments;
83
+ if (!arg || !ts.isObjectLiteralExpression(arg))
84
+ continue;
85
+ const prop = arg.properties.find((p) => ts.isPropertyAssignment(p) && p.name.getText(sourceFile) === arrayProp);
86
+ if (!prop || !ts.isArrayLiteralExpression(prop.initializer))
87
+ continue;
88
+ const arr = prop.initializer;
89
+ const elements = [...arr.elements];
90
+ const kept = elements.filter((el) => !remove.includes(el.getText(sourceFile).trim()));
91
+ if (kept.length === elements.length)
92
+ continue;
93
+ const newElements = [...kept.map((el) => el.getText(sourceFile).trim()), add];
94
+ changes.push({
95
+ start: arr.getStart(),
96
+ end: arr.getEnd(),
97
+ replacement: `[${newElements.join(', ')}]`,
98
+ });
99
+ }
100
+ });
101
+ return changes;
102
+ }
103
+ exports.ngModule = {
104
+ replaceInImports(sourceFile, remove, add) {
105
+ return buildReplaceDecoratorPropertyArray(sourceFile, 'NgModule', 'imports', remove, add);
106
+ },
107
+ replaceInExports(sourceFile, remove, add) {
108
+ return buildReplaceDecoratorPropertyArray(sourceFile, 'NgModule', 'exports', remove, add);
109
+ },
110
+ };
111
+ exports.ngComponent = {
112
+ replaceInImports(sourceFile, remove, add) {
113
+ return buildReplaceDecoratorPropertyArray(sourceFile, 'Component', 'imports', remove, add);
114
+ },
115
+ };
116
+ //# sourceMappingURL=ast-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../../projects/angular-components/schematics/utils/ast-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ts = require("typescript");
4
+ const ast_utils_1 = require("./ast-utils");
5
+ function parse(content) {
6
+ return ts.createSourceFile('test.ts', content, ts.ScriptTarget.Latest, true);
7
+ }
8
+ describe('applyChanges', () => {
9
+ it('aplica mudanças em ordem reversa de posição', () => {
10
+ const content = 'ABCDE';
11
+ const result = (0, ast_utils_1.applyChanges)(content, [
12
+ { start: 0, end: 1, replacement: 'X' },
13
+ { start: 3, end: 4, replacement: 'Y' },
14
+ ]);
15
+ expect(result).toBe('XBCYE');
16
+ });
17
+ it('suporta inserção (start === end)', () => {
18
+ const result = (0, ast_utils_1.applyChanges)('AB', [{ start: 1, end: 1, replacement: 'X' }]);
19
+ expect(result).toBe('AXB');
20
+ });
21
+ it('suporta remoção (replacement vazio)', () => {
22
+ const result = (0, ast_utils_1.applyChanges)('ABCD', [{ start: 1, end: 3, replacement: '' }]);
23
+ expect(result).toBe('AD');
24
+ });
25
+ });
26
+ describe('buildRemoveNamedImportsChanges', () => {
27
+ it('remove import statement inteiro quando só tem o nome alvo', () => {
28
+ const content = `import { DatePickerModule } from 'primeng/datepicker';\n@Component({}) export class A {}`;
29
+ const { changes, removedNames } = (0, ast_utils_1.buildRemoveNamedImportsChanges)(parse(content), ['DatePickerModule'], 'primeng');
30
+ const result = (0, ast_utils_1.applyChanges)(content, changes).replace(/\n\n+/g, '\n');
31
+ expect(result).not.toContain('DatePickerModule');
32
+ expect(result).not.toContain("primeng/datepicker");
33
+ expect(removedNames).toEqual(['DatePickerModule']);
34
+ });
35
+ it('mantém outros imports do mesmo pacote', () => {
36
+ const content = `import { DatePickerModule, ButtonModule } from 'primeng/components';\n@Component({}) export class A {}`;
37
+ const { changes, removedNames } = (0, ast_utils_1.buildRemoveNamedImportsChanges)(parse(content), ['DatePickerModule'], 'primeng');
38
+ const result = (0, ast_utils_1.applyChanges)(content, changes);
39
+ expect(result).not.toContain('DatePickerModule');
40
+ expect(result).toContain('ButtonModule');
41
+ expect(removedNames).toEqual(['DatePickerModule']);
42
+ });
43
+ it('não toca em imports de outros pacotes', () => {
44
+ const content = `import { Component } from '@angular/core';\n@Component({}) export class A {}`;
45
+ const { changes } = (0, ast_utils_1.buildRemoveNamedImportsChanges)(parse(content), ['DatePickerModule'], 'primeng');
46
+ expect(changes).toHaveSize(0);
47
+ });
48
+ it('remove múltiplos nomes de uma vez', () => {
49
+ const content = `import { DatePickerModule, CalendarModule } from 'primeng/datepicker';\n@Component({}) export class A {}`;
50
+ const { changes, removedNames } = (0, ast_utils_1.buildRemoveNamedImportsChanges)(parse(content), ['DatePickerModule', 'CalendarModule'], 'primeng');
51
+ const result = (0, ast_utils_1.applyChanges)(content, changes).replace(/\n\n+/g, '\n');
52
+ expect(result).not.toContain('DatePickerModule');
53
+ expect(result).not.toContain('CalendarModule');
54
+ expect(removedNames).toContain('DatePickerModule');
55
+ expect(removedNames).toContain('CalendarModule');
56
+ });
57
+ });
58
+ describe('insertImportStatement', () => {
59
+ it('insere após o último import existente', () => {
60
+ const content = `import { Component } from '@angular/core';\n@Component({}) export class A {}`;
61
+ const result = (0, ast_utils_1.insertImportStatement)(content, 'MyComp', '@my/lib');
62
+ expect(result).toContain(`import { MyComp } from '@my/lib';`);
63
+ const importIndex = result.indexOf(`import { MyComp }`);
64
+ const angularIndex = result.indexOf(`import { Component }`);
65
+ expect(importIndex).toBeGreaterThan(angularIndex);
66
+ });
67
+ it('prepend ao arquivo quando não há imports', () => {
68
+ const content = `@Component({}) export class A {}`;
69
+ const result = (0, ast_utils_1.insertImportStatement)(content, 'MyComp', '@my/lib');
70
+ expect(result.startsWith(`import { MyComp } from '@my/lib';\n`)).toBeTrue();
71
+ });
72
+ });
73
+ describe('ngModule.replaceInImports', () => {
74
+ it('substitui item no array imports de @NgModule', () => {
75
+ const content = `@NgModule({ imports: [CommonModule, DatePickerModule] })\nexport class AppModule {}`;
76
+ const changes = ast_utils_1.ngModule.replaceInImports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
77
+ const result = (0, ast_utils_1.applyChanges)(content, changes);
78
+ expect(result).toContain('imports: [CommonModule, DatepickerComponent]');
79
+ expect(result).not.toContain('DatePickerModule');
80
+ });
81
+ it('não altera decorator sem array imports', () => {
82
+ const content = `@NgModule({ declarations: [] })\nexport class AppModule {}`;
83
+ const changes = ast_utils_1.ngModule.replaceInImports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
84
+ expect(changes).toHaveSize(0);
85
+ });
86
+ it('não altera array quando o item a remover não está presente', () => {
87
+ const content = `@NgModule({ imports: [CommonModule] })\nexport class AppModule {}`;
88
+ const changes = ast_utils_1.ngModule.replaceInImports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
89
+ expect(changes).toHaveSize(0);
90
+ });
91
+ it('remove CalendarModule (alias PrimeNG legado)', () => {
92
+ const content = `@NgModule({ imports: [CalendarModule] })\nexport class AppModule {}`;
93
+ const changes = ast_utils_1.ngModule.replaceInImports(parse(content), ['CalendarModule'], 'DatepickerComponent');
94
+ const result = (0, ast_utils_1.applyChanges)(content, changes);
95
+ expect(result).toContain('DatepickerComponent');
96
+ expect(result).not.toContain('CalendarModule');
97
+ });
98
+ it('não toca em @Component', () => {
99
+ const content = `@Component({ imports: [DatePickerModule], template: '' })\nexport class AppComponent {}`;
100
+ const changes = ast_utils_1.ngModule.replaceInImports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
101
+ expect(changes).toHaveSize(0);
102
+ });
103
+ });
104
+ describe('ngModule.replaceInExports', () => {
105
+ it('substitui item no array exports de @NgModule', () => {
106
+ const content = `@NgModule({ imports: [BrowserModule], exports: [DatePickerModule, DropdownModule] })\nexport class AppModule {}`;
107
+ const changes = ast_utils_1.ngModule.replaceInExports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
108
+ const result = (0, ast_utils_1.applyChanges)(content, changes);
109
+ expect(result).toContain('exports: [DropdownModule, DatepickerComponent]');
110
+ expect(result).not.toContain('DatePickerModule');
111
+ expect(result).toContain('DropdownModule');
112
+ });
113
+ it('não toca em @Component', () => {
114
+ const content = `@Component({ template: '' })\nexport class AppComponent {}`;
115
+ const changes = ast_utils_1.ngModule.replaceInExports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
116
+ expect(changes).toHaveSize(0);
117
+ });
118
+ });
119
+ describe('ngComponent.replaceInImports', () => {
120
+ it('substitui item no array imports de @Component standalone', () => {
121
+ const content = `@Component({ imports: [DatePickerModule], template: '' })\nexport class AppComponent {}`;
122
+ const changes = ast_utils_1.ngComponent.replaceInImports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
123
+ const result = (0, ast_utils_1.applyChanges)(content, changes);
124
+ expect(result).toContain('imports: [DatepickerComponent]');
125
+ expect(result).not.toContain('DatePickerModule');
126
+ });
127
+ it('não altera decorator sem array imports', () => {
128
+ const content = `@Component({ template: '' })\nexport class AppComponent {}`;
129
+ const changes = ast_utils_1.ngComponent.replaceInImports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
130
+ expect(changes).toHaveSize(0);
131
+ });
132
+ it('não toca em @NgModule', () => {
133
+ const content = `@NgModule({ imports: [DatePickerModule] })\nexport class AppModule {}`;
134
+ const changes = ast_utils_1.ngComponent.replaceInImports(parse(content), ['DatePickerModule'], 'DatepickerComponent');
135
+ expect(changes).toHaveSize(0);
136
+ });
137
+ });
138
+ //# sourceMappingURL=ast-utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-utils.test.js","sourceRoot":"","sources":["../../../projects/angular-components/schematics/utils/ast-utils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { SchematicContext, Tree } from '@angular-devkit/schematics';
2
+ /**
3
+ * Adds a CSS entry to the `styles` array of all browser build targets in angular.json.
4
+ * No-op if the entry already exists or if angular.json is not found.
5
+ */
6
+ export declare function ensureAngularJsonStyle(tree: Tree, style: string, context: SchematicContext): void;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureAngularJsonStyle = ensureAngularJsonStyle;
4
+ const json_file_1 = require("@schematics/angular/utility/json-file");
5
+ const BROWSER_BUILDERS = [
6
+ '@angular-devkit/build-angular:browser',
7
+ '@angular-devkit/build-angular:application',
8
+ '@angular-builders/custom-webpack:browser',
9
+ ];
10
+ /**
11
+ * Adds a CSS entry to the `styles` array of all browser build targets in angular.json.
12
+ * No-op if the entry already exists or if angular.json is not found.
13
+ */
14
+ function ensureAngularJsonStyle(tree, style, context) {
15
+ if (!tree.exists('/angular.json'))
16
+ return;
17
+ const json = new json_file_1.JSONFile(tree, '/angular.json');
18
+ const projects = json.get(['projects']);
19
+ if (!projects)
20
+ return;
21
+ for (const projectName of Object.keys(projects)) {
22
+ const builderPath = ['projects', projectName, 'architect', 'build', 'builder'];
23
+ const builder = json.get(builderPath);
24
+ if (!builder || !BROWSER_BUILDERS.some((b) => builder.includes(b)))
25
+ continue;
26
+ const stylesPath = ['projects', projectName, 'architect', 'build', 'options', 'styles'];
27
+ const styles = json.get(stylesPath);
28
+ if (!styles)
29
+ continue;
30
+ const alreadyPresent = styles.some((s) => s === style || (typeof s === 'object' && s.input === style));
31
+ if (alreadyPresent)
32
+ continue;
33
+ json.modify([...stylesPath, styles.length], style);
34
+ context.logger.info(`${projectName}: adicionado "${style}" ao array styles do angular.json.`);
35
+ }
36
+ }
37
+ //# sourceMappingURL=workspace-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-utils.js","sourceRoot":"","sources":["../../../projects/angular-components/schematics/utils/workspace-utils.ts"],"names":[],"mappings":";;AAaA,wDA0BC;AAtCD,qEAAiE;AAEjE,MAAM,gBAAgB,GAAG;IACrB,uCAAuC;IACvC,2CAA2C;IAC3C,0CAA0C;CAC7C,CAAC;AAEF;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,IAAU,EAAE,KAAa,EAAE,OAAyB;IACvF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAAE,OAAO;IAE1C,MAAM,IAAI,GAAG,IAAI,oBAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAwC,CAAC;IAC/E,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAuB,CAAC;QAE5D,IAAI,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QAE7E,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAkD,CAAC;QAErF,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CACrE,CAAC;QACF,IAAI,cAAc;YAAE,SAAS;QAE7B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,iBAAiB,KAAK,oCAAoC,CAAC,CAAC;IAClG,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const testing_1 = require("@angular-devkit/schematics/testing");
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ const workspace_utils_1 = require("./workspace-utils");
6
+ function makeContext() {
7
+ return { logger: { info: jasmine.createSpy('info'), warn: jasmine.createSpy('warn') } };
8
+ }
9
+ function makeTree(angularJson) {
10
+ const tree = new testing_1.UnitTestTree(schematics_1.Tree.empty());
11
+ tree.create('/angular.json', JSON.stringify(angularJson, null, 2));
12
+ return tree;
13
+ }
14
+ const STYLE = 'node_modules/@seniorsistemas/angular-components/styles.css';
15
+ const BASE_ANGULAR_JSON = {
16
+ projects: {
17
+ app: {
18
+ architect: {
19
+ build: {
20
+ builder: '@angular-devkit/build-angular:browser',
21
+ options: {
22
+ styles: ['src/styles.css'],
23
+ },
24
+ },
25
+ },
26
+ },
27
+ },
28
+ };
29
+ describe('ensureAngularJsonStyle', () => {
30
+ it('adiciona o style ao projeto com builder browser', () => {
31
+ const tree = makeTree(BASE_ANGULAR_JSON);
32
+ const ctx = makeContext();
33
+ (0, workspace_utils_1.ensureAngularJsonStyle)(tree, STYLE, ctx);
34
+ const result = JSON.parse(tree.readText('/angular.json'));
35
+ expect(result.projects.app.architect.build.options.styles).toContain(STYLE);
36
+ expect(ctx.logger.info).toHaveBeenCalled();
37
+ });
38
+ it('não duplica o style se já estiver presente (string)', () => {
39
+ const tree = makeTree({
40
+ ...BASE_ANGULAR_JSON,
41
+ projects: {
42
+ app: {
43
+ architect: {
44
+ build: {
45
+ builder: '@angular-devkit/build-angular:browser',
46
+ options: { styles: ['src/styles.css', STYLE] },
47
+ },
48
+ },
49
+ },
50
+ },
51
+ });
52
+ const ctx = makeContext();
53
+ (0, workspace_utils_1.ensureAngularJsonStyle)(tree, STYLE, ctx);
54
+ const result = JSON.parse(tree.readText('/angular.json'));
55
+ const count = result.projects.app.architect.build.options.styles.filter((s) => s === STYLE).length;
56
+ expect(count).toBe(1);
57
+ expect(ctx.logger.info).not.toHaveBeenCalled();
58
+ });
59
+ it('não duplica o style se já estiver presente como objeto { input }', () => {
60
+ const tree = makeTree({
61
+ ...BASE_ANGULAR_JSON,
62
+ projects: {
63
+ app: {
64
+ architect: {
65
+ build: {
66
+ builder: '@angular-devkit/build-angular:browser',
67
+ options: { styles: [{ input: STYLE, bundleName: 'styles' }] },
68
+ },
69
+ },
70
+ },
71
+ },
72
+ });
73
+ const ctx = makeContext();
74
+ (0, workspace_utils_1.ensureAngularJsonStyle)(tree, STYLE, ctx);
75
+ const result = JSON.parse(tree.readText('/angular.json'));
76
+ const styles = result.projects.app.architect.build.options.styles;
77
+ const count = styles.filter((s) => s === STYLE || (typeof s === 'object' && s.input === STYLE)).length;
78
+ expect(count).toBe(1);
79
+ });
80
+ it('não faz nada se angular.json não existir', () => {
81
+ const tree = new testing_1.UnitTestTree(schematics_1.Tree.empty());
82
+ const ctx = makeContext();
83
+ expect(() => (0, workspace_utils_1.ensureAngularJsonStyle)(tree, STYLE, ctx)).not.toThrow();
84
+ expect(ctx.logger.info).not.toHaveBeenCalled();
85
+ });
86
+ it('ignora projetos com builder não-browser (e2e, server, etc.)', () => {
87
+ const tree = makeTree({
88
+ projects: {
89
+ e2e: {
90
+ architect: {
91
+ build: {
92
+ builder: '@angular-devkit/build-angular:karma',
93
+ options: { styles: [] },
94
+ },
95
+ },
96
+ },
97
+ },
98
+ });
99
+ const ctx = makeContext();
100
+ (0, workspace_utils_1.ensureAngularJsonStyle)(tree, STYLE, ctx);
101
+ const result = JSON.parse(tree.readText('/angular.json'));
102
+ expect(result.projects.e2e.architect.build.options.styles).not.toContain(STYLE);
103
+ expect(ctx.logger.info).not.toHaveBeenCalled();
104
+ });
105
+ it('suporta builder @angular-devkit/build-angular:application', () => {
106
+ const tree = makeTree({
107
+ projects: {
108
+ app: {
109
+ architect: {
110
+ build: {
111
+ builder: '@angular-devkit/build-angular:application',
112
+ options: { styles: [] },
113
+ },
114
+ },
115
+ },
116
+ },
117
+ });
118
+ const ctx = makeContext();
119
+ (0, workspace_utils_1.ensureAngularJsonStyle)(tree, STYLE, ctx);
120
+ const result = JSON.parse(tree.readText('/angular.json'));
121
+ expect(result.projects.app.architect.build.options.styles).toContain(STYLE);
122
+ });
123
+ it('adiciona o style em todos os projetos browser do workspace', () => {
124
+ const tree = makeTree({
125
+ projects: {
126
+ app: {
127
+ architect: {
128
+ build: {
129
+ builder: '@angular-devkit/build-angular:browser',
130
+ options: { styles: [] },
131
+ },
132
+ },
133
+ },
134
+ admin: {
135
+ architect: {
136
+ build: {
137
+ builder: '@angular-devkit/build-angular:application',
138
+ options: { styles: ['src/admin.css'] },
139
+ },
140
+ },
141
+ },
142
+ },
143
+ });
144
+ const ctx = makeContext();
145
+ (0, workspace_utils_1.ensureAngularJsonStyle)(tree, STYLE, ctx);
146
+ const result = JSON.parse(tree.readText('/angular.json'));
147
+ expect(result.projects.app.architect.build.options.styles).toContain(STYLE);
148
+ expect(result.projects.admin.architect.build.options.styles).toContain(STYLE);
149
+ expect(ctx.logger.info).toHaveBeenCalledTimes(2);
150
+ });
151
+ });
152
+ //# sourceMappingURL=workspace-utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-utils.test.js","sourceRoot":"","sources":["../../../projects/angular-components/schematics/utils/workspace-utils.test.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,10 @@ import * as i0 from "@angular/core";
35
35
  *
36
36
  * Uso: `<p-datepicker sDatepickerNoPeriodTab ...>`
37
37
  *
38
+ * @deprecated Use `s-datepicker` (`<s-datepicker>`), o componente oficial do
39
+ * Design System da Senior, que implementa toda a acessibilidade necessária
40
+ * nativamente. Esta diretiva será removida na próxima major release.
41
+ *
38
42
  * @category Directives
39
43
  */
40
44
  export declare class DatepickerNoPeriodTabDirective implements OnDestroy {