├── 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 |
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 |
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 |
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 |
4 |
5 |
6 |
7 |
8 |
9 | Hello world 🌍🅰️
10 |
11 |
12 | Esto funciona
13 |
14 |
15 |
16 | Esto funciona
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/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 | You need to enable JavaScript to run this app.
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 |
--------------------------------------------------------------------------------