@eui/tools 6.12.64 → 6.13.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 (83) hide show
  1. package/.version.properties +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/package.json +1 -1
  4. package/scripts/app/public/package-init.js +3 -2
  5. package/scripts/csdr/cli/constants.js +4 -0
  6. package/scripts/csdr/cli/package-build-frontend.js +10 -0
  7. package/scripts/csdr/cli/package.js +4 -0
  8. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/.eslintrc.json +43 -0
  9. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/assets/i18n/en.json +6 -0
  10. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/assets/i18n/fr.json +6 -0
  11. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/dependencies-base.json +2 -0
  12. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/dependencies-composite.json +4 -0
  13. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/gitignore_TO_REPLACE +46 -0
  14. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/karma.conf.js +7 -0
  15. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/ng-package.json +7 -0
  16. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/package.json +4 -0
  17. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/dummy.spec.ts.TO_REPLACE +5 -0
  18. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/index.ts +2 -0
  19. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/lib/components/main.component.html +42 -0
  20. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/lib/components/main.component.ts +8 -0
  21. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/lib/constants.ts +1 -0
  22. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/lib/containers/container.component.ts +28 -0
  23. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/lib/module.ts +80 -0
  24. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/lib/routing-module.ts +23 -0
  25. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/src/test.ts.TO_REPLACE +21 -0
  26. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/tsconfig.lib.json +33 -0
  27. package/scripts/csdr/cli/skeletons/package/frontend/17.x/default/tsconfig.spec.json +17 -0
  28. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/.eslintrc.json +43 -0
  29. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/assets/i18n/en.json +6 -0
  30. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/assets/i18n/fr.json +6 -0
  31. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/dependencies-base.json +2 -0
  32. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/dependencies-composite.json +4 -0
  33. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/gitignore_TO_REPLACE +46 -0
  34. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/karma.conf.js +7 -0
  35. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/ng-package.json +7 -0
  36. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/package.json +4 -0
  37. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/src/dummy.spec.ts.TO_REPLACE +5 -0
  38. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/src/index.ts +2 -0
  39. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/src/lib/components/participant/participant.component.html +1 -0
  40. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/src/lib/components/participant/participant.component.ts +19 -0
  41. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/src/lib/module.ts +24 -0
  42. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/src/test.ts.TO_REPLACE +21 -0
  43. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/tsconfig.lib.json +33 -0
  44. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-default/tsconfig.spec.json +17 -0
  45. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/.eslintrc.json +79 -0
  46. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/assets/i18n/en.json +6 -0
  47. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/assets/i18n/fr.json +6 -0
  48. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/dependencies-base.json +2 -0
  49. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/dependencies-composite.json +3 -0
  50. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/gitignore_TO_REPLACE +46 -0
  51. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/karma.conf.js +7 -0
  52. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/ng-package.json +7 -0
  53. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/package.json +4 -0
  54. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/dummy.spec.ts.TO_REPLACE +5 -0
  55. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/index.ts +4 -0
  56. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/blocks/sample/components/sample.component.html +1 -0
  57. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/blocks/sample/components/sample.component.ts +14 -0
  58. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/blocks/sample/containers/container.component.ts +36 -0
  59. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/blocks/sample/models/block.model.ts +5 -0
  60. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/blocks/sample/models/index.ts +1 -0
  61. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/blocks/sample/module.ts +37 -0
  62. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/components/sample.component.html +1 -0
  63. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/components/sample.component.ts +14 -0
  64. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/constants.ts +1 -0
  65. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/containers/block-store.service.ts +33 -0
  66. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/containers/container.component.ts +44 -0
  67. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/containers/generic-block-resolver.service.ts +32 -0
  68. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/models/block-type.model.ts +6 -0
  69. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/models/block.model.ts +10 -0
  70. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/models/index.ts +2 -0
  71. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/module.ts +60 -0
  72. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/store/actions/block.actions.ts +26 -0
  73. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/store/reducers/block.reducer.ts +48 -0
  74. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/store/reducers/index.ts +22 -0
  75. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/main/store/selectors/block.selectors.ts +29 -0
  76. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/lib/module.ts +17 -0
  77. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/src/test.ts.TO_REPLACE +21 -0
  78. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/tsconfig.lib.json +33 -0
  79. package/scripts/csdr/cli/skeletons/package/frontend/17.x/participant-ngrx/tsconfig.spec.json +17 -0
  80. package/scripts/csdr/cli/skeletons/virtual-remote/17.x/angular-config.json +8 -0
  81. package/scripts/csdr/cli/skeletons/virtual-remote/17.x/dependencies.json +21 -0
  82. package/scripts/csdr/config/config-skeletons.js +1 -21
  83. package/scripts/utils/pre-build/injection/app-sources-full-skeleton-eui17/tsconfig.app.json +2 -1
@@ -0,0 +1,5 @@
1
+ describe('First test', () => {
2
+ it('should work', () => {
3
+ expect(true).toBe(true);
4
+ });
5
+ });
@@ -0,0 +1,2 @@
1
+ export { @module.class.name@Module } from './lib/module';
2
+ export { @module.class.name@Component } from './lib/components/participant/participant.component';
@@ -0,0 +1,19 @@
1
+ import { Component, OnInit, Input } from '@angular/core';
2
+
3
+ import { BlockComponent, ParticipantBlock } from '@cc/shared/block';
4
+
5
+ @Component({
6
+ selector: '@module.scope.string@-participant-cp',
7
+ templateUrl: './participant.component.html',
8
+ })
9
+ export class @module.class.name@Component implements BlockComponent, OnInit {
10
+ @Input() readonly block: ParticipantBlock; // it should be an extension of ParticipantBlock
11
+
12
+ constructor() {
13
+ // constructor
14
+ }
15
+
16
+ ngOnInit(): void {
17
+ console.log('init');
18
+ }
19
+ }
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+
6
+ import { CcBlockModule } from '@cc/shared/block';
7
+
8
+ import { @module.class.name@Component } from './components/participant/participant.component';
9
+
10
+ @NgModule({
11
+ imports: [
12
+ CommonModule,
13
+ TranslateModule,
14
+ CcBlockModule,
15
+ ],
16
+ declarations: [
17
+ @module.class.name@Component,
18
+ ],
19
+ exports: [
20
+ @module.class.name@Component,
21
+ ],
22
+ })
23
+ export class @module.class.name@Module {
24
+ }
@@ -0,0 +1,21 @@
1
+ // This file is required by karma.conf.js and loads recursively all the .spec and framework files
2
+
3
+ import 'zone.js/dist/zone';
4
+ import 'zone.js/dist/zone-testing';
5
+ import { getTestBed } from '@angular/core/testing';
6
+ import {
7
+ BrowserDynamicTestingModule,
8
+ platformBrowserDynamicTesting,
9
+ } from '@angular/platform-browser-dynamic/testing';
10
+
11
+ declare const require: any;
12
+
13
+ // First, initialize the Angular testing environment.
14
+ getTestBed().initTestEnvironment(
15
+ BrowserDynamicTestingModule,
16
+ platformBrowserDynamicTesting(),
17
+ );
18
+ // Then we find all the tests.
19
+ const context = require.context('./', true, /\.spec\.ts$/);
20
+ // And load the modules.
21
+ context.keys().map(context);
@@ -0,0 +1,33 @@
1
+ {
2
+ "extends": "../../tsconfig.build.json",
3
+ "compilerOptions": {
4
+ "outDir": "./out-tsc/lib",
5
+ "target": "ES2022",
6
+ "module": "ES2022",
7
+ "moduleResolution": "node",
8
+ "declaration": true,
9
+ "sourceMap": true,
10
+ "inlineSources": true,
11
+ "emitDecoratorMetadata": true,
12
+ "experimentalDecorators": true,
13
+ "useDefineForClassFields": false,
14
+ "importHelpers": true,
15
+ "types": [],
16
+ "lib": [
17
+ "ES2022",
18
+ "dom"
19
+ ]
20
+ },
21
+ "angularCompilerOptions": {
22
+ "annotateForClosureCompiler": true,
23
+ "skipTemplateCodegen": true,
24
+ "strictMetadataEmit": true,
25
+ "fullTemplateTypeCheck": true,
26
+ "strictInjectionParameters": true,
27
+ "enableResourceInlining": true
28
+ },
29
+ "exclude": [
30
+ "src/test.ts",
31
+ "**/*.spec.ts"
32
+ ]
33
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "../../tsconfig.build.json",
3
+ "compilerOptions": {
4
+ "outDir": "./out-tsc/spec",
5
+ "types": [
6
+ "jasmine",
7
+ "node"
8
+ ]
9
+ },
10
+ "files": [
11
+ "src/test.ts"
12
+ ],
13
+ "include": [
14
+ "**/*.spec.ts",
15
+ "**/*.d.ts"
16
+ ]
17
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "extends": "../../.eslintrc-mwp-eui16.json",
3
+ "ignorePatterns": [
4
+ "!**/*",
5
+ "**/*.d.ts",
6
+ "dist"
7
+ ],
8
+ "overrides": [
9
+ {
10
+ "files": [
11
+ "*.ts"
12
+ ],
13
+ "parserOptions": {
14
+ "createDefaultProgram": true
15
+ },
16
+ "rules": {
17
+ "@angular-eslint/component-selector": [
18
+ "error",
19
+ {
20
+ "type": "element",
21
+ "prefix": "@module.scope.string@",
22
+ "style": "kebab-case"
23
+ }
24
+ ],
25
+ "@angular-eslint/directive-selector": [
26
+ "error",
27
+ {
28
+ "type": "attribute",
29
+ "prefix": "@module.scope.string@",
30
+ "style": "camelCase"
31
+ }
32
+ ],
33
+ "@typescript-eslint/ban-ts-comment": "off",
34
+ "@typescript-eslint/ban-types": "error",
35
+ "@typescript-eslint/consistent-type-definitions": "off",
36
+ "@typescript-eslint/dot-notation": "off",
37
+ "@typescript-eslint/explicit-member-accessibility": [
38
+ "off",
39
+ {
40
+ "accessibility": "explicit"
41
+ }
42
+ ],
43
+ "@typescript-eslint/no-inferrable-types": "off",
44
+ "@typescript-eslint/no-unused-vars": "off",
45
+ "@typescript-eslint/no-var-requires": "error",
46
+ "@typescript-eslint/require-await": "error",
47
+ "id-blacklist": "off",
48
+ "id-match": "off",
49
+ "max-len": [
50
+ "error",
51
+ {
52
+ "code": 160
53
+ }
54
+ ],
55
+ "no-duplicate-case": "error",
56
+ "no-duplicate-imports": "off",
57
+ "no-invalid-this": "error",
58
+ "no-multiple-empty-lines": [
59
+ "error",
60
+ {
61
+ "max": 1
62
+ }
63
+ ],
64
+ "no-new-func": "error",
65
+ "no-template-curly-in-string": "error",
66
+ "no-underscore-dangle": "off",
67
+ "no-var": "off",
68
+ "prefer-const": "off",
69
+ "comma-dangle": "off"
70
+ }
71
+ },
72
+ {
73
+ "files": [
74
+ "*.html"
75
+ ],
76
+ "rules": {}
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "@module.scope-name@.TITLE": "@module.scope-name@",
3
+ "@module.scope-name@.FILTER": "Search filter",
4
+ "@module.scope-name@.QUICK_SECTION": "Quick filter",
5
+ "@module.scope-name@.SEARCH_RESULT": "Filter results"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "@module.scope-name@.TITLE": "**fr** @module.scope-name@ **fr**",
3
+ "@module.scope-name@.FILTER": "**fr** Search filter **fr**",
4
+ "@module.scope-name@.QUICK_SECTION": "**fr** Quick filter **fr**",
5
+ "@module.scope-name@.SEARCH_RESULT": "**fr** Filter results **fr**"
6
+ }
@@ -0,0 +1,46 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+
3
+ # compiled output
4
+ **/node_modules
5
+ **/target
6
+ **/build
7
+ **/dist
8
+ **/out-tsc
9
+ **/tmp
10
+ **/test/reports
11
+
12
+ # IDEs and editors
13
+ /.idea
14
+ .project
15
+ .classpath
16
+ .c9/
17
+ *.launch
18
+ .settings/
19
+ *.sublime-workspace
20
+
21
+ # IDE - VSCode
22
+ .vscode/*
23
+ !.vscode/settings.json
24
+ !.vscode/tasks.json
25
+ !.vscode/launch.json
26
+ !.vscode/extensions.json
27
+
28
+ # misc
29
+ /.sass-cache
30
+ /connect.lock
31
+ /coverage
32
+ /libpeerconnection.log
33
+ npm-debug.log
34
+ testem.log
35
+ /typings
36
+ yarn-error.log
37
+
38
+ # e2e
39
+ /e2e/*.js
40
+ /e2e/*.map
41
+ **/src/**/*.js
42
+ **/src/**/*.map
43
+
44
+ # System Files
45
+ .DS_Store
46
+ Thumbs.db
@@ -0,0 +1,7 @@
1
+ const karmaConfig = require('@eui/tools/karma/karma.conf.pkg');
2
+
3
+ module.exports = function (config) {
4
+ config.set(
5
+ karmaConfig.get(config, '@module.full.name@', {})
6
+ );
7
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "./dist",
4
+ "lib": {
5
+ "entryFile": "src/index.ts"
6
+ }
7
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "@module.scope@/@module.name@",
3
+ "version": "1.0.0"
4
+ }
@@ -0,0 +1,5 @@
1
+ describe('First test', () => {
2
+ it('should work', () => {
3
+ expect(true).toBe(true);
4
+ });
5
+ });
@@ -0,0 +1,4 @@
1
+ export { @module.class.name@Module } from './lib/module';
2
+
3
+ export { MainParticipantModule } from './lib/main/module';
4
+ export { @module.class.name@ContainerComponent } from './lib/main/containers/container.component';
@@ -0,0 +1,14 @@
1
+ import { Component, Input } from '@angular/core';
2
+
3
+ import { Block } from '../models';
4
+
5
+ @Component({
6
+ selector: '@module.scope-name@-cp',
7
+ templateUrl: './sample.component.html',
8
+ })
9
+ export class SampleComponent {
10
+ @Input() block: Block;
11
+
12
+ constructor() {
13
+ }
14
+ }
@@ -0,0 +1,36 @@
1
+ import { ChangeDetectionStrategy, Component, Input, OnInit, OnDestroy } from '@angular/core';
2
+
3
+ import { Observable } from 'rxjs';
4
+
5
+ import { BlockComponent } from '@cc/shared/block';
6
+
7
+ import { Block } from '../models';
8
+
9
+ @Component({
10
+ selector: '@module.scope-name@-ct',
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ template: `
13
+ <@module.scope-name@-cp
14
+ [block]="block$ | async">
15
+ </@module.scope-name@-cp>`,
16
+ })
17
+ export class ContainerComponent implements BlockComponent, OnInit, OnDestroy {
18
+ @Input() readonly block: Block;
19
+
20
+ block$: Observable<Block>;
21
+
22
+ constructor() {
23
+ }
24
+
25
+ ngOnInit(): void {
26
+ this.asyncPipeObs();
27
+ }
28
+
29
+ ngOnDestroy(): void {
30
+ }
31
+
32
+ private asyncPipeObs(): void {
33
+ // todo: retrieve block$ from the store
34
+ // this.block$
35
+ }
36
+ }
@@ -0,0 +1,5 @@
1
+ import { ParticipantBlock } from '@cc/shared/block';
2
+
3
+ export interface Block extends ParticipantBlock {
4
+
5
+ }
@@ -0,0 +1,37 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+
6
+ import { CcBlockModule } from '@cc/shared/block';
7
+
8
+ // -- Components --
9
+ import { SampleComponent } from './components/sample.component';
10
+
11
+ const COMPONENTS = [
12
+ SampleComponent,
13
+ ];
14
+
15
+ // -- Containers --
16
+ import { ContainerComponent } from './containers/container.component';
17
+
18
+ const CONTAINERS = [
19
+ ContainerComponent,
20
+ ];
21
+
22
+ @NgModule({
23
+ imports: [
24
+ CommonModule,
25
+ TranslateModule,
26
+ CcBlockModule,
27
+ ],
28
+ declarations: [
29
+ ...COMPONENTS,
30
+ ...CONTAINERS,
31
+ ],
32
+ exports: [
33
+ ContainerComponent,
34
+ ],
35
+ })
36
+ export class @module.class.name@BlockSampleModule {
37
+ }
@@ -0,0 +1 @@
1
+ <cc-generic-block-ct [block]="block"></cc-generic-block-ct>
@@ -0,0 +1,14 @@
1
+ import { Component, Input } from '@angular/core';
2
+
3
+ import { Block } from '../models';
4
+
5
+ @Component({
6
+ selector: '@module.scope-name@-cp',
7
+ templateUrl: './sample.component.html',
8
+ })
9
+ export class @module.class.name@Component {
10
+ @Input() block: Block;
11
+
12
+ constructor() {
13
+ }
14
+ }
@@ -0,0 +1 @@
1
+ export const namespace = '@module.class.name@:participant';
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Store, select } from '@ngrx/store';
3
+
4
+ import { Observable } from 'rxjs';
5
+
6
+ import * as block from '../store/actions/block.actions';
7
+
8
+ import {
9
+ Block,
10
+ } from '../models';
11
+
12
+ import * as fromBlockReducer from '../store/reducers/block.reducer';
13
+
14
+ import * as fromBlockSelectors from '../store/selectors/block.selectors';
15
+
16
+ @Injectable()
17
+ export class BlockStoreService {
18
+
19
+ constructor(private store$: Store<fromBlockReducer.State>) {
20
+ }
21
+
22
+ getBlockById(id: string): Observable<Block> {
23
+ return this.store$.pipe(select(fromBlockSelectors.getBlockById(id)));
24
+ }
25
+
26
+ upsertBlock(b: Block): void {
27
+ this.store$.dispatch(new block.UpsertBlock({ block: b }));
28
+ }
29
+
30
+ removeBlock(id: string): void {
31
+ this.store$.dispatch(new block.RemoveBlock({ id }));
32
+ }
33
+ }
@@ -0,0 +1,44 @@
1
+ import { ChangeDetectionStrategy, Component, Input, OnInit, OnDestroy } from '@angular/core';
2
+
3
+ import { Observable } from 'rxjs';
4
+
5
+ import { BlockComponent, GENERIC_BLOCK_RESOLVER_TOKEN } from '@cc/shared/block';
6
+
7
+ import { Block } from '../models';
8
+
9
+ import { BlockStoreService } from './block-store.service';
10
+ import { GenericBlockResolverService } from './generic-block-resolver.service';
11
+
12
+ @Component({
13
+ selector: '@module.scoe-name@-ct',
14
+ changeDetection: ChangeDetectionStrategy.OnPush,
15
+ providers: [
16
+ BlockStoreService,
17
+ { provide: GENERIC_BLOCK_RESOLVER_TOKEN, useClass: GenericBlockResolverService },
18
+ ],
19
+ template: `
20
+ <@module.scope-name@-cp
21
+ [block]="block$ | async">
22
+ </@module.scope-name@-cp>`,
23
+ })
24
+ export class @module.class.name@ContainerComponent implements BlockComponent, OnInit, OnDestroy {
25
+ @Input() readonly block: Block;
26
+
27
+ block$: Observable<Block>;
28
+
29
+ constructor(private blockStore: BlockStoreService) {
30
+ }
31
+
32
+ ngOnInit(): void {
33
+ this.asyncPipeObs();
34
+
35
+ this.blockStore.upsertBlock(this.block);
36
+ }
37
+
38
+ ngOnDestroy(): void {
39
+ }
40
+
41
+ private asyncPipeObs(): void {
42
+ this.block$ = this.blockStore.getBlockById(this.block.id);
43
+ }
44
+ }
@@ -0,0 +1,32 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+
3
+ import { CONFIG_TOKEN } from '@eui/core';
4
+
5
+ import { BlockConfig, IGenericBlock, UnknownBlockComponent } from '@cc/shared/block';
6
+
7
+ // BLOCKS
8
+ import { ContainerComponent } from '../../blocks/sample/containers/container.component';
9
+
10
+ import { BlockType } from '../models';
11
+
12
+ @Injectable()
13
+ export class GenericBlockResolverService implements IGenericBlock {
14
+
15
+ constructor(@Inject(CONFIG_TOKEN) private config: any) {
16
+ }
17
+
18
+ getComponentForBlock(block: BlockConfig): any {
19
+ switch (block?.config.subType) {
20
+ case BlockType.@module.class.name@: {
21
+ return ContainerComponent;
22
+ }
23
+ default: {
24
+ return UnknownBlockComponent;
25
+ }
26
+ }
27
+ }
28
+
29
+ enrichBlock(block: BlockConfig): BlockConfig {
30
+ return block;
31
+ }
32
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Sub-blocks
3
+ */
4
+ export class BlockType {
5
+ static @module.class.name@ = '@module.class.name@';
6
+ }
@@ -0,0 +1,10 @@
1
+ import { ParticipantBlock } from '@cc/shared/block';
2
+
3
+ import { BlockType } from './block-type.model';
4
+
5
+ export interface Block extends ParticipantBlock {
6
+
7
+ config: {
8
+ subType: BlockType;
9
+ }
10
+ }
@@ -0,0 +1,2 @@
1
+ export * from './block.model';
2
+ export * from './block-type.model';
@@ -0,0 +1,60 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { StoreModule } from '@ngrx/store';
4
+ import { EffectsModule } from '@ngrx/effects';
5
+
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+
8
+ import { CcBlockModule } from '@cc/shared/block';
9
+
10
+ // -- Components --
11
+ import { @module.class.name@Component } from './components/sample.component';
12
+
13
+ const COMPONENTS = [
14
+ @module.class.name@Component,
15
+ ];
16
+
17
+ // -- Containers --
18
+ import { @module.class.name@ContainerComponent } from './containers/container.component';
19
+
20
+ const CONTAINERS = [
21
+ @module.class.name@ContainerComponent,
22
+ ];
23
+
24
+ // -- Effects --
25
+ const EFFECTS = [
26
+ ];
27
+
28
+ // -- Reducer --
29
+ import { TOKEN, reducerProvider } from './store/reducers';
30
+
31
+ // -- Services --
32
+ const SERVICES = [
33
+ ];
34
+
35
+ // -- Constants --
36
+ import { namespace } from './constants';
37
+
38
+ @NgModule({
39
+ imports: [
40
+ CommonModule,
41
+ StoreModule.forFeature(namespace, TOKEN),
42
+ EffectsModule.forFeature(EFFECTS),
43
+ TranslateModule,
44
+
45
+ CcBlockModule,
46
+ ],
47
+ declarations: [
48
+ ...COMPONENTS,
49
+ ...CONTAINERS,
50
+ ],
51
+ providers: [
52
+ reducerProvider,
53
+ ...SERVICES,
54
+ ],
55
+ exports: [
56
+ @module.class.name@ContainerComponent,
57
+ ],
58
+ })
59
+ export class MainParticipantModule {
60
+ }