@ihk-gfi/lux-components-update 13.3.0 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +2 -2
  2. package/package.json +10 -8
  3. package/src/add-lux-components/files/app/app-routing.module.ts +2 -0
  4. package/src/add-lux-components/files/app/app.component.html +7 -2
  5. package/src/add-lux-components/files/app/app.component.ts +9 -1
  6. package/src/add-lux-components/files/app/app.module.ts +6 -1
  7. package/src/add-lux-components/files/app/base/license-hint/license-hint.component.html +7 -0
  8. package/src/add-lux-components/files/app/base/license-hint/license-hint.component.ts +18 -0
  9. package/src/add-lux-components/files/app/home/home.component.scss +3 -0
  10. package/src/add-lux-components/files/assets/svg/Example.svg +6 -0
  11. package/src/add-lux-components/files/assets/svg/android.svg +2 -0
  12. package/src/add-lux-components/files/assets/svg/box.svg +690 -0
  13. package/src/add-lux-components/files/assets/svg/demoAppLogo.svg +1 -0
  14. package/src/add-lux-components/files/assets/svg/red_power_button.svg +67 -0
  15. package/src/add-lux-components/files/assets/svg/svg2009.svg +57457 -0
  16. package/src/add-lux-components/files/environments/environment.ts +2 -2
  17. package/src/add-lux-components/files/locale/messages.en.xlf +544 -373
  18. package/src/add-lux-components/files/locale/messages.xlf +517 -352
  19. package/src/add-lux-components/files/src/polyfills.ts +29 -39
  20. package/src/add-lux-components/index.d.ts +1 -1
  21. package/src/add-lux-components/index.js +47 -26
  22. package/src/add-lux-components/index.js.map +1 -1
  23. package/src/add-lux-components/index.ts +50 -31
  24. package/src/add-lux-components/index_spec.js +3 -3
  25. package/src/add-lux-components/index_spec.ts +1 -1
  26. package/src/collection.json +13 -19
  27. package/src/theme/change-theme-to-authentic/index.d.ts +4 -0
  28. package/src/theme/change-theme-to-authentic/index.js +129 -0
  29. package/src/theme/change-theme-to-authentic/index.js.map +1 -0
  30. package/src/theme/change-theme-to-authentic/index.ts +131 -0
  31. package/src/{updates/update130000 → theme/change-theme-to-authentic}/index_spec.d.ts +0 -0
  32. package/src/theme/change-theme-to-authentic/index_spec.js +300 -0
  33. package/src/theme/change-theme-to-authentic/index_spec.js.map +1 -0
  34. package/src/theme/change-theme-to-authentic/index_spec.ts +321 -0
  35. package/src/{updates/update130300 → theme/change-theme-to-authentic}/schema.json +3 -3
  36. package/src/theme/change-to-lux-icons/index.d.ts +2 -0
  37. package/src/theme/change-to-lux-icons/index.js +383 -0
  38. package/src/theme/change-to-lux-icons/index.js.map +1 -0
  39. package/src/theme/change-to-lux-icons/index.ts +392 -0
  40. package/src/{updates/update130100 → theme/change-to-lux-icons}/index_spec.d.ts +0 -0
  41. package/src/theme/change-to-lux-icons/index_spec.js +128 -0
  42. package/src/theme/change-to-lux-icons/index_spec.js.map +1 -0
  43. package/src/theme/change-to-lux-icons/index_spec.ts +130 -0
  44. package/src/{updates/update130200 → theme/change-to-lux-icons}/schema.json +3 -3
  45. package/src/update-dependencies/index.d.ts +0 -3
  46. package/src/update-dependencies/index.js +70 -115
  47. package/src/update-dependencies/index.js.map +1 -1
  48. package/src/update-dependencies/index.ts +75 -120
  49. package/src/update-en-messages/index.js +18 -15
  50. package/src/update-en-messages/index.js.map +1 -1
  51. package/src/update-en-messages/index.ts +22 -16
  52. package/src/updates/update140000/files/src/polyfills.ts +70 -0
  53. package/src/updates/update140000/index.d.ts +14 -0
  54. package/src/updates/update140000/index.js +95 -0
  55. package/src/updates/update140000/index.js.map +1 -0
  56. package/src/updates/update140000/index.ts +110 -0
  57. package/src/updates/{update130200 → update140000}/index_spec.d.ts +0 -0
  58. package/src/updates/update140000/index_spec.js +165 -0
  59. package/src/updates/update140000/index_spec.js.map +1 -0
  60. package/src/updates/update140000/index_spec.ts +171 -0
  61. package/src/updates/{update130000 → update140000}/schema.json +0 -0
  62. package/src/utility/files.d.ts +2 -2
  63. package/src/utility/files.js +5 -5
  64. package/src/utility/files.js.map +1 -1
  65. package/src/utility/files.ts +5 -5
  66. package/src/utility/html/hit.d.ts +21 -0
  67. package/src/utility/html/hit.js +27 -0
  68. package/src/utility/html/hit.js.map +1 -0
  69. package/src/utility/html/hit.ts +28 -0
  70. package/src/utility/html/html-manipulator.d.ts +71 -0
  71. package/src/utility/html/html-manipulator.js +136 -0
  72. package/src/utility/html/html-manipulator.js.map +1 -0
  73. package/src/utility/html/html-manipulator.ts +156 -0
  74. package/src/utility/{html_spec.d.ts → html/html_spec.d.ts} +0 -0
  75. package/src/utility/{html_spec.js → html/html_spec.js} +232 -100
  76. package/src/utility/html/html_spec.js.map +1 -0
  77. package/src/utility/{html_spec.ts → html/html_spec.ts} +282 -106
  78. package/src/utility/html/manipulator-functions.d.ts +99 -0
  79. package/src/utility/html/manipulator-functions.js +147 -0
  80. package/src/utility/html/manipulator-functions.js.map +1 -0
  81. package/src/utility/html/manipulator-functions.ts +149 -0
  82. package/src/utility/json.d.ts +2 -2
  83. package/src/utility/json.js +16 -7
  84. package/src/utility/json.js.map +1 -1
  85. package/src/utility/json.ts +46 -26
  86. package/src/utility/json_spec.js +18 -18
  87. package/src/utility/json_spec.js.map +1 -1
  88. package/src/utility/json_spec.ts +136 -66
  89. package/src/utility/typescript.d.ts +3 -3
  90. package/src/utility/typescript.js +2 -2
  91. package/src/utility/typescript.js.map +1 -1
  92. package/src/utility/typescript.ts +3 -3
  93. package/src/utility/typescript_spec.js +0 -1
  94. package/src/utility/typescript_spec.js.map +1 -1
  95. package/src/utility/typescript_spec.ts +0 -2
  96. package/src/utility/util.d.ts +7 -6
  97. package/src/utility/util.js +12 -8
  98. package/src/utility/util.js.map +1 -1
  99. package/src/utility/util.ts +13 -10
  100. package/src/utility/validation.d.ts +2 -3
  101. package/src/utility/validation.js +2 -3
  102. package/src/utility/validation.js.map +1 -1
  103. package/src/utility/validation.ts +2 -3
  104. package/tsconfig.json +5 -7
  105. package/src/add-lux-components/files/scripts/.browserslistrc +0 -20
  106. package/src/updates/update130000/files/root/.browserslistrc +0 -20
  107. package/src/updates/update130000/index.d.ts +0 -27
  108. package/src/updates/update130000/index.js +0 -310
  109. package/src/updates/update130000/index.js.map +0 -1
  110. package/src/updates/update130000/index.ts +0 -362
  111. package/src/updates/update130000/index_spec.js +0 -584
  112. package/src/updates/update130000/index_spec.js.map +0 -1
  113. package/src/updates/update130000/index_spec.ts +0 -675
  114. package/src/updates/update130100/index.d.ts +0 -2
  115. package/src/updates/update130100/index.js +0 -27
  116. package/src/updates/update130100/index.js.map +0 -1
  117. package/src/updates/update130100/index.ts +0 -27
  118. package/src/updates/update130100/index_spec.js +0 -65
  119. package/src/updates/update130100/index_spec.js.map +0 -1
  120. package/src/updates/update130100/index_spec.ts +0 -69
  121. package/src/updates/update130100/schema.json +0 -23
  122. package/src/updates/update130200/index.d.ts +0 -2
  123. package/src/updates/update130200/index.js +0 -43
  124. package/src/updates/update130200/index.js.map +0 -1
  125. package/src/updates/update130200/index.ts +0 -41
  126. package/src/updates/update130200/index_spec.js +0 -106
  127. package/src/updates/update130200/index_spec.js.map +0 -1
  128. package/src/updates/update130200/index_spec.ts +0 -110
  129. package/src/updates/update130300/index.d.ts +0 -2
  130. package/src/updates/update130300/index.js +0 -35
  131. package/src/updates/update130300/index.js.map +0 -1
  132. package/src/updates/update130300/index.ts +0 -32
  133. package/src/updates/update130300/index_spec.d.ts +0 -1
  134. package/src/updates/update130300/index_spec.js +0 -85
  135. package/src/updates/update130300/index_spec.js.map +0 -1
  136. package/src/updates/update130300/index_spec.ts +0 -89
  137. package/src/utility/html.d.ts +0 -49
  138. package/src/utility/html.js +0 -246
  139. package/src/utility/html.js.map +0 -1
  140. package/src/utility/html.ts +0 -288
  141. package/src/utility/html_spec.js.map +0 -1
@@ -0,0 +1,171 @@
1
+ import { callRule, SchematicContext } from '@angular-devkit/schematics';
2
+ import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing';
3
+ import { findNodeAtLocation, getNodeValue } from 'jsonc-parser';
4
+ import * as path from 'path';
5
+ import { of as observableOf } from 'rxjs';
6
+ import { readJson } from '../../utility/json';
7
+ import { appOptions, workspaceOptions } from '../../utility/test';
8
+ import { UtilConfig } from '../../utility/util';
9
+ import { addIconAssets, iconAssetBlock, renameLuxSelectedFiles } from './index';
10
+
11
+ describe('update140000', () => {
12
+ let appTree: UnitTestTree;
13
+ let runner: SchematicTestRunner;
14
+ let context: SchematicContext;
15
+
16
+ const testOptions: { project: string; path: string; verbose: boolean } = {
17
+ project: '',
18
+ path: '/',
19
+ verbose: false
20
+ };
21
+
22
+ beforeEach(async () => {
23
+ const collectionPath = path.join(__dirname, '../../collection.json');
24
+ runner = new SchematicTestRunner('schematics', collectionPath);
25
+
26
+ const collection = '@schematics/angular';
27
+ appTree = await runner.runExternalSchematicAsync(collection, 'workspace', workspaceOptions).toPromise();
28
+ appTree = await runner.runExternalSchematicAsync(collection, 'application', appOptions, appTree).toPromise();
29
+
30
+ context = runner.engine.createContext(
31
+ runner.engine.createSchematic('update', runner.engine.createCollection(collectionPath))
32
+ );
33
+
34
+ UtilConfig.defaultWaitMS = 0;
35
+
36
+ testOptions.project = appOptions.name;
37
+ testOptions.path = workspaceOptions.newProjectRoot + '/' + appOptions.name;
38
+ testOptions.verbose = true;
39
+ });
40
+
41
+ describe('[Rule] addIconAssets', () => {
42
+ it('Sollte den LUX-Iconpfad in den Assets-Abschnitten ergänzen', (done) => {
43
+ const filePath = './angular.json';
44
+ appTree.overwrite(filePath, angularJsonIconAssets);
45
+
46
+ callRule(addIconAssets(testOptions), observableOf(appTree), context).subscribe({
47
+ next: (success) => {
48
+ const assetPath = ['projects', testOptions.project, 'architect', 'build', 'options', 'assets'];
49
+ const node = findNodeAtLocation(readJson(success, filePath), assetPath);
50
+ expect(node).toBeDefined();
51
+ expect(node?.children?.length).toBe(3);
52
+ expect(JSON.stringify(getNodeValue(node!.children![2]))).toBe(JSON.stringify(iconAssetBlock));
53
+
54
+ const testAssetPath = ['projects', testOptions.project, 'architect', 'test', 'options', 'assets'];
55
+ const testNode = findNodeAtLocation(readJson(success, filePath), testAssetPath);
56
+ expect(testNode).toBeDefined();
57
+ expect(testNode?.children?.length).toBe(3);
58
+ expect(JSON.stringify(getNodeValue(testNode!.children![2]))).toBe(JSON.stringify(iconAssetBlock));
59
+
60
+ done();
61
+ },
62
+ error: (reason) => expect(reason).toBeUndefined()
63
+ });
64
+ });
65
+ });
66
+
67
+ describe('[Rule] renameLuxSelectedFiles', () => {
68
+ it('Sollte das Attribut "luxSelectedFiles" in "luxSelected" umbenennen', (done) => {
69
+ const filePath = testOptions.path + '/renameLuxSelectedFiles/Test.component.html';
70
+ appTree.create(filePath, renameLuxSelectedFilesContent);
71
+
72
+ callRule(renameLuxSelectedFiles(testOptions), observableOf(appTree), context).subscribe({
73
+ next: (success) => {
74
+ const content = success.read(filePath)?.toString();
75
+
76
+ expect(content).toContain('<lux-file-input luxSelected="selected" (luxSelectedChange)="onSelected()"></lux-file-input>');
77
+ expect(content).toContain('<lux-file-input [luxSelected]="selected" (luxSelectedChange)="onSelected()"></lux-file-input>');
78
+ expect(content).toContain('<lux-file-input [(luxSelected)]="selected"></lux-file-input>');
79
+
80
+ expect(content).toContain('<lux-file-list luxSelected="selected" (luxSelectedChange)="onSelected()"></lux-file-list>');
81
+ expect(content).toContain('<lux-file-list [luxSelected]="selected" (luxSelectedChange)="onSelected()"></lux-file-list>');
82
+ expect(content).toContain('<lux-file-list [(luxSelected)]="selected"></lux-file-list>');
83
+
84
+ expect(content).toContain('<lux-file-upload luxSelected="selected" (luxSelectedChange)="onSelected()"></lux-file-upload>');
85
+ expect(content).toContain('<lux-file-upload [luxSelected]="selected" (luxSelectedChange)="onSelected()"></lux-file-upload>');
86
+ expect(content).toContain('<lux-file-upload [(luxSelected)]="selected"></lux-file-upload>');
87
+ done();
88
+ },
89
+ error: (reason) => expect(reason).toBeUndefined()
90
+ });
91
+ });
92
+ });
93
+ });
94
+
95
+ const renameLuxSelectedFilesContent = `
96
+ <lux-file-input luxSelectedFiles="selected" (luxSelectedFilesChange)="onSelected()"></lux-file-input>
97
+ <lux-file-input [luxSelectedFiles]="selected" (luxSelectedFilesChange)="onSelected()"></lux-file-input>
98
+ <lux-file-input [(luxSelectedFiles)]="selected"></lux-file-input>
99
+
100
+ <lux-file-list luxSelectedFiles="selected" (luxSelectedFilesChange)="onSelected()"></lux-file-list>
101
+ <lux-file-list [luxSelectedFiles]="selected" (luxSelectedFilesChange)="onSelected()"></lux-file-list>
102
+ <lux-file-list [(luxSelectedFiles)]="selected"></lux-file-list>
103
+
104
+ <lux-file-upload luxSelectedFiles="selected" (luxSelectedFilesChange)="onSelected()"></lux-file-upload>
105
+ <lux-file-upload [luxSelectedFiles]="selected" (luxSelectedFilesChange)="onSelected()"></lux-file-upload>
106
+ <lux-file-upload [(luxSelectedFiles)]="selected"></lux-file-upload>
107
+ `;
108
+
109
+ const angularJsonIconAssets = `
110
+ {
111
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
112
+ "version": 1,
113
+ "newProjectRoot": "projects",
114
+ "projects": {
115
+ "bar": {
116
+ "root": "",
117
+ "sourceRoot": "src",
118
+ "projectType": "application",
119
+ "i18n": {
120
+ "sourceLocale": {
121
+ "code": "de",
122
+ "baseHref": "/"
123
+ },
124
+ "locales": {
125
+ "en": "src/locale/messages.en.xlf"
126
+ }
127
+ },
128
+ "architect": {
129
+ "build": {
130
+ "builder": "ngx-build-plus:browser",
131
+ "options": {
132
+ "outputPath": "dist",
133
+ "index": "src/index.html",
134
+ "main": "src/main.ts",
135
+ "tsConfig": "src/tsconfig.app.json",
136
+ "polyfills": "src/polyfills.ts",
137
+ "localize": [
138
+ "de"
139
+ ],
140
+ "i18nMissingTranslation": "error",
141
+ "assets": [
142
+ "src/assets",
143
+ "src/favicon.ico"
144
+ ],
145
+ "styles": [
146
+ "src/styles.scss"
147
+ ]
148
+ },
149
+ },
150
+ "test": {
151
+ "builder": "ngx-build-plus:karma",
152
+ "options": {
153
+ "main": "src/test.ts",
154
+ "karmaConfig": "./karma.conf.js",
155
+ "polyfills": "src/polyfills.ts",
156
+ "tsConfig": "src/tsconfig.spec.json",
157
+ "scripts": [],
158
+ "styles": [
159
+ "src/styles.scss"
160
+ ],
161
+ "assets": [
162
+ "src/assets",
163
+ "src/favicon.ico"
164
+ ]
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ }
171
+ `;
@@ -8,7 +8,7 @@ import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
8
8
  * @param filePath
9
9
  * @param searchString
10
10
  */
11
- export declare function deleteLineFromFile(tree: Tree, context: SchematicContext, filePath: string, searchString: string, withLog?: boolean): boolean;
11
+ export declare function deleteLineFromFile(tree: Tree, _context: SchematicContext, filePath: string, searchString: string, withLog?: boolean): boolean;
12
12
  /**
13
13
  * Schreibt die übergebenen Zeilen in die Datei.
14
14
  * Wenn die Datei existiert, wird der neue Inhalt am Ende der Datei angehangen.
@@ -18,7 +18,7 @@ export declare function deleteLineFromFile(tree: Tree, context: SchematicContext
18
18
  * @param filePath
19
19
  * @param lines
20
20
  */
21
- export declare function writeLinesToFile(tree: Tree, context: SchematicContext, filePath: string, ...lines: string[]): void;
21
+ export declare function writeLinesToFile(tree: Tree, _context: SchematicContext, filePath: string, ...lines: string[]): void;
22
22
  /**
23
23
  * Iteriert über alle Dateien vom Root-Pfad aus.
24
24
  * Über die filePathEndings lassen sich Einschränkungen bzgl. des Datei-Typs festlegen (z.B. .html).
@@ -12,7 +12,7 @@ const logging_1 = require("./logging");
12
12
  * @param filePath
13
13
  * @param searchString
14
14
  */
15
- function deleteLineFromFile(tree, context, filePath, searchString, withLog = true) {
15
+ function deleteLineFromFile(tree, _context, filePath, searchString, withLog = true) {
16
16
  let changed = false;
17
17
  const fileContent = tree.read(filePath);
18
18
  if (fileContent) {
@@ -79,7 +79,7 @@ exports.deleteLineFromFile = deleteLineFromFile;
79
79
  * @param filePath
80
80
  * @param lines
81
81
  */
82
- function writeLinesToFile(tree, context, filePath, ...lines) {
82
+ function writeLinesToFile(tree, _context, filePath, ...lines) {
83
83
  const fileContent = tree.read(filePath);
84
84
  let content = '';
85
85
  lines.forEach((line) => {
@@ -150,7 +150,7 @@ exports.iterateFilesAndModifyContent = iterateFilesAndModifyContent;
150
150
  * @param targetPath Ein Zielpfad (z.B. src/theming/).
151
151
  */
152
152
  function moveFilesToDirectory(options, sourcePath, targetPath) {
153
- return (tree, context) => {
153
+ return (tree, _context) => {
154
154
  if (!targetPath.startsWith('/')) {
155
155
  targetPath = '/' + targetPath;
156
156
  }
@@ -186,7 +186,7 @@ exports.moveFilesToDirectory = moveFilesToDirectory;
186
186
  * @param exclude Ein Array mit Dateinamen, die nicht gelöscht werden sollen.
187
187
  */
188
188
  function deleteFilesInDirectory(options, path, exclude) {
189
- return (tree, context) => {
189
+ return (tree, _context) => {
190
190
  if (!path.startsWith('/')) {
191
191
  path = '/' + path;
192
192
  }
@@ -290,7 +290,7 @@ exports.findModule = findModule;
290
290
  * @param targetPath
291
291
  */
292
292
  function deleteFile(options, targetPath) {
293
- return (tree, context) => {
293
+ return (tree, _context) => {
294
294
  (0, logging_1.logInfoWithDescriptor)('Lösche Datei ' + targetPath + '.');
295
295
  if (!targetPath.startsWith('/')) {
296
296
  targetPath = '/' + targetPath;
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["files.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ import { logInfo, logInfoWithDescriptor, logSuccess } from './logging';
21
21
  * @param filePath
22
22
  * @param searchString
23
23
  */
24
- export function deleteLineFromFile(tree: Tree, context: SchematicContext, filePath: string, searchString: string, withLog = true) {
24
+ export function deleteLineFromFile(tree: Tree, _context: SchematicContext, filePath: string, searchString: string, withLog = true) {
25
25
  let changed = false;
26
26
 
27
27
  const fileContent: Buffer | null = tree.read(filePath);
@@ -94,7 +94,7 @@ export function deleteLineFromFile(tree: Tree, context: SchematicContext, filePa
94
94
  * @param filePath
95
95
  * @param lines
96
96
  */
97
- export function writeLinesToFile(tree: Tree, context: SchematicContext, filePath: string, ...lines: string[]) {
97
+ export function writeLinesToFile(tree: Tree, _context: SchematicContext, filePath: string, ...lines: string[]) {
98
98
  const fileContent: Buffer | null = tree.read(filePath);
99
99
  let content: string = '';
100
100
 
@@ -175,7 +175,7 @@ export function iterateFilesAndModifyContent(
175
175
  * @param targetPath Ein Zielpfad (z.B. src/theming/).
176
176
  */
177
177
  export function moveFilesToDirectory(options: any, sourcePath: string, targetPath: string): Rule {
178
- return (tree: Tree, context: SchematicContext) => {
178
+ return (tree: Tree, _context: SchematicContext) => {
179
179
  if (!targetPath.startsWith('/')) {
180
180
  targetPath = '/' + targetPath;
181
181
  }
@@ -217,7 +217,7 @@ export function moveFilesToDirectory(options: any, sourcePath: string, targetPat
217
217
  * @param exclude Ein Array mit Dateinamen, die nicht gelöscht werden sollen.
218
218
  */
219
219
  export function deleteFilesInDirectory(options: any, path: string, exclude: string[]): Rule {
220
- return (tree: Tree, context: SchematicContext) => {
220
+ return (tree: Tree, _context: SchematicContext) => {
221
221
  if (!path.startsWith('/')) {
222
222
  path = '/' + path;
223
223
  }
@@ -349,7 +349,7 @@ export function findModule(
349
349
  * @param targetPath
350
350
  */
351
351
  export function deleteFile(options: any, targetPath: string): Rule {
352
- return (tree: Tree, context: SchematicContext) => {
352
+ return (tree: Tree, _context: SchematicContext) => {
353
353
  logInfoWithDescriptor('Lösche Datei ' + targetPath + '.');
354
354
  if (!targetPath.startsWith('/')) {
355
355
  targetPath = '/' + targetPath;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Die {@link Hit}-Klasse repräsentiert einen Treffer, der Anhand des verwendeten Selektors gefunden wurde.
3
+ */
4
+ export declare class Hit {
5
+ placeholder: string;
6
+ selector: string;
7
+ row: number;
8
+ elementContent: string;
9
+ element: Element;
10
+ /**
11
+ * Der Konstruktor der {@link Hit}-Klasse.
12
+ *
13
+ * @param placeholder Der Platzhalter des Treffers. Im Nachgang wird der {@link HtmlManipulator} den Platzhalter des Treffers
14
+ * in der HTML-Ausgabe durch den transformierten HTML-Inhalt ersetzen.
15
+ * @param selector Der CSS-Selektor.
16
+ * @param elementContent Der HTML-Inhalt des Elements und NICHT des gesamten HTML-Templates.
17
+ * @param element Das {@link Element}.
18
+ * @param row Die Startzeile im HTML-Template.
19
+ */
20
+ constructor(placeholder: string, selector: string, elementContent: string, element: Element, row: number);
21
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hit = void 0;
4
+ /**
5
+ * Die {@link Hit}-Klasse repräsentiert einen Treffer, der Anhand des verwendeten Selektors gefunden wurde.
6
+ */
7
+ class Hit {
8
+ /**
9
+ * Der Konstruktor der {@link Hit}-Klasse.
10
+ *
11
+ * @param placeholder Der Platzhalter des Treffers. Im Nachgang wird der {@link HtmlManipulator} den Platzhalter des Treffers
12
+ * in der HTML-Ausgabe durch den transformierten HTML-Inhalt ersetzen.
13
+ * @param selector Der CSS-Selektor.
14
+ * @param elementContent Der HTML-Inhalt des Elements und NICHT des gesamten HTML-Templates.
15
+ * @param element Das {@link Element}.
16
+ * @param row Die Startzeile im HTML-Template.
17
+ */
18
+ constructor(placeholder, selector, elementContent, element, row) {
19
+ this.placeholder = placeholder;
20
+ this.elementContent = elementContent;
21
+ this.row = row;
22
+ this.selector = selector;
23
+ this.element = element;
24
+ }
25
+ }
26
+ exports.Hit = Hit;
27
+ //# sourceMappingURL=hit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hit.js","sourceRoot":"","sources":["hit.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,GAAG;IAOd;;;;;;;;;OASG;IACH,YAAY,WAAmB,EAAE,QAAgB,EAAE,cAAsB,EAAE,OAAgB,EAAE,GAAW;QACtG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAxBD,kBAwBC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Die {@link Hit}-Klasse repräsentiert einen Treffer, der Anhand des verwendeten Selektors gefunden wurde.
3
+ */
4
+ export class Hit {
5
+ placeholder: string;
6
+ selector: string;
7
+ row: number;
8
+ elementContent: string;
9
+ element: Element;
10
+
11
+ /**
12
+ * Der Konstruktor der {@link Hit}-Klasse.
13
+ *
14
+ * @param placeholder Der Platzhalter des Treffers. Im Nachgang wird der {@link HtmlManipulator} den Platzhalter des Treffers
15
+ * in der HTML-Ausgabe durch den transformierten HTML-Inhalt ersetzen.
16
+ * @param selector Der CSS-Selektor.
17
+ * @param elementContent Der HTML-Inhalt des Elements und NICHT des gesamten HTML-Templates.
18
+ * @param element Das {@link Element}.
19
+ * @param row Die Startzeile im HTML-Template.
20
+ */
21
+ constructor(placeholder: string, selector: string, elementContent: string, element: Element, row: number) {
22
+ this.placeholder = placeholder;
23
+ this.elementContent = elementContent;
24
+ this.row = row;
25
+ this.selector = selector;
26
+ this.element = element;
27
+ }
28
+ }
@@ -0,0 +1,71 @@
1
+ import { ManipulatorFn } from './manipulator-functions';
2
+ export declare const ATTR_NOT_PROCESSED = "data-lux-not-processed";
3
+ export declare const PLACEHOLDER = "@@@element@@@";
4
+ /**
5
+ * Der {@link HtmlManipulator} ist für die Manipulation der HTML-Templates zuständig.
6
+ *
7
+ * Warum verwendet der {@link HtmlManipulator} eigene Funktionen, um den HTML-Inhalt anzupassen,
8
+ * anstatt die bereitgestellten Methoden von JSDOm (serialize()) bzw. Cheerio (xml() oder html() zu verwenden?
9
+ *
10
+ * Die serialize-Methode von JSDOM wandelt alle Attribute in Kleinschrift um, sodass die Angular-Attribute nicht mehr
11
+ * funktionieren. Cheerio kann konfiguriert werden, sodass die Camel-Case-Namen erhalten bleiben,
12
+ * aber dort werden z.B. die leeren Ent-Tags ersetzt. Zusätzlich bricht Cheerio manchmal in komplexeren Templates an Stellen um,
13
+ * sodass das Template im Anschluss nicht mehr kompiliert.
14
+ *
15
+ * @example JSDOM
16
+ * Input: <lux-input luxLabel="Lorem ipsum"></lux-input>
17
+ * Output: <lux-input luxlabel="Lorem ipsum"></lux-input>
18
+ *
19
+ * @example Cheerio
20
+ * Input: <lux-input></lux-input>
21
+ * Output: <lux-input/>
22
+ */
23
+ export declare class HtmlManipulator {
24
+ private htmlContent;
25
+ private readonly selector;
26
+ private readonly manipulatorFNs;
27
+ private constructor();
28
+ /**
29
+ * Diese Methode ermittelt alle betroffenen HTML-Elemente anhand des übergebenen Selektors und versieht diese mit dem temporären
30
+ * {@link ATTR_NOT_PROCESSED}-Attribut.
31
+ *
32
+ * @example Selektor - lux-card
33
+ * <div>
34
+ * <lux-card luxTitle="Test">
35
+ * <lux-card-content>
36
+ * <p>Lorem ipsum</p>
37
+ * </lux-card-content>
38
+ * </lux-card>
39
+ * </div>
40
+ *
41
+ * <div>
42
+ * <lux-card data-lux-not-processed luxTitle="Test">
43
+ * <lux-card-content>
44
+ * <p>Lorem ipsum</p>
45
+ * </lux-card-content>
46
+ * </lux-card>
47
+ * </div>
48
+ *
49
+ * @param htmlContent Der HTML-Inhalt.
50
+ * @param selector Der CSS-Selektor.
51
+ */
52
+ static prepare(htmlContent: string, selector: string): string;
53
+ /**
54
+ * Diese Methode transformiert den übergebenen HTML-Inhalt mit den Manipulator-Funktionen.
55
+ *
56
+ * @param htmlContent Der HTML-Inhalt.
57
+ * @param selector Der CSS-Selektor.
58
+ * @param manipulatorFns Die Funktionen manipulieren den HTML-Inhalt.
59
+ */
60
+ static transform(htmlContent: string, selector: string, ...manipulatorFns: ManipulatorFn[]): string;
61
+ /**
62
+ * Diese Methode liefert die Anzahl der mit dem Selektor gefundenen Elemente zurück.
63
+ *
64
+ * @param htmlContent Der HTML-Inhalt.
65
+ * @param selector Der CSS-Selektor.
66
+ */
67
+ static count(htmlContent: string, selector: string): number;
68
+ private do;
69
+ private next;
70
+ private static addUnprocessedAttr;
71
+ }
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HtmlManipulator = exports.PLACEHOLDER = exports.ATTR_NOT_PROCESSED = void 0;
4
+ const jsdom_1 = require("jsdom");
5
+ const util_1 = require("../util");
6
+ const hit_1 = require("./hit");
7
+ exports.ATTR_NOT_PROCESSED = 'data-lux-not-processed';
8
+ exports.PLACEHOLDER = `@@@element@@@`;
9
+ /**
10
+ * Der {@link HtmlManipulator} ist für die Manipulation der HTML-Templates zuständig.
11
+ *
12
+ * Warum verwendet der {@link HtmlManipulator} eigene Funktionen, um den HTML-Inhalt anzupassen,
13
+ * anstatt die bereitgestellten Methoden von JSDOm (serialize()) bzw. Cheerio (xml() oder html() zu verwenden?
14
+ *
15
+ * Die serialize-Methode von JSDOM wandelt alle Attribute in Kleinschrift um, sodass die Angular-Attribute nicht mehr
16
+ * funktionieren. Cheerio kann konfiguriert werden, sodass die Camel-Case-Namen erhalten bleiben,
17
+ * aber dort werden z.B. die leeren Ent-Tags ersetzt. Zusätzlich bricht Cheerio manchmal in komplexeren Templates an Stellen um,
18
+ * sodass das Template im Anschluss nicht mehr kompiliert.
19
+ *
20
+ * @example JSDOM
21
+ * Input: <lux-input luxLabel="Lorem ipsum"></lux-input>
22
+ * Output: <lux-input luxlabel="Lorem ipsum"></lux-input>
23
+ *
24
+ * @example Cheerio
25
+ * Input: <lux-input></lux-input>
26
+ * Output: <lux-input/>
27
+ */
28
+ class HtmlManipulator {
29
+ constructor(htmlContent, selector, manipulatorFns) {
30
+ this.htmlContent = htmlContent;
31
+ this.selector = selector;
32
+ this.manipulatorFNs = manipulatorFns !== null && manipulatorFns !== void 0 ? manipulatorFns : [];
33
+ }
34
+ /**
35
+ * Diese Methode ermittelt alle betroffenen HTML-Elemente anhand des übergebenen Selektors und versieht diese mit dem temporären
36
+ * {@link ATTR_NOT_PROCESSED}-Attribut.
37
+ *
38
+ * @example Selektor - lux-card
39
+ * <div>
40
+ * <lux-card luxTitle="Test">
41
+ * <lux-card-content>
42
+ * <p>Lorem ipsum</p>
43
+ * </lux-card-content>
44
+ * </lux-card>
45
+ * </div>
46
+ *
47
+ * <div>
48
+ * <lux-card data-lux-not-processed luxTitle="Test">
49
+ * <lux-card-content>
50
+ * <p>Lorem ipsum</p>
51
+ * </lux-card-content>
52
+ * </lux-card>
53
+ * </div>
54
+ *
55
+ * @param htmlContent Der HTML-Inhalt.
56
+ * @param selector Der CSS-Selektor.
57
+ */
58
+ static prepare(htmlContent, selector) {
59
+ const dom = new jsdom_1.JSDOM(htmlContent, { includeNodeLocations: true });
60
+ const elements = dom.window.document.querySelectorAll(selector);
61
+ let counter = 0;
62
+ elements.forEach((el) => {
63
+ var _a, _b;
64
+ const location = dom.nodeLocation(el);
65
+ const startIndex = (_a = location === null || location === void 0 ? void 0 : location.startOffset) !== null && _a !== void 0 ? _a : -1;
66
+ const endIndex = (_b = location === null || location === void 0 ? void 0 : location.endOffset) !== null && _b !== void 0 ? _b : -1;
67
+ htmlContent = this.addUnprocessedAttr(htmlContent, el.tagName, startIndex, endIndex, counter++);
68
+ });
69
+ return htmlContent;
70
+ }
71
+ /**
72
+ * Diese Methode transformiert den übergebenen HTML-Inhalt mit den Manipulator-Funktionen.
73
+ *
74
+ * @param htmlContent Der HTML-Inhalt.
75
+ * @param selector Der CSS-Selektor.
76
+ * @param manipulatorFns Die Funktionen manipulieren den HTML-Inhalt.
77
+ */
78
+ static transform(htmlContent, selector, ...manipulatorFns) {
79
+ return new HtmlManipulator(htmlContent, selector, manipulatorFns).do();
80
+ }
81
+ /**
82
+ * Diese Methode liefert die Anzahl der mit dem Selektor gefundenen Elemente zurück.
83
+ *
84
+ * @param htmlContent Der HTML-Inhalt.
85
+ * @param selector Der CSS-Selektor.
86
+ */
87
+ static count(htmlContent, selector) {
88
+ return new jsdom_1.JSDOM(htmlContent, { includeNodeLocations: false }).window.document.querySelectorAll(selector).length;
89
+ }
90
+ do() {
91
+ this.htmlContent = HtmlManipulator.prepare(this.htmlContent, this.selector);
92
+ // Hier wird der erste Treffer gesetzt. Zusätzlich wird im Ergebnis-HTML anstelle des Elements ein Platzhalter eingesetzt.
93
+ // Dieser Platzhalter wird im Nachgang wieder durch das manipulierte HTML des Elements ersetzt.
94
+ let hit = this.next();
95
+ while (hit) {
96
+ // Hier wird der HTML-Inhalt des Elements über die Manipulator-Funktionen angepasst.
97
+ this.manipulatorFNs.forEach((fn) => fn(hit));
98
+ // Jetzt muss das unprocessed-Attribut, das in der prepare-Methode gesetzt wurde, wieder entfernt werden.
99
+ const updatedHtml = (0, util_1.replaceFirst)(hit.elementContent, ' ' + exports.ATTR_NOT_PROCESSED, '');
100
+ // Zum Schluss muss der veränderte HTML-Inhalt des Elements wieder an die Stelle des Platzhalters im Ergebnis-HTML eingesetzt werden.
101
+ // Der Platzhalter im Ergebnis wird durch die next-Methode gesetzt.
102
+ this.htmlContent = this.htmlContent.replace(hit.placeholder, updatedHtml);
103
+ // Hier wird der nächste Treffer gesetzt.
104
+ // Details siehe den next()-Aufruf weiter oben.
105
+ hit = this.next();
106
+ }
107
+ return this.htmlContent;
108
+ }
109
+ next() {
110
+ const dom = new jsdom_1.JSDOM(this.htmlContent, { includeNodeLocations: true });
111
+ const element = dom.window.document.querySelector(`*[${exports.ATTR_NOT_PROCESSED}]`);
112
+ if (element) {
113
+ const location = dom.nodeLocation(element);
114
+ if (location && location.startOffset >= 0 && location.endOffset >= 0) {
115
+ const start = location.startOffset;
116
+ const end = location.endOffset;
117
+ // Der Hit auf denen die Manipulator-Funktionen arbeiten, bekommen nur den HTML-Inhalt des Elements und
118
+ // nicht den gesamten Inhalt.
119
+ const hitContent = this.htmlContent.slice(start, end);
120
+ // Für das HTML des Elements wird der Platzhalter eingesetzt.
121
+ this.htmlContent = this.htmlContent.slice(0, start) + exports.PLACEHOLDER + this.htmlContent.slice(end, this.htmlContent.length);
122
+ return new hit_1.Hit(exports.PLACEHOLDER, this.selector, hitContent, element, location.startLine);
123
+ }
124
+ }
125
+ return null;
126
+ }
127
+ static addUnprocessedAttr(htmlContent, tagName, startIndex, endIndex, counter) {
128
+ if (startIndex >= 0 && endIndex >= 0) {
129
+ const position = startIndex + (tagName.length + 1) + counter * (exports.ATTR_NOT_PROCESSED.length + 1); /* +1 für die Leerzeichen */
130
+ htmlContent = [htmlContent.slice(0, position), ' ' + exports.ATTR_NOT_PROCESSED, htmlContent.slice(position)].join('');
131
+ }
132
+ return htmlContent;
133
+ }
134
+ }
135
+ exports.HtmlManipulator = HtmlManipulator;
136
+ //# sourceMappingURL=html-manipulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-manipulator.js","sourceRoot":"","sources":["html-manipulator.ts"],"names":[],"mappings":"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"}