├── project-mf ├── domain │ ├── src │ │ ├── README.md │ │ ├── album │ │ │ ├── models │ │ │ │ ├── album.ts │ │ │ │ └── gateway │ │ │ │ │ └── album-gateway.ts │ │ │ └── use_case │ │ │ │ └── get-album-use-case.ts │ │ └── domain.ts │ ├── .npmignore │ ├── tslint.json │ ├── .prettierrc │ ├── lib │ │ ├── models │ │ │ ├── album.d.ts │ │ │ ├── album.js │ │ │ └── gateway │ │ │ │ ├── album-gateway.js │ │ │ │ └── album-gateway.d.ts │ │ ├── album │ │ │ ├── models │ │ │ │ ├── album.d.ts │ │ │ │ ├── album.js │ │ │ │ └── gateway │ │ │ │ │ ├── album-gateway.js │ │ │ │ │ └── album-gateway.d.ts │ │ │ └── use_case │ │ │ │ ├── get-album-use-case.d.ts │ │ │ │ └── get-album-use-case.js │ │ ├── domain.d.ts │ │ ├── use_case │ │ │ ├── get-album-use-case.d.ts │ │ │ └── get-album-use-case.js │ │ └── domain.js │ ├── CHANGELOG.md │ ├── jestconfig.json │ ├── tsconfig.json │ ├── test │ │ ├── models │ │ │ └── album.test.ts │ │ └── use_case │ │ │ └── get-album-use-case.test.ts │ ├── README.md │ └── package.json ├── web │ ├── app-wrk │ │ ├── README.md │ │ ├── projects │ │ │ ├── host │ │ │ │ ├── src │ │ │ │ │ ├── assets │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── app │ │ │ │ │ │ ├── app.component.scss │ │ │ │ │ │ ├── home │ │ │ │ │ │ │ ├── home.component.scss │ │ │ │ │ │ │ ├── home.component.html │ │ │ │ │ │ │ ├── home.component.ts │ │ │ │ │ │ │ └── home.component.spec.ts │ │ │ │ │ │ ├── decl.d.ts │ │ │ │ │ │ ├── common │ │ │ │ │ │ │ └── circular-progress-indicator │ │ │ │ │ │ │ │ ├── circular-progress-indicator.component.scss │ │ │ │ │ │ │ │ ├── circular-progress-indicator.component.html │ │ │ │ │ │ │ │ ├── circular-progress-indicator.component.ts │ │ │ │ │ │ │ │ └── circular-progress-indicator.component.spec.ts │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app-routing.module.ts │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ └── app.component.spec.ts │ │ │ │ │ ├── main.ts │ │ │ │ │ ├── environments │ │ │ │ │ │ ├── environment.prod.ts │ │ │ │ │ │ └── environment.ts │ │ │ │ │ ├── styles.scss │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── index.html │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ ├── test.ts │ │ │ │ │ └── polyfills.ts │ │ │ │ ├── webpack.prod.config.js │ │ │ │ ├── tslint.json │ │ │ │ ├── e2e │ │ │ │ │ ├── src │ │ │ │ │ │ ├── app.po.ts │ │ │ │ │ │ └── app.e2e-spec.ts │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── protractor.conf.js │ │ │ │ ├── tsconfig.app.json │ │ │ │ ├── tsconfig.spec.json │ │ │ │ ├── .browserslistrc │ │ │ │ ├── karma.conf.js │ │ │ │ └── webpack.config.js │ │ │ └── mf │ │ │ │ ├── src │ │ │ │ ├── assets │ │ │ │ │ └── .gitkeep │ │ │ │ ├── app │ │ │ │ │ ├── app.component.scss │ │ │ │ │ ├── showmf │ │ │ │ │ │ ├── showmf.component.scss │ │ │ │ │ │ ├── showmf.component.html │ │ │ │ │ │ ├── showmf.component.ts │ │ │ │ │ │ └── showmf.component.spec.ts │ │ │ │ │ ├── app.component.html │ │ │ │ │ ├── common │ │ │ │ │ │ └── circular-progress-indicator │ │ │ │ │ │ │ ├── circular-progress-indicator.component.html │ │ │ │ │ │ │ ├── circular-progress-indicator.component.ts │ │ │ │ │ │ │ ├── circular-progress-indicator.component.spec.ts │ │ │ │ │ │ │ └── circular-progress-indicator.component.scss │ │ │ │ │ ├── app.component.ts │ │ │ │ │ ├── showinfo │ │ │ │ │ │ ├── showinfo-routing.module.ts │ │ │ │ │ │ ├── showinfo.component.html │ │ │ │ │ │ ├── showinfo.component.spec.ts │ │ │ │ │ │ ├── showinfo.component.ts │ │ │ │ │ │ ├── showinfo.component.scss │ │ │ │ │ │ └── showinfo.module.ts │ │ │ │ │ ├── app-routing.module.ts │ │ │ │ │ ├── app.module.ts │ │ │ │ │ └── app.component.spec.ts │ │ │ │ ├── main.ts │ │ │ │ ├── environments │ │ │ │ │ ├── environment.prod.ts │ │ │ │ │ └── environment.ts │ │ │ │ ├── styles.scss │ │ │ │ ├── favicon.ico │ │ │ │ ├── index.html │ │ │ │ ├── bootstrap.ts │ │ │ │ ├── test.ts │ │ │ │ └── polyfills.ts │ │ │ │ ├── webpack.prod.config.js │ │ │ │ ├── e2e │ │ │ │ ├── src │ │ │ │ │ ├── app.po.ts │ │ │ │ │ └── app.e2e-spec.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── protractor.conf.js │ │ │ │ ├── tslint.json │ │ │ │ ├── tsconfig.app.json │ │ │ │ ├── tsconfig.spec.json │ │ │ │ ├── .browserslistrc │ │ │ │ ├── karma.conf.js │ │ │ │ └── webpack.config.js │ │ ├── .editorconfig │ │ ├── tsconfig.json │ │ ├── .gitignore │ │ └── package.json │ └── react │ │ └── remote │ │ ├── public │ │ ├── robots.txt │ │ ├── favicon.ico │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── index.html │ │ ├── src │ │ ├── setupTests.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── reportWebVitals.js │ │ ├── index.js │ │ ├── App.js │ │ └── App.css │ │ ├── .gitignore │ │ └── package.json ├── infraestructure │ ├── src │ │ ├── README.md │ │ ├── driven-adapter │ │ │ ├── README.MD │ │ │ └── album-api │ │ │ │ └── album-api-service.ts │ │ └── driven-adapter.ts │ ├── test │ │ ├── README.md │ │ └── driven-adapters │ │ │ └── album-api │ │ │ └── album-api.service.test.ts │ ├── .npmignore │ ├── tslint.json │ ├── lib │ │ ├── index.d.ts │ │ ├── driven-adapter.d.ts │ │ ├── index.js │ │ ├── driven-adapter.js │ │ ├── album-api-service.d.ts │ │ ├── driven-adapter │ │ │ └── album-api │ │ │ │ ├── album-api-service.d.ts │ │ │ │ └── album-api-service.js │ │ └── album-api-service.js │ ├── .prettierrc │ ├── README.md │ ├── jestconfig.json │ ├── tsconfig.json │ └── package.json ├── README.md └── .gitignore ├── ssr-example ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.scss │ │ ├── info │ │ │ ├── info.component.scss │ │ │ ├── info.component.html │ │ │ ├── info.component.ts │ │ │ └── info.component.spec.ts │ │ ├── vision │ │ │ ├── vision.component.scss │ │ │ ├── vision.component.html │ │ │ ├── vision.component.ts │ │ │ └── vision.component.spec.ts │ │ ├── app.component.html │ │ ├── app.server.module.ts │ │ ├── app-routing.module.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ └── app.component.spec.ts │ ├── main.server.ts │ ├── styles.scss │ ├── favicon.ico │ ├── index.html │ └── main.ts ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── tasks.json ├── tsconfig.app.json ├── tsconfig.server.json ├── tsconfig.spec.json ├── .editorconfig ├── .gitignore ├── tsconfig.json ├── README.md ├── package.json └── server.ts ├── clean-arch-example ├── src │ ├── assets │ │ └── .gitkeep │ ├── app │ │ ├── app.component.scss │ │ ├── infraestructure │ │ │ ├── helpers │ │ │ │ └── maps │ │ │ │ │ ├── album_mapper.ts │ │ │ │ │ └── common │ │ │ │ │ └── maps.ts │ │ │ └── driven-adapter │ │ │ │ └── album-api │ │ │ │ ├── album-api.service.spec.ts │ │ │ │ ├── album-api.service.ts │ │ │ │ └── album-api-withou-delay.service.ts │ │ ├── UI │ │ │ ├── common │ │ │ │ └── circular-progress-indicator │ │ │ │ │ ├── circular-progress-indicator.component.html │ │ │ │ │ ├── circular-progress-indicator.component.ts │ │ │ │ │ ├── circular-progress-indicator.component.spec.ts │ │ │ │ │ └── circular-progress-indicator.component.scss │ │ │ └── view-models │ │ │ │ └── album-card │ │ │ │ ├── album-card.component.html │ │ │ │ ├── album-card.component.spec.ts │ │ │ │ ├── album-card.component.scss │ │ │ │ └── album-card.component.ts │ │ ├── app.component.html │ │ ├── domain │ │ │ ├── models │ │ │ │ └── Album │ │ │ │ │ ├── album.ts │ │ │ │ │ └── gateway │ │ │ │ │ └── album-gateway.ts │ │ │ └── usecase │ │ │ │ └── get-album-use-case.ts │ │ ├── app.component.ts │ │ ├── app-routing.module.ts │ │ ├── app.module.ts │ │ └── app.component.spec.ts │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── styles.scss │ ├── favicon.ico │ ├── index.html │ ├── main.ts │ ├── test.ts │ └── polyfills.ts ├── .vscode │ ├── extensions.json │ ├── launch.json │ └── tasks.json ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── .browserslistrc ├── .gitignore ├── tsconfig.json ├── README.md ├── package.json └── karma.conf.js ├── atomic-design ├── showcase │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── app │ │ │ ├── app.component.scss │ │ │ ├── app.component.ts │ │ │ ├── app-routing.module.ts │ │ │ ├── app.module.ts │ │ │ ├── app.component.html │ │ │ └── app.component.spec.ts │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── styles.scss │ │ ├── index.html │ │ ├── main.ts │ │ ├── test.ts │ │ └── polyfills.ts │ ├── .vscode │ │ ├── extensions.json │ │ ├── launch.json │ │ └── tasks.json │ ├── .editorconfig │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ ├── .browserslistrc │ ├── .gitignore │ ├── tsconfig.json │ ├── README.md │ ├── package.json │ └── karma.conf.js ├── transversal-design │ ├── scss │ │ ├── Molecules │ │ │ ├── modal.scss │ │ │ └── card.scss │ │ ├── .DS_Store │ │ ├── fundations │ │ │ ├── atomos │ │ │ │ ├── links.fundations.scss │ │ │ │ └── btn.fundations.scss │ │ │ ├── fonts.scss │ │ │ ├── spacing.scss │ │ │ └── colors.scss │ │ ├── tokens │ │ │ ├── spacing.scss │ │ │ ├── typo.scss │ │ │ └── colors.scss │ │ ├── atoms │ │ │ ├── links.scss │ │ │ └── buttons.scss │ │ ├── Organisms │ │ │ └── top_navbar.scss │ │ ├── Templates │ │ │ └── layout_guidelines.scss │ │ ├── style.scss │ │ └── vendors │ │ │ └── grid.scss │ ├── .DS_Store │ ├── view │ │ ├── .DS_Store │ │ ├── atoms │ │ │ └── button.html │ │ └── molecules │ │ │ └── card.html │ ├── package.json │ ├── gulpfile.js │ └── .gitignore ├── ngx-atomic-design │ ├── projects │ │ └── ngx-weincode-ds │ │ │ ├── CHANGELOG.md │ │ │ ├── src │ │ │ ├── lib │ │ │ │ ├── atoms │ │ │ │ │ ├── readme.md │ │ │ │ │ └── button │ │ │ │ │ │ ├── wc-btn.directive.spec.ts │ │ │ │ │ │ └── wc-btn.directive.ts │ │ │ │ ├── molecules │ │ │ │ │ ├── readme.md │ │ │ │ │ └── wc-card │ │ │ │ │ │ ├── wc-card.component.css │ │ │ │ │ │ ├── wc-card.component.html │ │ │ │ │ │ ├── wc-card.component.spec.ts │ │ │ │ │ │ └── wc-card.component.ts │ │ │ │ ├── ngx-weincode-ds.service.ts │ │ │ │ ├── ngx-weincode-ds.component.ts │ │ │ │ ├── ngx-weincode-ds.service.spec.ts │ │ │ │ ├── ngx-weincode-ds.module.ts │ │ │ │ └── ngx-weincode-ds.component.spec.ts │ │ │ ├── public-api.ts │ │ │ └── test.ts │ │ │ ├── package.json │ │ │ ├── tsconfig.lib.prod.json │ │ │ ├── ng-package.json │ │ │ ├── tsconfig.spec.json │ │ │ ├── tsconfig.lib.json │ │ │ ├── README.md │ │ │ └── karma.conf.js │ ├── .vscode │ │ ├── extensions.json │ │ ├── launch.json │ │ └── tasks.json │ ├── .editorconfig │ ├── .gitignore │ ├── tsconfig.json │ ├── README.md │ ├── package.json │ └── angular.json └── .DS_Store ├── .DS_Store ├── .gitignore └── README.md /project-mf/domain/src/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ssr-example/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clean-arch-example/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ssr-example/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/infraestructure/src/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/infraestructure/test/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ssr-example/src/app/info/info.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ssr-example/src/app/vision/vision.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/Molecules/modal.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/infraestructure/src/driven-adapter/README.MD: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ssr-example/src/app/info/info.component.html: -------------------------------------------------------------------------------- 1 |

info works!

2 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/infraestructure/helpers/maps/album_mapper.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/home/home.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showmf/showmf.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ssr-example/src/app/vision/vision.component.html: -------------------------------------------------------------------------------- 1 |

vision works!

2 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/atoms/readme.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/.DS_Store -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/molecules/readme.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/decl.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'mf/ShowinfoModule' -------------------------------------------------------------------------------- /project-mf/domain/.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | test 3 | tsconfig.json 4 | tslint.json 5 | .prettierrc -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/home/home.component.html: -------------------------------------------------------------------------------- 1 |

El host anda bien

2 | -------------------------------------------------------------------------------- /ssr-example/src/main.server.ts: -------------------------------------------------------------------------------- 1 | 2 | export { AppServerModule } from './app/app.server.module'; 3 | -------------------------------------------------------------------------------- /project-mf/infraestructure/.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | test 3 | tsconfig.json 4 | tslint.json 5 | .prettierrc -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showmf/showmf.component.html: -------------------------------------------------------------------------------- 1 |

El mf anda perfecto

-------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/molecules/wc-card/wc-card.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /project-mf/domain/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["tslint:recommended", "tslint-config-prettier"] 3 | } -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/webpack.prod.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./webpack.config'); 2 | -------------------------------------------------------------------------------- /project-mf/infraestructure/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["tslint:recommended", "tslint-config-prettier"] 3 | } -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/webpack.prod.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./webpack.config'); 2 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/main.ts: -------------------------------------------------------------------------------- 1 | import('./bootstrap') 2 | .catch(err => console.error(err)); 3 | -------------------------------------------------------------------------------- /ssr-example/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /atomic-design/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/atomic-design/.DS_Store -------------------------------------------------------------------------------- /clean-arch-example/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /clean-arch-example/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/main.ts: -------------------------------------------------------------------------------- 1 | import('./bootstrap') 2 | .catch(err => console.error(err)); 3 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /project-mf/domain/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "trailingComma": "all", 4 | "singleQuote": true 5 | } -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/common/circular-progress-indicator/circular-progress-indicator.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ssr-example/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/ssr-example/src/favicon.ico -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/index.d.ts: -------------------------------------------------------------------------------- 1 | export { AlbumApiService } from "./driven-adapter/album-api/album-api-service"; 2 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /project-mf/infraestructure/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "trailingComma": "all", 4 | "singleQuote": true 5 | } -------------------------------------------------------------------------------- /project-mf/infraestructure/src/driven-adapter.ts: -------------------------------------------------------------------------------- 1 | export {AlbumApiService } from "./driven-adapter/album-api/album-api-service"; 2 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |

Soy el mf funcionando 👾

2 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/common/circular-progress-indicator/circular-progress-indicator.component.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |


Arquitectura limpia funciona!!

2 | 3 | -------------------------------------------------------------------------------- /clean-arch-example/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/clean-arch-example/src/favicon.ico -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/driven-adapter.d.ts: -------------------------------------------------------------------------------- 1 | export { AlbumApiService } from "./driven-adapter/album-api/album-api-service"; 2 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |

SOY EL OVERPOWER HOST

2 | 3 | 4 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/atomic-design/showcase/src/favicon.ico -------------------------------------------------------------------------------- /project-mf/domain/lib/models/album.d.ts: -------------------------------------------------------------------------------- 1 | export declare class Album { 2 | userId: number; 3 | id: number; 4 | title: string; 5 | } 6 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/common/circular-progress-indicator/circular-progress-indicator.component.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /atomic-design/transversal-design/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/atomic-design/transversal-design/.DS_Store -------------------------------------------------------------------------------- /clean-arch-example/src/app/infraestructure/helpers/maps/common/maps.ts: -------------------------------------------------------------------------------- 1 | export abstract class Mapper {​​ 2 | abstract fromMap(obj: any): I; 3 | }​​ -------------------------------------------------------------------------------- /project-mf/domain/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Historial versiones 2 | 1.0.0 Inicio del proyecto 3 | 1.1.0 Se agrega la nueva entidad Album junto con sus casos de uso -------------------------------------------------------------------------------- /project-mf/domain/lib/album/models/album.d.ts: -------------------------------------------------------------------------------- 1 | export declare class Album { 2 | userId: number; 3 | id: number; 4 | title: string; 5 | } 6 | -------------------------------------------------------------------------------- /project-mf/domain/src/album/models/album.ts: -------------------------------------------------------------------------------- 1 | export class Album { 2 | userId! : number; 3 | id! : number; 4 | title! : string; 5 | } -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/atomic-design/transversal-design/scss/.DS_Store -------------------------------------------------------------------------------- /atomic-design/transversal-design/view/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/atomic-design/transversal-design/view/.DS_Store -------------------------------------------------------------------------------- /project-mf/web/react/remote/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/project-mf/web/react/remote/public/favicon.ico -------------------------------------------------------------------------------- /project-mf/web/react/remote/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/project-mf/web/react/remote/public/logo192.png -------------------------------------------------------------------------------- /project-mf/web/react/remote/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/project-mf/web/react/remote/public/logo512.png -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/common/circular-progress-indicator/circular-progress-indicator.component.html: -------------------------------------------------------------------------------- 1 |

circular-progress-indicator works!

2 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/project-mf/web/app-wrk/projects/mf/src/favicon.ico -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weincoder/examples_codes_angular/HEAD/project-mf/web/app-wrk/projects/host/src/favicon.ico -------------------------------------------------------------------------------- /clean-arch-example/src/app/domain/models/Album/album.ts: -------------------------------------------------------------------------------- 1 | export class Album { 2 | userId! : number; 3 | id! : number; 4 | title! : string; 5 | } -------------------------------------------------------------------------------- /ssr-example/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": ["angular.ng-template"] 4 | } 5 | -------------------------------------------------------------------------------- /clean-arch-example/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": ["angular.ng-template"] 4 | } 5 | -------------------------------------------------------------------------------- /atomic-design/showcase/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": ["angular.ng-template"] 4 | } 5 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": ["angular.ng-template"] 4 | } 5 | -------------------------------------------------------------------------------- /project-mf/domain/lib/models/album.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.Album = void 0; 4 | class Album { 5 | } 6 | exports.Album = Album; 7 | -------------------------------------------------------------------------------- /project-mf/README.md: -------------------------------------------------------------------------------- 1 | # Proyecto micro-fronts 🌏🔬 2 | En este proyecto veremos que debemos tener presente a la hora de crear un proyecto que utiliza micro fronts. 3 | 4 | ## Recuerda darle ⭐️ al proyecto -------------------------------------------------------------------------------- /project-mf/domain/lib/album/models/album.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.Album = void 0; 4 | class Album { 5 | } 6 | exports.Album = Album; 7 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | @import '../../transversal-design/public/stylesheets/min/transversal_design_1.0.0.min.css' -------------------------------------------------------------------------------- /project-mf/domain/src/domain.ts: -------------------------------------------------------------------------------- 1 | export{Album} from './album/models/album'; 2 | export{AlbumGateway} from './album/models/gateway/album-gateway'; 3 | export{GetAlbumUseCases} from './album/use_case/get-album-use-case'; 4 | -------------------------------------------------------------------------------- /ssr-example/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |
5 |

Hola todo anda bien

6 | 7 |
8 | 11 | -------------------------------------------------------------------------------- /project-mf/domain/lib/domain.d.ts: -------------------------------------------------------------------------------- 1 | export { Album } from './album/models/album'; 2 | export { AlbumGateway } from './album/models/gateway/album-gateway'; 3 | export { GetAlbumUseCases } from './album/use_case/get-album-use-case'; 4 | -------------------------------------------------------------------------------- /project-mf/domain/lib/models/gateway/album-gateway.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.AlbumGateway = void 0; 4 | class AlbumGateway { 5 | } 6 | exports.AlbumGateway = AlbumGateway; 7 | -------------------------------------------------------------------------------- /project-mf/domain/lib/album/models/gateway/album-gateway.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.AlbumGateway = void 0; 4 | class AlbumGateway { 5 | } 6 | exports.AlbumGateway = AlbumGateway; 7 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/fundations/atomos/links.fundations.scss: -------------------------------------------------------------------------------- 1 | @import "../../tokens/colors.scss"; 2 | $links_primary_color : $brand_primary_scale_05; 3 | $links_primary_color_hover_bg : $background_blue; 4 | $links_primary_color_hover : $white_normal; 5 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/ngx-weincode-ds.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable({ 4 | providedIn: 'root' 5 | }) 6 | export class NgxWeincodeDsService { 7 | 8 | constructor() { } 9 | } 10 | -------------------------------------------------------------------------------- /ssr-example/src/app/info/info.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-info', 5 | templateUrl: './info.component.html', 6 | styleUrls: ['./info.component.scss'] 7 | }) 8 | export class InfoComponent { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /ssr-example/src/app/vision/vision.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-vision', 5 | templateUrl: './vision.component.html', 6 | styleUrls: ['./vision.component.scss'] 7 | }) 8 | export class VisionComponent { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent { 9 | title = 'showcase'; 10 | } 11 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngx-weincode-ds", 3 | "version": "0.0.10", 4 | "peerDependencies": { 5 | "@angular/common": "^14.1.0", 6 | "@angular/core": "^14.1.0" 7 | }, 8 | "dependencies": { 9 | "tslib": "^2.3.0" 10 | } 11 | } -------------------------------------------------------------------------------- /clean-arch-example/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent { 9 | title = 'clen-arch-example'; 10 | } 11 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent { 9 | title = 'mf'; 10 | } 11 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent { 9 | title = 'host'; 10 | } 11 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /project-mf/infraestructure/README.md: -------------------------------------------------------------------------------- 1 | # infraestructure-weincode 🚀 2 | 3 | En este paquete subiremos todo lo relacionado a la capa de infraestructura de nuestro proyecto 4 | ## Instalar ⚙ 5 | ```s 6 | npm i infraestructure-weincode 7 | ``` 8 | 9 | ## Historial versiones 🌳🍎 10 | * 1.0.0 Inicio del proyecto 11 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/atoms/button/wc-btn.directive.spec.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectorRef, ElementRef } from '@angular/core'; 2 | import { WcBtnDirective } from './wc-btn.directive'; 3 | 4 | describe('WcBtnDirective', () => { 5 | it('should create an instance', () => { 6 | 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | 4 | const routes: Routes = []; 5 | 6 | @NgModule({ 7 | imports: [RouterModule.forRoot(routes)], 8 | exports: [RouterModule] 9 | }) 10 | export class AppRoutingModule { } 11 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | 4 | const routes: Routes = []; 5 | 6 | @NgModule({ 7 | imports: [RouterModule.forRoot(routes)], 8 | exports: [RouterModule] 9 | }) 10 | export class AppRoutingModule { } 11 | -------------------------------------------------------------------------------- /project-mf/domain/src/album/models/gateway/album-gateway.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs'; 2 | import { Album } from '../album'; 3 | 4 | export abstract class AlbumGateway { 5 | abstract getByID(id: string): Observable; 6 | abstract getAll(): Observable; 7 | abstract saveNew (_alb :Album) : Observable; 8 | } -------------------------------------------------------------------------------- /project-mf/domain/lib/models/gateway/album-gateway.d.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs'; 2 | import { Album } from '../album'; 3 | export declare abstract class AlbumGateway { 4 | abstract getByID(id: string): Observable; 5 | abstract getAll(): Observable; 6 | abstract saveNew(_alb: Album): Observable; 7 | } 8 | -------------------------------------------------------------------------------- /project-mf/domain/lib/album/models/gateway/album-gateway.d.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs'; 2 | import { Album } from '../album'; 3 | export declare abstract class AlbumGateway { 4 | abstract getByID(id: string): Observable; 5 | abstract getAll(): Observable; 6 | abstract saveNew(_alb: Album): Observable; 7 | } 8 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/fundations/atomos/btn.fundations.scss: -------------------------------------------------------------------------------- 1 | @import "../../tokens/colors.scss"; 2 | 3 | $btn_primary_bg : $brand_primary_scale_00; 4 | $btn_primary_bg_hover : $brand_primary_scale_03; 5 | $btn_secondary_bg : $brand_primary_scale_04; 6 | $btn_secondary_bg_hover : $brand_primary_scale_06; 7 | $btn_font_color : $white_normal; 8 | -------------------------------------------------------------------------------- /project-mf/domain/jestconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "transform": { 3 | "^.+\\.(t|j)sx?$": "ts-jest" 4 | }, 5 | "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", 6 | "moduleFileExtensions": [ 7 | "ts", 8 | "tsx", 9 | "js", 10 | "jsx", 11 | "json", 12 | "node" 13 | ] 14 | } -------------------------------------------------------------------------------- /ssr-example/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "src/main.ts" 10 | ], 11 | "include": [ 12 | "src/**/*.d.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/domain/models/Album/gateway/album-gateway.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs'; 2 | import { Album } from '../album'; 3 | 4 | export abstract class AlbumGateway { 5 | abstract getByID(id: String): Observable; 6 | abstract getAll(): Observable>; 7 | abstract saveNew (_alb :Album) : Observable; 8 | } -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/tsconfig.lib.prod.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.lib.json", 4 | "compilerOptions": { 5 | "declarationMap": false 6 | }, 7 | "angularCompilerOptions": { 8 | "compilationMode": "partial" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /project-mf/infraestructure/jestconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "transform": { 3 | "^.+\\.(t|j)sx?$": "ts-jest" 4 | }, 5 | "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", 6 | "moduleFileExtensions": [ 7 | "ts", 8 | "tsx", 9 | "js", 10 | "jsx", 11 | "json", 12 | "node" 13 | ] 14 | } -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/ngx-weincode-ds", 4 | "assets": [ 5 | "CHANGELOG.md", 6 | "./assets/transversal_design_1.0.0.min.css" 7 | ], 8 | "lib": { 9 | "entryFile": "src/public-api.ts" 10 | } 11 | } -------------------------------------------------------------------------------- /ssr-example/tsconfig.server.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.app.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/server", 6 | "types": [ 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "src/main.server.ts", 12 | "server.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /ssr-example/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": [ 7 | "jasmine" 8 | ] 9 | }, 10 | "include": [ 11 | "src/**/*.spec.ts", 12 | "src/**/*.d.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | async navigateTo(): Promise { 5 | return browser.get(browser.baseUrl); 6 | } 7 | 8 | async getTitleText(): Promise { 9 | return element(by.css('app-root .content span')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ssr-example/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /clean-arch-example/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | async navigateTo(): Promise { 5 | return browser.get(browser.baseUrl); 6 | } 7 | 8 | async getTitleText(): Promise { 9 | return element(by.css('app-root .content span')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ssr-example/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SsrExample 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /atomic-design/showcase/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.AlbumApiService = void 0; 4 | var album_api_service_1 = require("./driven-adapter/album-api/album-api-service"); 5 | Object.defineProperty(exports, "AlbumApiService", { enumerable: true, get: function () { return album_api_service_1.AlbumApiService; } }); 6 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Showcase 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.ts] 12 | quote_type = single 13 | 14 | [*.md] 15 | max_line_length = off 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /atomic-design/showcase/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "src/main.ts", 10 | "src/polyfills.ts" 11 | ], 12 | "include": [ 13 | "src/**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /clean-arch-example/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ClenArchExample 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /clean-arch-example/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "src/main.ts", 10 | "src/polyfills.ts" 11 | ], 12 | "include": [ 13 | "src/**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/driven-adapter.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.AlbumApiService = void 0; 4 | var album_api_service_1 = require("./driven-adapter/album-api/album-api-service"); 5 | Object.defineProperty(exports, "AlbumApiService", { enumerable: true, get: function () { return album_api_service_1.AlbumApiService; } }); 6 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mf 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../../out-tsc/e2e", 6 | "module": "commonjs", 7 | "target": "es2018", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Host 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../../out-tsc/e2e", 6 | "module": "commonjs", 7 | "target": "es2018", 8 | "types": [ 9 | "jasmine", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/public-api.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Public API Surface of ngx-weincode-ds 3 | */ 4 | 5 | export * from './lib/ngx-weincode-ds.service'; 6 | export * from './lib/ngx-weincode-ds.component'; 7 | export * from './lib/ngx-weincode-ds.module'; 8 | export * from './lib/atoms/button/wc-btn.directive'; 9 | export * from './lib/molecules/wc-card/wc-card.component'; 10 | -------------------------------------------------------------------------------- /project-mf/domain/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "module": "commonjs", 5 | "declaration": true, 6 | "outDir": "./lib", 7 | "strict": true 8 | }, 9 | "include": [ 10 | "src", 11 | "test" 12 | ], 13 | "exclude": [ 14 | "node_modules", 15 | "**/__tests__/*", 16 | "test/**/*.spec.ts", 17 | "test/**/*.test.ts" 18 | ] 19 | } -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showmf/showmf.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-showmf', 5 | templateUrl: './showmf.component.html', 6 | styleUrls: ['./showmf.component.scss'] 7 | }) 8 | export class ShowmfComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit(): void { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "src/main.ts", 10 | "src/polyfills.ts" 11 | ], 12 | "include": [ 13 | "src/**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": [ 9 | "src/main.ts", 10 | "src/polyfills.ts" 11 | ], 12 | "include": [ 13 | "src/**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /ssr-example/src/app/app.server.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { ServerModule } from '@angular/platform-server'; 3 | 4 | import { AppModule } from './app.module'; 5 | import { AppComponent } from './app.component'; 6 | 7 | @NgModule({ 8 | imports: [ 9 | AppModule, 10 | ServerModule, 11 | ], 12 | bootstrap: [AppComponent], 13 | }) 14 | export class AppServerModule {} 15 | -------------------------------------------------------------------------------- /project-mf/domain/lib/album/use_case/get-album-use-case.d.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs'; 2 | import { Album } from '../models/album'; 3 | import { AlbumGateway } from '../models/gateway/album-gateway'; 4 | export declare class GetAlbumUseCases { 5 | private _albumGateWay; 6 | constructor(_albumGateWay: AlbumGateway); 7 | getByID(id: string): Observable; 8 | getAll(): Observable; 9 | } 10 | -------------------------------------------------------------------------------- /project-mf/domain/lib/use_case/get-album-use-case.d.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs'; 2 | import { Album } from '../models/album'; 3 | import { AlbumGateway } from '../models/gateway/album-gateway'; 4 | export declare class GetAlbumUseCases { 5 | private _albumGateWay; 6 | constructor(_albumGateWay: AlbumGateway); 7 | getAlbumById(id: string): Observable; 8 | getAllAlbum(): Observable; 9 | } 10 | -------------------------------------------------------------------------------- /clean-arch-example/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /clean-arch-example/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": [ 7 | "jasmine" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /atomic-design/showcase/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/spec", 6 | "types": [ 7 | "jasmine" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /project-mf/infraestructure/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "module": "commonjs", 5 | "declaration": true, 6 | "outDir": "./lib", 7 | "esModuleInterop": true, 8 | "strict": true 9 | }, 10 | "include": [ 11 | "src", 12 | "test" 13 | ], 14 | "exclude": [ 15 | "node_modules", 16 | "**/__tests__/*", 17 | "test/**/*.spec.ts", 18 | "test/**/*.test.ts" 19 | ] 20 | } -------------------------------------------------------------------------------- /project-mf/web/react/remote/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/spec", 6 | "types": [ 7 | "jasmine" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts" 12 | ], 13 | "include": [ 14 | "**/*.spec.ts", 15 | "**/*.d.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/album-api-service.d.ts: -------------------------------------------------------------------------------- 1 | import { Album } from 'core-weincode/lib/models/album'; 2 | import { AlbumGateway } from 'core-weincode/lib/models/gateway/album-gateway'; 3 | import { Observable } from 'rxjs'; 4 | export declare class AlbumApiService extends AlbumGateway { 5 | private _url; 6 | getByID(id: string): Observable; 7 | getAll(): Observable; 8 | saveNew(_alb: Album): Observable; 9 | } 10 | -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/driven-adapter/album-api/album-api-service.d.ts: -------------------------------------------------------------------------------- 1 | import { Album } from 'core-weincode/lib/domain'; 2 | import { AlbumGateway } from 'core-weincode/lib/domain'; 3 | import { Observable } from 'rxjs'; 4 | export declare class AlbumApiService extends AlbumGateway { 5 | private _url; 6 | getByID(id: string): Observable; 7 | getAll(): Observable; 8 | saveNew(_alb: Album): Observable; 9 | } 10 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/tokens/spacing.scss: -------------------------------------------------------------------------------- 1 | 2 | //q ███████╗██████╗··█████╗··██████╗██╗███╗···██╗·██████╗· 3 | //q ██╔════╝██╔══██╗██╔══██╗██╔════╝██║████╗··██║██╔════╝· 4 | //q ███████╗██████╔╝███████║██║·····██║██╔██╗·██║██║··███╗ 5 | //q ╚════██║██╔═══╝·██╔══██║██║·····██║██║╚██╗██║██║···██║ 6 | //q ███████║██║·····██║··██║╚██████╗██║██║·╚████║╚██████╔╝ 7 | //q ╚══════╝╚═╝·····╚═╝··╚═╝·╚═════╝╚═╝╚═╝··╚═══╝·╚═════╝· 8 | 9 | $space:10px; 10 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/lib", 6 | "declaration": true, 7 | "declarationMap": true, 8 | "inlineSources": true, 9 | "types": [] 10 | }, 11 | "exclude": [ 12 | "src/test.ts", 13 | "**/*.spec.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/ngx-weincode-ds.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'lib-ngx-weincode-ds', 5 | template: ` 6 |

7 | ngx-weincode-ds works! 8 |

9 | `, 10 | styles: [ 11 | ] 12 | }) 13 | export class NgxWeincodeDsComponent implements OnInit { 14 | 15 | constructor() { } 16 | 17 | ngOnInit(): void { 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/bootstrap.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/spec", 6 | "types": [ 7 | "jasmine" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/bootstrap.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "../../out-tsc/spec", 6 | "types": [ 7 | "jasmine" 8 | ] 9 | }, 10 | "files": [ 11 | "src/test.ts", 12 | "src/polyfills.ts" 13 | ], 14 | "include": [ 15 | "src/**/*.spec.ts", 16 | "src/**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /ssr-example/src/main.ts: -------------------------------------------------------------------------------- 1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 2 | 3 | import { AppModule } from './app/app.module'; 4 | 5 | 6 | function bootstrap() { 7 | platformBrowserDynamic().bootstrapModule(AppModule) 8 | .catch(err => console.error(err)); 9 | }; 10 | 11 | 12 | if (document.readyState === 'complete') { 13 | bootstrap(); 14 | } else { 15 | document.addEventListener('DOMContentLoaded', bootstrap); 16 | } 17 | 18 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/atoms/links.scss: -------------------------------------------------------------------------------- 1 | @import "../fundations/atomos/links.fundations.scss"; 2 | 3 | .wc-a{ 4 | border-radius: 2px; 5 | color: $links_primary_color; 6 | cursor: pointer; 7 | display: inline-block; 8 | font-weight: 500; 9 | margin: 0; 10 | padding: 10px; 11 | text-decoration: none; 12 | } 13 | 14 | .wc-a:hover { 15 | background-color: $links_primary_color_hover_bg; 16 | color: $links_primary_color_hover; 17 | } -------------------------------------------------------------------------------- /project-mf/domain/test/models/album.test.ts: -------------------------------------------------------------------------------- 1 | 2 | import {describe, expect, test} from '@jest/globals'; 3 | import {Album} from '../../src/album/models/album'; 4 | test('Test Album the hardest test xD 🤣 ', () => { 5 | //Arrenge 6 | let fakeAlbum = new Album(); 7 | let expectedTitle = 'a little fake Album😂'; 8 | //Act 9 | fakeAlbum.id = 2; 10 | fakeAlbum.title = expectedTitle; 11 | fakeAlbum.userId = 14; 12 | //Assert 13 | expect(expectedTitle).toEqual(fakeAlbum.title); 14 | }); -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/common/circular-progress-indicator/circular-progress-indicator.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-circular-progress-indicator', 5 | templateUrl: './circular-progress-indicator.component.html', 6 | styleUrls: ['./circular-progress-indicator.component.scss'] 7 | }) 8 | export class CircularProgressIndicatorComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit(): void { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/infraestructure/driven-adapter/album-api/album-api.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { AlbumApiService } from './album-api.service'; 4 | 5 | describe('AlbumApiService', () => { 6 | let service: AlbumApiService; 7 | 8 | beforeEach(() => { 9 | TestBed.configureTestingModule({}); 10 | service = TestBed.inject(AlbumApiService); 11 | }); 12 | 13 | it('should be created', () => { 14 | expect(service).toBeTruthy(); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/common/circular-progress-indicator/circular-progress-indicator.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-circular-progress-indicator', 5 | templateUrl: './circular-progress-indicator.component.html', 6 | styleUrls: ['./circular-progress-indicator.component.scss'] 7 | }) 8 | export class CircularProgressIndicatorComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit(): void { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/common/circular-progress-indicator/circular-progress-indicator.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-circular-progress-indicator', 5 | templateUrl: './circular-progress-indicator.component.html', 6 | styleUrls: ['./circular-progress-indicator.component.scss'] 7 | }) 8 | export class CircularProgressIndicatorComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit(): void { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /project-mf/.gitignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | *.swp 10 | 11 | pids 12 | logs 13 | results 14 | tmp 15 | 16 | # Build 17 | public/css/main.css 18 | 19 | # Coverage reports 20 | coverage 21 | 22 | # API keys and secrets 23 | .env 24 | 25 | # Dependency directory 26 | node_modules 27 | bower_components 28 | 29 | # Editors 30 | .idea 31 | *.iml 32 | 33 | # OS metadata 34 | .DS_Store 35 | Thumbs.db 36 | 37 | # Ignore built ts files 38 | dist/**/* 39 | 40 | # ignore yarn.lock 41 | yarn.lock -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/ngx-weincode-ds.service.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | 3 | import { NgxWeincodeDsService } from './ngx-weincode-ds.service'; 4 | 5 | describe('NgxWeincodeDsService', () => { 6 | let service: NgxWeincodeDsService; 7 | 8 | beforeEach(() => { 9 | TestBed.configureTestingModule({}); 10 | service = TestBed.inject(NgxWeincodeDsService); 11 | }); 12 | 13 | it('should be created', () => { 14 | expect(service).toBeTruthy(); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/molecules/wc-card/wc-card.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 |

{{titleCard}}

7 |

{{contentCard}}

8 | {{leftActionCardText}} 9 | {{rigthActionCardText}} 10 |
11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /project-mf/domain/README.md: -------------------------------------------------------------------------------- 1 | # Core-weincode 2 | 3 | En este paquete subiremos todas las entidades y casos de uso de nuestro proyecto ejemplo para micro front-ends🤯. Este paquete será utilizado como ejemplo en artículo de arquitectura limpia en el mundo web + micro fronts. 4 | 5 | ## Instalar ⚙ 6 | ```s 7 | npm i core-weincode 8 | ``` 9 | 10 | ## Historial versiones 🌳 11 | * 1.0.0 Inicio del proyecto 🎬🏁 12 | * 1.1.0 Se agrega la nueva entidad Album junto con sus casos de uso 💿 13 | * 1.1.1 Se agrega la documentación del paquete 📚 14 | * 1.1.2 Fix Test 🧪 -------------------------------------------------------------------------------- /project-mf/web/app-wrk/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "downlevelIteration": true, 9 | "experimentalDecorators": true, 10 | "moduleResolution": "node", 11 | "importHelpers": true, 12 | "target": "es2020", 13 | "module": "es2020", 14 | "lib": [ 15 | "es2018", 16 | "dom" 17 | ] 18 | }, 19 | "angularCompilerOptions": { 20 | "enableI18nLegacyMessageIdFormat": false 21 | } 22 | } -------------------------------------------------------------------------------- /ssr-example/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 3 | "version": "0.2.0", 4 | "configurations": [ 5 | { 6 | "name": "ng serve", 7 | "type": "pwa-chrome", 8 | "request": "launch", 9 | "preLaunchTask": "npm: start", 10 | "url": "http://localhost:4200/" 11 | }, 12 | { 13 | "name": "ng test", 14 | "type": "chrome", 15 | "request": "launch", 16 | "preLaunchTask": "npm: test", 17 | "url": "http://localhost:9876/debug.html" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /clean-arch-example/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 3 | "version": "0.2.0", 4 | "configurations": [ 5 | { 6 | "name": "ng serve", 7 | "type": "pwa-chrome", 8 | "request": "launch", 9 | "preLaunchTask": "npm: start", 10 | "url": "http://localhost:4200/" 11 | }, 12 | { 13 | "name": "ng test", 14 | "type": "chrome", 15 | "request": "launch", 16 | "preLaunchTask": "npm: test", 17 | "url": "http://localhost:9876/debug.html" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /atomic-design/showcase/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 3 | "version": "0.2.0", 4 | "configurations": [ 5 | { 6 | "name": "ng serve", 7 | "type": "pwa-chrome", 8 | "request": "launch", 9 | "preLaunchTask": "npm: start", 10 | "url": "http://localhost:4200/" 11 | }, 12 | { 13 | "name": "ng test", 14 | "type": "chrome", 15 | "request": "launch", 16 | "preLaunchTask": "npm: test", 17 | "url": "http://localhost:9876/debug.html" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/view-models/album-card/album-card.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Titulo Album :

4 | 5 |

{{datos?.title}}

6 |

Album id :

7 | 8 |

{{datos?.id}}

9 |

Album userId :

10 | 11 |

{{datos?.userId}}

12 |
-------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/tokens/typo.scss: -------------------------------------------------------------------------------- 1 | 2 | // ████████╗██╗···██╗██████╗··██████╗· 3 | // ╚══██╔══╝╚██╗·██╔╝██╔══██╗██╔═══██╗ 4 | // ···██║····╚████╔╝·██████╔╝██║···██║ 5 | // ···██║·····╚██╔╝··██╔═══╝·██║···██║ 6 | // ···██║······██║···██║·····╚██████╔╝ 7 | // ···╚═╝······╚═╝···╚═╝······╚═════╝· 8 | 9 | 10 | 11 | $font:'Montserrat', sans-serif; 12 | 13 | // Typos 14 | $h1:1.50rem; 15 | $h2:1.30rem; 16 | $h3:1.20rem; 17 | $p:1.13rem; 18 | $small:1.10rem; 19 | 20 | // Typo Bolds 21 | 22 | $black:800; 23 | $bolder:700; 24 | $medium:600; 25 | $normal:500; 26 | $light:400; 27 | 28 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 3 | "version": "0.2.0", 4 | "configurations": [ 5 | { 6 | "name": "ng serve", 7 | "type": "pwa-chrome", 8 | "request": "launch", 9 | "preLaunchTask": "npm: start", 10 | "url": "http://localhost:4200/" 11 | }, 12 | { 13 | "name": "ng test", 14 | "type": "chrome", 15 | "request": "launch", 16 | "preLaunchTask": "npm: test", 17 | "url": "http://localhost:9876/debug.html" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showinfo/showinfo-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { ShowmfComponent } from '../showmf/showmf.component'; 4 | import { ShowinfoComponent } from './showinfo.component'; 5 | import { ShowinfoModule } from './showinfo.module'; 6 | 7 | const routes: Routes = [{ 8 | path:'', 9 | component:ShowinfoComponent 10 | }]; 11 | 12 | @NgModule({ 13 | imports: [RouterModule.forChild(routes)], 14 | exports: [RouterModule] 15 | }) 16 | export class ShowinfoRoutingModule { } 17 | -------------------------------------------------------------------------------- /project-mf/domain/lib/album/use_case/get-album-use-case.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.GetAlbumUseCases = void 0; 4 | class GetAlbumUseCases { 5 | constructor(_albumGateWay) { 6 | this._albumGateWay = _albumGateWay; 7 | } 8 | getByID(id) { 9 | // TODO: En este sitio podríamos manejar las configuraciones 10 | // en cache 11 | return this._albumGateWay.getByID(id); 12 | } 13 | getAll() { 14 | return this._albumGateWay.getAll(); 15 | } 16 | } 17 | exports.GetAlbumUseCases = GetAlbumUseCases; 18 | -------------------------------------------------------------------------------- /project-mf/domain/lib/use_case/get-album-use-case.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.GetAlbumUseCases = void 0; 4 | class GetAlbumUseCases { 5 | constructor(_albumGateWay) { 6 | this._albumGateWay = _albumGateWay; 7 | } 8 | getAlbumById(id) { 9 | // TODO: En este sitio podríamos manejar las configuraciones 10 | // en cache 11 | return this._albumGateWay.getByID(id); 12 | } 13 | getAllAlbum() { 14 | return this._albumGateWay.getAll(); 15 | } 16 | } 17 | exports.GetAlbumUseCases = GetAlbumUseCases; 18 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { BrowserModule } from '@angular/platform-browser'; 3 | import { NgxWeincodeDsModule } from 'ngx-weincode-ds'; 4 | 5 | 6 | import { AppRoutingModule } from './app-routing.module'; 7 | import { AppComponent } from './app.component'; 8 | 9 | 10 | @NgModule({ 11 | declarations: [ 12 | AppComponent, 13 | 14 | 15 | ], 16 | imports: [ 17 | BrowserModule, 18 | NgxWeincodeDsModule, 19 | AppRoutingModule 20 | ], 21 | providers: [], 22 | bootstrap: [AppComponent] 23 | }) 24 | export class AppModule { } 25 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { HomeComponent } from './home/home.component'; 4 | 5 | const routes: Routes = [ 6 | { 7 | path:'', component: HomeComponent, pathMatch: 'full' 8 | }, 9 | { 10 | path: 'mf', 11 | loadChildren: () => 12 | import('mf/ShowinfoModule').then((m) => m.ShowinfoModule), 13 | } 14 | ]; 15 | 16 | @NgModule({ 17 | imports: [RouterModule.forRoot(routes)], 18 | exports: [RouterModule] 19 | }) 20 | export class AppRoutingModule { } 21 | -------------------------------------------------------------------------------- /project-mf/domain/src/album/use_case/get-album-use-case.ts: -------------------------------------------------------------------------------- 1 | 2 | import { Observable } from 'rxjs'; 3 | import { Album } from '../models/album'; 4 | import { AlbumGateway } from '../models/gateway/album-gateway'; 5 | 6 | 7 | 8 | export class GetAlbumUseCases { 9 | constructor(private _albumGateWay: AlbumGateway) { } 10 | getByID(id: string): Observable { 11 | // TODO: En este sitio podríamos manejar las configuraciones 12 | // en cache 13 | return this._albumGateWay.getByID(id); 14 | } 15 | getAll(): Observable { 16 | return this._albumGateWay.getAll(); 17 | } 18 | } -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showinfo/showinfo.component.html: -------------------------------------------------------------------------------- 1 |

Angular 🅰️ mf 🚀

2 |
3 |

Titulo Album :

4 | 5 |

{{datos?.title}}

6 |

Album id :

7 | 8 |

{{datos?.id}}

9 |

Album userId :

10 | 11 |

{{datos?.userId}}

12 |
13 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | const root = ReactDOM.createRoot(document.getElementById('root')); 8 | root.render( 9 | 10 | 11 | 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /ssr-example/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { InfoComponent } from './info/info.component'; 4 | import { VisionComponent } from './vision/vision.component'; 5 | 6 | const routes: Routes = [{ 7 | path: 'info', 8 | component: InfoComponent 9 | }, 10 | { 11 | path: 'vision', 12 | component: VisionComponent 13 | } 14 | ]; 15 | 16 | @NgModule({ 17 | imports: [RouterModule.forRoot(routes, { 18 | initialNavigation: 'enabledBlocking' 19 | })], 20 | exports: [RouterModule] 21 | }) 22 | export class AppRoutingModule { } 23 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/app-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { ShowmfComponent } from './showmf/showmf.component'; 4 | 5 | const routes: Routes = [ 6 | { 7 | path:'', 8 | component: ShowmfComponent, 9 | 10 | }, 11 | { 12 | path: 'mf', 13 | loadChildren: () => 14 | import("./showinfo/showinfo.module").then((m) => m.ShowinfoModule), 15 | }, 16 | ]; 17 | 18 | @NgModule({ 19 | imports: [RouterModule.forRoot(routes)], 20 | exports: [RouterModule] 21 | }) 22 | export class AppRoutingModule { } 23 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "transversal-design", 3 | "version": "1.0.0", 4 | "description": "a little example about atomic design", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Daniel Herrera Sáchez @weincode", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "gulp": "^4.0.2", 13 | "gulp-sass": "^5.1.0", 14 | "sass": "^1.55.0" 15 | }, 16 | "dependencies": { 17 | "gulp-concat": "^2.6.1", 18 | "gulp-minify-css": "^1.2.4", 19 | "gulp-run": "^1.7.1", 20 | "node-sass": "^7.0.3" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /project-mf/infraestructure/test/driven-adapters/album-api/album-api.service.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@jest/globals'; 2 | import { AlbumApiService } from '../../../src/driven-adapter/album-api/album-api-service' 3 | 4 | test('Test Album Api Service 🤣 ', done => { 5 | //Arrenge 6 | let fakeGetAlbumApi = new AlbumApiService(); 7 | let expectedTitle = 'consequatur autem doloribus natus consectetur'; 8 | //Act 9 | let getAlbumById$ = fakeGetAlbumApi.getByID('12'); 10 | getAlbumById$.subscribe((data) => { 11 | //Assert 12 | expect(expectedTitle).toEqual(data.title); 13 | done(); 14 | }) 15 | }); 16 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/Organisms/top_navbar.scss: -------------------------------------------------------------------------------- 1 | @import "../tokens/typo.scss"; 2 | @import "../tokens/colors.scss"; 3 | @import "../tokens/spacing.scss"; 4 | .top_navbar{ 5 | top: 0; 6 | left: 0; 7 | background-color:$background_blue; 8 | height: 50px; 9 | display: flex; 10 | align-items: center; 11 | &_brand{ 12 | width: 150px; 13 | background-color: $brand_primary_scale_00; 14 | height: 50px; 15 | } 16 | &_menu { 17 | width: 100%; 18 | text-align: right; 19 | display: flex; 20 | justify-content: flex-end; 21 | >a{ 22 | margin: $space; 23 | color: $primary_action 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/src/App.js: -------------------------------------------------------------------------------- 1 | import logo from './logo.svg'; 2 | import './App.css'; 3 | 4 | function App() { 5 | return ( 6 |
7 |
8 | logo 9 |

10 | Edit src/App.js and save to reload. 11 |

12 | 18 | Learn React 19 | 20 |
21 |
22 | ); 23 | } 24 | 25 | export default App; 26 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/Molecules/card.scss: -------------------------------------------------------------------------------- 1 | .wc-card { 2 | border: #e2e1e0 solid 5px; 3 | box-shadow: -1px 2px 4px rgba(0, 0, 0, .25), 1px 1px 3px rgba(0, 0, 0, .1); 4 | max-width: 340px; 5 | transition: all 0.3s cubic-bezier(.25, .8, .25, 1); 6 | } 7 | 8 | .wc-card-media { 9 | width: 100%; 10 | } 11 | 12 | .wc-card-details { 13 | padding: 5px 15px; 14 | } 15 | 16 | .wc-card-head { 17 | font-weight: 400; 18 | } 19 | 20 | .wc-card-head { 21 | font-size: 26px; 22 | margin-bottom: 15px; 23 | } 24 | 25 | .wc-card:hover { 26 | box-shadow: 0 48px 58px rgba(110, 110, 110, 0.25), 0 10px 10px rgba(110, 110, 110, 0.25); 27 | } 28 | -------------------------------------------------------------------------------- /ssr-example/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { isPlatformBrowser } from '@angular/common'; 2 | import { Component, Inject, OnInit, PLATFORM_ID } from '@angular/core'; 3 | 4 | @Component({ 5 | selector: 'app-root', 6 | templateUrl: './app.component.html', 7 | styleUrls: ['./app.component.scss'] 8 | }) 9 | export class AppComponent implements OnInit { 10 | isWeb = false; 11 | constructor(@Inject(PLATFORM_ID) platform:Object){ 12 | this.isWeb = isPlatformBrowser(PLATFORM_ID); 13 | } 14 | ngOnInit(): void { 15 | if (this.isWeb){ 16 | console.log(document.getElementById('Hola')?.textContent) 17 | } 18 | } 19 | title = 'ssr-example'; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/ngx-weincode-ds.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { WcBtnDirective } from './atoms/button/wc-btn.directive'; 3 | import { NgxWeincodeDsComponent } from './ngx-weincode-ds.component'; 4 | import { WcCardComponent } from './molecules/wc-card/wc-card.component'; 5 | 6 | 7 | 8 | 9 | @NgModule({ 10 | declarations: [ 11 | NgxWeincodeDsComponent, 12 | WcBtnDirective, 13 | WcCardComponent 14 | ], 15 | imports: [ 16 | ], 17 | exports: [ 18 | NgxWeincodeDsComponent, 19 | WcCardComponent, 20 | WcBtnDirective 21 | ] 22 | }) 23 | export class NgxWeincodeDsModule { } 24 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var sass = require('gulp-sass')(require('sass')); 3 | var run = require('gulp-run'); 4 | var concat = require('gulp-concat'); 5 | var minifyCSS = require('gulp-minify-css'); 6 | var version= require('./package.json'); 7 | 8 | function style_min(){ 9 | return gulp.src('scss/**/*.scss') 10 | .pipe(sass()) // Converts Sass to CSS with gulp-sass 11 | .pipe(minifyCSS()) 12 | .pipe(concat('transversal_design_'+version.version+'.min.css')) 13 | .pipe(gulp.dest('public/stylesheets/min')) 14 | } 15 | 16 | gulp.task('watch', function(){ 17 | gulp.watch('scss/**/*.scss', gulp.series(style_min)); 18 | }); -------------------------------------------------------------------------------- /clean-arch-example/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # For the full list of supported browsers by the Angular framework, please see: 6 | # https://angular.io/guide/browser-support 7 | 8 | # You can see what browsers were selected by your queries by running: 9 | # npx browserslist 10 | 11 | last 1 Chrome version 12 | last 1 Firefox version 13 | last 2 Edge major versions 14 | last 2 Safari major versions 15 | last 2 iOS major versions 16 | Firefox ESR 17 | -------------------------------------------------------------------------------- /atomic-design/showcase/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # For the full list of supported browsers by the Angular framework, please see: 6 | # https://angular.io/guide/browser-support 7 | 8 | # You can see what browsers were selected by your queries by running: 9 | # npx browserslist 10 | 11 | last 1 Chrome version 12 | last 1 Firefox version 13 | last 2 Edge major versions 14 | last 2 Safari major versions 15 | last 2 iOS major versions 16 | Firefox ESR 17 | -------------------------------------------------------------------------------- /ssr-example/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { BrowserModule } from '@angular/platform-browser'; 3 | 4 | import { AppRoutingModule } from './app-routing.module'; 5 | import { AppComponent } from './app.component'; 6 | import { InfoComponent } from './info/info.component'; 7 | import { VisionComponent } from './vision/vision.component'; 8 | 9 | @NgModule({ 10 | declarations: [ 11 | AppComponent, 12 | InfoComponent, 13 | VisionComponent 14 | ], 15 | imports: [ 16 | BrowserModule.withServerTransition({ appId: 'serverApp' }), 17 | AppRoutingModule 18 | ], 19 | providers: [], 20 | bootstrap: [AppComponent] 21 | }) 22 | export class AppModule { } 23 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { loadRemoteModule } from '@angular-architects/module-federation'; 2 | import { Component, ComponentFactoryResolver, ComponentRef, OnInit, ViewContainerRef } from '@angular/core'; 3 | import { ShowmfComponent } from 'projects/mf/src/app/showmf/showmf.component'; 4 | 5 | @Component({ 6 | selector: 'app-home', 7 | templateUrl: './home.component.html', 8 | styleUrls: ['./home.component.scss'] 9 | }) 10 | export class HomeComponent implements OnInit { 11 | 12 | constructor( private cfr: ComponentFactoryResolver, 13 | private vcref: ViewContainerRef) { } 14 | 15 | async ngOnInit(): Promise { 16 | 17 | } 18 | 19 | 20 | } 21 | -------------------------------------------------------------------------------- /ssr-example/src/app/info/info.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { InfoComponent } from './info.component'; 4 | 5 | describe('InfoComponent', () => { 6 | let component: InfoComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ InfoComponent ] 12 | }) 13 | .compileComponents(); 14 | 15 | fixture = TestBed.createComponent(InfoComponent); 16 | component = fixture.componentInstance; 17 | fixture.detectChanges(); 18 | }); 19 | 20 | it('should create', () => { 21 | expect(component).toBeTruthy(); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /ssr-example/src/app/vision/vision.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { VisionComponent } from './vision.component'; 4 | 5 | describe('VisionComponent', () => { 6 | let component: VisionComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ VisionComponent ] 12 | }) 13 | .compileComponents(); 14 | 15 | fixture = TestBed.createComponent(VisionComponent); 16 | component = fixture.componentInstance; 17 | fixture.detectChanges(); 18 | }); 19 | 20 | it('should create', () => { 21 | expect(component).toBeTruthy(); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | /bazel-out 8 | 9 | # Node 10 | /node_modules 11 | npm-debug.log 12 | yarn-error.log 13 | 14 | # IDEs and editors 15 | .idea/ 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # Visual Studio Code 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | .history/* 30 | 31 | # Miscellaneous 32 | /.angular/cache 33 | .sass-cache/ 34 | /connect.lock 35 | /coverage 36 | /libpeerconnection.log 37 | testem.log 38 | /typings 39 | 40 | # System files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/domain/usecase/get-album-use-case.ts: -------------------------------------------------------------------------------- 1 | import { Inject, inject, Injectable } from '@angular/core'; 2 | import { from, Observable } from 'rxjs'; 3 | import { Album } from '../models/Album/album'; 4 | import {AlbumGateway} from '../models/Album/gateway/album-gateway'; 5 | 6 | @Injectable({ 7 | providedIn: 'root' 8 | }) 9 | 10 | export class GetAlbumUseCases { 11 | constructor( private _albumGateWay: AlbumGateway) {} 12 | getAlbumById (id: String) : Observable { 13 | //TODO: En este sitio podríamos manejar las configuraciones 14 | //en cache 15 | return this._albumGateWay.getByID(id); 16 | } 17 | getAllAlbum () : Observable > { 18 | return this._albumGateWay.getAll(); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /ssr-example/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | /bazel-out 8 | 9 | # Node 10 | /node_modules 11 | npm-debug.log 12 | yarn-error.log 13 | 14 | # IDEs and editors 15 | .idea/ 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # Visual Studio Code 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | .history/* 30 | 31 | # Miscellaneous 32 | /.angular/cache 33 | .sass-cache/ 34 | /connect.lock 35 | /coverage 36 | /libpeerconnection.log 37 | testem.log 38 | /typings 39 | 40 | # System files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /clean-arch-example/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | /bazel-out 8 | 9 | # Node 10 | /node_modules 11 | npm-debug.log 12 | yarn-error.log 13 | 14 | # IDEs and editors 15 | .idea/ 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # Visual Studio Code 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | .history/* 30 | 31 | # Miscellaneous 32 | /.angular/cache 33 | .sass-cache/ 34 | /connect.lock 35 | /coverage 36 | /libpeerconnection.log 37 | testem.log 38 | /typings 39 | 40 | # System files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /atomic-design/showcase/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | /bazel-out 8 | 9 | # Node 10 | /node_modules 11 | npm-debug.log 12 | yarn-error.log 13 | 14 | # IDEs and editors 15 | .idea/ 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # Visual Studio Code 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | .history/* 30 | 31 | # Miscellaneous 32 | /.angular/cache 33 | .sass-cache/ 34 | /connect.lock 35 | /coverage 36 | /libpeerconnection.log 37 | testem.log 38 | /typings 39 | 40 | # System files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/plugins/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /clean-arch-example/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/plugins/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/fundations/fonts.scss: -------------------------------------------------------------------------------- 1 | @import "../tokens/typo.scss"; 2 | @import "../tokens/colors.scss"; 3 | @import "../tokens/spacing.scss"; 4 | 5 | 6 | $button-typo :$font; 7 | body, html{ 8 | font-family: $font; 9 | text-rendering: optimizeLegibility; 10 | -webkit-font-smoothing: antialiased; 11 | color: $black_normal 12 | } 13 | 14 | h1{ 15 | font-size:$h1; 16 | } 17 | h2{ 18 | font-size:$h2; 19 | } 20 | h3{ 21 | font-size:$h3; 22 | } 23 | h1,h2,h3{ 24 | margin-top: $space; 25 | margin-bottom: $space; 26 | } 27 | 28 | p,a,.normal{ 29 | font-size: $p; 30 | margin-top: $space; 31 | margin-bottom: $space; 32 | 33 | } 34 | 35 | .small{ 36 | font-size: $small; 37 | } 38 | 39 | .bold{ 40 | font-weight: bolder; 41 | } 42 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | /bazel-out 8 | 9 | # Node 10 | /node_modules 11 | npm-debug.log 12 | yarn-error.log 13 | 14 | # IDEs and editors 15 | .idea/ 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # Visual Studio Code 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | .history/* 30 | 31 | # Miscellaneous 32 | /.angular/cache 33 | .sass-cache/ 34 | /connect.lock 35 | /coverage 36 | /libpeerconnection.log 37 | testem.log 38 | /typings 39 | 40 | # System files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | /bazel-out 8 | 9 | # Node 10 | /node_modules 11 | npm-debug.log 12 | yarn-error.log 13 | 14 | # IDEs and editors 15 | .idea/ 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # Visual Studio Code 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | .history/* 30 | 31 | # Miscellaneous 32 | /.angular/cache 33 | .sass-cache/ 34 | /connect.lock 35 | /coverage 36 | /libpeerconnection.log 37 | testem.log 38 | /typings 39 | 40 | # System files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /project-mf/domain/lib/domain.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.GetAlbumUseCases = exports.AlbumGateway = exports.Album = void 0; 4 | var album_1 = require("./album/models/album"); 5 | Object.defineProperty(exports, "Album", { enumerable: true, get: function () { return album_1.Album; } }); 6 | var album_gateway_1 = require("./album/models/gateway/album-gateway"); 7 | Object.defineProperty(exports, "AlbumGateway", { enumerable: true, get: function () { return album_gateway_1.AlbumGateway; } }); 8 | var get_album_use_case_1 = require("./album/use_case/get-album-use-case"); 9 | Object.defineProperty(exports, "GetAlbumUseCases", { enumerable: true, get: function () { return get_album_use_case_1.GetAlbumUseCases; } }); 10 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { BrowserModule } from '@angular/platform-browser'; 3 | 4 | import { AppRoutingModule } from './app-routing.module'; 5 | import { AppComponent } from './app.component'; 6 | import { HomeComponent } from './home/home.component'; 7 | import { CircularProgressIndicatorComponent } from './common/circular-progress-indicator/circular-progress-indicator.component'; 8 | 9 | @NgModule({ 10 | declarations: [ 11 | AppComponent, 12 | HomeComponent, 13 | CircularProgressIndicatorComponent 14 | ], 15 | imports: [ 16 | BrowserModule, 17 | AppRoutingModule 18 | ], 19 | providers: [], 20 | bootstrap: [AppComponent] 21 | }) 22 | export class AppModule { } 23 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/home/home.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { HomeComponent } from './home.component'; 4 | 5 | describe('HomeComponent', () => { 6 | let component: HomeComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ HomeComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(HomeComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/plugins/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * For easier debugging in development mode, you can import the following file 11 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 12 | * 13 | * This import should be commented out in production mode because it will have a negative impact 14 | * on performance if an error is thrown. 15 | */ 16 | // import 'zone.js/plugins/zone-error'; // Included with Angular CLI. 17 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/molecules/wc-card/wc-card.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { WcCardComponent } from './wc-card.component'; 4 | 5 | describe('WcCardComponent', () => { 6 | let component: WcCardComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ WcCardComponent ] 12 | }) 13 | .compileComponents(); 14 | 15 | fixture = TestBed.createComponent(WcCardComponent); 16 | component = fixture.componentInstance; 17 | fixture.detectChanges(); 18 | }); 19 | 20 | it('should create', () => { 21 | expect(component).toBeTruthy(); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { browser, logging } from 'protractor'; 2 | import { AppPage } from './app.po'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', async () => { 12 | await page.navigateTo(); 13 | expect(await page.getTitleText()).toEqual('mf app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showmf/showmf.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { ShowmfComponent } from './showmf.component'; 4 | 5 | describe('ShowmfComponent', () => { 6 | let component: ShowmfComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ ShowmfComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(ShowmfComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { browser, logging } from 'protractor'; 2 | import { AppPage } from './app.po'; 3 | 4 | describe('workspace-project App', () => { 5 | let page: AppPage; 6 | 7 | beforeEach(() => { 8 | page = new AppPage(); 9 | }); 10 | 11 | it('should display welcome message', async () => { 12 | await page.navigateTo(); 13 | expect(await page.getTitleText()).toEqual('host app is running!'); 14 | }); 15 | 16 | afterEach(async () => { 17 | // Assert that there are no errors emitted from the browser 18 | const logs = await browser.manage().logs().get(logging.Type.BROWSER); 19 | expect(logs).not.toContain(jasmine.objectContaining({ 20 | level: logging.Level.SEVERE, 21 | } as logging.Entry)); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # For the full list of supported browsers by the Angular framework, please see: 6 | # https://angular.io/guide/browser-support 7 | 8 | # You can see what browsers were selected by your queries by running: 9 | # npx browserslist 10 | 11 | last 1 Chrome version 12 | last 1 Firefox version 13 | last 2 Edge major versions 14 | last 2 Safari major versions 15 | last 2 iOS major versions 16 | Firefox ESR 17 | not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. 18 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/.browserslistrc: -------------------------------------------------------------------------------- 1 | # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | 5 | # For the full list of supported browsers by the Angular framework, please see: 6 | # https://angular.io/guide/browser-support 7 | 8 | # You can see what browsers were selected by your queries by running: 9 | # npx browserslist 10 | 11 | last 1 Chrome version 12 | last 1 Firefox version 13 | last 2 Edge major versions 14 | last 2 Safari major versions 15 | last 2 iOS major versions 16 | Firefox ESR 17 | not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. 18 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showinfo/showinfo.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { ShowinfoComponent } from './showinfo.component'; 4 | 5 | describe('ShowinfoComponent', () => { 6 | let component: ShowinfoComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ ShowinfoComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(ShowinfoComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showinfo/showinfo.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { GetAlbumUseCases, Album } from 'core-weincode/lib/domain' 3 | import { delay, Observable } from 'rxjs'; 4 | @Component({ 5 | selector: 'app-showinfo', 6 | templateUrl: './showinfo.component.html', 7 | styleUrls: ['./showinfo.component.scss'] 8 | }) 9 | export class ShowinfoComponent implements OnInit { 10 | 11 | constructor(private _getAlbumUseCase: GetAlbumUseCases) { 12 | 13 | } 14 | response$ ; 15 | datos = new Album(); 16 | ngOnInit(): void { 17 | this.response$ = this._getAlbumUseCase.getByID('12'); 18 | this._getAlbumUseCase.getByID('12').pipe(delay(2000)).subscribe((data: any) => { 19 | this.datos = data; 20 | }); 21 | 22 | } 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/view-models/album-card/album-card.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { AlbumCardComponent } from './album-card.component'; 4 | 5 | describe('AlbumCardComponent', () => { 6 | let component: AlbumCardComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ AlbumCardComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(AlbumCardComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/ngx-weincode-ds.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { NgxWeincodeDsComponent } from './ngx-weincode-ds.component'; 4 | 5 | describe('NgxWeincodeDsComponent', () => { 6 | let component: NgxWeincodeDsComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ NgxWeincodeDsComponent ] 12 | }) 13 | .compileComponents(); 14 | 15 | fixture = TestBed.createComponent(NgxWeincodeDsComponent); 16 | component = fixture.componentInstance; 17 | fixture.detectChanges(); 18 | }); 19 | 20 | it('should create', () => { 21 | expect(component).toBeTruthy(); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # examples_codes_angular 🅰️ 2 | In this repository, we will upload reference architectures and example codes that developers can use as a reference for their projects. If you want to add elements, you must keep in mind that your component is as well documented 📗 as possible so that everyone can benefit 🧪. You are invited to contribute. 3 | 4 | # References 🕵🏼 5 | Please reference this repo in the places that use them 👾 6 | 7 | # examples_codes_angular 🅰️ 8 | En este repo subiremos ejemplos que puedan utilizar los desarrolladores como referente para sus proyectos. Estas invitado a contribuir. 9 | Si deseas agregar elementos debes tener presente que tu componente este lo mejor documentado 📗 posible para que todos se puedan benificiar🧪. 10 | 11 | ## Referencias 🕵🏼 12 | Por favor referencia este repo en los lugares que los utilices 👾 -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/atoms/button/wc-btn.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, Input, HostBinding, ChangeDetectorRef } from '@angular/core'; 2 | 3 | const BUTTON_CLASSES = { 4 | primary: 'wc-btn-primary', 5 | secondary: 'wc-btn-secondary' 6 | }; 7 | @Directive({ 8 | selector: '[wc-btn]', 9 | }) 10 | export class WcBtnDirective { 11 | 12 | /** 13 | * Parámetro para indicar el tipo de botón. 14 | * 15 | * @type {('primary' | 'secondary')} 16 | * @memberof WcBtnDirective 17 | */ 18 | @Input() btnStyle: 'primary' | 'secondary' = 'primary'; 19 | 20 | @HostBinding('class') classes = ''; 21 | constructor(private changeDector: ChangeDetectorRef) { 22 | } 23 | ngAfterViewInit(): void { 24 | this.classes = BUTTON_CLASSES[this.btnStyle]; 25 | this.changeDector.detectChanges(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/atoms/buttons.scss: -------------------------------------------------------------------------------- 1 | @import "../fundations/atomos/btn.fundations.scss"; 2 | 3 | .wc-btn{ 4 | border: none; 5 | padding: 5px; 6 | height: 30px; 7 | width: 100%; 8 | border-radius: 10px; 9 | box-shadow:2px 2px 2px 1px rgba(0, 0, 0, 0.2); 10 | transition: .8s; 11 | &:active{ 12 | box-shadow: none; 13 | } 14 | &-primary { 15 | @extend .wc-btn; 16 | color: $btn_font_color; 17 | background-color: $btn_primary_bg; 18 | 19 | &:hover{ 20 | background-color: $btn_primary_bg_hover; 21 | } 22 | } 23 | &-secondary { 24 | @extend .wc-btn; 25 | color: $btn_font_color; 26 | background-color: $btn_secondary_bg; 27 | 28 | &:hover{ 29 | background-color: $btn_secondary_bg_hover; 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/view-models/album-card/album-card.component.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background: #e2e1e0; 3 | text-align: center; 4 | 5 | } 6 | 7 | .card { 8 | background: #fff; 9 | border-radius: 2px; 10 | display: inline-block; 11 | height: 300px; 12 | margin: 1rem; 13 | position: relative; 14 | width: 400px; 15 | padding: 10px; 16 | } 17 | 18 | .card-1 { 19 | border: #e2e1e0 solid 5px; 20 | box-shadow: 0 15px 10px rgba(255, 255, 255, 0.25), 0 10px 10px rgba(255, 255, 255, 0.25); 21 | transition: all 0.3s cubic-bezier(.25,.8,.25,1); 22 | } 23 | 24 | .card-1:hover { 25 | box-shadow: 0 48px 58px rgba(110, 110, 110, 0.25), 0 10px 10px rgba(110, 110, 110, 0.25); 26 | } 27 | h2, h1{ 28 | margin-bottom: 2px; 29 | 30 | } 31 | h3{ 32 | margin-top: 2px; 33 | text-transform: uppercase; 34 | text-align: center; 35 | background-color: #e2e1e0; 36 | } -------------------------------------------------------------------------------- /clean-arch-example/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: { 11 | context(path: string, deep?: boolean, filter?: RegExp): { 12 | (id: string): T; 13 | keys(): string[]; 14 | }; 15 | }; 16 | 17 | // First, initialize the Angular testing environment. 18 | getTestBed().initTestEnvironment( 19 | BrowserDynamicTestingModule, 20 | platformBrowserDynamicTesting(), 21 | ); 22 | 23 | // Then we find all the tests. 24 | const context = require.context('./', true, /\.spec\.ts$/); 25 | // And load the modules. 26 | context.keys().forEach(context); 27 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: { 11 | context(path: string, deep?: boolean, filter?: RegExp): { 12 | (id: string): T; 13 | keys(): string[]; 14 | }; 15 | }; 16 | 17 | // First, initialize the Angular testing environment. 18 | getTestBed().initTestEnvironment( 19 | BrowserDynamicTestingModule, 20 | platformBrowserDynamicTesting(), 21 | ); 22 | 23 | // Then we find all the tests. 24 | const context = require.context('./', true, /\.spec\.ts$/); 25 | // And load the modules. 26 | context.keys().forEach(context); 27 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | # Only exists if Bazel was run 8 | /bazel-out 9 | 10 | # dependencies 11 | /node_modules 12 | 13 | # profiling files 14 | chrome-profiler-events*.json 15 | speed-measure-plugin*.json 16 | 17 | # IDEs and editors 18 | /.idea 19 | .project 20 | .classpath 21 | .c9/ 22 | *.launch 23 | .settings/ 24 | *.sublime-workspace 25 | 26 | # IDE - VSCode 27 | .vscode/* 28 | !.vscode/settings.json 29 | !.vscode/tasks.json 30 | !.vscode/launch.json 31 | !.vscode/extensions.json 32 | .history/* 33 | 34 | # misc 35 | /.angular/cache 36 | /.sass-cache 37 | /connect.lock 38 | /coverage 39 | /libpeerconnection.log 40 | npm-debug.log 41 | yarn-error.log 42 | testem.log 43 | /typings 44 | 45 | # System Files 46 | .DS_Store 47 | Thumbs.db 48 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/lib/molecules/wc-card/wc-card.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'wc-card', 5 | templateUrl: './wc-card.component.html', 6 | styleUrls: ['./wc-card.component.css'] 7 | }) 8 | export class WcCardComponent implements OnInit { 9 | 10 | /** 11 | * Parámetro para indicar el tipo de botón. 12 | * 13 | * @type {('primary' | 'secondary')} 14 | * @memberof WcBtnDirective 15 | */ 16 | @Input() imgCard:string= ''; 17 | @Input() titleCard:string= ''; 18 | @Input() contentCard:string= ''; 19 | @Input() leftActionCardText:string= ''; 20 | @Input() leftActionLnkCard:string= ''; 21 | @Input() rigthActionCardText:string= '#/'; 22 | @Input() rigthActionLnkCard:string= '#/'; 23 | constructor() { } 24 | 25 | ngOnInit(): void { 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/view-models/album-card/album-card.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { Observable } from 'rxjs'; 3 | import { Album } from 'src/app/domain/models/Album/album'; 4 | import {GetAlbumUseCases} from '../../../domain/usecase/get-album-use-case' 5 | 6 | @Component({ 7 | providers: [], 8 | selector: 'app-album-card', 9 | templateUrl: './album-card.component.html', 10 | styleUrls: ['./album-card.component.scss'] 11 | }) 12 | export class AlbumCardComponent implements OnInit { 13 | 14 | constructor(private _getAlbumUseCase : GetAlbumUseCases) { } 15 | response$: Observable | undefined ; 16 | datos: any; 17 | ngOnInit(): void { 18 | this.response$ = this._getAlbumUseCase.getAlbumById('12'); 19 | this.response$.subscribe ( 20 | (data) => { 21 | this.datos = data; 22 | } 23 | ); 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js'; 4 | import 'zone.js/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: { 12 | context(path: string, deep?: boolean, filter?: RegExp): { 13 | (id: string): T; 14 | keys(): string[]; 15 | }; 16 | }; 17 | 18 | // First, initialize the Angular testing environment. 19 | getTestBed().initTestEnvironment( 20 | BrowserDynamicTestingModule, 21 | platformBrowserDynamicTesting(), 22 | ); 23 | 24 | // Then we find all the tests. 25 | const context = require.context('./', true, /\.spec\.ts$/); 26 | // And load the modules. 27 | context.keys().forEach(context); 28 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/tokens/colors.scss: -------------------------------------------------------------------------------- 1 | 2 | // ·██████╗·██████╗·██╗······██████╗·██████╗· 3 | // ██╔════╝██╔═══██╗██║·····██╔═══██╗██╔══██╗ 4 | // ██║·····██║···██║██║·····██║···██║██████╔╝ 5 | // ██║·····██║···██║██║·····██║···██║██╔══██╗ 6 | // ╚██████╗╚██████╔╝███████╗╚██████╔╝██║··██║ 7 | // ·╚═════╝·╚═════╝·╚══════╝·╚═════╝·╚═╝··╚═╝ 8 | 9 | // Brand colors 10 | $brand_primary_scale_00:#3C2085; 11 | $brand_primary_scale_01:#3D3893; 12 | $brand_primary_scale_03:#505FA1; 13 | $brand_primary_scale_04:#6985AE; 14 | $brand_primary_scale_05:#81A6BC; 15 | $brand_primary_scale_06:#9AC2C9; 16 | $brand_secondary:#0C0839; 17 | $brand_tertiary:#1B105D; 18 | // Action colors 19 | $primary_action:#ABE542; 20 | $secondary_action:#8F97A2; 21 | // Boolean colors 22 | $positive:#15FF93; 23 | $negative:#F04F8D; 24 | //Backgrounds 25 | $background_blue:#233946; 26 | //Basic colors 27 | $white_normal:#f9f9f9; 28 | $black_normal:#1C1D21; 29 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: { 11 | context(path: string, deep?: boolean, filter?: RegExp): { 12 | keys(): string[]; 13 | (id: string): T; 14 | }; 15 | }; 16 | 17 | // First, initialize the Angular testing environment. 18 | getTestBed().initTestEnvironment( 19 | BrowserDynamicTestingModule, 20 | platformBrowserDynamicTesting(), { 21 | teardown: { destroyAfterEach: false } 22 | } 23 | ); 24 | // Then we find all the tests. 25 | const context = require.context('./', true, /\.spec\.ts$/); 26 | // And load the modules. 27 | context.keys().map(context); 28 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: { 11 | context(path: string, deep?: boolean, filter?: RegExp): { 12 | keys(): string[]; 13 | (id: string): T; 14 | }; 15 | }; 16 | 17 | // First, initialize the Angular testing environment. 18 | getTestBed().initTestEnvironment( 19 | BrowserDynamicTestingModule, 20 | platformBrowserDynamicTesting(), { 21 | teardown: { destroyAfterEach: false } 22 | } 23 | ); 24 | // Then we find all the tests. 25 | const context = require.context('./', true, /\.spec\.ts$/); 26 | // And load the modules. 27 | context.keys().map(context); 28 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showinfo/showinfo.component.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background: #e2e1e0; 3 | text-align: center; 4 | 5 | } 6 | 7 | .card { 8 | background: #fff; 9 | border-radius: 2px; 10 | display: inline-block; 11 | height: 300px; 12 | margin: 1rem; 13 | position: relative; 14 | width: 400px; 15 | padding: 10px; 16 | } 17 | 18 | .card-1 { 19 | border: #e2e1e0 solid 5px; 20 | box-shadow: 0 15px 10px rgba(255, 255, 255, 0.25), 0 10px 10px rgba(255, 255, 255, 0.25); 21 | transition: all 0.3s cubic-bezier(.25,.8,.25,1); 22 | } 23 | 24 | .card-1:hover { 25 | box-shadow: 0 48px 58px rgba(110, 110, 110, 0.25), 0 10px 10px rgba(110, 110, 110, 0.25); 26 | } 27 | h2, h1{ 28 | margin-bottom: 2px; 29 | 30 | } 31 | h3{ 32 | margin-top: 2px; 33 | text-transform: uppercase; 34 | text-align: center; 35 | background-color: #e2e1e0; 36 | } -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/showinfo/showinfo.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | 4 | import { ShowinfoRoutingModule } from './showinfo-routing.module'; 5 | import { ShowinfoComponent } from './showinfo.component'; 6 | import { AlbumApiService } from 'infraestructure-weincode/lib/driven-adapter'; 7 | import { GetAlbumUseCases } from 'core-weincode/lib/domain'; 8 | import { CircularProgressIndicatorComponent } from '../common/circular-progress-indicator/circular-progress-indicator.component'; 9 | 10 | @NgModule({ 11 | declarations: [ 12 | ShowinfoComponent, 13 | CircularProgressIndicatorComponent 14 | 15 | ], 16 | imports: [ 17 | CommonModule, 18 | ShowinfoRoutingModule 19 | ], 20 | 21 | providers: [ 22 | AlbumApiService, 23 | { provide: GetAlbumUseCases, useClass: AlbumApiService }], 24 | }) 25 | export class ShowinfoModule { } 26 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/common/circular-progress-indicator/circular-progress-indicator.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { CircularProgressIndicatorComponent } from './circular-progress-indicator.component'; 4 | 5 | describe('CircularProgressIndicatorComponent', () => { 6 | let component: CircularProgressIndicatorComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ CircularProgressIndicatorComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(CircularProgressIndicatorComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/common/circular-progress-indicator/circular-progress-indicator.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { CircularProgressIndicatorComponent } from './circular-progress-indicator.component'; 4 | 5 | describe('CircularProgressIndicatorComponent', () => { 6 | let component: CircularProgressIndicatorComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ CircularProgressIndicatorComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(CircularProgressIndicatorComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/common/circular-progress-indicator/circular-progress-indicator.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { CircularProgressIndicatorComponent } from './circular-progress-indicator.component'; 4 | 5 | describe('CircularProgressIndicatorComponent', () => { 6 | let component: CircularProgressIndicatorComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async () => { 10 | await TestBed.configureTestingModule({ 11 | declarations: [ CircularProgressIndicatorComponent ] 12 | }) 13 | .compileComponents(); 14 | }); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(CircularProgressIndicatorComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { BrowserModule } from '@angular/platform-browser'; 3 | import {AlbumApiService} from 'infraestructure-weincode/lib/driven-adapter'; 4 | import {GetAlbumUseCases} from 'core-weincode/lib/domain'; 5 | import { AppRoutingModule } from './app-routing.module'; 6 | import { AppComponent } from './app.component'; 7 | import { ShowmfComponent } from './showmf/showmf.component'; 8 | import { CircularProgressIndicatorComponent } from './common/circular-progress-indicator/circular-progress-indicator.component'; 9 | 10 | @NgModule({ 11 | declarations: [ 12 | AppComponent, 13 | ShowmfComponent, 14 | 15 | ], 16 | exports: [], 17 | imports: [ 18 | BrowserModule, 19 | AppRoutingModule 20 | ], 21 | providers: [ AlbumApiService, 22 | {provide: GetAlbumUseCases, useClass: AlbumApiService}], 23 | bootstrap: [AppComponent] 24 | }) 25 | export class AppModule { } 26 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/UI/common/circular-progress-indicator/circular-progress-indicator.component.scss: -------------------------------------------------------------------------------- 1 | body, *:before, *:after { 2 | box-sizing: border-box; 3 | } 4 | 5 | .circle { 6 | border: 6px solid rgb(44, 34, 85); 7 | border-left-color: transparent; 8 | border-radius: 100%; 9 | margin-left: 45%; 10 | width: 35px; 11 | height: 35px; 12 | animation: rotate360 3s infinite linear; 13 | position: relative; 14 | z-index: 20; 15 | &:before { 16 | content: ' '; 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | width: 100%; 21 | height: 100%; 22 | border: 7px solid #ddd; 23 | border-radius: 100%; 24 | z-index: 10; 25 | } 26 | } 27 | 28 | @keyframes rotate360 { 29 | from { 30 | transform: rotate(0deg); 31 | border-left-color: transparent; 32 | } 33 | to { 34 | transform: rotate(360deg); 35 | border-left-color: transparent; 36 | } 37 | } -------------------------------------------------------------------------------- /clean-arch-example/src/app/infraestructure/driven-adapter/album-api/album-api.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { HttpClient } from '@angular/common/http'; 3 | import { Album } from 'src/app/domain/models/Album/album'; 4 | import { AlbumGateway } from 'src/app/domain/models/Album/gateway/album-gateway'; 5 | import { Observable } from 'rxjs'; 6 | import { delay } from 'rxjs/operators'; 7 | 8 | @Injectable({ 9 | providedIn: 'root' 10 | }) 11 | export class AlbumApiService extends AlbumGateway { 12 | 13 | private _url = 'https://jsonplaceholder.typicode.com/albums/'; 14 | constructor(private http: HttpClient) {super();} 15 | getByID(id: String): Observable { 16 | return this.http.get(this._url+id).pipe(delay(2000)); 17 | } 18 | getAll(): Observable { 19 | return this.http.get>(this._url); 20 | } 21 | saveNew(_alb: Album): Observable { 22 | throw new Error('Method not implemented.'); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/infraestructure/driven-adapter/album-api/album-api-withou-delay.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { HttpClient } from '@angular/common/http'; 3 | import { Album } from 'src/app/domain/models/Album/album'; 4 | import { AlbumGateway } from 'src/app/domain/models/Album/gateway/album-gateway'; 5 | import { Observable } from 'rxjs'; 6 | import { delay } from 'rxjs/operators'; 7 | 8 | @Injectable({ 9 | providedIn: 'root' 10 | }) 11 | export class AlbumApiServiceWithoutDelay extends AlbumGateway { 12 | 13 | private _url = 'https://jsonplaceholder.typicode.com/albums/'; 14 | constructor(private http: HttpClient) {super();} 15 | getByID(id: String): Observable { 16 | return this.http.get(this._url+id); 17 | } 18 | getAll(): Observable { 19 | return this.http.get>(this._url); 20 | } 21 | saveNew(_alb: Album): Observable { 22 | throw new Error('Method not implemented.'); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/common/circular-progress-indicator/circular-progress-indicator.component.scss: -------------------------------------------------------------------------------- 1 | body, *:before, *:after { 2 | box-sizing: border-box; 3 | } 4 | 5 | .circle { 6 | border: 6px solid rgb(44, 34, 85); 7 | border-left-color: transparent; 8 | border-radius: 100%; 9 | margin-left: 45%; 10 | width: 40px; 11 | height: 40px; 12 | animation: rotate360 3s infinite linear; 13 | position: relative; 14 | z-index: 20; 15 | &:before { 16 | content: ' '; 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | width: 100%; 21 | height: 100%; 22 | border: 7px solid #ddd; 23 | border-radius: 100%; 24 | z-index: 10; 25 | } 26 | } 27 | 28 | @keyframes rotate360 { 29 | from { 30 | transform: rotate(0deg); 31 | border-left-color: transparent; 32 | } 33 | to { 34 | transform: rotate(360deg); 35 | border-left-color: transparent; 36 | } 37 | } -------------------------------------------------------------------------------- /clean-arch-example/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "compileOnSave": false, 4 | "compilerOptions": { 5 | "baseUrl": "./", 6 | "outDir": "./dist/out-tsc", 7 | "forceConsistentCasingInFileNames": true, 8 | "strict": true, 9 | "noImplicitOverride": true, 10 | "noPropertyAccessFromIndexSignature": true, 11 | "noImplicitReturns": true, 12 | "noFallthroughCasesInSwitch": true, 13 | "sourceMap": true, 14 | "declaration": false, 15 | "downlevelIteration": true, 16 | "experimentalDecorators": true, 17 | "moduleResolution": "node", 18 | "importHelpers": true, 19 | "target": "es2020", 20 | "module": "es2020", 21 | "lib": [ 22 | "es2020", 23 | "dom" 24 | ] 25 | }, 26 | "angularCompilerOptions": { 27 | "enableI18nLegacyMessageIdFormat": false, 28 | "strictInjectionParameters": true, 29 | "strictInputAccessModifiers": true, 30 | "strictTemplates": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /atomic-design/showcase/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "compileOnSave": false, 4 | "compilerOptions": { 5 | "baseUrl": "./", 6 | "outDir": "./dist/out-tsc", 7 | "forceConsistentCasingInFileNames": true, 8 | "strict": true, 9 | "noImplicitOverride": true, 10 | "noPropertyAccessFromIndexSignature": true, 11 | "noImplicitReturns": true, 12 | "noFallthroughCasesInSwitch": true, 13 | "sourceMap": true, 14 | "declaration": false, 15 | "downlevelIteration": true, 16 | "experimentalDecorators": true, 17 | "moduleResolution": "node", 18 | "importHelpers": true, 19 | "target": "es2020", 20 | "module": "es2020", 21 | "lib": [ 22 | "es2020", 23 | "dom" 24 | ] 25 | }, 26 | "angularCompilerOptions": { 27 | "enableI18nLegacyMessageIdFormat": false, 28 | "strictInjectionParameters": true, 29 | "strictInputAccessModifiers": true, 30 | "strictTemplates": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/fundations/spacing.scss: -------------------------------------------------------------------------------- 1 | @import "../tokens/spacing.scss"; 2 | 3 | 4 | 5 | @mixin constructor($num) { 6 | padding:$num; 7 | &_margin{ 8 | margin: $num; 9 | } 10 | &_top{ 11 | padding-top: $num; 12 | &_margin{ 13 | margin-top: $num; 14 | } 15 | } 16 | &_bottom{ 17 | padding-top: $num; 18 | &_margin{ 19 | margin-bottom: $num; 20 | } 21 | } 22 | &_left{ 23 | padding-top: $num; 24 | &_margin{ 25 | margin-left: $num; 26 | } 27 | } 28 | &_right{ 29 | padding-top: $num; 30 | &_margin{ 31 | margin-right: $num; 32 | } 33 | } 34 | } 35 | 36 | 37 | .spaced{ 38 | padding: $space; 39 | } 40 | 41 | .space{ 42 | @include constructor($space) 43 | } 44 | 45 | .space_2{ 46 | @include constructor($space * 2) 47 | } 48 | 49 | .space_3{ 50 | @include constructor($space * 3) 51 | } 52 | 53 | .space_4{ 54 | @include constructor($space * 4) 55 | } 56 | 57 | .space_5{ 58 | @include constructor($space * 5) 59 | } 60 | -------------------------------------------------------------------------------- /ssr-example/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "compileOnSave": false, 4 | "compilerOptions": { 5 | "baseUrl": "./", 6 | "outDir": "./dist/out-tsc", 7 | "forceConsistentCasingInFileNames": true, 8 | "strict": true, 9 | "noImplicitOverride": true, 10 | "noPropertyAccessFromIndexSignature": true, 11 | "noImplicitReturns": true, 12 | "noFallthroughCasesInSwitch": true, 13 | "sourceMap": true, 14 | "declaration": false, 15 | "downlevelIteration": true, 16 | "experimentalDecorators": true, 17 | "moduleResolution": "node", 18 | "importHelpers": true, 19 | "target": "ES2022", 20 | "module": "ES2022", 21 | "useDefineForClassFields": false, 22 | "lib": [ 23 | "ES2022", 24 | "dom" 25 | ] 26 | }, 27 | "angularCompilerOptions": { 28 | "enableI18nLegacyMessageIdFormat": false, 29 | "strictInjectionParameters": true, 30 | "strictInputAccessModifiers": true, 31 | "strictTemplates": true 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/Templates/layout_guidelines.scss: -------------------------------------------------------------------------------- 1 | @import "../tokens/typo.scss"; 2 | @import "../tokens/colors.scss"; 3 | @import "../tokens/spacing.scss"; 4 | 5 | .wrapper { 6 | display: flex; 7 | width: 100%; 8 | } 9 | 10 | .wrapper { 11 | display: flex; 12 | } 13 | 14 | #sidebar { 15 | width: 240px; 16 | position: fixed; 17 | top: 0; 18 | left: 0; 19 | height: 100vh; 20 | z-index: 999; 21 | background: $black_normal; 22 | color: #fff; 23 | transition: all 0.3s; 24 | padding: $space * 3; 25 | a{ 26 | color: $white_normal; 27 | } 28 | a:hover{ 29 | color: $secondary_action; 30 | } 31 | } 32 | 33 | #content{ 34 | margin-left: 240px; 35 | width: inherit; 36 | max-width: 990px; 37 | padding: $space * 3; 38 | 39 | } 40 | 41 | .sample-color{ 42 | 43 | height: 30px; 44 | border-radius: 2px; 45 | display: flex; 46 | justify-content: center; 47 | align-items: center; 48 | width:100%; 49 | &__white{ 50 | @extend .sample-color; 51 | color: #fff; 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/e2e/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | // Protractor configuration file, see link for more information 3 | // https://github.com/angular/protractor/blob/master/lib/config.ts 4 | 5 | const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); 6 | 7 | /** 8 | * @type { import("protractor").Config } 9 | */ 10 | exports.config = { 11 | allScriptsTimeout: 11000, 12 | specs: [ 13 | './src/**/*.e2e-spec.ts' 14 | ], 15 | capabilities: { 16 | browserName: 'chrome' 17 | }, 18 | directConnect: true, 19 | SELENIUM_PROMISE_MANAGER: false, 20 | baseUrl: 'http://localhost:4200/', 21 | framework: 'jasmine', 22 | jasmineNodeOpts: { 23 | showColors: true, 24 | defaultTimeoutInterval: 30000, 25 | print: function() {} 26 | }, 27 | onPrepare() { 28 | require('ts-node').register({ 29 | project: require('path').join(__dirname, './tsconfig.json') 30 | }); 31 | jasmine.getEnv().addReporter(new SpecReporter({ 32 | spec: { 33 | displayStacktrace: StacktraceOption.PRETTY 34 | } 35 | })); 36 | } 37 | }; -------------------------------------------------------------------------------- /clean-arch-example/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { HttpClientModule } from '@angular/common/http'; 2 | import { NgModule } from '@angular/core'; 3 | import { BrowserModule } from '@angular/platform-browser'; 4 | 5 | import { AppRoutingModule } from './app-routing.module'; 6 | import { AppComponent } from './app.component'; 7 | import { AlbumGateway } from './domain/models/Album/gateway/album-gateway'; 8 | import { AlbumApiService } from './infraestructure/driven-adapter/album-api/album-api.service'; 9 | import { CircularProgressIndicatorComponent } from './UI/common/circular-progress-indicator/circular-progress-indicator.component'; 10 | import { AlbumCardComponent } from './UI/view-models/album-card/album-card.component'; 11 | 12 | @NgModule({ 13 | declarations: [ 14 | AppComponent, 15 | AlbumCardComponent, 16 | CircularProgressIndicatorComponent 17 | ], 18 | imports: [ 19 | BrowserModule, 20 | AppRoutingModule, 21 | HttpClientModule 22 | ], 23 | providers: [{provide: AlbumGateway, useClass: AlbumApiService}], 24 | bootstrap: [AppComponent] 25 | }) 26 | export class AppModule { } 27 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/e2e/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | // Protractor configuration file, see link for more information 3 | // https://github.com/angular/protractor/blob/master/lib/config.ts 4 | 5 | const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); 6 | 7 | /** 8 | * @type { import("protractor").Config } 9 | */ 10 | exports.config = { 11 | allScriptsTimeout: 11000, 12 | specs: [ 13 | './src/**/*.e2e-spec.ts' 14 | ], 15 | capabilities: { 16 | browserName: 'chrome' 17 | }, 18 | directConnect: true, 19 | SELENIUM_PROMISE_MANAGER: false, 20 | baseUrl: 'http://localhost:4200/', 21 | framework: 'jasmine', 22 | jasmineNodeOpts: { 23 | showColors: true, 24 | defaultTimeoutInterval: 30000, 25 | print: function() {} 26 | }, 27 | onPrepare() { 28 | require('ts-node').register({ 29 | project: require('path').join(__dirname, './tsconfig.json') 30 | }); 31 | jasmine.getEnv().addReporter(new SpecReporter({ 32 | spec: { 33 | displayStacktrace: StacktraceOption.PRETTY 34 | } 35 | })); 36 | } 37 | }; -------------------------------------------------------------------------------- /project-mf/infraestructure/src/driven-adapter/album-api/album-api-service.ts: -------------------------------------------------------------------------------- 1 | 2 | import { Album } from 'core-weincode/lib/domain'; 3 | import { AlbumGateway } from 'core-weincode/lib/domain'; 4 | import { Observable } from 'rxjs'; 5 | 6 | const fetch = require('node-fetch'); 7 | 8 | export class AlbumApiService extends AlbumGateway { 9 | private _url = 'https://jsonplaceholder.typicode.com/albums/'; 10 | getByID(id: string): Observable { 11 | const data$ = new Observable(observer => { 12 | fetch(this._url + id) 13 | .then((response: { json: () => any; }) => response.json()) 14 | .then((data: Album) => { 15 | observer.next(data); 16 | observer.complete(); 17 | }) 18 | .catch((err: any) => observer.error(err)); 19 | }); 20 | return data$; 21 | } 22 | getAll(): Observable { 23 | throw new Error('Method not implemented.'); 24 | } 25 | saveNew(_alb: Album): Observable { 26 | throw new Error('Method not implemented.'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "compileOnSave": false, 4 | "compilerOptions": { 5 | "baseUrl": "./", 6 | "outDir": "./dist/out-tsc", 7 | "forceConsistentCasingInFileNames": true, 8 | "strict": true, 9 | "noImplicitOverride": true, 10 | "noPropertyAccessFromIndexSignature": true, 11 | "noImplicitReturns": true, 12 | "noFallthroughCasesInSwitch": true, 13 | "sourceMap": true, 14 | "paths": { 15 | "ngx-weincode-ds": [ 16 | "dist/ngx-weincode-ds" 17 | ] 18 | }, 19 | "declaration": false, 20 | "downlevelIteration": true, 21 | "experimentalDecorators": true, 22 | "moduleResolution": "node", 23 | "importHelpers": true, 24 | "target": "es2020", 25 | "module": "es2020", 26 | "lib": [ 27 | "es2020", 28 | "dom" 29 | ] 30 | }, 31 | "angularCompilerOptions": { 32 | "enableI18nLegacyMessageIdFormat": false, 33 | "strictInjectionParameters": true, 34 | "strictInputAccessModifiers": true, 35 | "strictTemplates": true 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ssr-example/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 3 | "version": "2.0.0", 4 | "tasks": [ 5 | { 6 | "type": "npm", 7 | "script": "start", 8 | "isBackground": true, 9 | "problemMatcher": { 10 | "owner": "typescript", 11 | "pattern": "$tsc", 12 | "background": { 13 | "activeOnStart": true, 14 | "beginsPattern": { 15 | "regexp": "(.*?)" 16 | }, 17 | "endsPattern": { 18 | "regexp": "bundle generation complete" 19 | } 20 | } 21 | } 22 | }, 23 | { 24 | "type": "npm", 25 | "script": "test", 26 | "isBackground": true, 27 | "problemMatcher": { 28 | "owner": "typescript", 29 | "pattern": "$tsc", 30 | "background": { 31 | "activeOnStart": true, 32 | "beginsPattern": { 33 | "regexp": "(.*?)" 34 | }, 35 | "endsPattern": { 36 | "regexp": "bundle generation complete" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /clean-arch-example/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 3 | "version": "2.0.0", 4 | "tasks": [ 5 | { 6 | "type": "npm", 7 | "script": "start", 8 | "isBackground": true, 9 | "problemMatcher": { 10 | "owner": "typescript", 11 | "pattern": "$tsc", 12 | "background": { 13 | "activeOnStart": true, 14 | "beginsPattern": { 15 | "regexp": "(.*?)" 16 | }, 17 | "endsPattern": { 18 | "regexp": "bundle generation complete" 19 | } 20 | } 21 | } 22 | }, 23 | { 24 | "type": "npm", 25 | "script": "test", 26 | "isBackground": true, 27 | "problemMatcher": { 28 | "owner": "typescript", 29 | "pattern": "$tsc", 30 | "background": { 31 | "activeOnStart": true, 32 | "beginsPattern": { 33 | "regexp": "(.*?)" 34 | }, 35 | "endsPattern": { 36 | "regexp": "bundle generation complete" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /atomic-design/showcase/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 3 | "version": "2.0.0", 4 | "tasks": [ 5 | { 6 | "type": "npm", 7 | "script": "start", 8 | "isBackground": true, 9 | "problemMatcher": { 10 | "owner": "typescript", 11 | "pattern": "$tsc", 12 | "background": { 13 | "activeOnStart": true, 14 | "beginsPattern": { 15 | "regexp": "(.*?)" 16 | }, 17 | "endsPattern": { 18 | "regexp": "bundle generation complete" 19 | } 20 | } 21 | } 22 | }, 23 | { 24 | "type": "npm", 25 | "script": "test", 26 | "isBackground": true, 27 | "problemMatcher": { 28 | "owner": "typescript", 29 | "pattern": "$tsc", 30 | "background": { 31 | "activeOnStart": true, 32 | "beginsPattern": { 33 | "regexp": "(.*?)" 34 | }, 35 | "endsPattern": { 36 | "regexp": "bundle generation complete" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 3 | "version": "2.0.0", 4 | "tasks": [ 5 | { 6 | "type": "npm", 7 | "script": "start", 8 | "isBackground": true, 9 | "problemMatcher": { 10 | "owner": "typescript", 11 | "pattern": "$tsc", 12 | "background": { 13 | "activeOnStart": true, 14 | "beginsPattern": { 15 | "regexp": "(.*?)" 16 | }, 17 | "endsPattern": { 18 | "regexp": "bundle generation complete" 19 | } 20 | } 21 | } 22 | }, 23 | { 24 | "type": "npm", 25 | "script": "test", 26 | "isBackground": true, 27 | "problemMatcher": { 28 | "owner": "typescript", 29 | "pattern": "$tsc", 30 | "background": { 31 | "activeOnStart": true, 32 | "beginsPattern": { 33 | "regexp": "(.*?)" 34 | }, 35 | "endsPattern": { 36 | "regexp": "bundle generation complete" 37 | } 38 | } 39 | } 40 | } 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/driven-adapter/album-api/album-api-service.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.AlbumApiService = void 0; 4 | const domain_1 = require("core-weincode/lib/domain"); 5 | const rxjs_1 = require("rxjs"); 6 | const fetch = require('node-fetch'); 7 | class AlbumApiService extends domain_1.AlbumGateway { 8 | constructor() { 9 | super(...arguments); 10 | this._url = 'https://jsonplaceholder.typicode.com/albums/'; 11 | } 12 | getByID(id) { 13 | const data$ = new rxjs_1.Observable(observer => { 14 | fetch(this._url + id) 15 | .then((response) => response.json()) 16 | .then((data) => { 17 | observer.next(data); 18 | observer.complete(); 19 | }) 20 | .catch((err) => observer.error(err)); 21 | }); 22 | return data$; 23 | } 24 | getAll() { 25 | throw new Error('Method not implemented.'); 26 | } 27 | saveNew(_alb) { 28 | throw new Error('Method not implemented.'); 29 | } 30 | } 31 | exports.AlbumApiService = AlbumApiService; 32 | -------------------------------------------------------------------------------- /ssr-example/README.md: -------------------------------------------------------------------------------- 1 | # SsrExample 2 | 3 | This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.0.4. 4 | 5 | ## Development server 6 | 7 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. 8 | 9 | ## Code scaffolding 10 | 11 | Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. 12 | 13 | ## Build 14 | 15 | Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. 16 | 17 | ## Running unit tests 18 | 19 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). 20 | 21 | ## Running end-to-end tests 22 | 23 | Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. 24 | 25 | ## Further help 26 | 27 | To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. 28 | -------------------------------------------------------------------------------- /atomic-design/showcase/README.md: -------------------------------------------------------------------------------- 1 | # Showcase 2 | 3 | This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.3. 4 | 5 | ## Development server 6 | 7 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. 8 | 9 | ## Code scaffolding 10 | 11 | Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. 12 | 13 | ## Build 14 | 15 | Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. 16 | 17 | ## Running unit tests 18 | 19 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). 20 | 21 | ## Running end-to-end tests 22 | 23 | Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. 24 | 25 | ## Further help 26 | 27 | To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. 28 | -------------------------------------------------------------------------------- /clean-arch-example/README.md: -------------------------------------------------------------------------------- 1 | # ClenArchExample 2 | 3 | This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.3. 4 | 5 | ## Development server 6 | 7 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. 8 | 9 | ## Code scaffolding 10 | 11 | Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. 12 | 13 | ## Build 14 | 15 | Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. 16 | 17 | ## Running unit tests 18 | 19 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). 20 | 21 | ## Running end-to-end tests 22 | 23 | Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. 24 | 25 | ## Further help 26 | 27 | To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. 28 | -------------------------------------------------------------------------------- /project-mf/infraestructure/lib/album-api-service.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.AlbumApiService = void 0; 4 | const album_gateway_1 = require("core-weincode/lib/models/gateway/album-gateway"); 5 | const rxjs_1 = require("rxjs"); 6 | const fetch = require('node-fetch'); 7 | class AlbumApiService extends album_gateway_1.AlbumGateway { 8 | constructor() { 9 | super(...arguments); 10 | this._url = 'https://jsonplaceholder.typicode.com/albums/'; 11 | } 12 | getByID(id) { 13 | const data$ = new rxjs_1.Observable(observer => { 14 | fetch(this._url + id) 15 | .then((response) => response.json()) 16 | .then((data) => { 17 | observer.next(data); 18 | observer.complete(); 19 | }) 20 | .catch((err) => observer.error(err)); 21 | }); 22 | return data$; 23 | } 24 | getAll() { 25 | throw new Error('Method not implemented.'); 26 | } 27 | saveNew(_alb) { 28 | throw new Error('Method not implemented.'); 29 | } 30 | } 31 | exports.AlbumApiService = AlbumApiService; 32 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/README.md: -------------------------------------------------------------------------------- 1 | # NgxWeincodeDs 2 | 3 | This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.0. 4 | 5 | ## Code scaffolding 6 | 7 | Run `ng generate component component-name --project ngx-weincode-ds` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-weincode-ds`. 8 | > Note: Don't forget to add `--project ngx-weincode-ds` or else it will be added to the default project in your `angular.json` file. 9 | 10 | ## Build 11 | 12 | Run `ng build ngx-weincode-ds` to build the project. The build artifacts will be stored in the `dist/` directory. 13 | 14 | ## Publishing 15 | 16 | After building your library with `ng build ngx-weincode-ds`, go to the dist folder `cd dist/ngx-weincode-ds` and run `npm publish`. 17 | 18 | ## Running unit tests 19 | 20 | Run `ng test ngx-weincode-ds` to execute the unit tests via [Karma](https://karma-runner.github.io). 21 | 22 | ## Further help 23 | 24 | To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. 25 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/README.md: -------------------------------------------------------------------------------- 1 | # NgxAtomicDesign 2 | 3 | This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.3. 4 | 5 | ## Development server 6 | 7 | Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. 8 | 9 | ## Code scaffolding 10 | 11 | Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. 12 | 13 | ## Build 14 | 15 | Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. 16 | 17 | ## Running unit tests 18 | 19 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). 20 | 21 | ## Running end-to-end tests 22 | 23 | Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. 24 | 25 | ## Further help 26 | 27 | To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. 28 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "remote", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/jest-dom": "^5.16.5", 7 | "@testing-library/react": "^13.4.0", 8 | "@testing-library/user-event": "^13.5.0", 9 | "react": "^18.2.0", 10 | "react-dom": "^18.2.0", 11 | "react-scripts": "5.0.1", 12 | "web-vitals": "^2.1.4" 13 | }, 14 | "scripts": { 15 | "start": "react-scripts start", 16 | "build": "react-scripts build", 17 | "test": "react-scripts test", 18 | "eject": "react-scripts eject" 19 | }, 20 | "eslintConfig": { 21 | "extends": [ 22 | "react-app", 23 | "react-app/jest" 24 | ] 25 | }, 26 | "browserslist": { 27 | "production": [ 28 | ">0.2%", 29 | "not dead", 30 | "not op_mini all" 31 | ], 32 | "development": [ 33 | "last 1 chrome version", 34 | "last 1 firefox version", 35 | "last 1 safari version" 36 | ] 37 | }, 38 | "devDependencies": { 39 | "babel-loader": "^8.2.5", 40 | "html-webpack-plugin": "^5.5.0", 41 | "webpack": "^5.74.0", 42 | "webpack-cli": "^4.10.0", 43 | "webpack-dev-server": "^4.11.1" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /clean-arch-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "clen-arch-example", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "ng": "ng", 6 | "start": "ng serve", 7 | "build": "ng build", 8 | "watch": "ng build --watch --configuration development", 9 | "test": "ng test" 10 | }, 11 | "private": true, 12 | "dependencies": { 13 | "@angular/animations": "^14.1.0", 14 | "@angular/common": "^14.1.0", 15 | "@angular/compiler": "^14.1.0", 16 | "@angular/core": "^14.1.0", 17 | "@angular/forms": "^14.1.0", 18 | "@angular/platform-browser": "^14.1.0", 19 | "@angular/platform-browser-dynamic": "^14.1.0", 20 | "@angular/router": "^14.1.0", 21 | "rxjs": "~7.5.0", 22 | "tslib": "^2.3.0", 23 | "zone.js": "~0.11.4" 24 | }, 25 | "devDependencies": { 26 | "@angular-devkit/build-angular": "^14.1.3", 27 | "@angular/cli": "~14.1.3", 28 | "@angular/compiler-cli": "^14.1.0", 29 | "@types/jasmine": "~4.0.0", 30 | "jasmine-core": "~4.2.0", 31 | "karma": "~6.4.0", 32 | "karma-chrome-launcher": "~3.1.0", 33 | "karma-coverage": "~2.2.0", 34 | "karma-jasmine": "~5.1.0", 35 | "karma-jasmine-html-reporter": "~2.0.0", 36 | "typescript": "~4.7.2" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | import { RouterTestingModule } from '@angular/router/testing'; 3 | import { AppComponent } from './app.component'; 4 | 5 | describe('AppComponent', () => { 6 | beforeEach(async () => { 7 | await TestBed.configureTestingModule({ 8 | imports: [ 9 | RouterTestingModule 10 | ], 11 | declarations: [ 12 | AppComponent 13 | ], 14 | }).compileComponents(); 15 | }); 16 | 17 | it('should create the app', () => { 18 | const fixture = TestBed.createComponent(AppComponent); 19 | const app = fixture.componentInstance; 20 | expect(app).toBeTruthy(); 21 | }); 22 | 23 | it(`should have as title 'mf'`, () => { 24 | const fixture = TestBed.createComponent(AppComponent); 25 | const app = fixture.componentInstance; 26 | expect(app.title).toEqual('mf'); 27 | }); 28 | 29 | it('should render title', () => { 30 | const fixture = TestBed.createComponent(AppComponent); 31 | fixture.detectChanges(); 32 | const compiled = fixture.nativeElement; 33 | expect(compiled.querySelector('.content span').textContent).toContain('mf app is running!'); 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | import { RouterTestingModule } from '@angular/router/testing'; 3 | import { AppComponent } from './app.component'; 4 | 5 | describe('AppComponent', () => { 6 | beforeEach(async () => { 7 | await TestBed.configureTestingModule({ 8 | imports: [ 9 | RouterTestingModule 10 | ], 11 | declarations: [ 12 | AppComponent 13 | ], 14 | }).compileComponents(); 15 | }); 16 | 17 | it('should create the app', () => { 18 | const fixture = TestBed.createComponent(AppComponent); 19 | const app = fixture.componentInstance; 20 | expect(app).toBeTruthy(); 21 | }); 22 | 23 | it(`should have as title 'host'`, () => { 24 | const fixture = TestBed.createComponent(AppComponent); 25 | const app = fixture.componentInstance; 26 | expect(app.title).toEqual('host'); 27 | }); 28 | 29 | it('should render title', () => { 30 | const fixture = TestBed.createComponent(AppComponent); 31 | fixture.detectChanges(); 32 | const compiled = fixture.nativeElement; 33 | expect(compiled.querySelector('.content span').textContent).toContain('host app is running!'); 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | 6 |
7 |
8 | 9 |

Hello world 🌍🅰️

10 |
11 |
12 | 13 |
14 | 15 |
16 | 17 |
18 |

19 |
20 | 21 |
22 | 23 | 24 |
25 |

Simple weincode card

26 | 31 | 32 | Esto es una prueba 33 | 34 |
35 |
36 | 37 |
38 | 39 |
-------------------------------------------------------------------------------- /atomic-design/showcase/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "showcase", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "ng": "ng", 6 | "start": "ng serve", 7 | "build": "ng build", 8 | "watch": "ng build --watch --configuration development", 9 | "test": "ng test" 10 | }, 11 | "private": true, 12 | "dependencies": { 13 | "@angular/animations": "^14.1.0", 14 | "@angular/common": "^14.1.0", 15 | "@angular/compiler": "^14.1.0", 16 | "@angular/core": "^14.1.0", 17 | "@angular/forms": "^14.1.0", 18 | "@angular/platform-browser": "^14.1.0", 19 | "@angular/platform-browser-dynamic": "^14.1.0", 20 | "@angular/router": "^14.1.0", 21 | "ngx-weincode-ds": "^0.0.10", 22 | "rxjs": "~7.5.0", 23 | "tslib": "^2.3.0", 24 | "zone.js": "~0.11.4" 25 | }, 26 | "devDependencies": { 27 | "@angular-devkit/build-angular": "^14.1.3", 28 | "@angular/cli": "~14.1.3", 29 | "@angular/compiler-cli": "^14.1.0", 30 | "@types/jasmine": "~4.0.0", 31 | "jasmine-core": "~4.2.0", 32 | "karma": "~6.4.0", 33 | "karma-chrome-launcher": "~3.1.0", 34 | "karma-coverage": "~2.2.0", 35 | "karma-jasmine": "~5.1.0", 36 | "karma-jasmine-html-reporter": "~2.0.0", 37 | "typescript": "~4.7.2" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | import { RouterTestingModule } from '@angular/router/testing'; 3 | import { AppComponent } from './app.component'; 4 | 5 | describe('AppComponent', () => { 6 | beforeEach(async () => { 7 | await TestBed.configureTestingModule({ 8 | imports: [ 9 | RouterTestingModule 10 | ], 11 | declarations: [ 12 | AppComponent 13 | ], 14 | }).compileComponents(); 15 | }); 16 | 17 | it('should create the app', () => { 18 | const fixture = TestBed.createComponent(AppComponent); 19 | const app = fixture.componentInstance; 20 | expect(app).toBeTruthy(); 21 | }); 22 | 23 | it(`should have as title 'showcase'`, () => { 24 | const fixture = TestBed.createComponent(AppComponent); 25 | const app = fixture.componentInstance; 26 | expect(app.title).toEqual('showcase'); 27 | }); 28 | 29 | it('should render title', () => { 30 | const fixture = TestBed.createComponent(AppComponent); 31 | fixture.detectChanges(); 32 | const compiled = fixture.nativeElement as HTMLElement; 33 | expect(compiled.querySelector('.content span')?.textContent).toContain('showcase app is running!'); 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /ssr-example/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | import { RouterTestingModule } from '@angular/router/testing'; 3 | import { AppComponent } from './app.component'; 4 | 5 | describe('AppComponent', () => { 6 | beforeEach(async () => { 7 | await TestBed.configureTestingModule({ 8 | imports: [ 9 | RouterTestingModule 10 | ], 11 | declarations: [ 12 | AppComponent 13 | ], 14 | }).compileComponents(); 15 | }); 16 | 17 | it('should create the app', () => { 18 | const fixture = TestBed.createComponent(AppComponent); 19 | const app = fixture.componentInstance; 20 | expect(app).toBeTruthy(); 21 | }); 22 | 23 | it(`should have as title 'ssr-example'`, () => { 24 | const fixture = TestBed.createComponent(AppComponent); 25 | const app = fixture.componentInstance; 26 | expect(app.title).toEqual('ssr-example'); 27 | }); 28 | 29 | it('should render title', () => { 30 | const fixture = TestBed.createComponent(AppComponent); 31 | fixture.detectChanges(); 32 | const compiled = fixture.nativeElement as HTMLElement; 33 | expect(compiled.querySelector('.content span')?.textContent).toContain('ssr-example app is running!'); 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngx-atomic-design", 3 | "version": "0.0.3", 4 | "scripts": { 5 | "ng": "ng", 6 | "start": "ng serve", 7 | "build": "ng build", 8 | "watch": "ng build --watch --configuration development", 9 | "test": "ng test" 10 | }, 11 | "private": true, 12 | "dependencies": { 13 | "@angular/animations": "^14.1.0", 14 | "@angular/common": "^14.1.0", 15 | "@angular/compiler": "^14.1.0", 16 | "@angular/core": "^14.1.0", 17 | "@angular/forms": "^14.1.0", 18 | "@angular/platform-browser": "^14.1.0", 19 | "@angular/platform-browser-dynamic": "^14.1.0", 20 | "@angular/router": "^14.1.0", 21 | "rxjs": "~7.5.0", 22 | "tslib": "^2.3.0", 23 | "zone.js": "~0.11.4" 24 | }, 25 | "devDependencies": { 26 | "@angular-devkit/build-angular": "^14.1.3", 27 | "@angular/cli": "~14.1.3", 28 | "@angular/compiler-cli": "^14.1.0", 29 | "@types/jasmine": "~4.0.0", 30 | "jasmine-core": "~4.2.0", 31 | "karma": "~6.4.0", 32 | "karma-chrome-launcher": "~3.1.0", 33 | "karma-coverage": "~2.2.0", 34 | "karma-jasmine": "~5.1.0", 35 | "karma-jasmine-html-reporter": "~2.0.0", 36 | "ng-packagr": "^14.1.0", 37 | "typescript": "~4.7.2" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /clean-arch-example/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | import { RouterTestingModule } from '@angular/router/testing'; 3 | import { AppComponent } from './app.component'; 4 | 5 | describe('AppComponent', () => { 6 | beforeEach(async () => { 7 | await TestBed.configureTestingModule({ 8 | imports: [ 9 | RouterTestingModule 10 | ], 11 | declarations: [ 12 | AppComponent 13 | ], 14 | }).compileComponents(); 15 | }); 16 | 17 | it('should create the app', () => { 18 | const fixture = TestBed.createComponent(AppComponent); 19 | const app = fixture.componentInstance; 20 | expect(app).toBeTruthy(); 21 | }); 22 | 23 | it(`should have as title 'clen-arch-example'`, () => { 24 | const fixture = TestBed.createComponent(AppComponent); 25 | const app = fixture.componentInstance; 26 | expect(app.title).toEqual('clen-arch-example'); 27 | }); 28 | 29 | it('should render title', () => { 30 | const fixture = TestBed.createComponent(AppComponent); 31 | fixture.detectChanges(); 32 | const compiled = fixture.nativeElement as HTMLElement; 33 | expect(compiled.querySelector('.content span')?.textContent).toContain('clen-arch-example app is running!'); 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/view/atoms/button.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Buttons 9 | 10 | 11 | 12 |
13 |

Ejemplo de boton primario


14 |
15 |
16 |


17 |
18 |
19 |

20 | 21 | <button class="wc-btn-primary"> 22 | </button> 23 |

24 |
25 |

Ejemplo de boton secundario

26 |


27 |
28 |
29 |

30 | <button class="wc-btn-secondary"> 31 | </button> 32 |

33 |
34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /project-mf/domain/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-weincode", 3 | "version": "1.1.10", 4 | "description": "a little example about implement a transversal core for micro front-ends projects", 5 | "main": "domain.js", 6 | "scripts": { 7 | "test": "jest --config jestconfig.json", 8 | "test-coverage": "jest --coverage --config jestconfig.json", 9 | "build": "tsc", 10 | "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"", 11 | "lint": "tslint -p tsconfig.json" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/Danielherresan/examples_codes_angular.git" 16 | }, 17 | "keywords": [ 18 | "micro", 19 | "fronts", 20 | "clean", 21 | "arch", 22 | "domain", 23 | "usecases", 24 | "example" 25 | ], 26 | "author": "Daniel Herrera Sanchez", 27 | "license": "MIT", 28 | "bugs": { 29 | "url": "https://github.com/Danielherresan/examples_codes_angular/issues" 30 | }, 31 | "homepage": "https://github.com/Danielherresan/examples_codes_angular#readme", 32 | "devDependencies": { 33 | "@types/jest": "^29.0.3", 34 | "jest": "^29.0.3", 35 | "prettier": "^2.7.1", 36 | "ts-jest": "^29.0.1", 37 | "tslint": "^6.1.3", 38 | "tslint-config-prettier": "^1.18.0", 39 | "typescript": "^4.8.3" 40 | }, 41 | "dependencies": { 42 | "rxjs": "^7.5.6" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /project-mf/infraestructure/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "infraestructure-weincode", 3 | "version": "1.0.8", 4 | "description": "a little example about implement a transversal infraestructure for micro front-ends projects", 5 | "main": "driven-adapter.js", 6 | "scripts": { 7 | "test": "jest --config jestconfig.json", 8 | "build": "tsc", 9 | "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"", 10 | "lint": "tslint -p tsconfig.json" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/Danielherresan/examples_codes_angular.git" 15 | }, 16 | "keywords": [ 17 | "micro", 18 | "fronts", 19 | "clean", 20 | "arch", 21 | "domain", 22 | "usecases", 23 | "example" 24 | ], 25 | "author": "Daniel Herrera Sanchez", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/Danielherresan/examples_codes_angular/issues" 29 | }, 30 | "homepage": "https://github.com/Danielherresan/examples_codes_angular#readme", 31 | "devDependencies": { 32 | "@types/jest": "^29.0.3", 33 | "@types/node-fetch": "^2.6.2", 34 | "jest": "^29.0.3", 35 | "prettier": "^2.7.1", 36 | "ts-jest": "^29.0.1", 37 | "tslint": "^6.1.3", 38 | "tslint-config-prettier": "^1.18.0", 39 | "typescript": "^4.8.3" 40 | }, 41 | "dependencies": { 42 | "core-weincode": "^1.1.9", 43 | "node-fetch": "^2.6.7", 44 | "rxjs": "^7.5.6" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/angular.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/@angular/cli/lib/config/schema.json", 3 | "version": 1, 4 | "newProjectRoot": "projects", 5 | "projects": { 6 | "ngx-weincode-ds": { 7 | "projectType": "library", 8 | "root": "projects/ngx-weincode-ds", 9 | "sourceRoot": "projects/ngx-weincode-ds/src", 10 | "prefix": "lib", 11 | "architect": { 12 | "build": { 13 | "builder": "@angular-devkit/build-angular:ng-packagr", 14 | "options": { 15 | "project": "projects/ngx-weincode-ds/ng-package.json" 16 | }, 17 | "configurations": { 18 | "production": { 19 | "tsConfig": "projects/ngx-weincode-ds/tsconfig.lib.prod.json" 20 | }, 21 | "development": { 22 | "tsConfig": "projects/ngx-weincode-ds/tsconfig.lib.json" 23 | } 24 | }, 25 | "defaultConfiguration": "production" 26 | }, 27 | "test": { 28 | "builder": "@angular-devkit/build-angular:karma", 29 | "options": { 30 | "main": "projects/ngx-weincode-ds/src/test.ts", 31 | "tsConfig": "projects/ngx-weincode-ds/tsconfig.spec.json", 32 | "karmaConfig": "projects/ngx-weincode-ds/karma.conf.js" 33 | } 34 | } 35 | } 36 | } 37 | }, 38 | "cli": { 39 | "analytics": "eee17f1b-0fab-4782-832e-898811393894" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/style.scss: -------------------------------------------------------------------------------- 1 | // ██╗··██╗███████╗██╗·····██████╗·███████╗██████╗·███████╗ 2 | // ██║··██║██╔════╝██║·····██╔══██╗██╔════╝██╔══██╗██╔════╝ 3 | // ███████║█████╗··██║·····██████╔╝█████╗··██████╔╝███████╗ 4 | // ██╔══██║██╔══╝··██║·····██╔═══╝·██╔══╝··██╔══██╗╚════██║ 5 | // ██║··██║███████╗███████╗██║·····███████╗██║··██║███████║ 6 | // ╚═╝··╚═╝╚══════╝╚══════╝╚═╝·····╚══════╝╚═╝··╚═╝╚══════╝ 7 | @import "./tokens/typo.scss"; 8 | @import "./tokens/colors.scss"; 9 | @import "./tokens/spacing.scss"; 10 | 11 | 12 | .code{ 13 | background-color: $black_normal; 14 | color: $primary_action; 15 | padding: $space; 16 | border-radius: 4px; 17 | font-family: courier; 18 | font-size: 16px; 19 | } 20 | 21 | hr{ 22 | opacity: .3; 23 | } 24 | 25 | .border{ 26 | border: 1px solid $secondary_action 27 | } 28 | 29 | .text-center{ 30 | text-align: center; 31 | } 32 | 33 | 34 | 35 | // ------------------- Width 36 | .w-100{ 37 | width: 100% 38 | } 39 | 40 | .w-50{ 41 | width: 50% 42 | } 43 | 44 | 45 | 46 | 47 | 48 | // @keyframes mymove { 49 | // from {opacity: 1} 50 | // to {opacity: 0} 51 | // } 52 | 53 | @keyframes mymove { 54 | 0% {opacity: 1} 55 | 25% {opacity: 1} 56 | 50% {opacity: .5} 57 | 75% {opacity: .5} 58 | 90% {opacity: .2} 59 | 100% {opacity: 1} 60 | } 61 | 62 | .mymove{ 63 | animation-name: mymove; 64 | animation-duration: 10s; 65 | animation-iteration-count: infinite; 66 | } 67 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/fundations/colors.scss: -------------------------------------------------------------------------------- 1 | @import "../tokens/colors.scss"; 2 | 3 | @mixin constructor($color){ 4 | color:$color; 5 | &_background{ 6 | background-color: $color; 7 | } 8 | } 9 | // Brand colors 10 | .white_brand{ 11 | @include constructor(#fff) 12 | } 13 | 14 | .brand_primary_scale_00{ 15 | @include constructor($brand_primary_scale_00) 16 | } 17 | .brand_primary_scale_01{ 18 | @include constructor($brand_primary_scale_01) 19 | } 20 | .brand_primary_scale_03{ 21 | @include constructor($brand_primary_scale_03) 22 | } 23 | .brand_primary_scale_04{ 24 | @include constructor($brand_primary_scale_04) 25 | } 26 | .brand_primary_scale_05{ 27 | @include constructor($brand_primary_scale_05) 28 | } 29 | .brand_primary_scale_06{ 30 | @include constructor($brand_primary_scale_06) 31 | } 32 | .brand_secondary{ 33 | @include constructor($brand_secondary) 34 | } 35 | .brand_tertiary{ 36 | @include constructor($brand_tertiary) 37 | } 38 | // Action colors 39 | .primary_action{ 40 | @include constructor($primary_action) 41 | } 42 | .secondary_action{ 43 | @include constructor($secondary_action) 44 | } 45 | // Boolean colors 46 | .positive{ 47 | @include constructor($positive) 48 | } 49 | .negative{ 50 | @include constructor($negative) 51 | } 52 | //Backgrounds 53 | .background_blue{ 54 | background-color: $background_blue; 55 | } 56 | 57 | //Basic colors 58 | .white_normal{ 59 | @include constructor($white_normal) 60 | } 61 | .black_normal{ 62 | @include constructor($black_normal) 63 | } 64 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/scss/vendors/grid.scss: -------------------------------------------------------------------------------- 1 | //https://webdesign.tutsplus.com/tutorials/a-simple-responsive-grid-made-even-better-with-sass--cms-21540 2 | // grid variables 3 | @import "../tokens/spacing.scss"; 4 | 5 | $grid-columns: 12; 6 | $grid-max-width: 65em; 7 | 8 | // breakpoints 9 | $breakpoint-small: "only screen and (min-width: 20em)"; 10 | $breakpoint-medium: "only screen and (min-width: 30em)"; 11 | 12 | @mixin border-box { 13 | -webkit-box-sizing: border-box; 14 | -moz-box-sizing: border-box; 15 | box-sizing: border-box; 16 | } 17 | 18 | %clearfix { 19 | *zoom: 1; 20 | &:before, 21 | &:after { 22 | content: " "; 23 | display: table; 24 | } 25 | &:after { 26 | clear: both; 27 | } 28 | } 29 | 30 | *, *:after, *:before { 31 | margin: 0; 32 | padding: 0; 33 | @include border-box; 34 | } 35 | 36 | img { 37 | width: auto; 38 | max-width: 100%; 39 | height: auto !important; 40 | } 41 | 42 | .wrapper { 43 | width: 100%; 44 | margin: 0 auto; 45 | } 46 | 47 | .wrapper, .row { 48 | @extend %clearfix; 49 | } 50 | 51 | [class*='column-'] { 52 | float: left; 53 | padding: $space; 54 | width: 100%; 55 | min-height: 1px; 56 | } 57 | 58 | @media #{$breakpoint-medium} { 59 | .wrapper { 60 | width: 95%; 61 | max-width: $grid-max-width; 62 | } 63 | @for $i from 1 through $grid-columns { 64 | .column-#{$i} { 65 | width: calc((100% / $grid-columns) * $i); 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /project-mf/domain/test/use_case/get-album-use-case.test.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { describe, expect, test } from '@jest/globals'; 4 | import { Album } from '../../src/album/models/album'; 5 | import { GetAlbumUseCases } from '../../src/album/use_case/get-album-use-case'; 6 | import { Observable } from 'rxjs'; 7 | import { AlbumGateway } from '../../src/album/models/gateway/album-gateway'; 8 | test('Test Album use case 🤣 ', async () => { 9 | //Arrenge 10 | let fakeGetAlbumUseCase = new GetAlbumUseCases(new FakeApi()); 11 | let expectedTitle = 'consequatur autem doloribus natus consectetur'; 12 | //Act 13 | let getAlbumById$ = await fakeGetAlbumUseCase.getByID('12'); 14 | getAlbumById$.subscribe((album) => { 15 | //Assert 16 | console.log(album) 17 | }) 18 | 19 | }); 20 | 21 | class FakeApi extends AlbumGateway { 22 | saveNew(_alb: Album): Observable { 23 | throw new Error('Method not implemented.'); 24 | } 25 | 26 | getByID(id: String): Observable { 27 | let fakeAlbum = new Album(); 28 | fakeAlbum.id = 2; 29 | fakeAlbum.title = 'a little fake Album😂'; 30 | fakeAlbum.userId = 14; 31 | let fakeAlbum$ = new Observable(); 32 | const myObserver = { 33 | error: (err: Error) => console.error('Observer got an error: ' + err), 34 | complete: () => fakeAlbum, 35 | }; 36 | fakeAlbum$.subscribe(myObserver); 37 | return fakeAlbum$; 38 | } 39 | getAll(): Observable { 40 | throw new Error('Method not implemented.'); 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /atomic-design/showcase/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | jasmine: { 17 | // you can add configuration options for Jasmine here 18 | // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html 19 | // for example, you can disable the random execution with `random: false` 20 | // or set a specific seed with `seed: 4321` 21 | }, 22 | clearContext: false // leave Jasmine Spec Runner output visible in browser 23 | }, 24 | jasmineHtmlReporter: { 25 | suppressAll: true // removes the duplicated traces 26 | }, 27 | coverageReporter: { 28 | dir: require('path').join(__dirname, './coverage/showcase'), 29 | subdir: '.', 30 | reporters: [ 31 | { type: 'html' }, 32 | { type: 'text-summary' } 33 | ] 34 | }, 35 | reporters: ['progress', 'kjhtml'], 36 | port: 9876, 37 | colors: true, 38 | logLevel: config.LOG_INFO, 39 | autoWatch: true, 40 | browsers: ['Chrome'], 41 | singleRun: false, 42 | restartOnFileChange: true 43 | }); 44 | }; 45 | -------------------------------------------------------------------------------- /clean-arch-example/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | jasmine: { 17 | // you can add configuration options for Jasmine here 18 | // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html 19 | // for example, you can disable the random execution with `random: false` 20 | // or set a specific seed with `seed: 4321` 21 | }, 22 | clearContext: false // leave Jasmine Spec Runner output visible in browser 23 | }, 24 | jasmineHtmlReporter: { 25 | suppressAll: true // removes the duplicated traces 26 | }, 27 | coverageReporter: { 28 | dir: require('path').join(__dirname, './coverage/clen-arch-example'), 29 | subdir: '.', 30 | reporters: [ 31 | { type: 'html' }, 32 | { type: 'text-summary' } 33 | ] 34 | }, 35 | reporters: ['progress', 'kjhtml'], 36 | port: 9876, 37 | colors: true, 38 | logLevel: config.LOG_INFO, 39 | autoWatch: true, 40 | browsers: ['Chrome'], 41 | singleRun: false, 42 | restartOnFileChange: true 43 | }); 44 | }; 45 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | jasmine: { 17 | // you can add configuration options for Jasmine here 18 | // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html 19 | // for example, you can disable the random execution with `random: false` 20 | // or set a specific seed with `seed: 4321` 21 | }, 22 | clearContext: false // leave Jasmine Spec Runner output visible in browser 23 | }, 24 | jasmineHtmlReporter: { 25 | suppressAll: true // removes the duplicated traces 26 | }, 27 | coverageReporter: { 28 | dir: require('path').join(__dirname, '../../coverage/mf'), 29 | subdir: '.', 30 | reporters: [ 31 | { type: 'html' }, 32 | { type: 'text-summary' } 33 | ] 34 | }, 35 | reporters: ['progress', 'kjhtml'], 36 | port: 9876, 37 | colors: true, 38 | logLevel: config.LOG_INFO, 39 | autoWatch: true, 40 | browsers: ['Chrome'], 41 | singleRun: false, 42 | restartOnFileChange: true 43 | }); 44 | }; 45 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | jasmine: { 17 | // you can add configuration options for Jasmine here 18 | // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html 19 | // for example, you can disable the random execution with `random: false` 20 | // or set a specific seed with `seed: 4321` 21 | }, 22 | clearContext: false // leave Jasmine Spec Runner output visible in browser 23 | }, 24 | jasmineHtmlReporter: { 25 | suppressAll: true // removes the duplicated traces 26 | }, 27 | coverageReporter: { 28 | dir: require('path').join(__dirname, '../../coverage/host'), 29 | subdir: '.', 30 | reporters: [ 31 | { type: 'html' }, 32 | { type: 'text-summary' } 33 | ] 34 | }, 35 | reporters: ['progress', 'kjhtml'], 36 | port: 9876, 37 | colors: true, 38 | logLevel: config.LOG_INFO, 39 | autoWatch: true, 40 | browsers: ['Chrome'], 41 | singleRun: false, 42 | restartOnFileChange: true 43 | }); 44 | }; 45 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "ng": "ng", 6 | "start": "ng serve", 7 | "build": "ng build", 8 | "test": "ng test", 9 | "lint": "ng lint", 10 | "e2e": "ng e2e", 11 | "run:all": "node node_modules/@angular-architects/module-federation/src/server/mf-dev-server.js" 12 | }, 13 | "private": true, 14 | "dependencies": { 15 | "@angular-architects/module-federation": "14.0.1", 16 | "@angular/animations": "~13.1.1", 17 | "@angular/common": "~13.1.1", 18 | "@angular/compiler": "~13.1.1", 19 | "@angular/core": "~13.1.1", 20 | "@angular/forms": "~13.1.1", 21 | "@angular/platform-browser": "~13.1.1", 22 | "@angular/platform-browser-dynamic": "~13.1.1", 23 | "@angular/router": "~13.1.1", 24 | "core-weincode": "^1.1.9", 25 | "infraestructure-weincode": "^1.0.8", 26 | "rxjs": "^7.5.6", 27 | "tslib": "^2.0.0", 28 | "zone.js": "~0.11.4" 29 | }, 30 | "devDependencies": { 31 | "@angular-devkit/build-angular": "~13.1.2", 32 | "@angular/cli": "~13.1.2", 33 | "@angular/compiler-cli": "~13.1.1", 34 | "@types/jasmine": "~3.6.0", 35 | "@types/node": "^12.11.1", 36 | "codelyzer": "^6.0.0", 37 | "jasmine-core": "~3.6.0", 38 | "jasmine-spec-reporter": "~5.0.0", 39 | "karma": "~6.3.9", 40 | "karma-chrome-launcher": "~3.1.0", 41 | "karma-coverage": "~2.0.3", 42 | "karma-jasmine": "~4.0.0", 43 | "karma-jasmine-html-reporter": "~1.5.0", 44 | "protractor": "~7.0.0", 45 | "ts-node": "~8.3.0", 46 | "tslint": "~6.1.0", 47 | "typescript": "~4.5.4" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /atomic-design/ngx-atomic-design/projects/ngx-weincode-ds/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/1.0/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', '@angular-devkit/build-angular'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-jasmine-html-reporter'), 12 | require('karma-coverage'), 13 | require('@angular-devkit/build-angular/plugins/karma') 14 | ], 15 | client: { 16 | jasmine: { 17 | // you can add configuration options for Jasmine here 18 | // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html 19 | // for example, you can disable the random execution with `random: false` 20 | // or set a specific seed with `seed: 4321` 21 | }, 22 | clearContext: false // leave Jasmine Spec Runner output visible in browser 23 | }, 24 | jasmineHtmlReporter: { 25 | suppressAll: true // removes the duplicated traces 26 | }, 27 | coverageReporter: { 28 | dir: require('path').join(__dirname, '../../coverage/ngx-weincode-ds'), 29 | subdir: '.', 30 | reporters: [ 31 | { type: 'html' }, 32 | { type: 'text-summary' } 33 | ] 34 | }, 35 | reporters: ['progress', 'kjhtml'], 36 | port: 9876, 37 | colors: true, 38 | logLevel: config.LOG_INFO, 39 | autoWatch: true, 40 | browsers: ['Chrome'], 41 | singleRun: false, 42 | restartOnFileChange: true 43 | }); 44 | }; 45 | -------------------------------------------------------------------------------- /ssr-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ssr-example", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "ng": "ng", 6 | "start": "ng serve", 7 | "build": "ng build", 8 | "watch": "ng build --watch --configuration development", 9 | "test": "ng test", 10 | "dev:ssr": "ng run ssr-example:serve-ssr", 11 | "serve:ssr": "node dist/ssr-example/server/main.js", 12 | "build:ssr": "ng build && ng run ssr-example:server", 13 | "prerender": "ng run ssr-example:prerender" 14 | }, 15 | "private": true, 16 | "dependencies": { 17 | "@angular/animations": "^15.0.0", 18 | "@angular/common": "^15.0.0", 19 | "@angular/compiler": "^15.0.0", 20 | "@angular/core": "^15.0.0", 21 | "@angular/forms": "^15.0.0", 22 | "@angular/platform-browser": "^15.0.0", 23 | "@angular/platform-browser-dynamic": "^15.0.0", 24 | "@angular/platform-server": "^15.0.0", 25 | "@angular/router": "^15.0.0", 26 | "@nguniversal/express-engine": "^15.0.0", 27 | "express": "^4.15.2", 28 | "rxjs": "~7.5.0", 29 | "tslib": "^2.3.0", 30 | "zone.js": "~0.12.0" 31 | }, 32 | "devDependencies": { 33 | "@angular-devkit/build-angular": "^15.0.4", 34 | "@angular/cli": "~15.0.4", 35 | "@angular/compiler-cli": "^15.0.0", 36 | "@nguniversal/builders": "^15.0.0", 37 | "@types/express": "^4.17.0", 38 | "@types/jasmine": "~4.3.0", 39 | "@types/node": "^14.15.0", 40 | "jasmine-core": "~4.5.0", 41 | "karma": "~6.4.0", 42 | "karma-chrome-launcher": "~3.1.0", 43 | "karma-coverage": "~2.2.0", 44 | "karma-jasmine": "~5.1.0", 45 | "karma-jasmine-html-reporter": "~2.0.0", 46 | "typescript": "~4.8.2" 47 | } 48 | } -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/webpack.config.js: -------------------------------------------------------------------------------- 1 | const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin"); 2 | const mf = require("@angular-architects/module-federation/webpack"); 3 | const path = require("path"); 4 | const share = mf.share; 5 | 6 | const sharedMappings = new mf.SharedMappings(); 7 | sharedMappings.register( 8 | path.join(__dirname, '../../tsconfig.json'), 9 | [/* mapped paths to share */]); 10 | 11 | module.exports = { 12 | output: { 13 | uniqueName: "mf", 14 | publicPath: "auto" 15 | }, 16 | optimization: { 17 | runtimeChunk: false 18 | }, 19 | resolve: { 20 | alias: { 21 | ...sharedMappings.getAliases(), 22 | } 23 | }, 24 | experiments: { 25 | outputModule: true 26 | }, 27 | plugins: [ 28 | new ModuleFederationPlugin({ 29 | library: { type: "module" }, 30 | 31 | name: "mf", 32 | filename: "remoteEntry.js", 33 | exposes: { 34 | './ShowinfoModule': './projects/mf/src/app/showinfo/showinfo.module.ts', 35 | }, 36 | shared: share({ 37 | "@angular/core": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 38 | "@angular/common": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 39 | "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 40 | "@angular/router": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 41 | rxjs: { 42 | singleton: true, 43 | strictVersion: true, 44 | requiredVersion: 'auto', 45 | includeSecondaries: true, 46 | }, 47 | ...sharedMappings.getDescriptors() 48 | }) 49 | 50 | }), 51 | sharedMappings.getPlugin() 52 | ], 53 | }; 54 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/webpack.config.js: -------------------------------------------------------------------------------- 1 | const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin"); 2 | const mf = require("@angular-architects/module-federation/webpack"); 3 | const path = require("path"); 4 | const share = mf.share; 5 | 6 | const sharedMappings = new mf.SharedMappings(); 7 | sharedMappings.register( 8 | path.join(__dirname, '../../tsconfig.json'), 9 | [/* mapped paths to share */]); 10 | 11 | module.exports = { 12 | output: { 13 | uniqueName: "host", 14 | publicPath: "auto" 15 | }, 16 | optimization: { 17 | runtimeChunk: false 18 | }, 19 | resolve: { 20 | alias: { 21 | ...sharedMappings.getAliases(), 22 | } 23 | }, 24 | experiments: { 25 | outputModule: true 26 | }, 27 | plugins: [ 28 | new ModuleFederationPlugin({ 29 | 30 | 31 | library: { 32 | type: 'module', 33 | }, 34 | 35 | 36 | remotes: { 37 | mf: "http://localhost:5000/remoteEntry.js", 38 | 39 | }, 40 | 41 | shared: share({ 42 | "@angular/core": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 43 | "@angular/common": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 44 | "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 45 | "@angular/router": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, 46 | rxjs: { 47 | singleton: true, 48 | strictVersion: true, 49 | requiredVersion: 'auto', 50 | includeSecondaries: true, 51 | }, 52 | ...sharedMappings.getDescriptors() 53 | }) 54 | 55 | }), 56 | sharedMappings.getPlugin() 57 | ], 58 | }; 59 | -------------------------------------------------------------------------------- /atomic-design/transversal-design/view/molecules/card.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | wc-Cards 9 | 10 | 11 | 12 |
13 |

Ejemplo de cartas 🃏


14 |
15 |
16 |
17 | 18 |
19 |

Kangaroo Valley Safari

20 |

Located two hours south of Sydney in the Southern Highlands of New South Wales, ...

21 | SHARE 22 | EXPLORE 23 |
24 |
25 |
26 |
27 |

28 | <div class="wc-card"> 29 | <img src="https://s13.postimg.cc/5al19x0d3/media_img.jpg" class="wc-card-media" /> 30 | <div class="wc-card-details"> 31 | <h2 class="wc-card-head">Kangaroo Valley Safari</h2> 32 | <p>Located two hours south of Sydney in the Southern Highlands of New South Wales, ...</p> 33 | <a href="#/" class="wc-a">SHARE</a> 34 | <a href="#/" class="wc-a">EXPLORE</a> 35 | </div> 36 | </div> 37 | 38 |

39 |
40 | 41 |
42 | 43 | 44 | -------------------------------------------------------------------------------- /project-mf/web/react/remote/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | React App 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /ssr-example/server.ts: -------------------------------------------------------------------------------- 1 | import 'zone.js/node'; 2 | 3 | import { APP_BASE_HREF } from '@angular/common'; 4 | import { ngExpressEngine } from '@nguniversal/express-engine'; 5 | import * as express from 'express'; 6 | import { existsSync } from 'fs'; 7 | import { join } from 'path'; 8 | 9 | import { AppServerModule } from './src/main.server'; 10 | 11 | // The Express app is exported so that it can be used by serverless Functions. 12 | export function app(): express.Express { 13 | const server = express(); 14 | const distFolder = join(process.cwd(), 'dist/ssr-example/browser'); 15 | const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index'; 16 | 17 | // Our Universal express-engine (found @ https://github.com/angular/universal/tree/main/modules/express-engine) 18 | server.engine('html', ngExpressEngine({ 19 | bootstrap: AppServerModule, 20 | })); 21 | 22 | server.set('view engine', 'html'); 23 | server.set('views', distFolder); 24 | 25 | // Example Express Rest API endpoints 26 | // server.get('/api/**', (req, res) => { }); 27 | // Serve static files from /browser 28 | server.get('*.*', express.static(distFolder, { 29 | maxAge: '1y' 30 | })); 31 | 32 | // All regular routes use the Universal engine 33 | server.get('*', (req, res) => { 34 | res.render(indexHtml, { req, providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }] }); 35 | }); 36 | 37 | return server; 38 | } 39 | 40 | function run(): void { 41 | const port = process.env['PORT'] || 4000; 42 | 43 | // Start up the Node server 44 | const server = app(); 45 | server.listen(port, () => { 46 | console.log(`Node Express server listening on http://localhost:${port}`); 47 | }); 48 | } 49 | 50 | // Webpack will replace 'require' with '__webpack_require__' 51 | // '__non_webpack_require__' is a proxy to Node 'require' 52 | // The below code is to ensure that the server is run only when not requiring the bundle. 53 | declare const __non_webpack_require__: NodeRequire; 54 | const mainModule = __non_webpack_require__.main; 55 | const moduleFilename = mainModule && mainModule.filename || ''; 56 | if (moduleFilename === __filename || moduleFilename.includes('iisnode')) { 57 | run(); 58 | } 59 | 60 | export * from './src/main.server'; 61 | -------------------------------------------------------------------------------- /atomic-design/showcase/src/polyfills.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This file includes polyfills needed by Angular and is loaded before the app. 3 | * You can add your own extra polyfills to this file. 4 | * 5 | * This file is divided into 2 sections: 6 | * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. 7 | * 2. Application imports. Files imported after ZoneJS that should be loaded before your main 8 | * file. 9 | * 10 | * The current setup is for so-called "evergreen" browsers; the last versions of browsers that 11 | * automatically update themselves. This includes recent versions of Safari, Chrome (including 12 | * Opera), Edge on the desktop, and iOS and Chrome on mobile. 13 | * 14 | * Learn more in https://angular.io/guide/browser-support 15 | */ 16 | 17 | /*************************************************************************************************** 18 | * BROWSER POLYFILLS 19 | */ 20 | 21 | /** 22 | * By default, zone.js will patch all possible macroTask and DomEvents 23 | * user can disable parts of macroTask/DomEvents patch by setting following flags 24 | * because those flags need to be set before `zone.js` being loaded, and webpack 25 | * will put import in the top of bundle, so user need to create a separate file 26 | * in this directory (for example: zone-flags.ts), and put the following flags 27 | * into that file, and then add the following code before importing zone.js. 28 | * import './zone-flags'; 29 | * 30 | * The flags allowed in zone-flags.ts are listed here. 31 | * 32 | * The following flags will work for all browsers. 33 | * 34 | * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame 35 | * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick 36 | * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames 37 | * 38 | * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js 39 | * with the following flag, it will bypass `zone.js` patch for IE/Edge 40 | * 41 | * (window as any).__Zone_enable_cross_context_check = true; 42 | * 43 | */ 44 | 45 | /*************************************************************************************************** 46 | * Zone JS is required by default for Angular itself. 47 | */ 48 | import 'zone.js'; // Included with Angular CLI. 49 | 50 | 51 | /*************************************************************************************************** 52 | * APPLICATION IMPORTS 53 | */ 54 | -------------------------------------------------------------------------------- /clean-arch-example/src/polyfills.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This file includes polyfills needed by Angular and is loaded before the app. 3 | * You can add your own extra polyfills to this file. 4 | * 5 | * This file is divided into 2 sections: 6 | * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. 7 | * 2. Application imports. Files imported after ZoneJS that should be loaded before your main 8 | * file. 9 | * 10 | * The current setup is for so-called "evergreen" browsers; the last versions of browsers that 11 | * automatically update themselves. This includes recent versions of Safari, Chrome (including 12 | * Opera), Edge on the desktop, and iOS and Chrome on mobile. 13 | * 14 | * Learn more in https://angular.io/guide/browser-support 15 | */ 16 | 17 | /*************************************************************************************************** 18 | * BROWSER POLYFILLS 19 | */ 20 | 21 | /** 22 | * By default, zone.js will patch all possible macroTask and DomEvents 23 | * user can disable parts of macroTask/DomEvents patch by setting following flags 24 | * because those flags need to be set before `zone.js` being loaded, and webpack 25 | * will put import in the top of bundle, so user need to create a separate file 26 | * in this directory (for example: zone-flags.ts), and put the following flags 27 | * into that file, and then add the following code before importing zone.js. 28 | * import './zone-flags'; 29 | * 30 | * The flags allowed in zone-flags.ts are listed here. 31 | * 32 | * The following flags will work for all browsers. 33 | * 34 | * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame 35 | * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick 36 | * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames 37 | * 38 | * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js 39 | * with the following flag, it will bypass `zone.js` patch for IE/Edge 40 | * 41 | * (window as any).__Zone_enable_cross_context_check = true; 42 | * 43 | */ 44 | 45 | /*************************************************************************************************** 46 | * Zone JS is required by default for Angular itself. 47 | */ 48 | import 'zone.js'; // Included with Angular CLI. 49 | 50 | 51 | /*************************************************************************************************** 52 | * APPLICATION IMPORTS 53 | */ 54 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/mf/src/polyfills.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This file includes polyfills needed by Angular and is loaded before the app. 3 | * You can add your own extra polyfills to this file. 4 | * 5 | * This file is divided into 2 sections: 6 | * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. 7 | * 2. Application imports. Files imported after ZoneJS that should be loaded before your main 8 | * file. 9 | * 10 | * The current setup is for so-called "evergreen" browsers; the last versions of browsers that 11 | * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), 12 | * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. 13 | * 14 | * Learn more in https://angular.io/guide/browser-support 15 | */ 16 | 17 | /*************************************************************************************************** 18 | * BROWSER POLYFILLS 19 | */ 20 | 21 | /** 22 | * By default, zone.js will patch all possible macroTask and DomEvents 23 | * user can disable parts of macroTask/DomEvents patch by setting following flags 24 | * because those flags need to be set before `zone.js` being loaded, and webpack 25 | * will put import in the top of bundle, so user need to create a separate file 26 | * in this directory (for example: zone-flags.ts), and put the following flags 27 | * into that file, and then add the following code before importing zone.js. 28 | * import './zone-flags'; 29 | * 30 | * The flags allowed in zone-flags.ts are listed here. 31 | * 32 | * The following flags will work for all browsers. 33 | * 34 | * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame 35 | * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick 36 | * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames 37 | * 38 | * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js 39 | * with the following flag, it will bypass `zone.js` patch for IE/Edge 40 | * 41 | * (window as any).__Zone_enable_cross_context_check = true; 42 | * 43 | */ 44 | 45 | /*************************************************************************************************** 46 | * Zone JS is required by default for Angular itself. 47 | */ 48 | import 'zone.js'; // Included with Angular CLI. 49 | 50 | 51 | /*************************************************************************************************** 52 | * APPLICATION IMPORTS 53 | */ 54 | -------------------------------------------------------------------------------- /project-mf/web/app-wrk/projects/host/src/polyfills.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This file includes polyfills needed by Angular and is loaded before the app. 3 | * You can add your own extra polyfills to this file. 4 | * 5 | * This file is divided into 2 sections: 6 | * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. 7 | * 2. Application imports. Files imported after ZoneJS that should be loaded before your main 8 | * file. 9 | * 10 | * The current setup is for so-called "evergreen" browsers; the last versions of browsers that 11 | * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), 12 | * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. 13 | * 14 | * Learn more in https://angular.io/guide/browser-support 15 | */ 16 | 17 | /*************************************************************************************************** 18 | * BROWSER POLYFILLS 19 | */ 20 | 21 | /** 22 | * By default, zone.js will patch all possible macroTask and DomEvents 23 | * user can disable parts of macroTask/DomEvents patch by setting following flags 24 | * because those flags need to be set before `zone.js` being loaded, and webpack 25 | * will put import in the top of bundle, so user need to create a separate file 26 | * in this directory (for example: zone-flags.ts), and put the following flags 27 | * into that file, and then add the following code before importing zone.js. 28 | * import './zone-flags'; 29 | * 30 | * The flags allowed in zone-flags.ts are listed here. 31 | * 32 | * The following flags will work for all browsers. 33 | * 34 | * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame 35 | * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick 36 | * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames 37 | * 38 | * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js 39 | * with the following flag, it will bypass `zone.js` patch for IE/Edge 40 | * 41 | * (window as any).__Zone_enable_cross_context_check = true; 42 | * 43 | */ 44 | 45 | /*************************************************************************************************** 46 | * Zone JS is required by default for Angular itself. 47 | */ 48 | import 'zone.js'; // Included with Angular CLI. 49 | 50 | 51 | /*************************************************************************************************** 52 | * APPLICATION IMPORTS 53 | */ 54 | --------------------------------------------------------------------------------